:root {
  --ink:#303b43; --muted:#5e6d67; --accent:#287a5b; --accent-dark:#1d6045;
  --accent-soft:#eff7f2; --line:#e2e8e3; --paper:#fff; --back:#fbfcfb;
  --blue:#366890; --amber:#856b36; --header-height:72px;
  --body-font:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  --display-font:"Songti SC","STSong",serif;
  --mono-font:"SFMono-Regular",Consolas,monospace;
  --text-body:1rem; --text-table:1rem; --text-question:1.35rem;
  --text-ui:1rem; --text-small:.875rem; --text-section:1.65rem; --text-page:2.2rem;
}
* { box-sizing:border-box }
[hidden] { display:none!important }
html { scroll-behavior:smooth; scroll-padding-top:calc(var(--header-height) + 26px) }
body { margin:0; background:var(--paper); color:var(--ink); font:var(--text-body)/1.6 var(--body-font); -webkit-font-smoothing:antialiased }
button,input,select { font:inherit }
button,a,select { -webkit-tap-highlight-color:transparent }
button { cursor:pointer }
a { color:var(--accent); text-decoration:none; text-underline-offset:4px }
a:hover { color:var(--accent-dark) }
a,button,input,select,summary { transition:color .15s,background-color .15s,border-color .15s }
button:active { transform:translateY(1px) }
:focus-visible { outline:3px solid #8bc3aa; outline-offset:4px }
::selection { background:#d5ebde }
h1,h2,h3,h4 { color:#23362c; line-height:1.25; font-weight:600; letter-spacing:normal }
h1 { font-size:var(--text-page); margin:0 0 16px }
h2 { font-size:var(--text-section); margin:38px 0 20px }
h3 { font-size:var(--text-question); margin:28px 0 15px }
p { margin:16px 0 }
strong { font-weight:650 }
button,select { color:var(--ink) }
button { background:var(--paper); border:1px solid var(--line); border-radius:5px; padding:7px 12px; line-height:1.6; font-size:var(--text-ui) }
button:hover { background:var(--back); border-color:#b4c9bc }
button:disabled { cursor:wait; opacity:.6 }
input[type=search],select { min-width:0; border:1px solid #d9e2dc; background:var(--paper); border-radius:5px; padding:8px 10px; font-size:var(--text-ui); line-height:1.6 }
select { max-width:100% }
kbd { font:11px/1.6 var(--mono-font); border:1px solid #e2e7e3; background:#f8faf8; color:var(--muted); border-radius:4px; padding:1px 5px; white-space:nowrap }
.js-only { display:none }
.js .js-only { display:inline-flex }
.skip-link { position:fixed; top:-100px; left:20px; background:var(--paper); padding:12px 20px; border:2px solid var(--accent); z-index:12 }
.skip-link:focus { top:12px }
.site-header { position:sticky; top:0; height:var(--header-height); z-index:5; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:0 34px; background:#fff; border-bottom:1px solid var(--line) }
.header-start,.brand,.search-trigger { display:flex; align-items:center }
.header-start { gap:12px; flex-shrink:0 }
.brand { gap:10px; color:var(--ink); font-size:1.25rem; font-weight:700; letter-spacing:.03em }
.brand:hover { color:var(--accent) }
.brand-mark { width:31px; height:34px; display:grid; place-items:center; color:var(--accent) }
.brand-mark svg { width:27px; height:27px }
.top-nav { display:flex; align-items:center; gap:25px; margin-left:auto; margin-right:18px; height:100% }
.top-link { position:relative; display:flex; align-items:center; height:100%; white-space:nowrap; font-size:.875rem; color:#4b5c53 }
.top-link:hover,.top-link.active { color:var(--accent) }
.top-link.active::after { content:""; position:absolute; bottom:-1px; left:0; right:0; height:2px; background:var(--accent) }
.search-trigger { gap:9px; color:var(--muted); background:#f8faf8; padding:7px 11px; flex-shrink:0 }
.search-trigger svg { width:17px; height:17px }
.search-trigger kbd { margin-left:18px }
.icon-button { display:inline-flex; align-items:center; justify-content:center; padding:6px; border-color:transparent; background:transparent; font-size:1.5rem; line-height:1 }
.sidebar-toggle { display:none!important }
.app-layout { display:grid; grid-template-columns:230px minmax(0,820px) 190px; column-gap:40px; max-width:1560px; margin:0 auto; padding:0 32px }
.sidebar { position:sticky; top:var(--header-height); height:calc(100dvh - var(--header-height)); overflow-y:auto; scrollbar-width:thin; padding:29px 20px 32px 0; border-right:1px solid var(--line); font-size:var(--text-ui) }
.sidebar-home { display:block; color:var(--muted); font-size:var(--text-ui); margin-bottom:21px }
.sidebar-group { margin-bottom:26px }
.sidebar-group>summary { cursor:pointer; list-style:none; position:relative; font-weight:650; color:#304939; font-size:var(--text-ui); padding:4px 18px 8px 8px }
.sidebar-group>summary::-webkit-details-marker { display:none }
.sidebar-group>summary::after { content:"⌄"; position:absolute; right:5px; color:#97a49a }
.sidebar-group:not([open])>summary::after { content:"›" }
.sidebar-link,.project-link { display:block; padding:7px 10px; margin:3px 0; line-height:1.5; color:#405447; border-radius:4px }
.sidebar-link:hover,.project-link:hover { background:#f4f7f4; color:var(--accent) }
.sidebar-link.active { background:#eaf4ed; color:var(--accent); font-weight:600; box-shadow:inset 2px 0 var(--accent) }
.project-link { display:flex; align-items:center; justify-content:space-between; font-size:var(--text-ui); color:#586b5e; padding-top:4px }
.project-link span { font-size:var(--text-small); font-variant-numeric:tabular-nums }
.sidebar-bottom { border-top:1px solid var(--line); padding-top:15px }
.main-content { min-width:0; padding:43px 0 32px }
.main-content:focus { outline:none }
.page-toc { position:sticky; top:var(--header-height); height:calc(100dvh - var(--header-height)); padding:36px 0 30px 12px; overflow:auto; scrollbar-width:thin; font-size:var(--text-ui) }
.toc-label { font-size:var(--text-ui); color:#3a5142; font-weight:600; margin:0 0 14px }
.toc-link { display:block; color:#43584b; padding:6px 9px 6px 12px; border-left:1px solid var(--line); font-size:.875rem; line-height:1.6 }
.toc-link.depth-3 { padding-left:20px; font-size:.875rem }
.toc-link:hover,.toc-link.active { color:var(--accent); border-left-color:var(--accent) }
.back-top { display:block; color:#5d7164; margin:23px 0 0 12px; font-size:var(--text-ui) }
.mobile-toc { display:none }
.breadcrumb { display:flex; align-items:center; flex-wrap:wrap; gap:9px; font-size:var(--text-ui); color:#687970; margin-bottom:20px }
.breadcrumb a { color:#526b5b }
.page-heading { margin-bottom:26px }
.eyebrow { color:#596f60; font-size:var(--text-ui); font-weight:550; margin:0 0 14px }
.lead { color:#576b5e; font-size:var(--text-body); line-height:1.6; margin:12px 0 0; max-width:680px }
.project-context { font-size:var(--text-ui); color:#5c6f62; margin-top:14px }
.home-heading { padding:0 0 22px; border-bottom:1px solid var(--line); margin-bottom:28px }
.home-heading h1 { font-size:var(--text-page); line-height:1.25; margin:0 }
.home-actions { display:flex; flex-wrap:wrap; align-items:center; gap:13px; margin-top:26px }
.button { display:inline-flex; align-items:center; justify-content:center; gap:9px; padding:9px 16px; border-radius:5px; font-size:var(--text-ui); line-height:1.7; border:1px solid var(--line) }
.button.primary { color:white; background:var(--accent); border-color:var(--accent) }
.button.primary:hover { background:var(--accent-dark) }
.button.quiet { background:var(--paper); color:#617569 }
.button.quiet:hover { background:#f4f8f5; border-color:#b4c9bc }
.button kbd { margin-left:5px }
.continue-reading { display:block; font-size:var(--text-ui); margin-top:17px; padding-left:12px; border-left:2px solid #9ec4ad; color:#376d4d }
.home-section { margin-bottom:39px }
.section-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-bottom:18px }
.section-heading h2 { font-size:var(--text-section); margin:0 }
.section-heading>span,.section-heading>a { font-size:var(--text-ui); color:#5c7163 }
.section-heading>a { color:var(--accent) }
.project-overview { border:1px solid var(--line); border-radius:6px; padding:22px 25px; margin:15px 0; background:linear-gradient(115deg,#fcfefc,white 75%) }
.project-kicker { flex-wrap:wrap; color:var(--accent); display:flex; justify-content:space-between; gap:12px; font-size:var(--text-ui) }
.project-kicker span { color:#5c7163; font-size:var(--text-ui); font-variant-numeric:tabular-nums }
.project-overview h3 { margin:9px 0; font-size:var(--text-question) }
.project-overview h3 a { color:var(--ink) }
.project-overview>p { color:#526858; font-size:var(--text-body); line-height:1.6; margin:0 0 16px }
.project-topics { display:grid; grid-template-columns:1fr 1fr; gap:6px 18px; border-top:1px solid #e1e8e2; padding-top:14px }
.project-topics a { font-size:var(--text-body); color:#3b6250; line-height:1.8; padding:3px 0 }
.project-topics a:hover { color:var(--accent); text-decoration:underline }
.category-list>a { display:grid; grid-template-columns:180px 1fr 15px; gap:18px; align-items:center; border-bottom:1px solid var(--line); padding:17px 0 }
.category-list strong { color:#385944; font-size:var(--text-body) }
.category-list span { font-size:var(--text-ui); color:#5f7165 }
.category-list b { color:#9bb7a5; font-weight:400 }
.site-footer { display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; color:#627468; font-size:var(--text-ui); border-top:1px solid var(--line); padding-top:21px; margin-top:58px }
.tags { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:15px }
.tag { font-size:var(--text-ui); color:#486b55; background:#f3f7f3; padding:2px 7px; border-radius:3px }
.article-heading h1 { font-size:var(--text-page); line-height:1.25 }
.article-toolbar { display:flex; align-items:center; justify-content:space-between; width:100%; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:10px 0; margin-bottom:30px }
.view-switch { display:inline-flex; gap:3px; background:#f4f7f4; padding:3px; border-radius:5px }
.view-switch button { background:transparent; border-color:transparent; color:#566a5d; padding:5px 15px; font-size:var(--text-ui) }
.view-switch button[aria-pressed=true] { color:var(--accent); background:var(--paper); box-shadow:0 1px 3px #344d3e10 }
.print-button { font-size:var(--text-ui); border-color:transparent; color:#586e5f }
.content-zone { margin:40px 0; scroll-margin-top:calc(var(--header-height) + 25px) }
.content-zone>h2 { margin:0 0 22px; font-size:var(--text-section) }
.question-group>h2 { color:#293c4d; border-bottom:2px solid #dfe6ec; padding-bottom:13px }
.quick { background:#f8faf8; border:1px solid var(--line); padding:20px 23px; border-radius:5px }
.quick>h2 { color:#435c4b; font-size:var(--text-question) }
.quick .table-scroll { margin:0 }
.main-answer { background:#eff7f2; border-left:4px solid #74a78b; padding:22px 24px }
.main-answer>h2 { color:var(--accent-dark); font-size:var(--text-question) }
.main-answer p { font-size:var(--text-body); line-height:1.6 }
.main-answer p:last-child { margin-bottom:0 }
.table-scroll { width:100%; max-width:100%; overflow:auto; overscroll-behavior-x:contain; margin:20px 0 25px; border:1px solid var(--line); border-radius:4px }
table { width:100%; border-collapse:collapse; font-size:var(--text-table); line-height:1.6; margin:0 }
th,td { text-align:left; vertical-align:top; border-bottom:1px solid var(--line); border-right:1px solid #edf0ed; padding:11px 12px; min-width:110px }
th { color:#385540; background:#f0f5f0; font-weight:600 }
td { background:white }
tbody tr:nth-child(even) td { background:#fafcfa }
tr:last-child td { border-bottom:0 }
th:last-child,td:last-child { border-right:0 }
td:first-child { color:#3f5b48; font-weight:550 }
.quick td:first-child { width:140px }
.qa { margin:26px 0; padding:0; border:1px solid #d7e1eb; border-radius:6px; overflow:hidden; background:white; scroll-margin-top:calc(var(--header-height) + 23px) }
.question-header { display:flex; align-items:center; justify-content:space-between; gap:18px; background:#f1f5fa; border-bottom:1px solid #dbe4ee; padding:16px 20px }
.question-header>h2,.question-header>h3 { flex:1; min-width:0; margin:0; padding:0; border:0; font-size:var(--text-question); line-height:1.25; font-weight:600; color:#29485e; overflow-wrap:anywhere }
.question-anchor { color:inherit }
.question-anchor:hover { color:var(--accent) }
.question-tools { display:flex; flex:0 0 auto; align-items:center; gap:8px; width:auto; margin:0; white-space:nowrap; font-size:var(--text-ui) }
.question-tools select { width:110px; min-height:40px; padding:6px 9px; font-size:var(--text-ui); line-height:1.6; color:#4f5e68; background:#f5f7f9; border:1px solid #d6dee5; border-radius:5px }
.question-tools select[data-status=weak] { background:#fff4d9; border-color:#e7ce8d; color:#795717 }
.question-tools select[data-status=mastered] { background:#eaf5ed; border-color:#b6d3be; color:#2d6440 }
.favorite-button { min-height:40px; padding:6px 9px; font-size:var(--text-ui); color:#536976; border:1px solid transparent; background:transparent }
.favorite-button:hover { background:white; border-color:#cbd8e3 }
.favorite-button[aria-pressed=true] { background:#eaf5ed; color:#286540; border-color:#b6d3be }
.question-content { padding:18px 20px 22px }
.spoken-answer { background:#f0f7f2; border-left:3px solid #8eb49c; padding:16px 18px; color:#315c42; font-size:var(--text-body); line-height:1.6 }
.spoken-answer>.answer-label { color:#2d6142; font-size:1rem; font-weight:600; margin:0 0 12px }
.spoken-answer>p { margin:0 0 16px }
.spoken-answer>p:last-child { margin-bottom:0 }
.explanation { color:#526575; font-size:1rem; font-weight:600; margin:22px 0 12px }
.qa-answer { font-size:var(--text-body); line-height:1.6 }
.qa-answer>:first-child { margin-top:0 }
.qa-answer>:last-child { margin-bottom:0 }
.qa-answer p { margin-bottom:16px }
.example { padding:14px 17px; background:#f0f5fb; border-left:3px solid #a4bdd2; font-size:var(--text-body); color:#3f617b }
.article-body ul,.article-body ol { padding-left:24px }
.article-body li { margin:8px 0; padding-left:3px }
code { overflow-wrap:anywhere; font-family:var(--mono-font); font-size:.875em; color:#426a53; background:#f0f5f0; padding:2px 5px; border-radius:3px }
pre { background:#f5f7f9; border:1px solid #dde4eb; border-radius:5px; padding:17px 19px; max-width:100%; overflow:auto; font-size:.875rem; line-height:1.85 }
pre code { overflow-wrap:normal; background:transparent; padding:0; font-size:inherit; color:#435b6a }
.review-check { background:#fff9ed; border:1px solid #e7d9bb; border-radius:5px; padding:22px 24px; font-size:var(--text-body) }
.review-check h2 { color:#775b29; font-size:var(--text-question) }
.review-check blockquote { margin:0 0 20px; color:#755d30 }
.review-check ul { list-style:none; padding-left:0 }
.review-check li { padding-left:0 }
.check-item label { display:flex; align-items:flex-start; gap:10px; cursor:pointer }
.check-item input { accent-color:var(--accent); width:18px; height:18px; margin:9px 0 0; flex-shrink:0 }
.check-item input:checked+span { color:#677861; text-decoration:line-through; text-decoration-color:#bdc9ba }
.reference { border-top:1px dashed var(--line); padding:14px 0 0; font-size:var(--text-ui); color:#63736b }
.reference summary { cursor:pointer }
.reference[open]>summary { margin-bottom:14px }
.pending { color:#7a6437; font-size:var(--text-small) }
.reveal-answer { display:none!important; padding:7px 14px; color:var(--accent); border-color:#cde1d3; background:#f8fbf8; margin:9px 0 18px }
body[data-view=quiz] .content-zone:not(.question-group),body[data-view=quiz] .reference { display:none }
body[data-view=quiz] .qa-answer { display:none }
body[data-view=quiz] .reveal-answer { display:inline-flex!important }
body[data-view=quiz] .qa.answer-visible .qa-answer { display:block }
body[data-view=tables] .content-zone[data-table-count="0"],body[data-view=tables] .reference,body[data-view=tables] .qa[data-table-count="0"] { display:none }
body[data-view=tables] .qa-answer>:not(.table-scroll),body[data-view=tables] .question-tools { display:none }
body[data-view=tables] .question-header>h3 { font-size:var(--text-question) }
.page-pagination { display:grid; grid-template-columns:1fr 1fr; gap:24px; border-top:1px solid var(--line); margin-top:42px; padding-top:23px }
.page-pagination a { display:flex; flex-direction:column; gap:7px }
.page-pagination small { color:#637469; font-size:var(--text-ui) }
.page-pagination strong { font-size:1.125rem; font-weight:550 }
.page-pagination .next { text-align:right }
.related { margin-top:38px }
.related h2 { font-size:var(--text-question) }
.topic-list { border-top:1px solid var(--line) }
.topic-row { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:20px 3px; border-bottom:1px solid var(--line) }
.topic-row-title { display:block; color:#365841; font-size:1.125rem; font-weight:550; margin-bottom:5px }
.topic-row-meta { display:block; color:#647669; font-size:var(--text-ui) }
.topic-row:hover .topic-row-title { color:var(--accent) }
.row-arrow { color:#aac0b0; font-size:var(--text-body) }
.topic-category { margin-bottom:38px }
.muted { color:#5f7165; font-size:var(--text-ui) }
.filter-bar { display:flex; gap:14px; flex-wrap:wrap; background:#f8faf8; border:1px solid var(--line); border-radius:5px; padding:16px 18px; margin:25px 0 18px }
.filter-bar label { display:flex; flex-direction:column; flex:1; gap:6px; min-width:140px; font-size:var(--text-ui); color:#536d5c }
.filter-bar select,.filter-bar input { width:100%; font-size:var(--text-ui); padding:7px 9px; background:white }
.results-count { color:#5a7062; font-size:var(--text-ui); margin:15px 0 23px }
.table-entry { margin:33px 0 41px; padding-bottom:17px; border-bottom:1px solid var(--line) }
.result-context { color:#617368; font-size:var(--text-ui); margin:0 0 9px }
.table-entry h2 { margin:0 0 12px; font-size:var(--text-question); line-height:1.7 }
.table-entry .table-scroll { margin:14px 0 }
.source-link { font-size:var(--text-ui) }
.quiz-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px }
.quiz-toolbar .button { padding:5px 12px; font-size:var(--text-ui); flex-shrink:0 }
.quiz-entry { margin:24px 0; padding:0; border:1px solid #d7e1eb; border-radius:6px; overflow:hidden }
.quiz-entry>.result-context { padding:12px 20px; margin:0; background:#fafcfd; border-bottom:1px solid #e1e8ed }
.quiz-entry .reveal-answer { display:inline-flex!important; margin:0 0 12px; font-size:var(--text-ui) }
.quiz-entry .qa-answer { border-top:1px solid var(--line); padding-top:18px; margin-top:6px }
.quiz-entry .source-link { display:block; margin-top:14px }
.empty-state { color:#576c5d; padding:28px 22px; background:#f8faf8; border:1px dashed #d8e4db; border-radius:5px; font-size:var(--text-ui); line-height:2 }
.empty-state a { text-decoration:underline }
.study-summary { display:flex; flex-wrap:wrap; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:17px 0; gap:16px 28px; margin:25px 0 }
.study-summary>div { display:flex; align-items:baseline; gap:8px }
.study-summary strong { font-size:var(--text-section); font-weight:550; color:#42634d; font-variant-numeric:tabular-nums }
.study-summary span { font-size:var(--text-ui); color:#5f7266 }
.saved-question { margin:20px 0; border:1px solid #d7e1eb; border-radius:6px; overflow:hidden }
.saved-question>.result-context { padding:11px 20px; margin:0; background:white; border-bottom:1px solid #e1e8ed }
.saved-question .question-header { border-bottom:0 }
.saved-question .question-header>a { flex:1; min-width:0; font-size:var(--text-question); font-weight:600; color:#29485e; line-height:1.7 }
.transfer-records { margin-top:42px; border-top:1px solid var(--line); padding-top:8px }
.transfer-records h2 { font-size:var(--text-question) }
.transfer-records p { color:#5b6f61; font-size:var(--text-ui) }
.transfer-records>div { display:flex; gap:10px; flex-wrap:wrap }
.import-label { cursor:pointer }
.import-label input { display:none }
.pending-list>div { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:12px; padding:18px 0; border-bottom:1px solid var(--line) }
.pending-list h2 { font-size:var(--text-body); margin:0 }
.pending-list span { font-size:var(--text-small); color:#7a6437 }
.search-dialog { padding:0; width:min(640px,calc(100vw - 32px)); max-height:80dvh; margin:12dvh auto auto; border:1px solid var(--line); border-radius:9px; box-shadow:0 20px 70px #1f3d2c25; overflow:auto; color:var(--ink) }
.search-dialog::backdrop { background:#1f362b50; backdrop-filter:blur(3px) }
.search-dialog-heading { display:flex; justify-content:space-between; align-items:center; padding:17px 21px 7px }
.search-dialog-heading h2 { margin:0; font-size:var(--text-body) }
.search-input-wrap { display:flex; align-items:center; gap:10px; margin:10px 21px 0; border:1px solid #9fbeaa; border-radius:5px; padding:9px 12px; color:#88a08f }
.search-input-wrap input { width:100%; border:0; padding:0; background:transparent; outline:none; font-size:1.125rem }
.search-input-wrap:focus-within { box-shadow:0 0 0 2px #e6f2e9 }
.search-hint { color:#607268; font-size:var(--text-ui); margin:12px 22px }
.search-results { max-height:46dvh; overflow:auto; padding:0 12px 12px }
.search-result { display:block; padding:12px 13px; border-radius:4px; border:1px solid transparent; margin:2px 0 }
.search-result:hover,.search-result:focus-visible { background:#f2f8f3; border-color:#dbe9de }
.search-result small { display:block; color:#607368; font-size:var(--text-small); margin-bottom:4px }
.search-result strong { display:block; color:#315b40; font-size:1.125rem; font-weight:550; line-height:1.8 }
.search-result p { font-size:var(--text-ui); color:#5b6e61; line-height:1.8; margin:5px 0 0 }
.search-result mark { background:#e0efda; color:#3d683d; padding:0 1px }
.search-dialog-footer { display:flex; justify-content:space-between; color:#637469; background:#fafcfa; border-top:1px solid var(--line); padding:9px 21px; font-size:var(--text-small) }
.toast { position:fixed; bottom:25px; left:50%; transform:translateX(-50%); z-index:10; border:1px solid #bfd6c5; background:#f2f9f4; color:#4f775a; padding:10px 18px; font-size:var(--text-ui); border-radius:5px; max-width:calc(100vw - 32px); box-shadow:0 4px 20px #1f3d2c10 }
.sidebar-scrim { display:none }
@media(min-width:1600px) { .app-layout { column-gap:52px; grid-template-columns:240px minmax(0,850px) 190px } }
@media(max-width:1250px) { .app-layout { grid-template-columns:210px minmax(0,1fr); gap:32px; padding:0 26px } .page-toc { display:none } .top-nav { gap:19px; margin-right:5px } .site-header { gap:17px; padding:0 25px } .search-trigger kbd { margin-left:4px } }
@media(max-width:950px) { .top-nav { gap:14px } .top-link { font-size:.875rem } .site-header { padding:0 18px; gap:15px } .search-trigger span,.search-trigger kbd { display:none } .search-trigger { padding:7px } .app-layout { grid-template-columns:195px minmax(0,1fr); gap:26px; padding:0 20px } .sidebar { padding-right:13px } h1 { font-size:var(--text-page) } }
@media(max-width:760px) {
  :root { --header-height:108px }
  .site-header { display:grid; grid-template-columns:1fr auto; grid-template-rows:57px 50px; gap:0 15px; padding:0 18px }
  .header-start { gap:7px }
  .sidebar-toggle { display:inline-flex!important; margin-left:-6px }
  .brand { font-size:1.25rem; gap:4px }
  .brand-mark { width:25px }
  .brand-mark svg { width:23px }
  .top-nav { grid-column:1/-1; grid-row:2; margin:0 -3px; gap:23px; overflow-x:auto; scrollbar-width:none }
  .top-link { font-size:.875rem; flex-shrink:0 }
  .search-trigger { grid-column:2; grid-row:1; padding:7px }
  .search-trigger span { display:inline; font-size:var(--text-ui) }
  .app-layout { display:block; padding:0 16px }
  .main-content { padding-top:29px }
  .sidebar { position:fixed; top:var(--header-height); left:0; width:280px; height:calc(100dvh - var(--header-height)); background:white; z-index:8; padding:25px 23px; border-right:1px solid var(--line); transform:translateX(-100%); visibility:hidden; transition:transform .18s,visibility .18s }
  .sidebar-open .sidebar { transform:translateX(0); visibility:visible }
  .sidebar-open .sidebar-scrim { display:block; position:fixed; inset:var(--header-height) 0 0; background:#1f362b45; border:0; border-radius:0; z-index:7 }
  .page-toc { display:block; position:static; height:auto; overflow:visible; padding:0; margin:0 0 25px; grid-row:auto }
  .app-layout>.page-toc { display:none }
  .mobile-toc { display:block; margin:0 0 25px; border:1px solid var(--line); border-radius:4px; background:#fafcfa; padding:11px 15px; font-size:var(--text-ui); color:#526b5a }
  .mobile-toc>summary { cursor:pointer; font-weight:550 }
  .mobile-toc nav { max-height:45dvh; overflow:auto; padding-top:13px }
  .mobile-toc .toc-link { font-size:.875rem }
  .home-heading { padding:0 0 20px; margin-bottom:25px }
  .home-heading h1 { font-size:var(--text-page) }
  .home-heading .lead { font-size:var(--text-body) }
  .home-actions { gap:10px; margin-top:22px }
  .home-actions .button { padding:8px 12px; font-size:var(--text-ui) }
  .home-actions kbd { display:none }
  .project-overview { padding:19px }
  .project-overview h3 { font-size:var(--text-question) }
  .project-kicker { font-size:var(--text-ui) }
  .project-kicker span { font-size:var(--text-small) }
  .section-heading { gap:7px }
  .section-heading h2 { font-size:var(--text-section) }
  .section-heading>span { font-size:var(--text-small) }
  .project-topics { grid-template-columns:1fr; gap:5px }
  .category-list>a { grid-template-columns:1fr 15px; gap:4px 12px; padding:14px 0 }
  .category-list strong { font-size:1.125rem }
  .category-list span { grid-column:1; font-size:var(--text-ui) }
  .category-list b { grid-column:2; grid-row:1/3 }
  .page-heading { margin-bottom:26px }
  .article-heading h1 { font-size:var(--text-page) }
  .page-meta { font-size:var(--text-small) }
  .breadcrumb { margin-bottom:17px; font-size:var(--text-ui) }
  .tags { margin-bottom:12px }
  .quick,.main-answer,.review-check { padding:17px }
  .main-answer p { font-size:var(--text-body); line-height:1.6 }
  .content-zone>h2 { font-size:var(--text-section) }
  .quick>h2,.main-answer>h2,.review-check>h2 { font-size:var(--text-question) }
  .question-header { flex-direction:column; align-items:stretch; gap:12px; padding:14px }
  .question-header>h2,.question-header>h3,body[data-view=tables] .question-header>h3 { font-size:var(--text-question) }
  .question-tools { align-self:flex-end; gap:8px }
  .question-content { padding:16px 12px 18px }
  .spoken-answer { font-size:var(--text-body); padding:14px 12px }
  .explanation { font-size:1rem }
  .example { font-size:var(--text-body) }
  .qa-answer { font-size:var(--text-body); line-height:1.6 }

  .question-tools select,.favorite-button { min-height:44px; font-size:var(--text-ui) }
  table { min-width:520px; font-size:var(--text-table) }
  th,td { min-width:100px; padding:10px }
  .quick table { min-width:0 }
  .quick th,.quick td { min-width:0; padding:8px }
  .quick td:first-child { width:100px }
  pre { font-size:.875rem; padding:13px }
  .filter-bar { padding:13px; gap:12px }
  .filter-bar label { min-width:115px }
  .filter-bar label:last-child { flex-basis:100% }
  .filter-bar label:only-child { flex-basis:auto }
  .quiz-entry>.result-context,.saved-question>.result-context { padding:11px 14px; font-size:var(--text-ui) }
  .saved-question .question-header>a { font-size:var(--text-question) }

  .table-entry h2 { font-size:var(--text-question) }
  .page-pagination { gap:15px }
  .page-pagination strong { font-size:1.125rem }
  .search-dialog { margin-top:8dvh; width:calc(100vw - 24px); max-height:84dvh }
  .search-results { max-height:54dvh }
  .search-dialog-heading { padding:14px 16px 5px }
  .search-input-wrap { margin:8px 16px 0; gap:7px; padding:9px }
  .search-input-wrap input { font-size:1.125rem }
}
@media(max-width:360px) { .app-layout { padding:0 16px } .top-nav { gap:18px } .site-header { padding:0 14px } .brand { font-size:1.25rem } .home-heading h1 { font-size:var(--text-page) } .project-overview { padding:16px } .question-tools { align-self:flex-start } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto } *,*::before,*::after { transition:none!important } }
@media print {
  body { font-size:10.5pt; background:white; color:black }
  .site-header,.sidebar,.page-toc,.mobile-toc,.site-footer,.article-toolbar,.question-tools,.page-pagination,.related,.search-dialog,.toast,.reveal-answer,.skip-link { display:none!important }
  .app-layout { display:block; padding:0; max-width:none }
  .main-content { padding:0 }
  .page-heading { margin-bottom:25px }
  .page-heading h1 { font-size:22pt }
  body .article-body .content-zone,body .article-body .qa,body .article-body .qa-answer,body .article-body .qa-answer>*,body .article-body .reference { display:revert!important }
  .qa,.content-zone { break-inside:auto }
  .qa { margin:18px 0; border:0; border-radius:0; overflow:visible }
  .question-header { display:block; background:transparent; padding:8px 0; border-bottom:1px solid #ccd5dd }
  .question-header>h3 { font-size:13pt }
  .question-content { padding:12px 0 }
  h1,h2,h3,summary { break-after:avoid }
  h2 { font-size:15pt }
  .qa h3 { font-size:13pt }
  .qa-answer,.main-answer p,.spoken-answer { font-size:10.5pt; line-height:1.85 }
  .table-scroll { overflow:visible }
  table { min-width:0; font-size:9pt }
  th,td { min-width:0; padding:7px }
  tr { break-inside:avoid }
  pre { white-space:pre-wrap; overflow:visible; font-size:9pt }
  a { color:inherit }
  * { -webkit-print-color-adjust:exact; print-color-adjust:exact }
  @page { margin:17mm }
}
