:root{color-scheme:dark;font-family:Inter,system-ui,sans-serif;--bg: #08120f;--panel: #10241d;--border: #244b3c;--accent: #a6d900;--accent-ink: #10241d;--text: #edf7ef;--text-dim: #9fb8ac;--danger: #ff6b6b;--success: #7ee787;background:var(--bg);color:var(--text)}*{box-sizing:border-box}body{margin:0}#root{max-width:1100px;margin:0 auto;padding:48px 24px}.eyebrow{color:var(--accent);font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:.8rem;margin:0 0 8px}h1{font-size:clamp(2rem,6vw,3.2rem);margin:0 0 16px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:18px;padding:28px;margin-top:24px}.auth-shell{display:flex;min-height:60vh;align-items:center;justify-content:center}.auth-form{width:min(400px,100%);display:flex;flex-direction:column;gap:14px}label{display:flex;flex-direction:column;gap:6px;font-size:.9rem;color:var(--text-dim)}input,select{background:#0d1e18;border:1px solid var(--border);border-radius:8px;color:var(--text);padding:10px 12px;font-size:1rem}button{background:var(--accent);color:var(--accent-ink);border:none;border-radius:10px;padding:12px 20px;font-weight:700;cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}.upload{display:flex;align-items:center;gap:12px;background:#17372c;border:1px dashed var(--border);border-radius:12px;padding:16px;cursor:pointer;position:relative;margin:16px 0}.upload input{position:absolute;inset:0;opacity:0;cursor:pointer}.hint{color:var(--text-dim);font-size:.9rem}.status-error{color:var(--danger)}.status-success{color:var(--success)}.import-preview{background:#0d1e18;border:1px solid var(--border);border-radius:12px;padding:16px;margin:12px 0}.match-line{font-size:1.1rem;font-weight:700;margin:0 0 6px}.detection-counts{color:var(--text-dim);margin:0}.app-nav{display:flex;align-items:center;gap:20px;padding-bottom:16px;border-bottom:1px solid var(--border)}.app-nav .eyebrow{margin:0 auto 0 0}.app-nav a{color:var(--text-dim);text-decoration:none;font-weight:600}.app-nav a.active{color:var(--accent)}.link-button{background:none;color:var(--text-dim);padding:0;font-weight:600}.page-heading,.league-section-heading,.league-row,.league-row-main,.league-row-actions,.league-form-row{display:flex;align-items:center}.page-heading{justify-content:space-between;gap:24px;margin-top:28px}.page-heading h1{margin-bottom:8px}.page-heading .hint{margin:0}.page-shell{padding-bottom:48px}.league-count{display:flex;align-items:baseline;gap:8px;color:var(--text-dim);border-left:1px solid var(--border);padding:8px 0 8px 20px;white-space:nowrap}.league-count strong{color:var(--accent);font-size:1.7rem;font-variant-numeric:tabular-nums}.league-create-panel{display:grid;grid-template-columns:minmax(220px,.85fr) minmax(300px,1.15fr);gap:32px;align-items:start}.league-create-panel h2,.league-section-heading h2{margin:0;font-size:1.15rem}.league-create-panel .hint{margin:8px 0 0;max-width:34ch}.league-create-form,.league-rename-form{display:grid;gap:8px}.league-create-form>label,.league-rename-form>label{color:var(--text-dim)}.league-form-row{gap:8px}.league-form-row input{flex:1;min-width:0}.league-form-row button{flex:0 0 auto}.button-secondary{background:transparent;color:var(--text);border:1px solid var(--border)}.button-danger{background:transparent;color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 45%,var(--border))}.button-danger:disabled{color:var(--text-dim);border-color:var(--border)}.league-catalog{margin-top:36px}.league-section-heading{justify-content:space-between;margin-bottom:14px}.league-section-heading .hint{margin:0}.league-list{list-style:none;padding:0;margin:0;display:grid;gap:10px}.league-row{justify-content:space-between;gap:24px;padding:18px 20px;background:var(--panel);border:1px solid var(--border);border-radius:12px}.league-row-main{gap:14px;min-width:0;flex:1}.league-mark,.league-empty-mark{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border:1px solid var(--border);border-radius:10px;color:var(--accent);background:#17372c;font-size:1.2rem;font-weight:800}.league-row-copy{min-width:0;flex:1}.league-row-copy h3,.league-empty h3{margin:0;font-size:1.05rem}.league-row-copy .hint{margin:5px 0 0}.league-row-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px}.league-row-actions button,.league-form-row button{padding:10px 14px}.league-delete-help{flex-basis:100%;text-align:right;font-size:.78rem}.league-rename-form{width:100%}.league-empty{display:flex;align-items:center;gap:16px;margin:0}.league-empty-mark{width:48px;height:48px;flex-basis:48px;border-radius:50%}.league-empty .hint{margin:6px 0 0}.breadcrumb{display:flex;align-items:center;gap:9px;margin:20px 0 0;color:var(--text-dim);font-size:.9rem}.breadcrumb a{color:var(--accent);text-decoration:none}.button-link{display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:var(--accent-ink);border-radius:10px;padding:11px 16px;text-decoration:none;font-weight:700}.league-detail-page .page-heading{margin-top:20px}.league-empty-state{display:grid;justify-items:start;gap:9px}.league-empty-state h2,.league-empty-state p{margin:0}.league-match-list{display:grid;gap:10px;list-style:none;padding:0;margin:24px 0}.league-match-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,.7fr);gap:16px;align-items:center;padding:15px 18px;border:1px solid var(--border);border-radius:12px;background:var(--panel)}.league-match-summary{display:grid;grid-template-columns:105px minmax(0,1fr) auto;gap:14px;align-items:center;min-width:0;color:var(--text);text-decoration:none}.league-match-summary time,.league-match-round{color:var(--text-dim);font-size:.85rem;white-space:nowrap}.league-match-teams{display:flex;align-items:center;gap:10px;min-width:0}.league-match-teams strong{flex:0 0 auto;font-size:1.1rem;color:var(--accent);font-variant-numeric:tabular-nums}.league-match-teams strong+*{margin-left:auto}.league-match-summary:hover .league-match-teams{color:var(--accent)}.match-actions{display:flex;flex-wrap:wrap;align-items:end;justify-content:flex-end;gap:8px}.match-move-control{display:flex;align-items:end;gap:8px}.match-move-control label{min-width:150px}.match-move-control button,.match-actions>button{padding:9px 12px}.confirm-scrim{position:fixed;z-index:10;inset:0;display:grid;place-items:center;padding:20px;background:#000000b8}.confirm-dialog{width:min(480px,100%);padding:24px;border:1px solid var(--border);border-radius:14px;background:var(--panel);box-shadow:0 18px 70px #00000073}.confirm-dialog h2{margin:0 0 10px}.confirm-dialog p{color:var(--text-dim);line-height:1.55}.confirm-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:22px}.match-detail-header{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.7fr);gap:24px;align-items:center;margin-top:20px;padding-bottom:20px;border-bottom:1px solid var(--border)}.match-detail-header h1{font-size:clamp(1.5rem,4vw,2.4rem);line-height:1.2}.match-detail-header h1 span{color:var(--accent);white-space:nowrap;font-variant-numeric:tabular-nums}.match-detail-header .hint{max-width:70ch;overflow-wrap:anywhere}.match-participant-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:24px 0}.match-participant-section{min-width:0}.match-participant-section>h2{margin:0 0 12px}.match-participant{padding:14px 16px;border-bottom:1px solid var(--border)}.match-participant header{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.match-participant h3,.match-participant .hint{margin:0}.match-metric-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px 16px;margin:14px 0 0}.match-metric-list div{display:flex;justify-content:space-between;gap:12px;padding-top:7px;border-top:1px solid var(--border)}.match-metric-list dt{color:var(--text-dim)}.match-metric-list dd{margin:0;font-weight:700;font-variant-numeric:tabular-nums}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.tabs{display:flex;gap:8px;margin-bottom:16px}.tabs [role=tab]{background:transparent;border:1px solid var(--border);color:var(--text-dim);font-weight:600}.tabs [role=tab][data-state=active]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.filter-bar{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:20px}.filter-bar label{min-width:140px}.ranking-table{width:100%;border-collapse:collapse;margin-bottom:16px}.ranking-table-wrap{overflow-x:auto;overscroll-behavior-inline:contain}.ranking-mobile-cards{display:none}.ranking-table-toolbar{display:flex;justify-content:flex-end;margin:0 0 10px}.ranking-search{display:grid;gap:5px;width:min(290px,100%);color:var(--text-dim);font-size:.85rem}.ranking-search input{width:100%}.ranking-table th,.ranking-table td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border)}.ranking-table th{color:var(--text-dim);font-size:.85rem;text-transform:uppercase;letter-spacing:.04em}.ranking-sort-button{display:inline-flex;align-items:center;gap:6px;min-height:24px;padding:0;border:0;border-radius:0;background:transparent;color:inherit;font:inherit;letter-spacing:inherit;text-align:inherit}.ranking-sort-button:hover,.ranking-sort-button:focus-visible{color:var(--text)}.ranking-sort-button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.ranking-sort-indicator{color:var(--accent);font-size:1rem;line-height:1}.export-csv{display:inline-block;color:var(--accent);font-weight:700;text-decoration:none}h2{font-size:1.2rem;margin:28px 0 12px}.metric-summary{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-bottom:16px}.metric-card{background:#0d1e18;border:1px solid var(--border);border-radius:10px;padding:12px}.metric-label{margin:0;font-weight:700;color:var(--accent)}.metric-value{margin:4px 0;font-size:1.4rem;font-weight:700}.series-picker{border:1px solid var(--border);border-radius:10px;padding:12px 16px;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px}.series-picker legend{color:var(--text-dim);padding:0 6px}.series-picker label{flex-direction:row;align-items:center;gap:6px;color:var(--text)}.trend-chart{max-width:100%;height:auto}.comparison-control{display:grid;gap:6px;max-width:38rem;margin:20px 0 12px}.match-comparison{border-top:2px solid var(--accent);margin:0 0 24px}.comparison-heading,.comparison-row{display:grid;grid-template-columns:minmax(6rem,1fr) minmax(7rem,.8fr) minmax(7rem,.8fr);gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}.comparison-caption{margin:0;color:var(--text-dim);font-size:.8rem}.comparison-caption:first-child{grid-column:2}.comparison-row span:last-child{color:var(--accent);font-weight:700}.profile-header{display:flex;justify-content:space-between;align-items:end;gap:24px}.profile-header .hint{max-width:36ch;margin:0 0 16px}.profile-layout-tabs{display:flex;gap:8px;overflow-x:auto;padding:16px 0;border-bottom:1px solid var(--border)}.profile-layout-tabs button{flex:0 0 auto;background:transparent;border:1px solid var(--border);color:var(--text-dim);padding:9px 12px}.profile-layout-tabs button[aria-selected=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.profile-layout-cards .match-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin:22px 0}.profile-layout-cards .match-cards h2{grid-column:1 / -1;margin:0}.profile-layout-cards .match-cards button{background:#0d1e18;border:1px solid var(--border);color:var(--text);text-align:left;min-height:68px}.profile-layout-cards .match-cards button.selected{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.profile-split{display:grid;grid-template-columns:minmax(220px,.45fr) 1fr;gap:24px;padding-top:8px}.profile-split aside{border-right:1px solid var(--border);padding-right:20px}.profile-split aside h2{margin-top:20px}.profile-split .series-picker{display:grid}.profile-split main>.trend-chart{margin-top:20px}.profile-timeline{display:flex;align-items:center;gap:10px;overflow-x:auto;padding:22px 0 14px;border-bottom:1px solid var(--border)}.profile-timeline button{flex:0 0 auto;background:#0d1e18;border:1px solid var(--border);color:var(--text-dim);padding:8px 12px}.profile-timeline button.selected{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}@media(max-width:700px){.profile-header,.profile-split{display:block}.profile-split aside{border-right:0;border-bottom:1px solid var(--border);padding-right:0;padding-bottom:12px}}.demo-nav,.demo-controls,.match-cards,.timeline{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.demo-nav a{padding:8px 10px;border:1px solid var(--border);border-radius:8px;color:var(--text-dim);text-decoration:none}.demo-nav a.active,.selected{background:var(--accent);color:var(--accent-ink)!important;border-color:var(--accent)}.demo-note{max-width:65ch}.demo-controls select,.demo-controls input{min-width:180px}.demo-layout{display:grid;grid-template-columns:minmax(230px,320px) 1fr;gap:20px}.series-demo{border:1px solid var(--border);padding:14px;border-radius:10px}.series-demo input{width:100%;margin:12px 0}.series-demo label{display:block;margin:8px 0}.series-demo details{padding:8px 0;border-top:1px solid var(--border)}.match-cards button,.timeline span{background:#0d1e18;border:1px solid var(--border);padding:10px;border-radius:8px}.timeline{align-items:center;border-bottom:1px solid var(--border);padding-bottom:14px}.timeline span{border-radius:20px}@media(max-width:700px){.demo-layout{grid-template-columns:1fr}}.roster-picker{border:1px solid var(--border);border-radius:12px;margin:0;padding:16px}.roster-picker legend{color:var(--text);font-weight:700;padding:0 6px}.roster-search{display:grid;gap:8px;max-width:100%}.roster-picker>.hint{line-height:1.5;margin:14px 0 10px}.roster-list{display:grid;gap:6px;max-height:290px;overflow-y:auto;padding:4px 0}.league-participant-list{max-height:340px}.league-participant{display:flex;align-items:center;gap:10px;padding:9px 10px;border:1px solid transparent;border-radius:8px;color:var(--text)}.league-participant:hover{background:#17372c}.league-participant.selected{background:#1e3d30;border-color:var(--accent);color:var(--text)!important}.league-participant input[type=checkbox]{accent-color:var(--accent)}.mobile-roster-controls{display:none}.league-participant-identity{display:grid;gap:2px;min-width:0}.league-participant-name{font-weight:650}.league-participant-club{color:var(--muted);font-size:.88rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.participant-comparison-page{max-width:1320px}.participant-comparison-results{display:grid;gap:22px;min-width:0}.comparison-metric-selector{display:grid;gap:7px;width:min(100%,290px);color:var(--text-dim)}.comparison-metric-selector select{width:100%}.analysis-header{display:flex;justify-content:space-between;align-items:end;gap:24px;border-bottom:1px solid var(--border);padding-bottom:20px}.analysis-header .hint{max-width:34ch;margin:0}.analysis-workspace{display:grid;grid-template-columns:minmax(235px,300px) minmax(0,1fr);gap:24px;align-items:start;margin-top:24px}.comparison-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:12px}.comparison-mobile-cards{display:none}.comparison-table{width:100%;min-width:540px;border-collapse:collapse}.comparison-table th,.comparison-table td{padding:14px 16px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}.comparison-table thead th{background:#0d1e18;color:var(--text-dim);font-size:.82rem;letter-spacing:.04em;text-transform:uppercase}.comparison-table tbody tr:last-child>*{border-bottom:0}.comparison-table tbody th{color:var(--text);min-width:150px}.comparison-table small{display:block;color:var(--text-dim);font-size:.78rem;font-weight:500;margin-top:3px}.comparison-table td{font-variant-numeric:tabular-nums;font-weight:700}.comparison-priority-row>*{background:#ffffff06}.comparison-priority-row th{border-left:4px solid transparent;padding-left:12px}.comparison-priority-row.priority-tot th{border-left-color:#ffb454}.comparison-priority-row.priority-tp th{border-left-color:#5ac8fa}.priority-metric-title{display:flex;align-items:center;gap:9px}.priority-metric-symbol{display:inline-grid;flex:0 0 28px;width:28px;height:28px;place-items:center;border:1px solid currentColor;border-radius:50%;font-size:.82rem;font-weight:800}.efficiency-symbol{color:#ffb454}.time-symbol{color:#5ac8fa;font-size:1rem}.comparison-table .metric-value-caption{color:#ffca85;font-weight:700}.duration-value{color:#8cdbff;font-size:1.05rem;letter-spacing:.02em}.person-accent{display:block;border-left:4px solid;padding-left:9px;color:var(--text);text-transform:none;font-size:.88rem;letter-spacing:normal}.analysis-chart{min-width:0;margin-top:0;border:1px solid var(--border);border-radius:12px;padding:18px;overflow-x:auto}.chart-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.chart-heading h2{margin:0}.analysis-chart-canvas{margin-top:12px}@media(max-width:850px){.analysis-header{align-items:start;flex-direction:column}.analysis-workspace{grid-template-columns:minmax(0,1fr)}.analysis-workspace>aside,.analysis-workspace>main{min-width:0}}@media(max-width:700px){#root{padding:20px 12px 32px}.panel{border-radius:14px;padding:18px 14px;margin-top:16px}.app-nav{align-items:center;gap:14px;overflow-x:auto;padding-bottom:12px}.app-nav .eyebrow{flex:0 0 auto;margin-right:4px}.app-nav a,.app-nav .link-button{flex:0 0 auto}.filter-bar{display:grid;grid-template-columns:1fr;gap:12px}.filter-bar label{min-width:0}.tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;width:min(100%,340px);padding:4px;border:1px solid var(--border);border-radius:12px;background:#0d1e18}.tabs [role=tab]{min-height:42px;padding:8px 12px;border-radius:8px}.ranking-table-wrap{display:none}.ranking-mobile-cards{display:grid;gap:10px}.ranking-mobile-card{display:grid;gap:12px;padding:14px;border:1px solid var(--border);border-radius:12px;background:#0d1e18}.ranking-mobile-card-heading h2{margin:0;font-size:1.05rem}.ranking-mobile-card-heading h2 a{color:var(--text);text-decoration-thickness:1px;text-underline-offset:3px}.ranking-mobile-card-heading p{margin:4px 0 0;color:var(--text-dim);font-size:.9rem}.ranking-mobile-card-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}.ranking-mobile-card-stats>div{display:grid;gap:3px;padding:9px 10px;border-radius:8px;background:#10241d}.ranking-mobile-card-stats dt{color:var(--text-dim);font-size:.76rem}.ranking-mobile-card-stats dd{margin:0;color:var(--text);font-variant-numeric:tabular-nums;font-weight:750}.ranking-mobile-compare{justify-self:start;color:var(--accent);font-size:.88rem;font-weight:700;text-underline-offset:3px}.ranking-search{width:100%}.mobile-roster-controls{display:grid;gap:10px;margin:4px 0 10px}.mobile-selected-participants{display:flex;flex-wrap:wrap;gap:7px}.mobile-selected-chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:5px 8px 5px 10px;border:1px solid var(--border);border-radius:999px;background:#17372c;color:var(--text);font-size:.82rem}.mobile-selected-chip>span{overflow-wrap:anywhere}.mobile-selected-chip button{flex:0 0 24px;width:24px;min-height:24px;padding:0;border-radius:50%;background:transparent;color:var(--text);font-size:1rem;line-height:1}.roster-toggle{display:flex;align-items:center;justify-content:space-between;min-height:42px;padding:9px 12px;border:1px solid var(--border);background:#0d1e18;color:var(--text);text-align:left}.roster-picker-content{display:none}.league-participant-picker.is-open .roster-picker-content{display:block}.league-participant-picker.is-open .league-participant-list{max-height:250px}.league-participant.selected{color:var(--text)!important}.comparison-table-wrap{display:none}.comparison-mobile-cards{display:grid;gap:10px}.comparison-mobile-card{min-width:0;padding:14px;border:1px solid var(--border);border-radius:12px;background:#0d1e18}.comparison-mobile-card.priority-tot{border-left:4px solid #ffb454}.comparison-mobile-card.priority-tp{border-left:4px solid #5ac8fa}.comparison-mobile-card-heading{display:grid;justify-items:start;gap:3px;margin-bottom:8px;color:var(--text);font-weight:700}.comparison-mobile-card-heading small{color:var(--text-dim);font-weight:500}.comparison-mobile-values{display:grid}.comparison-mobile-person{display:grid;grid-template-columns:minmax(0,1fr) minmax(96px,auto);align-items:center;gap:12px;padding:10px 0}.comparison-mobile-person+.comparison-mobile-person{border-top:1px solid var(--border)}.mobile-comparison-identity{display:grid;gap:3px;min-width:0;padding-left:8px;border-left:3px solid;overflow-wrap:anywhere}.mobile-comparison-identity strong{color:var(--text);font-size:.9rem}.mobile-comparison-identity small{color:var(--text-dim);font-size:.78rem}.comparison-value{display:grid;justify-items:end;gap:3px;text-align:right;font-variant-numeric:tabular-nums}.comparison-value>strong{color:var(--text);font-size:1.02rem}.comparison-value small{font-size:.76rem}.comparison-heading,.comparison-row{grid-template-columns:minmax(5rem,1fr) minmax(5.5rem,.8fr) minmax(5.5rem,.8fr);gap:8px}.chart-heading{align-items:stretch;flex-direction:column;gap:14px}.page-heading{align-items:start;margin-top:22px}.league-count{padding-left:12px}.league-create-panel{grid-template-columns:1fr;gap:18px}.league-form-row{align-items:stretch;flex-wrap:wrap}.league-form-row input{flex-basis:100%}.league-row{align-items:stretch;flex-direction:column;gap:16px;padding:15px 14px}.league-row-actions{justify-content:flex-start}.league-delete-help{text-align:left}.league-rename-form .league-form-row{align-items:stretch}.league-match-row{grid-template-columns:1fr}.league-match-summary{grid-template-columns:1fr auto;gap:8px}.league-match-teams{grid-column:1 / -1;grid-row:2;flex-wrap:wrap}.league-match-round{justify-self:end;grid-column:2;grid-row:1}.match-actions{justify-content:flex-start}.match-move-control{align-items:stretch;flex:1 1 100%;flex-wrap:wrap}.match-move-control label{flex:1 1 100%}.match-move-control button{flex:1}.match-detail-header,.match-participant-grid{grid-template-columns:1fr}.match-participant header{align-items:start;flex-direction:column}}
