/* Scarlet Serve — game.css */
:root{
  color-scheme:dark;
  --bg:#140e0e; --panel:#1e1615; --panel2:#281d1b; --line:#3b2b28;
  --ink:#f2e8d5; --mute:#b3a291; --faint:#7d6d62;
  --scarlet:#e2233f; --scarlet-d:#9e1428; --led:#ffb23a;
  --good:#7fd69b; --bad:#ff7a7a;
  --display:'Big Shoulders Display','Oswald','Arial Narrow',Impact,sans-serif;
  --body:'IBM Plex Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{background:var(--bg);color:var(--ink)}
body{font:14px/1.45 var(--body);padding-inline:16px;padding-block:12px 24px}
button,select{font:inherit;color:inherit}
.wrap{max-width:1560px;margin:0 auto;display:flex;flex-direction:column;gap:12px}
header.top{display:flex;flex-wrap:wrap;align-items:flex-end;gap:6px 18px;border-bottom:2px solid var(--scarlet);padding-bottom:8px}
.brand{display:flex;align-items:baseline;gap:10px}
.brand h1{font:900 clamp(30px,4vw,44px)/.9 var(--display);letter-spacing:.02em;text-transform:uppercase;margin:0;text-wrap:balance}
.brand h1 em{font-style:normal;color:var(--scarlet)}
.ver{font:500 12px var(--mono);color:var(--led);border:1px solid var(--line);padding:2px 6px;border-radius:3px}
.tag{margin:0;color:var(--mute);font-size:13px;letter-spacing:.08em;text-transform:uppercase}
.hdr-right{margin-left:auto;display:flex;gap:8px;align-items:center}
.chip{font:500 13px var(--mono);background:var(--panel2);padding:4px 8px;border-radius:3px;font-variant-numeric:tabular-nums}
.btn{background:var(--panel2);border:1px solid var(--line);padding:7px 11px;border-radius:4px;cursor:pointer}
.btn:hover:not(:disabled){border-color:var(--scarlet)}
.btn:disabled{opacity:.4;cursor:not-allowed}
.btn.primary{background:var(--scarlet);border-color:var(--scarlet);color:#fff;font-weight:600}
.btn.primary:hover:not(:disabled){background:#f0344f}
:focus-visible{outline:2px solid var(--led);outline-offset:2px}

.app{display:grid;grid-template-columns:290px minmax(0,1fr) 310px;grid-template-areas:"left center right";gap:14px;align-items:start}
.left{grid-area:left}.center{grid-area:center}.right{grid-area:right}
.left,.right{display:flex;flex-direction:column;gap:12px;min-width:0}
@media (max-width:1180px){
  .app{grid-template-columns:minmax(0,1fr) 300px;grid-template-areas:"center right" "left right"}
}
@media (max-width:760px){
  .app{grid-template-columns:minmax(0,1fr);grid-template-areas:"center" "right" "left"}
}
.card{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:12px}
.card h2{font:800 15px var(--display);letter-spacing:.12em;text-transform:uppercase;color:var(--mute);margin:0 0 8px}

/* scoreboard */
.board{background:#0b0808;border:1px solid #2e2220;border-radius:6px;padding:12px;font-family:var(--mono)}
.sb-row{display:grid;grid-template-columns:10px 1fr 26px 52px 14px;align-items:center;gap:8px;padding:3px 0}
.sb-sw{width:10px;height:26px;border-radius:2px}
.sb-rank{font:700 12px var(--mono);color:var(--mute);margin-right:5px;vertical-align:4px}
.sb-name{font:800 22px var(--display);letter-spacing:.06em}
.sb-sets{font-weight:700;color:var(--mute);text-align:center;font-size:18px}
.sb-pts{font-weight:700;color:var(--led);font-size:34px;text-align:right;text-shadow:0 0 12px rgba(255,178,58,.45);font-variant-numeric:tabular-nums}
.sb-srv{color:var(--led);font-size:12px;text-align:center}
.sb-meta{margin-top:6px;border-top:1px dashed #2e2220;padding-top:6px;color:var(--mute);font-size:12px;display:flex;flex-wrap:wrap;gap:4px 12px;font-variant-numeric:tabular-nums}

.kv{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;font-size:13px}
.kv dt{color:var(--mute)}.kv dd{margin:0}
.rot{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;font-size:12px}
.rot div{background:var(--panel2);padding:5px 6px;border-radius:3px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rot small{display:block;color:var(--faint);font:500 10px var(--mono);letter-spacing:.06em}
.rot .net{grid-column:1/-1;text-align:center;background:none;color:var(--faint);font:500 10px var(--mono);letter-spacing:.3em;padding:0;border-bottom:1px solid var(--line)}
.tbl{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:12px;font-variant-numeric:tabular-nums}
th,td{padding:4px 5px;text-align:right;white-space:nowrap;border-bottom:1px solid var(--line)}
th{color:var(--mute);font-weight:500;font:500 11px var(--mono)}
th:first-child,td:first-child,th.l,td.l{text-align:left}
tr.me td{background:rgba(226,35,63,.12)}
tr.tot td{color:var(--mute);border-bottom:none}
.bar{height:7px;background:var(--panel2);border-radius:4px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--scarlet)}
.bar.f i{background:linear-gradient(90deg,var(--good),var(--led) 60%,var(--bad))}
.scout-row{display:grid;grid-template-columns:86px 1fr 34px 28px;gap:8px;align-items:center;font-size:12px;margin-bottom:4px}
.scout-row span:nth-child(3),.scout-row span:nth-child(4){font-family:var(--mono);text-align:right;color:var(--mute)}
.note{color:var(--mute);font-size:12px;margin:6px 0 0}

/* center */
.tabs{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:8px}
.tabs button{background:none;border:1px solid var(--line);color:var(--mute);padding:6px 12px;border-radius:4px;cursor:pointer;font:700 14px var(--display);letter-spacing:.1em;text-transform:uppercase}
.tabs button[aria-selected="true"]{background:var(--scarlet);border-color:var(--scarlet);color:#fff}
.courtwrap{position:relative;background:#0b0808;border:1px solid var(--line);border-radius:6px;overflow:hidden}
#court{display:block;width:100%;aspect-ratio:22.4/14.2;max-width:100%;touch-action:none;cursor:grab}
#court.drag{cursor:grabbing}
.zoom{position:absolute;right:8px;top:8px;display:flex;gap:4px}
.zoom button{background:rgba(20,14,14,.8);border:1px solid var(--line);border-radius:4px;min-width:30px;padding:3px 8px;cursor:pointer}
.hint{position:absolute;left:10px;bottom:6px;font:500 11px var(--mono);color:rgba(242,232,213,.75);background:rgba(11,8,8,.7);padding:2px 6px;border-radius:3px;pointer-events:none}
.log{list-style:none;margin:8px 0 0;padding:8px 10px;background:var(--panel);border:1px solid var(--line);border-radius:6px;height:190px;overflow-y:auto;font-size:13px}
.log li{padding:2px 0;border-bottom:1px solid rgba(59,43,40,.5)}
.log li.pn{color:#ffd0d6}.log li.pn b{color:var(--scarlet)}
.log li.po{color:var(--mute)}
.log li.sys{color:var(--led);font-family:var(--mono);font-size:12px}
.log .sc{font-family:var(--mono);color:var(--faint);margin-right:6px}
.pane{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:12px}
.pane h3{font:800 20px var(--display);letter-spacing:.06em;text-transform:uppercase;margin:0 0 8px}
.w{color:var(--good)}.l{color:var(--bad)}
.ss{color:var(--faint);font-family:var(--mono);font-size:11px}
.badge{font:600 10px var(--mono);border:1px solid var(--line);color:var(--mute);padding:1px 4px;border-radius:3px;margin-left:4px}

/* decision */
.decide h2{color:var(--led)}
/* the panel keeps its height between decisions so the Bench buttons below never jump under the pointer */
.decide{min-height:392px}
.decide .dtitle{font:800 22px/1.1 var(--display);letter-spacing:.03em;margin:0 0 4px;text-transform:uppercase}
.decide .dsub{color:var(--mute);font-size:13px;margin:0 0 10px}
.opts{display:flex;flex-direction:column;gap:6px}
.opt{display:grid;grid-template-columns:24px 1fr;grid-template-rows:auto auto;column-gap:8px;text-align:left;background:var(--panel2);border:1px solid var(--line);border-radius:5px;padding:7px 9px;cursor:pointer}
.opt:hover:not(:disabled){border-color:var(--scarlet);background:#331f1e}
.opt:disabled{opacity:.38;cursor:not-allowed}
.opt kbd{grid-row:1/3;align-self:center;font:700 13px var(--mono);background:#0b0808;border:1px solid var(--line);border-radius:3px;text-align:center;padding:2px 0;color:var(--led)}
.opt .ol{font-weight:600}
.opt .os{font-size:12px;color:var(--mute)}
.ctrl{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ctrl label{display:flex;align-items:center;gap:6px;font-size:13px}
.ctrl select{background:var(--panel2);border:1px solid var(--line);border-radius:4px;padding:5px}
.lu{display:grid;grid-template-columns:40px 1fr 54px;gap:6px;align-items:center;font-size:12px;margin-bottom:5px}
.lu b{font:500 11px var(--mono);color:var(--mute)}
.lu select{width:100%;background:var(--panel2);border:1px solid var(--line);border-radius:4px;padding:4px;min-width:0}
footer{color:var(--faint);font-size:12px;border-top:1px solid var(--line);padding-top:8px}
.ctrl input[type=range]{width:110px;accent-color:var(--scarlet)}
.btn[aria-pressed="true"]{background:var(--led);border-color:var(--led);color:#1a1000;font-weight:600}
.paused-banner{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(11,8,8,.55);font:900 44px var(--display);letter-spacing:.2em;color:var(--led);pointer-events:none}
@media (max-width:760px){.log{height:130px}}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.decide .ctrl{flex-wrap:wrap;min-width:0}
.decide select{max-width:100%;min-width:0;background:var(--panel2);border:1px solid var(--line);border-radius:4px;padding:5px;width:100%}
.board-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:6px}
.hl-cap{display:block;font:500 13px var(--mono);letter-spacing:0;text-transform:none;color:var(--ink);text-align:center;margin-top:6px;max-width:90%;text-shadow:0 1px 3px #000}
#replayBanner{flex-direction:column;justify-content:flex-end!important;align-items:center!important;padding:0 0 34px!important}


/* v1.7: live coaching clipboard, focus mode, fullscreen/high-contrast controls */
.clip-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-bottom:8px}
.clip-grid div{background:var(--panel2);border:1px solid var(--line);border-radius:4px;padding:7px 8px;min-width:0}
.clip-grid span{display:block;color:var(--mute);font-size:10px;text-transform:uppercase;letter-spacing:.08em}
.clip-grid b{display:block;font:800 22px var(--display);color:var(--led);font-variant-numeric:tabular-nums}
.clip-list{margin:0;padding-left:18px;color:var(--ink);font-size:12px}
.clip-list li{margin:3px 0}
body.focus-mode .app{grid-template-columns:minmax(0,1fr);grid-template-areas:"center"}
body.focus-mode .left,body.focus-mode .right{display:none}
body.focus-mode .wrap{max-width:1800px}
body.focus-mode #court{max-height:calc(100vh - 170px);aspect-ratio:auto;height:min(72vh,900px)}
body.high-contrast{--bg:#000;--panel:#0d0d0d;--panel2:#171717;--line:#777;--ink:#fff;--mute:#e7e7e7;--faint:#c8c8c8;--scarlet:#ff2448;--scarlet-d:#d9002c;--led:#ffd24d;--good:#88f0a6;--bad:#ff8f8f}
body.high-contrast .card,body.high-contrast .board,body.high-contrast .pane,body.high-contrast .log{border-width:2px}
@media (max-width:980px){.hdr-right{width:100%;margin-left:0}.hdr-right .btn{flex:1 1 auto}}
@media (prefers-contrast:more){
  body{--bg:#000;--panel:#0d0d0d;--panel2:#171717;--line:#777;--ink:#fff;--mute:#e7e7e7;--faint:#c8c8c8;--scarlet:#ff2448;--scarlet-d:#d9002c;--led:#ffd24d;--good:#88f0a6;--bad:#ff8f8f}
  .card,.board,.pane,.log{border-width:2px}
}


/* v1.8: Assistant Coach recommendations */
.opt.coach-rec{border-color:var(--led);box-shadow:0 0 0 1px color-mix(in srgb,var(--led) 45%,transparent);background:#302619}
.coach-badge{display:inline-block;margin-left:6px;padding:1px 5px;border-radius:9px;background:var(--led);color:#1a1000;font:700 9px var(--mono);letter-spacing:.04em;vertical-align:1px}
.coach-tip{margin-top:9px;padding:8px 9px;border-left:3px solid var(--led);background:color-mix(in srgb,var(--led) 8%,var(--panel2));border-radius:3px;display:grid;gap:2px;font-size:12px}
.coach-tip b{font:800 13px var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--led)}
.coach-tip span{color:var(--ink)}
.coach-tip.pregame{margin-bottom:8px}
body.high-contrast .opt.coach-rec{outline:2px solid var(--led);outline-offset:-2px}

/* v1.9: coaching review and one-key staff call */
.coach-call{justify-self:start;margin-top:3px;border:1px solid color-mix(in srgb,var(--led) 70%,var(--line));background:transparent;color:var(--led);border-radius:3px;padding:4px 7px;font:700 10px var(--mono);letter-spacing:.04em;cursor:pointer}
.coach-call:hover,.coach-call:focus-visible{background:color-mix(in srgb,var(--led) 14%,var(--panel2));outline:1px solid var(--led)}
.coach-meter{margin:9px 0 5px;padding:8px 9px;border:1px solid var(--line);border-radius:4px;background:var(--panel2);display:grid;grid-template-columns:1fr auto;align-items:end;gap:1px 8px}
.coach-meter span{font:800 11px var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}
.coach-meter b{grid-row:1/3;grid-column:2;font:900 25px var(--display);color:var(--led)}
.coach-meter small{color:var(--faint);font:500 10px var(--mono)}
.decision-log{list-style:none;padding:0;margin:7px 0 0;display:grid;gap:5px}
.decision-log li{padding:6px 7px;border-left:3px solid var(--line);background:var(--panel2);font-size:11px;line-height:1.35}
.decision-log li.agree{border-left-color:var(--good)}
.decision-log li.differ{border-left-color:var(--led)}
.decision-log.compact li{padding:4px 6px;font-size:10px}
.coach-review{margin:10px 0 12px;padding:10px;border:1px solid var(--line);border-radius:5px;background:color-mix(in srgb,var(--panel2) 88%,var(--led) 12%)}
.coach-review-head{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;margin-bottom:8px}
.coach-review-head>div{display:grid;min-width:110px}.coach-review-head span{font:800 11px var(--display);text-transform:uppercase;letter-spacing:.08em;color:var(--mute)}
.coach-review-head b{font:900 30px var(--display);color:var(--led)}
.coach-review-head p{margin:0;color:var(--faint);font-size:11px;line-height:1.35}
.coach-review h3{margin:10px 0 4px;font:800 12px var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}
body.high-contrast .coach-review,body.high-contrast .coach-meter{border-width:2px}


/* v2.0: Match Lab film-room analytics */
.lab-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.lab-head h3{margin-bottom:2px}.lab-head p{margin:0;color:var(--mute);font-size:12px}.lab-kpis{display:grid;grid-template-columns:repeat(6,minmax(105px,1fr));gap:7px;margin-bottom:14px}.lab-kpis>div{background:var(--panel2);border:1px solid var(--line);border-radius:5px;padding:9px}.lab-kpis span{display:block;color:var(--mute);font:700 10px var(--mono);text-transform:uppercase;letter-spacing:.06em}.lab-kpis b{display:block;color:var(--led);font:900 25px var(--display);font-variant-numeric:tabular-nums}.lab-kpis small{color:var(--faint);font:500 10px var(--mono)}.lab-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:14px}.lab-grid>section,.lab-notes{border-top:1px solid var(--line);padding-top:10px}.lab-dist-head,.lab-dist-row{display:grid;grid-template-columns:105px minmax(70px,1fr) 36px minmax(70px,1fr) 36px;gap:7px;align-items:center}.lab-dist-head{font:600 10px var(--mono);color:var(--mute);text-transform:uppercase;text-align:center;margin-bottom:5px}.lab-dist-row{font-size:11px;margin:5px 0}.lab-dist-row>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lab-dist-row>div{height:8px;border-radius:5px;background:#0b0808;overflow:hidden}.lab-dist-row i{display:block;height:100%}.lab-dist-row i.neb{background:var(--scarlet)}.lab-dist-row i.opp{background:var(--led)}.lab-dist-row b{font:600 10px var(--mono);text-align:right;color:var(--mute)}.lab-notes{margin:14px 0}.lab-notes ul{margin:5px 0 0;padding-left:20px}.lab-notes li{margin:5px 0}.lab-notes li::marker{color:var(--led)}body.high-contrast .lab-kpis>div{border-width:2px}@media(max-width:1180px){.lab-kpis{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.lab-head{flex-direction:column}.lab-kpis{grid-template-columns:repeat(2,1fr)}.lab-grid{grid-template-columns:1fr}.lab-dist-head,.lab-dist-row{grid-template-columns:90px minmax(50px,1fr) 34px minmax(50px,1fr) 34px}}

/* v2.1: opponent rotation scouting */
.opp-scout{margin:14px 0;border-top:1px solid var(--line);padding-top:10px}
.opp-scout-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:8px}
.opp-scout-head h3{margin-bottom:2px}.opp-scout-head p{margin:0;color:var(--mute);font-size:11px;max-width:680px}
.target-card{min-width:150px;border:1px solid color-mix(in srgb,var(--led) 55%,var(--line));background:color-mix(in srgb,var(--led) 8%,var(--panel2));border-radius:5px;padding:8px 10px;display:grid}
.target-card span{font:700 9px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}
.target-card b{font:900 25px var(--display);color:var(--led)}.target-card small{font:500 9px var(--mono);color:var(--faint)}
.serve-window{margin:8px 0;padding:7px 8px;border-left:3px solid var(--good);background:color-mix(in srgb,var(--good) 8%,var(--panel2));border-radius:3px;display:grid;gap:2px}
.serve-window b{font:800 10px var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--good)}.serve-window span{font-size:11px;color:var(--ink)}
body.high-contrast .target-card{border-width:2px}
@media(max-width:760px){.opp-scout-head{flex-direction:column}.target-card{width:100%}}

/* v2.2 rotation matchup matrix */
.matchup-matrix{margin:14px 0;border-top:1px solid var(--line);padding-top:10px}.matchup-matrix .tbl{overflow:auto}.matchup-matrix table{min-width:650px}.mx-cell{text-align:center;min-width:78px;position:relative}.mx-cell b{display:block;font:800 15px var(--mono);color:var(--text)}.mx-cell small{display:block;font:500 9px var(--mono);color:var(--faint);margin-top:2px}.mx-cell span{color:var(--faint)}.mx-cell.current{outline:2px solid var(--led);outline-offset:-2px}.mx-cell.best{background:color-mix(in srgb,var(--led) 10%,var(--panel2))}.mx-cell.watch{background:color-mix(in srgb,var(--scarlet) 10%,var(--panel2))}.mx-cell.best b{color:var(--led)}.mx-cell.watch b{color:#ff9d91}body.high-contrast .mx-cell.current{outline-width:3px}

/* v2.3: pressure index and timeout intelligence */
.pressure-card{margin:9px 0;padding:8px 9px;border:1px solid var(--line);border-radius:5px;background:var(--panel2)}
.pressure-head{display:grid;grid-template-columns:1fr auto;gap:0 8px;align-items:end}.pressure-head span{font:800 10px var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}.pressure-head b{grid-row:1/3;grid-column:2;font:900 25px var(--display);color:var(--led)}.pressure-head small{font:500 10px var(--mono);color:var(--faint)}
.pressure-card p{margin:5px 0 0;color:var(--mute);font-size:10px;line-height:1.35}.pressure-track{height:6px;border-radius:4px;background:#0b0808;overflow:hidden;margin-top:5px}.pressure-track i{display:block;height:100%;background:var(--good)}.pressure-card.building .pressure-track i,.pressure-badge.building+* i{background:var(--led)}.pressure-card.high .pressure-track i,.pressure-card.critical .pressure-track i{background:var(--scarlet)}
.timeout-advice{margin:8px 0;padding:8px 9px;border-left:3px solid var(--line);background:color-mix(in srgb,var(--panel2) 90%,var(--line) 10%);border-radius:3px;display:flex;align-items:center;justify-content:space-between;gap:8px}.timeout-advice>div{display:grid;gap:2px}.timeout-advice b{font:800 11px var(--display);letter-spacing:.07em;text-transform:uppercase}.timeout-advice span{font-size:10px;color:var(--mute);line-height:1.35}.timeout-advice.call{border-left-color:var(--scarlet);background:color-mix(in srgb,var(--scarlet) 9%,var(--panel2))}.timeout-advice.consider{border-left-color:var(--led);background:color-mix(in srgb,var(--led) 8%,var(--panel2))}.timeout-advice.queued{border-left-color:var(--good)}.timeout-call{white-space:nowrap;padding:5px 7px;font-size:10px}
.timeout-intel{margin:14px 0;border-top:1px solid var(--line);padding-top:10px}.timeout-intel-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.timeout-intel-head h3{margin-bottom:2px}.timeout-intel-head p{margin:0;color:var(--mute);font-size:11px;max-width:660px}.pressure-badge{min-width:105px;border:1px solid var(--line);border-radius:5px;padding:7px 9px;display:grid;grid-template-columns:1fr auto;align-items:end;gap:0 8px;background:var(--panel2)}.pressure-badge span{font:700 9px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--mute)}.pressure-badge b{grid-row:1/3;grid-column:2;font:900 24px var(--display);color:var(--led)}.pressure-badge small{font:500 9px var(--mono);color:var(--faint)}.pressure-track.wide{height:8px;margin:9px 0}.pressure-track.wide i{background:linear-gradient(90deg,var(--good),var(--led) 52%,var(--scarlet))}
body.high-contrast .pressure-card,body.high-contrast .pressure-badge{border-width:2px}@media(max-width:760px){.timeout-intel-head{flex-direction:column}.pressure-badge{width:100%}.timeout-advice{align-items:flex-start;flex-direction:column}.timeout-call{width:100%}}


/* v2.4: bench and fatigue planner */
.bench-planner{margin:14px 0;border-top:1px solid var(--line);padding-top:10px}.bench-planner-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:8px}.bench-planner-head h3{margin-bottom:2px}.bench-planner-head p{margin:0;color:var(--mute);font-size:11px;max-width:680px}.bench-planner .bench-sub{padding:3px 6px;font-size:9px;margin-left:5px}.bench-alert{margin:8px 0;padding:8px 9px;border-left:3px solid var(--led);background:color-mix(in srgb,var(--led) 8%,var(--panel2));border-radius:3px;display:flex;justify-content:space-between;gap:8px;align-items:center}.bench-alert>div{display:grid;gap:2px}.bench-alert b{font:800 10px var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--led)}.bench-alert span{font-size:10px;line-height:1.35;color:var(--ink)}.bench-alert.urgent{border-left-color:var(--scarlet);background:color-mix(in srgb,var(--scarlet) 9%,var(--panel2))}.bench-alert.urgent b{color:#ff9d91}body.high-contrast .bench-alert{border-left-width:4px}@media(max-width:760px){.bench-planner-head,.bench-alert{flex-direction:column;align-items:flex-start}.bench-planner-head .target-card,.bench-alert .bench-sub{width:100%}}

/* v2.5: set-by-set trends and between-set adjustment advisor */
.set-trends{margin:14px 0;border-top:1px solid var(--line);padding-top:10px}.set-trends-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:8px}.set-trends-head h3{margin-bottom:2px}.set-trends-head p{margin:0;color:var(--mute);font-size:11px;max-width:620px}.adjust-card{min-width:250px;max-width:380px;border:1px solid var(--line);border-left:3px solid var(--line);border-radius:5px;padding:7px 9px;background:var(--panel2);display:grid;gap:2px}.adjust-card span{font:700 9px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}.adjust-card b{font:800 12px var(--display);letter-spacing:.03em}.adjust-card small{font-size:10px;line-height:1.35;color:var(--mute)}.adjust-card.alert{border-left-color:var(--scarlet);background:color-mix(in srgb,var(--scarlet) 8%,var(--panel2))}.adjust-card.push{border-left-color:var(--led);background:color-mix(in srgb,var(--led) 7%,var(--panel2))}.adjust-card.good{border-left-color:var(--good);background:color-mix(in srgb,var(--good) 7%,var(--panel2))}.set-adjust{margin:8px 0 10px;padding:8px 9px;border-left:3px solid var(--line);background:var(--panel2);border-radius:3px;display:grid;gap:2px}.set-adjust b{font:800 11px var(--display);letter-spacing:.04em;text-transform:uppercase}.set-adjust span{font-size:10px;line-height:1.4;color:var(--mute)}.set-adjust.alert{border-left-color:var(--scarlet)}.set-adjust.push{border-left-color:var(--led)}.set-adjust.good{border-left-color:var(--good)}.set-adjust.compact{margin-top:6px}body.high-contrast .adjust-card,body.high-contrast .set-adjust{border-left-width:4px}@media(max-width:760px){.set-trends-head{flex-direction:column}.adjust-card{min-width:0;max-width:none;width:100%}}

/* v2.6: momentum and turning-point analysis */
.momentum-lab{margin:14px 0;border-top:1px solid var(--line);padding-top:10px}.momentum-lab .tbl{overflow:auto}.momentum-lab table{min-width:820px}body.high-contrast .momentum-lab{border-top-width:2px}

/* v2.9: season dashboard and recent-form strip */
.season-dash{margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--line)}.season-dash-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:10px}.season-dash-head h3{margin-bottom:2px}.season-dash-head p{margin:0;color:var(--mute);font-size:11px}.season-kpis{margin-bottom:8px}.season-splits{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:7px;margin-bottom:9px}.season-splits>div{background:var(--panel2);border:1px solid var(--line);border-radius:5px;padding:8px 9px}.season-splits span{display:block;color:var(--mute);font:700 9px var(--mono);letter-spacing:.07em;text-transform:uppercase}.season-splits b{display:block;color:var(--ink);font:900 20px var(--display)}.season-splits small{color:var(--faint);font:500 9px var(--mono)}.season-form{max-width:none;margin:8px 0 11px}.season-trend-title{margin:10px 0 6px}.season-trail{display:grid;grid-template-columns:repeat(12,minmax(62px,1fr));gap:5px;overflow-x:auto;padding-bottom:4px}.season-result{min-width:62px;border:1px solid var(--line);border-left:3px solid var(--line);border-radius:4px;background:var(--panel2);padding:6px 7px;display:grid;gap:1px}.season-result.win{border-left-color:var(--good)}.season-result.loss{border-left-color:var(--scarlet)}.season-result span{font:800 10px var(--mono);color:var(--mute)}.season-result b{font:700 10px var(--display);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.season-result small{font:500 8px var(--mono);color:var(--faint);white-space:nowrap}body.high-contrast .season-splits>div,body.high-contrast .season-result{border-width:2px}@media(max-width:760px){.season-dash-head{flex-direction:column}.season-dash-head .btn{width:100%}.season-splits{grid-template-columns:1fr}.season-trail{grid-template-columns:repeat(12,72px)}}

/* v3.0 tactical packages */
.tactical-packages{margin:10px 0;padding:10px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.025)}
.tactical-head{display:flex;gap:8px;align-items:baseline;justify-content:space-between;flex-wrap:wrap;margin-bottom:8px}
.tactical-head span{font-size:.78rem;color:var(--muted)}
.tactical-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.tactical-buttons .btn{width:100%;white-space:normal}
@media(max-width:680px){.tactical-buttons{grid-template-columns:1fr}}

/* v3.1 match objectives */
.match-objectives{margin:14px 0;border-top:1px solid var(--line);padding-top:10px}.match-objectives.compact{border:1px solid var(--line);border-radius:8px;padding:10px;margin:10px 0;background:rgba(255,255,255,.025)}.objective-head{display:flex;flex-direction:column;gap:2px;margin-bottom:7px}.objective-head span{font-size:.78rem;color:var(--muted)}.objective-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.objective-row{border:1px solid var(--line);border-radius:7px;padding:8px;display:grid;grid-template-columns:1fr auto;gap:2px 8px;align-items:center}.objective-row span{font-size:.78rem;color:var(--muted)}.objective-row b{font-family:IBM Plex Mono,monospace}.objective-row small{grid-column:1/-1;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.objective-row.met{border-color:rgba(81,190,126,.55)}.objective-row.miss{border-color:rgba(218,95,95,.5)}.match-objectives.compact .objective-row{margin-top:5px}.match-objectives.compact .objective-grid{grid-template-columns:1fr}@media(max-width:760px){.objective-grid{grid-template-columns:1fr}}

/* v3.2: live serve targeting and target-result scouting */
.serve-target-live{margin:9px 0 10px;padding:9px;border:1px solid var(--line);border-radius:7px;background:rgba(255,255,255,.025)}.serve-target-live .ctrl{display:grid;grid-template-columns:auto minmax(180px,1fr);gap:8px;align-items:center}.serve-target-live select{min-width:0}.serve-target-live .note{margin:6px 0 0}.serve-target-lab{margin:14px 0;border-top:1px solid var(--line);padding-top:10px}.serve-target-lab .tbl{overflow:auto}.serve-target-lab table{min-width:620px}body.high-contrast .serve-target-live{border-width:2px}@media(max-width:760px){.serve-target-live .ctrl{grid-template-columns:1fr}}

/* v3.4 player impact board */
.impact-tag{display:inline-block;padding:2px 7px;border-radius:999px;border:1px solid rgba(255,255,255,.16);font-size:.78rem;white-space:nowrap}.impact-tag.good{border-color:rgba(105,214,143,.45)}.impact-tag.alert{border-color:rgba(255,126,126,.5)}.impact-tag.push{border-color:rgba(255,207,92,.45)}.impact-tag.neutral{opacity:.8}

/* v3.5 key rally timeline */
.key-rallies{margin-top:14px}.key-rally-list{display:grid;gap:7px;margin-top:10px}.key-rally{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.025)}.key-rally>div{display:grid;gap:2px}.key-rally span{font-size:12px;color:var(--muted)}.key-rally.good{border-left:3px solid #74b985}.key-rally.alert{border-left:3px solid #cf6c6c}.key-rally.push{border-left:3px solid #d5af55}.key-rally .btn{white-space:nowrap;padding:5px 9px}
