.scene{position:relative;min-height:100vh;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);align-items:center;background:#0a0a0a}.scene-stars{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.6;background-image:radial-gradient(1px 1px at 8% 18%,#fff,transparent),radial-gradient(1px 1px at 22% 72%,#fff,transparent),radial-gradient(1.5px 1.5px at 35% 30%,#e8d9a8,transparent),radial-gradient(1px 1px at 48% 86%,#fff,transparent),radial-gradient(1px 1px at 57% 12%,#fff,transparent),radial-gradient(1.5px 1.5px at 66% 58%,#c9a24a,transparent),radial-gradient(1px 1px at 78% 26%,#fff,transparent),radial-gradient(1px 1px at 88% 80%,#fff,transparent),radial-gradient(1.5px 1.5px at 94% 8%,#e8d9a8,transparent),radial-gradient(1px 1px at 4% 92%,#fff,transparent),radial-gradient(1px 1px at 30% 50%,#fff,transparent),radial-gradient(1px 1px at 72% 94%,#fff,transparent),radial-gradient(1px 1px at 15% 40%,#fff,transparent),radial-gradient(1px 1px at 61% 36%,#fff,transparent);animation:scene-twinkle 6s ease-in-out infinite alternate}.scene-glow{position:absolute;left:-12%;top:50%;width:900px;height:900px;transform:translateY(-50%);pointer-events:none;background:radial-gradient(circle,rgba(201,162,74,.2),transparent 62%)}.scene-art{position:relative;height:100vh;min-height:620px}.scene-orbit{position:absolute;left:50%;top:50%;width:min(78vh,92%);aspect-ratio:1;transform:translate(-50%,-50%)}.scene-orbit svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.scene-orbit .ring{fill:none;stroke:#2e2e2e}.scene-orbit .ring.dashed{stroke-dasharray:2 6}.scene-orbit .spin{transform-origin:200px 200px;animation:scene-spin 40s linear infinite}.scene-orbit .spin.s2{animation-duration:60s;animation-direction:reverse}.scene-orbit .spin.s3{animation-duration:90s}.scene-orbit text{font-family:Inter,system-ui,sans-serif;font-size:11px;font-weight:600;letter-spacing:.16em;fill:#9a9a9a}.scene-orbit .planet.current text{fill:#f5f5f5;font-size:13px}.scene-orbit .halo{fill:none;stroke:#c9a24a;stroke-width:1.5;transform-box:fill-box;transform-origin:center;animation:scene-pulse 2.6s ease-out infinite}.scene-core{position:absolute;left:50%;top:50%;width:24%;transform:translate(-50%,-50%);filter:drop-shadow(0 0 24px rgba(201,162,74,.55))}.scene-phone{position:absolute;width:clamp(150px,22vh,220px);border-radius:30px;padding:7px;background:linear-gradient(160deg,#2a2a2a,#111);border:1px solid #333;box-shadow:0 40px 80px #000000b3}.scene-phone img{display:block;width:100%;height:auto;aspect-ratio:600 / 1220;object-fit:cover;object-position:top;border-radius:24px;background:#000}.scene-phone.p1{left:7%;bottom:-9%;transform:rotate(-9deg);animation:scene-float 9s ease-in-out infinite alternate}.scene-phone.p2{right:5%;top:-8%;transform:rotate(8deg);animation:scene-float 11s ease-in-out infinite alternate-reverse}.scene-side{position:relative;display:grid;gap:14px;align-content:center;width:min(420px,100%);padding:32px 24px;margin:0 auto}.scene-back{justify-self:start;font-size:14px;color:#c9a24a}.scene-logo{width:150px;height:auto;margin-top:10px}.scene-eyebrow{margin:0;font-size:12px;font-weight:600;letter-spacing:.22em;color:#c9a24a;text-transform:uppercase}.scene-title{margin:0;font-family:Bebas Neue,Inter,system-ui,sans-serif;font-weight:400;font-size:clamp(40px,5vw,58px);line-height:.95;letter-spacing:.01em;color:#f5f5f5}.scene-side .card.login{background:#1a1a1ad1;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-color:#333;text-align:left;margin-top:6px}.scene-side .card.login p{margin:0}.scene-points{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:8px;color:#9a9a9a;font-size:14px}.scene-points li{padding-left:22px;position:relative}.scene-points li:before{content:"";position:absolute;left:2px;top:7px;width:8px;height:8px;border-radius:50%;background:#c9a24a;box-shadow:0 0 10px #c9a24acc}@keyframes scene-spin{to{transform:rotate(360deg)}}@keyframes scene-pulse{0%{transform:scale(.7);opacity:.9}to{transform:scale(1.9);opacity:0}}@keyframes scene-twinkle{0%{opacity:.35}to{opacity:.7}}@keyframes scene-float{0%{translate:0 0}to{translate:0 -14px}}@media(max-width:900px){.scene{grid-template-columns:1fr}.scene-art{position:absolute;top:0;right:0;bottom:0;left:0;height:auto;min-height:0;opacity:.32}.scene-orbit{width:min(120vw,620px);top:30%}.scene-phone{display:none}.scene-glow{left:50%;top:30%;transform:translate(-50%,-50%);width:700px;height:700px}}@media(prefers-reduced-motion:reduce){.scene-stars,.scene-orbit .spin,.scene-orbit .halo,.scene-phone{animation:none}}.scene-logo{display:none}@media(max-width:900px){.scene-logo{display:block}.scene-core,.scene-orbit text{display:none}.scene-art{opacity:.5}.scene-orbit{top:22%}}.scene-side .card.login input:not([type=checkbox]),.scene-side .card.login button.primary{width:100%}.scene-side .card.login button.primary{padding:15px 18px}:root{--bg: #0A0A0A;--surface: #141414;--surface-alt: #1A1A1A;--surface-muted: #1F1F1F;--input: #0F0F0F;--border: #262626;--border-strong: #3A3A3A;--text: #F5F5F5;--text-secondary: #A3A3A3;--muted: #8C8C8C;--gold: #C9A24A;--gold-hover: #D6B25E;--champagne: #E8D9A8;--on-gold: #0A0A0A;--danger: #E5605A;--error: #F07A73;--ok: #3FA66B;--ok-text: #7ED3A0;--r-sm: 6px;--r: 14px;--pill: 999px;--font-display: "Bebas Neue", Inter, system-ui, sans-serif;--font-body: Inter, system-ui, sans-serif;--card: var(--surface);--line: var(--border);--bad: var(--danger)}*{box-sizing:border-box}html{color-scheme:dark}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0}h2,h3{font-weight:600;letter-spacing:-.01em}h3{font-size:17px}::selection{background:#c9a24a59}:focus-visible{outline:2px solid var(--champagne);outline-offset:2px}.muted{color:var(--muted);font-size:14px}.error{color:var(--error)}.warn{color:var(--champagne);margin:4px 0}.gold{color:var(--gold)}.big{font-size:22px;font-weight:600;margin:0}.amount{font-family:var(--font-display);font-size:34px;font-weight:400;letter-spacing:.02em;line-height:1;margin:0}.headline{font-family:var(--font-display);font-size:40px;font-weight:400;letter-spacing:.02em;line-height:1;margin:4px 0}.label,.table th,.section-label{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.code{font-family:ui-monospace,monospace;font-size:18px;letter-spacing:2px}.pre{white-space:pre-wrap;font-family:inherit;margin:0}a{color:var(--text);text-decoration:none}a:hover{color:var(--champagne)}input,select,textarea{font:inherit;font-size:15px;padding:11px 14px;border-radius:var(--r);border:1px solid var(--border);background:var(--input);color:var(--text)}input::placeholder,textarea::placeholder{color:gray}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--text-secondary)}input[type=checkbox],input[type=radio]{padding:0;width:18px;height:18px;accent-color:var(--gold)}textarea{resize:vertical}select{cursor:pointer}button,a.button{font:inherit;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 18px;border-radius:var(--r);border:1px solid var(--border-strong);background:transparent;color:var(--text);font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;text-align:center;line-height:1.3;transition:background .15s,border-color .15s,color .15s}button:hover:not(:disabled),a.button:hover{border-color:var(--text-secondary);background:var(--surface-alt);color:var(--text)}button.primary,a.button.primary{background:var(--gold);border-color:var(--gold);color:var(--on-gold)}button.primary:hover:not(:disabled),a.button.primary:hover{background:var(--gold-hover);border-color:var(--gold-hover);color:var(--on-gold)}button.ghost{border-color:transparent;color:var(--text-secondary);padding-left:10px;padding-right:10px}button.ghost:hover:not(:disabled){background:var(--surface-alt);border-color:transparent;color:var(--text)}button.danger{border-color:#e5605a8c;color:var(--danger)}button.danger:hover:not(:disabled){background:#e5605a1a;border-color:var(--danger);color:var(--danger)}button:disabled{opacity:.45;cursor:default}.icon-btn{padding:10px}.big-btn{padding:16px 20px;font-size:13px;width:100%}.chips{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.chip,header button,.page-head button,.page-head a.button{white-space:nowrap}.chip{border-radius:var(--pill);padding:7px 14px;font-size:11px;letter-spacing:.12em;color:var(--text-secondary);border-color:var(--border-strong)}.chip.active,.chip.active:hover:not(:disabled){background:var(--text);border-color:var(--text);color:var(--bg)}.chip .x{padding:0 2px 0 6px;border:0;background:none;color:inherit;letter-spacing:0;font-size:14px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:22px}.card.clickable{cursor:pointer;display:grid;gap:4px}.card.clickable:hover{border-color:var(--border-strong)}.card.voided{opacity:.55}.badge{display:inline-block;padding:3px 10px;border-radius:var(--pill);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:var(--surface-muted);color:var(--text-secondary);border:1px solid var(--border-strong)}.badge.ok{background:#3fa66b1f;border-color:#3fa66b66;color:var(--ok-text)}.badge.warn{background:#c9a24a1f;border-color:#c9a24a66;color:var(--champagne)}.badge.bad{background:#e5605a1f;border-color:#e5605a66;color:var(--error)}.tags{display:inline-flex;gap:4px;flex-wrap:wrap;vertical-align:middle}.tag{padding:1px 8px;border-radius:var(--r-sm);border:1px solid var(--border-strong);color:var(--text-secondary);font-size:11px;font-weight:600;letter-spacing:.04em}.progress{height:8px;border-radius:var(--pill);background:var(--surface-muted);overflow:hidden}.progress-bar{height:100%;background:var(--gold)}.skeleton{display:grid;gap:10px;padding:6px 0}.skeleton span{height:14px;border-radius:var(--r-sm);background:linear-gradient(90deg,var(--surface) 25%,var(--surface-muted) 50%,var(--surface) 75%);background-size:200% 100%;animation:shimmer 1.4s linear infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.empty{display:grid;justify-items:center;gap:8px;text-align:center;padding:36px 20px;border:1px dashed var(--border-strong);border-radius:var(--r);color:var(--text-secondary)}.empty p{margin:0;max-width:460px}.empty .button,.empty button{margin-top:6px}@media(prefers-reduced-motion:reduce){.skeleton span,.toast{animation:none}}.table{width:100%;border-collapse:collapse}.table th{text-align:left;padding:12px 10px;border-bottom:1px solid var(--border)}.table td{padding:14px 10px;border-bottom:1px solid var(--border);vertical-align:middle}.table tbody tr:hover td{background:var(--surface)}.table a{font-weight:600}.row-actions{white-space:nowrap;text-align:right}.row-actions .button{padding:7px 12px;font-size:11px;margin-left:6px}.row-actions .icon-btn{padding:7px}@media(hover:hover){.table tr .row-actions>*{opacity:0;transition:opacity .12s}.table tr:hover .row-actions>*,.table tr:focus-within .row-actions>*{opacity:1}}.center{display:grid;place-items:center;min-height:60vh;padding:16px;text-align:center}.grow{flex:1}.row{display:flex;gap:12px;flex-wrap:wrap}.row>.field{flex:1;min-width:160px}.row.end{justify-content:flex-end}.row.center-v{align-items:center}.row.center-h{justify-content:center}.row.between{justify-content:space-between;align-items:center}.form{display:grid;gap:14px}.form.scroll{max-height:60vh;overflow-y:auto;padding-right:4px}.field{display:grid;gap:6px}.toolbar{display:flex;gap:10px}.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.switch-row{display:flex;align-items:flex-start;gap:10px;padding:6px 0}.switch-row input{margin-top:2px}.notice{display:grid;gap:14px;width:min(480px,100%)}.skip-link{position:absolute;left:12px;top:-48px;z-index:30;padding:10px 14px;border-radius:var(--r);background:var(--text);color:var(--bg);font-weight:700}.skip-link:focus{top:10px;color:var(--bg)}.content:focus{outline:none}header{display:flex;gap:14px;align-items:center;padding:12px 24px;border-bottom:1px solid var(--border);background:var(--bg)}.brand-logo{height:44px;width:auto;display:block}.brand-name{padding-left:14px;border-left:1px solid var(--border);font-family:var(--font-display);font-size:24px;font-weight:400;letter-spacing:.04em}.user-chip{display:grid;text-align:right;line-height:1.25}.user-chip .who{font-size:13px;font-weight:600}.user-chip .role{font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}.env-badge{padding:3px 10px;border-radius:var(--pill);background:#1f5f8b;color:#fff;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.offline-notice{margin:0;padding:9px 24px;background:#2a1414;color:#ffb4a8;border-bottom:1px solid #4A2020;font-size:14px}.clock-notice{margin:0;padding:9px 24px;background:#16130b;color:var(--champagne);border-bottom:1px solid #3A3018;font-size:14px}.layout{display:grid;grid-template-columns:228px minmax(0,1fr);min-height:calc(100vh - 69px)}.side{position:sticky;top:0;align-self:start;max-height:100vh;overflow-y:auto;display:grid;align-content:start;gap:2px;padding:18px 12px 24px;border-right:1px solid var(--border)}.nav-group{margin:16px 12px 6px;font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:gray}.nav-group:first-child{margin-top:0}.side a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--r);color:var(--text-secondary);font-size:14px;font-weight:500;border-left:2px solid transparent}.side a:hover{background:var(--surface);color:var(--text)}.side a.active{background:var(--surface);color:var(--text);border-left-color:var(--text)}.side a svg{flex:none;opacity:.85}.nav-count{margin-left:auto;min-width:22px;padding:1px 7px;border-radius:var(--pill);background:var(--text);color:var(--bg);font-size:11px;font-weight:700;text-align:center}.content{min-width:0}.page{padding:28px 32px 48px;display:grid;gap:18px;align-content:start}.page.narrow{max-width:880px}.page-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.page-head h1{font-family:var(--font-display);font-size:40px;font-weight:400;letter-spacing:.03em;line-height:1}.member-meta{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center;color:var(--text);font-size:14px}.member-meta .label{margin-right:6px}.membership-card{display:grid;gap:12px;align-content:start}.membership-card .amount{font-size:38px}.membership-card .row button,.membership-card .row a.button{padding:9px 14px}@media(min-width:1200px){.membership-card{grid-column:span 2}}.more-actions{display:grid;gap:12px}.more-actions summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--text-secondary)}.more-actions summary::-webkit-details-marker{display:none}.more-actions[open] summary{color:var(--text)}.facts{display:grid;gap:8px;margin:0}.facts div{display:flex;gap:8px;flex-wrap:wrap}.facts dt{color:var(--muted)}.facts dd{margin:0;font-weight:600}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b8;display:grid;place-items:center;padding:16px;z-index:10}.modal{width:min(480px,100%);display:grid;gap:14px;max-height:calc(100vh - 32px);overflow-y:auto;border-color:var(--border-strong)}.modal.wide{width:min(760px,100%)}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.modal-head h3{font-family:var(--font-display);font-size:28px;font-weight:400;letter-spacing:.03em}.dialog{width:min(440px,100%)}.dialog-message{margin:0;font-size:16px;line-height:1.5;white-space:pre-line}.toasts{position:fixed;right:20px;bottom:20px;display:grid;gap:8px;z-index:20}.toast{padding:12px 18px;border-radius:var(--r);background:var(--surface-alt);border:1px solid var(--border-strong);font-size:14px;font-weight:600;box-shadow:0 10px 30px #00000080;animation:toast-in .2s ease-out}.toast.ok{border-color:#3fa66b80}.toast.bad{border-color:#e5605a99;color:var(--error)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.reception{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:24px;padding:28px 32px}.panel{display:grid;gap:12px;align-content:start}.scan{width:100%;font-size:22px;padding:16px 18px;border-color:var(--border-strong)}.scan:focus{border-color:var(--gold)}.scan-row{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.scan-row label{white-space:nowrap}.scan-row .scan{flex:1;min-width:220px}.camera{display:grid;gap:6px}.camera video{width:100%;max-height:60vh;border-radius:var(--r);border:1px solid var(--border);background:#000;object-fit:cover}.results,.feed{list-style:none;margin:0;padding:0;display:grid;gap:6px}.results button{width:100%;justify-content:flex-start;text-transform:none;letter-spacing:0;font-size:15px;font-weight:500;border-color:var(--border)}.feed li{padding:10px 0;border-bottom:1px solid var(--border)}.result{display:grid;gap:8px}.result h2{font-size:24px}.result.ok{border-color:#3fa66b99;background:#0f1d15}.result.bad{border-color:#e5605a99;background:#1f0f0f}.result.ok .headline{color:var(--ok-text)}.result.bad .headline{color:var(--error)}.scan-status{border:0;padding:4px 6px;gap:8px;font-size:11px;color:var(--muted)}.scan-status .dot{width:8px;height:8px;border-radius:50%;background:var(--danger)}.scan-status.ready{color:var(--ok-text)}.scan-status.ready .dot{background:var(--ok);box-shadow:0 0 0 4px #3fa66b2e}.scan-status:hover:not(:disabled){background:none;border:0}.override{display:grid;gap:10px;border-top:1px solid rgba(229,96,90,.25);padding-top:14px;margin-top:4px}.stat-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stat-pair>div{display:grid;gap:2px;padding:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r)}.feed li{display:flex;gap:10px;align-items:baseline}.feed .time{font-family:var(--font-display);font-size:18px;letter-spacing:.04em;color:var(--text-secondary);min-width:44px}@media(max-width:800px){.reception{grid-template-columns:1fr;padding:16px}}.collect-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:24px;align-items:start}.collect-main{display:grid;gap:22px}.collect-summary{position:sticky;top:16px}.collect-summary .card{display:grid;gap:10px}.step{display:grid;gap:12px}.inline-note{display:grid;gap:10px;border-color:#c9a24a73;background:#16130b;padding:18px}.inline-note p{margin:0}@media(max-width:1000px){.collect-grid{grid-template-columns:1fr}.collect-summary{position:static}}.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.plan{display:grid;gap:4px;justify-items:start;justify-content:stretch;text-align:left;padding:16px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);text-transform:none;letter-spacing:0;font-size:15px;font-weight:600;white-space:normal}.plan .muted{font-weight:400}.plan.active,.plan.active:hover:not(:disabled){border-color:var(--gold);background:#16130b}.totals{display:grid;gap:8px}.totals .final{border-top:1px solid var(--border);padding-top:12px;margin-top:4px}.receipt{display:grid;justify-items:center;gap:6px;text-align:center}.receipt .check{font-size:38px;color:var(--ok-text);margin:0}.receipt hr{width:100%;border:0;border-top:1px solid var(--border)}@media print{header,.side,.row button,.row a{display:none!important}}.cash-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:28px;align-items:start}.cash-col{display:grid;gap:14px;align-content:start}@media(max-width:1100px){.cash-grid{grid-template-columns:1fr}}.stat{display:grid;gap:4px;text-align:center}.stat strong,.stat .big{font-family:var(--font-display);font-size:30px;font-weight:400;letter-spacing:.02em}.detail{display:grid;gap:4px;border-top:1px solid var(--border);margin-top:8px;padding-top:8px;cursor:default}.detail .final{border-top:1px solid var(--border);padding-top:6px}.audit-row{display:grid;gap:2px}.audit-row .head{display:flex;justify-content:space-between;color:var(--champagne);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.day{display:grid;gap:6px;align-content:start;padding:12px;min-height:120px}.day.today{border-color:var(--text-secondary)}.slot{display:grid;gap:2px;justify-items:start;justify-content:stretch;text-align:left;padding:8px 10px;font-size:13px;text-transform:none;letter-spacing:0;font-weight:600;white-space:normal;border-color:var(--border)}.slot.cancelled{opacity:.5;text-decoration:line-through}.news-img{max-width:100%;border-radius:var(--r)}.import-map{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.import-preview{max-height:45vh;overflow:auto;border:1px solid var(--border);border-radius:var(--r)}.warn.small{font-size:12px;margin:2px 0 0}.card.qr{display:grid;justify-items:center;gap:12px;max-width:380px}.card.qr img{background:#fff;border-radius:var(--r-sm)}.offline-lock{border:0;padding:0;margin:0;min-width:0;display:grid;gap:18px}.login .remember{gap:8px;font-size:14px}@media(max-width:900px){.week{grid-template-columns:1fr}}@media(max-width:800px){.layout{grid-template-columns:1fr}.side{position:static;max-height:none;grid-auto-flow:column;grid-auto-columns:max-content;border-right:0;border-bottom:1px solid var(--border);overflow-x:auto;padding:8px 12px;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}.nav-group{display:none}.page{padding:18px 16px 40px}header{padding:10px 16px}}
