:root{--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-success: #16a34a;--color-success-hover: #15803d;--color-checkout: #0891b2;--color-checkout-hover: #0e7490;--color-warning: #d97706;--color-warning-hover: #b45309;--color-danger: #dc2626;--color-danger-hover: #b91c1c;--color-text: #1f2937;--color-text-muted: #6b7280;--color-border: #e5e7eb;--color-bg: #f9fafb;--color-surface: #ffffff;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--radius: 8px;--radius-lg: 16px;--shadow: 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .06);--shadow-lg: 0 20px 40px rgba(17, 24, 39, .12), 0 4px 10px rgba(17, 24, 39, .06);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}body{margin:0;font-family:var(--font-sans);font-size:16px;line-height:1.5;color:var(--color-text);background:var(--color-bg)}h1,h2,h3,p{margin:0 0 var(--space-4)}h1{font-size:30px;font-weight:700}h2{font-size:21px;font-weight:600}h3{font-size:18px;font-weight:600}a{color:var(--color-primary);text-decoration:none}a:hover{color:var(--color-primary-hover)}.link{font-size:14px;color:var(--color-text-muted);text-decoration:underline}.link:hover{color:var(--color-text)}.page-container{max-width:1120px;margin:0 auto;padding:0 var(--space-6)}.page-content{padding:var(--space-8) 0}.page-title{padding-top:var(--space-6);padding-bottom:var(--space-6)}.page-title h2{margin-bottom:var(--space-1)}.page-title p{margin:0;font-size:14px;color:var(--color-text-muted)}.card-danger{border-color:#dc26264d}.card-danger h3{color:var(--color-danger)}.card-muted{opacity:.6}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--space-6)}.section+.section{margin-top:var(--space-6)}.events-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-6);margin-bottom:var(--space-6)}.event-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--space-6);display:flex;flex-direction:column}.event-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-2)}.event-card-title{margin:0;font-size:17px}.event-card-meta{font-size:13px;color:var(--color-text-muted);margin:0 0 var(--space-1)}.event-card-actions{display:flex;gap:var(--space-3);margin-top:var(--space-4)}.status-badge{flex-shrink:0;display:inline-flex;align-items:center;font-size:12px;font-weight:600;padding:var(--space-1) var(--space-3);border-radius:999px;white-space:nowrap}.status-badge--live,.status-badge--success{background:#16a34a1f;color:var(--color-success)}.status-badge--upcoming{background:#2563eb1f;color:var(--color-primary)}.status-badge--draft{background:#d977061f;color:var(--color-warning)}.status-badge--past{background:var(--color-bg);color:var(--color-text-muted)}.guest-wrap{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-6)}.logo{width:64px;height:64px;fill:var(--color-primary)}.brand-link{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);margin-bottom:var(--space-6);text-decoration:none}.brand-name{font-size:20px;font-weight:700;color:var(--color-text)}.guest-footer{margin-top:var(--space-6);font-size:13px;color:var(--color-text-muted)}.guest-footer a{color:var(--color-text-muted);text-decoration:underline}.guest-divider{border:none;border-top:1px solid var(--color-border);margin:var(--space-6) 0}.guest-card{width:100%;max-width:420px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--space-8)}.site-header{background:var(--color-surface);border-bottom:1px solid var(--color-border)}.site-nav{max-width:1120px;margin:0 auto;padding:0 var(--space-6);display:flex;align-items:center;justify-content:space-between;height:64px}.nav-left{display:flex;align-items:center;gap:var(--space-8)}.nav-brand{display:flex;align-items:center}.nav-brand svg{width:32px;height:32px;fill:var(--color-text)}.nav-links{display:flex;gap:var(--space-6)}.nav-link{font-size:14px;font-weight:500;color:var(--color-text-muted);padding:var(--space-2) 0;border-bottom:2px solid transparent}.nav-link:hover{color:var(--color-text)}.nav-link.active{color:var(--color-text);border-bottom-color:var(--color-primary)}.nav-user-menu{display:flex;align-items:center}.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:var(--space-2);color:var(--color-text-muted)}.nav-mobile-backdrop{display:none;position:fixed;inset:0;background:#11182766;z-index:45}.nav-mobile-backdrop.open{display:block}.nav-mobile-menu{display:none;position:fixed;top:calc(64px + var(--space-2));right:var(--space-4);left:var(--space-4);max-width:320px;margin-left:auto;background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:50;overflow:hidden}.nav-mobile-menu.open{display:block}.nav-mobile-user{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--color-border)}.nav-mobile-avatar{display:flex;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0;border-radius:50%;background:var(--color-primary);color:#fff;font-size:16px;font-weight:600}.nav-mobile-user-name{font-size:15px;font-weight:600;color:var(--color-text)}.nav-mobile-user-email{font-size:13px;color:var(--color-text-muted)}.nav-mobile-links{padding:var(--space-2)}.nav-mobile-links form{display:block}.nav-mobile-link{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3);border:none;border-radius:var(--radius);background:none;font-size:14px;font-weight:500;color:var(--color-text);text-align:left;cursor:pointer}.nav-mobile-link:hover{background:var(--color-bg);color:var(--color-text)}.nav-mobile-link svg{width:18px;height:18px;flex-shrink:0;color:var(--color-text-muted)}@media(max-width:640px){.nav-links,.nav-user-menu{display:none}.nav-toggle{display:block}.page-title{padding-top:var(--space-4);padding-bottom:var(--space-4)}.page-title .form-actions-between{flex-wrap:wrap}.page-title .form-actions-between>.btn{width:100%}.page-title .form-actions-between>.form-actions{flex-wrap:wrap}}.bottom-nav{display:none;position:fixed;left:0;right:0;bottom:0;background:var(--color-surface);border-top:1px solid var(--color-border);z-index:40;padding-bottom:env(safe-area-inset-bottom)}.bottom-nav-link{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--space-2) 0;font-size:11px;font-weight:500;color:var(--color-text-muted)}.bottom-nav-link svg{width:22px;height:22px}.bottom-nav-link.active{color:var(--color-primary)}@media(max-width:640px){.bottom-nav{display:flex}main{padding-bottom:64px}}.dropdown{position:relative}.dropdown-trigger{display:flex;align-items:center;gap:var(--space-1);background:none;border:none;font-size:14px;color:var(--color-text-muted);cursor:pointer;padding:var(--space-2) var(--space-3)}.dropdown-trigger svg{width:14px;height:14px;fill:currentColor}.dropdown-menu{display:none;position:absolute;right:0;top:calc(100% + var(--space-2));min-width:180px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;z-index:50}.dropdown.open .dropdown-menu{display:block}.dropdown-item{display:block;width:100%;padding:var(--space-2) var(--space-4);font-size:14px;color:var(--color-text);background:none;border:none;text-align:left;cursor:pointer}.dropdown-item:hover{background:var(--color-bg);color:var(--color-text)}.field{margin-bottom:var(--space-4)}.label{display:block;font-size:14px;font-weight:500;color:var(--color-text);margin-bottom:var(--space-1)}.input{display:block;width:100%;padding:var(--space-2) var(--space-3);font-size:15px;font-family:inherit;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius)}.input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb26}.field-error{margin:var(--space-1) 0 0;padding:0;list-style:none;font-size:13px;color:var(--color-danger)}.field-hint{margin:var(--space-1) 0 0;font-size:13px;color:var(--color-text-muted)}.password-field{position:relative}.password-field .input{padding-right:44px}.password-toggle{position:absolute;top:50%;right:var(--space-2);transform:translateY(-50%);display:flex;align-items:center;justify-content:center;padding:var(--space-1);background:none;border:none;color:var(--color-text-muted);cursor:pointer}.password-toggle:hover{color:var(--color-text)}.password-toggle svg{width:18px;height:18px}.checkbox-label{display:inline-flex;align-items:center;gap:var(--space-2);font-size:14px;color:var(--color-text-muted)}.status-message{font-size:14px;font-weight:500;color:var(--color-success-hover);background:#16a34a1a;border:1px solid rgba(22,163,74,.25);border-radius:var(--radius);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4)}.action-scroll{display:flex;gap:var(--space-2);margin-top:var(--space-4);overflow-x:auto;scrollbar-width:none;--fade-left: 0px;--fade-right: 24px;-webkit-mask-image:linear-gradient(to right,transparent,black var(--fade-left),black calc(100% - var(--fade-right)),transparent);mask-image:linear-gradient(to right,transparent,black var(--fade-left),black calc(100% - var(--fade-right)),transparent)}.action-scroll.is-scrolled{--fade-left: 24px}.action-scroll.is-at-end{--fade-right: 0px}.action-scroll::-webkit-scrollbar{display:none}.action-scroll .btn{flex-shrink:0;white-space:nowrap}.icon-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:40px;height:40px;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer}.icon-btn:hover{background:var(--color-bg);color:var(--color-text)}.icon-btn svg{width:16px;height:16px}.icon-btn-danger:hover{background:#dc262614;border-color:#dc26264d;color:var(--color-danger)}.session-list{display:flex;flex-direction:column;gap:var(--space-2);margin:var(--space-2) 0 var(--space-3)}.session-single{display:flex;align-items:center;gap:var(--space-2);margin:var(--space-3) 0}.mode-toggle{display:flex;gap:var(--space-2)}.mode-toggle-btn{flex:1;opacity:.5}.mode-toggle-btn.active{opacity:1}.session-row{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius)}.session-row-form{display:flex;align-items:center;gap:var(--space-2);flex:1;min-width:0}.session-row-main{flex:1;min-width:0}.session-name-input{width:100%;padding:var(--space-1) 0;border:none;border-bottom:1px solid transparent;border-radius:0;background:none;font-size:14px;font-weight:600}.session-name-input:focus{border-bottom-color:var(--color-primary);box-shadow:none}.session-name{margin:0;font-size:14px;font-weight:600;color:var(--color-text)}.session-stats{margin:2px 0 0;font-size:12px;color:var(--color-text-muted)}.form-actions{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-4)}.form-actions-end{justify-content:flex-end}.form-actions-between{justify-content:space-between}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:14px;font-weight:600;border-radius:var(--radius);border:1px solid transparent;cursor:pointer;text-decoration:none;line-height:1.4}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-hover);color:#fff}.btn-secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.btn-secondary:hover{background:var(--color-bg);color:var(--color-text)}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover{background:var(--color-danger-hover);color:#fff}.btn-success{background:var(--color-primary);color:#fff}.btn-success:hover{background:var(--color-primary-hover);color:#fff}.btn-checkout{background:var(--color-warning);color:#fff}.btn-checkout:hover{background:var(--color-warning-hover);color:#fff}.btn-lg{padding:var(--space-3) var(--space-6);font-size:15px}.btn-block{display:flex;width:100%}.auth-shell{min-height:100vh;display:flex}.auth-brand{flex:1 1 45%;background:linear-gradient(160deg,var(--color-primary),var(--color-primary-hover));color:#fff;padding:var(--space-12);display:flex;flex-direction:column;justify-content:center}.auth-brand-content{max-width:380px;margin:0 auto}.auth-brand-logo{width:40px;height:40px;fill:#fff;margin-bottom:var(--space-8)}.auth-brand h1{font-size:28px;color:#fff;margin-bottom:var(--space-3)}.auth-brand-lead{font-size:15px;color:#ffffffd9;margin-bottom:var(--space-8)}.auth-feature-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-4)}.auth-feature-item{display:flex;align-items:flex-start;gap:var(--space-3);font-size:14px;color:#ffffffe6}.auth-feature-item svg{width:18px;height:18px;flex-shrink:0;margin-top:2px}.auth-form-panel{flex:1 1 55%;display:flex;align-items:center;justify-content:center;padding:var(--space-6);background:var(--color-surface)}.auth-form-wrap{width:100%;max-width:380px}.auth-form-brand{display:none;align-items:center;gap:var(--space-2);margin-bottom:var(--space-6);text-decoration:none}.auth-form-logo{width:32px;height:32px;fill:var(--color-primary)}.auth-form-brand-name{font-size:18px;font-weight:700;color:var(--color-text)}.auth-form-header{margin-bottom:var(--space-8)}.auth-form-header h2{margin-bottom:var(--space-1)}.auth-form-header p{color:var(--color-text-muted);font-size:14px;margin:0}.auth-form-footer{margin-top:var(--space-6);font-size:14px;color:var(--color-text-muted);text-align:center}@media(max-width:900px){.auth-brand{display:none}.auth-form-brand{display:flex}.auth-form-panel{flex:1 1 100%}}.landing-header{border-bottom:1px solid var(--color-border);background:var(--color-surface)}.landing-nav{max-width:1120px;margin:0 auto;padding:var(--space-4) var(--space-6);display:flex;align-items:center;justify-content:space-between}.landing-nav-brand{display:flex;align-items:center;gap:var(--space-2);font-weight:700;font-size:18px;color:var(--color-text)}.landing-nav-brand svg{width:28px;height:28px;fill:var(--color-primary)}.landing-nav-actions{display:flex;align-items:center;gap:var(--space-3)}.hero{padding:var(--space-12) var(--space-6);overflow:hidden}.hero-grid{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:var(--space-12);align-items:center}.hero h1{font-size:40px;margin-bottom:var(--space-4)}.hero-lead{font-size:18px;color:var(--color-text-muted);margin-bottom:var(--space-8)}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-4)}.hero-login-hint{font-size:14px;color:var(--color-text-muted)}.hero-visual{position:relative;display:flex;align-items:center;justify-content:center;min-height:320px}.hero-visual-glow{position:absolute;width:280px;height:280px;background:var(--color-primary);opacity:.14;filter:blur(70px);border-radius:50%}.hero-card{position:relative;width:240px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-6);display:flex;flex-direction:column;align-items:center;gap:var(--space-3);transform:rotate(-3deg)}.hero-card-qr{width:100%;aspect-ratio:1;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;overflow:hidden}.hero-card-qr canvas{width:100%;height:100%}.hero-card-info{text-align:center}.hero-card-name{margin:0;font-weight:600;font-size:15px}.hero-card-meta{margin:var(--space-1) 0 0;font-size:13px;color:var(--color-text-muted)}.hero-card-status{display:inline-flex;align-items:center;gap:var(--space-1);font-size:12px;font-weight:600;color:var(--color-success);background:#16a34a1a;padding:var(--space-1) var(--space-3);border-radius:999px}.hero-card-status:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--color-success)}@media(min-width:900px){.hero-grid{grid-template-columns:1.1fr 1fr}}.section-heading{text-align:center;margin-bottom:var(--space-8)}.how-it-works{padding:var(--space-12) var(--space-6)}.how-it-works-inner{max-width:1120px;margin:0 auto}.steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-8)}.step{text-align:center}.step-number{width:36px;height:36px;margin:0 auto var(--space-4);display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--color-primary);color:#fff;font-weight:700;font-size:15px}.step h3{margin-bottom:var(--space-2)}.step p{font-size:14px;color:var(--color-text-muted);margin:0}.features{padding:var(--space-12) var(--space-6);background:var(--color-surface);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.features-grid{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-6)}.feature-card{padding:var(--space-2)}.feature-icon{width:40px;height:40px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-4)}.feature-icon svg{width:20px;height:20px}.feature-icon--primary{background:#2563eb1f;color:var(--color-primary)}.feature-icon--warning{background:#d977061f;color:var(--color-warning)}.feature-icon--success{background:#16a34a1f;color:var(--color-success)}.feature-icon--checkout{background:#0891b21f;color:var(--color-checkout)}.feature-card h3{margin-bottom:var(--space-2)}.feature-card p{font-size:14px;color:var(--color-text-muted);margin:0}.site-footer{border-top:1px solid var(--color-border);background:var(--color-surface);padding:var(--space-8) var(--space-6) var(--space-6)}.footer-copyright{max-width:1120px;margin:0 auto;text-align:center;font-size:13px;color:var(--color-text-muted)}@media(max-width:900px){.features-grid{grid-template-columns:repeat(2,1fr)}.steps-grid{grid-template-columns:1fr;gap:var(--space-6)}.hero-visual{min-height:260px}}@media(max-width:560px){.features-grid{grid-template-columns:1fr}.hero h1{font-size:30px}}.scan-mode-toggle{display:flex;gap:4px;padding:4px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:var(--space-4)}.scan-mode-btn{flex:1;padding:var(--space-2) var(--space-4);border:none;border-radius:calc(var(--radius) - 2px);background:transparent;color:var(--color-text-muted);font-size:14px;font-weight:600;cursor:pointer;transition:background .15s ease,color .15s ease}.scan-mode-btn:hover{color:var(--color-text)}.scan-mode-btn[data-scan-mode=in].active{background:var(--color-success);color:#fff}.scan-mode-btn[data-scan-mode=out].active{background:var(--color-warning);color:#fff}#qr-reader{width:100%;border-radius:var(--radius);overflow:hidden;box-shadow:0 0 #16a34a00;transition:box-shadow .15s ease-out}#qr-reader.qr-flash{box-shadow:0 0 0 4px var(--color-success)}.scan-result{display:none;margin-top:var(--space-4);padding:var(--space-4);border-radius:var(--radius);font-size:15px;font-weight:600;text-align:center}.scan-result-success{display:block;background:#16a34a1a;color:var(--color-success)}.scan-result-warning{display:block;background:#d977061a;color:var(--color-warning)}.scan-result-error{display:block;background:#dc26261a;color:var(--color-danger)}.scan-result-message{margin:0}.scan-result-details{display:none;margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid rgba(0,0,0,.1);max-height:140px;overflow-y:auto;text-align:left;font-weight:400;font-size:13px}.scan-result-details p{margin:0 0 var(--space-1);opacity:.85}.scan-confirm{display:none;margin-top:var(--space-4);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg)}.scan-confirm-name{margin:0 0 var(--space-2);font-size:18px;font-weight:700;color:var(--color-text)}.scan-confirm-details p{margin:0 0 var(--space-1)}.modal-backdrop{display:none;position:fixed;inset:0;background:#11182799;align-items:center;justify-content:center;padding:var(--space-4);z-index:100}.modal-backdrop.open{display:flex}.modal{width:100%;max-width:480px;background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--space-6)}.modal .form-actions-end{justify-content:center}.modal .form-actions-end>.btn{padding:var(--space-3) var(--space-6);font-size:15px}@media(max-width:480px){.modal .form-actions-end{flex-direction:column-reverse}.modal .form-actions-end>.btn{width:100%}}
