*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}button,a,label{outline:none}button:focus-visible,a:focus-visible{outline:2px solid #4facfe;outline-offset:2px}body{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;background:linear-gradient(160deg,#e8f4ff,#f0f0ff);min-height:100vh;color:#1a1a1a}.app{max-width:1200px;margin:0 auto;padding:2rem}header{border-bottom:1px solid #e0e0e0;padding-bottom:1rem;margin-bottom:2rem}h1{font-size:1.8rem;font-weight:700}.login-container{min-height:100vh;height:100vh;overflow:hidden;display:flex;align-items:center;justify-content:center;background:transparent;padding:16px;box-sizing:border-box}.login-card{background:#fff;border-radius:20px;padding:2.5rem 2rem;width:100%;max-width:400px;box-shadow:0 8px 40px #4facfe26;display:flex;flex-direction:column;gap:1rem}.login-card .login-title{text-align:center;font-size:2rem;font-weight:800;letter-spacing:-.5px;background:linear-gradient(135deg,#4facfe,#667eea);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.login-card .login-subtitle{text-align:center;color:#888;margin-top:-8px;font-size:.95rem}.google-btn{display:flex;align-items:center;justify-content:center;padding:.65rem;border:1px solid #ddd;border-radius:8px;background:#fff;cursor:pointer;font-weight:500;font-size:.95rem}.google-btn:hover{background:#f5f5f5}.google-btn svg{margin-right:8px}.divider{text-align:center;color:#aaa;font-size:.85rem}.auth-tabs{display:flex;gap:4px;background:#f0f0f0;border-radius:8px;padding:4px}.auth-tabs .tab{flex:1;padding:.45rem;border:none;border-radius:6px;background:transparent;cursor:pointer;font-weight:500}.auth-tabs .tab.active{background:#fff;box-shadow:0 1px 4px #0000001a}.auth-form{display:flex;flex-direction:column;gap:.75rem}.auth-form .auth-input{padding:.65rem .75rem;border:1px solid #ddd;border-radius:8px;font-size:.95rem;outline:none}.auth-form .auth-input:focus{border-color:#4facfe;box-shadow:0 0 0 3px #4facfe26}.auth-form .submit-btn{padding:.65rem;background:linear-gradient(135deg,#4facfe,#667eea);color:#fff;border:none;border-radius:50px;font-weight:600;cursor:pointer;font-size:.95rem;box-shadow:0 4px 14px #4facfe66}.auth-form .submit-btn:hover{opacity:.9}.auth-form .submit-btn:disabled{opacity:.6;cursor:not-allowed}.auth-form .form-error{color:#e53e3e;font-size:.85rem}.auth-form .form-message{color:#38a169;font-size:.85rem}.dashboard{min-height:100vh;background:transparent}.dashboard-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background:#ffffffb3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(79,172,254,.15)}.dashboard-header h1{font-size:1.5rem;font-weight:800;letter-spacing:-.5px;background:linear-gradient(135deg,#4facfe,#667eea);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.dashboard-header .logout-btn{cursor:pointer;padding:.4rem 1rem;border:1px solid rgba(79,172,254,.3);border-radius:50px;background:transparent;font-weight:500;font-size:.9rem;color:#667eea}.dashboard-header .logout-btn:hover{background:#4facfe14}.dashboard-main{max-width:900px;margin:0 auto;padding:2rem 2rem 6rem}.dashboard-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.dashboard-top h2{font-size:1.2rem;font-weight:600}.dashboard-top .create-btn-group{display:flex;align-items:center;gap:.75rem}.dashboard-top .qr-count{font-size:.8rem;color:#aaa}.dashboard-top .create-btn-tooltip{position:relative}.dashboard-top .create-btn-tooltip:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 8px);right:0;background:#1a1a1a;color:#fff;padding:.45rem .75rem;border-radius:7px;font-size:.78rem;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s}.dashboard-top .create-btn-tooltip:before{content:"";position:absolute;bottom:calc(100% + 2px);right:18px;border:5px solid transparent;border-top-color:#1a1a1a;pointer-events:none;opacity:0;transition:opacity .15s}.dashboard-top .create-btn-tooltip:hover:after,.dashboard-top .create-btn-tooltip:hover:before{opacity:1}.dashboard-top .create-btn{padding:.5rem 1.2rem;background:linear-gradient(135deg,#4facfe,#667eea);color:#fff;border:none;border-radius:10px;font-weight:600;cursor:pointer;box-shadow:0 4px 14px #4facfe66}.dashboard-top .create-btn:hover:not(:disabled){opacity:.9}.dashboard-top .create-btn:disabled{opacity:.4;cursor:not-allowed}.create-form{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem;background:#fff;border:1px solid rgba(79,172,254,.2);border-radius:20px;padding:1.5rem;box-shadow:0 8px 32px #4facfe1a}.create-form .form-input{width:100%;box-sizing:border-box;padding:.65rem .9rem;border:1px solid #e0e0e0;border-radius:10px;font-size:.95rem;outline:none;transition:border-color .2s,box-shadow .2s}.create-form .form-input:focus{border-color:#4facfe;box-shadow:0 0 0 3px #4facfe1f}.destination-section{display:flex;flex-direction:column;gap:.6rem}.destination-label{font-size:.85rem;font-weight:600;color:#444;margin:0}.service-list{display:flex;gap:.6rem;flex-wrap:wrap}.service-card{display:flex;align-items:center;gap:.5rem;padding:.55rem 1rem;border:1.5px solid #e0e0e0;border-radius:50px;background:#fff;cursor:pointer;font-size:.9rem;font-weight:500;transition:border-color .15s,background .15s,box-shadow .15s}.service-card:hover{border-color:#4facfe;box-shadow:0 2px 8px #4facfe26}.service-card.selected{border-color:#4facfe;background:#4facfe12;color:#667eea}.service-card.add-service{border-style:dashed;color:#888}.service-card.add-service:hover{border-color:#4facfe;color:#4facfe}.service-card.add-service:disabled{opacity:.5;cursor:not-allowed}.folder-section{display:flex;flex-direction:column;gap:.35rem}.folder-hint{font-size:.78rem;color:#888;margin:0}.limit-section{background:#4facfe0a;border:1px solid rgba(79,172,254,.12);border-radius:12px;padding:.75rem 1rem}.limit-row{display:flex;justify-content:space-between;align-items:center;gap:1rem}.limit-section-label{font-size:.88rem;font-weight:600;color:#333;margin:0 0 .2rem}.limit-hint{font-size:.78rem;color:#888;margin:0}.limit-input-row{display:flex;align-items:center;gap:.4rem;flex-shrink:0}.limit-number-input{width:72px;padding:.45rem .6rem;border:1px solid #ddd;border-radius:8px;font-size:.95rem;text-align:center;outline:none}.limit-number-input:focus{border-color:#1a1a1a}.limit-number-input::-webkit-outer-spin-button,.limit-number-input::-webkit-inner-spin-button{-webkit-appearance:none}.limit-number-input{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.limit-unit{font-size:.85rem;color:#666}.form-actions{display:flex;justify-content:flex-end;gap:.5rem}.form-actions .cancel-btn{padding:.6rem 1.2rem;background:transparent;color:#888;border:1px solid #e0e0e0;border-radius:50px;font-weight:500;cursor:pointer}.form-actions .cancel-btn:hover{border-color:#aaa;color:#555}.submit-btn{padding:.6rem 1.4rem;background:linear-gradient(135deg,#4facfe,#667eea);color:#fff;border:none;border-radius:50px;font-weight:600;cursor:pointer;box-shadow:0 4px 14px #4facfe59}.submit-btn:hover{opacity:.9}.submit-btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.toggle{position:relative;display:inline-block;width:40px;height:22px;flex-shrink:0}.toggle input{display:none}.toggle .slider{position:absolute;cursor:pointer;top:0;right:0;bottom:0;left:0;background:#ddd;border-radius:22px;transition:.2s}.toggle .slider:before{content:"";position:absolute;width:16px;height:16px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.2s}.toggle input:checked+.slider{background:linear-gradient(135deg,#4facfe,#667eea)}.toggle input:checked+.slider:before{transform:translate(18px)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}.modal{background:#fff;border-radius:20px;padding:2rem;max-width:380px;width:100%;box-shadow:0 16px 48px #00000026}.modal h3{font-size:1.1rem;font-weight:700;margin-bottom:.5rem}.modal p{font-size:.9rem;color:#666;line-height:1.6;margin-bottom:1.5rem}.modal .modal-folder-label{font-size:.8rem;font-weight:600;color:#444;margin:.75rem 0 .3rem!important}.modal .modal-folder-input{width:100%;box-sizing:border-box;padding:.65rem .9rem;border:1px solid #e0e0e0;border-radius:10px;font-size:.95rem;outline:none;margin:0 0 1.25rem;transition:border-color .2s,box-shadow .2s}.modal .modal-folder-input:focus{border-color:#4facfe;box-shadow:0 0 0 3px #4facfe1f}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end}.modal-actions .modal-cancel{padding:.6rem 1.2rem;background:transparent;border:1px solid #e0e0e0;border-radius:50px;font-weight:500;cursor:pointer;color:#888}.modal-actions .modal-cancel:hover{border-color:#aaa;color:#555}.modal-actions .modal-delete{padding:.6rem 1.2rem;background:#e53e3e;color:#fff;border:none;border-radius:50px;font-weight:600;cursor:pointer}.modal-actions .modal-delete:hover{background:#c53030}.modal-actions .modal-delete:disabled{background:#d1d5db;color:#9ca3af;cursor:not-allowed}.upgrade-modal .modal-actions{flex-direction:column-reverse}.upgrade-modal .modal-actions .submit-btn,.upgrade-modal .modal-actions .modal-cancel{width:100%;text-align:center}.upgrade-modal .google-upgrade-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:.6rem;padding:.65rem;border:1.5px solid #e0e0e0;border-radius:10px;background:#fff;font-size:.95rem;font-weight:500;cursor:pointer;margin-bottom:.75rem}.upgrade-modal .google-upgrade-btn:hover{border-color:#4facfe;background:#4facfe0a}.upgrade-modal .upgrade-divider{display:flex;align-items:center;gap:.75rem;color:#ccc;font-size:.8rem;margin-bottom:.75rem}.upgrade-modal .upgrade-divider:before,.upgrade-modal .upgrade-divider:after{content:"";flex:1;height:1px;background:#eee}.upgrade-modal .upgrade-input{display:block;width:100%;box-sizing:border-box;padding:.65rem .9rem;border:1px solid #e0e0e0;border-radius:10px;font-size:.95rem;outline:none;margin-bottom:.6rem}.upgrade-modal .upgrade-input:focus{border-color:#4facfe;box-shadow:0 0 0 3px #4facfe1f}.upgrade-modal .upgrade-error{font-size:.85rem;color:#e53e3e;margin:0 0 .5rem}.upgrade-modal .upgrade-message{font-size:.85rem;color:#38a169;margin:0 0 .5rem}.upgrade-success-banner{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534;border-radius:12px;padding:.75rem 1rem;font-size:.9rem;font-weight:500;margin-bottom:1.25rem}.create-tier-section{display:flex;flex-direction:column;gap:.6rem}.create-tier-options{display:flex;flex-wrap:wrap;gap:.4rem}.create-tier-btn{padding:.3rem .75rem;border:1.5px solid #e0e0e0;border-radius:50px;background:#fff;cursor:pointer;font-size:.8rem;font-weight:600;color:#555;transition:border-color .15s,background .15s,color .15s}.create-tier-btn:hover{border-color:#4facfe;color:#4facfe}.create-tier-btn.selected{border-color:#4facfe;background:#4facfe;color:#fff}.delete-paid-warning{font-size:.85rem;color:#c2410c;background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;padding:.5rem .75rem;margin:0 0 .5rem}.delete-confirm-input{width:100%;box-sizing:border-box;padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.9rem;margin-bottom:.5rem;outline:none}.delete-confirm-input:focus{border-color:#ef4444}.create-tier-info{font-size:.78rem;color:#888;margin:0}.qr-title-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}.qr-title-row h3{font-size:1rem;font-weight:600;margin:0}.qr-title-row .qr-title-left{display:flex;align-items:center;gap:.5rem;min-width:0}.qr-title-row .qr-card-actions{display:flex;align-items:center;gap:.4rem;margin-left:auto;flex-shrink:0}.qr-title-row .edit-card-btn{background:none;border:1px solid #d1d5db;color:#555;font-size:.7rem;font-weight:600;cursor:pointer;padding:.2rem .55rem;border-radius:20px;transition:border-color .15s,color .15s}.qr-title-row .edit-card-btn:hover{border-color:#4facfe;color:#4facfe}.tier-badge{font-size:.68rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:.18rem .55rem;border-radius:50px}.tier-badge--free{background:#f3f4f6;color:#6b7280}.tier-badge--basic{background:#eff6ff;color:#2563eb}.tier-badge--plus{background:#f5f3ff;color:#7c3aed}.tier-badge--pro{background:#fff7ed;color:#c2410c}.upgrade-link{background:none;border:1px solid #4facfe;color:#4facfe;font-size:.7rem;font-weight:600;cursor:pointer;padding:.2rem .55rem;border-radius:20px;text-decoration:none;margin-left:.35rem;transition:background .15s,color .15s}.upgrade-link:hover{background:#4facfe;color:#fff}.qr-card--upgraded{box-shadow:0 4px 20px #4facfe40;border-color:#4facfe59}.tier-modal{max-width:360px}.tier-modal .tier-modal-sub{font-size:.85rem;color:#888;margin-bottom:1.25rem}.tier-modal .tier-options{display:flex;flex-direction:column;gap:.6rem;margin-bottom:1.25rem}.tier-modal .tier-option{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border:1.5px solid #e5e7eb;border-radius:12px;gap:1rem;background:#fff;cursor:pointer;text-align:left;width:100%;transition:border-color .15s,box-shadow .15s}.tier-modal .tier-option:hover:not(:disabled){border-color:#4facfe;box-shadow:0 2px 10px #4facfe26}.tier-modal .tier-option:disabled{opacity:.5;cursor:not-allowed}.tier-modal .tier-option-info{display:flex;flex-direction:column;gap:.15rem}.tier-modal .tier-option-name{font-family:DM Sans,sans-serif;font-weight:700;font-size:.95rem;letter-spacing:-.02em}.tier-modal .tier-option-limit{font-size:.8rem;color:#888}.tier-modal .tier-option-price{flex-shrink:0;font-family:DM Sans,sans-serif;font-weight:700;font-size:1.2rem;color:#000;letter-spacing:-.02em;display:flex;align-items:center;gap:.4rem}.tier-modal .tier-option-price-original{text-decoration:line-through;color:#aaa;font-size:1rem;font-weight:400}.tier-modal .tier-modal-cancel{width:100%;padding:.6rem;background:transparent;border:1px solid #e0e0e0;border-radius:50px;font-weight:500;color:#888;cursor:pointer;font-size:.9rem}.tier-modal .tier-modal-cancel:hover{border-color:#aaa;color:#555}.empty-state{text-align:center;color:#888;margin-top:4rem}@media (max-width: 540px){.dashboard-header{padding:.75rem 1rem}.dashboard-main{padding:1rem}.qr-card{flex-direction:column;align-items:stretch;gap:.75rem}.qr-card .qr-code-block{align-self:center}.qr-card .qr-inline-actions{justify-content:space-between}.limit-row{flex-wrap:wrap;gap:.75rem}}.qr-grid{display:flex;flex-direction:column;gap:1rem}.qr-card{display:flex;align-items:center;gap:1.5rem;background:#fff;border-radius:20px;padding:1.25rem;box-shadow:0 4px 20px #4facfe1a;border:1px solid rgba(79,172,254,.08)}.qr-card .qr-code-block{display:flex;flex-direction:column;align-items:center;gap:.5rem;flex-shrink:0}.qr-card .qr-code{line-height:0;padding:12px;border:2px solid rgba(79,172,254,.35);border-radius:16px;box-shadow:0 4px 16px #4facfe1f}.qr-card .download-qr-btn{width:140px;padding:.35rem 0;border:1px solid rgba(79,172,254,.3);border-radius:50px;background:#fff;color:#667eea;font-size:.78rem;font-weight:500;cursor:pointer;text-align:center;transition:background .15s}.qr-card .download-qr-btn:hover{background:#4facfe0f}.qr-card .qr-info{flex:1;position:relative}.qr-card .qr-info h3{font-size:1rem;font-weight:600;margin-bottom:.25rem}.qr-card .qr-info .upload-count{display:flex;align-items:center;gap:.5rem;color:#555;font-size:.9rem;margin-bottom:.6rem}.qr-card .qr-info .edit-limit-btn{background:none;border:none;color:#aaa;font-size:.75rem;cursor:pointer;padding:0;text-decoration:underline}.qr-card .qr-info .edit-limit-btn:hover{color:#555}.qr-card .qr-info .limit-edit-row{display:flex;align-items:center;gap:.4rem;margin-bottom:.25rem}.qr-card .qr-info .limit-edit-input{width:64px;padding:.3rem .5rem;border:1px solid #ddd;border-radius:6px;font-size:.85rem;text-align:center;outline:none}.qr-card .qr-info .limit-edit-input:focus{border-color:#1a1a1a}.qr-card .qr-info .limit-edit-input::-webkit-outer-spin-button,.qr-card .qr-info .limit-edit-input::-webkit-inner-spin-button{-webkit-appearance:none}.qr-card .qr-info .limit-edit-input{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.qr-card .qr-info .limit-unit-small{font-size:.8rem;color:#888}.qr-card .qr-info .save-limit-btn{background:linear-gradient(135deg,#4facfe,#667eea);color:#fff;border:none;border-radius:50px;padding:.3rem .7rem;font-size:.8rem;font-weight:600;cursor:pointer}.qr-card .qr-info .save-limit-btn:hover{opacity:.9}.qr-card .qr-info .cancel-limit-btn{background:none;border:none;color:#aaa;font-size:.8rem;cursor:pointer;padding:0}.qr-card .qr-info .cancel-limit-btn:hover{color:#555}.qr-card .qr-info .qr-destination{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.6rem}.qr-card .qr-info .qr-destination-provider{font-size:.75rem;font-weight:600;color:#555;background:#f0f0f0;border-radius:4px;padding:.15rem .45rem}.qr-card .qr-info .qr-destination-folder{display:flex;align-items:center;gap:.25rem;font-size:.8rem;color:#666}.qr-card .qr-info .qr-destination-folder svg{flex-shrink:0}.qr-card .qr-info .qr-link{color:#aaa;font-size:.75rem;word-break:break-all;cursor:pointer;position:relative;transition:color .15s}.qr-card .qr-info .qr-link:hover{color:#4facfe}.qr-card .qr-info .copy-toast{position:absolute;left:50%;transform:translate(-50%);bottom:calc(100% + 6px);background:#1a1a1a;color:#fff;font-size:.75rem;padding:.3rem .7rem;border-radius:6px;white-space:nowrap;pointer-events:none}.qr-card .qr-inline-actions{display:flex;align-items:center;gap:.75rem;margin-top:.5rem}.qr-card .toggle-group{display:flex;align-items:center;gap:.5rem}.qr-card .toggle-label{font-size:.8rem;color:#888}.qr-card .delete-btn{padding:.4rem .9rem;border:1px solid #fca5a5;border-radius:8px;background:#fff;color:#e53e3e;font-size:.85rem;cursor:pointer}.qr-card .delete-btn:hover{background:#fff5f5}.upload-page{min-height:100vh;height:100vh;overflow:hidden;display:flex;align-items:center;justify-content:center;background:transparent;padding:16px;box-sizing:border-box}.brand-link{text-decoration:none;color:inherit}.upload-card{background:#fff;border-radius:20px;padding:2.5rem 2rem 1.5rem;width:100%;max-width:400px;box-shadow:0 8px 40px #4facfe26;text-align:center;position:relative}.upload-card .upload-brand{font-size:.85rem;font-weight:700;background:linear-gradient(135deg,#4facfe,#667eea);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;display:block;margin-top:2rem}.upload-card h1{font-size:1.8rem;font-weight:800;letter-spacing:-.5px;background:linear-gradient(135deg,#4facfe,#667eea);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:.1rem}.upload-card .upload-subtitle{color:#888;margin-bottom:.5rem;font-size:.95rem}.upload-card .upload-limit{color:#aaa;font-size:.82rem;margin-bottom:1.5rem}.upload-form{display:flex;flex-direction:column;gap:1rem}.file-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px dashed rgba(79,172,254,.4);border-radius:14px;padding:2.5rem 2rem;cursor:pointer;font-size:.95rem;color:#888;transition:border-color .2s,background .2s;background:#4facfe08}.file-drop:hover{border-color:#4facfe;background:#4facfe12;color:#4facfe}.file-input{display:none}.upload-btn{padding:.75rem;background:linear-gradient(135deg,#4facfe,#667eea);color:#fff;border:none;border-radius:50px;font-weight:600;font-size:.95rem;cursor:pointer;box-shadow:0 4px 14px #4facfe66}.upload-btn:hover{opacity:.9}.upload-btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.upload-error{color:#e53e3e;font-size:.85rem}.success-icon{font-size:3rem;margin-bottom:1rem}.success-actions{display:flex;flex-direction:column;gap:1rem;margin-top:1.5rem}.create-own-link{font-size:.85rem;color:#aaa;text-decoration:none}.create-own-link:hover{color:#667eea}.privacy-policy{max-width:720px;margin:0 auto;padding:48px 24px;line-height:1.7;color:#222}.privacy-policy h1{margin-bottom:4px}.privacy-policy h2{margin-top:32px}.privacy-policy p,.privacy-policy ul{margin-top:8px}.privacy-policy ul{padding-left:24px}.privacy-policy a{color:inherit}.terms-of-service{max-width:720px;margin:0 auto;padding:48px 24px;line-height:1.7;color:#222}.terms-of-service h1{margin-bottom:4px}.terms-of-service h2{margin-top:32px}.terms-of-service p,.terms-of-service ul{margin-top:8px}.terms-of-service ul{padding-left:24px}.terms-of-service a{color:inherit}
