/* Daylight paper and stadium-night navy. The pitch, uniforms and routes keep their colors. */
:root,[data-theme="light"]{
 color-scheme:light;--paper:#f2ecdf;--card:#fffaf0;--ink:#20343b;--text:#20343b;--muted:#596b6d;--line:#c8c8b8;
 --forest:#254f50;--deep:#142c39;--soft:#e5e8db;--orange:#9a4b29;
 --surface-raised:#fffdf5;--surface-soft:#e8e6d9;--surface-tint:#e3e9de;--shell:#e8e3d5;
 --accent:#8b5a1d;--on-accent:#fffaf0;--action-bg:#254f50;--action-hover:#326366;--action-text:#fffaf0;
 --control-bg:#fffdf6;--control-text:#20343b;--control-border:#9aa9a4;--control-hover:#edf0e4;--control-selected:#dbe7d7;--control-muted:#627471;--control-focus:#8b5a1d;
 --success-bg:#e2ead9;--success-text:#355e3c;--danger-bg:#f7e0d6;--danger-text:#923a2d;--warning-bg:#f1e4c7;--warning-text:#79521f;
 --scroll-thumb:#8a9c95;--matchup-wash:#fffaf0ed;--shadow:#13252c20;
}
[data-theme="dark"]{
 color-scheme:dark;--paper:#101b28;--card:#192936;--ink:#ebe8d9;--text:#ebe8d9;--muted:#afc0bf;--line:#3c5059;
 --forest:#a5d2c4;--deep:#0a1520;--soft:#263d45;--orange:#f0b07b;
 --surface-raised:#223744;--surface-soft:#14232f;--surface-tint:#203c42;--shell:#12202d;
 --accent:#edbb71;--on-accent:#152832;--action-bg:#cfab70;--action-hover:#e3bd7c;--action-text:#142a32;
 --control-bg:#11222f;--control-text:#ebe8d9;--control-border:#607c80;--control-hover:#2b454e;--control-selected:#344f4e;--control-muted:#afc0bf;--control-focus:#edbb71;
 --success-bg:#273f35;--success-text:#b6d59a;--danger-bg:#4a2e2e;--danger-text:#ffbaaa;--warning-bg:#433c29;--warning-text:#f0c680;
 --scroll-thumb:#57727b;--matchup-wash:#192936eb;--shadow:#0007;
}
html{scrollbar-color:var(--scroll-thumb) var(--paper);scrollbar-width:thin}
*{scrollbar-color:var(--scroll-thumb) var(--paper)}
::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--paper)}::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border:2px solid var(--paper);border-radius:0}
::selection{background:var(--control-selected);color:var(--control-text)}
body,.main-shell{background:var(--paper);color:var(--text)}
.card,dialog,.stat-card,.season-pill,.create-franchise,.save-file,.depth-card,.opponent-scout-player,.playoff-match{background-color:var(--card);color:var(--text);border-color:var(--line)}
.franchise-library{background:var(--paper);color:var(--text)}
.library-header,.save-capacity,.library-import,.save-file-actions,.nav-secondary,.footer,.dialog-footer,.log-row,.stat-row,.depth-row,.hub-task,.hub-result{border-color:var(--line)}
.library-brand,.brand,.library-brand .brand-mark,.saved-franchises>.section-head h2,.empty-franchises,.library-header .text-button{color:var(--text)}
.library-brand .brand-mark{border-color:var(--accent)}
.brand-word small,.empty-save-mark{color:var(--accent)}
.save-capacity strong,.save-capacity summary,.save-capacity p,.saved-franchises>.save-location,.empty-franchises p,.saved-franchises>.section-head .badge{color:var(--muted)}
.empty-franchises{background:var(--surface-soft);border-color:var(--control-border)}
.library-intro{border-color:var(--line)}
.library-intro h1{color:#f3ead7}.library-intro p{color:#d6dfd8}.beta-tag{color:#edbb71;border-color:#edbb71}
.sidebar{background:var(--shell);color:var(--text);border-color:var(--line)}
.nav :is(button,a),.nav-secondary :is(button,a),.help-button{color:var(--muted)}
.nav :is(button,a):hover,.hub-task:hover,.hub-result:hover{background:var(--control-hover);color:var(--text)}
.nav :is(button,a).active{background:var(--control-selected);color:var(--text);box-shadow:inset 3px 0 var(--accent)}
.pvp-coming{color:var(--muted);border-color:var(--line)}.pvp-coming small{color:var(--accent)}
.topbar{background:var(--shell);border-color:var(--line)}
.breadcrumb,.save-indicator,.active-save-label{color:var(--muted)}.breadcrumb strong{color:var(--text)}
.weekly-matchup{background:var(--card)}
.weekly-tasks{background:transparent}.weekly-matchup,.create-franchise{border-top-color:var(--accent)}
.primary,.call-button{background:var(--action-bg);color:var(--action-text);box-shadow:0 3px 0 var(--deep)}
.primary:hover,.call-button:hover{background:var(--action-hover);color:var(--action-text)}
.secondary,.route-preset,.special-teams button,.import-save-trigger{background:var(--control-bg);color:var(--control-text);border-color:var(--control-border)}
.secondary:hover,.route-preset:hover,.special-teams button:hover,.import-save-trigger:hover{background:var(--control-hover);color:var(--control-text);border-color:var(--control-focus)}
.text-button,.coach-details>summary,.game-report-drawer>summary,.save-manage>summary,.field-key>summary{color:var(--forest)}
.text-button.danger,.save-manage-actions .danger{color:var(--danger-text)}
.icon-button{background:var(--surface-tint);color:var(--text);border:1px solid var(--control-border);border-radius:2px;width:36px;height:36px}
.icon-button:hover{background:var(--control-hover)}
.delete-save-confirm{background:var(--danger-bg);color:var(--danger-text);border:1px solid var(--danger-text)}
.delete-save-confirm:hover{background:var(--danger-bg);color:var(--danger-text);filter:brightness(.95)}
.banner{background:var(--surface-tint);color:var(--text);border:1px solid var(--line)}.banner p{color:var(--muted)}.banner .primary{background:var(--action-bg);color:var(--action-text)}
.badge,.tag,.position-badge,.live-chip,.condition-tag,.pre-snap-steps .is-done{background:var(--success-bg);color:var(--success-text)}
.tag.loss,.condition-tag.is-out{background:var(--danger-bg);color:var(--danger-text)}
.condition-tag.is-concern{background:var(--warning-bg);color:var(--warning-text)}
.saved-franchises>.section-head .badge{background:var(--surface-soft);border-color:var(--line)}
.scoreboard,.field-caption,.field-toolbar,.field-drive-actions,.pre-field-tools,.clock-controls,.field-key,.field-legend,.game-report-drawer,.play-status,.clock-hint,.tabs{background:var(--surface-soft);border-color:var(--line);color:var(--text)}
.score-clock strong,.score,.team-name,.read-facts strong,.scoreboard small{color:var(--text)}
.score-clock small,.team-name small,.field-caption .muted,.field-key>summary span,.field-legend,.clock-details,.play-status small{color:var(--muted)}
.status-symbol,.log-gain{background:var(--surface-tint);color:var(--forest)}
.tabs button{color:var(--muted)}.tabs button.active,.tabs button[aria-selected="true"]{color:var(--text);background:var(--control-selected);box-shadow:none}
.play-option{background:var(--card);color:var(--text);border-color:var(--line)}.play-option:hover{background:var(--control-hover)}.play-option.selected{background:var(--control-selected);border-color:var(--control-border);box-shadow:inset 3px 0 var(--accent)}
.play-option small,.play-option .type-label,.playbook-card p,.selection-note,.package-control p,.package-control small,.package-players p,.package-tradeoff p{color:var(--muted)}
.pre-snap-steps li{background:var(--surface-soft);color:var(--muted);border-color:var(--line)}.pre-snap-steps .is-current{background:var(--action-bg);color:var(--action-text);border-color:var(--action-bg)}
.defense-read,.call-explainer,.tip,.potential-panel,.development-panel,.beta-guide-note,.opponent-scout-player .opponent-scout-pressure{background:var(--surface-tint);border-color:var(--line);color:var(--text)}
.defense-read p,.call-explainer small,.read-facts small,.read-suggestion,.package-control label,.package-players small,.help-copy,.editor-inputs label,.empty-log{color:var(--muted)}
.opponent-personnel,.note-box,.target-warning,.penalty-call,.stamina-note,.team-availability,.opponent-availability{background:var(--warning-bg);color:var(--warning-text);border-color:var(--accent)}
.opponent-personnel>span,.panel-eyebrow span:last-child,.team-availability li span,.opponent-availability p,.game-injuries li>b,.depth-row .availability-note{color:var(--warning-text)}
.team-availability h3,.team-availability strong{color:var(--text)}
.data-table th{background:var(--surface-soft);color:var(--muted);border-color:var(--line)}.data-table td{border-color:var(--line);color:var(--text)}
.schedule-row.current,.row-you,.playoff-your-team{background:var(--control-selected)}
.player-name small,.stat-card p,.stat-card small,.report-title p,.attribute-grid .undiscovered,.lineup-note,.save-date,.save-file-heading p,.save-file-details,.save-location{color:var(--muted)}
.attribute-grid>div{border-color:var(--line);background:var(--surface-soft)}.attribute-grid>div.revealed{background:var(--surface-tint)}
.rating-bar,.talent-track,.stamina-meter{background:var(--surface-soft);border:1px solid var(--line)}
.stamina-badge{background:var(--success-bg);color:var(--success-text)}.stamina-badge.working{background:var(--warning-bg);color:var(--warning-text)}.stamina-badge.low{background:var(--danger-bg);color:var(--danger-text)}
dialog{border-top-color:var(--accent);box-shadow:0 16px 0 -9px var(--surface-soft),0 20px 70px var(--shadow)}dialog::backdrop{background:#07121ec9;backdrop-filter:blur(3px)}
/* Custom form surfaces, with native input semantics and a visible focus state. */
input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]),textarea,select{
 appearance:none;-webkit-appearance:none;border:1px solid var(--field-border,var(--control-border))!important;border-radius:2px!important;background:var(--control-bg)!important;color:var(--control-text)!important;
 min-height:44px;padding:11px 13px;font:20px/1.5 var(--font);box-shadow:inset 0 -2px 0 var(--surface-soft);max-width:100%;
}
input::placeholder,textarea::placeholder{color:var(--control-muted);opacity:1}
input:-webkit-autofill{-webkit-text-fill-color:var(--control-text);box-shadow:0 0 0 1000px var(--control-bg) inset}
input[type="search"]::-webkit-search-cancel-button{appearance:none}input[type="search"]::-webkit-search-decoration{appearance:none}
input:disabled,textarea:disabled,select:disabled{opacity:.55;cursor:not-allowed}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--control-focus);outline-offset:3px}
input[aria-invalid="true"],textarea[aria-invalid="true"]{--field-border:var(--danger-text)}
.field-feedback,.sa-select-error{font-size:20px;line-height:1.5;color:var(--danger-text);margin:7px 0 12px}
.create-franchise .field-feedback{color:var(--danger-text)}
.search-control{position:relative;display:block;min-width:0;margin:0 0 12px}.search-control input[type="search"]{width:100%;margin:0;padding-right:44px!important}.playbook-tools .search-control{width:min(100%,360px);margin:0}.playbook-tools small{color:var(--muted)}
.search-clear{position:absolute;right:5px;top:5px;bottom:5px;width:34px;border:0;border-radius:2px;background:var(--surface-tint);color:var(--control-text);font:24px/1 var(--display);padding:0}.search-clear[hidden]{display:none}.search-clear:hover{background:var(--control-selected)}
input[type="checkbox"],input[type="radio"],.field-controls input[type="checkbox"],#trade-desk input[type="checkbox"]{
 appearance:none;-webkit-appearance:none;display:inline-grid;place-content:center;vertical-align:middle;width:20px;height:20px;min-width:20px;min-height:20px;padding:0;margin:0;flex-shrink:0;
 border:2px solid var(--control-border);border-radius:2px;background:var(--control-bg);color:var(--action-text);cursor:pointer;box-shadow:none;
}
input[type="checkbox"]::after{content:"";width:10px;height:10px;clip-path:polygon(0 40%,20% 40%,40% 65%,80% 10%,100% 10%,100% 30%,40% 100%,0 60%);background:currentColor;transform:scale(0)}
input[type="checkbox"]:checked,input[type="radio"]:checked{background:var(--action-bg);border-color:var(--action-bg)}input[type="checkbox"]:checked::after{transform:scale(1)}
input[type="checkbox"]:indeterminate::after{transform:scale(1);clip-path:polygon(0 35%,100% 35%,100% 65%,0 65%)}
input[type="checkbox"]:disabled,input[type="radio"]:disabled{opacity:.4;cursor:not-allowed}
input[type="radio"]{border-radius:50%}input[type="radio"]:checked::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--action-text)}
.field-controls label{gap:8px}.library-import .import-save-trigger{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:20px;min-height:42px;padding:10px 15px}
/* Disclosure arrows are drawn by the game, not the browser. */
summary{list-style:none;cursor:pointer}summary::-webkit-details-marker{display:none}summary::marker{content:""}
.save-capacity summary,.save-manage>summary,.coach-details>summary,.game-report-drawer>summary,.field-key>summary,.box-players summary,.playoff-seed-list summary{display:flex;align-items:center;gap:12px;justify-content:space-between}
.save-capacity summary::after,.save-manage>summary::after,.coach-details>summary::after,.game-report-drawer>summary::after,.field-key>summary::after,.box-players summary::after,.playoff-seed-list summary::after{content:"+";font:24px/1 var(--display);flex:0 0 14px;text-align:center;color:var(--forest)}
details[open]>.coach-details,details[open]>.field-key{border-color:var(--control-border)}
details[open]>summary::after{content:"−"}details.create-franchise-disclosure>summary::after,details.opponent-scouting>summary::after{content:none}
.game-report-drawer>summary>span:last-child{float:none;margin-left:auto}.save-manage>summary{justify-content:flex-end}.save-capacity summary{justify-content:flex-end}
.theme-toggle{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:8px 12px;border:1px solid var(--control-border);border-radius:2px;background:var(--control-bg);color:var(--control-text);font:20px var(--font);white-space:nowrap;cursor:pointer;flex-shrink:0}
.theme-toggle svg{width:24px;height:24px;fill:currentColor;shape-rendering:crispEdges}.theme-toggle:hover{background:var(--control-hover);border-color:var(--control-focus)}
.library-header-actions{gap:16px}.topbar-right{gap:12px}.mobile-menu-button,.mobile-menu-button:hover,.mobile-menu-button:focus{background:var(--control-bg);color:var(--control-text);border-color:var(--control-border)}
@media(max-width:760px){
 .library-header{flex-wrap:wrap;gap:16px}.library-header-actions{width:100%;justify-content:space-between;gap:8px}.library-header .pvp-coming{flex-direction:row;gap:6px;min-height:40px;padding:8px;font-size:16px}.library-header .pvp-coming small{font-size:16px}
 .theme-toggle{min-height:40px;font-size:16px;padding:8px 10px}.topbar{height:54px}.topbar .theme-toggle span{display:none}.topbar .theme-toggle{width:38px;min-height:36px;padding:8px}.active-save-label{max-width:100px}
 input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),textarea,select{font-size:20px}
 .game-report-drawer>summary{flex-wrap:wrap}.game-report-drawer>summary>span:last-child{font-size:16px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
@media(forced-colors:active){input[type="checkbox"],input[type="radio"]{appearance:auto}input[type="checkbox"]::after,input[type="radio"]::after{display:none}.theme-toggle svg{fill:ButtonText}}
