/* ==== Design tokens: sitewide analytical light system ==== */
:root{
  --bg:#ffffff;--bg-elevated:#ffffff;--bg-surface-2:#f7f9fc;
  --line:#d8e0ea;--line-strong:#b7c4d3;
  --text:#292d2f;--text-strong:#172126;--muted:#5f6465;--muted-2:#7a8390;
  --royal:#002e5d;--royal-light:#1d5f9e;--royal-wash:#eef4fa;
  --green:#0f7a4a;--green-wash:#eef7f1;--red:#b4232f;--red-wash:#fbefef;--amber:#8a6100;
  --dark-neutral:#172126;
  --navy:var(--bg-elevated);--blue:var(--royal);--blue-light:var(--royal-wash);--ink:var(--text);--paper:var(--bg);--card:var(--bg-elevated);
  --radius:2px;--radius-sm:2px;
  --shadow:none;--shadow-lg:none;
  --content-max:1560px;--gutter-desktop:4%;--gutter-tablet:24px;--gutter-mobile:16px;
  --font-ui:-apple-system,BlinkMacSystemFont,'Segoe UI',Inter,Helvetica,Arial,sans-serif;
  --type-page-title:24px;--type-section-title:20px;--type-insight:16px;--type-subsection:14px;--type-body:14px;--type-meta:11px;--type-metric:25px;
  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--control-height:40px;--table-font:12.5px;--table-cell-y:8px;--table-cell-x:10px;
}
*{box-sizing:border-box}
html{background:#fff}
body{margin:0;background:#fff;color:var(--text);font:14px/1.5 var(--font-ui);-webkit-font-smoothing:antialiased}
:where(body,body *){font-family:var(--font-ui)}
a{color:var(--royal-light);text-underline-offset:3px;text-decoration-thickness:1px}
.mast .brand h1{font-family:var(--font-ui);font-size:var(--type-page-title)}
button,input,select{font:inherit;min-height:var(--control-height);border:1px solid var(--line-strong);border-radius:var(--radius);padding:7px 10px;background:#fff;color:var(--text);max-width:100%;transition:border-color .15s,background .15s}
button{cursor:pointer;font-weight:600}
button:hover:not(:disabled),.button:hover{border-color:var(--royal);background:var(--royal-wash)}
button:disabled{opacity:.4;cursor:default}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--royal-light);outline-offset:2px;border-radius:2px}
label{display:block;font-size:var(--type-meta);letter-spacing:.04em;text-transform:uppercase;font-weight:700;margin-bottom:5px;color:var(--muted)}
h1,h2,h3,h4,p{margin:0}
h1{font-size:var(--type-page-title);line-height:1.2;letter-spacing:-.02em;font-weight:700;color:var(--text-strong)}
h2{font-size:var(--type-section-title);line-height:1.25;font-weight:700;letter-spacing:-.01em;color:var(--text-strong)}
h3{font-size:var(--type-subsection);line-height:1.3;font-weight:700;color:var(--text-strong)}
p{font-size:var(--type-body);line-height:1.5}
p+p{margin-top:10px}

/* ==== P1: Global shell ==== */
.mast{background:#fff;color:#172126;min-height:72px;display:flex;align-items:center;justify-content:space-between;padding:12px 4%;gap:20px;border-bottom:1px solid var(--line);box-shadow:none}
.brand{display:flex;flex-direction:column;align-items:flex-start;gap:3px}
.mast .brand h1{margin:0;font-family:var(--font-ui);font-size:var(--type-page-title);line-height:1.1;letter-spacing:-.025em;font-weight:700;color:#172126}
h1{font-size:var(--type-page-title);line-height:1.2;letter-spacing:-.02em;font-weight:700;color:var(--text-strong)}
.eyebrow{font-family:var(--font-ui);font-size:var(--type-meta);letter-spacing:.14em;font-weight:800}
.mast .eyebrow{color:var(--muted)}
.mast nav{display:flex;align-items:center;gap:0;font-family:var(--font-ui);font-size:var(--type-meta)}
.mast a{color:var(--royal);font-size:var(--type-meta);font-weight:600;text-decoration:none;border-left:1px solid var(--line);margin-left:14px;padding-left:14px}
.mast a:hover{text-decoration:underline}
.status{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;background:transparent;padding:0;border-radius:0;border:0;font-weight:500;font-size:var(--type-meta);color:var(--muted)}
.status:before{content:'';height:7px;width:7px;flex:0 0 7px;background:var(--amber);border-radius:50%;box-shadow:none}
.status.connected:before{background:var(--green);box-shadow:none}
main{max-width:var(--content-max);margin:auto;padding:0 var(--gutter-desktop) 48px}
.toolbar{display:flex;gap:12px;align-items:flex-end;padding:12px 0 14px}
.toolbar label{margin-bottom:4px;font-size:var(--type-meta);letter-spacing:.08em;color:var(--muted)}
.toolbar #season{width:92px}
.game-picker{max-width:430px;flex:1}
.game-picker select{width:100%}
.muted{color:var(--muted);font-size:var(--type-meta)}
#updated{margin-left:auto;align-self:center;color:var(--muted-2)}
.notice{padding:7px 11px;border:1px solid #f0dca6;background:#fdf6e3;border-radius:var(--radius);color:#8a6100;font-size:12px;margin-bottom:14px;box-shadow:none}
.notice.good{background:var(--green-wash);color:var(--green);border-color:#bfe4d0}

/* Top-level tabs / subtabs -- app-shell navigation, dark states */
.view-tabs{display:flex;gap:0;background:#fff;border-bottom:1px solid var(--line);margin:0;overflow-x:auto;padding:8px 4%;position:sticky;top:0;z-index:20;box-shadow:none}
.view-tabs button{background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0;padding:8px 12px;min-height:38px;font-weight:600;font-size:13px;color:var(--muted);white-space:nowrap;flex:0 0 auto;transition:background .12s,color .12s}
.view-tabs button:hover:not(.active){background:var(--royal-wash);color:var(--text)}
.view-tabs button.active{color:var(--royal);background:transparent;border-bottom-color:var(--royal);box-shadow:none}
.subnav{display:flex;gap:0;background:#fff;border-bottom:1px solid var(--line);margin:0;overflow-x:auto;padding:6px 4%;border-radius:0;box-shadow:none}
.subnav button{background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0;padding:7px 11px;min-height:32px;font-weight:600;font-size:12px;color:var(--muted);white-space:nowrap;flex:0 0 auto;transition:background .12s,color .12s}
.subnav button:hover:not(.active){background:var(--royal-wash);color:var(--text)}
.subnav button.active{color:var(--royal);background:transparent;border-bottom-color:var(--royal)}

/* ==== P2: Scoreboard / live game header ==== */
.mini-scoreboard{display:flex;align-items:center;gap:10px;background:transparent;border:0;border-radius:0;padding:0;font-family:inherit;box-shadow:none;flex:0 0 auto;white-space:nowrap}
.mini-scoreboard-team{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}
.mini-scoreboard-label{color:#dedede;font-size:var(--type-meta);font-weight:700;letter-spacing:.06em}
.mini-scoreboard-score{color:var(--text-strong);font-size:22px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
.mini-scoreboard-team:last-child .mini-scoreboard-score{order:1}
.mini-scoreboard-team:last-child .mini-scoreboard-label{order:2;color:var(--muted)}
.mini-scoreboard-clock{display:flex;flex-direction:row;align-items:baseline;gap:7px;padding:0 10px;border-left:1px solid var(--line);border-right:1px solid var(--line)}
.mini-scoreboard-clock span{color:var(--muted)}
.mini-scoreboard-clock #mini-scoreboard-period{font-family:var(--font-ui);font-size:var(--type-meta);font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.mini-scoreboard-clock #mini-scoreboard-time{font-family:var(--font-ui);font-size:var(--type-body);font-weight:600;font-variant-numeric:tabular-nums}

.scoreboard{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:22px 32px;background:#fff;border-radius:var(--radius);border:1px solid var(--line);border-top:2px solid var(--line);margin-bottom:24px;box-shadow:none}
.score-team{display:flex;align-items:center;gap:20px;min-width:0}
.score-team:last-child{flex-direction:row-reverse}
.score-team small{font-family:var(--font-ui);font-weight:700;font-size:var(--type-insight);line-height:1.2;overflow-wrap:anywhere;letter-spacing:-.01em;color:var(--text-strong)}
.score-team strong{font-family:var(--font-ui);font-size:40px;line-height:1;font-variant-numeric:tabular-nums;color:var(--text-strong);font-weight:800}
.game-state{text-align:center;padding:0 22px;min-width:150px}
.game-state h2{margin:4px 0;color:var(--text-strong)!important}
.game-state p{color:var(--muted);font-size:var(--type-body)}

.workspace{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:28px}
.section-heading{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:12px;padding:0 0 7px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none}
.filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px}
.filters-stacked{margin-top:10px}
.filters-inline{align-items:center}
.filters>div{flex:1;min-width:130px}
.filters .search-field{flex-basis:100%}
.filters select,.filters input{width:100%}
.filters #clear{font-family:var(--font-ui);font-size:var(--type-meta);min-height:36px;padding:6px 12px}
.list-caption{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 0;font-family:var(--font-ui);font-size:var(--type-meta);color:var(--muted)}
.list-caption button{min-height:36px;font-family:var(--font-ui);font-size:var(--type-meta)}
.empty{border:1px dashed var(--line-strong);background:#fff;border-radius:var(--radius);padding:28px 20px}
.empty h3{font-family:var(--font-ui);font-size:var(--type-subsection);line-height:1.3;font-weight:700;color:var(--text-strong)}
.empty p{max-width:560px;color:var(--muted);font-family:var(--font-ui);font-size:var(--type-body);margin:8px 0 20px}
.button{display:inline-block;padding:10px 18px;text-decoration:none;border-radius:2px;font-weight:600}
.primary{background:var(--royal);border-color:var(--royal);color:#fff;box-shadow:none}
.primary:hover:not(:disabled){background:var(--royal-light);border-color:var(--royal-light)}
aside{padding-left:0}
.side-section{padding:20px 22px;margin-bottom:18px;border-radius:var(--radius);background:#fff;border:1px solid var(--line);box-shadow:none}
.side-section h2{margin:2px 0 12px}
.side-section h3{margin-bottom:10px}
.side-section p,.side-section a{font-family:var(--font-ui);font-size:var(--type-body)}
.side-section p{color:var(--muted)}
dl{margin:0 0 14px}
dl>div{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:10px 0}
dt{font-family:var(--font-ui);color:var(--muted);font-size:var(--type-body)}
dd{margin:0;font-family:var(--font-ui);font-size:var(--type-insight);font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-strong)}
.fine{font-family:var(--font-ui);font-size:var(--type-meta)!important;color:var(--muted)}
.cs-context{color:var(--muted)}
.drive{background:#fff;border:0;border-bottom:1px solid var(--line);margin-bottom:0;border-radius:0;overflow:hidden;box-shadow:none}
.drive summary{cursor:pointer;padding:10px 0;list-style:none;display:grid;grid-template-columns:20px minmax(90px,1fr) minmax(100px,1fr) auto;gap:12px;align-items:center;transition:background .12s}
.drive summary:hover{background:var(--bg-surface-2)}
.drive summary:before{content:'+';font-size:19px;color:var(--royal-light);font-weight:700}
.drive[open] summary:before{content:'−'}
.drive summary small{display:block;font-family:var(--font-ui);font-size:var(--type-meta);color:var(--muted);font-weight:400}
.drive summary strong{font-family:var(--font-ui);font-size:var(--type-body);color:var(--text-strong)}
.result{text-align:right;font-family:var(--font-ui);font-weight:700;font-size:var(--type-meta);color:var(--text)}
.result.score{color:var(--green)}
.drive-meta{padding:8px 0;background:#fff;border-top:1px solid var(--line);font-family:var(--font-ui);font-size:var(--type-meta);color:var(--muted)}
.plays{width:100%;border-collapse:collapse;font-family:var(--font-ui);font-size:12.5px}
.plays td{padding:8px 10px;vertical-align:top;border-top:1px solid var(--line);font-family:var(--font-ui);font-size:12.5px;color:var(--text)}
.plays td:first-child{white-space:nowrap;font-variant-numeric:tabular-nums}
.plays small{display:block;color:var(--muted);font-family:var(--font-ui);font-size:var(--type-meta)}
.yards{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--text-strong)}
.play-type{color:var(--royal-light);font-family:var(--font-ui);font-weight:600;font-size:var(--type-meta);display:block;margin-bottom:3px}
.cs-table{width:100%;border-collapse:collapse;margin-top:8px;font-family:var(--font-ui);font-size:12.5px}
.cs-table th,.cs-table td{padding:7px 10px;text-align:left;border-bottom:1px solid var(--line)}
.cs-table th{font-family:var(--font-ui);font-size:var(--type-meta);font-weight:700;color:var(--muted);background:#F7F9FC;border-bottom-color:var(--line)}
#drive-chart-report,#player-chart-report,#opponent-key-players,#opponent-head-to-head,#opponent-snapshot:has(>p.muted),#opponent-trends:has(>p.muted),#opponent-weaknesses:has(>p.muted),#opponent-key-players:has(>p.muted:only-child){background:#fff;border:0;border-radius:0;padding:12px 0;border-bottom:1px solid var(--line);box-shadow:none}
#drive-chart-report th,#player-chart-report th{font-family:var(--font-ui);font-size:var(--type-meta)}
#drive-chart-report td,#player-chart-report td{font-family:var(--font-ui);font-size:12.5px}
.table-scroll{overflow-x:auto;border-radius:0;box-shadow:none}
table.efficiency{width:100%;min-width:0;border-collapse:collapse;font-family:var(--font-ui);font-size:11px;background:#fff;table-layout:fixed}
.plays th,table.box th,table.efficiency th,.stat-table th{background:#F7F9FC;color:var(--muted);text-align:left;font-family:var(--font-ui);font-size:var(--type-meta);font-weight:700;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--line)}
.plays th{font-family:var(--font-ui);font-size:var(--type-meta);padding:8px 10px;background:#F7F9FC;color:var(--muted);border-bottom:1px solid var(--line)}
table.box th{font-family:var(--font-ui);font-size:var(--type-meta);padding:7px 8px}
table.efficiency th{font-family:var(--font-ui);font-size:var(--type-meta);padding:7px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-bottom:1px solid var(--line)}
.stat-table th{text-align:left;font-family:var(--font-ui);font-size:var(--type-meta);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-weight:700;padding:8px 10px;border-bottom:1px solid var(--line)}
table.efficiency td{padding:7px 6px;border-top:1px solid var(--line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text);font-family:var(--font-ui);font-size:11px}
table.efficiency th:first-child,table.efficiency td:first-child{width:15%}
table.efficiency tr.team-header td{background:var(--royal-wash);font-weight:700;border-top:2px solid var(--royal)}
table.efficiency tr.totals td{font-weight:700;border-top:2px solid var(--line)}
.drive-row{padding:8px 0;font-family:var(--font-ui);font-size:var(--type-body);border-bottom:1px solid var(--line)}
.drive-row:last-child{border-bottom:none}
.drive-row-top{display:flex;justify-content:space-between;gap:8px;margin-bottom:5px}
.drive-row-label{font-family:var(--font-ui);font-size:var(--type-body);font-weight:600;color:var(--text)}
.drive-row-meta{font-family:var(--font-ui);font-size:var(--type-meta);color:var(--muted);white-space:nowrap}
.drive-row-bar{display:flex;height:13px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;width:100%}
.bar-yards{background:var(--royal);display:inline-block;height:100%}
.bar-remaining{background:var(--line-strong);display:inline-block;height:100%}
.chart-legend{display:flex;flex-wrap:wrap;gap:16px;align-items:center;font-size:11px;color:var(--muted);margin-top:12px}
.chart-legend span{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px;vertical-align:middle}
.ay-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-top:14px}
.ay-row:first-child{margin-top:0}
.ay-label{font-family:var(--font-ui);font-size:var(--type-body);font-weight:600;color:var(--text)}
.ay-label small{display:block;font-family:var(--font-ui);font-weight:400;color:var(--muted);font-size:var(--type-meta);text-transform:none;letter-spacing:0}
.ay-value{font-family:var(--font-ui);font-size:var(--type-metric);font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-strong);white-space:nowrap}
.ay-bar{height:8px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin-top:5px}
.ay-bar span{display:block;height:100%;background:var(--royal)}
.ay-net{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.player-row{padding:8px 0;font-family:var(--font-ui);font-size:var(--type-body);border-bottom:1px solid var(--line)}
.player-row:last-child{border-bottom:none}
.player-row-top{display:flex;justify-content:space-between;gap:8px;margin-bottom:5px}
.player-row-name{font-family:var(--font-ui);font-size:var(--type-body);font-weight:600;color:var(--text)}
.player-row-name small{display:block;font-family:var(--font-ui);font-weight:400;color:var(--muted);font-size:var(--type-meta)}
.player-row-value{font-family:var(--font-ui);font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-strong);white-space:nowrap}
.player-row-bar{height:10px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.player-row-bar span{display:block;height:100%;background:var(--royal)}
/* Final Box Score — restrained editorial stat-book treatment */
#box-score-view.workspace{--bg-elevated:#fff;--bg-surface-2:#F7F9FC;--line:#D8E0EA;--line-strong:#B7C4D3;--text:#292d2f;--text-strong:#172126;--muted:#5f6465;--royal:#002E5D;--royal-light:#1D5F9E;grid-template-columns:minmax(0,1fr)}
#box-score-view>.drive-column{min-width:0}
#final-box-score-subnav{display:flex;gap:0;align-items:stretch;background:#fff;border:0;border-bottom:1px solid var(--line);border-radius:0;margin:0;overflow-x:auto;padding:4px 4%;box-shadow:none}
#final-box-score-subnav button{min-height:32px;padding:6px 10px;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--muted);font-family:var(--font-ui);font-size:var(--type-meta);font-weight:600;white-space:nowrap;flex:0 0 auto;transition:background .12s,color .12s}
#final-box-score-subnav button:hover:not(.active){background:var(--royal-wash);color:var(--text)}
#final-box-score-subnav button.active{color:var(--royal);background:transparent;border-bottom-color:var(--royal)!important;box-shadow:none}
#box-score-view #box-score-score{font-family:var(--font-ui);font-size:var(--type-metric);line-height:1.05;font-weight:700;letter-spacing:.025em;font-variant-numeric:tabular-nums;color:var(--text-strong)}
#box-score-view .box-team h3{font-size:var(--type-subsection)}
#box-score-view .box-team h4{font-size:var(--type-meta)}
#box-score-view .box-score-header{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,auto) minmax(0,1fr);align-items:center;gap:20px;padding:16px 0 17px;margin:0 0 20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
#box-score-view .box-score-side{display:flex;flex-direction:column;gap:3px;min-width:0}
#box-score-view .box-score-home{text-align:right;align-items:flex-end}
.box-score-side-label,.box-score-status{font-family:var(--font-ui);font-size:var(--type-meta);line-height:1.3;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
#box-score-view .box-score-team-name{font-family:var(--font-ui);font-size:var(--type-insight);line-height:1.15;font-weight:700;overflow-wrap:anywhere;color:var(--text-strong)}
#box-score-view .box-score-final{text-align:center;white-space:nowrap}
#box-score-view #box-score-score{font-family:var(--font-ui);font-size:var(--type-metric);line-height:1.05;font-weight:700;letter-spacing:.025em;font-variant-numeric:tabular-nums;color:var(--text-strong)}
.box-score-meta{margin-top:5px;font-family:var(--font-ui);font-size:var(--type-meta);line-height:1.4;color:var(--muted)}
#box-score-view .box-score-teams{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;align-items:start}
#box-score-view .box-team{min-width:0;margin:0 0 18px}
#box-score-view .box-team h3{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:0 0 8px;margin:0 0 12px;border-bottom:1px solid var(--line);font-family:var(--font-ui);font-size:var(--type-subsection);line-height:1.2;font-weight:700;color:var(--text-strong)}
#box-score-view .box-team-score{flex:0 0 auto;font:700 var(--type-meta)/1.2 var(--font-ui);letter-spacing:.02em;color:var(--muted);font-variant-numeric:tabular-nums}
#box-score-view .box-team h4{margin:16px 0 0;padding:5px 0;background:#F7F9FC;border-bottom:1px solid var(--line);font-family:var(--font-ui);font-size:var(--type-subsection);line-height:1.3;font-weight:700;text-transform:capitalize;color:var(--text-strong)}
#box-score-view .box-table-wrap{min-width:0;overflow-x:auto;overscroll-behavior-x:contain}
#box-score-view table.box{width:100%;min-width:max-content;border-collapse:collapse;border-radius:0;overflow:visible;box-shadow:none;background:#fff;font-family:var(--font-ui);font-size:12.5px;font-variant-numeric:tabular-nums}
#box-score-view table.box th{padding:7px 8px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap;background:#F7F9FC;color:var(--muted);font-size:var(--type-meta);letter-spacing:.04em}
#box-score-view table.box th:first-child{text-align:left;min-width:116px}
#box-score-view table.box td{padding:6px 8px;border-top:1px solid var(--line);text-align:right;white-space:nowrap;color:var(--text);font-family:var(--font-ui);font-size:12.5px}
#box-score-view table.box td:first-child{text-align:left;font-weight:600;color:var(--text-strong)}
#box-score-view table.box tbody tr:last-child td{border-bottom:1px solid var(--line)}
#box-score-view .box-table-wrap:focus-visible{outline:2px solid var(--royal-light);outline-offset:2px}
.player-search-summary{display:flex;flex-wrap:wrap;gap:22px;padding:16px 0;margin-bottom:8px}
.ps-stat{display:flex;flex-direction:column}
.ps-stat strong{font-family:var(--font-ui);font-size:var(--type-metric);font-weight:700;color:var(--text-strong);font-variant-numeric:tabular-nums}
.ps-stat span{font-family:var(--font-ui);font-size:var(--type-meta);color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.cs-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}
.cs-grid-primary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.cs-section-label{margin:22px 0 10px;font-family:var(--font-ui);font-size:var(--type-meta);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.cs-section-label-supporting{margin-top:22px}
.cs-grid-supporting{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.cs-grid-supporting .cs-card{padding:12px 0;box-shadow:none;border:0;border-bottom:1px solid var(--line);border-top:1px solid var(--line);border-radius:0;background:#fff}
.cs-grid-supporting .cs-value{font-family:var(--font-ui);font-size:var(--type-insight)}
.cs-detail-line{font-family:var(--font-ui);font-size:var(--type-meta);color:var(--muted);margin:2px 0 12px}
.cs-fbs-line{font-family:var(--font-ui);font-size:var(--type-meta);color:var(--muted);margin:8px 0 0;padding-top:8px;border-top:1px solid var(--line)}

.cs-baseline{background:#fff;border:0;border-top:1px solid var(--line);border-radius:0;padding:7px 0;margin-top:2px}
.cs-baseline-label{font-family:var(--font-ui);font-size:var(--type-meta);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:3px}
.cs-baseline-value{font-family:var(--font-ui);font-size:var(--type-insight);font-weight:700;color:var(--text-strong);font-variant-numeric:tabular-nums;line-height:1.2}
.cs-baseline-comparison{font-family:var(--font-ui);font-size:var(--type-meta);font-weight:600;margin:4px 0 0;color:var(--text)}
.cs-baseline-rank{font-family:var(--font-ui);font-size:var(--type-meta);color:var(--muted);margin:2px 0 0}
.cs-baseline-empty{font-family:var(--font-ui);font-size:var(--type-body);color:var(--muted);margin:0}
.cs-baseline-arrow{font-weight:800;margin-right:2px}
.cs-baseline-arrow.cs-good{color:var(--green)}
.cs-baseline-arrow.cs-bad{color:var(--red)}

/* ==== P3/P4: Insight cards (Game Center + Situations share this pattern) ==== */
.game-flow-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:16px}
.game-flow-item{background:#fff;border:1px solid var(--line);border-left:2px solid var(--line);border-radius:var(--radius);padding:14px 16px;cursor:pointer;box-shadow:none;transition:border-color .15s,background-color .15s}
.game-flow-item:hover{transform:none;box-shadow:none;border-color:var(--royal)}
.game-flow-item.active{background:var(--royal-wash);border-color:var(--royal);box-shadow:none}
.game-flow-item.game-flow-negative{border-left-color:var(--red)}
.questions-evidence{margin:10px 0 0;padding-left:20px;font-family:var(--font-ui);font-size:var(--type-body);color:var(--text)}
.questions-evidence li{margin-bottom:4px;font-family:var(--font-ui);font-variant-numeric:tabular-nums}
.questions-layer{margin-top:12px;padding-top:9px;border-top:1px solid var(--line)}
.questions-layer h4{margin:0 0 4px;color:var(--muted);font-family:var(--font-ui);font-size:var(--type-meta);letter-spacing:.04em;text-transform:uppercase}
.questions-layer p{margin:4px 0 0;font-family:var(--font-ui);font-size:var(--type-body);line-height:1.5;color:var(--text)}
.questions-connected{border-left:2px solid var(--royal);padding-left:10px}
.questions-counterpoint{border-left:2px solid var(--line-strong);padding-left:10px}
.questions-related{margin-top:10px;color:var(--muted);font-family:var(--font-ui);font-size:var(--type-meta)}
.game-flow-headline{font-family:var(--font-ui);font-weight:700;font-size:var(--type-insight);line-height:1.35;color:var(--text-strong);margin-bottom:6px;letter-spacing:0}
.game-flow-negative .game-flow-headline{color:var(--red)}
.game-flow-statement{font-family:var(--font-ui);font-size:var(--type-body);color:var(--muted);margin:0;line-height:1.5}
.stat-table{width:100%;border-collapse:collapse;background:#fff;border:0;border-radius:0;box-shadow:none;overflow:hidden;margin-bottom:18px}
.stat-table th{text-align:left;font-family:var(--font-ui);font-size:var(--type-meta);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-weight:700;padding:8px 10px;border-bottom:1px solid var(--line)}
.stat-table td{padding:8px 10px;border-bottom:1px solid var(--line);font-family:var(--font-ui);font-size:12.5px;font-variant-numeric:tabular-nums;color:var(--text)}
.stat-table tr:last-child td{border-bottom:none}
.national-context{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;line-height:1.25}
.national-context-percentile{font-size:14px;font-weight:700;color:var(--text-strong);font-variant-numeric:tabular-nums;white-space:nowrap}
.national-context-rank{display:block;font-size:11px;font-weight:400;color:var(--muted);line-height:1.35;white-space:normal}
.stat-table td .national-context-percentile{font-size:13px}
.stat-table td .national-context-rank{font-size:11px}
@media(max-width:760px){.stat-table td .national-context-rank{font-size:11px;white-space:normal}}
.stat-table td:first-child{color:var(--text-strong);font-weight:600}
.stat-table td:nth-child(2){font-weight:700;color:var(--text-strong)}
.stat-table td.stat-table-flag{color:var(--red);font-weight:600}
.stat-table tbody tr:hover{background:var(--royal-wash)}
.cs-card{background:#fff;border:1px solid var(--line);border-top:2px solid var(--line);border-radius:var(--radius);padding:14px;cursor:pointer;box-shadow:none;transition:border-color .15s,background-color .15s}
.cs-card-weakness{border-top-color:var(--line);cursor:default}
.matchup-row{display:flex;align-items:stretch;gap:12px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:none;padding:14px 16px;margin-bottom:12px}
.matchup-side{flex:1;display:flex;flex-direction:column;gap:4px;padding:6px 10px;border-radius:var(--radius)}
.matchup-side small{color:var(--muted);font-family:var(--font-ui);font-size:var(--type-meta);text-transform:uppercase;letter-spacing:.03em}
.matchup-side strong{font-family:var(--font-ui);font-size:var(--type-insight);color:var(--text-strong);font-variant-numeric:tabular-nums}
.matchup-side.matchup-edge{background:var(--royal-wash);border:1px solid var(--royal)}
.matchup-side.matchup-edge strong{color:var(--royal-light)}
.matchup-vs{align-self:center;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase}
.matchup-advantage-tag{display:inline-block;margin-top:2px;background:var(--royal);color:#fff;font-family:var(--font-ui);font-size:var(--type-meta);font-weight:700;letter-spacing:.04em;padding:2px 7px;border-radius:var(--radius);align-self:flex-start}
/* Opponent Preview v2: Matchup vs BYU cards */
.matchup-card{background:#fff;border:1px solid var(--line);border-left:2px solid var(--line);border-radius:var(--radius);box-shadow:none;padding:12px 14px;margin-bottom:12px}
.matchup-card-offense{border-left-color:var(--royal)}
.matchup-card-defense{border-left-color:var(--green)}
.matchup-card-even{border-left-color:var(--muted-2)}
.matchup-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.matchup-card-title{font-family:var(--font-ui);font-size:var(--type-insight);font-weight:700;color:var(--text-strong)}
.matchup-metric-note{font-family:var(--font-ui);font-weight:400;color:var(--muted);font-size:var(--type-meta)}
.matchup-card-edge{font-family:var(--font-ui);font-size:var(--type-meta);font-weight:700;letter-spacing:.04em;padding:2px 7px;border-radius:var(--radius);background:#fff;border:1px solid var(--line);color:var(--muted);white-space:nowrap}
.matchup-card-offense .matchup-card-edge{background:var(--royal-wash);border-color:var(--royal);color:var(--royal)}
.matchup-card-defense .matchup-card-edge{background:#fff;border-color:var(--line);color:var(--muted)}
.matchup-card-body{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.matchup-unit{display:flex;flex-direction:column;gap:4px}
.matchup-unit-header{display:flex;justify-content:space-between;align-items:baseline;gap:6px}
.matchup-unit-header small{color:var(--muted);font-family:var(--font-ui);font-size:var(--type-meta);text-transform:uppercase;letter-spacing:.04em;font-weight:700}
.matchup-unit-header span{font-family:var(--font-ui);font-size:var(--type-meta);color:var(--text);font-weight:600}
.matchup-unit-percentile{font-family:var(--font-ui);font-size:var(--type-insight);font-weight:700;color:var(--text-strong)}
.matchup-support{margin-top:2px;display:flex;flex-direction:column;gap:2px}
.matchup-support-row{display:flex;justify-content:space-between;gap:8px;font-family:var(--font-ui);font-size:var(--type-meta);color:var(--muted)}
.matchup-support-row strong{font-family:var(--font-ui);color:var(--text);font-weight:600;font-variant-numeric:tabular-nums}
/* ==== Opponent Preview base components ====
   These selectors define the existing component structure and data labels.
   The page-root editorial overrides below flatten the presentation and match
   Story's neutral blue section hierarchy without changing preview behavior. */
.opp-hero{background:#fff;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:12px 0;margin-bottom:14px;box-shadow:none}
.opp-hero-eyebrow{display:block;font-family:var(--font-ui);font-size:var(--type-meta);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.opp-hero-title{margin:4px 0 2px;font-family:var(--font-ui);font-size:var(--type-page-title);line-height:1.25;font-weight:700;color:var(--text-strong)}
.opp-hero-sub{margin:0 0 10px;color:var(--muted);font-family:var(--font-ui);font-size:var(--type-body)}
.opp-hero-stats{display:flex;gap:18px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:10px}
.opp-hero-stat{display:flex;flex-direction:column;gap:2px}
.opp-hero-stat-label{font-family:var(--font-ui);font-size:var(--type-meta);font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.opp-hero-stat-value{font-family:var(--font-ui);font-size:var(--type-metric);font-weight:700;color:var(--text-strong);font-variant-numeric:tabular-nums}
.opp-hero-stat-note{font-family:var(--font-ui);font-size:var(--type-meta);color:var(--muted)}
/* Default matchup header variants. The page-scoped editorial rules below
   normalize both sections to Story's neutral light-blue treatment. */
.matchup-section-header{display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:0 0 7px;margin:20px 0 12px;background:transparent;color:var(--text-strong)}
.matchup-section-header h3{margin:0;font-family:var(--font-ui);font-size:var(--type-section-title);font-weight:700;color:var(--text-strong)}
.matchup-section-header p{margin:2px 0 0;font-family:var(--font-ui);font-size:var(--type-body);color:var(--muted);opacity:1}
.matchup-section-note{font-family:var(--font-ui);font-size:var(--type-meta);color:var(--muted);opacity:1;white-space:normal;text-align:right}
.matchup-section-header-byu,.matchup-section-header-opp{background:transparent}
.matchup-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.matchup-card-body{display:grid;grid-template-columns:1fr auto 1fr;align-items:start;gap:10px}
.matchup-card-vs{align-self:center;font-family:var(--font-ui);font-size:var(--type-meta);font-weight:700;color:var(--muted);letter-spacing:.05em}
.matchup-unit-percentile{display:flex;align-items:baseline;gap:6px}
.matchup-unit-percentile strong{font-family:var(--font-ui);font-size:var(--type-metric);font-weight:700;color:var(--text-strong);font-variant-numeric:tabular-nums}
.matchup-unit-percentile small{font-family:var(--font-ui);font-size:var(--type-meta);color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
.matchup-card-takeaway{margin-top:10px;padding-top:10px;border-top:1px solid var(--line);font-family:var(--font-ui);font-size:var(--type-body);color:var(--muted);line-height:1.5}
/* Rushing Line Metrics (CFBD Line Yards family) */
.rlm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.rlm-card{background:#fff;border:1px solid var(--line);border-top:2px solid var(--line);border-radius:var(--radius);padding:12px 14px}
.rlm-card-label{font-family:var(--font-ui);font-size:var(--type-meta);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700;margin-bottom:8px;cursor:help}
.rlm-card-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:3px 0}
.rlm-card-row+.rlm-card-row{border-top:1px solid var(--line)}
.rlm-card-row-label{font-family:var(--font-ui);font-size:var(--type-meta);color:var(--muted)}
.rlm-card-primary{font-family:var(--font-ui);font-size:var(--type-metric);font-weight:700;color:var(--text-strong);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.rlm-card-row .national-context{align-items:flex-end;text-align:right}
.rlm-card-row .national-context-rank{max-width:100%;font-size:11px}
.matchup-unit-percentile .national-context{gap:2px}
.matchup-unit-percentile .national-context-percentile{font-size:var(--type-metric)}
.matchup-unit-percentile .national-context-rank{font-size:var(--type-meta);text-transform:none;letter-spacing:0}
.rlm-card-secondary{font-family:var(--font-ui);font-size:var(--type-body);font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}
.rlm-note{margin-top:12px;font-size:var(--type-body);color:var(--text);line-height:1.5;background:#fff;border:0;border-top:1px solid var(--line);border-radius:0;padding:9px 0}
.cs-card:hover{transform:none;box-shadow:none;border-color:var(--line-strong)}
.cs-card.active{background:var(--royal-wash);border-color:var(--royal);box-shadow:none}
.cs-label{font-family:var(--font-ui);font-size:var(--type-meta);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:8px;font-weight:700}
.cs-value{font-family:var(--font-ui);font-size:var(--type-metric);font-weight:700;color:var(--text-strong);font-variant-numeric:tabular-nums;margin-bottom:6px;letter-spacing:-.01em}
.cs-detail{margin-top:14px;background:#fff;border:0;border-top:1px solid var(--line);border-radius:0;padding:12px 0;box-shadow:none}
.cs-detail h3{margin-bottom:10px;font-size:15px}
.cs-detail .drive.cs-success{background:var(--green-wash);border-left:3px solid var(--green)}

/* Story — editorial stat-book styling scoped to this page only */
#story-view.workspace{grid-template-columns:minmax(0,1fr);gap:0;--bg-elevated:#FFFFFF;--bg-surface-2:#F7F9FC;--line:#D8E0EA;--line-strong:#B7C4D3;--text:#292D2F;--text-strong:#172126;--muted:#5F6465;--royal:#002E5D;--royal-light:#1D5F9E;background:#FFFFFF}
#story-view .story-intro{grid-column:1/-1;width:100%;display:grid;grid-template-columns:minmax(0,2.3fr) minmax(260px,1fr);gap:14px 32px;align-items:start;padding:12px 0 6px;margin:0 0 6px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none}
#story-view .story-intro-label{display:block;margin:0;color:var(--muted);font-family:var(--font-ui);font-size:var(--type-meta);line-height:1.3;letter-spacing:.13em;font-weight:800}
#story-view .story-intro p{margin:5px 0 0;color:var(--muted);font-family:var(--font-ui);font-size:var(--type-body);line-height:1.5}
@media(max-width:760px){#story-view .story-intro{grid-template-columns:minmax(0,1fr);gap:10px;padding:11px 0 6px;margin-bottom:6px}}
#story-view>.drive-column{width:100%;min-width:0}
#story-view>.drive-column>.section-heading{margin-bottom:12px;padding:0 0 7px;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0}
#story-view>.drive-column>.section-heading:not(:first-child){margin-top:24px!important}
#story-view>.drive-column>.section-heading h2{font-family:var(--font-ui)!important;font-size:var(--type-section-title);line-height:1.25;font-weight:700;letter-spacing:-.01em;color:var(--text-strong)}
#story-view .cs-grid{grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:0 14px;border-top:1px solid #D8E0EA}
#story-view .cs-card{display:flex;flex-direction:column;min-width:0;padding:10px 0;background:transparent;border:0;border-bottom:1px solid #D8E0EA;border-radius:0;box-shadow:none;transition:background-color .12s ease}
#story-view .cs-card:hover{transform:none;background:var(--royal-wash);box-shadow:none}
#story-view .cs-card.active{background:var(--royal-wash);border-color:var(--royal);border-bottom:2px solid var(--royal);box-shadow:none}
#story-view .cs-card:focus-visible{outline:2px solid var(--royal-light);outline-offset:2px}
#story-view .cs-label{margin-bottom:3px;font-family:var(--font-ui);font-size:var(--type-meta);letter-spacing:.06em;color:var(--muted)}
#story-view .cs-value{margin-bottom:3px;font-family:var(--font-ui);font-size:var(--type-metric);line-height:1.15;font-weight:700;letter-spacing:0;color:var(--text-strong)}
#story-view .cs-card .fine{line-height:1.4;color:var(--muted);font-family:var(--font-ui);font-size:var(--type-meta)}
/* Consolidated global tokens: clean white editorial system */
:root{--bg:#ffffff;--bg-elevated:#ffffff;--bg-surface-2:#f7f9fc;--line:#d8e0ea;--line-strong:#b7c4d3;--text:#292d2f;--text-strong:#172126;--muted:#5f6465;--muted-2:#7a8390;--royal:#002e5d;--royal-light:#1d5f9e;--royal-wash:#eef4fa;--green:#0f7a4a;--green-wash:#eef7f1;--red:#b4232f;--red-wash:#fbefef;--amber:#8a6100;--dark-neutral:#172126;--navy:var(--bg-elevated);--blue:var(--royal);--blue-light:var(--royal-wash);--ink:var(--text);--paper:var(--bg);--card:var(--bg-elevated);--radius:2px;--radius-sm:2px;--shadow:none;--shadow-lg:none;--content-max:1560px;--gutter-desktop:4%;--gutter-tablet:24px;--gutter-mobile:16px;--font-ui:-apple-system,BlinkMacSystemFont,'Segoe UI',Inter,Helvetica,Arial,sans-serif;--type-page-title:24px;--type-section-title:20px;--type-insight:16px;--type-subsection:14px;--type-body:14px;--type-meta:11px;--type-metric:25px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--control-height:40px;--table-font:12.5px;--table-cell-y:8px;--table-cell-x:10px}
*{box-sizing:border-box}
html,body{margin:0;background:#fff}
body{color:var(--text);font:14px/1.5 var(--font-ui);-webkit-font-smoothing:antialiased}
:where(body,body *){font-family:var(--font-ui)}
a{color:var(--royal-light);text-underline-offset:3px;text-decoration-thickness:1px}
button,input,select{font:inherit;min-height:var(--control-height);border:1px solid var(--line-strong);border-radius:var(--radius);padding:7px 10px;background:#fff;color:var(--text);max-width:100%;transition:border-color .15s,background .15s}
button{cursor:pointer;font-weight:600}
button:hover:not(:disabled),.button:hover{border-color:var(--royal);background:var(--royal-wash)}
button:disabled{opacity:.4;cursor:default}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--royal-light);outline-offset:2px;border-radius:var(--radius)}
label{display:block;font-size:var(--type-meta);letter-spacing:.04em;text-transform:uppercase;font-weight:700;margin-bottom:5px;color:var(--muted)}
h1,h2,h3,h4,p{margin:0}
h1{font-size:var(--type-page-title);line-height:1.2;letter-spacing:-.02em;font-weight:700;color:var(--text-strong)}
h2{font-size:var(--type-section-title);line-height:1.25;font-weight:700;letter-spacing:-.01em;color:var(--text-strong)}
h3{font-size:var(--type-subsection);line-height:1.3;font-weight:700;color:var(--text-strong)}
p{font-size:var(--type-body);line-height:1.5}
p+p{margin-top:10px}
.mast{background:#fff;color:var(--text-strong);min-height:72px;display:flex;align-items:center;justify-content:space-between;padding:12px 4%;gap:20px;border-bottom:1px solid var(--line);box-shadow:none}
.brand{display:flex;flex-direction:column;align-items:flex-start;gap:3px}
.mast .brand h1{margin:0;font-family:var(--font-ui);font-size:var(--type-page-title);line-height:1.1;letter-spacing:-.025em;font-weight:700;color:var(--text-strong)}
.eyebrow{font-family:var(--font-ui);font-size:var(--type-meta);letter-spacing:.14em;font-weight:800}
.mast .eyebrow{color:var(--muted)}
.mast nav{display:flex;align-items:center;gap:0;font-family:var(--font-ui);font-size:var(--type-meta)}
.mast a{color:var(--royal);font-size:var(--type-meta);font-weight:600;text-decoration:none;border-left:1px solid var(--line);margin-left:14px;padding-left:14px}
.mast a:hover{text-decoration:underline}
.status{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;background:transparent;padding:0;border-radius:0;border:0;font-weight:500;font-size:var(--type-meta);color:var(--muted)}
.status:before{content:'';height:7px;width:7px;flex:0 0 7px;background:var(--amber);border-radius:50%;box-shadow:none}
.status.connected:before{background:var(--green);box-shadow:none}
main{max-width:var(--content-max);margin:auto;padding:0 var(--gutter-desktop) 48px;background:#fff}
.toolbar{display:flex;gap:12px;align-items:flex-end;padding:12px 0 14px}
.toolbar label{margin-bottom:4px;font-size:var(--type-meta);letter-spacing:.08em;color:var(--muted)}
.toolbar #season{width:92px}
.game-picker{max-width:430px;flex:1}
.game-picker select{width:100%}
.muted{color:var(--muted);font-size:var(--type-meta)}
#updated{margin-left:auto;align-self:center;color:var(--muted-2)}
.notice{padding:7px 11px;border:1px solid #f0dca6;background:#fdf6e3;border-radius:var(--radius);color:var(--muted);font-size:12px;margin-bottom:14px;box-shadow:none}
.notice.good{background:var(--green-wash);color:var(--green);border-color:#c9dfd0}
.view-tabs{display:flex;gap:0;background:#fff;border-bottom:1px solid var(--line);margin:0;overflow-x:auto;padding:8px 4%;position:sticky;top:0;z-index:20;box-shadow:none}
.view-tabs button{background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0;padding:8px 12px;min-height:38px;font-weight:600;font-size:13px;color:var(--muted);white-space:nowrap;flex:0 0 auto;transition:background .12s,color .12s}
.view-tabs button:hover:not(.active){background:var(--royal-wash);color:var(--text)}
.view-tabs button.active{color:var(--royal);background:transparent;border-bottom-color:var(--royal);box-shadow:none}
.subnav{display:flex;gap:0;background:#fff;border-bottom:1px solid var(--line);margin:0;overflow-x:auto;padding:6px 4%;border-radius:0;box-shadow:none}
.subnav button{background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0;padding:7px 11px;min-height:32px;font-weight:600;font-size:12px;color:var(--muted);white-space:nowrap;flex:0 0 auto;transition:background .12s,color .12s}
.subnav button:hover:not(.active){background:var(--royal-wash);color:var(--text)}
.subnav button.active{color:var(--royal);background:transparent;border-bottom-color:var(--royal)}
.mini-scoreboard{display:flex;align-items:center;gap:10px;background:#0a0a0a;border:1px solid #252525;border-radius:4px;padding:4px 9px;font-family:var(--font-ui);box-shadow:none;flex:0 1 auto;white-space:nowrap;min-width:0}
.mini-scoreboard-team{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}
.mini-scoreboard-score{display:inline-flex;align-items:center;color:#ffb000;font-size:22px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
.mini-scoreboard-score-matrix{display:inline-flex;align-items:center;gap:8px;position:relative}
.score-bulb-digit{display:grid;grid-template-columns:repeat(3,3px);grid-template-rows:repeat(5,3px);gap:2px}
.score-bulb{width:3px;height:3px;border-radius:50%}
.score-bulb.is-lit{background:#ffb000;box-shadow:0 0 3px #ffb000}
.score-bulb.is-off{background:#353535}
.mini-scoreboard-score-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.mini-scoreboard-team:last-child .mini-scoreboard-score{order:0}
.mini-scoreboard-team:last-child .mini-scoreboard-label{order:0;color:#dedede}
.mini-scoreboard-clock{display:flex;flex-direction:row;align-items:baseline;gap:7px;padding:0 10px;border-left:1px solid #535353;border-right:1px solid #535353}
.mini-scoreboard-clock span{color:#d0d0d0}
.mini-scoreboard-clock #mini-scoreboard-period{font-family:var(--font-ui);font-size:var(--type-meta);font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.mini-scoreboard-clock #mini-scoreboard-time{font-family:var(--font-ui);font-size:var(--type-body);font-weight:600;font-variant-numeric:tabular-nums}
.scoreboard{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:22px 32px;background:#fff;border-radius:var(--radius);border:1px solid var(--line);border-top:2px solid var(--line);margin-bottom:24px;box-shadow:none}
.score-team{display:flex;align-items:center;gap:20px;min-width:0}
.score-team:last-child{flex-direction:row-reverse}
.score-team small{font-family:var(--font-ui);font-weight:700;font-size:var(--type-insight);line-height:1.2;overflow-wrap:anywhere;letter-spacing:-.01em;color:var(--text-strong)}
.score-team strong{font-family:var(--font-ui);font-size:40px;line-height:1;font-variant-numeric:tabular-nums;color:var(--text-strong);font-weight:800}
.game-state{text-align:center;padding:0 22px;min-width:150px}
.game-state h2{margin:4px 0;color:var(--text-strong)!important}
.game-state p{color:var(--muted);font-size:var(--type-body)}
.workspace{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:28px}
.section-heading{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:12px;padding:0 0 7px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none}
.filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px}
.filters-stacked{margin-top:10px}
.filters-inline{align-items:center}
.filters>div{flex:1;min-width:130px}
.filters .search-field{flex-basis:100%}
.filters select,.filters input{width:100%}
.filters #clear{font-family:var(--font-ui);font-size:var(--type-meta);min-height:36px;padding:6px 12px}
.list-caption{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 0;font-family:var(--font-ui);font-size:var(--type-meta);color:var(--muted)}
.list-caption button{min-height:36px;font-family:var(--font-ui);font-size:var(--type-meta)}
.empty{border:1px dashed var(--line-strong);background:#fff;border-radius:var(--radius);padding:28px 20px}
.empty h3{font-family:var(--font-ui);font-size:var(--type-subsection);line-height:1.3;font-weight:700;color:var(--text-strong)}
.empty p{max-width:560px;color:var(--muted);font-family:var(--font-ui);font-size:var(--type-body);margin:8px 0 20px}
.button{display:inline-block;padding:10px 18px;text-decoration:none;border-radius:var(--radius);font-weight:600}
.primary{background:var(--royal);border-color:var(--royal);color:#fff;box-shadow:none}
.primary:hover:not(:disabled){background:var(--royal-light);border-color:var(--royal-light)}
aside{padding-left:0}
.side-section{padding:20px 22px;margin-bottom:18px;border-radius:var(--radius);background:#fff;border:1px solid var(--line);box-shadow:none}
.side-section h2{margin:2px 0 12px}
.side-section h3{margin-bottom:10px}
.side-section p,.side-section a{font-family:var(--font-ui);font-size:var(--type-body)}
.side-section p{color:var(--muted)}
dl{margin:0 0 14px}
dl>div{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:10px 0}
dt{font-family:var(--font-ui);color:var(--muted);font-size:var(--type-body)}
dd{margin:0;font-family:var(--font-ui);font-size:var(--type-insight);font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-strong)}
.fine{font-family:var(--font-ui);font-size:var(--type-meta)!important;color:var(--muted)}
.cs-context{color:var(--muted)}
.drive{background:#fff;border:0;border-bottom:1px solid var(--line);margin-bottom:0;border-radius:0;overflow:hidden;box-shadow:none}
.drive summary{cursor:pointer;padding:10px 0;list-style:none;display:grid;grid-template-columns:20px minmax(90px,1fr) minmax(100px,1fr) auto;gap:12px;align-items:center;transition:background .12s}
.drive summary:hover{background:var(--bg-surface-2)}
.drive summary:before{content:'+';font-size:19px;color:var(--royal-light);font-weight:700}
.drive[open] summary:before{content:'−'}
.drive summary small{display:block;font-family:var(--font-ui);font-size:var(--type-meta);color:var(--muted);font-weight:400}
.drive summary strong{font-family:var(--font-ui);font-size:var(--type-body);color:var(--text-strong)}
.result{text-align:right;font-family:var(--font-ui);font-weight:700;font-size:var(--type-meta);color:var(--text)}
.result.score{color:var(--green)}
.drive-meta{padding:8px 0;background:#fff;border-top:1px solid var(--line);font-family:var(--font-ui);font-size:var(--type-meta);color:var(--muted)}
.plays{width:100%;border-collapse:collapse;font-family:var(--font-ui);font-size:12.5px}
.plays td{padding:8px 10px;vertical-align:top;border-top:1px solid var(--line);font-family:var(--font-ui);font-size:12.5px;color:var(--text)}
.plays td:first-child{white-space:nowrap;font-variant-numeric:tabular-nums}
.plays small{display:block;color:var(--muted);font-family:var(--font-ui);font-size:var(--type-meta)}
.yards{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--text-strong)}
.play-type{color:var(--royal-light);font-family:var(--font-ui);font-weight:600;font-size:var(--type-meta);display:block;margin-bottom:3px}
.cs-table{width:100%;border-collapse:collapse;margin-top:8px;font-family:var(--font-ui);font-size:12.5px}
.cs-table th,.cs-table td{padding:7px 10px;text-align:left;border-bottom:1px solid var(--line)}
.cs-table th{font-family:var(--font-ui);font-size:var(--type-meta);font-weight:700;color:var(--muted);background:#F7F9FC;border-bottom-color:var(--line)}
#drive-chart-report,#player-chart-report,#opponent-key-players,#opponent-head-to-head,#opponent-snapshot:has(>p.muted),#opponent-trends:has(>p.muted),#opponent-weaknesses:has(>p.muted),#opponent-key-players:has(>p.muted:only-child){background:#fff;border:0;border-radius:0;padding:12px 0;border-bottom:1px solid var(--line);box-shadow:none}
#drive-chart-report th,#player-chart-report th{font-family:var(--font-ui);font-size:var(--type-meta)}
#drive-chart-report td,#player-chart-report td{font-family:var(--font-ui);font-size:12.5px}
.table-scroll{overflow-x:auto;border-radius:0;box-shadow:none}
table.efficiency{width:100%;min-width:0;border-collapse:collapse;font-family:var(--font-ui);font-size:11px;background:#fff;table-layout:fixed}
.plays th,table.box th,table.efficiency th,.stat-table th{background:#F7F9FC;color:var(--muted);text-align:left;font-family:var(--font-ui);font-size:var(--type-meta);font-weight:700;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--line)}
.plays th{font-family:var(--font-ui);font-size:var(--type-meta);padding:8px 10px;background:#F7F9FC;color:var(--muted);border-bottom:1px solid var(--line)}
table.box th{font-family:var(--font-ui);font-size:var(--type-meta);padding:7px 8px}
table.efficiency th{font-family:var(--font-ui);font-size:var(--type-meta);padding:7px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-bottom:1px solid var(--line)}
.stat-table th{text-align:left;font-family:var(--font-ui);font-size:var(--type-meta);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-weight:700;padding:8px 10px;border-bottom:1px solid var(--line)}
table.efficiency td{padding:7px 6px;border-top:1px solid var(--line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text);font-family:var(--font-ui);font-size:11px}
table.efficiency th:first-child,table.efficiency td:first-child{width:15%}
table.efficiency tr.team-header td{background:var(--royal-wash);font-weight:700;border-top:2px solid var(--royal)}
table.efficiency tr.totals td{font-weight:700;border-top:2px solid var(--line)}
.drive-row{padding:8px 0;font-family:var(--font-ui);font-size:var(--type-body);border-bottom:1px solid var(--line)}
.drive-row:last-child{border-bottom:none}
.drive-row-top{display:flex;justify-content:space-between;gap:8px;margin-bottom:5px}
.drive-row-label{font-family:var(--font-ui);font-size:var(--type-body);font-weight:600;color:var(--text)}
.drive-row-meta{font-family:var(--font-ui);font-size:var(--type-meta);color:var(--muted);white-space:nowrap}
.drive-row-bar{display:flex;height:13px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;width:100%}
.bar-yards{background:var(--royal);display:inline-block;height:100%}
.bar-remaining{background:var(--line-strong);display:inline-block;height:100%}
.chart-legend{display:flex;flex-wrap:wrap;gap:14px;align-items:center;font-family:var(--font-ui);font-size:var(--type-meta);color:var(--muted);margin-top:10px}
.chart-legend span{display:inline-block;width:10px;height:10px;border-radius:var(--radius);margin-right:5px;vertical-align:middle}
.ay-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-top:14px}
.ay-row:first-child{margin-top:0}
.ay-label{font-family:var(--font-ui);font-size:var(--type-body);font-weight:600;color:var(--text)}
.ay-label small{display:block;font-family:var(--font-ui);font-weight:400;color:var(--muted);font-size:var(--type-meta);text-transform:none;letter-spacing:0}
.ay-value{font-family:var(--font-ui);font-size:var(--type-metric);font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-strong);white-space:nowrap}
.ay-bar{height:8px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin-top:5px}
.ay-bar span{display:block;height:100%;background:var(--royal)}
.ay-net{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.player-row{padding:8px 0;font-family:var(--font-ui);font-size:var(--type-body);border-bottom:1px solid var(--line)}
.player-row:last-child{border-bottom:none}
.player-row-top{display:flex;justify-content:space-between;gap:8px;margin-bottom:5px}
.player-row-name{font-family:var(--font-ui);font-size:var(--type-body);font-weight:600;color:var(--text)}
.player-row-name small{display:block;font-family:var(--font-ui);font-weight:400;color:var(--muted);font-size:var(--type-meta)}
.player-row-value{font-family:var(--font-ui);font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-strong);white-space:nowrap}
.player-row-bar{height:10px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.player-row-bar span{display:block;height:100%;background:var(--royal)}
#box-score-view.workspace{--bg-elevated:#fff;--bg-surface-2:#F7F9FC;--line:#D8E0EA;--line-strong:#B7C4D3;--text:#292d2f;--text-strong:#172126;--muted:#5f6465;--royal:#002E5D;--royal-light:#1D5F9E;grid-template-columns:minmax(0,1fr)}
#box-score-view>.drive-column{min-width:0}
#final-box-score-subnav{display:flex;gap:0;align-items:stretch;background:#fff;border:0;border-bottom:1px solid var(--line);border-radius:0;margin:0;overflow-x:auto;padding:4px 4%;box-shadow:none}
#final-box-score-subnav button{min-height:32px;padding:6px 10px;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--muted);font-family:var(--font-ui);font-size:var(--type-meta);font-weight:600;white-space:nowrap;flex:0 0 auto;transition:background .12s,color .12s}
#final-box-score-subnav button:hover:not(.active){background:var(--royal-wash);color:var(--text)}
#final-box-score-subnav button.active{color:var(--royal);background:transparent;border-bottom-color:var(--royal)!important;box-shadow:none}
#box-score-view #box-score-score{font-family:var(--font-ui);font-size:var(--type-metric);line-height:1.05;font-weight:700;letter-spacing:.025em;font-variant-numeric:tabular-nums;color:var(--text-strong)}
#box-score-view .box-team h3{font-size:var(--type-subsection)}
#box-score-view .box-team h4{font-size:var(--type-meta)}
#box-score-view .box-score-header{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,auto) minmax(0,1fr);align-items:center;gap:20px;padding:16px 0 17px;margin:0 0 20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
#box-score-view .box-score-side{display:flex;flex-direction:column;gap:3px;min-width:0}
#box-score-view .box-score-home{text-align:right;align-items:flex-end}
.box-score-side-label,.box-score-status{font-family:var(--font-ui);font-size:var(--type-meta);line-height:1.3;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
#box-score-view .box-score-team-name{font-family:var(--font-ui);font-size:var(--type-insight);line-height:1.15;font-weight:700;overflow-wrap:anywhere;color:var(--text-strong)}
#box-score-view .box-score-final{text-align:center;white-space:nowrap}
#box-score-view #box-score-score{font-family:var(--font-ui);font-size:var(--type-metric);line-height:1.05;font-weight:700;letter-spacing:.025em;font-variant-numeric:tabular-nums;color:var(--text-strong)}
.box-score-meta{margin-top:5px;font-family:var(--font-ui);font-size:var(--type-meta);line-height:1.4;color:var(--muted)}
#box-score-view .box-score-teams{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;align-items:start}
#box-score-view .box-team{min-width:0;margin:0 0 18px}
#box-score-view .box-team h3{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:0 0 8px;margin:0 0 12px;border-bottom:1px solid var(--line);font-family:var(--font-ui);font-size:var(--type-subsection);line-height:1.2;font-weight:700;color:var(--text-strong)}
#box-score-view .box-team-score{flex:0 0 auto;font:700 var(--type-meta)/1.2 var(--font-ui);letter-spacing:.02em;color:var(--muted);font-variant-numeric:tabular-nums}
#box-score-view .box-team h4{margin:16px 0 0;padding:5px 0;background:#F7F9FC;border-bottom:1px solid var(--line);font-family:var(--font-ui);font-size:var(--type-subsection);line-height:1.3;font-weight:700;text-transform:capitalize;color:var(--text-strong)}
#box-score-view .box-table-wrap{min-width:0;overflow-x:auto;overscroll-behavior-x:contain}
#box-score-view table.box{width:100%;min-width:max-content;border-collapse:collapse;border-radius:0;overflow:visible;box-shadow:none;background:#fff;font-family:var(--font-ui);font-size:12.5px;font-variant-numeric:tabular-nums}
#box-score-view table.box th{padding:7px 8px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap;background:#F7F9FC;color:var(--muted);font-size:var(--type-meta);letter-spacing:.04em}
#box-score-view table.box th:first-child{text-align:left;min-width:116px}
#box-score-view table.box td{padding:6px 8px;border-top:1px solid var(--line);text-align:right;white-space:nowrap;color:var(--text);font-family:var(--font-ui);font-size:12.5px}
#box-score-view table.box td:first-child{text-align:left;font-weight:600;color:var(--text-strong)}
#box-score-view table.box tbody tr:last-child td{border-bottom:1px solid var(--line)}
#box-score-view .box-table-wrap:focus-visible{outline:2px solid var(--royal-light);outline-offset:2px}
.player-search-summary{display:flex;flex-wrap:wrap;gap:22px;padding:16px 0;margin-bottom:8px}
.ps-stat{display:flex;flex-direction:column}
.ps-stat strong{font-family:var(--font-ui);font-size:var(--type-metric);font-weight:700;color:var(--text-strong);font-variant-numeric:tabular-nums}
.ps-stat span{font-family:var(--font-ui);font-size:var(--type-meta);color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.cs-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}
.cs-grid-primary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.cs-section-label{margin:22px 0 10px;font-family:var(--font-ui);font-size:var(--type-meta);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.cs-section-label-supporting{margin-top:22px}
.cs-grid-supporting{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.cs-grid-supporting .cs-card{padding:12px 0;box-shadow:none;border:0;border-bottom:1px solid var(--line);border-top:1px solid var(--line);border-radius:0;background:#fff}
.cs-grid-supporting .cs-value{font-family:var(--font-ui);font-size:var(--type-insight)}
.cs-detail-line{font-family:var(--font-ui);font-size:var(--type-meta);color:var(--muted);margin:2px 0 12px}
.cs-fbs-line{font-family:var(--font-ui);font-size:var(--type-meta);color:var(--muted);margin:8px 0 0;padding-top:8px;border-top:1px solid var(--line)}
.cs-baseline{background:#fff;border:0;border-top:1px solid var(--line);border-radius:0;padding:7px 0;margin-top:2px}
.cs-baseline-label{font-family:var(--font-ui);font-size:var(--type-meta);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:3px}
.cs-baseline-value{font-family:var(--font-ui);font-size:var(--type-insight);font-weight:700;color:var(--text-strong);font-variant-numeric:tabular-nums;line-height:1.2}
.cs-baseline-comparison{font-family:var(--font-ui);font-size:var(--type-meta);font-weight:600;margin:4px 0 0;color:var(--text)}
.cs-baseline-rank{font-family:var(--font-ui);font-size:var(--type-meta);color:var(--muted);margin:2px 0 0}
.cs-baseline-empty{font-family:var(--font-ui);font-size:var(--type-body);color:var(--muted);margin:0}
.cs-baseline-arrow{font-weight:800;margin-right:2px}
.cs-baseline-arrow.cs-good{color:var(--green)}
.cs-baseline-arrow.cs-bad{color:var(--red)}
.game-flow-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:16px}
.game-flow-item{background:#fff;border:1px solid var(--line);border-left:2px solid var(--line);border-radius:var(--radius);padding:14px 16px;cursor:pointer;box-shadow:none;transition:border-color .15s,background-color .15s}
.game-flow-item:hover{transform:none;box-shadow:none;border-color:var(--royal)}
.game-flow-item.active{background:var(--royal-wash);border-color:var(--royal);box-shadow:none}
.game-flow-item.game-flow-negative{border-left-color:var(--red)}
.questions-evidence{margin:10px 0 0;padding-left:20px;font-family:var(--font-ui);font-size:var(--type-body);color:var(--text)}
.questions-evidence li{margin-bottom:4px;font-family:var(--font-ui);font-variant-numeric:tabular-nums}
.questions-layer{margin-top:12px;padding-top:9px;border-top:1px solid var(--line)}
.questions-layer h4{margin:0 0 4px;color:var(--muted);font-family:var(--font-ui);font-size:var(--type-meta);letter-spacing:.04em;text-transform:uppercase}
.questions-layer p{margin:4px 0 0;font-family:var(--font-ui);font-size:var(--type-body);line-height:1.5;color:var(--text)}
.questions-connected{border-left:2px solid var(--royal);padding-left:10px}
.questions-counterpoint{border-left:2px solid var(--line-strong);padding-left:10px}
.questions-related{margin-top:10px;color:var(--muted);font-family:var(--font-ui);font-size:var(--type-meta)}
.game-flow-headline{font-family:var(--font-ui);font-weight:700;font-size:var(--type-insight);line-height:1.35;color:var(--text-strong);margin-bottom:6px;letter-spacing:0}
.game-flow-negative .game-flow-headline{color:var(--red)}
.game-flow-statement{font-family:var(--font-ui);font-size:var(--type-body);color:var(--muted);margin:0;line-height:1.5}
.stat-table{width:100%;border-collapse:collapse;background:#fff;border:0;border-radius:0;box-shadow:none;overflow:hidden;margin-bottom:18px}
.stat-table th{text-align:left;font-family:var(--font-ui);font-size:var(--type-meta);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-weight:700;padding:8px 10px;border-bottom:1px solid var(--line)}
.stat-table td{padding:8px 10px;border-bottom:1px solid var(--line);font-family:var(--font-ui);font-size:12.5px;font-variant-numeric:tabular-nums;color:var(--text)}
.stat-table tr:last-child td{border-bottom:none}
.national-context{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;line-height:1.25}
.national-context-percentile{font-size:14px;font-weight:700;color:var(--text-strong);font-variant-numeric:tabular-nums;white-space:nowrap}
.national-context-rank{display:block;font-size:11px;font-weight:400;color:var(--muted);line-height:1.35;white-space:normal}
.stat-table td .national-context-percentile{font-size:13px}
.stat-table td .national-context-rank{font-size:11px}
@media(max-width:760px){.stat-table td .national-context-rank{font-size:11px;white-space:normal}}
.stat-table td:first-child{color:var(--text-strong);font-weight:600}
.stat-table td:nth-child(2){font-weight:700;color:var(--text-strong)}
.stat-table td.stat-table-flag{color:var(--red);font-weight:600}
.stat-table tbody tr:hover{background:var(--royal-wash)}
.cs-card{background:#fff;border:1px solid var(--line);border-top:2px solid var(--line);border-radius:var(--radius);padding:14px;cursor:pointer;box-shadow:none;transition:border-color .15s,background-color .15s}
.cs-card-weakness{border-top-color:var(--line);cursor:default}
.matchup-row{display:flex;align-items:stretch;gap:12px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:none;padding:14px 16px;margin-bottom:12px}
.matchup-side{flex:1;display:flex;flex-direction:column;gap:4px;padding:6px 10px;border-radius:var(--radius)}
.matchup-side small{color:var(--muted);font-family:var(--font-ui);font-size:var(--type-meta);text-transform:uppercase;letter-spacing:.03em}
.matchup-side strong{font-family:var(--font-ui);font-size:var(--type-insight);color:var(--text-strong);font-variant-numeric:tabular-nums}
.matchup-side.matchup-edge{background:var(--royal-wash);border:1px solid var(--royal)}
.matchup-side.matchup-edge strong{color:var(--royal-light)}
.matchup-vs{align-self:center;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase}
.matchup-advantage-tag{display:inline-block;margin-top:2px;background:var(--royal);color:#fff;font-family:var(--font-ui);font-size:var(--type-meta);font-weight:700;letter-spacing:.04em;padding:2px 7px;border-radius:var(--radius);align-self:flex-start}
.matchup-card{background:#fff;border:1px solid var(--line);border-left:2px solid var(--line);border-radius:var(--radius);box-shadow:none;padding:12px 14px;margin-bottom:12px}
.matchup-card-offense{border-left-color:var(--royal)}
.matchup-card-defense{border-left-color:var(--green)}
.matchup-card-even{border-left-color:var(--muted-2)}
.matchup-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.matchup-card-title{font-family:var(--font-ui);font-size:var(--type-insight);font-weight:700;color:var(--text-strong)}
.matchup-metric-note{font-family:var(--font-ui);font-weight:400;color:var(--muted);font-size:var(--type-meta)}
.matchup-card-edge{font-family:var(--font-ui);font-size:var(--type-meta);font-weight:700;letter-spacing:.04em;padding:2px 7px;border-radius:var(--radius);background:#fff;border:1px solid var(--line);color:var(--muted);white-space:nowrap}
.matchup-card-offense .matchup-card-edge{background:var(--royal-wash);border-color:var(--royal);color:var(--royal)}
.matchup-card-defense .matchup-card-edge{background:#fff;border-color:var(--line);color:var(--muted)}
.matchup-card-body{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.matchup-unit{display:flex;flex-direction:column;gap:4px}
.matchup-unit-header{display:flex;justify-content:space-between;align-items:baseline;gap:6px}
.matchup-unit-header small{color:var(--muted);font-family:var(--font-ui);font-size:var(--type-meta);text-transform:uppercase;letter-spacing:.04em;font-weight:700}
.matchup-unit-header span{font-family:var(--font-ui);font-size:var(--type-meta);color:var(--text);font-weight:600}
.matchup-unit-percentile{font-family:var(--font-ui);font-size:var(--type-insight);font-weight:700;color:var(--text-strong)}
.matchup-support{margin-top:2px;display:flex;flex-direction:column;gap:2px}
.matchup-support-row{display:flex;justify-content:space-between;gap:8px;font-family:var(--font-ui);font-size:var(--type-meta);color:var(--muted)}
.matchup-support-row strong{font-family:var(--font-ui);color:var(--text);font-weight:600;font-variant-numeric:tabular-nums}
.opp-hero{background:#fff;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:12px 0;margin-bottom:14px;box-shadow:none}
.opp-hero-eyebrow{display:block;font-family:var(--font-ui);font-size:var(--type-meta);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.opp-hero-title{margin:4px 0 2px;font-family:var(--font-ui);font-size:var(--type-page-title);line-height:1.25;font-weight:700;color:var(--text-strong)}
.opp-hero-sub{margin:0 0 10px;color:var(--muted);font-family:var(--font-ui);font-size:var(--type-body)}
.opp-hero-stats{display:flex;gap:18px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:10px}
.opp-hero-stat{display:flex;flex-direction:column;gap:2px}
.opp-hero-stat-label{font-family:var(--font-ui);font-size:var(--type-meta);font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.opp-hero-stat-value{font-family:var(--font-ui);font-size:var(--type-metric);font-weight:700;color:var(--text-strong);font-variant-numeric:tabular-nums}
.opp-hero-stat-note{font-family:var(--font-ui);font-size:var(--type-meta);color:var(--muted)}
.matchup-section-header{display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:0 0 7px;margin:20px 0 12px;background:transparent;color:var(--text-strong)}
.matchup-section-header h3{margin:0;font-family:var(--font-ui);font-size:var(--type-section-title);font-weight:700;color:var(--text-strong)}
.matchup-section-header p{margin:2px 0 0;font-family:var(--font-ui);font-size:var(--type-body);color:var(--muted);opacity:1}
.matchup-section-note{font-family:var(--font-ui);font-size:var(--type-meta);color:var(--muted);opacity:1;white-space:normal;text-align:right}
.matchup-section-header-byu,.matchup-section-header-opp{background:transparent}
.matchup-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.matchup-card-body{display:grid;grid-template-columns:1fr auto 1fr;align-items:start;gap:10px}
.matchup-card-vs{align-self:center;font-family:var(--font-ui);font-size:var(--type-meta);font-weight:700;color:var(--muted);letter-spacing:.05em}
.matchup-unit-percentile{display:flex;align-items:baseline;gap:6px}
.matchup-unit-percentile strong{font-family:var(--font-ui);font-size:var(--type-metric);font-weight:700;color:var(--text-strong);font-variant-numeric:tabular-nums}
.matchup-unit-percentile small{font-family:var(--font-ui);font-size:var(--type-meta);color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
.matchup-card-takeaway{margin-top:10px;padding-top:10px;border-top:1px solid var(--line);font-family:var(--font-ui);font-size:var(--type-body);color:var(--muted);line-height:1.5}
.rlm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.rlm-card{background:#fff;border:1px solid var(--line);border-top:2px solid var(--line);border-radius:var(--radius);padding:12px 14px}
.rlm-card-label{font-family:var(--font-ui);font-size:var(--type-meta);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700;margin-bottom:8px;cursor:help}
.rlm-card-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:3px 0}
.rlm-card-row+.rlm-card-row{border-top:1px solid var(--line)}
.rlm-card-row-label{font-family:var(--font-ui);font-size:var(--type-meta);color:var(--muted)}
.rlm-card-primary{font-family:var(--font-ui);font-size:var(--type-metric);font-weight:700;color:var(--text-strong);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.rlm-card-row .national-context{align-items:flex-end;text-align:right}
.rlm-card-row .national-context-rank{max-width:100%;font-size:11px}
.matchup-unit-percentile .national-context{gap:2px}
.matchup-unit-percentile .national-context-percentile{font-size:var(--type-metric)}
.matchup-unit-percentile .national-context-rank{font-size:var(--type-meta);text-transform:none;letter-spacing:0}
.rlm-card-secondary{font-family:var(--font-ui);font-size:var(--type-body);font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}
.rlm-note{margin-top:12px;font-size:var(--type-body);color:var(--text);line-height:1.5;background:#fff;border:0;border-top:1px solid var(--line);border-radius:0;padding:9px 0}
.cs-card:hover{transform:none;box-shadow:none;border-color:var(--line-strong)}
.cs-card.active{background:var(--royal-wash);border-color:var(--royal);box-shadow:none}
.cs-label{font-family:var(--font-ui);font-size:var(--type-meta);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:8px;font-weight:700}
.cs-value{font-family:var(--font-ui);font-size:var(--type-metric);font-weight:700;color:var(--text-strong);font-variant-numeric:tabular-nums;margin-bottom:6px;letter-spacing:-.01em}
.cs-detail{margin-top:14px;background:#fff;border:0;border-top:1px solid var(--line);border-radius:0;padding:12px 0;box-shadow:none}
.cs-detail h3{margin-bottom:10px;font-size:15px}
.cs-detail .drive.cs-success{background:var(--green-wash);border-left:3px solid var(--green)}
#story-view.workspace{grid-template-columns:minmax(0,1fr);gap:0;--bg-elevated:#FFFFFF;--bg-surface-2:#F7F9FC;--line:#D8E0EA;--line-strong:#B7C4D3;--text:#292D2F;--text-strong:#172126;--muted:#5F6465;--royal:#002E5D;--royal-light:#1D5F9E;background:#FFFFFF}
.story-intro{grid-column:1/-1;width:100%;display:grid;grid-template-columns:minmax(0,2.3fr) minmax(260px,1fr);gap:14px 32px;align-items:start;padding:12px 0 6px;margin:0 0 6px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none}
.story-intro-label{display:block;margin:0;color:var(--muted);font-family:var(--font-ui);font-size:var(--type-meta);line-height:1.3;letter-spacing:.13em;font-weight:800}
.story-intro p{margin:5px 0 0;color:var(--muted);font-family:var(--font-ui);font-size:var(--type-body);line-height:1.5}
@media(max-width:760px){.story-intro{grid-template-columns:minmax(0,1fr);gap:10px;padding:11px 0 6px;margin-bottom:6px}}
#story-view>.drive-column{width:100%;min-width:0}
#story-view>.drive-column>.section-heading{margin-bottom:12px;padding:0 0 7px;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0}
#story-view>.drive-column>.section-heading:not(:first-child){margin-top:24px!important}
#story-view>.drive-column>.section-heading h2{font-family:var(--font-ui)!important;font-size:var(--type-section-title);line-height:1.25;font-weight:700;letter-spacing:-.01em;color:var(--text-strong)}
#story-view .cs-grid{grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:0 14px;border-top:1px solid #D8E0EA}
#story-view .cs-card{display:flex;flex-direction:column;min-width:0;padding:10px 0;background:transparent;border:0;border-bottom:1px solid #D8E0EA;border-radius:0;box-shadow:none;transition:background-color .12s ease}
#story-view .cs-card:hover{transform:none;background:var(--royal-wash);box-shadow:none}
#story-view .cs-card.active{background:var(--royal-wash);border-color:var(--royal);border-bottom:2px solid var(--royal);box-shadow:none}
#story-view .cs-card:focus-visible{outline:2px solid var(--royal-light);outline-offset:2px}
#story-view .cs-label{margin-bottom:3px;font-family:var(--font-ui);font-size:var(--type-meta);letter-spacing:.06em;color:var(--muted)}
#story-view .cs-value{margin-bottom:3px;font-family:var(--font-ui);font-size:var(--type-metric);line-height:1.15;font-weight:700;letter-spacing:0;color:var(--text-strong)}
#story-view .cs-card .fine{line-height:1.4;color:var(--muted);font-family:var(--font-ui);font-size:var(--type-meta)}
#story-view .cs-detail{margin-top:12px;padding:12px 0;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none}
#story-view .cs-detail h3{margin-bottom:10px;padding-bottom:7px;border-bottom:1px solid var(--line);font-family:var(--font-ui);font-size:var(--type-subsection);line-height:1.3;font-weight:700;color:var(--text-strong)}
#story-view .cs-detail .drive{margin-bottom:0;border:0;border-bottom:1px solid #D8E0EA;border-radius:0;background:transparent;box-shadow:none}

#story-view .cs-detail{margin-top:12px;padding:12px 0;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none}
body:has(#tab-story.active, #tab-box-score.active, #tab-critical-stats.active, #tab-splits.active, #tab-questions.active, #tab-opponent-preview.active) .toolbar{gap:12px;padding:12px 0 14px}
body:has(#tab-story.active, #tab-box-score.active, #tab-critical-stats.active, #tab-splits.active, #tab-questions.active, #tab-opponent-preview.active) .toolbar label{margin-bottom:4px;font-family:var(--font-ui);font-size:var(--type-meta);letter-spacing:.08em;color:var(--muted)}
body:has(#tab-story.active, #tab-box-score.active, #tab-critical-stats.active, #tab-splits.active, #tab-questions.active, #tab-opponent-preview.active) .toolbar input,body:has(#tab-story.active, #tab-box-score.active, #tab-critical-stats.active, #tab-splits.active, #tab-questions.active, #tab-opponent-preview.active) .toolbar select,body:has(#tab-story.active, #tab-box-score.active, #tab-critical-stats.active, #tab-splits.active, #tab-questions.active, #tab-opponent-preview.active) .toolbar button{min-height:var(--control-height);padding:7px 10px;border:1px solid var(--line-strong);border-radius:var(--radius);background:#fff;font-family:var(--font-ui);font-size:13px}
body:has(#tab-story.active, #tab-box-score.active, #tab-critical-stats.active, #tab-splits.active, #tab-questions.active, #tab-opponent-preview.active) .toolbar #refresh{padding:7px 12px;background:#fff;color:var(--text);font-size:13px;font-weight:600}
body:has(#tab-story.active, #tab-box-score.active, #tab-critical-stats.active, #tab-splits.active, #tab-questions.active, #tab-opponent-preview.active) .toolbar #refresh:hover:not(:disabled){background:var(--royal-wash);border-color:var(--royal);color:var(--royal)}
#notice{padding:7px 11px;margin-bottom:14px;border-radius:var(--radius);font-family:var(--font-ui);font-size:12px;line-height:1.4;box-shadow:none}
body:has(#tab-story.active, #tab-box-score.active, #tab-critical-stats.active, #tab-splits.active, #tab-questions.active, #tab-opponent-preview.active) #notice.good{background:var(--green-wash);border-color:#c9dfd0;color:#246b48}
#story-view .cs-detail h3{margin-bottom:10px;padding-bottom:7px;border-bottom:1px solid var(--line);font-family:var(--font-ui);font-size:var(--type-subsection);line-height:1.3;font-weight:700;color:var(--text-strong)}
#story-view .cs-detail .drive{margin-bottom:0;border:0;border-bottom:1px solid #D8E0EA;border-radius:0;background:transparent;box-shadow:none}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view).workspace{--bg-elevated:#FFFFFF;--bg-surface-2:#F7F9FC;--line:#D8E0EA;--line-strong:#B7C4D3;--text:#292D2F;--text-strong:#172126;--muted:#5F6465;--royal:#002E5D;--royal-light:#1D5F9E;background:#FFFFFF}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view).workspace{display:flex;flex-direction:column;gap:0}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view)>.drive-column{width:100%;min-width:0}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view)>aside{order:-1;padding:12px 0 6px;margin:0 0 6px;border:0;border-bottom:1px solid #B7C9E2;border-radius:0;background:transparent;box-shadow:none}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view)>aside .side-section{padding:0;margin:0;border:0;border-radius:0;background:transparent;box-shadow:none}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view)>aside .side-section h3{margin:0 0 4px;color:#5F6465;font-size:9.5px;line-height:1.3;letter-spacing:.13em;font-weight:800;text-transform:uppercase}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view)>aside .side-section p{margin:5px 0 0;color:#475569;font-size:13px;line-height:1.48}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view)>.drive-column>.section-heading{margin-bottom:12px;padding:0 0 7px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;background-image:none;box-shadow:none}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view)>.drive-column>.section-heading:not(:first-child){margin-top:24px!important}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view)>.drive-column>.section-heading h2{font-family:var(--font-ui);font-size:var(--type-section-title);line-height:1.25;font-weight:700;letter-spacing:-.01em;color:var(--text-strong)}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .cs-grid{grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:0 14px;border-top:1px solid #D8E0EA}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .cs-card{display:flex;flex-direction:column;min-width:0;padding:10px 0;border:0;border-bottom:1px solid #D8E0EA;border-radius:0;background:transparent;box-shadow:none;cursor:default;transition:background-color .12s ease}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .cs-card:hover{transform:none;background:transparent;box-shadow:none}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .cs-label{margin-bottom:3px;font-size:10px;letter-spacing:.06em;color:#5F6465}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .cs-value{margin-bottom:3px;font-size:23px;line-height:1.15;font-weight:700;letter-spacing:0;color:#172126}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .cs-section-label{margin:20px 0 8px;padding:0 0 5px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--muted);font-family:var(--font-ui);font-size:var(--type-meta);letter-spacing:.06em;font-weight:700}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view) .game-flow-list{display:block;gap:0}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view) .game-flow-item{margin:0;padding:11px 0;border:0;border-bottom:1px solid #D8E0EA;border-left:0;border-radius:0;background:transparent;background-image:none;box-shadow:none;transition:background-color .12s ease}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view) .game-flow-item:hover{transform:none;border-left:0;background:var(--royal-wash);box-shadow:none}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view) .game-flow-item.active{background:var(--royal-wash);border-color:var(--royal);border-bottom:2px solid var(--royal);box-shadow:none}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view) .game-flow-headline{font-family:var(--font-ui);font-size:var(--type-insight);line-height:1.35;font-weight:700;color:var(--text-strong)}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view) .game-flow-statement{margin:4px 0 0;color:#5F6465;font-size:13px;line-height:1.48}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .cs-detail{margin-top:12px;padding:12px 0;border:0;border-top:2px solid #8FA8C7;border-radius:0;background:transparent;box-shadow:none}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .cs-detail h3{margin-bottom:10px;padding-bottom:7px;border-bottom:1px solid var(--line);font-family:var(--font-ui);font-size:var(--type-subsection);line-height:1.3;font-weight:700;color:var(--text-strong)}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .cs-detail .drive{margin-bottom:0;border:0;border-bottom:1px solid #D8E0EA;border-radius:0;background:transparent;box-shadow:none}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .cs-table{margin-top:8px;border-collapse:collapse;border:0;border-radius:0;background:transparent;box-shadow:none;font-size:12.5px}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .cs-table th{padding:7px 10px;border-bottom:1px solid var(--line);background:#F7F9FC;color:var(--muted);font-family:var(--font-ui);font-size:var(--type-meta);letter-spacing:.04em;text-transform:uppercase}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .cs-table td{padding:7px 10px;border-bottom:1px solid #D8E0EA;color:#292D2F;font-variant-numeric:tabular-nums}
:is(#field-position-view,#offensive-identity-view,#game-situation-view) .chart-container{margin:8px 0 16px;padding:12px 0;border:0;border-top:1px solid #D8E0EA;border-bottom:1px solid #D8E0EA;border-radius:0;background:transparent;box-shadow:none}
:is(#field-position-view,#offensive-identity-view,#game-situation-view) .chart-title{font-family:var(--font-ui);font-size:var(--type-insight);line-height:1.35;font-weight:700;color:var(--text-strong)}
:is(#field-position-view,#offensive-identity-view,#game-situation-view) .chart-subtitle,:is(#field-position-view,#offensive-identity-view,#game-situation-view) .chart-empty{color:#5F6465;font-size:12.5px;line-height:1.45}
#offensive-identity-view #rushing-line-metrics .rlm-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 14px;border-top:1px solid #D8E0EA}
#offensive-identity-view #rushing-line-metrics .rlm-card{min-width:0;padding:10px 0;border:0;border-bottom:1px solid #D8E0EA;border-radius:0;background:transparent;box-shadow:none}
#offensive-identity-view #rushing-line-metrics .rlm-card-label{margin-bottom:7px;color:#5F6465;font-size:10px;letter-spacing:.06em;font-weight:700}
#offensive-identity-view #rushing-line-metrics .rlm-card-row{display:flex;justify-content:space-between;gap:8px;padding:3px 0;border:0;background:transparent}
#offensive-identity-view #rushing-line-metrics .rlm-card-row-label{color:#5F6465;font-size:11px}
#offensive-identity-view #rushing-line-metrics .rlm-card-primary{color:#172126;font-size:15px;font-weight:700}
#offensive-identity-view #rushing-line-metrics .rlm-card-secondary{color:#475569;font-size:12px}
#offensive-identity-view #rushing-line-metrics .rlm-note{margin-top:8px;padding:8px 0;border:0;border-top:1px solid #D8E0EA;border-radius:0;background:transparent;box-shadow:none;color:#475569;font-size:12.5px;line-height:1.48}
#splits-view.workspace{display:block}
#splits-view>.drive-column{width:100%;min-width:0}
#splits-view .filters{padding:10px 0;border:0;border-top:1px solid #D8E0EA;border-bottom:1px solid #D8E0EA;border-radius:0;background:transparent;box-shadow:none}
#splits-view .filters select{min-height:40px;padding:7px 10px;border:1px solid var(--line-strong);border-radius:2px;background:#fff;color:var(--text);font-family:var(--font-ui);font-size:13px}
#splits-view .splits-presets{gap:6px}
#splits-view .splits-presets .chip{min-height:32px;padding:5px 10px;border:1px solid var(--line-strong);border-radius:2px;background:#fff;color:var(--text);font-family:var(--font-ui);font-size:var(--type-meta)}
#splits-view .splits-presets .chip:hover:not(.active){border-color:var(--royal);background:var(--royal-wash)}
#splits-view .splits-presets .chip.active{border-color:var(--royal);background:var(--royal);color:#fff}
#critical-stats-view.workspace{--bg-elevated:#FFFFFF;--bg-surface-2:#F7F9FC;--line:#D8E0EA;--line-strong:#B7C4D3;--text:#292D2F;--text-strong:#172126;--muted:#5F6465;--royal:#002E5D;--royal-light:#1D5F9E;background:#FFFFFF}
#critical-stats-view>.drive-column>.section-heading{margin-bottom:12px;padding:0 0 7px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none}
#critical-stats-view>.drive-column>.section-heading:not(:first-child){margin-top:24px!important}
#critical-stats-view>.drive-column>.section-heading h2{font-family:var(--font-ui);font-size:var(--type-section-title);line-height:1.25;font-weight:700;letter-spacing:-.01em;color:var(--text-strong)}
#critical-stats-view .cs-grid-primary,#critical-stats-view .cs-grid-supporting{gap:0 14px;border-top:1px solid #D8E0EA}
#critical-stats-view .cs-grid-supporting{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
#critical-stats-view .cs-card{display:flex;flex-direction:column;min-width:0;padding:10px 0;border:0;border-bottom:1px solid #D8E0EA;border-radius:0;background:transparent;box-shadow:none;transition:background-color .12s ease}
#critical-stats-view .cs-card:hover{transform:none;background:#F7FAFF;box-shadow:none}
#critical-stats-view .cs-card.active{background:var(--royal-wash);border-color:var(--royal);border-bottom:2px solid var(--royal);box-shadow:none}
#critical-stats-view .cs-card:focus-visible{outline:2px solid #455D70;outline-offset:2px}
#critical-stats-view .cs-label{margin-bottom:3px;font-family:var(--font-ui);font-size:var(--type-meta);letter-spacing:.06em;color:var(--muted)}
#critical-stats-view .cs-value{margin-bottom:3px;font-family:var(--font-ui);font-size:var(--type-metric);line-height:1.15;font-weight:700;letter-spacing:0;color:var(--text-strong)}
#critical-stats-view .cs-section-label{margin:20px 0 8px;padding:0 0 5px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--muted);font-family:var(--font-ui);font-size:var(--type-meta);letter-spacing:.06em;font-weight:700}
#critical-stats-view .cs-baseline{margin-top:7px;padding:7px 0;border:0;border-top:1px solid #D8E0EA;border-radius:0;background:transparent;box-shadow:none}
#critical-stats-view .cs-baseline-value{font-family:var(--font-ui);font-size:var(--type-insight);font-weight:700;line-height:1.2;color:var(--text-strong)}
#critical-stats-view .cs-detail{margin-top:12px;padding:12px 0;border:0;border-top:2px solid #8FA8C7;border-radius:0;background:transparent;box-shadow:none}
#critical-stats-view .cs-detail h3{margin-bottom:10px;padding-bottom:7px;border-bottom:1px solid var(--line);font-family:var(--font-ui)!important;font-size:var(--type-subsection);line-height:1.3;font-weight:700;color:var(--text-strong)}
#critical-stats-view .cs-detail .drive{margin-bottom:0;border:0;border-bottom:1px solid #D8E0EA;border-radius:0;background:transparent;box-shadow:none}
#critical-stats-view .cs-detail table.plays{border:0;border-radius:0;background:transparent;box-shadow:none}
#critical-stats-view .cs-detail table.plays th{background:#F7F9FC;color:var(--muted);border-bottom:1px solid var(--line);font-family:var(--font-ui);font-size:var(--type-meta)}
#critical-stats-view .cs-detail table.plays td{border-bottom:1px solid #D8E0EA}
#critical-stats-view>aside .side-section{padding:0;margin:0 0 14px;border:0;border-radius:0;background:transparent;box-shadow:none}
#critical-stats-view>aside .side-section h3{margin:0 0 8px;padding-bottom:6px;border-bottom:1px solid var(--line);font-family:var(--font-ui);font-size:var(--type-subsection);line-height:1.3;font-weight:700;color:var(--text-strong)}
#critical-stats-view>aside .side-section p{margin:5px 0;color:var(--muted);font-family:var(--font-ui);font-size:var(--type-body);line-height:1.5}
#critical-stats-view.workspace{--bg-elevated:#FFFFFF;--bg-surface-2:#F7F9FC;--line:#D8E0EA;--line-strong:#B7C4D3;--text:#292D2F;--text-strong:#172126;--muted:#5F6465;--royal:#002E5D;--royal-light:#1D5F9E;background:#FFFFFF}
#critical-stats-view>.drive-column>.section-heading{margin-bottom:12px;padding:0 0 7px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none}
#critical-stats-view>.drive-column>.section-heading h2{font-family:var(--font-ui);font-size:var(--type-section-title);line-height:1.25;font-weight:700;letter-spacing:-.01em;color:var(--text-strong)}
#questions-view.workspace{--bg-elevated:#FFFFFF;--bg-surface-2:#F7F9FC;--line:#D8E0EA;--line-strong:#B7C4D3;--text:#292D2F;--text-strong:#172126;--muted:#5F6465;--royal:#002E5D;--royal-light:#1D5F9E;background:#FFFFFF}
#questions-view>.drive-column>.section-heading{margin-bottom:12px;padding:0 0 7px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none}
#questions-view>.drive-column>.section-heading h2{font-family:var(--font-ui);font-size:var(--type-section-title);line-height:1.25;font-weight:700;letter-spacing:-.01em;color:var(--text-strong)}
#questions-view .filters{padding:10px 0;border:0;border-bottom:1px solid #D8E0EA;border-radius:0;background:transparent;box-shadow:none}
#questions-view .filters select,#opponent-preview-view .filters select,#splits-view .filters select{min-height:40px;padding:7px 10px;border:1px solid var(--line-strong);border-radius:2px;background:#fff;color:var(--text);font-family:var(--font-ui);font-size:13px}
#questions-view .game-flow-item{margin:0;padding:12px 0;border:0;border-bottom:1px solid #D8E0EA;border-left:0;background:transparent;background-image:none;box-shadow:none;transition:background-color .12s ease}
#questions-view .game-flow-item:hover,#questions-view .game-flow-item.active{transform:none;border-left:0;border-radius:0;background:transparent;box-shadow:none}
#questions-view .game-flow-headline{margin:0 0 4px;font-family:var(--font-ui);font-size:var(--type-insight);line-height:1.35;font-weight:700;color:var(--text-strong)}
#questions-view .questions-layer{margin-top:10px;padding-top:9px;border-top:1px solid #D8E0EA}
#questions-view .questions-layer h4{margin:0 0 4px;color:#5F6465;font-family:var(--font-ui);font-size:var(--type-meta);letter-spacing:.08em;font-weight:700;text-transform:uppercase}
#questions-view .questions-layer p{margin:4px 0 0;color:var(--muted);font-family:var(--font-ui);font-size:var(--type-body);line-height:1.5}
#questions-view .questions-connected,#questions-view .questions-counterpoint{padding-left:0;border-left:0;background:transparent}
#questions-view .questions-evidence{margin:6px 0 0;padding-left:18px}
#questions-view .questions-evidence li{margin:3px 0;color:var(--text);font-family:var(--font-ui);font-size:var(--type-body);line-height:1.5}
#questions-view .questions-related{margin-top:9px;padding:8px 0 0;border:0;border-top:1px solid #D8E0EA;border-radius:0;background:transparent;box-shadow:none;color:var(--muted);font-family:var(--font-ui);font-size:var(--type-meta)}
#questions-view .cs-detail{margin-top:12px;padding:12px 0;border:0;border-top:2px solid #8FA8C7;border-radius:0;background:transparent;box-shadow:none}
#questions-view .cs-detail h3{margin-bottom:10px;padding-bottom:7px;border-bottom:1px solid var(--line);font-family:var(--font-ui)!important;font-size:var(--type-subsection);line-height:1.3;font-weight:700;color:var(--text-strong)}
#questions-view .cs-detail .drive{margin-bottom:0;border:0;border-bottom:1px solid #D8E0EA;border-radius:0;background:transparent;box-shadow:none}
#questions-view>aside .side-section{padding:0;margin:0 0 14px;border:0;border-radius:0;background:transparent;box-shadow:none}
#questions-view>aside .side-section h3{margin:0 0 4px;color:var(--muted);font-family:var(--font-ui);font-size:var(--type-meta);line-height:1.3;letter-spacing:.08em;font-weight:700;text-transform:uppercase}
#questions-view>aside .side-section p{margin:5px 0 0;color:var(--muted);font-family:var(--font-ui);font-size:var(--type-body);line-height:1.5}
/* Desktop/tablet shared surface and typography tokens */
body{background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:var(--type-body);line-height:1.5}
body *{font-family:var(--font-ui)}
.mast .brand h1{font-family:var(--font-ui);font-size:24px;line-height:1.1;letter-spacing:-.025em;font-weight:700;color:var(--text-strong)}
.box-team h4{background:#f7f9fc;color:var(--text-strong)}
h1,h2,h3,h4,.section-heading h2,.box-score-team-name,.box-score-final,#box-score-score,.box-team h3,.box-team h4,.cs-detail h3,.game-flow-headline,.chart-title,.matchup-card-title,.matchup-section-header h3,.opp-hero-title,.questions-layer h4{font-family:var(--font-ui)!important;color:var(--text-strong)!important}
h1{font-size:var(--type-page-title)}
h2,.section-heading h2{font-size:var(--type-section-title);line-height:1.25;font-weight:700;letter-spacing:-.01em}
h3,.box-team h4,.cs-detail h3{font-size:var(--type-subsection);line-height:1.3;font-weight:700}
.game-flow-headline,#questions-view .game-flow-headline,.matchup-card-title{font-size:var(--type-insight);line-height:1.35;font-weight:700}
p,.game-flow-statement,.questions-layer p,.side-section p,.opp-hero-sub,.box-score-meta{font-size:var(--type-body);line-height:1.5}
label,.cs-label,.cs-section-label,.stat-table th,.cs-table th,.plays th,table.box th,table.efficiency th,.box-score-side-label,.box-score-status,.box-team-score,.opp-hero-stat-label,.story-intro-label,.fine,.muted{font-family:var(--font-ui);font-size:var(--type-meta)}
.cs-value,.rlm-card-primary,.opp-hero-stat-value,#box-score-score,.score-team strong,.ay-value,.ps-stat strong{font-family:var(--font-ui);font-size:var(--type-metric);font-variant-numeric:tabular-nums}
html,body,#dashboard,.workspace,.workspace.drive-column,.drive-column,.setup,footer{background-color:#fff}
.section-heading{margin-bottom:12px;padding:0 0 7px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none}
.section-heading h2{color:var(--text-strong)!important}
:is(#story-view,#critical-stats-view,#questions-view,#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view)>.drive-column>.section-heading h2,#opponent-preview-view .matchup-section-header h3{font-family:var(--font-ui)!important;color:var(--text-strong);font-size:var(--type-section-title);line-height:1.25;font-weight:700;letter-spacing:-.01em}
:is(#story-view,#critical-stats-view,#questions-view,#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view)>.drive-column>.section-heading{padding:0 0 7px;margin:0 0 12px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;background-image:none;color:var(--text-strong);box-shadow:none}
:is(#story-view,#critical-stats-view,#questions-view,#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view)>.drive-column>.section-heading:not(:first-child){margin-top:24px!important}
.cs-section-label{margin:18px 0 8px;padding:0 0 5px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--muted);letter-spacing:.06em}
.cs-card,.rlm-card,.matchup-row,.matchup-card,.side-section,.cs-detail,.stat-table,.drive,.opp-hero,.filters,.chart-container,#setup-form,.scoreboard,.empty{border-radius:var(--radius);box-shadow:none}
:is(#overview-view,#drive-log-view,#reports-view,#box-score-view,#player-search-view,#critical-stats-view,#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view,#story-view,#questions-view) .game-flow-headline,:is(#overview-view,#drive-log-view,#reports-view,#box-score-view,#player-search-view,#critical-stats-view,#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view,#story-view,#questions-view) .chart-title,:is(#overview-view,#drive-log-view,#reports-view,#box-score-view,#player-search-view,#critical-stats-view,#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view,#story-view,#questions-view) .cs-detail h3,:is(#overview-view,#drive-log-view,#reports-view,#box-score-view,#player-search-view,#critical-stats-view,#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view,#story-view,#questions-view) .box-team h3,:is(#overview-view,#drive-log-view,#reports-view,#box-score-view,#player-search-view,#critical-stats-view,#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view,#story-view,#questions-view) .box-team h4,:is(#overview-view,#drive-log-view,#reports-view,#box-score-view,#player-search-view,#critical-stats-view,#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view,#story-view,#questions-view) .matchup-card-title,:is(#overview-view,#drive-log-view,#reports-view,#box-score-view,#player-search-view,#critical-stats-view,#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view,#story-view,#questions-view) .opp-hero-title{font-family:var(--font-ui)!important;color:var(--text-strong)}
:is(#overview-view,#drive-log-view,#reports-view,#box-score-view,#player-search-view,#critical-stats-view,#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view,#story-view,#questions-view) .cs-detail h3{font-size:var(--type-subsection);line-height:1.3;font-weight:700}
.cs-card{background:#fff;border:1px solid var(--line);border-top:2px solid var(--line);padding:14px;transition:border-color .15s,background-color .15s}
.cs-card:hover{transform:none;box-shadow:none;border-color:var(--line-strong)}
.cs-card.active{background:var(--royal-wash);border-color:var(--royal);box-shadow:none}
.cs-label{font-size:var(--type-meta);font-weight:700;color:var(--muted)}
.cs-value{font-size:var(--type-metric);line-height:1.2;color:var(--text-strong)}
.game-flow-item{background:#fff;background-image:none;border:0;border-bottom:1px solid var(--line);border-left:0;border-radius:0;padding:12px 0;box-shadow:none;transition:background-color .15s}
.game-flow-item:hover,.game-flow-item.active{transform:none;background:var(--royal-wash);box-shadow:none}
.game-flow-headline{color:var(--text-strong)}
.game-flow-statement{color:var(--muted)}
button,input,select,.chip{font-family:var(--font-ui);font-size:13px;border-radius:var(--radius);border-color:var(--line-strong);background:#fff;color:var(--text)}
button:hover:not(:disabled),.chip:hover:not(.active){border-color:var(--royal);background:var(--royal-wash)}
.view-tabs,.subnav{background:#fff;border-color:var(--line);box-shadow:none}
.view-tabs button,.subnav button{font-family:var(--font-ui);border-radius:0}
.view-tabs button.active{background:transparent;border-bottom-color:var(--royal);color:var(--royal);box-shadow:none}
.subnav button.active{background:transparent;border-bottom-color:var(--royal);color:var(--royal);box-shadow:none}
.chip.active{background:var(--royal);border-color:var(--royal);color:#fff;box-shadow:none}
#final-box-score-subnav button.active,:is(#final-box-score-subnav,#situations-subnav) button.active,#situations-subnav button.active{background:transparent;border-bottom-color:var(--royal)!important;color:var(--royal)!important}
:is(.stat-table,.cs-table,.plays,table.box,table.efficiency){font-family:var(--font-ui);border-radius:0;box-shadow:none}
:is(.stat-table,.cs-table,.plays,table.box,table.efficiency) th{font-family:var(--font-ui);background:#f7f9fc;color:var(--muted);border-color:var(--line);font-size:var(--type-meta);font-weight:700}
:is(.stat-table,.cs-table,.plays,table.box,table.efficiency) td{font-family:var(--font-ui);border-color:var(--line);color:var(--text);font-size:12.5px}
.stat-table{background:#fff;border:0;border-radius:0}
.stat-table td,.cs-table td,.plays td,table.box td{padding:8px 10px}
.notice{border-radius:2px;box-shadow:none}
#notice.good{background:var(--green-wash);border-color:#c9dfd0;color:#246b48}
:root{--table-font:12.5px;--table-cell-y:8px;--table-cell-x:10px}
.view-tabs button,.subnav button,.chip{border-radius:var(--radius)}
.notice{color:var(--muted)}
.notice.good{background:var(--green-wash);border-color:#c9dfd0;color:#246b48}

:is(.stat-table,.cs-table,.plays,table.box,table.efficiency){font-family:var(--font-ui);border-radius:0;box-shadow:none}
:is(.stat-table,.cs-table,.plays,table.box,table.efficiency) th{font-family:var(--font-ui);font-size:var(--type-meta);background:#f7f9fc;color:var(--muted);border-color:var(--line);text-transform:uppercase;letter-spacing:.04em}
:is(.stat-table,.cs-table,.plays,table.box,table.efficiency) td{font-family:var(--font-ui);font-size:var(--table-font);border-color:var(--line);color:var(--text)}
:is(.stat-table,.cs-table,.plays,table.box,table.efficiency) th,:is(.stat-table,.cs-table,.plays,table.box,table.efficiency) td{padding:var(--table-cell-y) var(--table-cell-x)}
#box-score-view table.box{background:#fff}
:is(.stat-table,.cs-table,.plays,table.box,table.efficiency) tr:hover{background:var(--royal-wash)}
.mast .brand h1{font-family:var(--font-ui)!important;color:#172126!important}
.box-team h4{background:#f7f9fc!important;border-color:var(--line)!important;color:var(--text-strong)!important}
:is(#story-view,#critical-stats-view,#questions-view,#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view)>.drive-column>.section-heading h2{color:var(--text-strong)!important}

#critical-stats-view>aside .side-section h3{margin:0 0 4px;color:var(--muted);font-family:var(--font-ui);font-size:var(--type-meta);line-height:1.3;letter-spacing:.08em;font-weight:700;text-transform:uppercase}
#critical-stats-view>aside .side-section p{margin:5px 0 0;color:var(--muted);font-family:var(--font-ui);font-size:var(--type-body);line-height:1.5}
:is(#final-box-score-subnav,#situations-subnav){display:flex;gap:0;align-items:stretch;background:#fff;border:0;border-bottom:1px solid var(--line);border-radius:0;margin:0;overflow-x:auto;padding:4px 4%;box-shadow:none}
:is(#final-box-score-subnav,#situations-subnav) button{min-height:32px;padding:6px 10px;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--muted);font-family:var(--font-ui);font-size:var(--type-meta);font-weight:600;white-space:nowrap;flex:0 0 auto;transition:background .12s,color .12s}
:is(#final-box-score-subnav,#situations-subnav) button:hover:not(.active){background:var(--royal-wash);color:var(--text)}
:is(#final-box-score-subnav,#situations-subnav) button.active{color:var(--royal);background:transparent;border-bottom-color:var(--royal)!important;box-shadow:none}
.cs-detail .drive.cs-fail{background:var(--red-wash);border-left:3px solid var(--red)}
.splits-presets{display:flex;flex-wrap:wrap;gap:8px}
.chip{min-height:36px;padding:6px 15px;font-family:var(--font-ui);font-size:12px;border-radius:2px;background:#fff;border:1px solid var(--line-strong);font-weight:600;color:var(--text);transition:border-color .12s,background .12s}
.chip:hover:not(.active){border-color:var(--royal-light);background:var(--royal-wash)}
.chip.active{background:var(--royal);border-color:var(--royal);color:#fff}
.splits-toggle{display:flex;align-items:center;gap:8px;font-family:var(--font-ui);font-size:var(--type-body);font-weight:400;text-transform:none;letter-spacing:0;color:var(--text);min-height:auto}
.splits-toggle input{min-height:auto;width:16px;height:16px}
.setup{max-width:700px;margin:40px auto;padding:0 24px}
.setup h2{font-size:29px;margin:25px 0 6px;font-weight:800;color:var(--text-strong)}
.intro{color:var(--muted)}
.steps{padding-left:23px;margin:28px 0}
.steps li{padding-left:7px;margin-bottom:22px}
.steps p{margin-top:5px;color:var(--muted);font-size:14px}
#setup-form{background:#fff;border:1px solid var(--line);padding:24px;border-radius:var(--radius);margin:24px 0 14px;box-shadow:none}
.setup h2{font-family:var(--font-ui);font-size:var(--type-page-title);margin:24px 0 6px;font-weight:700;color:var(--text-strong)}
.intro{color:var(--muted);font-family:var(--font-ui);font-size:var(--type-body)}
.steps{padding-left:23px;margin:24px 0}
.steps li{padding-left:7px;margin-bottom:16px}
.steps p{margin-top:5px;color:var(--muted);font-family:var(--font-ui);font-size:var(--type-body)}
footer{border-top:1px solid var(--line);padding:22px 4%;color:var(--muted);font-family:var(--font-ui);font-size:var(--type-meta);display:flex;justify-content:space-between;gap:15px}
/* ==== Shared visualization primitives (V1-V4) ==== */
.chart-container{background:#fff;border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;padding:12px 0;box-shadow:none}
.chart-title{font-family:var(--font-ui);font-size:var(--type-insight);text-transform:none;letter-spacing:0;color:var(--text-strong);font-weight:700;line-height:1.35;margin-bottom:10px}
.chart-subtitle{font-family:var(--font-ui);font-size:var(--type-meta);color:var(--muted);margin:-6px 0 10px}
.chart-row{display:flex;align-items:center;gap:8px}
.chart-row-scroll{overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch}
.chart-legend{display:flex;flex-wrap:wrap;gap:14px;align-items:center;font-family:var(--font-ui);font-size:var(--type-meta);color:var(--muted);margin-top:10px}
.chart-legend span{display:inline-block;width:10px;height:10px;border-radius:var(--radius);margin-right:5px;vertical-align:middle}
.chart-empty{font-family:var(--font-ui);font-size:var(--type-body);color:var(--muted);padding:8px 0}
/* Drive Flow Timeline chips */
.chart-chip{flex:0 0 auto;min-width:52px;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 10px;border-radius:var(--radius);background:#fff;border:1px solid var(--line);border-top:2px solid var(--line-strong);cursor:pointer;transition:border-color .1s}
.chart-chip:hover,.chart-chip:focus-visible{transform:none;border-color:var(--royal-light)}
.chart-chip.active{box-shadow:none;border-color:var(--royal);background:var(--royal-wash)}
.chart-chip-byu{border-top-color:var(--royal)}
.chart-chip-opp{border-top-color:var(--line-strong)}
.chart-chip-td{border-top-color:var(--green)}
.chart-chip-turnover{border-top-color:var(--red)}
.chart-chip-team{font-family:var(--font-ui);font-size:var(--type-meta);letter-spacing:.05em;color:var(--muted);font-weight:700;text-transform:uppercase}
.chart-chip-outcome{font-family:var(--font-ui);font-size:var(--type-body);font-weight:700;color:var(--text-strong)}
.chart-chip-td .chart-chip-outcome{color:var(--green)}
.chart-chip-turnover .chart-chip-outcome,.chart-chip-downs .chart-chip-outcome{color:var(--red)}
.chart-chip-points{font-family:var(--font-ui);font-size:var(--type-meta);color:var(--muted);font-variant-numeric:tabular-nums}
/* 100%-stacked horizontal bar (V2/V3) */
.chart-stack-row{display:grid;grid-template-columns:110px 1fr minmax(112px,auto);align-items:center;gap:10px;margin-bottom:10px}
.chart-stack-row:last-child{margin-bottom:0}
.chart-stack-label{font-family:var(--font-ui);font-size:var(--type-body);font-weight:600;color:var(--text)}
.chart-stack-label small{display:block;font-family:var(--font-ui);font-weight:400;color:var(--muted);font-size:var(--type-meta)}
.chart-stack-track{display:flex;height:20px;border-radius:var(--radius);overflow:hidden;background:#fff;border:1px solid var(--line)}
.chart-stack-seg{display:flex;align-items:center;justify-content:center;font-family:var(--font-ui);font-size:var(--type-meta);font-weight:700;color:#fff;white-space:nowrap;overflow:hidden}
.chart-stack-run{background:var(--royal)}
.chart-stack-pass{background:#5b6b8c}
.chart-stack-values{font-family:var(--font-ui);font-size:var(--type-meta);color:var(--muted);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;padding-left:4px}
/* Field Position distribution bars (V4) */
.chart-fp-row{margin-bottom:12px}
.chart-fp-row:last-child{margin-bottom:0}
.chart-fp-band-label{font-family:var(--font-ui);font-size:var(--type-body);font-weight:600;color:var(--text);margin-bottom:4px}
.chart-fp-bar-pair{display:flex;flex-direction:column;gap:4px}
.chart-fp-bar-line{display:grid;grid-template-columns:44px 1fr 40px;align-items:center;gap:8px}
.chart-fp-bar-line small{font-family:var(--font-ui);font-size:var(--type-meta);color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.chart-fp-bar-track{height:12px;border-radius:var(--radius);background:#fff;border:1px solid var(--line);overflow:hidden}
.chart-fp-bar-fill{height:100%;display:block}
.chart-fp-bar-fill-byu{background:var(--royal)}
.chart-fp-bar-fill-opp{background:var(--line-strong)}
.chart-fp-bar-value{font-family:var(--font-ui);font-size:var(--type-meta);color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}
/* Offensive Identity Run/Pass Mix (dedicated polish pass) */
.oi-mix-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.oi-mix-title{margin:0}
.oi-mix-legend{display:flex;align-items:center;gap:6px;font-family:var(--font-ui);font-size:var(--type-meta);color:var(--muted);font-weight:600}
.oi-mix-swatch{display:inline-block;width:11px;height:11px;border-radius:var(--radius);margin-left:10px}
.oi-mix-swatch:first-child{margin-left:0}
.oi-mix-swatch-run{background:var(--royal)}
.oi-mix-swatch-pass{background:#5b6b8c}
.oi-mix-row{margin-bottom:16px}
.oi-mix-row:last-child{margin-bottom:0}
.oi-mix-row-emphasis{background:var(--royal-wash);border:1px solid var(--line);border-left:2px solid var(--royal);border-radius:var(--radius);padding:10px 12px;margin-left:-12px;margin-right:-12px;width:calc(100% + 24px)}
.oi-mix-label{font-family:var(--font-ui);font-size:var(--type-body);font-weight:600;color:var(--text);margin-bottom:6px}
.oi-mix-label-emphasis{color:var(--text-strong);font-weight:800}
.oi-mix-bar-wrap{display:flex;align-items:center;gap:8px}
.oi-mix-track{flex:1;display:flex;height:28px;border-radius:var(--radius);overflow:hidden;background:#fff;border:1px solid var(--line)}
.oi-mix-seg{display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;color:#fff;white-space:nowrap;overflow:hidden;flex-grow:0;flex-shrink:0;box-sizing:border-box}
.oi-mix-seg-run{background:var(--royal)}
.oi-mix-seg-pass{background:#5b6b8c}
.oi-mix-sidelabel{font-family:var(--font-ui);font-size:var(--type-meta);font-weight:700;color:var(--muted);white-space:nowrap;flex:0 0 auto}
.oi-mix-sidelabel-run{color:var(--royal-light)}
.oi-mix-sidelabel-pass{color:var(--muted-2)}
.oi-mix-delta{margin-top:6px;font-family:var(--font-ui);font-size:var(--type-meta);font-weight:700;color:var(--royal)}

[hidden]{display:none!important}

/* Phase 2 shared shell polish: compact utility chrome, same markup/behavior */
.mast{min-height:64px;padding:9px 4%;gap:16px}
.mast nav{gap:10px}
.mast a{margin-left:4px;padding-left:12px}
.view-tabs{padding-top:6px;padding-bottom:6px}
.view-tabs button{padding:7px 13px;min-height:36px}
.subnav{padding-top:4px;padding-bottom:4px}
.subnav button{padding:6px 12px;min-height:30px}
.toolbar{display:grid;grid-template-columns:104px minmax(220px,1fr) auto minmax(150px,auto);align-items:end;gap:10px;padding:10px 0}
.toolbar #season{width:100%}
.toolbar .game-picker{max-width:440px;min-width:0}
#updated{margin:0 0 9px;align-self:end;line-height:1.35;text-align:right}
#notice{padding:4px 0;margin:0 0 8px;border:0;border-radius:0;background:transparent;color:var(--muted);font-size:var(--type-meta);line-height:1.4;box-shadow:none}
#notice.good,.notice.good{border:0;border-radius:0;background:transparent;color:var(--muted)}
.section-heading{gap:12px;margin-bottom:10px;padding-bottom:6px}
.cs-label,.rlm-card-label,.opp-hero-stat-label{letter-spacing:.05em}
.cs-table th,.stat-table th,.plays th,table.box th,table.efficiency th{padding:7px 9px}
.cs-table td,.stat-table td,.plays td,table.box td,table.efficiency td{padding:7px 9px}
@media(max-width:760px){
 .mast{min-height:0;padding:12px var(--gutter-mobile);gap:10px}
 .mast nav{gap:6px}
 .toolbar{display:flex;align-items:flex-end;gap:8px;padding:9px 0}
 .toolbar #season{width:92px}
 .toolbar .game-picker{min-width:170px;max-width:none;flex:1 1 170px}
 #updated{margin:0;flex:1 1 100%;text-align:left;align-self:auto}
 .view-tabs{padding-top:5px;padding-bottom:5px}
 .view-tabs button{padding:7px 11px;min-height:34px}
 .subnav button{padding:6px 10px;min-height:30px}
}

@media(max-width:340px){
  .toolbar{display:grid;grid-template-columns:minmax(76px,.65fr) minmax(0,1.35fr);align-items:end;gap:8px}
  .toolbar>div:nth-child(3){grid-column:1/-1;display:flex;justify-content:flex-end}
  .toolbar .game-picker{min-width:0;width:100%}
  .toolbar #refresh{width:100%}
  #updated{grid-column:1/-1;margin:0;text-align:right}
}

@media(max-width:1050px){
  .workspace{grid-template-columns:minmax(0,1fr) 220px;gap:var(--space-6)}
  .score-team{gap:var(--space-3)}
  .cs-grid-primary{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:760px){
  :root{--type-page-title:22px;--type-section-title:19px;--type-metric:23px}
  main{padding:0 var(--gutter-mobile) 30px}
  .mast{align-items:flex-start;flex-direction:column;padding:14px var(--gutter-mobile);gap:12px}
  .mast nav{width:100%;justify-content:flex-start}
  .brand{gap:3px}
  .mast .brand h1{font-size:21px}
  h1{font-size:var(--type-page-title)}
  .mini-scoreboard{order:3;width:100%;max-width:100%;justify-content:center;padding:2px 0;gap:7px}
  .toolbar{flex-wrap:wrap;gap:10px}
  .game-picker{min-width:180px}
  #updated{margin-left:0;flex:1}
  .scoreboard{padding:18px 14px;grid-template-columns:1fr 1fr;gap:14px;border-radius:var(--radius)}
  .game-state{grid-row:2;grid-column:1/-1;padding:10px 0 0}
  .score-team{justify-content:flex-start;gap:10px}
  .score-team strong{font-size:32px}
  .score-team small{font-size:var(--type-body)}
  .workspace{display:block}
  aside{padding:0;display:grid;grid-template-columns:1fr 1fr;gap:14px}
  .side-section{padding:16px 18px;margin-bottom:14px}
  .side-section:last-child{grid-column:1/-1}
  .drive summary{grid-template-columns:16px 1fr auto;gap:8px}
  .drive-summary-stats{grid-column:2;font-size:12px}
  .result{grid-column:3;grid-row:1/3}
  .plays th,.plays td{padding:7px}
  .plays .field-position{display:none}
  .list-caption{align-items:flex-start}
  .list-caption span{max-width:190px}
  footer{flex-direction:column}
  .empty{padding:24px 18px}
  .drive-row{grid-template-columns:1fr;gap:4px}
  .drive-row-meta{text-align:left}
  .cs-grid-primary,.cs-grid-supporting{grid-template-columns:1fr}
  .game-flow-list{grid-template-columns:1fr}
  .cs-table,.stat-table{font-size:12px}
  .cs-table th,.cs-table td,.stat-table th,.stat-table td{padding:7px 8px}
  .view-tabs,.subnav{padding-left:var(--gutter-mobile);padding-right:var(--gutter-mobile)}
  .view-tabs{flex-wrap:wrap;overflow-x:visible;scrollbar-width:auto;overscroll-behavior-x:auto}
  .chart-stack-row{grid-template-columns:80px 1fr minmax(0,70px);gap:6px}
  .chart-stack-values{white-space:normal;font-size:10px}
  .chart-chip{min-width:46px;padding:6px 8px}
  .oi-mix-header{flex-direction:column;align-items:flex-start;gap:6px}
  .oi-mix-bar-wrap{flex-wrap:wrap}
  .oi-mix-track{min-width:100%;height:24px}
  .oi-mix-sidelabel{flex:0 0 auto}
  .oi-mix-row-emphasis{box-sizing:border-box;width:100%;margin-left:0;margin-right:0;padding:8px}
  .matchup-card-body{grid-template-columns:1fr}
  .matchup-card{padding:12px 14px}
  .matchup-card-header{flex-wrap:wrap}
  .matchup-card-vs{display:none}
  .opp-hero{padding:0}
  .opp-hero-title{font-size:var(--type-page-title)}
  .opp-hero-stats{gap:16px}
  .matchup-section-header{flex-direction:column;align-items:flex-start;gap:6px}
  .matchup-section-note{text-align:left}
  .matchup-card-grid{grid-template-columns:1fr}
  .opp-preview-light{padding:0}
  .rlm-grid{grid-template-columns:1fr}
  .story-intro{grid-template-columns:minmax(0,1fr);gap:10px;padding:11px 0 6px;margin-bottom:6px}
}
@media(max-width:760px){
  #box-score-view .box-score-header{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:9px 12px;padding:13px 0 14px}
  #box-score-view .box-score-final{grid-column:1/-1;grid-row:1}
  #box-score-view .box-score-away{grid-column:1;grid-row:2}
  #box-score-view .box-score-home{grid-column:2;grid-row:2}
  #box-score-view .box-score-team-name{font-size:var(--type-subsection)}
  #box-score-view #box-score-score{font-size:var(--type-metric)}
  #box-score-view .box-score-teams{grid-template-columns:minmax(0,1fr);gap:14px}
  #box-score-view .box-team h3{font-size:var(--type-subsection)}
  #box-score-view .box-table-wrap{max-width:100%}
}
@media(min-width:761px){body:has(#tab-opponent-preview.active) .toolbar{gap:10px;padding:10px 0}body:has(#tab-opponent-preview.active) .toolbar #game-picker{display:none}body:has(#tab-opponent-preview.active) .toolbar #toolbar-opponent-picker:not([hidden]){display:block}body:has(#tab-opponent-preview.active) .toolbar #toolbar-opponent-picker:not([hidden])>.opponent-team-control{display:block;min-width:0;flex:1;padding:0;border:0;background:transparent}body:has(#tab-opponent-preview.active) .toolbar #toolbar-opponent-picker:not([hidden])>.opponent-team-control>div{min-width:0}body:has(#tab-opponent-preview.active) .toolbar #toolbar-opponent-picker:not([hidden]) .opponent-team-control label{margin-bottom:4px}body:has(#tab-opponent-preview.active) .toolbar #toolbar-opponent-picker:not([hidden]) #opponent-team-select{width:100%;min-height:44px}}
@media(max-width:760px){body:has(#tab-opponent-preview.active) .toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px;padding:9px var(--gutter-mobile)}body:has(#tab-opponent-preview.active) .toolbar #toolbar-opponent-picker:not([hidden]){display:block;flex:1 1 170px;min-width:170px}body:has(#tab-opponent-preview.active) .toolbar #toolbar-opponent-picker:not([hidden])>.opponent-team-control{display:block;min-width:0;flex:1;padding:0;border:0;background:transparent}body:has(#tab-opponent-preview.active) .toolbar #toolbar-opponent-picker:not([hidden]) #opponent-team-select{width:100%}}
@media(max-width:340px){body:has(#tab-opponent-preview.active) .toolbar{display:grid;grid-template-columns:minmax(76px,.65fr) minmax(0,1.35fr);align-items:end;gap:8px}body:has(#tab-opponent-preview.active) .toolbar #toolbar-opponent-picker:not([hidden]){grid-column:2;grid-row:1;min-width:0}body:has(#tab-opponent-preview.active) .toolbar #refresh{grid-column:1/-1;grid-row:2;width:100%}body:has(#tab-opponent-preview.active) #updated{grid-column:1/-1;grid-row:3;text-align:left}}
/* Pass 3C — single Opponent report grid and responsive composition */
#opponent-preview-view.workspace{grid-template-columns:minmax(0,1fr);gap:0;padding:0;background:#fff}
#opponent-preview-view>aside{display:none}
#opponent-preview-view>aside .side-section{background:transparent;border:0;border-radius:0;padding:0}
#opponent-preview-view>.drive-column{grid-column:1/-1;display:flex;flex-direction:column;gap:0;width:100%;max-width:1200px;margin:0 auto;min-width:0}
#opponent-preview-view>#opponent-page-purpose,#opponent-preview-view>.drive-column{max-width:1200px;margin-left:auto;margin-right:auto}
#opponent-preview-view>#opponent-page-purpose{grid-column:1/-1;width:100%;margin:0 auto 12px;padding:8px 0 10px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--text);font-size:var(--type-body);line-height:1.5}
#opponent-preview-view>#opponent-page-purpose>p{margin:0;font-size:var(--type-body);line-height:1.5}
#opponent-preview-view .opponent-how{margin-top:4px}
#opponent-preview-view .opponent-how summary{width:max-content;max-width:100%;min-height:30px;display:flex;align-items:center;cursor:pointer;color:var(--royal);font-size:var(--type-meta);font-weight:700}
#opponent-preview-view .opponent-how>div{max-width:100%;padding:6px 0 0;color:var(--muted);font-size:var(--type-body);line-height:1.5}
#opponent-preview-view .opponent-how p{margin:5px 0;font-size:var(--type-body);line-height:1.5}
#opponent-preview-view .opponent-team-control{margin:0;padding:0;border:0;background:transparent;border-radius:0}
#toolbar-opponent-picker .filters{border-radius:0}
#opponent-preview-view .opponent-team-control>div{min-width:0}
#opponent-preview-view>.drive-column>*{width:100%;max-width:none}
#opponent-preview-view>.drive-column>#opponent-head-to-head{max-width:100%}
#opponent-preview-view>.drive-column>.section-heading{align-self:stretch;margin:22px 0 8px;padding:0 0 4px;border:0;border-bottom:1px solid var(--line);background:transparent}
#opponent-preview-view>.drive-column>.section-heading h2{font-size:var(--type-section-title)}
#opponent-preview-view>.drive-column>.section-heading.opponent-matchup-title{display:block;margin-top:30px;padding:15px 0 0;border-top:3px solid var(--line-strong)}
#opponent-preview-view>.drive-column>.section-heading.opponent-matchup-title h2{font-size:var(--type-page-title)}
#opponent-preview-view>.drive-column>.section-heading.opponent-matchup-title::after{content:"How this opponent lines up with BYU, unit by unit";display:block;margin-top:3px;color:var(--muted);font-size:var(--type-body);font-weight:400}
#opponent-preview-view #opponent-hero{margin:0 0 14px;padding:12px 0 10px;border:0;border-bottom:1px solid var(--line);background:transparent}
#opponent-preview-view #opponent-hero .opp-hero{background:transparent;border-radius:0}
#opponent-preview-view #opponent-betting-line{padding-bottom:10px}
#opponent-preview-view #opponent-snapshot,#opponent-preview-view #opponent-trends,#opponent-preview-view #opponent-key-players,#opponent-preview-view #opponent-weaknesses,#opponent-preview-view #opponent-head-to-head{margin:0;padding:0;border:0;background:transparent;border-radius:0}
#opponent-preview-view #opponent-snapshot .cs-card{background:transparent;border-radius:0}
#opponent-preview-view #opponent-trends .stat-table{width:100%;max-width:100%;min-width:0;margin:0;table-layout:fixed;background:transparent;border-radius:0}
#opponent-preview-view #opponent-trends .stat-table th,#opponent-preview-view #opponent-trends .stat-table td{padding:7px 3px}
@media(max-width:760px){#opponent-preview-view #opponent-trends .stat-table{table-layout:auto}}
#opponent-preview-view #opponent-trends .stat-table th{background:#F7F9FC}
#opponent-preview-view #opponent-key-players h4{margin:10px 0 5px;padding:0;color:var(--muted);font-size:var(--type-meta);letter-spacing:.06em;font-weight:700;text-transform:uppercase}
#opponent-preview-view #opponent-key-players .player-row{padding:8px 0;border:0;border-bottom:1px solid var(--line)}
#opponent-preview-view #opponent-head-to-head{font-size:var(--type-body)}
#opponent-preview-view #opponent-head-to-head>p{margin:0;padding:6px 0;color:var(--text);font-size:var(--type-body);border:0}
#opponent-preview-view #opponent-head-to-head .drive-row{margin:0;padding:8px 0;border:0;color:var(--muted)}
#opponent-preview-view #opponent-weaknesses .cs-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:12px;border:0}
#opponent-preview-view #opponent-weaknesses .cs-grid:has(.cs-card-weakness:only-child){grid-template-columns:minmax(0,1fr)}
#opponent-preview-view #opponent-weaknesses .cs-card-weakness{min-width:0;padding:10px 12px;border:0;border-left:2px solid #8FA8C7;background:#F7F9FC;border-radius:0}
#opponent-preview-view #opponent-weaknesses .cs-card-weakness .cs-label{margin-bottom:2px;color:var(--muted);font-size:var(--type-meta);font-weight:700}
#opponent-preview-view #opponent-weaknesses .cs-card-weakness .cs-value{margin-bottom:2px;font-size:var(--type-metric)}
#opponent-preview-view #opponent-weaknesses>.fine{margin-top:8px;color:var(--muted);font-size:var(--type-meta)}
#opponent-preview-view>#matchup-result,#opponent-preview-view>.drive-column>#matchup-result{align-self:stretch;width:100%;max-width:none;margin:8px 0 0;padding:0;border:0}
#opponent-preview-view #matchup-result .matchup-chapter-title{display:none}
#opponent-preview-view #matchup-result .matchup-section-header{margin:18px 0 8px;padding:0 0 6px;border:0;border-bottom:1px solid var(--line)}
#opponent-preview-view #matchup-result .matchup-section-header:first-child{margin-top:0}
#opponent-preview-view #matchup-result .matchup-section-header h3{font-size:var(--type-subsection)}
#opponent-preview-view #matchup-result .matchup-section-note{font-size:var(--type-meta)}
#opponent-preview-view #matchup-result .matchup-card-grid{display:block}
#opponent-preview-view #matchup-result .matchup-card{padding:10px 0;margin:0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent}
#opponent-preview-view #matchup-result .matchup-card-edge{padding:0;border:0;border-radius:0;background:transparent}
@media(max-width:760px){
 #opponent-preview-view #opponent-snapshot .cs-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
 #opponent-preview-view #opponent-weaknesses .cs-grid{grid-template-columns:minmax(0,1fr)}
 #opponent-preview-view>#opponent-page-purpose{margin-bottom:8px}
 #opponent-preview-view>.drive-column{max-width:none}
 #opponent-preview-view>.drive-column>.section-heading{margin-top:18px}
 #opponent-preview-view>.drive-column>.section-heading.opponent-matchup-title{margin-top:24px;padding-top:13px}
 #opponent-preview-view #opponent-weaknesses .cs-grid{grid-template-columns:minmax(0,1fr)}
 #opponent-preview-view>#matchup-result,#opponent-preview-view>.drive-column>#matchup-result{width:100%;max-width:none}
 #opponent-preview-view #matchup-result .matchup-card-grid{display:block}
 #opponent-preview-view #matchup-result .matchup-section-header{margin-top:16px;align-items:flex-start}
 #opponent-preview-view #matchup-result .matchup-section-note{text-align:left}
}
@media(max-width:760px){#opponent-preview-view .opponent-how summary{min-height:44px;padding:6px 0}}
@media(max-width:340px){#opponent-preview-view>#opponent-page-purpose{padding-top:6px}}

/* Phase 3: core analysis pages — presentation only */
#overview-view #scoreboard{margin-bottom:20px}
#overview-view #drive-flow-timeline{margin-bottom:2px}
#overview-view #game-flow .game-flow-item{padding:13px 10px;border-left:2px solid var(--line);}
#overview-view #game-flow .game-flow-item:hover,#overview-view #game-flow .game-flow-item.active{border-left-color:var(--royal)}
#overview-view #game-flow .game-flow-headline{margin-bottom:4px;font-size:16px;line-height:1.35}
#overview-view #game-flow .game-flow-statement{max-width:78ch;font-size:13px;line-height:1.45}
#overview-view #down-distance .game-flow-item{padding:10px 0}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view) .game-flow-item{padding:12px 8px}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view) .game-flow-headline{margin-bottom:3px;font-size:16px;line-height:1.35}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view) .game-flow-statement{max-width:78ch;font-size:13px;line-height:1.45}
/* Scoped Critical Stats explanatory disclosure styling. */
#critical-stats-view .definition-trigger{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;min-width:14px;min-height:14px!important;flex:0 0 14px;padding:0!important;margin:0 0 0 5px;border:0!important;border-radius:50%;background:transparent!important;color:var(--muted-2);font:600 10px/1 var(--font-ui);vertical-align:baseline;cursor:pointer;transition:none}
#critical-stats-view .definition-trigger:hover{color:var(--royal)!important;background:transparent!important;border:0!important}
#critical-stats-view .definition-trigger:focus-visible{outline:2px solid var(--royal-light);outline-offset:2px}
#critical-stats-view .cs-card{position:relative}
#critical-stats-view .cs-card>.cs-label{display:flex;align-items:center;gap:4px;min-height:0}
#critical-stats-view .cs-card>.cs-label .definition-trigger{flex:0 0 14px}
#critical-stats-view .cs-card>.cs-label>span:first-child{flex:0 1 auto}
#critical-stats-view .definition-popover{display:none;position:fixed;z-index:1000;left:50%;right:auto;bottom:16px;top:auto;width:calc(100vw - 32px);max-width:360px;transform:translateX(-50%);margin:0;padding:11px 13px;border:1px solid var(--line-strong);border-radius:5px;background:#fff;color:var(--text);box-shadow:0 4px 14px rgb(0 0 0 / 16%);font:400 12px/1.45 var(--font-ui);white-space:normal}
#critical-stats-view .definition-popover[hidden]{display:none!important}
#critical-stats-view .definition-popover:not([hidden]){display:block}
#critical-stats-view .critical-stats-definitions{display:none}
#critical-stats-view .critical-stats-help{margin:8px 0;color:var(--muted-2);font-size:11px;line-height:1.35}
#critical-stats-view .methodology{margin:16px 0;padding-top:10px;border-top:1px solid var(--line);color:var(--muted);font:400 12px/1.45 var(--font-ui)}
#critical-stats-view .methodology>summary{color:var(--muted);font-weight:600;cursor:pointer}
#critical-stats-view .methodology-content{padding:8px 0 0}
#critical-stats-view .methodology-content p{margin:5px 0}
#critical-stats-view #critical-stats-game .cs-grid-primary .cs-card:nth-child(1),
#critical-stats-view #critical-stats-game .cs-grid-primary .cs-card:nth-child(2),
#critical-stats-view #critical-stats-game .cs-grid-primary .cs-card:nth-child(3){grid-column:span 2}
#critical-stats-view #critical-stats-game .cs-grid-primary .cs-card:nth-child(4),
#critical-stats-view #critical-stats-game .cs-grid-primary .cs-card:nth-child(5){grid-column:span 3}
#critical-stats-view #critical-stats-game .cs-grid-primary .cs-card{ display:grid;grid-template-columns:minmax(0,1fr) minmax(90px,auto);grid-template-areas:"label label" "primary primary" "detail detail" "baseline baseline" "empty empty" "fbs fbs";
 align-content:start;row-gap:0;min-width:0;padding:15px 0 16px;border:0;border-bottom:1px solid var(--line);background:transparent;
}
#critical-stats-view #critical-stats-game .cs-grid-primary .cs-card:hover{background:var(--royal-wash)}
#critical-stats-view #critical-stats-game .cs-grid-primary .cs-label{grid-area:label;margin:0 0 8px;font-size:13px;line-height:1.3;font-weight:750;letter-spacing:.075em;color:var(--muted)}
#critical-stats-view #critical-stats-game .cs-grid-primary .cs-value{grid-area:primary;margin:0 0 5px;font-size:30px;line-height:1.08;font-weight:750;letter-spacing:-.025em;font-variant-numeric:tabular-nums;color:var(--text-strong)}
#critical-stats-view #critical-stats-game .cs-grid-primary .cs-detail-line{grid-area:detail;margin:0 0 12px;font-size:12px;line-height:1.4;color:var(--muted)}
#critical-stats-view #critical-stats-game .cs-grid-primary .cs-baseline{grid-area:baseline;display:grid;grid-template-columns:minmax(110px,1fr) minmax(80px,auto);grid-template-areas:"blabel bvalue" "compare compare" "rank rank";align-items:baseline;gap:4px 10px;margin:0;padding:0;border:0;background:transparent}
#critical-stats-view #critical-stats-game .cs-grid-primary .cs-baseline-label{grid-area:blabel;margin:0;font-size:10px;letter-spacing:.07em;color:var(--muted-2)}
#critical-stats-view #critical-stats-game .cs-grid-primary .cs-baseline-value{grid-area:bvalue;justify-self:end;font-size:20px;line-height:1.1;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text)}
#critical-stats-view #critical-stats-game .cs-grid-primary .cs-baseline-comparison{grid-area:compare;margin:3px 0 0;font-size:11px;line-height:1.35;font-weight:600;color:var(--muted)}
#critical-stats-view #critical-stats-game .cs-grid-primary .cs-baseline-empty{grid-area:empty;margin:0;padding:8px 0 0;border-top:1px solid #E7ECF1;font-size:11px;line-height:1.35;color:var(--muted-2)}
#critical-stats-view #critical-stats-game .cs-grid-primary .cs-fbs-line{grid-area:fbs;margin:11px 0 0;padding:7px 0 0;border-top:1px solid #E7ECF1;font-size:10px;line-height:1.35;color:var(--muted-2)}
#critical-stats-view #critical-stats-game .cs-grid-primary .cs-card.active{background:var(--royal-wash);border-bottom:2px solid var(--royal)}
#critical-stats-view #critical-stats-game .cs-grid-supporting{margin-top:0}
#critical-stats-view #critical-stats-game .cs-grid-supporting .cs-card{padding:11px 0;border-bottom:1px solid var(--line)}
#drive-log-view #drives .drive summary{min-height:54px;padding:9px 4px;gap:10px}
#drive-log-view #drives .drive summary:hover{background:var(--royal-wash)}
#drive-log-view #drives .drive summary strong{font-variant-numeric:tabular-nums}
#drive-log-view #drives .drive-meta{padding:8px 4px}
#drive-log-view #drives .plays tbody tr:hover{background:var(--royal-wash)}
@media(max-width:760px){
 #critical-stats-view #critical-stats-game .cs-grid-primary{grid-template-columns:1fr;gap:0}
 #critical-stats-view #critical-stats-game .cs-grid-primary .cs-card{grid-column:1/-1!important}
 :is(#overview-view,#critical-stats-view,#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .cs-table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
 #overview-view #game-flow .game-flow-item{padding:11px 6px}
 #drive-log-view #drives .drive summary{min-height:52px;padding:8px 2px;gap:7px}
 #drive-log-view #drives .drive summary strong{font-size:13px}
 #critical-stats-view #critical-stats-game .cs-grid-primary{gap:0}
 #drive-log-view #drives .plays{min-width:520px}
 #drive-log-view #drives .plays td{overflow-wrap:anywhere}
}

/* ==== Live Insights (Game Center) ====
   Editorial, not widget-like: the newest insight is the focal point under Drive Flow,
   recent insights are quieter, older ones collapse. Existing tokens only. */
#live-insights{margin-top:30px;margin-bottom:12px}
#live-insights .live-insights-heading h2{font-size:var(--type-page-title);letter-spacing:-.02em}
#live-insights .li-empty{margin:0;padding:8px 0 4px;color:var(--muted);font-size:var(--type-body);line-height:1.5}
#live-insights .li-label{margin:5px 0 0;font-size:12px;line-height:1.35;color:var(--muted);font-weight:600}
#live-insights .li-headline{margin:0;overflow-wrap:anywhere;text-wrap:balance}
#live-insights .li-text{overflow-wrap:anywhere;text-wrap:pretty}
#live-insights .li-latest{margin:6px 0 4px;padding:6px 0 20px 18px;border-left:3px solid var(--royal)}
#live-insights .li-latest .li-headline{font-size:var(--type-page-title);line-height:1.2;letter-spacing:-.02em;color:var(--text-strong)}
#live-insights .li-latest .li-text{max-width:68ch;margin:12px 0 0;font-size:17px;line-height:1.55;color:var(--text)}
#live-insights .li-recent{margin-top:6px}
#live-insights .li-prior,#live-insights .li-archive{padding:14px 0 14px 21px;border-top:1px solid var(--line)}
#live-insights .li-prior .li-headline{font-size:var(--type-insight);line-height:1.3;color:var(--text-strong)}
#live-insights .li-prior .li-text{max-width:72ch;margin:6px 0 0;font-size:var(--type-body);line-height:1.5;color:var(--muted)}
#live-insights .li-older{margin-top:6px;border-top:1px solid var(--line)}
#live-insights .li-older>summary{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 0 0 21px;color:var(--royal);font-size:13px;font-weight:700;cursor:pointer;list-style:none}
#live-insights .li-older>summary::-webkit-details-marker{display:none}
#live-insights .li-older>summary::before{content:"\25B8";font-size:14px;line-height:1}
#live-insights .li-older[open]>summary::before{content:"\25BE"}
#live-insights .li-older>summary span{margin-left:4px;color:var(--muted);font-weight:600}
#live-insights .li-archive{padding:11px 0 11px 21px}
#live-insights .li-archive .li-headline{font-size:var(--type-subsection);line-height:1.3;color:var(--text)}
#live-insights .li-archive .li-text{max-width:72ch;margin:4px 0 0;font-size:13px;line-height:1.45;color:var(--muted)}
@media(max-width:760px){
  #live-insights{margin-top:24px}
  #live-insights .li-latest{padding:4px 0 16px 14px}
  #live-insights .li-latest .li-headline{font-size:20px}
  #live-insights .li-latest .li-text{margin-top:10px;font-size:16px}
  #live-insights .li-prior,#live-insights .li-archive{padding-left:17px}
  #live-insights .li-older>summary{padding-left:17px}
}

/* ===== Situations product composition (scoped to #situations-subnav, #situations-purpose and the six Situations views) =====
   One content system: left-aligned 1200px column -> title + football question -> takeaway notes -> grouped key numbers -> charts/tables
   -> collapsed "About" note. Presentation only: every value and label comes from the existing calculations. */
#situations-subnav{padding-top:2px;padding-bottom:0;gap:2px}
#situations-subnav button{min-height:44px;padding:8px 14px;font-size:13px;letter-spacing:0}
#situations-purpose{max-width:920px;margin:0 auto;padding:14px 0 4px}
#situations-purpose>p{margin:0;max-width:68ch;font-size:16px;line-height:1.5;color:var(--text-strong)}
#situations-purpose .sit-how{margin-top:2px}
#situations-purpose .sit-how summary{display:flex;align-items:center;width:max-content;max-width:100%;min-height:36px;cursor:pointer;color:var(--royal);font-size:13px;font-weight:700}
#situations-purpose .sit-how>div{max-width:68ch;padding:0 0 6px;color:var(--muted);font-size:13px;line-height:1.5}
#situations-purpose .sit-how p{margin:6px 0;font-size:13px;line-height:1.5}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view).workspace{max-width:920px;margin-left:auto;margin-right:auto}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view)>.drive-column>.section-heading{margin:20px 0 0;padding:0;border:0;border-radius:0}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view)>.drive-column>.section-heading h2{font-size:var(--type-page-title);line-height:1.2;letter-spacing:-.02em}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .sit-question{margin:4px 0 0;max-width:68ch;font-size:16px;line-height:1.45;color:var(--muted)}

/* takeaway notes (the existing deterministic observations) */
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .game-flow-list{display:flex;flex-direction:column;gap:10px;max-width:none;margin:18px 0 0}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .game-flow-item{position:relative;display:block;margin:0;padding:12px 40px 12px 16px;border:0;border-left:3px solid var(--royal);border-radius:0;background:transparent;cursor:pointer}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .game-flow-item.game-flow-positive{border-left-color:var(--green)}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .game-flow-item.game-flow-negative{border-left-color:var(--red)}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .game-flow-item::after{content:"\203A";position:absolute;right:14px;top:50%;transform:translateY(-50%);font-size:22px;line-height:1;color:var(--muted-2)}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .game-flow-item:hover,:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .game-flow-item.active{background:var(--royal-wash);border-bottom:0}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .game-flow-headline{font-size:17px;line-height:1.3}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .game-flow-statement{margin:3px 0 0;font-size:14px;line-height:1.5;color:#475569}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .sit-empty{margin:18px 0 0;max-width:68ch;font-size:14px;line-height:1.5;color:var(--muted)}
/* grouped key numbers: lead numbers large, supporting numbers quieter; no per-card rules */
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .sit-metrics{margin-top:30px}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .sit-groups{display:flex;flex-direction:column;gap:32px}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .sit-group-title{margin:0 0 14px;font-size:15px;line-height:1.3;font-weight:700;color:var(--text-strong)}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .sit-group .cs-grid,:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) #splits-result .cs-grid{border:0}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .sit-lead-row{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:18px 28px}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .sit-rest-row{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px 28px;margin-top:18px}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .sit-lead-row .cs-card,:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .sit-rest-row .cs-card{display:block;padding:0;border:0;background:transparent;cursor:default}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .sit-lead-row .cs-label,:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .sit-rest-row .cs-label{margin:0 0 3px;font-size:12px;line-height:1.3;font-weight:600;letter-spacing:0;text-transform:none;color:var(--muted)}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .sit-lead-row .cs-value{margin:0;font-size:30px;line-height:1.12;font-weight:700;letter-spacing:-.01em;color:var(--text-strong);overflow-wrap:break-word}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .sit-rest-row .cs-value{margin:0;font-size:19px;line-height:1.2;font-weight:700;color:#33424d}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .sit-na .cs-value{color:var(--muted-2);font-weight:600}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .sit-group-note{margin:-6px 0 12px;max-width:68ch;font-size:13px;line-height:1.45;color:var(--muted)}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .sit-lead-row .sit-na .cs-value{font-size:22px}
@media(min-width:900px){:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .sit-groups-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:48px}}
/* chapters inside a family */
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .cs-section-label{margin:38px 0 12px;padding:0;border:0;background:transparent;font-size:15px;line-height:1.3;font-weight:700;letter-spacing:0;text-transform:none;color:var(--text-strong)}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .chart-container{max-width:none;margin:0;padding:0;border:0;border-radius:0;background:transparent}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .cs-detail{max-width:none}
/* tables: hierarchy, aligned numbers, restrained rules */
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .cs-table{width:100%;max-width:760px;margin:4px 0 0;border-collapse:collapse}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .cs-table th{padding:8px 12px;background:transparent;border-bottom:1px solid var(--line-strong);color:var(--muted);font-size:12px;font-weight:600;letter-spacing:0;text-transform:none;text-align:right;white-space:nowrap}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .cs-table td{padding:11px 12px;border-bottom:1px solid #EAEFF4;font-size:14px;text-align:right}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .cs-table th:first-child,:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .cs-table td:first-child{text-align:left}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .cs-table td:first-child{font-weight:600;color:var(--text-strong)}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .cs-table tbody tr:last-child td{border-bottom:0}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .cs-table tr:hover{background:transparent}
/* Rushing Line Metrics: same national-comparison hierarchy, flatter container */
#offensive-identity-view #rushing-line-metrics .rlm-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:22px 36px;border:0}
#offensive-identity-view #rushing-line-metrics .rlm-card{padding:0;border:0}
#offensive-identity-view #rushing-line-metrics .rlm-card-label{margin-bottom:8px;font-size:13px;font-weight:700;letter-spacing:0;text-transform:none;color:var(--text-strong)}
#offensive-identity-view #rushing-line-metrics .rlm-card-primary{font-size:24px;line-height:1.15}
#offensive-identity-view #rushing-line-metrics .rlm-note{margin:18px 0 0;padding:0;border:0;max-width:68ch;font-size:14.5px;line-height:1.5;color:#33424d}
#offensive-identity-view .sit-fine{margin-top:10px;max-width:68ch}
#offensive-identity-view .sit-fine summary{display:flex;align-items:center;min-height:36px;cursor:pointer;color:var(--royal);font-size:13px;font-weight:700}
#offensive-identity-view .sit-fine .fine{margin:4px 0 0;font-size:12.5px;line-height:1.5;color:var(--muted)}
/* collapsed "About" note (replaces the old always-open "What's on this tab" block) */
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view)>aside.sit-about{order:99;max-width:none;margin:40px 0 0;padding:0;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view)>aside.sit-about summary{display:flex;align-items:center;min-height:44px;cursor:pointer;color:var(--royal);font-size:13px;font-weight:700}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view)>aside.sit-about details>p{margin:6px 0;max-width:68ch;font-size:13px;line-height:1.5;color:var(--muted)}
/* Splits: context -> quick filters -> detail filters -> results */
#splits-view label{margin-bottom:4px;font-size:12px;font-weight:600;letter-spacing:0;text-transform:none}
#splits-view .sit-split-context{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:12px 16px;max-width:720px;margin-top:20px;padding:0;border:0}
#splits-view .sit-split-quick{margin-top:18px}
#splits-view .sit-split-label{display:block;margin:0 0 8px;font-size:12px;font-weight:600;color:var(--muted)}
#splits-view .splits-presets{gap:8px}
#splits-view .splits-presets .chip{min-height:40px;padding:6px 14px}
#splits-view #splits-preset-clear{border-color:transparent;background:transparent;color:var(--royal-light);text-decoration:underline;text-underline-offset:3px}
#splits-view .sit-split-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px 16px;max-width:960px;margin-top:18px;padding:0;border:0}
#splits-view .sit-split-toggle{margin-top:6px;padding:0;border:0}
#splits-view .splits-toggle{display:flex;align-items:center;gap:10px;min-height:44px;margin:0;font-size:13px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--text);cursor:pointer}
#splits-view #splits-include-garbage{width:20px;height:20px;min-height:0;margin:0;padding:0}
#splits-view #splits-result{margin-top:4px}
#splits-view #splits-result .fine{margin-top:14px;font-size:13px;line-height:1.5;color:var(--muted)}
#splits-view #splits-result .sit-sample{max-width:68ch}
@media(max-width:760px){
 #situations-subnav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;overflow:visible;padding:0 var(--gutter-mobile)}
 #situations-subnav button{min-height:46px;padding:6px 4px;font-size:13px;line-height:1.2;text-align:center;white-space:normal}
 #situations-purpose{padding-top:12px}
 #situations-purpose>p{font-size:15px}
 #situations-purpose .sit-how summary{min-height:44px}
 :is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view)>.drive-column>.section-heading{margin-top:16px}
 :is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .sit-question{font-size:15px}
 :is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .game-flow-headline{font-size:16px}
 :is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .sit-groups{gap:28px}
 :is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .sit-lead-row{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:16px 20px}
 :is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .sit-rest-row{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px 20px}
 :is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .sit-lead-row .cs-value{font-size:28px}
 :is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .cs-section-label{margin-top:32px}
 :is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .cs-table th,:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .cs-table td{padding:10px 6px;font-size:13px}
 :is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .cs-table th{white-space:normal}
 :is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view)>aside.sit-about{margin-top:32px}
 #splits-view .sit-split-context{grid-template-columns:minmax(0,1fr)}
 #splits-view .sit-split-filters{grid-template-columns:repeat(2,minmax(0,1fr))}
 #splits-view .filters select{min-height:44px}
 #splits-view .splits-presets .chip{min-height:44px}
}
@media(max-width:340px){:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .cs-table th,:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .cs-table td{padding:10px 3px;font-size:12.5px}}
/* disclosure chevrons (summaries are display:flex, so the native marker is replaced) */
#situations-purpose .sit-how summary,:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view)>aside.sit-about summary,#offensive-identity-view .sit-fine summary{list-style:none}
#situations-purpose .sit-how summary::-webkit-details-marker,:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view)>aside.sit-about summary::-webkit-details-marker,#offensive-identity-view .sit-fine summary::-webkit-details-marker{display:none}
#situations-purpose .sit-how summary::before,:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view)>aside.sit-about summary::before,#offensive-identity-view .sit-fine summary::before{content:"";flex:none;width:7px;height:7px;margin:0 10px 0 2px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform .15s}
#situations-purpose .sit-how[open] summary::before,:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view)>aside.sit-about details[open] summary::before,#offensive-identity-view .sit-fine[open] summary::before{transform:rotate(45deg)}
/* the two grids that are not generated by sitGroup: Explosiveness run/pass and Game Situation late-half */
#explosiveness-run-pass .cs-grid,#game-situation-late-half .cs-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px 28px;border:0}
#explosiveness-run-pass .cs-card,#game-situation-late-half .cs-card{display:block;padding:0;border:0;background:transparent;cursor:default}
#explosiveness-run-pass .cs-label,#game-situation-late-half .cs-label{margin:0 0 3px;font-size:12px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--muted)}
#explosiveness-run-pass .cs-value,#game-situation-late-half .cs-value{margin:0;font-size:19px;line-height:1.2;font-weight:700;color:#33424d}
/* Situations status chrome: quiet text line instead of a green alert bar */
body:has(#tab-splits.active) #notice{padding:2px 0;border:0;background:transparent;color:var(--muted)}
@media(max-width:760px){
 #situations-subnav button{box-shadow:inset 0 -1px 0 var(--line)}
 #situations-subnav button.active{box-shadow:none}
}
@media(max-width:760px){
 :is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .sit-lead-row[data-cols="1"]{grid-template-columns:minmax(0,1fr)}
 :is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .sit-lead-row[data-cols="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}
 :is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .sit-lead-row[data-cols="3"]{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 14px}
 :is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .sit-lead-row[data-cols="3"] .cs-value{font-size:24px}
 #game-situation-mix .chart-stack-row{grid-template-columns:72px minmax(0,1fr)}
 #game-situation-mix .chart-stack-values{grid-column:2;padding-left:0;font-size:12px;text-align:left;white-space:nowrap}
 #splits-view .sit-split-filters>div:last-child{grid-column:1/-1}
}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .cs-table{display:table}
#game-situation-breakdown,#offensive-identity-breakdown{overflow-x:auto}
body:has(#tab-splits.active) #notice.good,body:has(#tab-splits.active) #notice{padding:2px 0;border:0;background:transparent;color:var(--muted)}
/* Offensive Identity progression: what BYU is calling (+ run/pass mix) -> is it working (+ drive identity) -> line profile.
   The two metric groups live in one container, so it dissolves (display:contents) and the chapters are ordered explicitly. */
#offensive-identity-view>.drive-column{display:flex;flex-direction:column}
#offensive-identity-view #offensive-identity-metrics,#offensive-identity-view #offensive-identity-metrics>.sit-groups{display:contents}
#offensive-identity-view #offensive-identity-metrics .sit-group:nth-child(1){order:1;margin-top:30px}
#offensive-identity-view .cs-section-label:has(+ #offensive-identity-mix){display:none}
#offensive-identity-view #offensive-identity-mix{order:2;margin-top:32px}
#offensive-identity-view #offensive-identity-metrics .sit-group:nth-child(2){order:3;margin-top:36px}
#offensive-identity-view .cs-section-label:has(+ #offensive-identity-breakdown){order:4}
#offensive-identity-view #offensive-identity-breakdown{order:4}
#offensive-identity-view .cs-section-label:has(+ #rushing-line-metrics){order:5}
#offensive-identity-view #rushing-line-metrics{order:5}
@media(max-width:760px){
 :is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .sit-rest-row{grid-template-columns:repeat(2,minmax(0,1fr))}
 :is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .sit-rest-row[data-cols="3"]{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 14px}
 :is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .sit-rest-row[data-cols="1"]{grid-template-columns:minmax(0,1fr)}
 #explosiveness-run-pass .cs-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 #game-situation-late-half .cs-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 14px}
}
/* Rushing Line Metrics: row labels and national rank stay at least 12px */
#offensive-identity-view #rushing-line-metrics .rlm-card-row-label,#offensive-identity-view #rushing-line-metrics .national-context-rank{font-size:12px}
/* values share a baseline across a row even when one label wraps to more lines than its neighbor */
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .sit-lead-row .cs-card,:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .sit-rest-row .cs-card,#explosiveness-run-pass .cs-card,#game-situation-late-half .cs-card{display:flex;flex-direction:column}
:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .sit-lead-row .cs-label,:is(#finishing-drives-view,#explosiveness-view,#field-position-view,#offensive-identity-view,#game-situation-view,#splits-view) .sit-rest-row .cs-label,#explosiveness-run-pass .cs-label,#game-situation-late-half .cs-label{flex:1 1 auto}

/* ===== Chart system (Pass 3): flat, quiet, CSP-safe; scoped to the Situations views and Rushing Line Metrics =====
   Charts reveal patterns, tables keep the detail. One vocabulary across all four charts:
   BYU = solid navy, opponent/allowed = outlined gray, reference lines = hairlines, text >= 12px, no gradients or shadows. */
.vz-slot{margin-top:30px}
.vz-slot:empty{display:none}
.vz{margin:0;min-width:0}
.vz-title{font-family:var(--font-ui);font-size:16px;font-weight:700;line-height:1.35;color:var(--text-strong)}
.vz-caption{margin:4px 0 0;max-width:68ch;font-size:14px;line-height:1.45;color:var(--text-strong)}
.vz-note{margin:14px 0 0;max-width:68ch;font-size:12px;line-height:1.5;color:var(--muted)}
.vz-legend{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;margin:14px 0 0;font-size:12px;line-height:1.4;color:var(--muted)}
.vz-key{display:inline-block;flex:none;width:10px;height:10px;box-sizing:border-box}
.vz-legend .vz-key:not(:first-child){margin-left:12px}
.vz-key-byu{background:var(--royal);border-radius:50%}
.vz-key-opp{background:#fff;border:2px solid #5F6465;border-radius:50%}
.vz-quarters .vz-key-byu{border-radius:1px}
.vz-key-allowed{background:#fff;border:2px solid #5F6465;border-radius:1px}
.vz-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
/* 1. Field Position */
.vz-field-board{position:relative;margin-top:16px}
.vz-lane+.vz-lane{margin-top:14px}
.vz-lane-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:0 8px;font-size:13px;color:var(--muted)}
.vz-lane-head strong{font-size:14px;font-weight:700;color:var(--text-strong)}
.vz-lane-track{position:relative;height:34px;background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.vz-grid{position:absolute;top:0;bottom:0;width:1px;margin-left:-.5px;background:var(--line)}
.vz-grid.vz-mid{background:var(--line-strong)}
.vz-grid.vz-goal{background:#5F6465}
.vz-dot{position:absolute;bottom:5px;z-index:2;width:10px;height:10px;margin-left:-5px;box-sizing:border-box;border-radius:50%}
.vz-lane-byu .vz-dot{background:var(--royal)}
.vz-lane-opp .vz-dot{background:#fff;border:2px solid #5F6465}
.vz-avg{position:absolute;top:-1px;bottom:-1px;z-index:1;width:3px;margin-left:-1.5px}
.vz-lane-byu .vz-avg{background:var(--royal)}
.vz-lane-opp .vz-avg{background:#5F6465}
.vz-avg-row{position:relative;height:24px}
.vz-avg-label{position:absolute;bottom:3px;font-size:12px;font-weight:700;line-height:1.3;white-space:nowrap;font-variant-numeric:tabular-nums;transform:translateX(-50%)}
.vz-avg-label::after{content:"";position:absolute;left:50%;top:100%;width:0;height:0;margin-left:-4px;border:4px solid transparent;border-top-color:currentColor;border-bottom:0}
.vz-avg-label[data-vz-anchor="start"]::after{left:0;margin-left:0}
.vz-avg-label[data-vz-anchor="end"]::after{left:auto;right:0;margin-left:0}
.vz-avg-label[data-vz-anchor="start"]{transform:none}
.vz-avg-label[data-vz-anchor="end"]{transform:translateX(-100%)}
.vz-lane-byu .vz-avg-label{color:var(--royal)}
.vz-lane-opp .vz-avg-label{color:#3f4547}
.vz-field-scale{position:relative;height:18px;margin-top:2px}
.vz-field-scale span{position:absolute;top:1px;font-size:12px;line-height:1.3;color:var(--muted);font-variant-numeric:tabular-nums;transform:translateX(-50%)}
.vz-field-ends{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;margin-top:3px;font-size:12px;line-height:1.3;color:var(--muted)}
.vz-field-ends span:first-child{text-align:left}
.vz-field-ends span:last-child{text-align:right}
/* 2. Scoring opportunities */
.vz-opps{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,100px));gap:8px;margin:16px 0 0;padding:0}
.vz-opp{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-height:72px;padding:8px 4px;box-sizing:border-box;text-align:center;border:1px solid var(--line-strong);border-radius:var(--radius)}
.vz-opp-pts{font-size:20px;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums;color:var(--text-strong)}
.vz-opp-label{font-size:12px;line-height:1.3;color:var(--muted)}
.vz-opp-q{font-size:12px;line-height:1.3;color:var(--muted)}
.vz-opp-td .vz-opp-q{color:#fff}
.vz-opp-fg .vz-opp-q,.vz-opp-other .vz-opp-q{color:var(--royal)}
.vz-opp-td{background:var(--royal);border-color:var(--royal)}
.vz-opp-td .vz-opp-pts,.vz-opp-td .vz-opp-label{color:#fff}
.vz-opp-fg,.vz-opp-other{background:#fff;border:2px solid var(--royal)}
.vz-opp-fg .vz-opp-pts,.vz-opp-other .vz-opp-pts,.vz-opp-fg .vz-opp-label,.vz-opp-other .vz-opp-label{color:var(--royal)}
.vz-opp-empty{background:#fff;border:1px dashed #5F6465}
.vz-opp-empty .vz-opp-pts{color:var(--muted)}
/* 3. Explosives by quarter */
.vz-q-plot{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:28px;margin-top:6px;padding-top:24px}
.vz-q-bars{display:flex;justify-content:center;gap:6px;height:132px;border-bottom:1px solid var(--line-strong)}
.vz-q-wrap{position:relative;flex:1 1 0;min-width:0;max-width:64px}
.vz-q-bar{position:absolute;left:0;right:0;bottom:0;display:block;min-height:3px;box-sizing:border-box}
.vz-q-byu{background:var(--royal)}
.vz-q-allowed{background:#fff;border:2px solid #5F6465}
.vz-q-count{position:absolute;left:0;right:0;margin-bottom:4px;text-align:center;font-size:14px;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums}
.vz-q-zero .vz-q-count{font-weight:400;color:var(--muted)!important}
.vz-q-wrap:first-child .vz-q-count{color:var(--royal)}
.vz-q-wrap:last-child .vz-q-count{color:#3f4547}
.vz-q-label{margin-top:6px;text-align:center;font-size:12px;color:var(--muted)}
/* 4. National comparison bar */
#offensive-identity-view #rushing-line-metrics .rlm-card-row.rlm-national-row{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:6px 8px;padding-top:8px}
#offensive-identity-view #rushing-line-metrics .rlm-national-row .vz-national{display:contents}
#offensive-identity-view #rushing-line-metrics .rlm-national-row .national-context-percentile{grid-column:2;grid-row:1;text-align:right}
#offensive-identity-view #rushing-line-metrics .rlm-national-row .vz-pct{grid-column:1/-1;grid-row:2}
#offensive-identity-view #rushing-line-metrics .rlm-national-row .national-context-rank{grid-column:1/-1;grid-row:3;text-align:left;font-size:12px;color:#5F6465;max-width:none}
.vz-pct{position:relative;display:block;height:8px;margin:4px 0;box-sizing:border-box;background:#fff;border:1px solid var(--line-strong)}
.vz-pct-fill{position:absolute;left:0;top:0;bottom:0;background:var(--royal)}
.vz-pct-mid{position:absolute;left:50%;top:-3px;bottom:-3px;z-index:1;width:3px;margin-left:-1px;box-sizing:border-box;border-left:1px solid #fff;border-right:1px solid #5F6465}
.vz-pct-dot{position:absolute;top:50%;z-index:2;width:12px;height:12px;margin:-6px 0 0 -6px;box-sizing:border-box;border:2px solid #fff;border-radius:50%;background:var(--royal)}
.vz-pct-key{margin:10px 0 0;font-size:12px;line-height:1.45;color:var(--muted)}
/* breakdown moved behind a disclosure: exact zone percentages stay one tap away */
.vz-more{margin-top:26px}
.vz-more>summary{display:flex;align-items:center;min-height:44px;cursor:pointer;list-style:none;font-size:13px;font-weight:700;color:var(--royal)}
.vz-more>summary::-webkit-details-marker{display:none}
.vz-more>summary::before{content:"";flex:none;width:7px;height:7px;margin:0 10px 0 2px;box-sizing:border-box;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg)}
.vz-more[open]>summary::before{transform:rotate(45deg)}
.vz-more>.chart-container{margin-top:6px}
@media(max-width:760px){
 .vz-slot{margin-top:26px}
 .vz-opps{grid-template-columns:repeat(auto-fill,minmax(68px,1fr));gap:6px}
 .vz-opp{min-height:68px}
 .vz-q-plot{gap:10px}
 .vz-q-bars{height:104px;gap:4px}
}

/* ---- 5 Critical Stats polish (Pass 3) ----
   Scorecard composition: three across, then two across (6-column grid, spans 2 and 3), for BOTH the game and the season.
   Football meaning ("why") under each value, a scoped baseline, and legible (12px) helper text. No statistic is touched. */
#critical-stats-view .cs-why{margin:0 0 4px;font:600 13px/1.35 var(--font-ui);color:var(--text)}
#critical-stats-view .cs-grid-primary .cs-why{grid-area:why}
#critical-stats-view #critical-stats-game .cs-grid-primary .cs-card{grid-template-areas:"label label" "primary primary" "why why" "detail detail" "baseline baseline" "empty empty" "fbs fbs"}
#critical-stats-view #critical-stats-game .cs-grid-primary .cs-detail-line{margin:0 0 12px}
#critical-stats-view .cs-baseline-scope{display:inline;margin-left:6px;font:400 12px/1.3 var(--font-ui);letter-spacing:0;text-transform:none;color:var(--muted)}
#critical-stats-view .cs-baseline-scope::before{content:"· "}
#critical-stats-view #critical-stats-game .cs-grid-primary .cs-baseline-label{font-size:11px}
#critical-stats-view #critical-stats-game .cs-grid-primary .cs-baseline-comparison{font-size:12px;color:var(--text)}
#critical-stats-view #critical-stats-game .cs-grid-primary .cs-baseline-rank{font-size:12px;color:var(--muted)}
#critical-stats-view #critical-stats-game .cs-grid-primary .cs-baseline-empty{font-size:12px}
#critical-stats-view .critical-stats-help{font-size:12px}
#critical-stats-view .definition-trigger{position:relative}
#critical-stats-view .definition-trigger::after{content:"";position:absolute;inset:-15px}
#critical-stats-view .cs-detail-line,#critical-stats-view .cs-label{font-size:12px}
/* Three-over-two needs ~290px per card; below 1280px (content column < ~930px) the five stack in one readable column. */
@media(max-width:1279px){
  #critical-stats-view .cs-grid-primary{grid-template-columns:1fr;gap:0}
  #critical-stats-view .cs-grid-primary .cs-card{grid-column:1/-1!important}
}
@media(min-width:1280px){
  #critical-stats-view .cs-grid-primary{grid-template-columns:repeat(6,minmax(0,1fr));column-gap:28px}
  #critical-stats-view :is(#critical-stats-game,#critical-stats-annual) .cs-grid-primary .cs-card:nth-child(-n+3){grid-column:span 2}
  #critical-stats-view :is(#critical-stats-game,#critical-stats-annual) .cs-grid-primary .cs-card:nth-child(n+4){grid-column:span 3}
}

/* ---- Navigation hierarchy (Pass 3) ----
   Rule: PRIMARY nav = major site destinations (white bar, 14px, strong text, 3px underline on the active tab).
         SECONDARY nav = local modes inside one destination (tinted strip, 13px, lighter weight, segmented cells,
         active = white cell + 2px underline). Only the primary bar and #situations-subnav use it today. */
.view-tabs button{font-size:14px;font-weight:600;color:var(--text)}
.view-tabs button:not(.active){color:var(--muted)}
.view-tabs button.active{font-weight:700;border-bottom-width:3px}
#situations-subnav{background:#F5F7FA;border-bottom:1px solid var(--line);padding-top:0;padding-bottom:0;gap:0;box-shadow:none}
#situations-subnav button{transition:none;min-height:38px;padding:6px 14px;font-size:13px;font-weight:500;color:var(--muted);border-bottom:2px solid transparent;background:transparent}
#situations-subnav button:hover:not(.active){background:#EDF1F6;color:var(--text)}
#situations-subnav button.active{background:#fff;color:var(--royal)!important;font-weight:600;border-bottom-color:var(--royal)!important}
@media(max-width:760px){
  .view-tabs button{min-height:40px}
  #situations-subnav{gap:1px;padding:0;background:var(--line);border-top:0;border-bottom:1px solid var(--line)}
  #situations-subnav button{min-height:44px;padding:6px 4px;background:#F5F7FA;box-shadow:none;border-bottom:2px solid transparent}
  #situations-subnav button.active{background:#fff;box-shadow:none}
  #situations-subnav button:hover:not(.active){background:#EDF1F6}
}
