/* Studio 4.1. Canary presentation only; original feature IDs and behavior are retained. */
body.focus-ui {
 --bg:#f5f5f7; --surface:#ffffff; --surface-raised:#f2f2f5; --text:#1d1d1f; --muted:#6e6e73;
 --border:#e4e4e8; --border-strong:#c8c8ce; --brand:#0066cc; --brand-soft:#eaf3ff;
 --accent:#0066cc; --accent-soft:#eaf3ff; --positive:#247a47; --positive-soft:#edf7ef;
 --alert:#b64427; --alert-soft:#fff0ea; --gold:#886419; --gold-soft:#fbf5e8;
 --display:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
 --body:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; --mono:var(--body); --radius:12px;
 background:var(--bg); color:var(--text); font-family:var(--body); background-image:none;
}
.focus-ui * { box-sizing:border-box; }
.focus-ui [hidden],.focus-ui .hidden { display:none!important; }
.focus-ui button,.focus-ui input,.focus-ui select { font-family:var(--body); }
.focus-ui button:focus-visible,.focus-ui summary:focus-visible { outline:2px solid #0066cc;outline-offset:4px; }
.focus-ui button { transition:background .15s,color .15s; }
.canary-banner { font:10px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; color:#77777d; display:flex;gap:10px;justify-content:flex-end;padding:8px 30px;border-bottom:1px solid #e5e5e9; }
.canary-banner strong { color:#0066cc; letter-spacing:1.2px; }
.focus-ui .frame { max-width:1600px; margin:0 auto; padding:0; display:grid;grid-template-columns:210px minmax(0,1fr);min-height:calc(100vh - 32px); }
.studio-rail { grid-column:1; grid-row:1 / span 3; padding:34px 22px 24px; border-right:1px solid var(--border); display:flex; flex-direction:column; align-items:stretch; background:#eeeef2; }
.studio-identity { display:flex;gap:12px;align-items:center;margin-bottom:65px; }
.studio-symbol { display:grid;place-items:center;width:34px;height:38px;border-radius:7px;background:#0066cc;color:#ffffff;font-size:26px;font-weight:900;font-style:italic;transform:skew(-6deg); }
.studio-identity strong { font-size:23px;letter-spacing:2px;line-height:1; }
.studio-identity strong span { display:block;font:10px/1.5 var(--body);letter-spacing:0;color:var(--muted);margin-top:6px; }
.studio-rail-foot { margin-top:auto;padding-top:80px;color:var(--muted);font-size:11px;line-height:1.6; }
.studio-rail-foot small { display:block;margin-top:8px;color:#8a8a90;font-size:10px; }
.studio-status-dot { display:inline-block;background:#0066cc;width:5px;height:5px;border-radius:50%;margin-right:6px; }
.focus-nav { display:flex;flex-direction:column;gap:7px; }
.focus-nav button { width:100%;display:flex;align-items:center;gap:16px;text-align:left;border:0;background:transparent;color:var(--muted);padding:14px 12px;border-radius:7px;cursor:pointer;font-size:14px; }
.focus-nav button:hover { background:#e5e5ea; }
.focus-nav button[aria-selected=true] { background:#e2edfc;color:#0066cc;font-weight:600; }

.focus-ui .hero { grid-column:2;background:transparent;border:0;border-bottom:1px solid var(--border);padding:23px 40px;margin:0;border-radius:0;box-shadow:none;overflow:visible; }
.focus-ui .hero::before,.focus-ui .hero::after,.focus-ui .hero-mid,.studio-old-brand { display:none; }
.focus-ui .hero-top { display:flex;align-items:center;justify-content:space-between;gap:20px; }
.studio-top-label { font:600 10px var(--body);letter-spacing:2px;color:#86868b; }
.focus-ui .hero-icons { display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:nowrap;margin:0;position:static; }
.focus-ui #league-switcher { display:flex;gap:4px;margin:0;width:auto; }
.focus-ui .league-pill { margin:0;min-height:34px;border:1px solid transparent;background:transparent;box-shadow:none;color:var(--muted);border-radius:7px;padding:7px 12px;font:500 12px/1.4 var(--body);text-transform:none;letter-spacing:0;width:auto; }
.focus-ui .league-pill.active { border-color:#d2d2d7;color:#1d1d1f;background:#ffffff; }
.focus-ui .hero-icons .icon-btn { position:relative;inset:auto;background:transparent;border:1px solid var(--border);box-shadow:none;color:var(--muted);width:34px;height:34px;min-width:34px;border-radius:8px;margin:0; }
.focus-utilities { position:relative; }
.focus-utilities>summary { list-style:none;width:34px;height:34px;display:grid;place-items:center;font-size:20px;border:1px solid var(--border);border-radius:8px;cursor:pointer; }
.focus-utilities>summary::-webkit-details-marker { display:none; }
.focus-utility-items { position:absolute;z-index:30;right:0;top:43px;display:flex;gap:8px;padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 40px #0002; }
.focus-page { grid-column:2;min-width:0;padding:38px 40px 48px; }
.focus-intro { margin:0 0 32px; }
.focus-eyebrow { color:#77777d;font:600 10px/1.5 var(--body);letter-spacing:2px;text-transform:uppercase; }
.focus-ui #week-num { display:inline;font:inherit;color:inherit;letter-spacing:inherit; }
.focus-intro h1 { font:650 clamp(30px,3.7vw,48px)/1.12 var(--body);letter-spacing:-1.8px;margin:10px 0 0; }
.focus-intro p { font:400 13px/1.5 var(--body);margin:12px 0 0;color:var(--muted); }
.studio-matchday { display:grid;grid-template-columns:minmax(0,1.65fr) minmax(240px,1fr);gap:24px;align-items:start; }
.studio-match-main { min-width:0; }
.focus-ui .card { border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:24px;margin:0 0 22px;box-shadow:none;color:var(--text); }
.focus-ui .card-label { font:600 13px/1.5 var(--body);text-transform:none;letter-spacing:0;padding:0 0 16px;margin:0 0 16px;border-bottom:1px solid var(--border);color:var(--text); }
.focus-ui .card-label .tag { display:none; }
.focus-ui #panel-live-matchup { position:relative;background:#ffffff;color:#1d1d1f;padding:26px 28px 22px;border:0;border-radius:14px;margin:0;box-shadow:0 8px 32px #1d1d1f08,0 1px 3px #1d1d1f05;overflow:hidden; }
.focus-ui #panel-live-matchup>.card-label { font:650 10px/1.5 var(--body);text-transform:uppercase;letter-spacing:2px;color:#6e6e73;border:0;margin:0;padding:0; }
.focus-ui .live-dot { background:#248a3d;box-shadow:none;animation:none;margin-left:auto;width:6px;height:6px; }
.focus-ui .live-dot-idle { background:#86868b; }
.focus-ui .live-score { display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0;padding:36px 0 28px;position:relative;z-index:1; }
.focus-ui .live-score-side { display:flex;flex-direction:column;align-items:flex-start;min-width:0;flex:1; }
.focus-ui .live-score-side:last-child { align-items:flex-end;text-align:right; }
.focus-ui .live-score-team { order:-1;font:550 12px/1.5 var(--body);color:#6e6e73;text-transform:none;margin:0 0 8px;max-width:180px; }
.focus-ui .live-score-num { font:650 clamp(40px,4.9vw,70px)/1 var(--body);color:#1d1d1f;letter-spacing:-3.5px;font-variant-numeric:tabular-nums; }
.focus-ui .live-score-sep { background:transparent;font:500 10px var(--body);color:#8e8e93;padding:0;margin:0; }
.focus-ui .live-score-pending-team,.focus-ui .live-score-pending-note { color:#6e6e73; }
.focus-ui .odds-strip { display:flex;align-items:center;gap:5px;position:relative;padding:20px 0 0;margin:0;background:transparent;border:0;box-shadow:none; }
.focus-ui .odds-number { color:#1d1d1f;font:700 12px/1.5 var(--body);letter-spacing:0;min-width:0; }
.focus-ui .odds-mid { display:flex;align-items:center;justify-content:space-between;gap:10px;flex:1; }
.focus-ui .odds-label { color:#6e6e73;font:400 11px/1.5 var(--body);text-transform:none;letter-spacing:0;margin:0; }
.focus-ui .odds-points { color:#6e6e73;font:400 10px/1.5 var(--body);letter-spacing:0;margin:0;text-align:right; }
.focus-ui .odds-bar { position:absolute;top:0;left:0;right:0;height:4px;border-radius:3px;background:#e9e9ed;margin:0;border:0;overflow:hidden; }
.focus-ui .odds-bar-fill { background:#0071e3; }
.focus-disclosure { border:0;margin:14px 0 0;padding:0;background:transparent; }
.focus-disclosure summary { font:500 12px/1.5 var(--body);cursor:pointer;min-height:32px;padding:6px 0;color:var(--brand); }
.focus-disclosure p { font:400 12px/1.7 var(--body);color:var(--muted); }
#panel-live-matchup>.focus-disclosure summary { color:#6e6e73;font-size:10px; }
.focus-ui #panel-live-matchup .gameday-panel { background:#f5f5f7;border:0;color:#1d1d1f; }
.focus-ui #panel-live-matchup .gameday-stat-value,.focus-ui #panel-live-matchup .gameday-label,.focus-ui #panel-live-matchup .gameday-stat-label { color:#424245; }
.focus-ui #panel-live-matchup .gameday-callout { background:#ffffff;color:#424245; }
.focus-attention { display:flex;align-items:center;gap:14px;padding:16px 0;margin:4px 0 0; }
.focus-attention .notice-banner { border:0;background:transparent;padding:0;margin:0;color:var(--alert);font:500 12px/1.5 var(--body);flex:1; }
.focus-attention .notice-banner-icon { font-size:15px; }
.focus-review { background:transparent;border:1px solid var(--border-strong);color:var(--text);border-radius:7px;padding:8px 10px;min-height:34px;font:500 11px var(--body);cursor:pointer;white-space:nowrap; }
.focus-radar { padding:22px;background:var(--surface);border:1px solid var(--border);border-radius:12px; }
.focus-ui #panel-action-feed { margin:0;padding:0;border:0;background:transparent; }
.focus-ui #panel-action-feed>.card-label { border:0;font:600 19px/1.3 var(--body);letter-spacing:-.4px;margin:0;padding:0 0 6px; }
.focus-ui .af-row { padding:17px 0;gap:10px; }
.focus-ui .af-icon { border-radius:7px;width:25px;height:25px;min-width:25px;font-size:12px; }
.focus-ui .af-title { font:550 13px/1.5 var(--body); }
.focus-ui .af-meta { font:400 10px/1.5 var(--body);letter-spacing:0;text-transform:none;margin-top:4px; }
.focus-ui .af-why-btn { color:var(--brand);font:500 11px/1.5 var(--body);letter-spacing:0;text-transform:none;text-decoration:none;min-height:30px;margin-top:4px; }
.focus-ui .af-detail { font:400 12px/1.7 var(--body); }
.focus-feed:not(.expanded) .af-row:nth-child(n+3) { display:none; }
.focus-more { border:0;background:transparent;padding:10px 0;font:500 11px var(--body);color:var(--brand);cursor:pointer; }
.focus-radar>.focus-disclosure { padding-top:10px;border-top:1px solid var(--border); }
.focus-radar>.focus-disclosure summary { font-size:10px;color:var(--muted); }
.studio-report { margin:32px 0 0;padding:24px 28px;border:1px solid var(--border);border-radius:12px;background:linear-gradient(120deg,#ffffff,#fafafb); }
.studio-report h2 { font:550 22px/1.3 var(--body);letter-spacing:-.5px;margin:9px 0 10px; }
.focus-brief-preview { color:var(--muted);font:400 13px/1.8 var(--body);max-width:760px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0; }
.focus-read:has(details[open]) .focus-brief-preview { display:none; }
.focus-ui .matchup-summary { margin:12px 0 0;color:var(--muted);font:400 13px/1.8 var(--body); }
.focus-title { font:600 20px/1.4 var(--body);margin:0 0 6px;letter-spacing:-.4px; }
.focus-note { color:var(--muted);font:400 12px/1.6 var(--body);margin:0 0 22px; }
.studio-workspace { background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-bottom:14px;overflow:hidden; }
.studio-workspace>summary { display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px 24px;cursor:pointer;list-style:none; }
.studio-workspace>summary::-webkit-details-marker { display:none; }
.studio-workspace>summary strong { display:block;font:550 18px/1.4 var(--body);letter-spacing:-.3px; }
.studio-workspace>summary small { display:block;font:400 12px/1.6 var(--body);color:var(--muted);margin-top:4px; }
.workspace-arrow { color:var(--brand);border:1px solid var(--border);width:34px;height:34px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;transition:transform .15s; }
.studio-workspace[open] .workspace-arrow { transform:rotate(90deg); }
.focus-ui .studio-workspace>.card { border:0;border-top:1px solid var(--border);border-radius:0;margin:0;padding:22px 24px;background:transparent;overflow-x:auto; }
.studio-workspace>.card>.card-label { display:none; }
.focus-ui .ll-grid { grid-template-columns:55px minmax(0,1fr) minmax(0,1fr);gap:14px 20px; }
.focus-ui .ll-player { font:400 14px/1.6 var(--body); }.focus-ui .ll-head,.focus-ui .ll-slot{font-size:10px;letter-spacing:1px;}.focus-ui .ll-pts{font-size:13px;}
.focus-ui .ssd-card,.focus-ui .ws-row { background:transparent;border-radius:8px; }.focus-ui .ssd-player-stats,.focus-ui .ws-components{font-size:12px;}
.focus-ui .tm-roster-list{max-height:300px;}
.focus-ui .modal-card { background:var(--surface);color:var(--text);border:1px solid var(--border-strong);box-shadow:0 24px 100px #0003;border-radius:16px; }
.focus-ui .player-modal-name{font-size:25px;text-transform:none;letter-spacing:-.6px;}.focus-ui .player-modal-meta{font-size:11px;letter-spacing:0;}
.focus-ui .app-footer { grid-column:2;margin:0;padding:20px 40px;border-top:1px solid var(--border);font:400 10px/1.7 var(--body);text-align:left;color:#86868b; }
.focus-ui .footer-version{color:var(--brand);}.focus-ui .whatsnew-v{font-size:18px;}
@media(min-width:1450px){.focus-page{padding:45px 60px;}.focus-ui .hero{padding-left:60px;padding-right:60px;}}
@media(max-width:1100px){.focus-ui .frame{grid-template-columns:175px minmax(0,1fr);}.studio-rail{padding-left:16px;padding-right:16px;}.studio-identity{gap:8px;}.studio-identity strong{font-size:20px;}.focus-page{padding:32px 26px;}.focus-ui .hero{padding:20px 26px;}.studio-matchday{grid-template-columns:minmax(0,1.35fr) minmax(220px,1fr);gap:18px;}.focus-ui #panel-live-matchup{padding:23px 20px;}.focus-ui .odds-mid{flex-wrap:wrap;gap:2px;}.focus-ui .odds-points{text-align:left;width:100%;}.focus-ui .odds-strip{align-items:flex-start;}}
@media(max-width:850px){.studio-matchday{grid-template-columns:1fr;}.focus-radar{padding:20px;}.focus-ui #action-feed-body{display:grid;grid-template-columns:1fr 1fr;gap:18px;}.focus-ui .af-row{border:0;}.focus-intro h1{font-size:38px;}.studio-top-label{display:none;}.focus-ui .hero-top{justify-content:flex-end;}}
@media(max-width:600px){
 .canary-banner{justify-content:center;padding:7px 10px;font-size:9px;}.focus-ui .frame{display:flex;flex-direction:column;min-height:100vh;}
 .studio-rail{padding:18px 18px 0;border:0;background:transparent;display:block;}.studio-identity{margin:0 0 20px;}.studio-symbol{width:27px;height:30px;font-size:21px;}.studio-identity strong{font-size:20px;}.studio-identity strong span{display:none;}.studio-rail-foot{display:none;}
 .focus-nav{position:fixed;bottom:0;left:0;right:0;z-index:40;flex-direction:row;justify-content:space-around;gap:0;background:#f9f9fbeb;border-top:1px solid var(--border);padding:7px 12px calc(7px + env(safe-area-inset-bottom));backdrop-filter:blur(16px);}.focus-nav button{flex-direction:column;gap:3px;text-align:center;justify-content:center;width:25%;font-size:11px;padding:8px 4px;}
 .focus-ui .hero{padding:0 18px 18px;border-bottom:1px solid var(--border);position:relative;}.focus-ui .hero-icons{width:100%;justify-content:flex-start;gap:8px;}.focus-ui #league-switcher{width:100%;gap:8px;}.focus-ui .league-pill{flex:1;padding:8px 6px;min-height:36px;font-size:11px;border-color:var(--border);}.focus-ui .hero-icons>#alerts-btn{position:absolute;right:61px;top:-49px;left:auto;}.focus-utilities{position:absolute;top:-49px;right:18px;}.focus-utility-items{right:0;}
 .focus-page{padding:28px 18px 32px;width:100%;}.focus-intro{margin-bottom:24px;}.focus-intro h1{font-size:36px;letter-spacing:-1.3px;}.focus-intro p{font-size:12px;}.focus-eyebrow{font-size:9px;}
 .studio-matchday{gap:20px;}.focus-ui #panel-live-matchup{padding:22px 20px;}.focus-ui .live-score{padding:28px 0 25px;gap:10px;}.focus-ui .live-score-num{font-size:46px;letter-spacing:-2.7px;}.focus-ui .live-score-team{font-size:11px;max-width:135px;overflow-wrap:anywhere;}.focus-ui .odds-points{font-size:9px;}.focus-ui .odds-number{font-size:11px;}
 .focus-attention{flex-wrap:wrap;padding-bottom:0;}.focus-attention .notice-banner{flex-basis:100%;font-size:11px;}.focus-review{margin-left:25px;}.focus-ui #action-feed-body{display:block;}.focus-ui .af-row{border-bottom:1px solid var(--border);}.focus-ui .af-row:last-child{border-bottom:0;}
 .studio-report{padding:22px;margin-top:20px;}.studio-report h2{font-size:21px;}.focus-ui .app-footer{padding:18px 18px 100px;}.focus-ui .card{padding:18px;}.focus-ui .ll-grid{grid-template-columns:38px minmax(0,1fr) minmax(0,1fr);gap:12px 8px;}.focus-ui .ll-player{font-size:11px;}.focus-ui .ll-pts{font-size:11px;}.focus-ui .ll-slot,.focus-ui .ll-head{font-size:9px;}
 .studio-workspace>summary{padding:20px;}.studio-workspace>summary strong{font-size:17px;}.studio-workspace>summary small{font-size:11px;}.focus-ui .studio-workspace>.card{padding:18px;}.focus-ui .tm-sides{grid-template-columns:1fr;}.focus-title{font-size:18px;}
}
@media(prefers-reduced-motion:reduce){.focus-ui *{animation:none!important;transition:none!important;}}
/* Align score baselines even when a team name wraps. */
.focus-ui .live-score { align-items:flex-end; }
.focus-ui .live-score-sep { align-self:center; }

/* Neutral materials and typographic hierarchy. Blue is reserved for interaction. */
.focus-ui { -webkit-font-smoothing:antialiased; }
.canary-banner { background:#f0f0f3; color:#6e6e73; }
.canary-banner strong { color:#6e6e73; font-weight:500; letter-spacing:.7px; }
.studio-rail { background:linear-gradient(160deg,#f0f0f4,#eaeaf0); }
.studio-symbol { background:#252527;color:#fff;transform:none;font-style:normal;border-radius:9px;font-weight:650;box-shadow:0 2px 4px #0001; }
.studio-identity strong { font-size:20px;letter-spacing:.5px;font-weight:600; }
.studio-identity strong span { font-size:10px; }

.focus-nav button { border-radius:9px; font-size:13px; padding:12px 14px; }
.focus-nav button[aria-selected=true] { background:#dde9f9; color:#0059b3; }
.focus-ui .hero { background:#fafafbbd; }
.focus-ui #league-switcher { background:#e9e9ed;border-radius:9px;padding:3px;gap:2px; }
.focus-ui .league-pill { min-height:30px;padding:6px 11px; }
.focus-ui .league-pill.active { background:#fff;border-color:transparent;box-shadow:0 1px 4px #00000012; }
.focus-ui .hero-icons .icon-btn,.focus-utilities>summary { border-color:transparent;background:transparent;border-radius:50%; }
.focus-intro h1 { font-weight:600;letter-spacing:-1.7px; }
.focus-eyebrow { text-transform:none;letter-spacing:.2px;font-size:12px;font-weight:500; }
.focus-ui #panel-live-matchup { background:linear-gradient(145deg,#fff,#fcfcfd);border:1px solid #e5e5e980;border-radius:20px; }
.focus-ui #panel-live-matchup::after { display:none; }
.focus-ui #panel-live-matchup>.card-label { text-transform:none;letter-spacing:.2px;font-size:12px;font-weight:500; }
.focus-ui .live-score-num { font-weight:500;letter-spacing:-3px; }
.focus-ui .live-score-team { font-weight:500; }
.focus-radar,.studio-report,.studio-workspace,.focus-ui .card { border-color:#e5e5e9;border-radius:18px;box-shadow:0 2px 8px #00000002; }
.focus-ui #panel-action-feed { box-shadow:none; }
.focus-ui #panel-action-feed>.card-label { font-weight:600; }
.focus-ui .af-icon { background:#f0f0f4;color:#63636b; }
.focus-ui .af-icon.type-alert { background:var(--alert-soft);color:var(--alert); }
.focus-ui .af-title { font-weight:500; }
.focus-more { text-align:left; }
.studio-report { background:#fff; }
.workspace-arrow { border:0;background:#f2f2f7;color:#77777d;font-size:18px; }
.studio-workspace>summary strong { font-weight:500; }
.focus-ui .modal-card { border-radius:20px; }
@media(max-width:600px){
 .studio-rail { background:transparent; }
 .focus-ui .hero { background:transparent; }
 .focus-nav { background:#f9f9fbeb;border-color:#dcdce2;box-shadow:0 -3px 16px #00000003; }
 .focus-nav button { font-size:11px;min-height:42px;padding:10px 4px; }
 .focus-ui .league-pill { border-color:transparent; }
 .focus-intro h1 { letter-spacing:-1.1px; }
 .focus-eyebrow { font-size:11px; }
}

/* Finishing pass: readable controls, consistent tools, and a labeled utility menu. */
.focus-ui .btn-primary { border-radius:10px;text-transform:none;letter-spacing:0;font:600 14px/1.5 var(--body); }
.focus-ui .text-input,.focus-ui select { border-radius:9px; }
.focus-ui .studio-workspace>.card { border-radius:0;box-shadow:none; }
.focus-utility-items { flex-direction:column;gap:2px;min-width:190px;padding:6px;border-radius:13px; }
.focus-ui .hero-icons .focus-utility-items .icon-btn { position:static;width:100%;height:40px;display:flex;justify-content:flex-start;gap:12px;padding:9px 12px;border:0;border-radius:7px;color:var(--text);font:400 13px var(--body); }
.focus-ui .hero-icons .focus-utility-items .icon-btn:hover { background:var(--surface-raised); }
.focus-utility-items svg { width:17px;height:17px;flex-shrink:0; }
.focus-utility-items .notification-status-dot { display:none; }
.focus-ui .live-score-team { overflow-wrap:anywhere; }
.focus-ui .af-why-btn,.focus-more { min-height:36px; }
.focus-ui .focus-more[hidden] { display:none; }
.focus-ui .odds-points { font-size:11px; }
.focus-ui .ll-grid { font-variant-numeric:tabular-nums; }
.focus-ui .modal-card { max-height:85dvh; }
@media(max-width:600px){
 .focus-ui .hero-icons>#alerts-btn,.focus-utilities>summary { min-width:40px;width:40px;min-height:40px;height:40px; }
 .focus-ui .hero-icons>#alerts-btn { right:66px; }
 .focus-ui .odds-points { font-size:10px;line-height:1.6; }
 .focus-ui .live-score-team { max-width:145px; }
 .focus-ui .af-meta { font-size:11px; }
 .focus-ui .focus-review { min-height:40px; }
 .focus-ui .modal-card { max-height:88dvh; }
}
@media(max-width:600px){
 .focus-ui .ll-grid { grid-template-columns:58px minmax(0,1fr) minmax(0,1fr);gap:12px 7px; }
 .focus-ui .ll-slot { font-size:8px;letter-spacing:0;overflow-wrap:anywhere; }
 .focus-ui .ll-player { min-width:0;overflow-wrap:anywhere; }
}
/* Roster cells use explicit tracks; names and points never share an anonymous flex item. */
.focus-ui .ll-grid { grid-template-columns:88px minmax(0,1fr) minmax(0,1fr);gap:14px 20px; }
.focus-ui .ll-slot { font-size:10px;letter-spacing:0;white-space:normal;overflow-wrap:normal;padding:5px 8px;line-height:1.4; }
.focus-ui .ll-player { display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:10px;row-gap:4px;min-width:0; }
.focus-ui .ll-name { min-width:0;overflow-wrap:anywhere;grid-column:1; }
.focus-ui .ll-pts { grid-column:2;grid-row:1;margin:0;white-space:nowrap; }
.focus-ui .ll-badge { grid-column:1 / -1;justify-self:start;max-width:100%;white-space:normal;font-size:9px; }
.focus-ui [role=button]:focus-visible { outline:2px solid var(--brand);outline-offset:3px;border-radius:4px; }
.focus-ui .ssd-compare { grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); }
.focus-ui .ssd-player { min-width:0;overflow-wrap:anywhere; }
.focus-ui .tm-roster-row { flex-wrap:wrap; }
.focus-ui .tm-roster-name { min-width:0;overflow-wrap:anywhere;flex:1; }
.focus-ui .tm-roster-meta { white-space:normal;overflow-wrap:anywhere; }
@media(max-width:600px){
 .focus-ui .ll-grid { grid-template-columns:64px minmax(0,1fr) minmax(0,1fr);gap:16px 10px; }
 .focus-ui .ll-slot { font-size:10px;padding:5px 4px; }
 .focus-ui .ll-player { grid-template-columns:minmax(0,1fr);align-self:start;font-size:12px;line-height:1.5; }
 .focus-ui .ll-pts { grid-column:1;grid-row:auto;justify-self:start;font-size:12px;color:#424245; }
 .focus-ui .ll-name { grid-row:1; }
 .focus-ui .tm-roster-row { column-gap:8px; }
 .focus-ui .tm-roster-meta { flex-basis:100%;padding-left:24px;text-align:left;margin-left:0; }
}
.focus-ui .studio-table-scroll { overflow-x:auto;max-width:100%;overscroll-behavior-x:contain; }
.focus-ui .st-table th,.focus-ui .st-table td { padding:10px 12px;vertical-align:top; }
.focus-ui .st-table th { white-space:nowrap; }
.focus-ui #standings-body .st-table { min-width:570px; }
.focus-ui #standings-body td:nth-child(2) { min-width:150px;overflow-wrap:anywhere; }
.focus-ui #season-outlook-body .st-table { min-width:390px; }
.focus-ui #season-outlook-body .st-table td:first-child,.focus-ui #season-outlook-body .st-table th:first-child { width:auto;min-width:145px;overflow-wrap:anywhere; }
.focus-ui #opponent-intel-body .st-table { min-width:430px; }
.studio-scroll-hint { font:400 11px/1.5 var(--body);color:var(--muted);margin:0 0 10px; }
.focus-ui .studio-table-scroll:focus-visible { outline:2px solid var(--brand);outline-offset:2px; }
body.focus-ui.studio-dialog-open { overflow:hidden; }
.focus-ui .modal-card { overflow-wrap:anywhere; }
.focus-ui .modal-close { min-width:40px;min-height:40px; }
.focus-ui .studio-table-scroll .standings-note { margin:0 0 12px; }
.focus-ui #panel-live-matchup { container-type:inline-size; }
.focus-ui .live-score-num { font-size:clamp(28px,13cqw,70px); }
.focus-ui .player-modal-head,.focus-ui .system-settings-head { padding-right:48px; }
.focus-ui #system-settings-modal .card-label .tag { display:inline;background:transparent;padding:0;border:0;color:var(--text);font:600 13px/1.5 var(--body);letter-spacing:0;text-transform:none; }
@media(max-width:600px){
 .focus-ui .notification-settings-row { display:grid;grid-template-columns:1fr;gap:14px; }
 .focus-ui .notification-settings-row>span { display:flex;align-items:center;gap:8px; }
 .focus-ui .health-status { overflow-wrap:anywhere; }
}
/* Status and projection occupy their own rows, keeping actual zero distinct from not started. */
.focus-ui .ll-status,.focus-ui .ll-projection { grid-column:1/-1;font-size:11px;line-height:1.5;color:#626269; }
.focus-ui .ll-status { font-weight:600; }
.focus-ui .decision-status { margin:8px 0;font-size:12px;line-height:1.5;color:#825820; }
.workspace-preview { display:block;margin-top:9px;color:#414149;font-size:12px;line-height:1.5;font-weight:500; }
.focus-ui #team-availability { margin:12px 0 20px;font-size:13px; }
.studio-match-main .studio-report { margin-top:20px; }
@media(max-width:600px){
 #focus-today .focus-intro { margin-bottom:14px; }
 #focus-today .focus-intro h1 { font-size:25px;letter-spacing:-.8px;margin-top:5px; }
 #focus-today .focus-intro p { display:none; }
 #focus-today { padding-top:16px; }
 #focus-today .live-score { padding:16px 0; }
 /* Keep the dated brief after Next up on phones, while filling the desktop left column. */
 .studio-match-main { display:contents; }
 .studio-matchday { display:flex;flex-direction:column; }
 .studio-matchday>#panel-live-matchup,.studio-matchday .focus-attention { width:100%; }
 .studio-match-main .studio-report { order:3;width:100%;margin:0; }
 .focus-radar { order:2;width:100%; }
 .focus-ui .ll-status,.focus-ui .ll-projection { font-size:10px; }
}

@media(min-width:601px) and (max-width:850px){
 .studio-match-main { display:contents; }
 .studio-matchday { display:flex;flex-direction:column; }
 .studio-match-main>* { width:100%; }
 .studio-match-main .studio-report { order:3;margin-top:0; }
 .focus-radar { order:2;width:100%; }
}
@media(max-width:850px){
 .studio-match-main>#panel-live-matchup,.studio-match-main>.focus-attention { width:100%; }
}

.protection-activity { margin-top:24px;padding-top:22px;border-top:1px solid var(--border); }
.protection-mode,.protection-events { font-size:12px;line-height:1.6; }
.protection-events { list-style:none;padding:0;max-height:420px;overflow-y:auto; }
.protection-events li { padding:12px 0;border-bottom:1px solid var(--border);overflow-wrap:anywhere; }
.protection-events strong { display:block; }
.protection-events time,.protection-events small { color:var(--muted);font-size:11px; }

.optimizer-card {background:white;border:1px solid var(--line,#e3e4e8);border-radius:22px;padding:24px;margin-bottom:20px;min-width:0;}
.optimizer-card h2 {font-size:21px;margin:0 0 8px;}
.optimizer-gain {display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;margin-top:20px;}
.optimizer-gain strong {font-size:30px;color:#0766cc;}
.optimizer-gain span,.optimizer-card p,.optimizer-card li {font-size:13px;line-height:1.6;}
.optimizer-row {display:grid;grid-template-columns:100px minmax(0,1fr);gap:12px;padding:13px 0;border-top:1px solid #eee;}
.optimizer-row small {display:block;color:#687180;margin-top:5px;font-size:11px;line-height:1.6;}
.optimizer-row strong,.optimizer-row small {overflow-wrap:anywhere;}
.optimizer-slot {font-size:11px;letter-spacing:.04em;color:#0866cf;align-self:start;line-height:1.6;}
@media(max-width:600px){.optimizer-card{padding:18px}.optimizer-row{grid-template-columns:78px minmax(0,1fr);gap:8px}}

.optimizer-important {font-size:13px;line-height:1.6;background:#f5f7fa;border-radius:12px;padding:14px;margin:14px 0;}
.optimizer-important ul {margin:6px 0 0;padding-left:18px;}

/* iPhone review: comfortable controls, readable form text and device-safe edges. */
body.focus-ui { padding-top:env(safe-area-inset-top,0px);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px); }
@media(max-width:600px){
 .focus-ui .focus-nav button,.focus-ui .league-pill,.focus-ui .icon-btn,
 .focus-ui .modal-close,.focus-ui .focus-utilities>summary {min-height:44px;min-width:44px;}
 .focus-ui input:not([type=checkbox]):not([type=radio]),.focus-ui select,.focus-ui textarea {font-size:16px;}
 .focus-ui .focus-disclosure>summary {min-height:44px;display:list-item;line-height:1.5;padding-top:12px;padding-bottom:12px;}
 .focus-ui .focus-nav {padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));}
 .focus-ui .app-footer {padding-bottom:calc(100px + env(safe-area-inset-bottom));}
 .focus-ui .modal-card {padding-bottom:calc(24px + env(safe-area-inset-bottom));}
}

/* Observed matchup state takes priority over unavailable model output. */
.focus-ui .odds-strip.has-situation .odds-number,
.focus-ui .odds-strip.has-situation .odds-bar { display:none; }
.focus-ui .odds-strip.has-situation .odds-label { font-size:1rem; font-weight:600; color:var(--text); line-height:1.45; }
.focus-ui .odds-strip.has-situation .odds-points { white-space:normal; line-height:1.5; }
.focus-ui .gameday-grid[hidden] { display:none; }
#gameday-situation { font-size:.85rem; line-height:1.6; margin:0; }

.focus-ui .history-link { color:var(--brand);text-decoration:none;font-weight:500; }
.focus-ui .history-link:hover { text-decoration:underline; }
.focus-ui .history-link:focus-visible { outline:2px solid var(--brand);outline-offset:3px;border-radius:3px; }

/* Trade tools follow Studio: neutral surfaces, sentence case, progressive detail. */
.focus-ui :is(#trades-body,#live-offers-body) { font:400 14px/1.6 var(--body); }
.focus-ui :is(#trades-body,#live-offers-body) p { margin:8px 0 14px;overflow-wrap:anywhere; }
.focus-ui :is(#trades-body,#live-offers-body) h3 { font:600 16px/1.4 var(--body);letter-spacing:-.2px;margin:22px 0 8px; }
.focus-ui :is(#trades-body,#live-offers-body) details { border-top:1px solid var(--border);margin-top:16px;padding-top:4px; }
.focus-ui :is(#trades-body,#live-offers-body) summary { cursor:pointer;color:var(--brand);font:500 13px/1.5 var(--body);padding:12px 0;min-height:44px;overflow-wrap:anywhere; }
.focus-ui :is(#trades-body,#live-offers-body) details p { color:var(--muted); }
.focus-ui .trade-overview { margin:0 0 18px; }
.focus-ui .trade-overview h3 { font-size:20px;margin:4px 0 8px;letter-spacing:-.4px; }
.focus-ui .trade-overview p { color:var(--muted);max-width:60ch; }
.focus-ui .trade-overview .trade-kicker { font-size:12px;margin:0; }
.focus-ui .trade-caveat { background:var(--surface-raised);border-radius:12px;padding:12px 16px;margin:16px 0; }
.focus-ui .trade-caveat>p { font-size:12px;margin:0;color:var(--muted); }
.focus-ui .trade-caveat details { border:0;margin:0;padding:0; }
.focus-ui .trade-caveat summary { padding:8px 0 0;min-height:32px;font-size:12px; }
.focus-ui :is(#trades-body,#live-offers-body) .trade-card { background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:8px 18px;margin:16px 0;box-shadow:none; }
.focus-ui .trade-card>summary { color:var(--text);font-size:14px; }
.focus-ui .trade-gain { display:block;color:var(--muted);font:400 12px/1.5 var(--body);margin:4px 0 0 16px; }
.focus-ui .trade-head { font:600 15px/1.5 var(--body);text-transform:none;letter-spacing:0;margin:8px 0; }
.focus-ui .trade-cols { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:16px 0; }
.focus-ui .trade-col-label { font:500 12px/1.5 var(--body);text-transform:none;letter-spacing:0;color:var(--muted); }
.focus-ui .trade-cols .trade-col p { color:var(--text);margin:4px 0; }
.focus-ui .trade-calculation { border-top:1px solid var(--border);margin-top:20px;padding-top:2px; }
@media(max-width:600px) {
 .focus-ui :is(#trades-body,#live-offers-body) { font-size:13px; }
 .focus-ui .trade-cols { grid-template-columns:1fr;gap:12px; }
 .focus-ui :is(#trades-body,#live-offers-body) .trade-card { padding:6px 14px; }
}

/* Studio shared feature surfaces. Keep new tools within this visual system. */
.focus-ui :is(.optimizer-card,#research-body,#protection-activity-body,#waiver-score-body,#trade-machine-body,#season-outlook-body,#opponent-intel-body,#current-player-projection) {
 font:400 14px/1.6 var(--body);min-width:0;overflow-wrap:anywhere;
}
.focus-ui .optimizer-card { background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:24px;margin-bottom:22px;box-shadow:0 2px 8px #00000002; }
.focus-ui .optimizer-card h2 { font:600 20px/1.4 var(--body);letter-spacing:-.4px;margin:0 0 6px; }
.focus-ui :is(.optimizer-card,#research-body,#protection-activity-body,#waiver-score-body,#trade-machine-body,#current-player-projection) h3 { font:600 16px/1.4 var(--body);letter-spacing:-.2px;margin:22px 0 8px; }
.focus-ui :is(.optimizer-card,#research-body,#protection-activity-body,#waiver-score-body,#trade-machine-body,#current-player-projection) p { font-size:13px;line-height:1.65;margin:8px 0 14px; }
.focus-ui :is(.optimizer-card,#research-body,#protection-activity-body,#waiver-score-body,#trade-machine-body,#current-player-projection) details { border-top:1px solid var(--border);padding-top:4px;margin-top:16px; }
.focus-ui :is(.optimizer-card,#research-body,#protection-activity-body,#waiver-score-body,#trade-machine-body,#current-player-projection) summary { color:var(--brand);font:500 13px/1.5 var(--body);padding:12px 0;min-height:44px;cursor:pointer; }
.focus-ui :is(.optimizer-card,#research-body,#protection-activity-body,#waiver-score-body,#trade-machine-body,#current-player-projection) a { color:var(--brand);text-decoration:none; }
.focus-ui :is(.optimizer-card,#research-body,#protection-activity-body,#waiver-score-body,#trade-machine-body,#current-player-projection) a:hover { text-decoration:underline; }
.focus-ui .optimizer-gain { margin-top:16px;gap:6px 12px; }
.focus-ui .optimizer-gain strong { font:600 28px/1.2 var(--body);letter-spacing:-.6px;color:var(--text); }
.focus-ui .optimizer-gain span { font-size:12px;color:var(--muted); }
.focus-ui .optimizer-row { border-color:var(--border);gap:12px;padding:14px 0; }
.focus-ui .optimizer-row strong { font-weight:500; }
.focus-ui .optimizer-slot { color:var(--muted);letter-spacing:0;font-size:11px; }
.focus-ui .optimizer-row small { color:var(--muted);font-size:12px; }
.focus-ui .optimizer-row-full { grid-template-columns:minmax(0,1fr); }
.focus-ui .optimizer-important,.focus-ui .studio-important { background:var(--surface-raised);border-radius:12px;padding:14px 16px;font:400 13px/1.6 var(--body); }
.focus-ui .optimizer-important strong { font-weight:600; }
.focus-ui .studio-metrics { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:18px 0 22px;padding:16px;background:var(--surface-raised);border-radius:12px; }
.focus-ui .studio-metrics>div { min-width:0; }
.focus-ui .studio-metrics dt { font:400 12px/1.5 var(--body);color:var(--muted);margin-bottom:6px; }
.focus-ui .studio-metrics dd { font:600 20px/1.3 var(--body);letter-spacing:-.3px;font-variant-numeric:tabular-nums;margin:0;overflow-wrap:anywhere; }
.focus-ui :is(.tm-label,.tm-column-label,.tm-fit-head) { font:500 12px/1.5 var(--body);text-transform:none;letter-spacing:0;color:var(--muted); }
.focus-ui .tm-roster-row { min-height:44px; }
.focus-ui .tm-roster-name { font-weight:500; }
.focus-ui .tm-roster-meta,.focus-ui .wsc-meta { font:400 11px/1.5 var(--body);white-space:normal; }
.focus-ui .wsc-row { padding:18px 0; }
.focus-ui .wsc-head strong { font-weight:600; }
.focus-ui .st-table th { font:500 12px/1.5 var(--body);text-transform:none;letter-spacing:0; }
.focus-ui .gameday-callout { border-radius:12px;font:400 13px/1.6 var(--body);padding:12px 14px; }
@media(max-width:600px) {
 .focus-ui .optimizer-card { padding:18px; }
 .focus-ui .studio-metrics { gap:12px;padding:14px;grid-template-columns:repeat(auto-fit,minmax(95px,1fr)); }
 .focus-ui .studio-metrics dd { font-size:20px; }
 .focus-ui .optimizer-gain strong { font-size:26px; }
 .focus-ui .tm-roster-meta { max-width:38%; }
}

/* Model status uses Studio's existing neutral surface and evidence disclosure. */
.focus-ui .win-estimate { margin-top:20px;padding-top:18px;border-top:1px solid var(--border); }
.focus-ui .win-estimate-heading { display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px 16px;font:500 13px/1.5 var(--body); }
.focus-ui .win-estimate-heading strong { font-weight:600; }
.focus-ui .win-estimate .focus-note { margin:8px 0;color:var(--muted); }
.focus-ui .win-estimate details p { font:400 12px/1.6 var(--body);color:var(--muted); }
.focus-ui #live-score:has(.live-score-pending) { display:block; }
.focus-ui .live-score-pending { display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:14px;width:100%; }
.focus-ui .live-score-pending-team { font:500 14px/1.5 var(--body);text-transform:none;letter-spacing:0;overflow-wrap:anywhere; }
.focus-ui .live-score-pending-team:last-child { text-align:right; }
.focus-ui .live-score-pending-note { font:400 12px/1.6 var(--body);color:var(--muted);margin-top:14px;text-align:left; }
