@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#090e13;--surface:#101820;--edge:#24313a;--ink:#edf4f2;--muted:#84959f;--mint:#78e2b2;--red:#fa858a;--amber:#e5ba78;--blue:#88bbdb;--mono:ui-monospace,SFMono-Regular,Consolas,monospace;font:14px 'DM Sans',system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);height:100dvh;overflow:hidden;background-image:radial-gradient(ellipse at 5% 0%,#18372b40,transparent 45%)}button,a,input,select{-webkit-tap-highlight-color:transparent}button,select,input{font:inherit;color:var(--ink);border:1px solid var(--edge);background:#142029;border-radius:7px;padding:8px 11px}button,a{cursor:pointer}button:hover,select:hover{border-color:var(--mint)}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--mint);outline-offset:3px}button[aria-pressed=true]{color:var(--mint);border-color:#426955}a{color:inherit;text-decoration:none}a:hover{color:var(--mint)}[hidden]{display:none!important}.terminal-header{height:74px;display:flex;align-items:center;justify-content:space-between;padding:0 26px;border-bottom:1px solid var(--edge);gap:20px;background:#0b1218d9}.terminal-brand{display:flex;gap:10px;align-items:center;font:700 18px 'Space Grotesk',sans-serif;letter-spacing:1.4px}.terminal-brand img{width:34px;height:34px}.brand-sub{display:block;color:var(--muted);font:10px var(--mono);letter-spacing:2.5px;margin-top:4px}.broadcast{display:flex;align-items:center;gap:9px;font:11px var(--mono);letter-spacing:1px;color:var(--mint);white-space:nowrap}.divider{color:#4a5b64;margin:0 4px}.broadcast time{color:var(--ink);font-variant-numeric:tabular-nums}.controls{display:flex;gap:7px;align-items:center}.controls button,.controls input{font-size:11px;padding:8px 9px;background:transparent}.controls input{max-width:125px}.pulse{width:7px;height:7px;border-radius:50%;display:inline-block;background:var(--mint);box-shadow:0 0 12px #78e2b280;animation:pulse 2s infinite}.pulse.stale{background:var(--amber)}@keyframes pulse{50%{opacity:.35;box-shadow:0 0 0 transparent}}#terminal{height:calc(100dvh - 123px);display:flex;flex-direction:column;padding:20px 26px 0;gap:15px}.market-summary{display:grid;grid-template-columns:1.2fr repeat(5,1fr);border-bottom:1px solid var(--edge);padding:0 0 18px;gap:20px;flex-shrink:0}.eyebrow{font:10px var(--mono);letter-spacing:1.5px;color:var(--muted)}.lead-stat>div{display:flex;align-items:baseline;gap:12px;margin:6px 0 3px}.lead-stat strong{font:600 35px 'Space Grotesk';letter-spacing:-1.5px;color:var(--mint)}.lead-stat>div>span{font:10px var(--mono);color:var(--muted);max-width:65px;line-height:1.5}.lead-stat small,.market-stat small{display:block;font-size:10px;color:var(--muted)}.market-stat{padding:5px 0 0 20px;border-left:1px solid var(--edge)}.market-stat>span{font:10px var(--mono);letter-spacing:1.2px;color:var(--muted)}.market-stat strong{display:block;font:500 clamp(20px,1.9vw,34px) 'Space Grotesk';letter-spacing:-.9px;margin:10px 0 5px;font-variant-numeric:tabular-nums}.mint{color:var(--mint)}.red{color:var(--red)}.game-strip{display:flex;gap:8px;overflow:auto;flex-shrink:0;scrollbar-width:none;min-height:35px}.game-chip{display:flex;align-items:center;gap:10px;white-space:nowrap;font:11px var(--mono);border:1px solid #22303a;border-radius:5px;background:#101820;padding:7px 10px}.game-chip .game-clock{color:var(--mint);font-size:10px}.game-chip img{height:19px;width:19px;object-fit:contain}.game-chip.future{opacity:.7}.terminal-body{display:grid;grid-template-columns:minmax(0,1fr) 325px;gap:24px;flex:1;min-height:0}.player-panel{display:flex;flex-direction:column;min-height:0}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px;flex-shrink:0}.panel-heading h1{font:500 24px 'Space Grotesk';margin:5px 0 0;letter-spacing:-.7px}.panel-heading h2{font:500 17px 'Space Grotesk';margin:4px 0 0;letter-spacing:-.25px}.panel-heading>a{font-size:10px;color:var(--muted)}.live-mark{font:9px var(--mono);letter-spacing:1.5px;color:var(--mint);border:1px solid #315746;padding:4px 6px;border-radius:4px;margin-left:13px;vertical-align:middle}.board-tools{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:10px}.board-tools select{font-size:11px;background:#0d151c}.player-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(135px,1fr);gap:10px;overflow:auto;scrollbar-width:thin;scrollbar-color:#2b4046 transparent;flex:1;padding:1px 4px 4px 1px;align-content:stretch}.player-card{position:relative;padding:13px 13px 11px;border:1px solid var(--edge);border-radius:9px;background:linear-gradient(140deg,#16212b,#101820 70%);display:flex;flex-direction:column;min-width:0;overflow:hidden;will-change:transform}.player-card:after{position:absolute;content:'';width:90px;height:90px;right:-25px;top:-35px;background:var(--mint);opacity:.035;border-radius:50%;pointer-events:none}.player-card.hit{border-color:#315f49;background:linear-gradient(140deg,#173629,#101e1b 75%)}.player-card.miss{border-color:#59363d;background:linear-gradient(140deg,#30212b,#19171e 75%)}.player-top{display:flex;align-items:center;gap:7px;min-height:26px}.team-logo{width:28px;height:28px;object-fit:contain;flex-shrink:0}.player-name{font-weight:600;font-size:12px;line-height:1.25;white-space:normal}.player-team{font:9px var(--mono);color:var(--muted);margin-top:2px;letter-spacing:.6px}.player-badge{margin-left:auto;font:9px var(--mono);color:var(--muted);border:1px solid #2b414b;padding:3px 4px;border-radius:3px;flex-shrink:0}.player-card.hit .player-badge{color:var(--mint);border-color:#3c674e}.player-card.miss .player-badge{color:var(--red);border-color:#71464d}.shot-numbers{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:8px 0}.shot-value{font:500 34px/.95 'Space Grotesk';letter-spacing:-1.5px;font-variant-numeric:tabular-nums}.shot-target{font:15px 'Space Grotesk';color:#6c818a;margin-left:4px;letter-spacing:0}.shot-remaining{font:9px var(--mono);color:var(--amber);text-align:right;line-height:1.7;letter-spacing:.6px}.hit .shot-value,.hit .shot-remaining{color:var(--mint)}.miss .shot-value,.miss .shot-remaining{color:var(--red)}.shot-meter{display:flex;gap:4px;margin-bottom:9px}.shot-meter i{height:3px;background:#2c3a43;flex:1;border-radius:5px}.shot-meter i.on{background:var(--mint);box-shadow:0 0 7px #78e2b225}.miss .shot-meter i{background:#6d424a}.player-game{display:flex;justify-content:space-between;gap:6px;color:#9eacb3;font:9px var(--mono);white-space:nowrap}.player-clock{color:var(--blue)}.player-exposure{margin-top:auto;padding-top:8px;font:9px var(--mono);color:var(--muted);display:flex;justify-content:space-between;gap:3px}.player-exposure .dead{color:#c07e85}.player-card.shot-flash{animation:shot-flash 1.5s ease-out}.player-card.correction-flash{animation:correction-flash 1.5s ease-out}@keyframes shot-flash{0%,25%{box-shadow:0 0 0 1px var(--mint),inset 0 0 35px #78e2b235}100%{box-shadow:none}}@keyframes correction-flash{0%,25%{box-shadow:0 0 0 1px var(--red),inset 0 0 35px #fa858a20}100%{box-shadow:none}}.board-footer{display:flex;align-items:center;gap:16px;justify-content:space-between;color:var(--muted);font:9px var(--mono);padding:12px 0;white-space:nowrap}.board-footer button{font-size:10px;background:none;border:none;padding:0;color:var(--mint)}.mini-dot{display:inline-block;width:4px;height:4px;background:var(--mint);border-radius:50%;vertical-align:middle;margin-right:4px}.side-panel{border-left:1px solid var(--edge);padding-left:22px;display:flex;flex-direction:column;min-height:0;gap:18px}.ticket-watch{display:flex;flex-direction:column;min-height:0;flex:1.5}.count{color:var(--muted);font:12px var(--mono);margin-left:4px}.ticket-counts{display:flex;gap:26px;margin-bottom:16px}.ticket-counts strong{display:block;font:500 29px 'Space Grotesk';letter-spacing:-1px}.ticket-counts span{font:9px var(--mono);letter-spacing:1px;color:var(--muted)}.ticket-filter{display:flex;padding:3px;border-radius:6px;background:#101b23;margin-bottom:10px;gap:3px}.ticket-filter button{border:none;flex:1;font-size:10px;padding:6px;background:transparent;color:var(--muted)}.ticket-filter button.active{background:#233730;color:var(--mint)}.ticket-list{overflow:auto;scrollbar-width:thin;scrollbar-color:#2b4046 transparent;min-height:0;flex:1}.ticket-row{padding:9px 0;border-bottom:1px solid #1c2932}.ticket-row-head{display:flex;justify-content:space-between;gap:8px;font-size:11px}.ticket-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#c7d2d7}.ticket-return{font:11px var(--mono);white-space:nowrap}.ticket-row.hit .ticket-return{color:var(--mint)}.ticket-row.lost{opacity:.55}.ticket-progress{height:3px;position:relative;background:#23323b;margin:8px 0;border-radius:3px}.ticket-progress>i{display:block;height:100%;background:var(--mint);border-radius:3px;transition:width .7s}.ticket-row.lost .ticket-progress>i{background:var(--red)}.ticket-row-meta{display:flex;justify-content:space-between;font:9px var(--mono);color:var(--muted)}.quiet-note{color:var(--muted);font-size:9px;line-height:1.5;margin-top:8px}.activity{flex:1;min-height:100px;display:flex;flex-direction:column;overflow:hidden}.activity .panel-heading{margin-bottom:5px}#activity{list-style:none;margin:0;padding:0;overflow:auto;scrollbar-width:thin}#activity li{display:flex;gap:9px;align-items:start;border-bottom:1px solid #1c2932;padding:11px 0;font-size:11px;line-height:1.4}#activity .activity-symbol{font:13px var(--mono);color:var(--mint)}#activity .correction .activity-symbol,#activity .ticket-lost .activity-symbol{color:var(--red)}#activity small{display:block;color:var(--muted);font:9px var(--mono);margin-top:4px}#activity li.quiet-activity{color:var(--muted);font-size:11px;border:none;line-height:1.6}.ticker{position:fixed;left:0;right:0;bottom:0;display:flex;height:49px;align-items:center;border-top:1px solid #30453f;background:#101b20;z-index:10;overflow:hidden}.ticker-label{font:10px var(--mono);letter-spacing:1px;display:flex;gap:8px;align-items:center;padding:0 23px;height:100%;background:#1b3028;white-space:nowrap;z-index:2;color:var(--mint)}.ticker-window{overflow:hidden;flex:1;mask-image:linear-gradient(90deg,transparent,#000 18px,#000 calc(100% - 18px),transparent)}.ticker-track{display:flex;width:max-content;animation:ticker 90s linear infinite}.ticker-track:hover{animation-play-state:paused}.ticker-item{display:inline-flex;gap:10px;align-items:center;margin:0 23px;font:11px var(--mono);white-space:nowrap}.ticker-item .tick-shots{color:var(--amber)}.ticker-item.hit .tick-shots{color:var(--mint)}.ticker-item.miss .tick-shots{color:var(--red)}.ticker-item .tick-team{font-size:9px;color:var(--muted)}.ticker-placeholder{font:11px var(--mono);color:var(--muted);letter-spacing:1px}.connection-note{font:9px var(--mono);color:var(--muted);padding:0 20px;white-space:nowrap}@keyframes ticker{to{transform:translateX(-50%)}}.shot-alert{position:fixed;top:95px;left:50%;transform:translateX(-50%);z-index:50;border:1px solid #64ce9e;background:#142d24f5;box-shadow:0 15px 80px #000a,0 0 70px #78e2b210;backdrop-filter:blur(18px);border-radius:12px;padding:20px 35px;display:flex;align-items:center;gap:20px;animation:alert-in .35s ease-out;max-width:min(600px,90vw)}.shot-alert img{width:55px;height:55px}.shot-alert strong{display:block;font:600 24px 'Space Grotesk';margin:4px 0}.shot-alert small{color:var(--mint);font:11px var(--mono)}.shot-alert.correction,.shot-alert.ticket-lost{border-color:var(--red);background:#321e27f5}.shot-alert.correction small,.shot-alert.ticket-lost small{color:var(--red)}@keyframes alert-in{from{opacity:0;margin-top:-18px}to{opacity:1;margin-top:0}}.status-banner{position:fixed;bottom:62px;left:50%;transform:translateX(-50%);max-width:90vw;background:#302b1e;color:var(--amber);padding:10px 16px;border:1px solid #67542c;border-radius:6px;font-size:12px;z-index:40}.empty-board{grid-column:1/-1;align-self:center;justify-self:center;text-align:center;color:var(--muted);padding:30px}.empty-board h2{font:500 25px 'Space Grotesk';color:var(--ink)}.empty-board p{line-height:1.8}.empty-board a{color:var(--mint)}.spinner{display:inline-block;width:23px;height:23px;border:2px solid #2b4039;border-top-color:var(--mint);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.auth-gate{position:fixed;inset:74px 0 49px;z-index:20;background:radial-gradient(ellipse at 70% 35%,#19332b70,transparent 60%),var(--bg);display:flex;align-items:center;justify-content:center;gap:8vw;padding:7vw}.gate-card{max-width:480px}.gate-card h1{font:500 clamp(40px,5vw,76px)/1.05 'Space Grotesk';letter-spacing:-3px;margin:22px 0}.gate-card h1 em{color:var(--mint);font-style:normal}.gate-card p{color:var(--muted);font-size:15px;line-height:1.8}.gate-card>a{display:block;color:var(--muted);font-size:11px;margin:16px 0}.primary{padding:13px 18px;background:var(--mint);border:1px solid var(--mint);color:#0c2318;font-weight:700;margin-top:8px}.gate-grid{display:grid;gap:14px;max-width:350px;transform:perspective(1000px) rotateY(-8deg) rotateZ(3deg)}.gate-grid>div{background:linear-gradient(120deg,#1b3028,#101b20);border:1px solid #315446;border-radius:14px;padding:27px 35px;min-width:270px}.gate-grid span{display:block;color:var(--muted);font:10px var(--mono);letter-spacing:1.5px}.gate-grid strong{display:block;font:500 48px 'Space Grotesk';margin:12px 0;color:var(--mint)}.gate-grid strong span{display:inline;font-size:20px}.gate-grid i{font:9px var(--mono);font-style:normal;color:var(--mint);letter-spacing:1px}.gate-grid>div:nth-child(2){margin-left:35px;opacity:.7}.gate-grid>div:nth-child(3){margin-left:-20px;opacity:.5}
@media(min-width:1700px){.terminal-body{grid-template-columns:minmax(0,1fr) 365px}.player-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.player-card{padding:17px}.shot-value{font-size:48px}.player-name{font-size:14px}.player-game,.player-exposure{font-size:10px}.shot-numbers{margin:15px 0}.player-grid{grid-auto-rows:minmax(150px,1fr)}}@media(max-width:1200px){.broadcast{display:none}.terminal-body{grid-template-columns:minmax(0,1fr) 270px;gap:16px}.side-panel{padding-left:16px}.player-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.market-summary{gap:10px}.market-stat{padding-left:12px}.market-stat small{font-size:9px}.board-tools>span{display:none}.connection-note{display:none}.controls button{padding:8px}.player-card{padding:10px}}@media(max-width:800px){body{overflow:auto;height:auto}.terminal-header{height:auto;min-height:70px;flex-wrap:wrap;padding:14px 16px;gap:14px}.controls{overflow:auto;width:100%;padding-bottom:3px}.terminal-brand{font-size:15px}#terminal{height:auto;min-height:calc(100dvh - 180px);padding:16px 14px 65px}.market-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.market-stat{padding-left:10px}.market-stat strong{font-size:22px}.market-stat>span{font-size:9px}.lead-stat strong{font-size:30px}.market-stat small{font-size:9px}.terminal-body{grid-template-columns:1fr}.player-grid{grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;grid-auto-rows:minmax(155px,1fr)}.player-card{padding:13px}.player-name{font-size:13px}.shot-value{font-size:39px}.panel-heading h1{font-size:22px}.board-footer{flex-wrap:wrap;justify-content:start;gap:10px}.side-panel{border:0;padding:0}.ticket-list{max-height:350px}.activity{min-height:180px;max-height:300px}.ticker-label{padding:0 12px;font-size:9px}.ticker-item{margin:0 15px}.auth-gate{inset:118px 0 49px;overflow:auto;padding:30px}.gate-grid{display:none}.gate-card h1{letter-spacing:-2px}.gate-card p{font-size:13px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.ticker-window{overflow:auto}.ticker-track{transform:none!important}.ticker-item[aria-hidden=true]{display:none}}

@media(min-width:801px){.player-grid.dense{grid-auto-rows:minmax(112px,1fr);gap:8px}.dense .player-card{padding:9px 10px}.dense .team-logo{width:23px;height:23px}.dense .player-top{min-height:24px}.dense .player-name{font-size:12px}.dense .player-team{font-size:8px}.dense .shot-numbers{margin:6px 0}.dense .shot-value{font-size:34px}.dense .shot-remaining{font-size:8px}.dense .shot-meter{margin-bottom:6px}.dense .player-game{font-size:8px}.dense .player-exposure{padding-top:6px;font-size:8px}}

.player-name{display:block;background:none;border:0;border-radius:2px;padding:0;text-align:left;color:inherit}.player-name:hover{color:var(--mint)}.desk-player-dialog{position:fixed;inset:auto 0 0;width:min(850px,96vw);max-height:85dvh;margin:0 auto;padding:30px;background:#111d25;border:1px solid #355044;color:var(--ink);border-radius:16px 16px 0 0;overflow:auto;box-shadow:0 -20px 100px #0008}.desk-player-dialog::backdrop{background:#0009;backdrop-filter:blur(5px)}.desk-player-dialog .close{float:right}.desk-player-dialog h2{font:500 30px Space Grotesk;margin:12px 0}.desk-player-dialog h3{font:500 18px Space Grotesk}.desk-player-dialog .sub{color:var(--muted);font-size:12px}.desk-shot-history{display:flex;gap:6px;overflow:auto;padding:6px 0 14px}.desk-shot-history>div{flex:0 0 58px;background:#2b242a;border:1px solid #543e46;border-radius:6px;padding:10px 4px;text-align:center}.desk-shot-history>div.hit{background:#1f3a2e;border-color:#3b664e}.desk-shot-history b{font:500 24px Space Grotesk}.desk-shot-history small{display:block;font:8px var(--mono);margin-top:6px;color:var(--muted)}
