:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;line-height:1.5;color:#f2f6f7;background:#070a0b;--shell: #070a0b;--panel: rgba(17, 23, 25, .92);--panel-raised: rgba(23, 31, 34, .94);--line: rgba(215, 225, 228, .16);--line-strong: rgba(215, 225, 228, .32);--text: #f2f6f7;--muted: #8f9ba1;--red: #ff3b35;--red-soft: rgba(255, 59, 53, .14);--cyan: #38d7ff;--cyan-soft: rgba(56, 215, 255, .14);--green: #64d66f;--amber: #f1bd55;--radius: 8px}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;min-width:320px;background:linear-gradient(180deg,rgba(255,255,255,.035),transparent 22rem),linear-gradient(135deg,#090d0e,#070a0b 52%,#101415);color:var(--text)}button,input{font:inherit}button{border:0}button:focus-visible,input:focus-visible{outline:2px solid var(--amber);outline-offset:3px}.app-shell{width:100%;min-height:100dvh;display:flex;flex-direction:column;gap:10px;padding:10px}.top-bar,.control-dock,.score-rail,.diagnostics-panel,.game-stage{border:1px solid var(--line);background:var(--panel);box-shadow:inset 0 1px #ffffff0f,0 18px 50px #00000052;border-radius:var(--radius)}.top-bar{display:grid;grid-template-columns:220px minmax(0,1fr) auto;min-height:82px;align-items:center;gap:16px;padding:12px 16px}.brand-lockup{display:flex;flex-direction:column;justify-content:center;border-right:1px solid var(--line-strong);min-height:58px}.brand-title{font-size:26px;font-weight:850;font-style:italic;line-height:1;text-transform:uppercase}.brand-row{display:flex;align-items:center;gap:8px;margin-top:2px;color:var(--red);font-size:24px;font-weight:850;font-style:italic;line-height:1;text-transform:uppercase}.status-strip{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px;align-items:center}.status-pill{display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:10px;min-height:50px;padding:8px 10px;border-left:1px solid var(--line)}.status-icon{color:var(--muted)}.status-label,.rail-label,.metric-title,.event-log-title{color:var(--muted);font-size:12px;font-weight:750;text-transform:uppercase}.status-value{margin-top:1px;font-size:15px;font-weight:760;white-space:nowrap}.status-pill.good .status-value,.lock-state.locked,.ready-title{color:var(--green)}.status-pill.warn .status-value,.lock-state.waiting{color:var(--amber)}.status-pill.bad .status-value,.camera-error{color:var(--red)}.top-actions{display:flex;align-items:center;gap:10px}.camera-button,.icon-button,.control-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;color:var(--text);background:#ffffff0b;border:1px solid var(--line-strong);border-radius:6px;cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease,color .16s ease}.camera-button{padding:0 16px;font-weight:760}.icon-button{width:46px}.camera-button:hover,.icon-button:hover,.control-button:hover:not(:disabled){background:#ffffff14;border-color:#ffffff6b;transform:translateY(-1px)}.cockpit-grid{flex:1;min-height:0;display:grid;grid-template-columns:minmax(148px,178px) minmax(0,1fr) minmax(148px,178px) minmax(220px,250px);grid-template-areas:"left arena right diag";gap:10px}.arena-column{grid-area:arena;min-width:0;display:flex;align-items:stretch}.game-stage{position:relative;width:100%;aspect-ratio:16 / 9;min-height:320px;overflow:hidden;align-self:center;background:linear-gradient(120deg,#ffffff0d,#ffffff03),#080c0d}.camera-feed,.game-canvas,.glass-scanline{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.camera-feed{object-fit:cover;transform:scaleX(-1);opacity:.46;filter:grayscale(.15) contrast(.95) brightness(.72)}.game-canvas{z-index:2;display:block;touch-action:none}.glass-scanline{z-index:3;pointer-events:none;background:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:100% 4px,4px 100%;mix-blend-mode:screen;opacity:.42}.score-rail{--team: var(--red);--team-soft: var(--red-soft);grid-area:left;padding:14px;display:flex;flex-direction:column;gap:12px;min-width:0;border-color:color-mix(in srgb,var(--team),transparent 58%)}.score-rail.right{--team: var(--cyan);--team-soft: var(--cyan-soft);grid-area:right}.team-name{color:var(--team);font-size:14px;font-weight:850;text-transform:uppercase}.score-value{color:var(--team);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:66px;font-weight:850;line-height:.94;text-shadow:0 0 22px color-mix(in srgb,var(--team),transparent 50%)}.score-caption,.confidence-number{color:var(--muted);font-size:12px;font-weight:750;text-transform:uppercase}.team-progress{width:100%;height:7px;background:#ffffff1f;border-radius:999px;overflow:hidden}.team-progress:before{content:"";display:block;width:var(--progress);height:100%;background:var(--team);box-shadow:0 0 14px var(--team)}.rail-section{padding-top:12px;border-top:1px solid var(--line)}.rail-value{margin-top:4px;color:var(--team);font-size:20px;font-weight:830;text-transform:uppercase}.lock-state{margin-top:6px;font-size:15px;font-weight:830;text-transform:uppercase}.confidence-bars{display:grid;grid-template-columns:repeat(10,1fr);gap:3px;margin-top:10px}.confidence-bars span{height:17px;background:#ffffff1f;border-radius:2px}.confidence-bars .filled{background:var(--team);box-shadow:0 0 10px color-mix(in srgb,var(--team),transparent 45%)}.confidence-number{margin-top:6px;color:var(--team)}.hand-plot{position:relative;min-height:118px;margin-top:auto;border:1px solid var(--line);border-radius:6px;background:linear-gradient(180deg,var(--team-soft),transparent),#ffffff06;overflow:hidden}.hand-plot:before{content:"";position:absolute;left:50%;bottom:18px;width:48px;height:62px;transform:translate(-50%);border:1px solid color-mix(in srgb,var(--team),transparent 30%);border-radius:28px 28px 16px 16px;box-shadow:0 0 16px color-mix(in srgb,var(--team),transparent 65%)}.hand-plot span{position:absolute;left:calc(22% + var(--finger) * 14%);bottom:70px;width:10px;height:calc(38px + var(--finger) * 5px);border:1px solid color-mix(in srgb,var(--team),transparent 30%);border-radius:999px;transform-origin:bottom center;transform:rotate(calc((var(--finger) - 2) * 8deg))}.diagnostics-panel{grid-area:diag;padding:16px;min-width:0;display:flex;flex-direction:column;gap:16px}.panel-heading{color:var(--text);font-size:19px;font-weight:840;text-transform:uppercase}.metric-group{border-top:1px solid var(--line);padding-top:12px}.metric-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;color:var(--muted);font-size:13px}.metric-row strong{color:var(--text);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:13px;font-weight:700;text-align:right}.camera-error{padding:10px 12px;border:1px solid rgba(255,59,53,.35);background:#ff3b3514;border-radius:6px;font-size:12px}.event-log{margin-top:auto;border-top:1px solid var(--line);padding-top:12px}.event-row{margin-top:10px;color:var(--muted);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:11px;line-height:1.45}.control-dock{display:grid;grid-template-columns:minmax(360px,1fr) auto minmax(260px,340px);gap:18px;align-items:center;padding:14px 16px}.settings-cluster{display:grid;grid-template-columns:repeat(3,minmax(130px,1fr));gap:16px;min-width:0}.slider-control{--accent: var(--green);display:grid;gap:8px}.slider-control.red{--accent: var(--red)}.slider-control.cyan{--accent: var(--cyan)}.slider-control.green{--accent: var(--green)}.slider-control span{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;font-weight:760;text-transform:uppercase}.slider-control strong{margin-left:auto;color:var(--text);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}.slider-control input{width:100%;accent-color:var(--accent)}.command-cluster{display:flex;align-items:center;gap:10px}.control-button{min-width:96px;min-height:72px;flex-direction:column;padding:10px 12px;color:var(--text);font-size:13px;font-weight:830;text-transform:uppercase}.control-button.primary{min-width:112px;color:var(--green);border-color:color-mix(in srgb,var(--green),transparent 28%);background:#64d66f14}.control-button:disabled{opacity:.42;cursor:not-allowed;transform:none}.ready-card{display:grid;grid-template-columns:40px minmax(0,1fr);gap:12px;align-items:center;min-height:78px;padding:14px 16px;border-left:4px solid var(--amber);background:#ffffff0a;border-radius:6px}.ready-card.active{border-left-color:var(--green)}.ready-card svg{color:var(--green)}.ready-title{font-size:18px;font-weight:840;text-transform:uppercase}.ready-subtitle{margin-top:2px;color:var(--muted);font-size:13px}@media(max-width:1180px){.top-bar{grid-template-columns:190px 1fr}.top-actions{grid-column:1 / -1;justify-content:flex-end}.cockpit-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"arena arena" "left right" "diag diag"}.diagnostics-panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.panel-heading{grid-column:1 / -1}.event-log{margin-top:0}.control-dock{grid-template-columns:1fr}.command-cluster{justify-content:center}}@media(max-width:820px){.app-shell{padding:8px}.top-bar,.settings-cluster,.diagnostics-panel{grid-template-columns:1fr}.top-bar{gap:10px;min-height:0;padding:12px}.brand-title{font-size:30px}.brand-row{font-size:27px}.brand-lockup{border-right:0;border-bottom:1px solid var(--line);padding-bottom:10px}.status-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:0}.status-pill{min-height:58px;padding:7px 8px;grid-template-columns:28px minmax(0,1fr)}.status-value{font-size:14px}.top-actions{display:grid;grid-template-columns:1fr 54px;gap:8px}.camera-button{min-height:48px}.cockpit-grid{grid-template-columns:1fr;grid-template-areas:"arena" "left" "right" "diag"}.game-stage{min-height:auto}.score-rail{display:grid;grid-template-columns:1fr 1fr;align-items:center}.score-value{font-size:54px;justify-self:end}.hand-plot{display:none}.command-cluster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.control-button{width:100%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
