@import"https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800;900&family=DM+Sans:wght@400;500;600;700&display=swap";:root{font-family:DM Sans,system-ui,sans-serif;color:#e8f1e9;background:#0c171c;font-synthesis:none;color-scheme:dark;--gold:#f4c56b;--muted:#94aaa5;--red:#ef8d7e;--blue:#91cee9}*{box-sizing:border-box}html,body,#app{margin:0;width:100%;height:100%;overflow:hidden}body{font-size:16px}button,input,select,textarea{font:inherit}button{cursor:pointer;transition:background .15s,transform .15s;border:0}button:active{transform:translateY(1px)}button:disabled{opacity:.4;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.hidden{display:none!important}#app{display:flex;flex-direction:column}h1,h2,p{margin:0}h1,h2,.wordmark,.scoreboard strong,.match-clock b,.phase-banner,.mode-option>b,.end-actions{font-family:Barlow Condensed,Impact,system-ui,sans-serif}h1{font-size:48px;font-weight:800;line-height:1;letter-spacing:-.5px}h2{font-size:29px;font-weight:700}button{color:inherit}.topbar{height:78px;flex:0 0 78px;display:flex;align-items:center;justify-content:space-between;padding:0 26px;gap:20px;border-bottom:1px solid #203336;z-index:5;background:#0c171c}.wordmark{display:flex;align-items:center;gap:10px;padding:0;background:none;text-align:left;font-size:17px;font-weight:700;line-height:.95;letter-spacing:1.2px}.wordmark small{font-size:26px;display:block;letter-spacing:2.5px;color:#f4e8c7;margin-top:4px}.brand-icon{font-size:36px;color:var(--gold)}.scoreboard{position:absolute;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:22px}.scoreboard strong{font-size:43px;width:32px;text-align:center}.team-label{font-size:13px;font-weight:800;letter-spacing:1px}.red{color:var(--red)}.blue{color:var(--blue)}.match-clock{border-left:1px solid #29413e;border-right:1px solid #29413e;text-align:center;padding:0 24px;min-width:133px}.match-clock b{font-size:32px;line-height:1;letter-spacing:2px}.match-clock span{display:block;font-size:10px;font-weight:700;letter-spacing:1.5px;color:#96aca5;margin-top:5px}.top-actions{display:flex;gap:10px;align-items:center}.quiet,.icon-button{background:transparent;color:#b8ccc2;border:1px solid #30433f;border-radius:7px;padding:9px 13px;font-size:14px;font-weight:600}.quiet:hover,.icon-button:hover{background:#273b39;color:#fff}.icon-button{font-size:24px;padding:2px 10px;min-width:38px;min-height:38px}.primary,.secondary{border-radius:7px;padding:12px 18px;font-size:14px;font-weight:800}.primary{background:#f4c56b;color:#1a2727;box-shadow:0 3px #936d2d}.primary:hover{background:#ffdc96}.secondary{background:#253b3b;border:1px solid #44605a}.secondary:hover{background:#37524a}.large{width:100%;padding:15px 18px}.primary.large{display:flex;align-items:center;justify-content:space-between}.row{display:flex;gap:10px}.row>*{flex:1}#fieldWrap{position:relative;flex:1;min-height:0;isolation:isolate}#field{position:absolute;inset:0}#field>canvas{display:block;width:100%;height:100%}.aim-overlay{position:absolute;inset:0;pointer-events:none}.phase-banner{position:absolute;top:12px;left:50%;transform:translate(-50%);background:#0a1a20ed;border:1px solid #40625b;border-radius:6px;padding:8px 16px 11px;display:flex;align-items:center;gap:26px;min-width:236px;justify-content:space-between;box-shadow:0 4px 16px #0002}.phase-banner span{font-size:17px;font-weight:700;letter-spacing:1.2px}.phase-banner b{font-size:26px;min-width:31px;text-align:right;color:#f4e8c7;line-height:1}.phase-track{position:absolute;bottom:0;left:0;right:0;height:3px;background:#213e36;border-radius:0 0 5px 5px;overflow:hidden}.phase-track i{display:block;height:100%;background:#b4d3ad}.urgent{border-color:#bb9560}.urgent .phase-track i{background:var(--gold)}.urgent b{color:var(--gold)}.forecast-note{position:absolute;bottom:12px;left:50%;transform:translate(-50%);font-size:12px;white-space:nowrap;color:#f8efcb;background:#112626dd;border-radius:4px;padding:7px 12px}.menu-panel{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#0e2026f5;border:1px solid #49655c;border-radius:14px;padding:28px;width:398px;max-width:calc(100% - 28px);max-height:calc(100% - 24px);overflow:auto;box-shadow:0 20px 100px #0009,0 0 0 6px #0b1e2544}.eyebrow{display:block;font-size:11px;font-weight:800;letter-spacing:2.2px;color:var(--gold);margin-bottom:11px}.intro{font-size:14px;line-height:1.55;color:#a3bdb4;margin:14px 0 19px}.field-label{font-size:13px;font-weight:700;display:block;margin:12px 0 8px;color:#cddad0}input:not([type=range]):not([type=checkbox]),select,textarea{background:#142c30;color:#edf2e7;border:1px solid #3d5650;border-radius:6px;padding:10px 12px;width:100%;font-size:14px}.mode-options{display:flex;gap:8px;margin:16px 0}.mode-option{flex:1;display:flex;flex-direction:column;background:#173033;border:1px solid #35504b;border-radius:8px;padding:10px 2px;gap:4px;text-align:center}.mode-option.active{border-color:var(--gold);background:#413e2b}.mode-option>b{font-size:25px}.mode-option span{font-size:11px;white-space:nowrap}.mode-option i{font-style:normal;font-size:9px;letter-spacing:1.6px;color:#a8b4a6}.mode-option.active i{color:var(--gold)}.menu-panel>.row{margin-top:12px}.join-row{display:flex;gap:9px;margin-top:18px}.join-row input{flex:1;width:0}.connection{font-size:12px;color:#8caaa0;text-align:center;margin-top:14px}.seat{display:flex;align-items:center;gap:9px;border:1px solid #2e4844;border-radius:7px;padding:10px 12px;margin:9px 0;background:#182e31;font-size:14px}.seat span:last-child{margin-left:auto;font-size:12px;color:#99aea4}.empty{opacity:.55}.muted{color:#9eb6ab;font-size:14px;line-height:1.5}.menu-panel>.muted{margin:14px 0}.menu-panel>#lobbyMode{color:#a7bfb3;margin:12px 0}.bottom-bar{flex:0 0 88px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-top:1px solid #294039;padding:12px 26px;background:#0d1b20}.instruction{display:flex;flex-direction:column;gap:5px;min-width:180px;max-width:420px}.instruction strong{font-size:15px;color:#eadfc3}.instruction span{font-size:12px;color:#9aafa6;line-height:1.5}.puck-cards{display:flex;gap:9px}.puck-card{display:flex;gap:10px;align-items:center;border:1px solid #34504a;border-radius:8px;background:#14282b;padding:8px 12px;min-width:92px}.puck-card.gold{border-color:#d5ad60;background:#393927}.puck-card.selected{box-shadow:0 0 0 1px #e8debf}.puck-card b{font-size:16px;display:block}.puck-card small{display:block;font-size:10px;color:#96b0a4;margin-top:2px}.puck-card.gold small{color:#f4c56b}.mini-puck{display:flex;align-items:center;justify-content:center;border:2px solid currentColor;border-radius:50%;width:25px;height:25px;font-size:12px;font-weight:800}.status-label{font-size:10px;font-weight:700;letter-spacing:1px;color:#7f9b90;text-align:right;max-width:190px}.drill-panel{position:absolute;left:20px;top:16px;width:275px;max-width:32%;background:#10282eea;border:1px solid #558375;border-radius:9px;padding:16px;box-shadow:0 5px 25px #0003}.drill-panel .eyebrow{font-size:10px;margin-bottom:7px}.drill-panel h2{font-size:25px;line-height:1}.drill-panel p{font-size:13px;line-height:1.45;margin-top:10px}.drill-panel .row{margin-top:15px}.drill-panel button{padding:9px 10px;font-size:12px}.drill-panel .muted{font-size:12px;color:#94b8a8}.toast{position:absolute;bottom:28px;left:50%;transform:translate(-50%);max-width:90%;background:#e9e2c9;color:#1b3331;font-size:14px;font-weight:600;padding:12px 20px;border-radius:8px;box-shadow:0 5px 35px #0005;z-index:50;pointer-events:none}.end-actions{position:absolute;top:calc(50% + 76px);left:50%;transform:translate(-50%);display:flex;gap:14px;white-space:nowrap}dialog{color:#edf1e7;background:#10242b;border:1px solid #51665b;border-radius:14px;padding:26px;box-shadow:0 25px 100px #0009;max-height:90dvh;overflow:auto}dialog::backdrop{background:#041119b8;backdrop-filter:blur(4px)}.settings-dialog,.copy-dialog{width:470px;max-width:calc(100vw - 24px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:20px}.dialog-head .eyebrow{margin-bottom:5px}.dialog-head .icon-button{align-self:flex-start}.dialog-head+.muted{margin-top:13px}.settings-tabs{display:flex;margin:20px 0;gap:6px;background:#0c1c22;border-radius:8px;padding:4px}.settings-tabs button{flex:1;padding:9px;background:transparent;border-radius:6px;font-size:13px;font-weight:700;color:#a2b9af}.settings-tabs button.active{background:#30463e;color:#fff3cf}.slider-label{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:500;margin:19px 0 7px}.slider-label output{color:var(--gold);font-variant-numeric:tabular-nums;font-weight:700;font-size:14px;min-width:40px;text-align:right}input[type=range]{accent-color:#f4c56b;width:100%;height:19px;margin:0}input[type=checkbox]{accent-color:#f4c56b;width:19px;height:19px;flex:0 0 19px}.toggle{display:flex;justify-content:space-between;align-items:center;font-size:14px;gap:15px;border-bottom:1px solid #2d443e;padding:17px 0}.help{font-size:12px;line-height:1.5;color:#8eada0;margin:16px 0}.dialog-footer{display:flex;justify-content:space-between;gap:12px;margin-top:23px;padding-top:20px;border-top:1px solid #354b42}.copy-dialog textarea{display:block;min-height:340px;max-height:55vh;font-family:ui-monospace,monospace;font-size:12px;line-height:1.6;resize:vertical;white-space:pre;margin:18px 0}.copy-dialog>.primary{justify-content:center}@media(min-width:1600px){.topbar{height:90px;flex-basis:90px}.bottom-bar{flex-basis:98px}.puck-card{min-width:110px}.instruction{max-width:460px}.instruction span{font-size:14px}}@media(max-height:760px){.menu-panel{padding:20px;width:360px}.menu-panel h1{font-size:37px}.intro{margin:9px 0 10px}.field-label{margin-top:8px}.mode-options{margin:12px 0}.mode-option{padding:8px 2px}.large{padding:12px 15px}.connection{margin-top:10px}.join-row{margin-top:13px}.topbar{height:64px;flex-basis:64px}.bottom-bar{flex-basis:76px;padding:9px 20px}}@media(max-width:1000px){.topbar{padding:0 15px}.wordmark{font-size:12px}.wordmark small{font-size:21px}.brand-icon{font-size:26px}.scoreboard{gap:10px}.match-clock{padding:0 16px;min-width:110px}.scoreboard strong{font-size:36px}.top-actions{gap:5px}.top-actions .quiet{padding:8px}.status-label{display:none}.bottom-bar{padding:10px 16px}.instruction{max-width:320px}.puck-card{min-width:73px;padding:7px 9px;gap:6px}.drill-panel{max-width:30%;padding:12px}.drill-panel h2{font-size:23px}.drill-panel p{font-size:12px}}@media(max-width:700px){.topbar{height:62px;flex-basis:62px;padding:0 10px}.wordmark{font-size:10px;letter-spacing:.6px}.wordmark small{font-size:16px;letter-spacing:1px}.brand-icon{display:none}.scoreboard{gap:6px}.scoreboard strong{font-size:30px;width:22px}.team-label{display:none}.match-clock{padding:0 10px;min-width:84px}.match-clock b{font-size:26px}.match-clock span{font-size:8px;letter-spacing:.4px}.top-actions .quiet span{display:none}.top-actions .quiet{padding:6px;font-size:12px}.top-actions .icon-button{font-size:18px;min-width:29px;min-height:30px;padding:0 5px}.bottom-bar{flex-basis:111px;flex-direction:column;gap:8px;padding:9px 12px}.instruction{max-width:none;text-align:center}.instruction span{font-size:10px}.instruction strong{font-size:13px}.puck-card{min-width:67px;padding:5px 8px;gap:7px}.puck-card b{font-size:13px}.puck-card small{font-size:9px}.mini-puck{width:21px;height:21px;font-size:11px}.puck-cards{gap:6px}.phase-banner{top:8px;padding:6px 11px 9px;min-width:210px}.phase-banner span{font-size:14px}.phase-banner b{font-size:23px}.drill-panel{top:62px;left:8px;max-width:calc(100% - 16px);width:260px;padding:10px}.drill-panel h2{font-size:21px}.drill-panel p{font-size:11px;margin-top:6px}.drill-panel .row{margin-top:8px}.drill-panel .muted{font-size:10px}.menu-panel{width:340px;padding:19px}.menu-panel h1{font-size:35px}.intro{font-size:12px}.mode-option span{font-size:10px}.forecast-note{font-size:10px;bottom:8px}.dialog-head h2{font-size:26px}}@media(max-height:520px)and (orientation:landscape){.topbar{height:48px;flex-basis:48px}.bottom-bar{flex-basis:58px;flex-direction:row}.instruction span{max-width:290px;font-size:10px}.wordmark small{font-size:16px}.wordmark{font-size:10px}.scoreboard strong{font-size:30px}.match-clock b{font-size:24px}.match-clock span{font-size:8px}.menu-panel{max-height:calc(100% - 10px);width:500px;top:50%;padding:16px}.menu-panel h1{font-size:28px}.menu-panel h1 br{display:none}.intro{margin:6px 0;font-size:11px}.phase-banner{top:5px}.drill-panel{top:8px}.drill-panel h2{font-size:20px}.drill-panel p{font-size:11px}}.award{position:absolute;top:80px;left:50%;transform:translate(-50%);color:#ffe3a4;background:#142a2ded;border:1px solid #8e7b4e;border-radius:7px;padding:12px 22px;font-family:Barlow Condensed,system-ui;font-size:26px;font-weight:800;letter-spacing:1px;white-space:nowrap;pointer-events:none;box-shadow:0 7px 26px #0003}.pregame-settings{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:12px 10px;margin:0 0 12px;border:1px solid #536558;border-radius:7px;background:#223a36;text-align:left}.pregame-settings b{font-size:13px;color:#eee4c4}.pregame-settings span{font-size:11px;color:#adc4b6}.pregame-settings:hover{background:#304b40}.tuning-heading{font-size:15px;color:#f3dfb6;margin:0}.fine-tuning{border-top:1px solid #40554a;margin:16px 0 20px;padding-top:14px}.fine-tuning summary{cursor:pointer;font-size:15px;font-weight:700;color:#dbe8db}.fine-tuning summary span{display:block;font-size:12px;font-weight:400;color:#99b2a5;margin:6px 0 0 16px}.fine-tuning[open] summary{margin-bottom:16px}.live-play .phase-track{opacity:.3}.live-play b{font-size:19px}.stats-dialog{width:720px;max-width:calc(100vw - 24px)}.stats-scroll{overflow-x:auto;margin-top:24px}.stats-dialog table{border-collapse:collapse;width:100%;font-size:14px;font-variant-numeric:tabular-nums}.stats-dialog td,.stats-dialog th{padding:12px 9px;border-bottom:1px solid #2b4742;text-align:center;white-space:nowrap}.stats-dialog th:first-child{text-align:left}.stats-dialog thead th{font-size:12px;color:#9fbbb0;font-weight:500}.stats-dialog .team-row th{padding-top:18px;padding-bottom:7px;font-size:12px;letter-spacing:1px}.stats-dialog small{font-size:10px;color:var(--gold);margin-left:5px}.phase-banner{max-width:calc(100% - 16px);gap:14px;border-width:2px}.planning-phase{background:#302b17f5;border-color:#e2bb62;color:#fff0bf}.planning-phase .phase-track i{background:#f4c56b}.live-play{background:#103d38f5;border-color:#5fd3ad;color:#c8ffea}.live-play b{color:#a3ffd6}.planning-phase.urgent{background:#671f2ff5;border-color:#ff6376;color:#fff;animation:planning-alert 1s ease-in-out infinite}.planning-phase.urgent b{color:#fff;font-size:30px}.planning-phase.urgent .phase-track i{background:#ff6675}@keyframes planning-alert{0%,to{background:#671f2ff5;box-shadow:0 0 #ff4e6330}50%{background:#a82c40fa;box-shadow:0 0 0 6px #ff4e6320}}@media(prefers-reduced-motion:reduce){.planning-phase.urgent{animation:none;box-shadow:0 0 0 3px #ff4e6328}}@media(max-width:1100px){.top-actions .quiet span{display:none}}@media(max-width:700px){.award{top:60px;font-size:20px;padding:8px 14px}.stats-dialog{padding:18px}.stats-dialog td,.stats-dialog th{padding:10px 8px}}.final-play-notice{position:absolute;top:77px;left:50%;transform:translate(-50%);border:1px solid #ffdf80;border-radius:5px;background:#493918ed;color:#ffe699;padding:7px 16px;font-size:13px;font-weight:900;letter-spacing:1.4px;white-space:nowrap}.practice-launch{margin-top:12px}.mode-options{display:grid;grid-template-columns:repeat(2,1fr)}.forecast-note{max-width:calc(100% - 24px);white-space:normal;text-align:center;pointer-events:none}.wordmark{font-size:32px;letter-spacing:2px}.wordmark small{font-family:DM Sans,system-ui,sans-serif;font-size:9px;letter-spacing:1.2px;color:#96aca5;margin-top:6px}@media(max-width:650px){.wordmark{font-size:24px}.wordmark small{display:none}}.practice-editor{position:fixed;inset:0;z-index:1000;background:#081418;color:#eef7ef;font:500 14px/1.35 system-ui,sans-serif;display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-template-rows:auto minmax(0,1fr)}.practice-editor[hidden]{display:none}.practice-top{grid-column:1/-1;display:flex;align-items:center;gap:9px;padding:10px 14px;background:#10252a;border-bottom:1px solid #31504b;flex-wrap:wrap}.practice-top h2{font-size:17px;margin:0 auto 0 0}.practice-top button,.practice-panel button,.practice-panel input,.practice-panel select,.practice-panel textarea{font:inherit}.practice-top button,.practice-panel button{border:1px solid #54736c;background:#173b3a;color:#f5faee;border-radius:7px;padding:7px 10px;cursor:pointer}.practice-top button.active,.practice-panel button.primary{background:#d9b85c;color:#17221e;border-color:#ffe08a}.practice-field{position:relative;min-width:0;min-height:0;overflow:hidden}.practice-field canvas{position:absolute;inset:0;width:100%;height:100%}.practice-field .aim-overlay{z-index:2;pointer-events:auto;touch-action:none;user-select:none}.practice-panel{overflow:auto;padding:14px;background:#102025;border-left:1px solid #31504b}.practice-panel section{border-bottom:1px solid #29433f;padding:0 0 14px;margin:0 0 14px}.practice-panel h3{font-size:14px;margin:0 0 8px;color:#ffe29a}.practice-panel label{display:grid;gap:4px;margin:7px 0}.practice-panel input,.practice-panel select,.practice-panel textarea{box-sizing:border-box;width:100%;border:1px solid #49645f;border-radius:6px;background:#09191d;color:#eef7ef;padding:7px}.practice-panel textarea{min-height:85px;resize:vertical}.practice-row{display:flex;gap:7px;align-items:center}.practice-row>*{flex:1}.practice-help{color:#acc5bd;font-size:12px;margin:5px 0}.practice-status{color:#ffe29a;min-height:1.4em}.practice-list{display:grid;gap:6px;max-height:150px;overflow:auto}.practice-list button{text-align:left}.practice-list button.selected{outline:2px solid #f2ce69}.practice-danger{color:#ffc0ad!important}.practice-badge{position:absolute;z-index:3;left:12px;bottom:12px;max-width:min(520px,calc(100% - 24px));background:#10252add;padding:8px 10px;border-radius:7px;pointer-events:none}.practice-panel label:has(input[type=checkbox]){display:flex;align-items:center;gap:8px}.practice-panel label:has(input[type=checkbox]) input{width:auto;margin:0}.practice-phase-label{position:absolute;z-index:4;left:50%;top:14px;transform:translate(-50%);min-width:110px;text-align:center;border:1px solid #8cb4a8;border-radius:999px;background:#10252aeb;color:#e9fff5;padding:8px 16px;font-size:18px;font-weight:900;pointer-events:none}.practice-phase-label.urgent{color:#fff0d2;border-color:#ff806c;background:#672a28ed;animation:practice-pulse .7s ease-in-out infinite alternate}@keyframes practice-pulse{to{transform:translate(-50%) scale(1.08)}}@media(max-width:780px){.practice-editor{grid-template-columns:1fr;grid-template-rows:auto minmax(300px,54vh) minmax(0,1fr)}.practice-field{grid-row:2}.practice-panel{grid-row:3;border-left:0;border-top:1px solid #31504b;padding:10px}.practice-top{padding:7px}.practice-top h2{width:100%;font-size:15px}.practice-top button{padding:6px 8px}}.profile-dialog{width:900px}.profile-filters{display:flex;gap:14px;margin:20px 0}.profile-filters label{flex:1;font-size:12px;color:#b8ccc2}.profile-filters select{display:block;margin-top:7px;width:100%}.profile-totals{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0}.profile-totals>div{background:#203a34;border:1px solid #3b554a;border-radius:8px;padding:15px 10px;text-align:center}.profile-totals b{display:block;font-size:27px;color:#ffdc96;font-variant-numeric:tabular-nums}.profile-totals span{display:block;color:#b8ccc2;font-size:12px;margin-top:6px}.profile-dialog time{display:block;font-size:11px;font-weight:400;color:#9fbbb0;margin-top:5px}.profile-dialog h3{margin-top:24px}.profile-backup{border-top:1px solid #3b554a;padding-top:16px;margin-top:22px}.profile-backup summary{cursor:pointer;font-weight:700}.profile-backup textarea{width:100%;min-height:190px;margin:14px 0;font:12px/1.5 monospace;resize:vertical}.profile-warning{color:#ffca80;font-size:13px;line-height:1.5}.profile-launch{width:100%;margin-top:10px}.profile-stats-link{margin-top:16px}.end-actions{flex-wrap:wrap;justify-content:center}.profile-save-status{flex-basis:100%;font:12px/1.5 system-ui;text-align:center;color:#c5e3d0;max-width:420px}.profile-backup .row{flex-wrap:wrap}@media(max-width:600px){.profile-totals{grid-template-columns:repeat(3,1fr)}.profile-totals b{font-size:24px}.profile-filters{flex-direction:column;gap:10px}.profile-dialog{padding:18px}.profile-save-status{max-width:270px}}.profile-dialog .dialog-head{position:sticky;top:-26px;z-index:2;background:#10242b;padding:12px 0}.profile-save-status{white-space:normal}@media(max-width:600px){.profile-dialog .dialog-head{top:-18px}}
