:root{--bg:#f1f4f8;--ink:#15243b;--primary:#164eda;--muted:#596a80;--line:#dce3ed;color-scheme:light}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:16px;line-height:1.5;background:var(--bg);color:var(--ink)}.shell{max-width:760px;margin:auto;padding:0 20px calc(35px + env(safe-area-inset-bottom))}header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:86px;border-bottom:1px solid var(--line)}.brand{font-size:14px;font-weight:850;letter-spacing:.08em;color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:9px}.brandmark{font-size:34px;color:var(--primary)}.intro{padding:28px 0 20px}.eyebrow{font-size:12px;letter-spacing:.1em;font-weight:750;color:var(--muted)}h1{font-size:42px;line-height:1.08;letter-spacing:-.04em;margin:8px 0 16px;overflow-wrap:anywhere}h1 span{color:var(--primary)}h2{font-size:20px;letter-spacing:-.02em;margin:0 0 12px}.panel{padding:22px;background:white;border:1px solid var(--line);border-radius:18px;margin:0 0 18px}.section-head{display:flex;align-items:center;gap:10px;margin-bottom:16px}.section-head h2{margin:0}.step{background:#eef3fa;border-radius:7px;font-size:12px;font-weight:750;padding:5px 7px;color:#506787}.help,.muted{color:var(--muted);font-size:14px}.note{font-size:12px;color:var(--muted);margin-top:16px}.count{margin-left:auto;border-radius:16px;background:#eaf0ff;color:var(--primary);padding:5px 9px;font-size:14px;font-weight:750}button,input,select{font:inherit;touch-action:manipulation}button,a,summary{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.4;cursor:default}input:not([type=hidden]):not([type=checkbox]),select{width:100%;min-height:48px;padding:10px 12px;border:1px solid #bac8db;border-radius:10px;background:white;font-size:16px;color:var(--ink)}input[type=file]{padding:10px!important;overflow:hidden}label{display:block;font-size:14px;font-weight:650;margin:12px 0 8px}button.primary,a.primary{display:inline-flex;align-items:center;justify-content:center;min-height:48px;border:0;border-radius:11px;background:var(--primary);color:white;font-weight:700;padding:12px 18px;text-decoration:none;margin-top:14px}.wide{width:100%}.secondary{min-height:48px;padding:10px 16px;border:1px solid var(--line);border-radius:10px;color:var(--primary);background:white;font-weight:650}.text-button{min-height:44px;color:var(--primary);padding:8px 0;border:0;background:transparent;font-size:14px;font-weight:650}.danger{color:#a2352b}a{color:var(--primary)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #477af2;outline-offset:3px}nav{display:flex;justify-content:space-between;gap:14px;padding:16px 0 0}nav a{min-height:44px;display:flex;align-items:center;font-size:14px;text-decoration:none}summary{font-size:16px;font-weight:700;cursor:pointer;min-height:44px;padding:10px 0}.team-card{display:flex;align-items:center;justify-content:space-between;text-decoration:none;color:var(--ink)}.team-card h2{margin:6px 0}.current-badge{background:#e7f1e9;color:#30563d;border-radius:8px;padding:10px;font-size:14px;font-weight:650}.season-view{margin:20px 0}.inline{display:flex;gap:10px}.inline select{min-width:0}.roster-head{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.04em;padding-bottom:8px;border-bottom:1px solid var(--line)}.player-row{display:flex;gap:12px;align-items:center;min-height:88px;border-bottom:1px solid #e7edf5;margin:0;font-weight:400}.jersey{min-width:36px;height:40px;display:grid;place-items:center;border-radius:9px;background:#eef3fa;font-weight:750;color:#48628b}.player-info{flex:1;min-width:0}.player-info strong{display:block;font-size:16px;overflow-wrap:anywhere}.player-info>span{display:block;font-size:14px;color:var(--muted);margin-top:3px;font-weight:400}.available{flex-shrink:0;width:28px;height:28px;margin:8px;accent-color:var(--primary)}.player-row:has(.available:not(:checked)) .player-info strong{color:#768397}.order-number{width:26px;font-size:24px;font-weight:750;color:var(--primary)}.arrows{display:flex;gap:4px}.arrows button{width:44px;height:44px;border:0;border-radius:8px;background:#eef3fa;color:var(--primary);font-size:24px}.message{padding:14px;border-radius:12px;background:#e3efe7;color:#2f563c;margin:16px 0;font-size:14px}.errorlist{color:#9f3025;font-size:14px;padding-left:20px}.helptext{display:block;font-size:13px;color:var(--muted);margin-top:8px}.helptext ul{padding-left:18px}.small-link{font-size:14px;display:inline-flex;min-height:44px;align-items:center}footer{font-size:11px;text-align:center;color:#6b7890;letter-spacing:.08em;padding:20px 0} @media(max-width:360px){.shell{padding-left:12px;padding-right:12px}.panel{padding:16px}.player-row{gap:8px}h1{font-size:36px}}@media(min-width:700px){h1{font-size:50px}.panel{padding:28px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
/* Team setup: grouped radio controls with generous touch targets. */
fieldset{border:0;padding:0;margin:18px 0;min-width:0}legend{font-size:14px;font-weight:650;margin-bottom:8px}.league-options{display:grid;gap:8px}.league-options label{display:flex;align-items:center;gap:12px;min-height:48px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:0;font-size:16px;font-weight:400;cursor:pointer}.league-options input[type=radio]{width:22px;min-height:22px;height:22px;padding:0;margin:0;flex-shrink:0;accent-color:var(--primary)}.league-options label:has(input:checked){background:#eaf0ff;border-color:var(--primary)}
.import-season-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.import-season-fields>div{min-width:0}.current-choice{display:flex;align-items:center;gap:12px;min-height:48px;margin:18px 0 0;font-size:16px;cursor:pointer}.current-choice input{width:24px;height:24px;margin:0;accent-color:var(--primary);flex-shrink:0}@media(max-width:359px){.import-season-fields{grid-template-columns:1fr}}
.confirmation-warning{margin:20px 0;padding:16px;border:1px solid #e5c592;background:#fff8ea;border-radius:12px}.confirmation-warning h2{font-size:18px}.confirmation-warning p:last-child{margin-bottom:0}.cancel-import{display:flex;align-items:center;justify-content:center;min-height:48px;margin-top:10px;font-weight:650}
.mapping-row{padding:12px 0 18px;border-bottom:1px solid var(--line)}.mapping-row label{font-size:16px}.mapping-row .muted{display:block;font-weight:400}.source-row,.working-player{padding:18px 0;border-top:1px solid var(--line)}.source-row h3,.working-player h3{font-size:18px;margin:0 0 8px;overflow-wrap:anywhere}.comparison{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;font-size:14px;font-variant-numeric:tabular-nums}.comparison>span:nth-child(-n+3){color:var(--muted);font-size:12px;font-weight:700;margin:8px 0}.comparison>strong:nth-child(3n){color:var(--primary)}.all-stats{font-size:14px}.all-stats>div{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--line)}.all-stats dt{overflow-wrap:anywhere}.all-stats dd{margin:0;font-variant-numeric:tabular-nums}
.mapping-select[data-match-state=matched],.legend-match{background:#e3f3e7;color:#205835;border-color:#97c7a4}.mapping-select[data-match-state=unmatched],.legend-unmatched{background:#fff6d8;color:#6c5415;border-color:#d9c477}.mapping-select[data-match-state=skipped],.legend-skipped{background:#fde6e6;color:#a51c27;border-color:#df9fa5}.mapping-legend{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.mapping-legend>span{padding:6px 9px;border-radius:7px;font-size:13px}.mapping-status{font-size:13px;color:var(--muted);margin:7px 0 0}.working-player.player-card{border:1px solid var(--line);border-radius:13px;padding:0;margin:14px 0;background:white;overflow:hidden}.player-summary{position:relative;display:grid;grid-template-columns:minmax(100px,1fr) auto;align-items:center;gap:14px;padding:18px 42px 18px 16px;list-style:none;min-height:76px}.player-summary::-webkit-details-marker{display:none}.summary-identity{display:flex;flex-wrap:wrap;column-gap:8px;align-items:baseline;overflow-wrap:anywhere}.summary-identity>strong{font-size:17px}.summary-metrics{display:flex;gap:16px;font-size:16px;font-variant-numeric:tabular-nums}.metric-label{display:block;font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--muted);margin-bottom:2px}.summary-positions{grid-column:1/-1;font-size:14px}.expand-indicator{position:absolute;right:15px;top:22px;color:var(--primary);font-size:22px;font-weight:400}.player-card[open]>.player-summary{background:#f5f8fc;border-bottom:1px solid var(--line)}.player-card[open]>.player-summary .expand-indicator{transform:rotate(180deg)}.player-card-body{padding:16px}.player-card-body>.comparison{margin-bottom:12px}@media(min-width:650px){.player-summary{grid-template-columns:minmax(100px,1fr) auto minmax(100px,1fr)}.summary-positions{grid-column:auto;margin-left:6px}}@media(max-width:430px){.player-summary{grid-template-columns:minmax(0,1fr);gap:10px}.summary-metrics{gap:24px}.summary-positions{grid-column:auto}.summary-identity>strong{font-size:18px}}

.summary-metrics>span{min-width:0}.summary-metrics .metric-label{white-space:normal;max-width:90px}.comparison{grid-template-columns:minmax(0,1.8fr) minmax(0,1fr) minmax(0,1fr)}.comparison>strong{overflow-wrap:anywhere}.all-stats dt{flex:1;min-width:0}.all-stats dd{flex-shrink:0;text-align:right}@media(max-width:430px){.summary-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}}
.stat-section{margin:14px 0;padding:16px;border:1px solid;border-radius:12px;color:var(--ink)}.stat-section h4{font-size:17px;font-weight:750;margin:0 0 12px}.stat-section .all-stats{margin:0}.stat-section .all-stats>div{border-bottom-color:rgba(21,36,59,.12);padding:9px 0}.stat-section .all-stats>div:last-child{border-bottom:0}.stat-section-batting{background:#fff6d8;border-color:#e4d39a}.stat-section-pitching{background:#e5f3e8;border-color:#b7d8c0}.stat-section-fielding{background:#e7f2ff;border-color:#b7d2ee}
.stat-section-summary{font-size:17px;font-weight:750;min-height:48px;padding:10px 0;cursor:pointer}.stat-section-summary::marker{color:currentColor}.stat-section[open]>.stat-section-summary{margin-bottom:10px;border-bottom:1px solid rgba(21,36,59,.12)}
.stat-subgroup{margin:18px 0 8px;padding-top:14px;border-top:1px solid rgba(108,84,21,.2)}.stat-subgroup:first-of-type{border-top:0;padding-top:0}.stat-subgroup h5{font-size:15px;font-weight:750;color:#6c5415;margin:0 0 8px;line-height:1.4}
.subgroup-actions{display:flex;justify-content:flex-end;margin:10px 0}.toggle-subgroups{background:#fffaf0;border-color:#d8c582;color:#6c5415}.toggle-subgroups[hidden]{display:none}.stat-subgroup-summary{font-size:15px;font-weight:750;color:#6c5415;margin:0;line-height:1.4;min-height:48px;padding:12px 0;cursor:pointer}.stat-subgroup[open]>.stat-subgroup-summary{margin-bottom:8px}.stat-subgroup{margin-top:10px;padding-top:8px}
.stat-heading-with-control{display:flex;align-items:center;justify-content:space-between;gap:10px;list-style:none}.stat-heading-with-control::-webkit-details-marker{display:none}.stat-heading-with-control>.stat-heading-label{display:flex;align-items:center;gap:8px;min-width:0}.stat-heading-with-control>.stat-heading-label::before{content:'▸';flex-shrink:0}.stat-section[open]>.stat-heading-with-control>.stat-heading-label::before{content:'▾'}.stat-heading-with-control>.toggle-subgroups{flex-shrink:0;font-size:14px;min-height:44px;padding:8px 10px}@media(max-width:359px){.stat-heading-with-control{gap:6px}.stat-heading-with-control>.stat-heading-label{font-size:15px;gap:5px}.stat-heading-with-control>.toggle-subgroups{padding:8px;font-size:13px}}
/* Compact stats spacing while preserving readable text and touch targets. */
.working-player.player-card{margin:8px 0}.player-summary{gap:8px;padding:12px 38px 12px 12px;min-height:64px;line-height:1.35}.player-summary .expand-indicator{top:14px;right:12px}.player-card-body{padding:10px}.player-card-body>.comparison{margin-bottom:6px}.comparison{gap:5px 8px}.comparison>span:nth-child(-n+3){margin:4px 0}.stat-section{margin:8px 0;padding:8px 10px}.stat-section-summary{min-height:44px;padding:7px 0}.stat-section[open]>.stat-section-summary{margin-bottom:5px}.stat-section .all-stats>div{padding:5px 0;line-height:1.4}.stat-subgroup{margin:5px 0 2px;padding-top:3px}.stat-subgroup-summary{min-height:44px;padding:10px 0}.stat-subgroup[open]>.stat-subgroup-summary{margin-bottom:2px}.source-row{padding:12px 0}.source-row .help{margin:5px 0}.source-row .primary{margin-top:6px}.summary-metrics .metric-label{margin-bottom:1px}.summary-positions .metric-label{display:inline;margin-right:7px}.summary-positions{line-height:1.4}
@media(max-width:640px){.shell{padding-left:12px;padding-right:12px}header{min-height:68px}nav{padding-top:6px}.intro{padding:16px 0 12px}.intro>.eyebrow{margin:6px 0}h1{margin-bottom:10px}.intro>p:last-child{margin-bottom:8px}.panel{padding:14px;margin-bottom:12px}.panel>.help,.panel>.note{margin-top:8px;margin-bottom:10px}.section-head{margin-bottom:10px}.mapping-row{padding:6px 0 10px}.player-summary{gap:6px}.summary-metrics{gap:10px}.stat-section-summary{font-size:16px}footer{padding:12px 0}}
.stat-section-pitching .stat-subgroup-summary,.stat-section-pitching .toggle-subgroups{color:#245a38}.stat-section-pitching .toggle-subgroups{background:#f1faf3;border-color:#a8cbb3}.stat-section-pitching .stat-subgroup{border-top-color:rgba(36,90,56,.2)}.stat-section-fielding .stat-subgroup-summary,.stat-section-fielding .toggle-subgroups{color:#235581}.stat-section-fielding .toggle-subgroups{background:#f3f8ff;border-color:#abc8e4}.stat-section-fielding .stat-subgroup{border-top-color:rgba(35,85,129,.2)}
.player-edit-action{display:flex;justify-content:flex-end;margin-bottom:10px}.player-edit-action>a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;text-decoration:none;font-size:14px;padding:8px 12px}

.roster-navigation{align-items:center}.roster-menu{position:relative}.roster-menu>summary{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:10px;list-style:none;border:1px solid var(--line);border-radius:10px;background:white;color:var(--primary)}.roster-menu>summary::-webkit-details-marker{display:none}.roster-menu[open]>summary{background:#eaf0ff}.roster-menu-links{position:absolute;right:0;top:50px;z-index:10;width:250px;max-width:calc(100vw - 24px);padding:6px;background:white;border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 24px #15243b24}.roster-menu-links>a{padding:10px 12px;min-height:44px;border-radius:7px}.roster-menu-links>a:hover{background:#eef3fa}

input.position-rating[type=range]{appearance:none;-webkit-appearance:none;width:100%;height:44px;min-height:44px;padding:0;border:0;background:linear-gradient(to right,#ddd 0%,#ddd 14%,#e45b59 17%,#f3d65c 57%,#2d9b59 100%) center/100% 10px no-repeat}.position-rating::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:28px;height:28px;border-radius:50%;background:white;border:3px solid #15243b}.position-rating::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:white;border:3px solid #15243b}.position-rating-row{margin:8px 0 14px}.position-rating-row label{margin-bottom:0}.rating-value{display:block;font-size:14px;color:var(--muted)}

.password-toggle{margin-top:8px;min-height:44px;cursor:pointer}

.appearance-control{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin:8px 0}.appearance-control label{margin:0;color:var(--muted)}.appearance-control select{width:auto;min-height:44px;padding:6px 30px 6px 10px}
html[data-theme=dark]{--bg:#101827;--ink:#e7edf7;--primary:#93b7ff;--muted:#b2bfd2;--line:#40506a;color-scheme:dark}
html[data-theme=dark] .panel,html[data-theme=dark] .working-player.player-card,html[data-theme=dark] .secondary,html[data-theme=dark] .roster-menu-links,html[data-theme=dark] .roster-menu>summary{background:#1b283c}
html[data-theme=dark] input:not([type=hidden]):not([type=checkbox]):not([type=range]),html[data-theme=dark] select,html[data-theme=dark] textarea{background:#152137;color:var(--ink);border-color:var(--line)}
html[data-theme=dark] .primary{background:#295fc2;color:#fff}
html[data-theme=dark] .player-card[open]>.player-summary,html[data-theme=dark] .roster-menu[open]>summary,html[data-theme=dark] .roster-menu-links>a:hover,html[data-theme=dark] .arrows button,html[data-theme=dark] .jersey{background:#293c58;color:var(--ink)}
html[data-theme=dark] .message,html[data-theme=dark] .current-badge{background:#193e2c;color:#b5ebc8}
html[data-theme=dark] .errorlist,html[data-theme=dark] .danger{color:#ffaca8}
html[data-theme=dark] .player-row{border-color:var(--line)}
html[data-theme=dark] .stat-section-batting{background:#3a321c;color:#ffe6a3;border-color:#756334}
html[data-theme=dark] .stat-section-pitching{background:#19382c;color:#c1f0d0;border-color:#426d50}
html[data-theme=dark] .stat-section-fielding{background:#1c344e;color:#c0dfff;border-color:#486b91}
html[data-theme=dark] .stat-section .stat-subgroup-summary,html[data-theme=dark] .stat-section .stat-section-summary{color:inherit}
html[data-theme=dark] .stat-section .toggle-subgroups{background:transparent;color:inherit;border-color:currentColor}
html[data-theme=dark] .mapping-select[data-match-state=matched],html[data-theme=dark] .legend-match{background:#193e2c;color:#b5ebc8}
html[data-theme=dark] .mapping-select[data-match-state=unmatched],html[data-theme=dark] .legend-unmatched{background:#3a321c;color:#ffe6a3}
html[data-theme=dark] .mapping-select[data-match-state=skipped],html[data-theme=dark] .legend-skipped{background:#4c252d;color:#ffb4bc}


header{gap:10px;flex-wrap:wrap}.app-menu{margin-left:auto}.app-menu .roster-menu-links{display:flex;flex-direction:column;gap:0;margin:0;align-items:stretch}

.settings-submenu>summary{padding:10px 12px;min-height:44px;cursor:pointer}.settings-submenu .appearance-control{display:flex;flex-direction:column;align-items:stretch;gap:6px;margin:0;padding:4px 12px 12px}.settings-submenu select{width:100%;min-height:44px}

.app-menu .roster-menu-links{max-height:calc(100dvh - 110px);overflow-y:auto;overscroll-behavior:contain}
