[hidden] { display:none !important; }
.app-menu-button,.app-menu-close { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; padding:0; border:1px solid #c3ced5; border-radius:8px; color:#2c4f67; background:#fffdfb; font:26px/1 Arial,sans-serif; cursor:pointer; }
.app-menu-button { position:fixed; top:max(10px,env(safe-area-inset-top)); left:max(10px,env(safe-area-inset-left)); z-index:80; box-shadow:var(--shadow); }
.app-menu-button:focus-visible,.app-menu-close:focus-visible { outline:3px solid #2587ae; outline-offset:3px; }
.app-menu-dialog { position:fixed; inset:0 auto 0 0; margin:0; padding:0; width:min(330px,calc(100% - 36px)); max-width:calc(100% - 36px); height:100dvh; max-height:100dvh; border:0; border-right:1px solid #c8d2d8; border-radius:0; background:var(--card); color:var(--text); overflow-y:auto; overscroll-behavior:contain; scrollbar-width:none; box-shadow:8px 0 30px #0003; }
.app-menu-dialog::-webkit-scrollbar { display:none; }
.app-menu-dialog::backdrop { background:#14253480; }
.app-menu-heading { position:sticky; top:0; z-index:1; display:flex; align-items:center; justify-content:space-between; padding:calc(12px + env(safe-area-inset-top)) 16px 12px; background:inherit; border-bottom:1px solid #dce2e6; }
.app-menu-heading h2 { margin:0; font-size:18px; letter-spacing:0; }
.app-menu-links { display:grid; padding:8px 16px calc(20px + env(safe-area-inset-bottom)); }
.app-menu-links a { padding:14px 8px; min-height:48px; border-bottom:1px solid #dce2e6; color:inherit; font-size:15px; font-weight:700; text-decoration:none; }
.app-menu-links a:hover,.app-menu-links a:focus-visible { background:#e9f1f4; }
body.app-nav-ready .screen > .topbar { padding-top:calc(76px + env(safe-area-inset-top)); }
body.app-nav-ready #homeScreen .hero { padding-top:calc(76px + env(safe-area-inset-top)); }
body.app-nav-ready .quiz-header { padding-top:calc(98px + env(safe-area-inset-top)); }
body.app-nav-ready #counterWrap { max-width:calc(100% - 70px); }
body.app-nav-ready #counterWrap .nav-row { gap:5px; }
body.app-nav-ready #counterWrap .nav-btn { padding:8px 10px; }
.night-mode-controls { display:flex; justify-content:flex-end; width:100%; margin:0 0 12px; }
.night-mode-toggle { display:inline-flex; align-items:center; gap:12px; min-height:44px; color:var(--text); font-size:14px; font-weight:700; cursor:pointer; }
.hero .night-mode-toggle,.topbar .night-mode-toggle { color:inherit; }
.night-mode-toggle input { appearance:none; width:44px; height:26px; margin:0; padding:3px; border:1px solid #9bacb6; border-radius:999px; background:#ccd5db; cursor:pointer; }
.night-mode-toggle input::before { content:""; display:block; width:18px; height:18px; border-radius:50%; background:#fff; box-shadow:0 1px 3px #0004; transition:transform .15s; }
.night-mode-toggle input:checked { background:#397ba2; border-color:#5a9abe; }
.night-mode-toggle input:checked::before { transform:translateX(17px); }
.night-mode-toggle input:focus-visible { outline:3px solid #2587ae; outline-offset:3px; }
.study-time-line { display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding:14px 0; font-size:14px; }
.study-time-line strong { font-size:18px; font-variant-numeric:tabular-nums; }
.study-save-warning { margin:8px 0; font-size:12px; color:#a84432; }
#modalBody .related-knowledge-list { grid-template-columns:minmax(0,1fr); }
#modalBody .related-knowledge-item { min-width:0; }
#modalBody .math-chip { max-width:calc(100% - 6px); overflow-x:auto; white-space:nowrap; }
.score-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; margin-bottom:16px; }
#scoreYearScreen > .section-pad { display:block; }
.score-tabs .setting-chip { margin:0; border-radius:8px; padding:11px 6px; }
.score-tabs [aria-selected="true"],.settingsRow [aria-pressed="true"] { background:var(--teal); color:#fff; }
[data-score-panel] > .big-btn { width:100%; margin:6px 0; }
.score-kpis { margin-bottom:16px; }
.score-kpis small { display:block; margin-top:6px; font-size:12px; line-height:1.5; }
.training-order { display:flex; flex-wrap:wrap; gap:16px; margin:12px 0; padding:10px 0; border:0; font-size:14px; }
.training-order legend { font-size:13px; font-weight:700; }
.training-order label { display:flex; align-items:center; gap:6px; min-height:32px; }
.training-order input { accent-color:var(--teal); width:18px; height:18px; margin:0; }
#calcCategoryScreen .category-action-row { grid-template-columns:repeat(2,minmax(0,1fr)); }
#calcCategoryScreen [data-calc-resume] { grid-column:1 / -1; }
#calcCategoryScreen .category-mini-btn:disabled { opacity:.45; cursor:default; }
#localSaveNotice,.pwa-update-notice { position:fixed; bottom:calc(16px + env(safe-area-inset-bottom)); left:50%; transform:translateX(-50%); z-index:110; display:flex; align-items:center; gap:12px; width:min(410px,calc(100% - 24px)); padding:12px 14px; border:1px solid #b9ccd7; border-radius:8px; background:var(--card); color:var(--text); box-shadow:var(--shadow); font-size:13px; line-height:1.5; }
#localSaveNotice button,.pwa-update-notice button { flex:none; padding:9px 12px; border:0; border-radius:6px; background:var(--teal); color:#fff; font:700 13px inherit; cursor:pointer; }
#localSaveNotice.save-failed { border-color:#bd6257; }
.pwa-update-notice span { flex:1; }
.pwa-settings { margin-top:16px; padding-top:16px; border-top:1px solid #d8dfe3; font-size:13px; }
.pwa-settings p { line-height:1.6; }
.blankBox { color:#24343f; }
.progressTrack { background:#476575; }
.progressFill { background:#bce8ff; }
.statusChip.ok { background:#235a42; color:#fff; }
.statusChip.revision { background:#fff0cd; color:#66431d; border-color:#b99554; }
:is(.category-card-sub,.score-card-sub,.score-metric-note,.priority-reason,.category-score-item small) { color:#586d76; }
.radar-legend-item span { color:#586d76; }
.heatmap-cell small { color:#38505d; }
.heatmap-cell.empty { color:#655e58; }
.hl-key,.explainBlock.block-key .blockTitle { color:#925500; }
html[data-color-mode="dark"] { color-scheme:dark; --bg:#17191c; --card:#22262b; --text:#eceff2; --teal:#4488b0; --shadow:0 8px 24px #0003; --ok:#8bd8ad; --ok-bg:#19392d; --ng:#ffa199; --ng-bg:#432725; }
html[data-color-mode="dark"],html[data-color-mode="dark"] body,html[data-color-mode="dark"] .app { background:#17191c; color:var(--text); }
html[data-color-mode="dark"] :is(.card,.sheet,.block,.score-box,.score-row,.legendItem,.inlineChoice,.home-progress-card,.home-progress-item,.score-dashboard-card,.category-card,.category-score-item,.category-list-btn) { background:#22262b; color:var(--text); border-color:#454e58; }
html[data-color-mode="dark"] :is(.hero,.topbar,.quiz-header,#scoreScreen .topbar,#yearMenuScreen .topbar,#scoreYearScreen .topbar) { background:#203d50; color:#fff; }
html[data-color-mode="dark"] :is(.big-btn small,.small-note,.inlineHelp,.category-card-sub,.score-card-sub,.category-list-btn small,.home-progress-item b,.score-kpis small,.topbar-sub) { color:#bdc8d2; }
html[data-color-mode="dark"] :is(.setting-chip,.nav-btn,.app-menu-button,.app-menu-close,.pill,.guide-btn,.jump-filter-btn,.category-mini-btn,.fixed-page-nav button) { background:#303943; color:#eaf1f6; border-color:#64707c; }
html[data-color-mode="dark"] :is(.fixed-page-nav,.answerDock) { background:#20262bf2; color:var(--text); border-color:#4f5b66; }
html[data-color-mode="dark"] .counter { background:#303943; color:#eaf1f6; }
html[data-color-mode="dark"] :is(.setting-chip.active,[aria-selected="true"],[data-score-mode][aria-pressed="true"],.fixed-page-nav button[data-action="forward"]) { background:#326d94; color:#fff; }
html[data-color-mode="dark"] .choice.compact { background:#28343e; border-color:#546474; color:#fff; }
html[data-color-mode="dark"] .choice.correct,html[data-color-mode="dark"] .feedback.ok { background:#193f30; border-color:#75cd9e; color:#b4f2cf; }
html[data-color-mode="dark"] .choice.wrong,html[data-color-mode="dark"] .feedback.ng { background:#492b2b; border-color:#e8958d; color:#ffd2cd; }
html[data-color-mode="dark"] :is(.correct-keyword,.related-keyword,.related-term,.important-keyword) { color:#94e0c0; background:#193b33; }
html[data-color-mode="dark"] .wrong-keyword { color:#ffb3a8; background:#4c2929; }
html[data-color-mode="dark"] .related-value { color:#ffd98d; background:#40351e; }
html[data-color-mode="dark"] :is(.math-chip,.formula-label,.formula-keyword) { color:#bce5ff; background:#193a54; border-color:#5a9cc6; }
html[data-color-mode="dark"] .revisionCaution { background:#443c25; border-color:#8f7c42; color:#ffedb9; }
html[data-color-mode="dark"] :is(.app-menu-heading,.app-menu-links a,.pwa-settings) { border-color:#424b55; }
html[data-color-mode="dark"] .app-menu-links a:is(:hover,:focus-visible) { background:#303943; }
html[data-color-mode="dark"] :is(.figureWrap,.figurePanel,#figureHost img,.figureStage) { background:#fff; color:#111; }
html[data-color-mode="dark"] :is(.score-card-title,.home-progress-title,.category-card-title,.card-title,.score-menu-heading,.blockTitle) { color:inherit; }
html[data-color-mode="dark"] :is(.score-metric-card,.score-insight-card,.score-chart-card,.priority-score,.radar-legend-item,#fontPreviewCard) { background:#27313b; color:#edf3f7; border-color:#465361; }
html[data-color-mode="dark"] :is(.home-progress-item span,.score-metric-value,.score-big,.radar-legend-item b,.radar-legend-item span) { color:#edf3f7; }
html[data-color-mode="dark"] :is(.score-metric-label,.score-metric-note,.category-score-item small) { color:#bdc8d2; }
html[data-color-mode="dark"] .radar-chart text { fill:#e0ebf2; }
html[data-color-mode="dark"] .radar-area { fill:#589ac53d; stroke:#83c7f0; }
html[data-color-mode="dark"] .radar-point { fill:#83c7f0; stroke:#203d50; }
html[data-color-mode="dark"] #modalBody :is(.explainBlock,.block-correct,.combo-explain,.choice-explain-list) { background:#22262b; color:#eceff2; border-color:#45525e; }
html[data-color-mode="dark"] #modalBody .explain-main { background:#1c3639; color:#edf5f5; border-color:#43777b; }
html[data-color-mode="dark"] #modalBody .explain-support { background:#3a3324; color:#f1e9d8; border-color:#7c6a3d; }
html[data-color-mode="dark"] #modalBody :is(.correct-keyword,.related-keyword,.combo-term) { color:#9ae5c1; background:#1b3d34; }
html[data-color-mode="dark"] #modalBody :is(.wrong-keyword,.combo-wrong) { color:#ffb6ad; background:#4c2c2b; }
html[data-color-mode="dark"] #modalBody :is(.important-keyword,.related-value,.term-target) { color:#ffe0a4; background:#44391f; }
html[data-color-mode="dark"] #modalBody :is(.answer-keyword,.formula-keyword,.formula-label,.term-actual) { color:#bce5ff; background:#193a54; border-color:#5a9cc6; }
html[data-color-mode="dark"] #modalBody :is(.combo-answer,.combo-result,.choice-explain-conclusion) { background:#253c4a; color:#e3f3ff; border-color:#4b7186; }
html[data-color-mode="dark"] #modalBody .choice-explain-item { border-color:#495460; }

/* Match the specificity of the original per-screen button palettes. */
html[data-color-mode="dark"] .big-btn,
html[data-color-mode="dark"] #pastMenuScreen .big-btn,
html[data-color-mode="dark"] #yearMenuScreen .big-btn,
html[data-color-mode="dark"] #scoreYearScreen .big-btn { background:#2b3540; color:#f4f6f8; border-color:#64707c; }
html[data-color-mode="dark"] #pastMenuScreen .big-btn small,
html[data-color-mode="dark"] #yearMenuScreen .big-btn small,
html[data-color-mode="dark"] #scoreYearScreen .big-btn small,
html[data-color-mode="dark"] :is(.year-progress,.category-list-btn small) { color:#bdc8d2; }
html[data-color-mode="dark"] #pastMenuScreen .big-btn::before,
html[data-color-mode="dark"] #yearMenuScreen .big-btn::before,
html[data-color-mode="dark"] #scoreYearScreen .big-btn::before { background:#83b9dc; }
html[data-color-mode="dark"] .year-progress-bar { background:#485561; }
html[data-color-mode="dark"] .year-tools-card { background:#22262b; color:#eceff2; border-color:#454e58; }
html[data-color-mode="dark"] .year-tools-title { color:inherit; }
html[data-color-mode="dark"] :is(.action-btn,.closeBtn,.jump-btn,.explain-jump-btn,.year-tools-select) { background:#303943; color:#eaf1f6; border-color:#64707c; }
html[data-color-mode="dark"] :is(.action-btn.teal,.guide-btn.primary,.category-mini-btn.main) { background:#285979; color:#fff; border-color:#76a8c9; }
html[data-color-mode="dark"] .category-mini-btn.random { background:#245641; color:#e0f8eb; border-color:#6cae8f; }
html[data-color-mode="dark"] :is(.action-btn.danger,.jump-btn.wrong) { background:#612f34; color:#ffd9dc; border-color:#b66a73; }
html[data-color-mode="dark"] .jump-btn.correct { background:#193f30; color:#b4f2cf; border-color:#75cd9e; }
html[data-color-mode="dark"] :is(.category-mini-btn.score,.bookmark-pill.active,.jump-btn.review,.statusChip.revision) { background:#493f25; color:#ffe0a4; border-color:#aa9052; }
html[data-color-mode="dark"] :is(.jump-btn.current,.jump-filter-btn.active,.explain-jump-btn.active) { background:#326d94; color:#fff; border-color:#83b9dc; }
html[data-color-mode="dark"] .revision-source-link { background:#193a54; color:#bce5ff; border-color:#5a9cc6; }
html[data-color-mode="dark"] :is(.pwa-update-notice,#localSaveNotice) button { background:#285979; color:#fff; }
html[data-color-mode="dark"] :is(button,select,a,input):focus-visible { outline:3px solid #8dceff; outline-offset:3px; }
html[data-color-mode="dark"] .night-mode-toggle input { background:#44515f; border-color:#b1c5d6; }
html[data-color-mode="dark"] .night-mode-toggle input:checked { background:#326d94; border-color:#9acff1; }
html[data-color-mode="dark"] .blankBox { background:#283f4d; color:#f0f7fc; border-color:#95bed4; }
html[data-color-mode="dark"] :is(.dockTitle,.heatmap-head,.heatmap-year) { color:#d6e3ed; }
html[data-color-mode="dark"] :is(.statusChip.pending,.statusChip.ghost,.mode-badge) { background:#304c5d; color:#f0f7fc; border-color:#829fac; }
html[data-color-mode="dark"] .statusChip.ok { background:#193f30; color:#b4f2cf; border-color:#75cd9e; }
html[data-color-mode="dark"] .statusChip.ng { background:#492b2b; color:#ffd2cd; border-color:#e8958d; }
html[data-color-mode="dark"] .revisionCautionLabel { color:#ffdf9a; }
html[data-color-mode="dark"] .hl-correct { color:#8fe0b9; }
html[data-color-mode="dark"] .hl-wrong { color:#ffa79e; }
html[data-color-mode="dark"] .hl-formula { color:#9bd8f5; }
html[data-color-mode="dark"] .hl-key { color:#ffdf9a; }
html[data-color-mode="dark"] #modalBody :is(.block-related,.block-key) .blockTitle { color:#ffdf9a; }
html[data-color-mode="dark"] #modalBody .block-warn .blockTitle { color:#ffa79e; }
html[data-color-mode="dark"] #modalBody .block-formula .blockTitle { color:#9bd8f5; }
html[data-color-mode="dark"] .heatmap-cell { border-color:#657381; }
html[data-color-mode="dark"] .heatmap-cell.empty { background:#2b333c; color:#bdc8d2; }
html[data-color-mode="dark"] .heatmap-cell.low { background:#492b2b; color:#ffd2cd; }
html[data-color-mode="dark"] .heatmap-cell.mid { background:#493f25; color:#ffe0a4; }
html[data-color-mode="dark"] .heatmap-cell.high { background:#193f30; color:#b4f2cf; }
html[data-color-mode="dark"] .heatmap-cell.top { background:#193a54; color:#bce5ff; }
html[data-color-mode="dark"] .heatmap-cell small { color:inherit; }
@media(max-width:360px) {
  body.app-nav-ready #counterWrap .nav-btn { font-size:12px; padding:8px; }
  body.app-nav-ready .quiz-header { padding-top:calc(104px + env(safe-area-inset-top)); }
}
@media(prefers-reduced-motion:reduce) { .night-mode-toggle input::before { transition:none; } }
