:root{color-scheme:dark;font-family:IBM Plex Sans,Avenir Next,sans-serif;font-size:13px;--surface: rgba(8, 20, 30, .82);--surface-strong: rgba(7, 16, 24, .94);--surface-soft: rgba(12, 28, 40, .72);--border: rgba(167, 199, 222, .14);--text: #edf5fa;--muted: #9eb4c6;--blue: #4b94ff;--blue-soft: rgba(75, 148, 255, .18);--orange: #f39a37;--orange-soft: rgba(243, 154, 55, .18);--ui-gap-xs: .22rem;--ui-gap-sm: .34rem;--ui-gap-md: .5rem;--ui-panel-padding: .52rem;--ui-control-font-size: .72rem;--ui-control-line-height: 1.15;--ui-control-padding-block: .22rem;--ui-control-padding-inline: .38rem;--ui-control-height: 1.55rem;--ui-radius-sm: .36rem;--ui-radius-md: .5rem;--ui-radius-lg: .72rem;--ui-radius-pill: 999px;--ui-border-subtle: rgba(255, 255, 255, .1);--ui-border-hover: rgba(255, 255, 255, .18);--ui-overlay-bg: rgba(4, 12, 18, .82);--ui-overlay-bg-strong: rgba(4, 12, 18, .9);background:radial-gradient(circle at top left,rgba(73,112,158,.28),transparent 32%),radial-gradient(circle at top right,rgba(243,154,55,.12),transparent 24%),linear-gradient(180deg,#071018,#0b1721);color:var(--text)}*,*:before,*:after{box-sizing:border-box}html,body,#app{width:100%;height:100%;overflow:hidden}body{margin:0}button,select,input{font:inherit}.shell{min-height:100dvh;height:100dvh;padding:0;display:block}.workspace{height:100%;display:block;min-height:0}.panel h2,.stats-panel h2{margin:0}.panel-copy{color:#bdd0de}.viewport-panel,.panel,.stats-panel{position:relative;border:1px solid var(--border);border-radius:1.4rem;background:var(--surface);box-shadow:0 22px 56px #0000003d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.viewport-panel{width:100%;height:100%;min-height:100dvh;overflow:hidden;border:0;border-radius:0;background:#061019;box-shadow:none}.viewport{position:absolute;inset:0}.top-chrome{position:absolute;top:.8rem;left:.8rem;z-index:20}.launcher-toggle{width:2.65rem;min-width:0;aspect-ratio:1;display:grid;place-items:center;padding:0;border-color:transparent;border-radius:var(--ui-radius-md);background:#050e16ad;box-shadow:0 12px 30px #0000004d;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.launcher-toggle:hover,.launcher-toggle[aria-expanded=true]{border-color:#ffffff29;background:#081824d1}.launcher-toggle-bars,.launcher-toggle-bars:before,.launcher-toggle-bars:after{display:block;width:1.18rem;height:.12rem;border-radius:var(--ui-radius-pill);background:#edf5fa}.launcher-toggle-bars{position:relative}.launcher-toggle-bars:before,.launcher-toggle-bars:after{content:"";position:absolute;left:0}.launcher-toggle-bars:before{top:-.38rem}.launcher-toggle-bars:after{top:.38rem}.launcher-menu{position:absolute;top:calc(100% + .55rem);left:0;width:min(22rem,calc(100vw - 1.6rem));max-height:calc(100dvh - 7.5rem);overflow:auto;display:grid;gap:var(--ui-gap-md);padding:var(--ui-panel-padding);border:1px solid rgba(255,255,255,.12);border-radius:var(--ui-radius-lg);background:var(--ui-overlay-bg-strong);box-shadow:0 18px 54px #0000005c;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.launcher-menu[hidden]{display:none}.launcher-section{display:grid;gap:var(--ui-gap-xs)}.launcher-section h2{margin:0;color:#87afd4;font-size:.68rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.launcher-section button{width:100%;text-align:left}.hidden-file-input,.visually-hidden{position:fixed;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.team-blue{--team-accent: var(--blue);--team-soft: var(--blue-soft)}.team-orange{--team-accent: var(--orange);--team-soft: var(--orange-soft)}.floating-window-layer,.stats-window-layer{position:absolute;inset:0;z-index:12;pointer-events:none}.floating-window,.stats-window{position:absolute;left:clamp(.8rem,var(--window-x, 1rem),calc(100vw - 18rem));top:clamp(.8rem,var(--window-y, 1rem),calc(100dvh - 12rem));width:min(26rem,calc(100vw - 1.6rem));max-height:calc(100dvh - 8rem);overflow:auto;display:grid;gap:var(--ui-gap-md);padding:var(--ui-panel-padding);border:1px solid rgba(255,255,255,.12);border-radius:var(--ui-radius-lg);background:var(--ui-overlay-bg);box-shadow:0 16px 44px #00000052;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:auto;-webkit-user-select:none;user-select:none}.floating-window[hidden],.stats-window[hidden]{display:none}.floating-window-camera{width:min(26rem,calc(100vw - 1.6rem))}.floating-window-recording{--window-x: calc(100vw - 27rem) ;width:min(26rem,calc(100vw - 1.6rem))}.floating-window-playback{--window-x: calc(100vw - 23rem) ;width:min(21rem,calc(100vw - 1.6rem))}.floating-window-boost-pickups{width:min(34rem,calc(100vw - 1.6rem))}.floating-window-header,.stats-window-header{display:flex;align-items:start;justify-content:space-between;gap:var(--ui-gap-md);cursor:grab}.stats-window-header-actions-only{justify-content:end}.floating-window:active .floating-window-header,.stats-window:active .stats-window-header{cursor:grabbing}.floating-window-header h2,.stats-window-header h2{margin:0;color:#87afd4;font-size:.68rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.floating-window-hide,.stats-window-action{flex-shrink:0;padding:var(--ui-control-padding-block) var(--ui-control-padding-inline);border-radius:var(--ui-radius-md);font-size:var(--ui-control-font-size)}.viewport canvas{display:block;width:100%;height:100%}.replay-load-modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:1.25rem;background:radial-gradient(circle at top,rgba(89,157,219,.18),transparent 30%),#040b12c2;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.replay-load-modal[hidden]{display:none}.replay-load-modal__dialog{width:min(32rem,100%);display:grid;gap:.75rem;padding:1.4rem 1.45rem;border-radius:1.35rem;border:1px solid rgba(255,255,255,.12);background:linear-gradient(180deg,#0b1724f5,#070f18f0);box-shadow:0 24px 70px #0006}.replay-load-modal__eyebrow{margin:0;font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#87afd4}.replay-load-modal__title,.replay-load-modal__status,.replay-load-modal__meta{margin:0}.replay-load-modal__title{font-size:clamp(1.45rem,4vw,2.1rem);line-height:1.1;color:#f3f8fc}.replay-load-modal__status{color:#e6f0f7;font-size:1rem}.replay-load-modal__phase-list{display:grid;gap:.52rem}.replay-load-modal__phase-row{display:grid;gap:.28rem}.replay-load-modal__phase-label{margin:0;font-size:.82rem;letter-spacing:.04em;color:#9eb4c6}.replay-load-modal__phase-row[data-state=active] .replay-load-modal__phase-label{color:#edf5fa}.replay-load-modal__phase-row[data-state=complete] .replay-load-modal__phase-label{color:#c5d9e7}.replay-load-modal__phase-bar{overflow:hidden;height:.58rem;border-radius:999px;background:#ffffff1a}.replay-load-modal__phase-fill{width:0%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#4b94ff,#8ec5ff 55%,#f39a37);transition:width .14s ease}.replay-load-modal__phase-row[data-state=complete] .replay-load-modal__phase-fill{opacity:.95}.replay-load-modal__phase-fill[data-indeterminate=true]{width:100%!important;background:linear-gradient(90deg,#4b94ff40,#4b94ffcc 28%,#8ec5fff2,#f39a37cc 72%,#f39a3740);background-size:180% 100%;animation:replay-load-phase-indeterminate 1.1s linear infinite}@keyframes replay-load-phase-indeterminate{0%{background-position:0% 0%}to{background-position:180% 0%}}.replay-load-modal__meta{color:#9eb4c6;font-size:.92rem}.empty-state{position:absolute;left:50%;top:50%;z-index:10;display:grid;gap:.55rem;min-width:min(20rem,calc(100vw - 2rem));transform:translate(-50%,-50%);padding:.85rem .95rem;border-radius:1rem;border:1px solid rgba(169,201,226,.14);background:#040c12d1;color:#bfd2de;text-align:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.empty-state[hidden]{display:none}.empty-state p{margin:0}.stats-panel{padding:1.15rem 1.15rem 1rem}.panel-heading{display:flex;justify-content:space-between;align-items:start;gap:1rem;margin-bottom:1rem}.player-stats-stack{display:grid;gap:.9rem}.player-stats-grid{display:flex;gap:.7rem;flex-wrap:wrap}.player-card{flex:1 1 13rem;min-width:12rem;padding:.85rem;border-radius:1rem;border:1px solid rgba(255,255,255,.08);background:#ffffff09}.player-card.team-blue{background:var(--blue-soft);border-color:#4b94ff42}.player-card.team-orange{background:var(--orange-soft);border-color:#f39a3747}.player-card.shared{background:linear-gradient(180deg,#ffffff0f,#ffffff06),#ffffff09;border-color:#ffffff1f}.player-card-header{display:flex;justify-content:space-between;align-items:center;gap:.4rem;margin-bottom:.45rem}.player-name{font-size:.85rem;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stat-row{display:flex;justify-content:space-between;gap:.5rem;padding:.15rem 0;font-size:.8rem}.label,.detail-grid dt,.stat-row .label{color:#89a4ba}.stat-row .value,.detail-grid dd{font-variant-numeric:tabular-nums}.role-indicator,.depth-indicator{flex-shrink:0;padding:.18rem .45rem;border-radius:999px;font-size:.64rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.role-back,.depth-last{background:#ea55552e;color:#ff9b9b}.role-forward,.depth-upfield{background:#4ac6762e;color:#9ce5a8}.role-other,.depth-level{background:#8495a82e;color:#c0cbd6}.role-mid,.depth-mid{background:#f39a372e;color:#ffc680}.stat-module-section{display:grid;gap:.45rem}.stat-module-label{font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#6f889d}.sidebar{min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;align-items:start;gap:1rem}.stat-window-empty{margin:0;color:#9eb4c6;font-size:.88rem}.stats-window-toolbar,.stats-window-scope-row,.stats-window-actions{display:flex;align-items:center;gap:var(--ui-gap-sm);flex-wrap:wrap}.stats-window-toolbar{justify-content:end}.stats-window-scope-select{min-width:min(100%,13rem)}.stats-window-add-button{width:var(--ui-control-height);min-width:var(--ui-control-height);padding:0;font-size:1rem;font-weight:800;line-height:1}.stats-window-add-button[aria-expanded=true]{border-color:var(--ui-border-hover);background:#ffffff1a}.stats-window-scope-select.team-blue,.stats-window-scope-select.team-orange,.stats-window-stat-target.team-blue,.stats-window-stat-target.team-orange{border-color:var(--team-accent);box-shadow:inset .22rem 0 0 var(--team-accent)}.stats-window-picker{display:grid;gap:var(--ui-gap-sm);padding:var(--ui-panel-padding);border-radius:var(--ui-radius-md);border:1px solid rgba(255,255,255,.08);background:#ffffff0a}.stats-window-picker[hidden]{display:none}.stats-window-picker-list{display:grid;gap:var(--ui-gap-xs);max-height:15rem;overflow:auto}.stats-window-picker-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.45rem;align-items:center;width:100%;padding:var(--ui-control-padding-block) var(--ui-control-padding-inline);text-align:left}.stats-window-picker-item span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stats-window-picker-item strong{color:#87afd4;font-size:.62rem;letter-spacing:.08em;text-transform:uppercase}.stats-window-stat-list,.stats-window-entity-list{display:grid;gap:var(--ui-gap-sm)}.stats-window-entity{display:grid;gap:var(--ui-gap-xs);padding-left:.5rem;border-left:2px solid rgba(255,255,255,.12)}.stats-window-entity.team-blue,.stats-window-entity.team-orange{border-left-color:var(--team-accent);background:linear-gradient(90deg,var(--team-soft),transparent 70%)}.stats-window-entity-title{margin:0;color:#edf5fa;font-size:.82rem;font-weight:800}.stats-window-stat-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:var(--ui-gap-sm);align-items:center;min-height:1.45rem;font-size:.8rem}.stats-window-stat-name{min-width:0;color:#9eb4c6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stats-window-stat-target{max-width:7rem;margin-left:.35rem;padding:.16rem .3rem;border-radius:var(--ui-radius-sm);font-size:.7rem}.stats-window-stat-value{color:#edf5fa;font-variant-numeric:tabular-nums}.stats-window-stat-remove{padding:.18rem .36rem;border-radius:var(--ui-radius-sm);font-size:.7rem}.panel{padding:var(--ui-panel-padding);display:grid;gap:var(--ui-gap-md)}.panel>label,.panel>.detail-grid,.panel>.transport-row,.panel>.module-list{margin-top:0}.panel-copy{margin:0;font-size:.92rem;line-height:1.45}.transport-row{display:flex;gap:var(--ui-gap-sm)}.transport-row>*{flex:1 1 auto}.recording-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ui-gap-sm)}.camera-presets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ui-gap-xs)}.camera-presets button{font-size:var(--ui-control-font-size)}.camera-presets button[data-active=true]{border-color:#8ec5ff6b;background:linear-gradient(180deg,#21476bf5,#0c1b2afa);color:#f3f8fc;box-shadow:inset 0 0 0 1px #8ec5ff1f}.camera-settings-controls{display:grid;gap:var(--ui-gap-sm)}.camera-settings-controls[hidden]{display:none}.camera-setting-label{display:flex;align-items:center;justify-content:space-between;gap:var(--ui-gap-md);font-size:.8rem;color:#9fb3c4}.camera-setting-label strong{color:#e8f0f7;font-variant-numeric:tabular-nums}button,select,input[type=file],input[type=range]{border-radius:var(--ui-radius-md)}button,select,input[type=file]{min-height:var(--ui-control-height);border:1px solid var(--ui-border-subtle);padding:var(--ui-control-padding-block) var(--ui-control-padding-inline);background:var(--surface-strong);color:var(--text);font-size:var(--ui-control-font-size);line-height:var(--ui-control-line-height)}button{cursor:pointer}select{appearance:none;padding-right:1.35rem;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - .76rem) 50%,calc(100% - .52rem) 50%;background-repeat:no-repeat;background-size:.24rem .24rem}button:hover:not(:disabled),select:hover:not(:disabled){border-color:var(--ui-border-hover)}button:disabled,select:disabled,input:disabled{opacity:.55;cursor:not-allowed}input[type=range]{width:100%;margin-top:var(--ui-gap-xs);accent-color:var(--blue)}.metric-readout{font-size:.88rem;font-weight:700;font-variant-numeric:tabular-nums}.toggle{display:inline-flex;align-items:center;gap:.4rem;color:#bfd0dd}.detail-grid{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem .7rem}.detail-grid dt,.detail-grid dd{margin:0}.detail-grid dt{font-size:.68rem;margin-bottom:.12rem}.detail-grid dd{font-size:.84rem;color:var(--text);overflow-wrap:anywhere}.module-groups{display:grid;gap:var(--ui-gap-md)}.module-summary-group{display:grid;gap:var(--ui-gap-xs)}.module-summary-group h3{margin:0;color:#87afd4;font-size:.64rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.module-list{display:flex;flex-wrap:wrap;gap:.5rem}.module-settings{display:grid;gap:.75rem}.module-settings-card{display:grid;gap:.75rem;padding:.85rem .9rem;border-radius:1rem;border:1px solid rgba(255,255,255,.08);background:#ffffff09}.module-settings-subgroup{display:grid;gap:.65rem;padding-top:.15rem;border-top:1px solid rgba(255,255,255,.06)}.module-settings-options{display:grid;gap:.45rem}.module-settings-group-title{margin:0;color:#d7e5ef;font-size:.78rem;font-weight:800}.module-settings-header{display:flex;align-items:start;justify-content:space-between;gap:.8rem}.module-settings-header h3{margin:.1rem 0 0;font-size:.96rem}.module-settings-eyebrow{margin:0;font-size:.66rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#87afd4}.boost-pickup-filter-panel{display:grid;gap:.65rem}.boost-pickup-filter-summary{display:flex;justify-content:end}.boost-pickup-filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem 1rem}.boost-pickup-filter-group{display:grid;align-content:start;gap:.35rem;min-width:0}.boost-pickup-filter-group[hidden]{display:none}.boost-pickup-filter-group-wide{grid-column:1 / -1}.boost-pickup-filter-options{display:flex;flex-wrap:wrap;gap:.35rem .8rem;min-width:0}.boost-pickup-filter-options .toggle{min-width:0}.module-summary-item{appearance:none;display:inline-flex;align-items:center;justify-content:space-between;gap:var(--ui-gap-sm);min-height:var(--ui-control-height);padding:var(--ui-control-padding-block) var(--ui-control-padding-inline);border-radius:var(--ui-radius-pill);border:1px solid var(--ui-border-subtle);background:#ffffff08;color:var(--muted);font:inherit;font-size:var(--ui-control-font-size);line-height:var(--ui-control-line-height);cursor:pointer;transition:border-color .14s ease,background-color .14s ease,color .14s ease}.module-summary-item:hover{border-color:var(--ui-border-hover);color:var(--text)}.module-summary-item strong{font-size:.62rem;letter-spacing:.08em;text-transform:uppercase}.module-summary-item[data-active=true]{border-color:#4b94ff38;background:#4b94ff14;color:#dceafb}@media(max-width:1180px){.sidebar{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:860px){.shell{padding:0}.sidebar{grid-template-columns:1fr}.panel-heading{display:grid}.detail-grid{grid-template-columns:1fr 1fr}.viewport-panel{min-height:100dvh}}@media(max-width:560px){.detail-grid{grid-template-columns:1fr}.transport-row{flex-direction:column}.floating-window,.stats-window{left:.55rem;right:.55rem;width:auto}}
