:root{--bg: #0f1c1a;--bg-elev: #17302b;--ink: #f3f0e7;--muted: #a8b5b0;--accent: #d4a017;--accent-2: #2dd4a8;--danger: #e85d4c;--font-display: "Fraunces", Georgia, serif;--font-body: "DM Sans", sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font-body);color:var(--ink);background:radial-gradient(ellipse 80% 50% at 10% -10%,rgba(45,212,168,.18),transparent),radial-gradient(ellipse 60% 40% at 100% 0%,rgba(212,160,23,.12),transparent),var(--bg)}a{color:var(--accent-2)}h1,h2,.brand{font-family:var(--font-display);font-weight:700;letter-spacing:-.02em}.shell{max-width:1100px;margin:0 auto;padding:2rem 1.25rem 4rem}.card-form{background:color-mix(in srgb,var(--bg-elev) 88%,black);border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);border-radius:12px;padding:1.5rem;max-width:420px}label{display:block;font-size:.85rem;color:var(--muted);margin-bottom:.35rem}input{width:100%;margin-bottom:1rem;padding:.7rem .85rem;border-radius:8px;border:1px solid color-mix(in srgb,var(--ink) 18%,transparent);background:#0c1614;color:var(--ink);font:inherit}button{font:inherit;font-weight:600;border:0;border-radius:8px;padding:.7rem 1.1rem;cursor:pointer;background:var(--accent-2);color:#10201c}button.secondary{background:transparent;color:var(--ink);border:1px solid color-mix(in srgb,var(--ink) 25%,transparent)}.nav{display:flex;gap:1rem;flex-wrap:wrap;align-items:center;position:sticky;top:0;z-index:20;margin:-1rem 0 1.75rem;padding:.85rem 0;background:color-mix(in srgb,var(--bg) 88%,transparent)}.nav a.brand{display:flex;align-items:center;margin-right:.5rem}.brand-logo{display:block;width:auto;height:40px;filter:brightness(0) invert(1)}.brand-logo--nav{height:28px}.brand-logo--hero{height:44px;margin-bottom:1rem}.brand-logo--ticket{height:32px;margin:0 auto .85rem}.brand-logo--landing{height:44px;margin-bottom:1rem}.nav a{text-decoration:none;color:var(--muted)}.nav a.active,.nav a:hover{color:var(--ink)}.error{color:var(--danger);margin-bottom:1rem}.grid-stats{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.stat{padding:1rem 1.15rem;border-radius:10px;background:color-mix(in srgb,var(--bg-elev) 90%,black);border:1px solid color-mix(in srgb,var(--ink) 10%,transparent)}.stat strong{display:block;font-size:1.6rem;font-family:var(--font-display)}.card-form.wide{max-width:640px}textarea,select{width:100%;margin-bottom:1rem;padding:.7rem .85rem;border-radius:8px;border:1px solid color-mix(in srgb,var(--ink) 18%,transparent);background:#0c1614;color:var(--ink);font:inherit}.row{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}.table{width:100%;border-collapse:collapse;font-size:.95rem}.table th,.table td{text-align:left;padding:.65rem .4rem;border-bottom:1px solid color-mix(in srgb,var(--ink) 12%,transparent)}.table th{color:var(--muted);font-weight:600}.badge{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.75rem;background:color-mix(in srgb,var(--accent-2) 20%,transparent);color:var(--accent-2)}.badge.warn{background:color-mix(in srgb,var(--accent) 25%,transparent);color:var(--accent)}.list-actions{display:flex;gap:.5rem;flex-wrap:wrap}.list-actions button{padding:.35rem .7rem;font-size:.85rem}.stack{display:grid;gap:1.5rem}.muted{color:var(--muted)}.landing-page{min-height:100vh;background:var(--landing-bg, #0f1c1a);color:var(--landing-ink, #f3f0e7)}.landing-hero{min-height:42vh;background-size:cover;background-position:center;background-repeat:no-repeat}.landing-hero-fallback{background:radial-gradient(ellipse 70% 60% at 20% 20%,color-mix(in srgb,var(--landing-accent, #2dd4a8) 35%,transparent),transparent),radial-gradient(ellipse 50% 40% at 90% 10%,rgba(212,160,23,.2),transparent),var(--landing-bg, #0f1c1a)}.landing-inner{max-width:520px;margin:0 auto;padding:2rem 1.25rem 4rem}.landing-logo{max-height:56px;max-width:180px;object-fit:contain;margin-bottom:1rem}.landing-sub{opacity:.85;margin-top:-.35rem}.landing-form{max-width:none;margin-top:1.5rem;background:color-mix(in srgb,#000 35%,transparent)}.tabs{display:flex;gap:.35rem;flex-wrap:wrap;margin:1.25rem 0 1.5rem;border-bottom:1px solid color-mix(in srgb,var(--ink) 12%,transparent);padding-bottom:.5rem}.tab{background:transparent;color:var(--muted);border:0;border-radius:8px 8px 0 0;padding:.55rem .9rem;cursor:pointer;font-weight:600}.tab:hover{color:var(--ink)}.tab.active{color:var(--bg);background:var(--accent-2)}.ticket{max-width:420px;margin:0 auto;padding:1.5rem;border-radius:16px;background:color-mix(in srgb,var(--bg-elev) 92%,black);border:1px solid color-mix(in srgb,var(--ink) 14%,transparent);text-align:center}.ticket-qr{display:inline-flex;padding:.75rem;margin:1rem 0;border-radius:12px;background:#f3f0e7}.live-feed{list-style:none;padding:0;margin:0}.live-feed li{display:flex;justify-content:space-between;gap:1rem;padding:.75rem 0;border-bottom:1px solid color-mix(in srgb,var(--ink) 10%,transparent)}.live-pulse{display:inline-block;width:.55rem;height:.55rem;border-radius:50%;background:var(--accent-2);margin-right:.45rem;animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.85)}}.copy-inline{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.copy-inline code{flex:1;min-width:200px;word-break:break-all}.nav-tenant{color:var(--muted);font-size:.85rem;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu{margin-left:auto;position:relative}.user-menu-btn{display:flex;flex-direction:column;align-items:flex-end;gap:0;background:transparent;color:var(--ink);border:1px solid color-mix(in srgb,var(--ink) 18%,transparent);padding:.4rem .75rem}.user-menu-name{font-size:.9rem;font-weight:600;line-height:1.2}.user-menu-role{font-size:.72rem;color:var(--muted);font-weight:500}.user-menu-panel{position:absolute;right:0;top:calc(100% + 6px);min-width:220px;padding:.85rem;border-radius:10px;background:var(--bg-elev);border:1px solid color-mix(in srgb,var(--ink) 14%,transparent)}.badge-muted{background:color-mix(in srgb,var(--ink) 12%,transparent);color:var(--muted)}.badge-ok{background:color-mix(in srgb,var(--accent-2) 20%,transparent);color:var(--accent-2)}.badge-warn{background:color-mix(in srgb,var(--accent) 25%,transparent);color:var(--accent)}.badge-danger{background:color-mix(in srgb,var(--danger) 20%,transparent);color:var(--danger)}.empty-state{padding:2.25rem 1rem;text-align:center;border:1px dashed color-mix(in srgb,var(--ink) 16%,transparent);border-radius:12px;margin-top:1rem}.empty-state-title{font-family:var(--font-display);font-size:1.2rem;margin:0 0 .35rem}.field-error{color:var(--danger);font-size:.8rem;margin:-.65rem 0 .85rem}.field-invalid input,.field-invalid textarea,.field-invalid select{border-color:var(--danger)}.login-wrap{display:grid;place-items:center;min-height:100vh}.password-field{display:flex;gap:.5rem;align-items:flex-start;margin-bottom:1rem}.password-field input{flex:1;margin-bottom:0}button.ghost{background:transparent;color:var(--muted);border:0;padding:.5rem .2rem;font-weight:600}button.charge{background:var(--accent);color:#1a1405}.landing-kicker{margin:0 0 .35rem;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700}.landing-meta{opacity:.9;margin-top:-.4rem}.landing-price{font-weight:600}.landing-note{text-align:center;margin-top:1rem}.landing-note-ok{color:var(--accent-2)}.landing-note-warn{color:var(--accent)}.ticket-kicker{margin:0 0 .5rem;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-2);font-weight:700}.ticket-event{margin:.35rem 0 .15rem;font-size:1.45rem}.ticket-name{margin:0;font-size:1.15rem;font-weight:700}.ticket-meta,.ticket-valid{color:var(--muted);margin:.25rem 0 0}.ticket-code-btn{margin-top:.5rem;width:100%}.boot{min-height:40vh;display:grid;place-items:center;color:var(--muted)}
