:root{--bg: #071012;--panel: #101a1c;--panel-strong: #142225;--line: #2d3c3d;--text: #e7efea;--muted: #93a19b;--cyan: #67dae5;--orange: #ff8a63;--draw: #cbd079;--radius-surface: 8px;--radius-control: 6px;--radius-compact: 4px}*{box-sizing:border-box}body{min-height:100vh;margin:0;background:radial-gradient(circle at top,#132528 0,var(--bg) 45%);color:var(--text);font-family:ui-sans-serif,system-ui,sans-serif}button,input,select{font:inherit}.page-shell{width:min(1120px,calc(100% - 32px));margin:0 auto;padding:24px 0 32px}.analytics-header,.tool-heading,.result-heading{display:flex;justify-content:space-between;align-items:start;gap:24px}.analytics-header{align-items:center;padding-top:18px}.environment-switch{position:relative;display:grid;gap:5px;color:var(--muted);font:700 9px ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase}.environment-label{display:flex;align-items:center;gap:4px}.environment-options{display:inline-flex;width:fit-content;border:1px solid var(--line);border-radius:var(--radius-control);overflow:hidden}.environment-option{border:0;border-right:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer;padding:8px 10px;font:700 11px ui-sans-serif,system-ui,sans-serif}.environment-option:last-child{border:0}.environment-option:hover,.environment-option:focus-visible,.environment-option.active{background:#67dae514;color:var(--cyan)}.info-popup{position:relative;display:inline-block;text-transform:none}.info-popup-button{display:grid;place-items:center;width:14px;height:14px;border:1px solid rgba(147,161,155,.55);border-radius:50%;background:transparent;color:var(--muted);cursor:pointer;font:400 10px ui-sans-serif,system-ui,monospace;list-style:none;text-transform:none}.info-popup-button::-webkit-details-marker{display:none}.info-popup-button:hover,.info-popup-button:focus-visible,.info-popup[open] .info-popup-button{border-color:var(--cyan);color:var(--cyan)}.info-popup-button:focus-visible{outline:1px solid var(--cyan);outline-offset:2px}.info-popup-panel{position:absolute;z-index:10;top:calc(100% + 8px);left:0;width:min(340px,calc(100vw - 32px));border:1px solid var(--line);border-radius:var(--radius-surface);background:var(--panel-strong);box-shadow:0 12px 32px #0000004d;padding:14px;color:var(--muted);font-size:12px;line-height:1.5;text-transform:none;letter-spacing:normal}.info-popup[data-info-side=left] .info-popup-panel{right:0;left:auto}.info-popup-panel p{margin:0 0 10px}.info-popup-panel p:last-child{margin-bottom:0}.info-popup-title{color:var(--text);font:700 13px ui-sans-serif,system-ui,sans-serif}.info-popup-panel strong{color:var(--cyan)}.info-popup-note{border-top:1px solid var(--line);padding-top:10px}.new-marker{color:var(--accent, #67dae5);font-size:.78em;font-style:normal;font-weight:700}.blocks-announcement{margin:0 0 14px;color:#b9c9c5;font-size:.9rem}.blocks-announcement span{color:var(--accent, #67dae5);font-weight:700}.eyebrow{margin:0 0 6px;color:var(--cyan);font:700 10px ui-monospace,monospace;letter-spacing:.13em}h2,p{margin-top:0}h2{margin-bottom:8px;font-size:20px}.tabs{display:flex;gap:8px;margin:22px 0 14px;overflow-x:auto}.tab,.text-button,.versus button,.roster-subtab{border:1px solid var(--line);border-radius:var(--radius-control);background:transparent;color:var(--muted);cursor:pointer}.tab{flex:0 0 auto;padding:11px 14px;font-size:13px}:is(.tab,.roster-subtab):is(:hover,:focus-visible,.active){border-color:var(--cyan);color:var(--cyan);background:#67dae514}.tool-panel,.coming-soon,.analysis-panel,.roster-panel{border:1px solid var(--line);border-radius:var(--radius-surface);background:#101a1ceb}.tool-panel,.coming-soon,.analysis-panel{padding:clamp(18px,2.8vw,28px);box-shadow:0 16px 50px #0003}.intro{max-width:680px;color:var(--muted);line-height:1.55}.status,small{color:var(--muted);font-size:12px}.text-button{padding:8px 12px}.match-toggle input{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:relative;width:40px;height:20px;margin:0;border:1px solid var(--line);border-radius:999px;background:#101a1ceb;cursor:pointer;transition:border-color .15s ease,background .15s ease}.match-toggle input:after{content:"";position:absolute;top:3px;left:3px;width:12px;height:12px;border-radius:50%;background:var(--muted);transition:transform .15s ease,background .15s ease}.match-toggle input:hover,.match-toggle input:focus-visible{border-color:var(--cyan)}.match-toggle input:focus-visible{outline:2px solid rgba(103,218,229,.35);outline-offset:2px}.match-toggle input:checked{border-color:var(--cyan);background:#67dae51f}.match-toggle input:checked:after{transform:translate(20px);background:var(--cyan)}.predictor-actions{display:flex;align-items:end;gap:10px;margin-bottom:14px}.compact-action{padding:7px 9px;font:600 12px ui-sans-serif,system-ui,sans-serif}.source-control{display:grid;gap:4px;color:var(--muted);font:700 9px ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase}.match-toggle{align-self:start;width:40px;min-width:0}.source-control-label{display:flex;align-items:center;gap:4px}.source-control :is(select,input[type=search]){min-width:115px}.source-control :is(select,input[type=search],input[type=number]){padding:7px 9px;font:600 12px ui-sans-serif,system-ui,sans-serif;letter-spacing:0;text-transform:none}.text-button:hover,.text-button:focus-visible{border-color:var(--text);color:var(--text)}.matchup-grid{display:grid;grid-template-columns:1fr 56px 1fr;align-items:center;gap:10px;margin-top:12px}.team-card,.result-card,.breakdown-card,.roster-ranking-card,.roster-chart-card,.analysis-match-card,.analysis-output-card,.analysis-detail-card{border:1px solid var(--line);border-radius:var(--radius-surface);background:#060d0f99}.result-heading .eyebrow{font-size:12px}.team-card{min-width:0}.home-card{border-top:3px solid var(--cyan)}.away-card{border-top:3px solid var(--orange)}.team-heading{padding:9px 12px 0}.side-label{margin:0;font:800 12px ui-monospace,monospace;letter-spacing:.12em}.field,.range-field{display:block;padding:8px 12px;border-bottom:1px solid var(--line)}.tv-field[hidden]{display:none}.field>span,.range-field>span{display:flex;justify-content:space-between;margin-bottom:5px;font-size:12px;font-weight:700}:where(.field,.source-control) :is(input[type=search],input[type=number],select){width:100%;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--panel-strong);color:var(--text);padding:7px 8px}input[type=range]{width:100%;accent-color:var(--cyan)}.away-card input[type=range]{accent-color:var(--orange)}.field small{display:block;margin-top:4px;min-height:13px;overflow-wrap:anywhere}.coach-autocomplete{position:relative;--coach-results-inset: 0}.coach-field{--coach-results-inset: 12px}.coach-results{position:absolute;z-index:2;right:var(--coach-results-inset);left:var(--coach-results-inset);top:54px;display:grid;border:1px solid var(--line);border-radius:var(--radius-control);overflow:hidden;background:var(--panel)}.coach-results:empty{display:none}.coach-result{border:0;border-bottom:1px solid var(--line);background:var(--panel);color:var(--text);cursor:pointer;padding:10px;text-align:left;font-size:12px}.coach-result:hover,.coach-result:focus-visible{background:var(--panel-strong);color:var(--cyan)}.versus{display:grid;justify-items:center;gap:8px;color:var(--muted);font:700 13px ui-monospace,monospace}.versus button{width:32px;height:32px;border-radius:50%;color:var(--text);font-size:20px}.versus button:hover,.versus button:focus-visible{border-color:var(--text)}.result-card{margin-top:12px;padding:14px 18px}.result-heading>p{margin:3px 0 0;text-align:right}.outcomes{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:9px}.outcome{min-width:0;text-align:center}.outcome span,.outcome small{display:block}.outcome span{color:var(--muted);font:700 10px ui-monospace,monospace;letter-spacing:.1em}.outcome strong{display:block;margin:4px 0;font-size:clamp(25px,4vw,34px)}.home-outcome strong{color:var(--cyan)}.draw-outcome strong{color:var(--draw)}.away-outcome strong{color:var(--orange)}.probability-bar{display:flex;height:6px;margin-top:10px;overflow:hidden}.probability-bar i{display:block;transition:width 90ms linear}#barHome{background:var(--cyan)}#barDraw{background:var(--draw)}#barAway{background:var(--orange)}.net-edge{margin:8px 0 0;color:var(--muted);font:700 11px ui-monospace,monospace;letter-spacing:.08em;text-align:center}.net-edge strong{color:var(--text);font-size:18px}.breakdown-card{margin-top:16px;padding:18px 22px}.breakdown-list{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:14px 0 0}.breakdown-list div{display:block;min-width:0;padding:0;border-top:0}.breakdown-list dt{color:var(--muted);font-size:12px}.breakdown-list dd{margin:5px 0 0;font:700 15px ui-monospace,monospace}.coming-soon{min-height:260px;display:grid;align-content:center}.coming-soon p:last-child{max-width:560px;color:var(--muted);line-height:1.5}.roster-panel{min-width:0;padding:clamp(18px,2.8vw,28px)}.chart-controls{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0}.ranking-subtab-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin:16px 0}.roster-subtabs{display:flex;gap:6px}.ranking-subtab-navigation{display:flex;align-items:end;flex-wrap:wrap;gap:12px}.ranking-updated{margin:0;color:var(--muted);font-size:12px}.roster-subtab{padding:7px 11px;font-size:12px}.roster-ranking-tables{display:grid;grid-template-columns:minmax(0,1fr)}.roster-ranking-card{min-width:0;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.roster-ranking-card h3{margin:0;padding:10px 12px;border-bottom:1px solid var(--line);color:var(--cyan);font:700 11px ui-monospace,monospace;letter-spacing:.12em}.ranking-table{--ranking-rank-width: 64px;--ranking-games-width: 64px;--ranking-draw-width: 70px;--ranking-value-width: 72px;width:100%;min-width:540px;border-collapse:collapse;table-layout:fixed;font-size:12px}.ranking-table th,.ranking-table td{padding:8px 10px;border-bottom:1px solid rgba(45,60,61,.65);text-align:right;white-space:nowrap}.ranking-table :is(th,td)[data-column=rank]{text-align:center}.ranking-table :is(th,td)[data-column=coachName],.ranking-table :is(th,td)[data-column=rosterName]{text-align:left}.ranking-table col[data-column=rank]{width:var(--ranking-rank-width)}.ranking-table col[data-column=games]{width:var(--ranking-games-width)}.ranking-table col[data-column=drawRating]{width:var(--ranking-draw-width)}.ranking-table col:is([data-column=rr],[data-column=cr],[data-column=generated],[data-column=allowed]){width:var(--ranking-value-width)}.ranking-table[data-kind=roster].is-full-ranking col[data-column=rr]{width:var(--ranking-games-width)}.ranking-table[data-kind=coach].is-full-ranking col[data-column=cr]{width:var(--ranking-draw-width)}.ranking-table[data-kind=coach].is-full-ranking col[data-column=drawRating]{width:var(--ranking-value-width)}.ranking-table :is(th,td)[data-column=coachName],.ranking-table :is(th,td)[data-column=rosterName]{overflow:hidden;text-overflow:ellipsis}.ranking-table th{color:var(--muted);font:700 10px ui-monospace,monospace;letter-spacing:.08em}.ranking-table th button{border:0;background:transparent;color:inherit;cursor:pointer;font:inherit;letter-spacing:inherit;padding:0}.ranking-table th[data-column=games] button{position:relative;left:1.2em}.ranking-sort-indicator{display:inline-block;width:1.2em;text-align:center}.ranking-rank-cell{padding-block:3px!important;vertical-align:middle;text-align:center!important}.ranking-rank-cell>span{display:block;line-height:12px}.ranking-rank-cell>small{margin-top:2px;color:var(--muted);display:block;font-size:8px;line-height:8px}.ranking-table tbody tr:last-child td{border-bottom:0}#coachRankingsView,#rosterRankingsView{max-width:600px;margin-inline:auto}.coach-ranking-toolbar{display:flex;align-items:end;flex-wrap:wrap;gap:10px 18px;margin:14px 0}.coach-ranking-search input,.coach-chart-search input{width:min(220px,calc(100vw - 52px))}.coach-ranking-min-games input{width:88px}.coach-ranking-highlight td{background:#67dae51a;color:var(--cyan)}.coach-pager{display:flex;align-items:center;gap:10px;margin:0;color:var(--muted);font-size:12px}.coach-pager .text-button{margin:0}.coach-pager .text-button:disabled{cursor:default;opacity:.45}.coach-page-input{display:flex;align-items:center;gap:6px}.coach-page-input input{width:58px;padding:6px}.chart-controls select{min-width:130px}.chart-controls[hidden],.source-control[hidden],.chart-selections[hidden]{display:none}.roster-chart-card{position:relative;padding:12px}.roster-chart-card canvas{display:block;width:100%;cursor:crosshair;touch-action:pan-y}.chart-tooltip-action{position:absolute;z-index:2;display:inline-flex;align-items:center;gap:5px;min-height:26px;padding:4px 7px;border:1px solid var(--line);border-radius:var(--radius-compact);background:var(--panel-strong);color:var(--cyan);cursor:pointer;font-size:11px;white-space:nowrap}.chart-tooltip-action[hidden]{display:none}.chart-tooltip-action:hover,.chart-tooltip-action:focus-visible{border-color:var(--cyan);background:#67dae514}.chart-tooltip-action svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.tv-curve-dialog{width:min(460px,calc(100vw - 32px));margin:auto;padding:18px;border:1px solid var(--line);border-radius:var(--radius-surface);background:var(--panel);color:var(--text);box-shadow:0 20px 48px #00000073}.tv-curve-dialog::backdrop{background:#00000094}.tv-curve-title{margin:0 32px 12px 0;color:var(--text);font-weight:650}.tv-curve-close{position:absolute;top:9px;right:10px;width:28px;height:28px;padding:0;border:0;border-radius:var(--radius-compact);background:transparent;color:var(--muted);cursor:pointer;font-size:22px;line-height:1}.tv-curve-close:hover,.tv-curve-close:focus-visible{color:var(--cyan);background:#67dae514}.tv-curve-dialog canvas{display:block;width:100%}.chart-legend{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:10px;color:var(--muted);font-size:11px}.chart-legend-item{display:flex;align-items:center;gap:5px}.chart-legend button{padding:0;border:0;color:inherit;background:transparent;font:inherit;cursor:pointer}.chart-legend-item.inactive{opacity:.4}.chart-legend i{width:10px;height:3px;display:inline-block}.chart-selections{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 12px}.chart-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border:1px solid var(--line);border-radius:var(--radius-compact);color:var(--muted);font-size:12px}.chart-chip button{padding:0;border:0;color:var(--cyan);background:transparent;font:inherit;font-size:16px;line-height:1;cursor:pointer}.analysis-lookup{display:flex;align-items:end;gap:10px;max-width:640px;margin-top:14px}.analysis-lookup .field{flex:1;border:0;padding:0}.analysis-lookup input{width:100%;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--panel-strong);color:var(--text);padding:8px}.analysis-submit{border:1px solid var(--cyan);border-radius:var(--radius-control);background:#67dae514;color:var(--cyan);cursor:pointer;padding:8px 14px}.analysis-submit:hover,.analysis-submit:focus-visible{background:#67dae52e}.analysis-results{display:grid;gap:12px;margin-top:16px}.analysis-match-card,.analysis-output-card,.analysis-detail-card{padding:14px 18px}.analysis-match-heading,.analysis-teams{display:flex;justify-content:space-between;gap:16px}.analysis-match-heading{align-items:start}.analysis-match-heading h3,.analysis-detail-card h3{margin:0;font-size:16px}.match-link{color:var(--cyan);font-size:12px}.analysis-teams{align-items:center;margin-top:12px}.analysis-team{display:grid;flex:1;gap:3px;min-width:0}.analysis-team strong,.analysis-team span,.analysis-team small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.analysis-team span{color:var(--muted);font-size:12px}.away-analysis-team{text-align:right}.analysis-score{display:grid;justify-items:center;gap:2px}.analysis-score strong{font-size:24px}.analysis-score span{color:var(--muted);font:700 9px ui-monospace,monospace;letter-spacing:.1em}.analysis-output-card .outcomes{margin-top:7px}.analysis-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.analysis-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;margin:12px 0 0}.analysis-list div{min-width:0}.analysis-list dt{color:var(--muted);font-size:11px}.analysis-list dd{margin:3px 0 0;font:700 13px ui-monospace,monospace}@media(max-width:680px){.page-shell{width:min(100% - 16px,1120px);padding-top:12px}.analytics-header{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);align-items:start;gap:10px}.environment-controls{justify-self:end}.tool-heading,.result-heading{display:block}.tabs{margin:12px 0 10px}.tab{padding:8px 10px;font-size:12px}.tool-panel{padding:14px 10px}.text-button{margin-top:10px}.predictor-actions{align-items:end;flex-wrap:wrap}.predictor-actions .text-button{margin-top:0}.matchup-grid{grid-template-columns:minmax(0,1fr) 30px minmax(0,1fr);align-items:center;gap:4px}.versus{grid-row:auto;gap:5px}.versus span{font-size:10px}.versus button{width:28px;height:28px;font-size:16px}.team-heading{padding:7px 8px 0}.field,.range-field{padding:7px 8px}.field>span,.range-field>span{margin-bottom:4px;font-size:11px}input[type=search],select{padding:6px;font-size:12px}.field small{font-size:10px;min-height:12px}.coach-field{--coach-results-inset: 8px}.coach-results{top:48px}.coach-result{padding:8px;font-size:11px}.result-heading>p{margin-top:12px;text-align:left}.outcomes{gap:8px}.result-card,.breakdown-card,.analysis-match-card,.analysis-output-card,.analysis-detail-card{padding:12px}.breakdown-list{grid-template-columns:repeat(2,1fr)}.analysis-panel{padding:14px 10px}.analysis-lookup{align-items:stretch}.analysis-detail-grid{grid-template-columns:1fr}.roster-panel{padding:12px}.ranking-table{--ranking-rank-width: 26px;--ranking-games-width: 42px;--ranking-draw-width: 38px;--ranking-value-width: 50px;min-width:0;font-size:11px}.ranking-table th,.ranking-table td{padding:8px 4px}.ranking-table[data-kind=roster].is-full-ranking col[data-column=allowed],.ranking-table[data-kind=coach].is-full-ranking col:is([data-column=cr],[data-column=generated],[data-column=allowed]){width:var(--ranking-draw-width)}}
