.landing-page{min-height:100vh;position:relative;overflow-x:hidden;background:var(--bg-base)}.landing-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:radial-gradient(ellipse 120% 80% at 50% 0%,rgba(124,58,237,.06) 0%,transparent 50%),radial-gradient(ellipse 80% 60% at 100% 100%,rgba(245,158,11,.04) 0%,transparent 45%),var(--bg-base)}.gradient-orb{position:absolute;border-radius:50%;filter:blur(100px);opacity:.2;pointer-events:none}.gradient-orb-1{width:380px;height:380px;background:radial-gradient(circle,rgba(124,58,237,.18) 0%,transparent 65%);top:-120px;left:-120px;animation:landing-float 24s ease-in-out infinite}.gradient-orb-2{width:320px;height:320px;background:radial-gradient(circle,rgba(245,158,11,.1) 0%,transparent 65%);bottom:-80px;right:-80px;animation:landing-float 28s ease-in-out infinite reverse}@keyframes landing-float{0%,to{transform:translate(0) scale(1)}50%{transform:translate(20px,20px) scale(1.02)}}.noise-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.02'/%3E%3C/svg%3E");pointer-events:none;opacity:.4}.landing-content{position:relative;z-index:1;max-width:100%;margin:0 auto;padding:48px 20px 40px;display:flex;flex-direction:column;align-items:center;gap:40px}.landing-header{display:flex;flex-direction:column;align-items:center;text-align:center;opacity:0;transform:translateY(20px);transition:opacity .4s ease,transform .4s ease}.landing-header.animate-in{opacity:1;transform:translateY(0)}.logo-img{width:80px;height:80px;object-fit:contain;margin:0 auto 12px;display:block}.app-name{font-family:Sora,sans-serif;font-size:32px;font-weight:700;color:var(--text-primary);margin-bottom:8px;letter-spacing:-.02em;line-height:1.1}.tagline{font-family:DM Sans,sans-serif;font-size:14px;color:var(--text-secondary);line-height:1.5;padding:0 16px}.cards-container{width:100%;display:flex;flex-direction:row;gap:24px;overflow-x:auto;overflow-y:visible;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--border) transparent;padding-bottom:8px}.cards-container::-webkit-scrollbar{height:6px}.cards-container::-webkit-scrollbar-track{background:transparent}.cards-container::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.cards-container::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.landing-card{position:relative;flex:0 0 auto;width:min(320px,85vw);min-width:min(280px,78vw);padding:32px 24px;border-radius:20px;cursor:pointer;transition:opacity .4s ease,transform .4s ease,box-shadow .2s ease,border-color .2s ease;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);opacity:0;transform:translateY(20px);-webkit-tap-highlight-color:transparent;touch-action:manipulation;scroll-snap-align:start;scroll-snap-stop:always}.landing-card.animate-in{opacity:1;transform:translateY(0)}.landing-card.animate-in.customer-card{transition-delay:.1s}.landing-card.animate-in.business-card{transition-delay:.2s}.landing-card:active{transform:scale(.98)}.customer-card{background:linear-gradient(135deg,#7c3aed1f,#7c3aed0a);border:1px solid rgba(124,58,237,.2);box-shadow:0 4px 20px #7c3aed1f,0 0 0 1px #ffffff0d inset}.business-card{background:linear-gradient(135deg,#f59e0b14,#f59e0b08);border:1px solid rgba(245,158,11,.15);box-shadow:0 4px 20px #00000040,0 0 0 1px #ffffff08 inset;padding:28px 24px}.card-icon{font-size:40px;margin-bottom:20px}.business-card .card-icon{font-size:36px;margin-bottom:16px}.card-label{font-family:DM Sans,sans-serif;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--primary);margin-bottom:12px}.business-label{color:var(--gold);font-size:11px;margin-bottom:10px}.card-title{font-family:Sora,sans-serif;font-size:26px;font-weight:600;color:var(--text-primary);margin-bottom:12px;line-height:1.2}.business-card .card-title{font-size:24px;margin-bottom:10px}.card-description{font-family:DM Sans,sans-serif;font-size:15px;line-height:1.5;color:var(--text-secondary);margin-bottom:24px}.business-card .card-description{font-size:14px;margin-bottom:20px}.card-cta{display:flex;align-items:center;justify-content:center;width:100%;min-height:52px;padding:16px 24px;border-radius:12px;font-family:DM Sans,sans-serif;font-size:17px;font-weight:600;border:none;cursor:pointer;transition:all .2s ease;-webkit-user-select:none;user-select:none;box-sizing:border-box}.card-cta:active{transform:scale(.97)}.customer-cta{background:var(--primary);color:#fff}.customer-cta:active{filter:brightness(.9)}.business-cta{background:transparent;border:1px solid rgba(245,158,11,.3);color:var(--gold);min-height:48px;padding:14px 24px;font-size:16px}.business-cta:active{background:#f59e0b26;border-color:#f59e0b66}.card-decoration{margin-top:20px;padding-top:20px;border-top:1px solid rgba(255,255,255,.06)}.progress-preview{display:flex;align-items:center;gap:6px;opacity:.6;flex-wrap:wrap;justify-content:center}.stamp{font-size:11px}.stamp.filled{color:var(--primary)}.stamp.empty{color:var(--text-muted)}.progress-text{font-family:DM Sans,sans-serif;font-size:12px;color:var(--text-muted);margin-left:6px}.landing-footer{text-align:center;padding:32px 0 24px}.landing-footer p{font-family:DM Sans,sans-serif;font-size:12px;color:var(--text-muted);line-height:1.6}.landing-footer a{color:var(--text-muted);text-decoration:none;transition:color .2s ease;padding:4px}.landing-footer a:hover,.landing-footer a:active{color:var(--text-secondary)}.about-section{padding:80px 20px;max-width:1200px;margin:0 auto;position:relative;z-index:1;width:100%}.about-section .section-content{display:flex;flex-direction:column;gap:48px}.about-section .section-header{text-align:center;margin-bottom:0}.about-section .section-title{font-family:Sora,sans-serif;font-size:36px;font-weight:700;color:var(--text-primary);margin-bottom:12px;letter-spacing:-.02em}.about-section .section-subtitle{font-family:DM Sans,sans-serif;font-size:16px;color:var(--text-secondary);line-height:1.6}.steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}.step-card{background:linear-gradient(135deg,#7c3aed0f,#7c3aed05);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(124,58,237,.15);border-radius:16px;padding:32px 24px;text-align:center;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.step-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--primary),var(--gold));opacity:0;transition:opacity .3s ease}.step-card:hover{transform:translateY(-4px);border-color:#7c3aed4d;box-shadow:0 12px 32px #7c3aed26}.step-card:hover:before{opacity:1}.step-icon{margin-bottom:20px}.step-card .icon-circle{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:50%;font-size:28px;transition:all .3s ease}.step-card:hover .icon-circle{background:var(--primary-muted);border-color:var(--primary);transform:scale(1.1)}.step-number{font-family:Sora,sans-serif;font-size:14px;font-weight:700;color:var(--primary);letter-spacing:.1em;margin-bottom:12px}.step-title{font-family:Sora,sans-serif;font-size:20px;font-weight:600;color:var(--text-primary);margin-bottom:12px;line-height:1.3}.step-description{font-family:DM Sans,sans-serif;font-size:14px;color:var(--text-secondary);line-height:1.6}.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding:32px 0 0;border-top:1px solid rgba(255,255,255,.06)}.stat-item{text-align:center}.stat-value{font-family:Sora,sans-serif;font-size:32px;font-weight:700;color:var(--primary);margin-bottom:8px;letter-spacing:-.02em}.stat-label{font-family:DM Sans,sans-serif;font-size:13px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.pricing-section{padding:80px 20px 100px;max-width:1200px;margin:0 auto;position:relative;z-index:1;width:100%}.pricing-section .section-content{display:flex;flex-direction:column;gap:48px}.pricing-section .section-header{text-align:center;margin-bottom:0}.pricing-section .section-title{font-family:Sora,sans-serif;font-size:36px;font-weight:700;color:var(--text-primary);margin-bottom:12px;letter-spacing:-.02em}.pricing-section .section-subtitle{font-family:DM Sans,sans-serif;font-size:16px;color:var(--text-secondary);line-height:1.6}.pricing-card-wrapper{display:flex;justify-content:center;margin-bottom:0}.pricing-card{width:100%;max-width:480px;background:linear-gradient(135deg,#7c3aed14,#f59e0b0a);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(124,58,237,.2);border-radius:20px;padding:40px 32px;position:relative;overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1)}.pricing-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--primary),var(--gold))}.pricing-card:hover{transform:translateY(-4px);border-color:#7c3aed4d;box-shadow:0 16px 48px #7c3aed33}.trial-badge{display:inline-flex;align-items:center;gap:6px;background:var(--gold-muted);border:1px solid var(--gold);border-radius:24px;padding:6px 14px;margin-bottom:24px}.badge-icon{font-size:16px}.badge-text{font-family:DM Sans,sans-serif;font-size:13px;font-weight:600;color:var(--gold);letter-spacing:.02em}.plan-header{margin-bottom:24px}.plan-name{font-family:Sora,sans-serif;font-size:24px;font-weight:700;color:var(--text-primary);margin-bottom:8px}.plan-description{font-family:DM Sans,sans-serif;font-size:14px;color:var(--text-secondary)}.price-container{margin-bottom:32px;padding-bottom:32px;border-bottom:1px solid rgba(255,255,255,.08)}.price-wrapper{display:flex;align-items:baseline;gap:4px;margin-bottom:8px}.price-container .currency{font-family:Sora,sans-serif;font-size:32px;font-weight:700;color:var(--primary)}.price-amount{font-family:Sora,sans-serif;font-size:56px;font-weight:700;color:var(--text-primary);letter-spacing:-.02em;line-height:1}.price-period{font-family:DM Sans,sans-serif;font-size:18px;color:var(--text-secondary)}.price-note{font-family:DM Sans,sans-serif;font-size:13px;color:var(--text-muted)}.features-list{display:flex;flex-direction:column;gap:14px;margin-bottom:32px}.feature-item{display:flex;align-items:center;gap:12px}.feature-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:var(--primary-muted);border-radius:50%;color:var(--primary);font-size:12px;font-weight:700;flex-shrink:0}.feature-text{font-family:DM Sans,sans-serif;font-size:15px;color:var(--text-primary);line-height:1.5}.pricing-cta{width:100%;background:var(--primary);color:#fff;border:none;border-radius:12px;padding:16px 24px;font-family:DM Sans,sans-serif;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:20px}.pricing-cta:hover{filter:brightness(1.1);transform:translateY(-2px);box-shadow:0 8px 24px #7c3aed4d}.pricing-cta:active{transform:translateY(0)}.cta-arrow{font-size:18px;transition:transform .2s ease}.pricing-cta:hover .cta-arrow{transform:translate(4px)}.guarantee-text{display:flex;align-items:center;justify-content:center;gap:8px;font-family:DM Sans,sans-serif;font-size:13px;color:var(--text-secondary);text-align:center}.guarantee-icon{font-size:16px}.trust-elements{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding-top:32px;border-top:1px solid rgba(255,255,255,.06)}.trust-item{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}.trust-icon{font-size:28px}.trust-text{font-family:DM Sans,sans-serif;font-size:13px;color:var(--text-secondary)}@keyframes landing-fade-in-up{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.landing-section{animation:landing-fade-in-up .8s cubic-bezier(.4,0,.2,1) forwards;opacity:0}.about-section.landing-section{animation-delay:.15s}.pricing-section.landing-section{animation-delay:.3s}@media (max-width: 768px){.about-section{padding:60px 20px}.about-section .section-title{font-size:28px}.about-section .section-subtitle{font-size:15px}.steps-grid{grid-template-columns:1fr;gap:24px}.stats-row{grid-template-columns:1fr;gap:20px}.stat-value{font-size:28px}.pricing-section{padding:60px 20px 80px}.pricing-card{padding:32px 24px}.price-amount{font-size:48px}.trust-elements{grid-template-columns:1fr;gap:20px}.features-list{gap:12px}.feature-text{font-size:14px}}@media (min-width: 769px) and (max-width: 1024px){.steps-grid{grid-template-columns:1fr;gap:24px}.pricing-card{max-width:520px}}@media (min-width: 428px){.landing-content{padding:56px 24px 48px}.landing-card{width:min(340px,82vw);min-width:min(300px,75vw)}}@media (min-width: 768px){.gradient-orb-1{width:600px;height:600px;top:-200px;left:-200px}.gradient-orb-2{width:500px;height:500px;bottom:-150px;right:-150px}@keyframes landing-float{0%,to{transform:translate(0)}50%{transform:translate(50px,50px)}}.landing-content{max-width:1200px;padding:64px 32px 48px;gap:48px}.landing-header,.cards-container{max-width:640px;margin-left:auto;margin-right:auto;width:100%}.logo-img{width:96px;height:96px;margin-bottom:14px}.app-name{font-size:40px;margin-bottom:10px}.tagline{font-size:15px;padding:0}.cards-container{flex-direction:column;gap:32px;overflow-x:visible;scroll-snap-type:none;align-items:center}.landing-card{width:100%;max-width:480px;min-width:0;padding:40px 32px}.landing-card:hover{transform:translateY(-4px)}.landing-card:active{transform:translateY(-2px) scale(.99)}.customer-card:hover{border-color:#7c3aed4d;box-shadow:0 10px 40px #7c3aed33,0 0 0 1px #ffffff14 inset}.business-card:hover{border-color:#f59e0b40;box-shadow:0 10px 36px #00000059,0 0 0 1px #ffffff0f inset}.card-icon{font-size:44px;margin-bottom:22px}.business-card .card-icon{font-size:40px;margin-bottom:20px}.card-label{font-size:13px;margin-bottom:14px}.business-label{font-size:12px;margin-bottom:12px}.card-title{font-size:30px;margin-bottom:14px}.business-card .card-title{font-size:27px;margin-bottom:12px}.card-description{font-size:15.5px;margin-bottom:28px}.business-card .card-description{font-size:14.5px;margin-bottom:24px}.card-cta{width:auto;padding:14px 28px;font-size:16px}.card-cta:hover{transform:translateY(-2px)}.customer-cta:hover{filter:brightness(1.1)}.business-cta:hover{background:#f59e0b1a;border-color:#f59e0b80}.card-decoration{margin-top:28px;padding-top:24px}.progress-preview{gap:8px}.stamp{font-size:12px}.progress-text{font-size:13px;margin-left:8px}.landing-footer{padding:40px 0}.landing-footer p{font-size:13px}}@media (min-width: 1024px){.landing-content{padding:80px 40px 60px;gap:60px}.logo-img{width:100px;height:100px;margin-bottom:16px}.app-name{font-size:48px;margin-bottom:12px}.tagline{font-size:16px}.landing-card{padding:48px}.business-card{padding:40px}.customer-card:hover{box-shadow:0 12px 48px #7c3aed40,0 0 0 1px #ffffff14 inset}.business-card:hover{box-shadow:0 12px 36px #0006,0 0 0 1px #ffffff0f inset}.card-icon{font-size:48px;margin-bottom:24px}.business-card .card-icon{font-size:40px;margin-bottom:20px}.card-label{font-size:14px;letter-spacing:.1em;margin-bottom:16px}.business-label{font-size:13px;margin-bottom:12px}.card-title{font-size:32px;margin-bottom:16px}.business-card .card-title{font-size:28px;margin-bottom:12px}.card-description{font-size:16px;line-height:1.6;margin-bottom:32px}.business-card .card-description{font-size:15px;margin-bottom:28px}.card-cta{padding:14px 32px;font-size:16px}.business-cta{padding:12px 28px;font-size:15px}.card-decoration{margin-top:32px}}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-base);padding:24px 16px;position:relative}.auth-page:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 50% 50%,rgba(124,58,237,.06) 0%,transparent 50%);pointer-events:none}.auth-page-business:before{background:radial-gradient(circle at 50% 50%,rgba(245,158,11,.05) 0%,transparent 50%)}.auth-container{position:relative;z-index:1;width:100%;max-width:100%;background:var(--bg-surface);border:1px solid var(--border);border-radius:16px;padding:32px 24px;box-shadow:var(--shadow-md)}.auth-back-link{display:inline-flex;align-items:center;font-size:14px;color:var(--text-secondary);text-decoration:none;margin-bottom:24px;padding:8px 0;transition:color .2s ease;-webkit-tap-highlight-color:transparent}.auth-back-link:active{color:var(--text-primary)}.auth-header{text-align:center;margin-bottom:32px}.auth-header-icon{font-size:36px;margin-bottom:12px}.auth-logo-img{width:56px;height:56px;object-fit:contain;margin:0 auto 16px;display:block}.auth-header h1{font-family:Sora,sans-serif;font-size:24px;color:var(--text-primary);margin-bottom:8px;line-height:1.2}.auth-header p{font-size:14px;color:var(--text-secondary);line-height:1.5}.auth-form,.auth-form .form-group{margin-bottom:20px}.auth-form .form-group label{display:block;font-size:14px;font-weight:500;color:var(--text-secondary);margin-bottom:8px}.auth-form .form-group input{width:100%;box-sizing:border-box;background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;padding:14px 16px;color:var(--text-primary);font-size:16px;transition:border-color .2s ease,box-shadow .2s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none}.auth-form .form-group input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-muted)}.auth-page-business .auth-form .form-group input:focus{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-muted)}.auth-form .form-group input[type=tel]{font-size:18px;letter-spacing:.5px}.auth-form-actions{margin-bottom:16px;text-align:right}.auth-forgot-link{font-size:14px;color:var(--text-secondary);text-decoration:none;padding:4px 0;-webkit-tap-highlight-color:transparent}.auth-forgot-link:active{color:var(--primary)}.auth-page-business .auth-forgot-link:active{color:var(--gold)}.auth-btn{width:100%;min-height:52px;margin-top:28px;border:none;border-radius:12px;padding:16px 24px;font-family:DM Sans,sans-serif;font-size:17px;font-weight:600;cursor:pointer;transition:filter .2s ease,transform .2s ease;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.auth-btn:disabled{opacity:.6;cursor:not-allowed}.auth-btn-primary{background:var(--primary);color:#fff}.auth-btn-primary:active:not(:disabled){filter:brightness(.9);transform:scale(.98)}.auth-btn-business{background:var(--gold);color:#0a0a0a}.auth-btn-business:active:not(:disabled){filter:brightness(.9);transform:scale(.98)}.auth-footer{text-align:center;padding-top:20px;border-top:1px solid var(--border)}.auth-footer p{font-size:14px;color:var(--text-secondary);line-height:1.6}.auth-footer a{color:var(--primary);text-decoration:none;font-weight:600;padding:4px 2px}.auth-page-business .auth-footer a{color:var(--gold)}.auth-footer a:active{opacity:.8}@media (min-width: 480px){.auth-container{max-width:440px;padding:40px 32px;border-radius:20px}.auth-back-link{margin-bottom:28px}.auth-header{margin-bottom:36px}.auth-header-icon{font-size:40px;margin-bottom:16px}.auth-header h1{font-size:26px}.auth-header p{font-size:15px}.auth-form{margin-bottom:24px}}@media (min-width: 768px){.auth-page{padding:40px 20px}.auth-page:before{background:radial-gradient(circle at 50% 50%,rgba(124,58,237,.08) 0%,transparent 50%)}.auth-page-business:before{background:radial-gradient(circle at 50% 50%,rgba(245,158,11,.06) 0%,transparent 50%)}.auth-container{padding:48px 40px}.auth-back-link{margin-bottom:32px}.auth-back-link:hover{color:var(--text-primary)}.auth-header{margin-bottom:40px}.auth-header h1{font-size:28px}.auth-form .form-group input{padding:12px 16px}.auth-btn{min-height:auto;padding:14px 24px;font-size:16px}.auth-btn-primary:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-1px)}.auth-forgot-link:hover{color:var(--primary)}.auth-page-business .auth-forgot-link:hover{color:var(--gold)}.auth-footer a:hover{text-decoration:underline}}.dev-otp-banner{padding:12px 16px;margin-bottom:20px;background:var(--primary-muted);border:1px solid rgba(124,58,237,.3);border-radius:10px;font-size:14px;color:var(--text-primary);text-align:center}.dev-otp-banner strong{font-family:Sora,monospace;letter-spacing:.1em}.dev-otp-hint{font-size:13px;color:var(--text-secondary);text-align:center;margin-bottom:20px;padding:12px;background:var(--bg-elevated);border-radius:8px}.dev-otp-hint code{font-size:12px;background:var(--bg-overlay);padding:2px 6px;border-radius:4px}.otp-input-container{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:24px;max-width:100%}.otp-input{width:100%;aspect-ratio:1;max-width:52px;margin:0 auto;background:var(--bg-elevated);border:2px solid var(--border);border-radius:12px;font-family:Sora,sans-serif;font-size:24px;font-weight:700;color:var(--text-primary);text-align:center;transition:border-color .2s ease,box-shadow .2s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none}.otp-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-muted);background:var(--bg-base)}.otp-input:disabled{opacity:.5;cursor:not-allowed}.resend-container{text-align:center;margin-top:16px}.resend-timer{font-size:14px;color:var(--text-secondary)}.auth-link-button{background:none;border:none;color:var(--primary);font-size:14px;font-weight:600;cursor:pointer;padding:8px 0;transition:opacity .2s ease;-webkit-tap-highlight-color:transparent}.auth-link-button:hover{opacity:.8}.auth-link-button:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 480px){.otp-input-container{gap:6px}.otp-input{font-size:20px;max-width:44px}}.superadmin-dashboard{padding:32px;max-width:1400px;margin:0 auto}.dashboard-header{margin-bottom:32px}.dashboard-header h1{font-family:Sora,sans-serif;font-size:32px;color:var(--text-primary)}.recent-activity-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:16px;padding:24px;height:100%;max-height:600px;display:flex;flex-direction:column}.recent-activity-card .card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.recent-activity-card .card-header h2{font-family:Sora,sans-serif;font-size:20px;color:var(--text-primary);margin:0}.pulse{width:8px;height:8px;background:var(--success);border-radius:50%;animation:superadmin-pulse 2s infinite}@keyframes superadmin-pulse{0%,to{opacity:1}50%{opacity:.3}}.activity-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.activity-list::-webkit-scrollbar{width:6px}.activity-list::-webkit-scrollbar-track{background:var(--bg-base);border-radius:3px}.activity-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.activity-item{display:flex;align-items:flex-start;gap:12px;padding:12px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;transition:all .2s ease}.activity-item:hover{background:var(--bg-overlay);border-color:var(--primary)}.activity-icon{font-size:24px;flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.activity-details{flex:1;min-width:0}.activity-text{font-size:14px;color:var(--text-primary);margin-bottom:4px;line-height:1.4}.business-name{font-weight:600;color:var(--primary)}.activity-time{font-size:12px;color:var(--text-muted)}.activity-skeleton{padding:24px;color:var(--text-muted);text-align:center}.recent-activity-card .empty-state{text-align:center;padding:40px 20px;color:var(--text-secondary)}.business-table-card .business-name-cell{display:flex;align-items:center;gap:12px;font-weight:500}.business-table-card .business-logo{width:32px;height:32px;border-radius:6px;object-fit:cover}.business-table-card .plan-badge{padding:4px 10px;border-radius:6px;font-size:11px;font-weight:600;letter-spacing:.05em}.business-table-card .plan-free{background:var(--text-muted);color:var(--bg-base)}.business-table-card .plan-pro{background:var(--primary);color:#fff}.business-table-card .plan-enterprise{background:var(--gold);color:var(--bg-base)}.business-table-card .text-muted{color:var(--text-muted);font-size:13px}.business-table-card .text-success{color:var(--success);font-weight:600}.business-table-card .actions-cell{display:flex;gap:8px;flex-wrap:wrap}.business-table-card .plan-select{background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;padding:6px 12px;color:var(--text-primary);font-size:var(--text-sm)}@media (max-width: 1200px){.business-table-card .table-wrapper table{font-size:13px}.business-table-card .table-wrapper th,.business-table-card .table-wrapper td{padding:10px 12px}}.table-mini{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.table-mini th,.table-mini td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border)}.table-mini th{color:var(--text-muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.05em}.table-mini td{color:var(--text-primary)}.table-mini tbody tr:hover td{background:var(--bg-elevated)}:root{--bg-base: #0D0D0D;--bg-surface: #141414;--bg-elevated: #1C1C1C;--bg-overlay: #242424;--primary: #7C3AED;--primary-hover: #6D28D9;--primary-muted: rgba(124, 58, 237, .12);--gold: #F59E0B;--gold-muted: rgba(245, 158, 11, .12);--text-primary: #F5F5F5;--text-secondary: #A1A1AA;--text-muted: #52525B;--success: #10B981;--success-muted: rgba(16, 185, 129, .12);--error: #EF4444;--error-muted: rgba(239, 68, 68, .12);--warning: #F59E0B;--border: rgba(255, 255, 255, .06);--border-active: rgba(124, 58, 237, .4);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4);--shadow-md: 0 4px 16px rgba(0, 0, 0, .5);--shadow-glow: 0 0 20px rgba(124, 58, 237, .15);--text-xs: 11px;--text-sm: 13px;--text-base: 14px;--text-md: 16px;--text-lg: 20px;--text-xl: 24px;--text-2xl: 32px;--text-3xl: 40px}*{margin:0;padding:0;box-sizing:border-box}html{height:100%;overflow:hidden;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}body{height:100%;min-height:100%;overflow-x:hidden;overflow-y:auto;font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg-base);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:Sora,sans-serif;font-weight:600;letter-spacing:-.02em;color:var(--text-primary)}h1{font-size:var(--text-xl)}@media (min-width: 768px){h1{font-size:var(--text-2xl)}}@media (min-width: 1024px){h1{font-size:var(--text-3xl)}}h2{font-size:var(--text-lg)}@media (min-width: 768px){h2{font-size:var(--text-xl)}}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-md{font-size:var(--text-md)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:var(--text-2xl)}.text-3xl{font-size:var(--text-3xl)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-muted{color:var(--text-muted)}.container{max-width:1200px;margin:0 auto;padding:0 16px}@media (min-width: 768px){.container{padding:0 24px}}@media (min-width: 1024px){.container{padding:0 40px}}.fade-in{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.shimmer{background:linear-gradient(90deg,var(--bg-surface) 0%,var(--bg-elevated) 50%,var(--bg-surface) 100%);background-size:200% 100%;animation:shimmer 1.5s infinite}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-base)}::-webkit-scrollbar-thumb{background:var(--bg-overlay);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}::selection{background:var(--primary-muted);color:var(--text-primary)}@media (min-width: 768px){.btn{width:auto!important}}@media (max-width: 767px){button,a,input,select,textarea,.btn,.sidebar-nav-item{min-height:44px}}img{max-width:100%;height:auto}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 16px;font-size:var(--text-sm);font-weight:500;font-family:DM Sans,sans-serif;border-radius:8px;border:none;cursor:pointer;transition:all .15s ease;text-decoration:none;white-space:nowrap}@media (min-width: 768px){.btn{padding:10px 20px;font-size:var(--text-base)}}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-ghost{background:transparent;border:1px solid var(--border);color:var(--text-secondary)}.btn-ghost:hover{background:var(--bg-elevated);border-color:var(--border-active);color:var(--text-primary)}.btn-danger{background:var(--error-muted);color:var(--error)}.btn-danger:hover{background:#ef444433}.btn:disabled{opacity:.5;cursor:not-allowed}.input{width:100%;background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;padding:10px 14px;color:var(--text-primary);font-size:var(--text-base);font-family:DM Sans,sans-serif;transition:all .2s ease}.input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-muted)}.input::placeholder{color:var(--text-muted)}.input-password-toggle{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:32px;height:32px;display:flex;align-items:center;justify-content:center;padding:0;border:none;background:transparent;color:var(--text-muted);cursor:pointer;border-radius:6px;transition:color .2s ease,background .2s ease}.input-password-toggle:hover{color:var(--text-secondary);background:var(--bg-elevated)}.input-password-toggle:focus-visible{outline:none;color:var(--primary);box-shadow:0 0 0 2px var(--primary-muted)}.input-password-toggle svg{flex-shrink:0}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;padding:16px;transition:border-color .2s ease,box-shadow .2s ease}@media (min-width: 768px){.card{padding:24px}}.card:hover{border-color:var(--border-active);box-shadow:var(--shadow-glow)}.badge{display:inline-flex;align-items:center;padding:2px 10px;font-size:12px;font-weight:500;border-radius:100px;text-transform:uppercase;letter-spacing:.05em}.badge-success{background:var(--success-muted);color:var(--success)}.badge-error{background:var(--error-muted);color:var(--error)}.badge-warning{background:var(--gold-muted);color:var(--gold)}.badge-primary{background:var(--primary-muted);color:var(--primary)}.badge-muted{background:var(--bg-overlay);color:var(--text-secondary)}.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.table{width:100%;border-collapse:collapse;min-width:600px}.table thead th{text-transform:uppercase;letter-spacing:.08em;font-size:10px;color:var(--text-muted);text-align:left;padding:8px 12px;font-weight:600}@media (min-width: 768px){.table thead th{font-size:11px;padding:12px 16px}}.table tbody td{padding:12px;border-bottom:1px solid var(--border);font-size:var(--text-sm)}@media (min-width: 768px){.table tbody td{padding:16px;font-size:var(--text-base)}}.table tbody tr:hover{background:var(--bg-elevated)}.table tbody tr:last-child td{border-bottom:none}.table-mobile{display:block}@media (min-width: 1024px){.table-mobile{display:none}}.table-mobile-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:12px}.table-desktop{display:none}@media (min-width: 1024px){.table-desktop{display:table}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease;padding:16px}.modal-content{background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;padding:20px;max-width:100%;width:100%;max-height:90vh;overflow-y:auto;animation:fadeIn .3s ease}@media (min-width: 768px){.modal-content{padding:32px;max-width:500px;width:90%}}.progress-container{position:relative;margin:20px 0}@media (min-width: 768px){.progress-container{margin:24px 0}}.progress-stamps{display:flex;justify-content:space-between;margin-bottom:8px;position:relative;gap:4px}.progress-stamp{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;transition:all .3s ease;flex-shrink:0}@media (min-width: 768px){.progress-stamp{width:24px;height:24px;font-size:12px}}.progress-stamp.completed{background:linear-gradient(135deg,var(--primary),var(--gold));color:#fff;box-shadow:0 0 12px #7c3aed66}.progress-stamp.pending{background:var(--bg-overlay);border:2px solid var(--border);color:var(--text-muted)}.progress-bar-track{width:100%;height:8px;background:var(--bg-overlay);border-radius:100px;overflow:hidden;position:relative}.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--gold));border-radius:100px;transition:width .6s cubic-bezier(.4,0,.2,1)}.progress-bar-fill.unlocked{animation:pulseGlow 2s ease-in-out infinite}@keyframes pulseGlow{0%,to{box-shadow:0 0 10px #f59e0b80}50%{box-shadow:0 0 20px #f59e0bcc}}.stat-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;padding:16px;transition:all .2s ease}@media (min-width: 768px){.stat-card{padding:24px}}.stat-card:hover{border-color:var(--border-active)}.stat-card-icon{width:36px;height:36px;border-radius:8px;background:var(--primary-muted);display:flex;align-items:center;justify-content:center;margin-bottom:12px;color:var(--primary);font-size:18px}@media (min-width: 768px){.stat-card-icon{width:40px;height:40px;margin-bottom:16px;font-size:20px}}.stat-card-value{font-family:Sora,sans-serif;font-size:var(--text-xl);font-weight:600;color:var(--text-primary);margin-bottom:4px}@media (min-width: 768px){.stat-card-value{font-size:var(--text-2xl)}}.stat-card-label{font-size:var(--text-xs);color:var(--text-secondary)}@media (min-width: 768px){.stat-card-label{font-size:var(--text-sm)}}.stat-card-trend{display:inline-flex;align-items:center;font-size:var(--text-xs);margin-top:8px;padding:2px 8px;border-radius:4px}.stat-card-trend.up{background:var(--success-muted);color:var(--success)}.stat-card-trend.down{background:var(--error-muted);color:var(--error)}.stat-card-subtitle{font-size:var(--text-xs);color:var(--text-muted);margin-top:2px}.stat-card.stat-card-gold .stat-card-icon{background:var(--gold-muted);color:var(--gold)}.stat-card-highlight{background:linear-gradient(135deg,#f59e0b14,#f59e0b08);border-color:#f59e0b4d}.stat-card-highlight:hover{border-color:#f59e0b80;box-shadow:0 8px 32px #f59e0b26}.stat-change{display:flex;align-items:center;gap:4px;margin-top:8px;font-size:13px;font-weight:500}.stat-change.up{color:var(--success)}.stat-change.down{color:var(--error)}.stat-change.neutral{color:var(--text-muted)}.change-icon{font-size:14px}.change-text{font-size:12px}.recent-visits-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:16px;padding:24px;height:100%}.recent-visits-card .card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.recent-visits-card .card-header h2{font-family:Sora,sans-serif;font-size:20px;color:var(--text-primary)}.live-indicator{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--success);font-weight:500}.pulse{width:8px;height:8px;background:var(--success);border-radius:50%;animation:stat-pulse 2s infinite}@keyframes stat-pulse{0%,to{opacity:1}50%{opacity:.3}}.recent-visits-skeleton{padding:24px;color:var(--text-muted);font-size:var(--text-sm)}.visits-list{display:flex;flex-direction:column;gap:12px}.visit-item{display:flex;align-items:center;gap:12px;padding:12px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;transition:all .2s ease}.visit-item:hover{background:var(--bg-overlay);border-color:var(--primary)}.visit-avatar{width:40px;height:40px;border-radius:50%;background:var(--primary-muted);color:var(--primary);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:16px;flex-shrink:0}.visit-details{flex:1;min-width:0}.visit-name{font-size:14px;font-weight:500;color:var(--text-primary);margin-bottom:2px}.visit-time{font-size:12px;color:var(--text-muted)}.visit-progress{display:flex;align-items:center;gap:8px;flex-shrink:0}.progress-badge{padding:4px 10px;background:var(--bg-base);border:1px solid var(--border);border-radius:6px;font-size:13px;color:var(--text-secondary);font-weight:500}.reward-badge{padding:4px 10px;background:var(--gold-muted);border:1px solid var(--gold);border-radius:6px;font-size:12px;color:var(--gold);font-weight:600}.recent-visits-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.recent-visits-empty .empty-icon{font-size:48px;margin-bottom:16px;opacity:.5}.recent-visits-empty h3{font-size:18px;color:var(--text-primary);margin-bottom:8px}.recent-visits-empty p{font-size:14px;color:var(--text-secondary);max-width:300px}.alerts-banner{background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;padding:16px 20px;margin-bottom:24px}.alerts-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.alerts-icon{font-size:20px}.alerts-title{font-size:14px;font-weight:600;color:var(--text-primary)}.alerts-list{display:flex;flex-direction:column;gap:8px}.alert-item{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:8px;font-size:14px}.alert-success{background:var(--success-muted);border:1px solid rgba(16,185,129,.2)}.alert-warning{background:var(--gold-muted);border:1px solid rgba(245,158,11,.2)}.alert-info{background:var(--primary-muted);border:1px solid rgba(124,58,237,.2)}.alert-emoji{font-size:18px}.alert-text{flex:1;color:var(--text-primary)}.alert-action{padding:4px 12px;background:transparent;border:1px solid var(--border);border-radius:6px;font-size:13px;color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.alert-action:hover{background:var(--bg-elevated);color:var(--text-primary)}.sidebar{width:220px;height:100vh;background:var(--bg-surface);border-right:1px solid var(--border);position:fixed;left:0;top:0;display:flex;flex-direction:column;z-index:200;transform:translate(-100%);transition:transform .3s ease}.sidebar.open{transform:translate(0)}@media (min-width: 1024px){.sidebar{transform:translate(0)}}.sidebar-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:150;display:none}.sidebar-overlay.open{display:block}@media (min-width: 1024px){.sidebar-overlay{display:none!important}}.sidebar-logo{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.sidebar-logo-img{width:36px;height:36px;object-fit:contain}@media (min-width: 768px){.sidebar-logo{padding:24px}.sidebar-logo-img{width:40px;height:40px}}.sidebar-close{display:block;background:none;border:none;color:var(--text-secondary);font-size:24px;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center}@media (min-width: 1024px){.sidebar-close{display:none}}.sidebar-nav{flex:1;padding:12px;overflow-y:auto}@media (min-width: 768px){.sidebar-nav{padding:16px}}.sidebar-nav-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;color:var(--text-secondary);text-decoration:none;font-size:var(--text-sm);transition:all .15s ease;margin-bottom:4px}@media (min-width: 768px){.sidebar-nav-item{padding:10px 16px;font-size:var(--text-base)}}.sidebar-nav-item:hover{background:var(--bg-elevated);color:var(--text-primary)}.sidebar-nav-item.active{background:var(--primary-muted);color:var(--primary)}.topbar{height:56px;background:var(--bg-surface);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 16px;position:sticky;top:0;z-index:100}@media (min-width: 768px){.topbar{height:64px;padding:0 24px}}@media (min-width: 1024px){.topbar{padding:0 32px}}.menu-toggle{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:none;border:none;color:var(--text-primary);font-size:24px;cursor:pointer;border-radius:8px;transition:background .15s ease}.menu-toggle:hover{background:var(--bg-elevated)}@media (min-width: 1024px){.menu-toggle{display:none}}.main-content{min-height:100vh;padding:16px;overflow-x:hidden;max-width:100vw;box-sizing:border-box}@media (min-width: 768px){.main-content{padding:24px}}@media (min-width: 1024px){.main-content{margin-left:220px;padding:32px 40px}}.skeleton{background:var(--bg-surface);border-radius:8px;animation:shimmer 1.5s infinite}.add-visit-form{background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;padding:24px;max-width:400px}.add-visit-form h3{font-family:Sora,sans-serif;font-size:var(--text-lg);color:var(--text-primary);margin-bottom:20px}.add-visit-form .form-group{margin-bottom:16px}.code-display-card{background:var(--bg-surface);border:2px solid var(--primary);border-radius:16px;padding:32px;max-width:500px;box-shadow:0 0 24px #8b5cf626;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.code-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.code-header h3{font-family:Sora,sans-serif;font-size:var(--text-lg);color:var(--text-primary);margin:0}.close-btn{background:transparent;border:none;color:var(--text-muted);font-size:24px;cursor:pointer;transition:color .2s ease;padding:4px;line-height:1}.close-btn:hover{color:var(--text-primary)}.customer-info{text-align:center;margin-bottom:32px;padding-bottom:24px;border-bottom:1px solid var(--border)}.customer-name{font-size:var(--text-md);color:var(--text-primary);font-weight:600;margin-bottom:4px}.customer-phone{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:8px}.customer-progress{font-size:var(--text-sm);color:var(--primary);font-weight:500;margin:0}.code-display{margin-bottom:24px}.code-digits{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.code-digits .digit{display:flex;align-items:center;justify-content:center;width:52px;height:64px;background:var(--bg-elevated);border:2px solid var(--primary);border-radius:12px;font-family:Sora,sans-serif;font-size:28px;font-weight:700;color:var(--primary)}@media (min-width: 480px){.code-digits .digit{width:60px;height:80px;font-size:36px}}.code-timer{text-align:center;margin-bottom:16px}.timer-normal{font-size:var(--text-base);color:var(--text-secondary)}.timer-warning{font-size:var(--text-base);color:var(--error);font-weight:600;animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.code-instructions{text-align:center;padding:16px;background:var(--primary-muted);border-radius:8px}.code-instructions p{font-size:var(--text-sm);color:var(--text-secondary);margin:0}.code-used-success-card{border-color:var(--success);box-shadow:0 0 24px #10b98133}.code-used-icon{width:64px;height:64px;margin:0 auto 20px;display:flex;align-items:center;justify-content:center;background:var(--success-muted);color:var(--success);font-size:32px;font-weight:700;border-radius:50%;animation:scaleIn .4s ease}@keyframes scaleIn{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}.code-used-message{text-align:center;color:var(--text-primary);font-size:var(--text-base);margin-bottom:8px}.code-used-visits{text-align:center;color:var(--text-secondary);font-size:var(--text-md)}.code-used-visits strong{color:var(--gold)}.code-entry-container{background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;padding:24px 16px;width:100%;max-width:100%;margin:0 auto;box-sizing:border-box;min-width:0}.code-entry-container h3{font-family:Sora,sans-serif;font-size:clamp(1.125rem,4vw,var(--text-xl));color:var(--text-primary);text-align:center;margin-bottom:8px}.code-entry-subtitle{font-size:var(--text-sm);color:var(--text-secondary);text-align:center;margin-bottom:24px;padding:0 4px}.code-input-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin-bottom:24px;min-width:0}.code-input{width:100%;min-width:0;aspect-ratio:1;max-height:48px;background:var(--bg-elevated);border:2px solid var(--border);border-radius:10px;font-family:Sora,sans-serif;font-size:clamp(16px,4.5vw,24px);font-weight:700;color:var(--text-primary);text-align:center;transition:all .2s ease;box-sizing:border-box}@media (min-width: 380px){.code-input-grid{gap:8px}.code-input{max-height:52px}}@media (min-width: 480px){.code-entry-container{padding:32px 24px}.code-input{font-size:24px;max-height:56px}}.code-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-muted);background:var(--bg-base)}.code-input:disabled{opacity:.5;cursor:not-allowed}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease;padding:12px;overflow-x:hidden;overflow-y:auto;box-sizing:border-box}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--bg-base);border-radius:16px;padding:24px;width:100%;max-width:min(400px,calc(100vw - 24px));max-height:min(90vh,calc(100vh - 24px));overflow-y:auto;overflow-x:hidden;animation:slideUp .3s ease;box-sizing:border-box;min-width:0}.btn-large{padding:16px 32px;font-size:var(--text-md)}.action-section{margin:24px 0}.main-action-section{margin:32px 0;display:flex;justify-content:center}.visit-success-celebration{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.visit-success-celebration.visit-success-visible{opacity:1;visibility:visible}.visit-success-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.visit-success-card{position:relative;width:100%;max-width:360px;background:linear-gradient(160deg,var(--bg-surface) 0%,var(--bg-elevated) 100%);border:2px solid var(--primary);border-radius:24px;padding:32px 24px;text-align:center;box-shadow:0 0 40px #7c3aed40,0 20px 60px #00000080;animation:celebrationPop .5s cubic-bezier(.34,1.56,.64,1)}@keyframes celebrationPop{0%{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}.visit-success-confetti{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;border-radius:24px}.visit-success-dot{position:absolute;width:8px;height:8px;border-radius:50%;background:var(--primary);top:50%;left:50%;animation:confettiOut 1.2s ease-out forwards;opacity:0;--i: 0;animation-delay:calc(var(--i) * .05s)}.visit-success-dot:nth-child(odd){background:var(--gold)}@keyframes confettiOut{0%{transform:translate(0) scale(0);opacity:1}to{transform:translate(calc((var(--i) % 4 - 2) * 80px),calc(-100px - (var(--i) % 3) * 40px)) scale(1);opacity:0}}.visit-success-emoji{font-size:56px;line-height:1;margin-bottom:16px;animation:bounce .6s ease .2s both}@keyframes bounce{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.visit-success-title{font-family:Sora,sans-serif;font-size:1.5rem;color:var(--text-primary);margin-bottom:8px;letter-spacing:-.02em}.visit-success-subtitle,.visit-success-label{font-size:var(--text-base);color:var(--text-secondary);margin-bottom:12px}.visit-success-progress-ring{display:inline-flex;align-items:baseline;gap:2px;margin:16px 0 4px;padding:12px 24px;background:var(--primary-muted);border-radius:16px;border:2px solid var(--primary)}.visit-success-count{font-family:Sora,sans-serif;font-size:2rem;font-weight:700;color:var(--primary)}.visit-success-divider{font-size:1.5rem;color:var(--text-muted)}.visit-success-total{font-family:Sora,sans-serif;font-size:1.5rem;font-weight:600;color:var(--text-secondary)}.visit-success-cta{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.5;margin-top:16px;padding:0 8px}.visit-success-cta strong{color:var(--gold)}.visit-success-streak{background:var(--gold-muted);padding:12px;border-radius:12px;border:1px solid rgba(245,158,11,.3);margin-top:20px}.visit-success-btn{display:block;width:100%;margin-top:24px;padding:14px 24px;font-size:var(--text-md);font-weight:600;font-family:DM Sans,sans-serif;color:#fff;background:var(--primary);border:none;border-radius:12px;cursor:pointer;transition:background .2s ease,transform .1s ease}.visit-success-btn:active{transform:scale(.98)}.visit-success-btn:hover{background:var(--primary-hover)}.customer-dashboard{max-width:480px;width:100%;margin:0 auto;padding-bottom:40px;min-width:0;box-sizing:border-box}.customer-dashboard-title{font-family:Sora,sans-serif;font-size:1.75rem;font-weight:700;color:var(--text-primary);margin-bottom:6px;letter-spacing:-.03em}.customer-dashboard-subtitle{font-size:var(--text-base);color:var(--text-secondary);margin-bottom:28px;line-height:1.5}.customer-dashboard-action{margin-bottom:32px}.customer-dashboard-cta{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:56px;padding:16px 24px;font-family:Sora,sans-serif;font-size:1.125rem;font-weight:600;color:#fff;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-hover) 100%);border:none;border-radius:16px;cursor:pointer;transition:transform .15s ease,box-shadow .2s ease;box-shadow:0 4px 20px #7c3aed59}.customer-dashboard-cta:active{transform:scale(.98)}.customer-dashboard-cta:hover{box-shadow:0 6px 28px #7c3aed66}.customer-dashboard-cta-icon{font-size:1.5rem}.customer-dashboard-tip{padding:20px;background:var(--bg-elevated);border-radius:16px;border:1px solid var(--border)}.customer-dashboard-tip p{color:var(--text-secondary);font-size:var(--text-sm);line-height:1.6;margin:0}.customer-dashboard-section-title{font-family:Sora,sans-serif;font-size:var(--text-lg);font-weight:600;color:var(--text-primary);margin-bottom:16px}.customer-dashboard-muted{color:var(--text-muted);font-size:var(--text-sm);margin:0 0 16px}.customer-dashboard-cafes{margin-top:32px;margin-bottom:24px}.cafe-list{display:flex;flex-direction:column;gap:10px}.cafe-list-card{display:flex;align-items:center;gap:14px;width:100%;padding:16px;background:var(--bg-surface);border:1px solid var(--border);border-radius:14px;cursor:pointer;transition:border-color .2s ease,background .2s ease;text-align:left;color:inherit;font:inherit}.cafe-list-card:hover{background:var(--bg-elevated);border-color:var(--border-active)}.cafe-list-card-selected{border-color:var(--primary);background:var(--primary-muted);box-shadow:0 0 0 1px var(--primary)}.cafe-list-card-icon{flex-shrink:0;width:48px;height:48px;border-radius:12px;background:var(--bg-elevated);display:flex;align-items:center;justify-content:center;overflow:hidden}.cafe-list-card-logo{width:100%;height:100%;object-fit:cover}.cafe-list-card-emoji{font-size:24px}.cafe-list-card-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.cafe-list-card-name{font-weight:600;font-size:var(--text-base);color:var(--text-primary)}.cafe-list-card-progress{font-size:var(--text-sm);color:var(--text-secondary);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.cafe-list-card-badge{display:inline-block;padding:2px 8px;background:var(--gold-muted);color:var(--gold);font-size:var(--text-xs);font-weight:600;border-radius:6px}.cafe-list-card-chevron{flex-shrink:0;font-size:1.25rem;color:var(--text-muted);font-weight:300}.cafe-progress-detail-wrap{margin-top:20px}.cafe-progress-detail{padding:20px;border-radius:16px;border:1px solid var(--border)}.cafe-progress-detail-title{font-family:Sora,sans-serif;font-size:var(--text-lg);font-weight:600;color:var(--text-primary);margin-bottom:16px}.cafe-progress-detail-stats{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px}.cafe-progress-detail-count{font-size:var(--text-base);color:var(--primary);font-weight:600}.cafe-progress-detail-reward{font-size:var(--text-sm);color:var(--gold);font-weight:500}.cafe-progress-detail-chart{margin-top:24px;padding-top:20px;border-top:1px solid var(--border)}.cafe-progress-detail-chart-title{font-family:Sora,sans-serif;font-size:var(--text-base);font-weight:600;color:var(--text-secondary);margin-bottom:12px}.modal-content-mobile{width:100%;max-width:min(400px,calc(100vw - 24px));padding:20px 16px;box-sizing:border-box;min-width:0}@media (min-width: 380px){.modal-content-mobile{padding:24px 20px}}
