:root{color-scheme:dark;font:14px/1.4 Arial,sans-serif;color:#edf5f7;background:#0c1922}*{box-sizing:border-box}body{margin:0}main{max-width:1672px;margin:auto}button,select{font:inherit;color:inherit;background:#182f40;border:1px solid #4b6676;border-radius:4px;cursor:pointer}button:focus-visible,select:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #ffda66;outline-offset:2px}a{color:#94e3c1}.summary{min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 12px;font-size:12px}.summary span{font-size:11px;color:#bacbd6}.scene-scroll{overflow:auto;overscroll-behavior-x:contain;overscroll-behavior-y:auto}.scene{position:relative;width:100%;aspect-ratio:1672/941;container-type:inline-size;background:#cad6dd}.scene>img{display:block;width:100%;height:100%;object-fit:contain}.scene-scroll.zoomed .scene{min-width:1400px}.layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.numbers{z-index:1}.hits{z-index:2}#labels{z-index:3}/* Match NFL's joined navy name + grade block; scale with the players. */
.name-label{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;display:flex;align-items:stretch;gap:0;white-space:nowrap;border:0;border-radius:.14cqw;background:transparent;padding:0;font-size:1.6cqw;line-height:1;font-weight:700;box-shadow:0 0 0 .07cqw #fff;overflow:hidden}
.tag-name{background:#0b1f3a;color:#fff;padding:.18em .34em;line-height:1.1}
.grade-label{display:flex;align-items:center;padding:.18em .32em;background:#9aa9b8;color:#0b1520;line-height:1.1;font-weight:800}
.grade-high .grade-label{background:#2fe07a;color:#032b12}.grade-mid .grade-label{background:#ffd400;color:#1a1400}.grade-low .grade-label{background:#ff4f4f;color:#2b0000}
.hit{position:absolute;transform:translate(-50%,-50%);width:4.6%;height:9%;pointer-events:auto;border:2px solid transparent;background:transparent}.hit:hover,.hit[aria-pressed=true]{border-color:#ffcf51;background:#ffe26c22}.name-label[aria-pressed=true]{outline:2px solid #ffcf51}.jersey-number{font-family:Impact,'Arial Narrow',sans-serif;font-weight:900;text-anchor:middle;dominant-baseline:central;paint-order:stroke fill;stroke-width:1;stroke-linejoin:round}.jersey-number.tor{fill:#17478b;stroke:white}.jersey-number.mtl{fill:white;stroke:#154789}.hide-names .tag-name,.hide-grades .grade-label,.hide-numbers .numbers{display:none}.view-controls{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1fr;border-bottom:1px solid #3c5360}.view-controls>*{min-height:38px;display:flex;align-items:center;justify-content:center;gap:5px;border-radius:0;font-size:12px}.view-controls label{border-right:1px solid #3c5360}.view-controls input{accent-color:#D18445}.team-controls{display:grid;grid-template-columns:1fr 1fr}.team-control{display:grid;grid-template-columns:48px repeat(3,minmax(0,1fr));border-bottom:1px solid #3c5360}.team-control strong{display:flex;align-items:center;justify-content:center;font-size:12px}.team-control label{display:grid;min-width:0;padding:4px 6px;border-left:1px solid #3c5360;font-size:9px;text-transform:uppercase;color:#bbccd6}.team-control select{width:100%;min-width:0;height:32px;padding:0 2px;border:0;font-size:12px}.caption{margin:0;padding:5px 12px;font-size:11px;color:#bbccd6}#player-detail{padding:12px;background:#142836;border-top:1px solid #3c5360}#player-detail p{margin:5px 0;font-size:12px;color:#c6d4dc}.roster-panel,.sources{padding:8px 12px}.roster-panel summary,.sources summary{cursor:pointer;min-height:32px;padding:6px 0}.sources{font-size:12px;color:#bdccd6}.rosters{display:grid;grid-template-columns:1fr 1fr;gap:12px}.roster h2{font-size:13px}.roster-items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.roster-items button{font-size:12px;text-align:left;min-height:46px;padding:6px}.roster-items small{display:block;color:#a9bdc9}#art-failure{position:absolute;top:40%;left:15%;width:70%;background:#152c3a;color:white;padding:12px}.no-art>img{visibility:hidden}.no-art .numbers,.no-art .hits{display:none}.no-art .name-label{display:flex}
@media(max-width:900px){.team-controls{grid-template-columns:1fr}}@media(max-width:600px){.summary{padding:6px 8px;font-size:11px;gap:6px}.summary span{font-size:9px}.view-controls>*{font-size:10px;gap:2px}.team-control select{font-size:11px}.team-control label{padding:3px 5px}.rosters{grid-template-columns:1fr}.caption{font-size:10px}.sources{font-size:11px}}

.scene[data-arena="TOR"] .jersey-number.tor{fill:white;stroke:#17478b}.scene[data-arena="TOR"] .jersey-number.mtl{fill:#17478b;stroke:#e94a55}.arena-control{display:flex;align-items:center;gap:10px;padding:4px 8px;border-bottom:1px solid #3c5360;font-size:11px}.arena-control select{min-width:0;flex:1;height:30px;font-size:12px}

.arena-control[hidden]{display:none}.sources a{overflow-wrap:anywhere}
@media(max-width:300px){.view-controls{grid-template-columns:1.1fr .8fr 1fr 1fr 1.1fr}.view-controls>*{min-width:0;font-size:9px;gap:1px;padding-inline:2px}.view-controls input{margin:2px}}

.summary{min-height:32px;padding:6px 10px;gap:8px;border-bottom:1px solid #30414d}
#matchup-title{white-space:nowrap;flex-shrink:0}
.matchup-odds{display:flex;align-items:center;justify-content:flex-end;gap:14px;min-width:0}
.matchup-odds>span{white-space:nowrap}.matchup-odds b{color:#edf5f7;font-weight:600}
@media(max-width:600px){.summary{padding:5px 6px;font-size:10px;gap:5px}.matchup-odds{gap:8px}.matchup-odds>span{display:flex;flex-direction:column;font-size:9px;line-height:1.3}.matchup-odds b{font-size:9px}}

.view-controls>*{min-width:0}.generic-rink .name-label{overflow:visible}.generic-rink .name-label::before{content:attr(data-position);position:absolute;bottom:115%;left:50%;transform:translateX(-50%);padding:.25em .7em;border-radius:20px;background:#163c60;color:white;border:2px solid #fff;font-size:1.1cqw;white-space:nowrap}.generic-rink .away-unit::before{background:#fff;color:#163c60;border-color:#163c60}
/* Contain subpixel overlay rounding without changing the rink's own zoom scrolling. */
main{overflow-x:clip}

/* Team rankings and player card (D-109, D-110): ranks, never lines; number and initials, no photos */
.rankings{padding:10px 12px;border-top:1px solid #3c5360;background:#0f2230}.rank-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}.rankings h2{margin:0;font-size:15px}.rank-mode{font-size:12px;color:#bbccd6;display:flex;align-items:center;gap:6px}.rank-mode select{height:32px;max-width:100%;font-size:12px}.rank-note{margin:6px 0;font-size:11px;color:#a9bdc9}.rank-teams{display:grid;grid-template-columns:1fr 1fr;gap:12px}.rank-team h3{margin:8px 0 2px;font-size:14px}.rank-header{margin:0 0 6px;font-size:12px;color:#ffe08a}.rank-block h4{margin:8px 0 2px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#c6d4dc}.rank-group{margin:6px 0 2px;font-size:11px;color:#95e5c2}.rank-list,.rank-out{list-style:none;margin:0;padding:0;display:grid;gap:3px}.rank-out li{font-size:12px;color:#c6d4dc}.rank-row{width:100%;display:grid;grid-template-columns:34px minmax(0,1fr) 22px auto;align-items:center;gap:6px;min-height:34px;padding:4px 8px;text-align:left;font-size:12px;background:#142836;color:#fff;border:1px solid #2c4452;border-radius:6px;cursor:pointer}.rank-row:hover,.rank-row:focus-visible{border-color:#ffcf51}.rank-n{color:#a9bdc9}.rank-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rank-role{color:#95e5c2;text-align:center}.rank-value{color:#e7eef2;white-space:nowrap}.rank-tag{grid-column:2/-1;font-size:10px;color:#ffb38a}.player-card{width:min(440px,calc(100vw - 32px));max-height:calc(100vh - 32px);padding:0;border:1px solid #3c5360;border-radius:12px;background:#10202b;color:#fff}.player-card::backdrop{background:#000a}.card-shell{position:relative;padding:16px}.card-close{position:absolute;top:8px;right:8px;width:36px;height:36px;font-size:20px;border-radius:18px}.card-head{display:flex;gap:12px;align-items:center;padding-right:40px}.card-badge{flex:0 0 72px;height:72px;border-radius:36px;background:#1d3a4b;display:grid;place-items:center;align-content:center;border:2px solid #95e5c2}.card-initials{font-size:22px;font-weight:800;line-height:1}.card-number{font-size:12px;color:#c6d4dc}.card-name{margin:0;font-size:18px}.card-sub,.card-rank{margin:2px 0;font-size:12px;color:#c6d4dc}.card-rank{color:#ffe08a}.card-stats{display:grid;grid-template-columns:1fr auto;gap:6px 12px;margin:14px 0;font-size:13px}.card-stats dt{color:#a9bdc9}.card-stats dd{margin:0;text-align:right}.card-foot{font-size:11px;color:#a9bdc9}.player-card a{color:#95e5c2}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}@media (max-width:640px){.rank-teams{grid-template-columns:1fr}.player-card{width:calc(100vw - 16px);max-width:none;margin:auto 8px}}
.team-controls[hidden],.roster-panel[hidden]{display:none}
.summary-title{display:flex;flex-direction:column;min-width:0;flex:1 1 0}.summary:has(.rink-ranking:not([hidden])){flex-wrap:wrap;row-gap:4px}@media (max-width:640px){.summary:has(.rink-ranking:not([hidden])) .summary-title{flex-basis:100%}}.rink-ranking{font-size:11px;font-weight:600;color:#ffe08a;line-height:1.25}.rink-ranking[hidden]{display:none}
