:root{--vs-orange:#ff6a00;--vs-orange-burnt:#ffa400;--vs-orange-dim:#ff6a0021;--vs-bg:#0a0a0a;--vs-surface:#131313;--vs-surface2:#1c1c1c;--vs-surface3:#242424;--vs-border:#2a2a2a;--vs-border-bright:#3a3a3a;--vs-fg:#f0f0f0;--vs-fg-muted:#777;--vs-fg-dim:#444;--vs-success:#3bff7a;--vs-success-dim:#3bff7a1c;--vs-warn:#ffb24d;--vs-warn-dim:#ffb24d1c;--vs-danger:#ff3b3b;--vs-danger-dim:#ff3b3b1c;--vs-font:"Quicksand", system-ui, -apple-system, sans-serif;--vs-radius:14px;--vs-radius-sm:8px;--vs-radius-pill:99px}*,:before,:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body,#root{background:var(--vs-bg);height:100%;font-family:var(--vs-font);-webkit-font-smoothing:antialiased;color:var(--vs-fg)}.auth-screen{background:var(--vs-bg);justify-content:center;align-items:center;min-height:100%;padding:24px 16px;display:flex}.auth-card{background:var(--vs-surface);border:1px solid var(--vs-border);border-radius:20px;width:100%;max-width:380px;padding:32px 28px}.auth-logo{justify-content:center;margin-bottom:28px;display:flex}.auth-logo img{width:auto;height:144px}.auth-title{color:var(--vs-fg);letter-spacing:-.01em;margin-bottom:6px;font-size:20px;font-weight:600}.auth-sub{color:var(--vs-fg-muted);margin-bottom:22px;font-size:13px;font-weight:300;line-height:1.55}.auth-form{flex-direction:column;gap:10px;display:flex}.auth-input{background:var(--vs-surface2);border:1px solid var(--vs-border);width:100%;font-family:var(--vs-font);color:var(--vs-fg);border-radius:10px;outline:none;padding:13px 14px;font-size:15px;font-weight:400;transition:border-color .15s}.auth-input::placeholder{color:var(--vs-fg-dim)}.auth-input:focus{border-color:var(--vs-orange)}.auth-error{color:var(--vs-danger);padding:4px 2px;font-size:12px}.auth-submit{background:linear-gradient(135deg, var(--vs-orange), var(--vs-orange-burnt));width:100%;font-family:var(--vs-font);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:14px;font-size:14px;font-weight:600;transition:opacity .15s,transform 80ms}.auth-submit:active{transform:scale(.98)}.auth-submit:disabled{opacity:.45;cursor:not-allowed}.auth-sent{text-align:center;flex-direction:column;align-items:center;gap:10px;display:flex}.auth-sent-icon{margin-bottom:4px;font-size:32px}.auth-sent-title{color:var(--vs-fg);font-size:18px;font-weight:600}.auth-sent-sub{color:var(--vs-fg-muted);font-size:13px;font-weight:300;line-height:1.6}.auth-back-btn{border:1px solid var(--vs-border);font-family:var(--vs-font);color:var(--vs-fg-muted);cursor:pointer;background:0 0;border-radius:8px;margin-top:8px;padding:10px 18px;font-size:12px;font-weight:500;transition:border-color .15s,color .15s}.auth-back-btn:hover{border-color:var(--vs-border-bright);color:var(--vs-fg)}.screen-loading{background:var(--vs-bg);justify-content:center;align-items:center;height:100%;display:flex}.screen{background:var(--vs-bg);flex-direction:column;height:100%;display:flex;overflow:hidden}.topbar{background:var(--vs-surface);border-bottom:1px solid var(--vs-border);flex-shrink:0;justify-content:space-between;align-items:center;padding:4px 16px;display:flex}.logo-lockup{align-items:center;display:flex}.topbar-logo{width:auto;height:58px;display:block}.topbar-right{align-items:center;gap:10px;display:flex}.venue-logo-hdr{opacity:.85;width:auto;height:18px;display:block}.status-bar{background:var(--vs-surface);border-bottom:1px solid var(--vs-border);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:5px 16px;display:flex}.greeting{color:var(--vs-fg);letter-spacing:-.005em;font-size:14px;font-weight:500}.greeting .greet-label{color:var(--vs-fg-muted);font-weight:400}.status-right{align-items:center;gap:8px;display:flex}.icon-btn{border:1px solid var(--vs-border);width:30px;height:30px;color:var(--vs-fg-muted);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;transition:border-color .15s,color .15s;display:flex}.icon-btn:hover{border-color:var(--vs-border-bright);color:var(--vs-fg)}.icon-btn.active{border-color:var(--vs-orange);color:var(--vs-orange);background:#ff6a0014}.live-pill{border-radius:var(--vs-radius-pill);background:#3bff7a17;border:1px solid #3bff7a33;align-items:center;gap:5px;padding:3px 9px 3px 7px;display:flex}.live-dot{background:var(--vs-success);border-radius:50%;width:5px;height:5px;animation:2s ease-in-out infinite blink}@keyframes blink{0%,to{opacity:1}50%{opacity:.25}}.live-label{letter-spacing:.1em;text-transform:uppercase;color:var(--vs-success);font-size:9px;font-weight:700}.timeline-card{background:var(--vs-surface);border-bottom:1px solid var(--vs-border);flex-shrink:0;padding:11px 16px 10px}.timeline-header{justify-content:space-between;align-items:flex-start;display:flex}.eyebrow{letter-spacing:.16em;text-transform:uppercase;color:var(--vs-fg-muted);font-size:11px;font-weight:400}.timeline-timespan{color:var(--vs-fg);letter-spacing:-.01em;margin-top:2px;font-size:15px;font-weight:500}.tl-total-block{text-align:right}.tl-total-num{color:var(--vs-fg);letter-spacing:-.04em;font-size:30px;font-weight:300;line-height:1}.tl-total-label{letter-spacing:.1em;text-transform:uppercase;color:var(--vs-fg-dim);margin-top:2px;font-size:9px;font-weight:400}.screen-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}.screen-body::-webkit-scrollbar{display:none}.areas-toolbar{justify-content:flex-end;padding:8px 14px 4px;display:flex}.areas-list{flex-direction:column;gap:8px;padding:0 14px 24px;display:flex}.areas-list.compact{gap:6px}.areas-empty{color:var(--vs-fg-dim);text-align:center;padding:32px 0;font-size:13px}.area-card{background:var(--vs-surface);border:1px solid var(--vs-border);border-radius:var(--vs-radius);transition:border-color .18s;overflow:hidden}.area-card.flash-in{border-color:var(--vs-success)}.area-card.flash-out{border-color:var(--vs-danger)}.area-card.at-warn{border-color:#ffb24d59;box-shadow:0 0 0 1px #ffb24d0f}.area-card.at-danger{border-color:#ff3b3b66;box-shadow:0 0 0 1px #ff3b3b14}.area-card-header{justify-content:space-between;align-items:center;padding:9px 11px 7px;display:flex}.area-name-wrap{align-items:center;gap:4px;min-width:0;display:flex}.area-name{color:var(--vs-fg);letter-spacing:-.003em;font-size:15px;font-weight:500}.area-header-right{align-items:center;gap:7px;display:flex}.cap-chip{letter-spacing:.06em;color:var(--vs-fg-muted);background:var(--vs-surface2);border:1px solid var(--vs-border);border-radius:var(--vs-radius-pill);padding:2px 8px;font-size:9px;font-weight:500}.cap-chip.warn{color:var(--vs-warn);background:#ffb24d14;border-color:#ffb24d40}.cap-chip.danger{color:var(--vs-danger);background:#ff3b3b14;border-color:#ff3b3b40}.area-counter{border-top:1px solid var(--vs-border);align-items:stretch;display:flex}.count-display{border-right:1px solid var(--vs-border);flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:78px;padding:10px;transition:min-height .2s,padding .2s;display:flex}.compact .count-display{min-height:54px;padding:6px 8px}.count-number{color:var(--vs-fg);letter-spacing:-.04em;font-size:50px;font-weight:300;line-height:1;transition:transform 80ms,color .1s,font-size .2s}.compact .count-number{font-size:32px}.count-number.bump-in{color:var(--vs-success);transform:scale(1.1)}.count-number.bump-out{color:var(--vs-danger);transform:scale(1.05)}.count-number.is-warn{color:var(--vs-warn)}.count-number.is-danger{color:var(--vs-danger)}.cap-meter{background:var(--vs-surface3);border-radius:2px;width:68%;height:3px;margin-top:9px;overflow:hidden}.cap-fill{border-radius:2px;height:100%;transition:width .3s,background .3s}.cap-fill.ok{background:var(--vs-success)}.cap-fill.warn{background:var(--vs-warn)}.cap-fill.danger{background:var(--vs-danger)}.cap-text{color:var(--vs-fg-dim);letter-spacing:.03em;margin-top:5px;font-size:9px;font-weight:400}.cap-text.warn{color:#ffb24db3}.cap-text.danger{color:#ff3b3bb3}.btn-col{flex-direction:column;flex-shrink:0;width:128px;display:flex}.compact .btn-col{width:110px}.count-btn{cursor:pointer;min-height:48px;font-family:var(--vs-font);-webkit-user-select:none;user-select:none;touch-action:manipulation;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;transition:transform 80ms,opacity .1s;display:flex}.compact .count-btn{min-height:36px}.count-btn:active{opacity:.9;transform:scale(.97)}.count-btn:disabled{opacity:.35;cursor:not-allowed}.btn-in{background:var(--vs-success-dim);color:var(--vs-success);border-bottom:1px solid var(--vs-border)}.btn-in:hover{background:#3bff7a29}.btn-out{background:var(--vs-danger-dim);color:var(--vs-danger)}.btn-out:hover{background:#ff3b3b29}.btn-icon{justify-content:center;align-items:center;display:flex}.btn-label{letter-spacing:.12em;text-transform:uppercase;opacity:.75;font-size:9px;font-weight:700}.area-footer{border-top:1px solid var(--vs-border);display:flex}.compact .area-footer{display:none}.stat-item{flex:1;justify-content:center;align-items:center;gap:5px;padding:7px 10px;display:flex}.stat-item+.stat-item{border-left:1px solid var(--vs-border)}.stat-dot{border-radius:50%;flex-shrink:0;width:5px;height:5px}.stat-dot.in{background:var(--vs-success)}.stat-dot.out{background:var(--vs-danger)}.stat-label{letter-spacing:.1em;text-transform:uppercase;color:var(--vs-fg-dim);font-size:9px;font-weight:400}.stat-val{color:var(--vs-fg-muted);font-size:11px;font-weight:500}.sheet-backdrop{z-index:100;background:#000000b8;display:none;position:fixed;inset:0}.sheet-backdrop.visible{display:block}.bottom-sheet{background:var(--vs-surface);border:1px solid var(--vs-border-bright);z-index:101;border-bottom:none;border-radius:22px 22px 0 0;padding:0 20px 40px;transition:transform .28s cubic-bezier(.4,0,.2,1);position:fixed;bottom:0;left:0;right:0;transform:translateY(100%)}.bottom-sheet.open{transform:translateY(0)}.sheet-handle{background:var(--vs-border-bright);border-radius:2px;width:36px;height:4px;margin:12px auto 20px}.sheet-title{color:var(--vs-fg);letter-spacing:-.005em;margin-bottom:20px;font-size:22px;font-weight:500}.settings-section{margin-bottom:18px}.settings-section-title{letter-spacing:.14em;text-transform:uppercase;color:var(--vs-fg-muted);margin-bottom:10px;font-size:11px;font-weight:500}.settings-row{border-bottom:1px solid var(--vs-border);justify-content:space-between;align-items:flex-start;gap:14px;padding:13px 0;display:flex}.settings-row:last-child{border-bottom:none}.settings-row-text{flex:1}.settings-row-label{color:var(--vs-fg);margin-bottom:3px;font-size:14px;font-weight:500}.settings-row-sub{color:var(--vs-fg-muted);font-size:11px;font-weight:300;line-height:1.5}.toggle-switch{background:var(--vs-surface3);border:1px solid var(--vs-border);cursor:pointer;border-radius:99px;flex-shrink:0;width:38px;height:22px;transition:background .18s,border-color .18s;position:relative}.toggle-switch:after{content:"";background:var(--vs-fg-muted);border-radius:50%;width:16px;height:16px;transition:transform .18s,background .18s;position:absolute;top:2px;left:2px}.toggle-switch.on{background:#ff6a0033;border-color:#ff6a0066}.toggle-switch.on:after{background:var(--vs-orange);transform:translate(16px)}.area-option-item{cursor:pointer;border:none;border-bottom:1px solid var(--vs-border);text-align:left;background:0 0;align-items:center;gap:14px;padding:15px 2px;transition:color .15s;display:flex}.area-option-item:last-child{border-bottom:none}.area-option-icon{color:var(--vs-fg-muted);flex-shrink:0;align-items:center;display:flex}.area-option-label{color:var(--vs-fg-muted);font-size:15px;font-weight:400}.area-option-item.danger .area-option-icon,.area-option-item.danger .area-option-label{color:var(--vs-danger);opacity:.85}
