:root {
  --bg:#f7f5f1; --paper:#fffefa; --surface:#fff; --ink:#202820; --muted:#5b655b;
  --line:#e4dfd6; --soft:#efebe3; --accent:#835b3b; --accent-soft:#f0e7dc;
  --sidebar:264px; --header:88px; --tools-height:64px;
  font-family:"Microsoft YaHei","PingFang SC","Segoe UI",sans-serif;
  color:var(--ink);background:var(--bg);font-synthesis:none;
}
html[data-mode="prefix"] {--accent:#3f6551;--accent-soft:#e5ede6;}
* {box-sizing:border-box;}
html {scroll-padding-top:0;scroll-behavior:smooth;}
body {margin:0;font-size:16px;line-height:1.7;}
button,input {font:inherit;}
button,a,input { -webkit-tap-highlight-color:transparent; }
button {cursor:pointer;}
button {color:inherit;}
button:disabled {cursor:default;opacity:.55;}
a {color:var(--accent);}
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible {outline:3px solid var(--accent);outline-offset:4px;}
[hidden] {display:none!important;}
h1,h2,h3,p {margin:0;}
button {touch-action:manipulation;}
.skip {position:fixed;top:-80px;left:18px;z-index:100;padding:10px 20px;background:var(--ink);color:white;}
.skip:focus {top:10px;}
.site-header {height:var(--header);position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 34px;border-bottom:1px solid var(--line);background:rgba(247,245,241,.97);backdrop-filter:blur(12px);}
.brand {display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none;font-size:17px;font-weight:700;letter-spacing:.04em;flex-shrink:0;}
.brand-mark {width:38px;height:40px;display:grid;place-items:center;background:var(--ink);color:#fff;border-radius:5px;font-size:21px;font-family:Georgia,"Songti SC",serif;}
.brand small {display:block;margin-top:0;font-size:10px;color:var(--muted);font-weight:400;letter-spacing:.1em;}
.site-nav {display:flex;gap:6px;padding:5px;border:1px solid var(--line);border-radius:9px;background:#f0ede6;}
.site-nav a {color:#72756d;text-decoration:none;font-size:13px;font-weight:600;padding:7px 18px;border-radius:5px;white-space:nowrap;}
.site-nav a[aria-current] {color:var(--ink);background:var(--surface);box-shadow:0 1px 4px #292c2812;}
.site-nav a:hover {color:var(--accent);}
.page-shell {display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);max-width:1600px;margin:auto;min-height:calc(100vh - var(--header));}
.sidebar {position:sticky;top:var(--header);height:calc(100vh - var(--header));padding:28px 16px 16px 22px;border-right:1px solid var(--line);display:flex;flex-direction:column;overflow:auto;scrollbar-width:thin;}
.sidebar-head {display:flex;justify-content:space-between;align-items:center;padding:0 10px;}
.eyebrow {font-size:10px;letter-spacing:.18em;color:var(--accent);font-weight:700;}
.sidebar-head h2 {font-size:18px;letter-spacing:.04em;margin-top:2px;}
.sidebar-caption {font-size:13px;color:var(--muted);margin:12px 10px 22px;}
#directory {flex:1;}
.directory-link {display:flex;align-items:center;gap:10px;min-height:46px;padding:10px 12px;border-radius:6px;text-decoration:none;color:#455145;font-size:14px;margin:3px 0;}
.directory-link:hover {background:var(--soft);color:var(--ink);}
.directory-link[aria-current] {background:var(--accent);color:white;}
.directory-index {font-size:12px;font-family:Consolas,monospace;min-width:20px;}
.directory-title {flex:1;overflow-wrap:anywhere;line-height:1.5;}
.directory-count {font-size:13px;font-family:Consolas,monospace;font-weight:700;}
.tier {margin:0 0 14px;}
.tier>summary {cursor:pointer;list-style:none;padding:8px 10px;font-weight:700;font-size:12px;display:flex;align-items:center;gap:7px;}
.tier>summary::-webkit-details-marker {display:none;}
.tier>summary::before {content:'›';font-size:17px;transition:transform .15s;}
.tier[open]>summary::before {transform:rotate(90deg);}
.tier-meta {margin-left:auto;color:var(--muted);font-size:10px;font-weight:400;}
.subtier {margin:2px 0 8px 9px;padding-left:7px;border-left:1px solid var(--line);}
.subtier>summary {cursor:pointer;list-style:none;padding:6px 8px;font-weight:600;font-size:11px;color:var(--muted);display:flex;align-items:center;gap:6px;}
.subtier>summary::-webkit-details-marker {display:none;}
.subtier>summary::before {content:'›';font-size:14px;transition:transform .15s;}
.subtier[open]>summary::before {transform:rotate(90deg);}
.sidebar-foot {border-top:1px solid var(--line);margin:24px 9px 0;padding-top:15px;font-size:10px;color:var(--muted);}
.status-dot {display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--accent);margin-right:6px;vertical-align:middle;}
#reader {padding:38px clamp(24px,4vw,68px) 40px;min-width:0;outline:none;}
.page-intro {display:flex;align-items:center;justify-content:space-between;gap:20px;padding-bottom:24px;border-bottom:1px solid var(--line);}
h1 {font-size:34px;line-height:1.4;letter-spacing:.025em;font-weight:750;margin-top:5px;}
.intro-copy {font-size:13px;color:var(--muted);margin-top:8px;}
.total-block {text-align:right;flex-shrink:0;}
.total-block strong {display:block;font-family:Georgia,"Times New Roman",serif;font-size:49px;line-height:1.15;font-weight:400;letter-spacing:-.035em;}
.total-block span {color:var(--muted);font-size:11px;}
.reading-status {display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:46px;padding:9px 0;color:var(--muted);font-size:14px;}
.text-button {background:none;border:0;color:var(--accent);padding:5px 0;font-weight:700;white-space:nowrap;font-size:14px;}
.text-button:hover {text-decoration:underline;}
.reader-tools {display:flex;align-items:center;gap:10px;margin:8px 0 22px;padding:10px 0;position:sticky;top:var(--header);z-index:20;background:var(--bg);}
.review-filters {display:flex;align-items:center;gap:12px;flex-wrap:wrap;flex-basis:100%;font-size:14px;}
.review-toggle {display:flex;gap:4px;border:1px solid var(--line);padding:3px;border-radius:8px;background:var(--paper);}
.review-toggle button {border:0;background:transparent;padding:8px 12px;border-radius:5px;color:var(--muted);font:inherit;font-weight:650;cursor:pointer;}
.review-toggle button[aria-pressed="true"] {background:#245c45;color:white;}
.review-filters label {display:flex;align-items:center;gap:6px;font-weight:600;}
.review-filters select {max-width:100%;padding:7px;border:1px solid var(--line);border-radius:5px;background:var(--paper);color:var(--text);font:inherit;}
.review-filters [hidden] {display:none;}
#knownViewCount {color:#245c45;font-weight:650;}
.review-empty {margin:16px 0;}
.search-box {flex:1;min-width:0;position:relative;display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:7px;background:var(--paper);padding:8px 13px;}
.search-box:focus-within {border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);}
.search-box>span {font-size:22px;line-height:1;color:var(--muted);}
.search-box input {width:100%;min-width:0;background:none;border:0;outline:none;font-size:15px;padding:3px 0;color:var(--ink);}
.search-box input:focus-visible {outline:none;}
kbd {font-size:10px;border:1px solid var(--line);padding:0 5px;border-radius:3px;color:var(--muted);}
.button {font-size:14px;padding:10px 13px;border:1px solid #c9cbbc;border-radius:6px;background:var(--paper);white-space:nowrap;font-weight:600;}
.button:hover {border-color:#b8b7aa;background:var(--soft);}
.button[aria-pressed="true"] {color:var(--accent);background:var(--accent-soft);border-color:var(--accent);}
.group-header {padding:0 0 22px;scroll-margin-top:calc(var(--header) + var(--tools-height) + 20px);}
.group-breadcrumb {color:var(--muted);font-size:14px;margin-bottom:8px;}
.group-title-row {display:flex;justify-content:space-between;align-items:flex-start;gap:16px;}
.group-title-row h2 {font-size:25px;font-weight:700;line-height:1.5;overflow-wrap:anywhere;}
html[data-mode="prefix"] .group-title-row h2 {font-family:Arial,"Microsoft YaHei",sans-serif;font-size:28px;}
.group-number {color:var(--accent);font-size:14px;white-space:nowrap;padding:6px 11px;background:var(--accent-soft);border-radius:5px;margin-top:4px;font-weight:700;}
.group-core {font-size:15px;color:#455145;margin-top:12px;line-height:1.9;}
div.group-core {display:flex;flex-wrap:wrap;align-items:center;gap:8px;}
.kind-label,.core-chip {display:inline-block;padding:4px 10px;border-radius:5px;font-size:14px;}
.kind-label {background:#304e3e;color:white;font-weight:700;}
.core-chip {background:#e4eee6;color:#235338;border:1px solid #c1d4c4;font-weight:600;}
.group-meta {display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;font-size:13px;color:var(--muted);flex-wrap:wrap;}
.group-actions {display:flex;gap:16px;}
.group-actions button {font-size:13px;}
.letter-rail {display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px;}
.rail-section {flex-basis:100%;font-size:13px;color:var(--muted);padding:5px 0 1px;}
.letter-rail a {display:inline-grid;place-items:center;min-width:32px;min-height:32px;padding:3px 7px;border:1px solid var(--line);border-radius:4px;text-decoration:none;font-size:13px;background:var(--paper);color:#455145;font-weight:600;}
.letter-rail a:hover {color:var(--accent);border-color:var(--accent);}
.unit {border:1px solid var(--line);border-radius:8px;background:var(--surface);margin-bottom:14px;overflow:clip;scroll-margin-top:calc(var(--header) + var(--tools-height) + 18px);}
.unit>summary {padding:15px 19px;list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;min-height:57px;background:var(--paper);}
.unit>summary::-webkit-details-marker {display:none;}
.unit>summary::before {content:'›';font-family:Arial,sans-serif;font-size:21px;color:var(--accent);line-height:1;transition:transform .12s;}
.unit[open]>summary::before {transform:rotate(90deg);}
.unit-title {flex:1;font-size:16px;font-weight:700;overflow-wrap:anywhere;}
.unit-count {font-size:14px;color:#4f5a4f;white-space:nowrap;font-weight:600;}
.unit-progress {font-size:12px;color:#24603d;white-space:nowrap;font-weight:700;}
.unit[open]>summary {border-bottom:1px solid var(--line);}
.word-list {padding:0 20px;}
.word-row {display:grid;grid-template-columns:60px minmax(0,1fr) 102px;gap:15px;padding:23px 0;border-bottom:1px solid #e4e7df;scroll-margin-top:calc(var(--header) + var(--tools-height) + 105px);}
.word-row:last-child {border-bottom:0;}
.word-number {font-family:Consolas,monospace;font-size:14px;font-weight:700;letter-spacing:.015em;color:#40556a;align-self:start;margin-top:5px;padding:3px 5px;background:#edf1f5;border:1px solid #d6e0e8;border-radius:5px;text-align:center;}
.word-heading {display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;}
.word {font-family:Arial,"Segoe UI","Microsoft YaHei",sans-serif;font-size:31px;font-weight:700;line-height:1.3;letter-spacing:.005em;overflow-wrap:anywhere;}
.word-tags {display:flex;gap:6px;flex-wrap:wrap;}
.tag {font-size:13px;font-weight:600;border:1px solid transparent;padding:2px 8px;border-radius:5px;color:#405040;background:#eaf0ea;line-height:1.65;}
.tag-junior {color:#1e5b32;background:#e0f1e2;border-color:#b9d9bd;}
.tag-middle {color:#1e5284;background:#e3eefb;border-color:#b8cfe9;}
.tag-advanced1 {color:#633c8f;background:#f0e7fa;border-color:#d6c0eb;}
.tag-advanced2 {color:#8c3656;background:#f9e6ed;border-color:#e7c0ce;}
.tag-external {color:#146568;background:#dff1ef;border-color:#b3d8d6;}
.tag-prefix {color:#a04414;background:#fff0df;border-color:#ebc6a1;}
.tag-frontroot,.tag-root {color:#08667c;background:#def1f7;border-color:#acd2df;}
.tag-suffix {color:#414999;background:#e9eaff;border-color:#bfc2ed;}
.tag-compound {color:#5c641b;background:#f1f3d9;border-color:#d7dca5;}
.tag-uncertain {color:#865000;background:#fff0c7;border-color:#e6c36b;}
.tag-variant {color:#535d69;background:#edf0f4;border-color:#cbd2dc;}
.meaning {margin-top:12px;font-size:18px;font-weight:600;line-height:1.9;color:#243024;overflow-wrap:anywhere;}
.word-hint {margin-top:13px;padding:10px 12px;background:#f1f5ef;border-left:3px solid #a9bca4;border-radius:0 5px 5px 0;font-size:15px;font-weight:500;line-height:1.85;color:#34563b;overflow-wrap:anywhere;}
.hint-label {display:inline-block;color:#42654a;margin-right:8px;font-size:12px;font-weight:700;}
.word-note {margin-top:12px;font-size:14px;color:#5b655b;}
.word-note>summary {cursor:pointer;width:max-content;max-width:100%;padding:0;}
.word-note p {line-height:1.9;overflow-wrap:anywhere;margin-top:6px;}
.word-note a {text-underline-offset:3px;}
.known-toggle {border:1px solid #aabcae;border-radius:6px;background:white;color:#3c5b44;padding:7px 10px;align-self:start;min-height:39px;min-width:100px;font-size:14px;font-weight:700;margin-top:2px;white-space:nowrap;}
.known-toggle:hover {background:#edf6ef;border-color:#487b54;}
.known-toggle[aria-pressed="true"] {background:#28633d;color:white;border-color:#28633d;}
.known-toggle[aria-pressed="true"]:hover {background:#1c522e;}
.word-row.is-known {box-shadow:-4px 0 0 #75a685;}
.reveal-button {border:1px dashed #a8b3a5;background:#f6f8f3;border-radius:5px;color:#41583e;font-size:14px;font-weight:600;padding:7px 13px;margin-top:13px;}
.reveal-button:hover {border-color:var(--accent);color:var(--accent);}
.concealed .answer {display:none;}
.concealed .revealed .answer {display:block;}
.concealed .revealed .reveal-button {display:none;}
.reveal-button {display:none;}
.concealed .reveal-button {display:inline-block;}
.meaning-list {margin-top:13px;}
.meaning-label {display:flex;align-items:center;gap:12px;margin-bottom:9px;}
.priority-label,.first-label {padding:2px 8px;font-size:12px;font-weight:700;border-radius:4px;}
.priority-label {background:#e5f2de;color:#3b651f;border:1px solid #bdd3a9;}
.first-label {color:#586459;background:#edf0e9;}
.sense-source {font-size:12px;color:#5c7050;text-decoration:none;}
.sense-source:hover {text-decoration:underline;}
.sense-row {display:flex;align-items:baseline;gap:9px;padding:4px 0;line-height:1.8;}
.pos-badge {font-family:Arial,sans-serif;font-size:13px;line-height:1.65;min-width:42px;padding:1px 5px;border-radius:4px;flex-shrink:0;text-align:center;font-weight:700;}
.pos-noun {color:#1c568f;background:#e4efff;}.pos-verb {color:#a0392d;background:#fde9e3;}.pos-adj {color:#805308;background:#fff1cf;}.pos-adv {color:#674297;background:#f0e8fc;}.pos-other {color:#4f6255;background:#eaf0eb;}
.sense-number {color:#57705b;min-width:19px;font-size:16px;font-weight:700;flex-shrink:0;}
.sense-text {font-size:18px;font-weight:600;color:#233025;overflow-wrap:anywhere;min-width:0;}
.extra-meanings {margin-top:11px;}
.extra-meanings>summary {font-size:13px;font-weight:600;color:#65705f;cursor:pointer;width:max-content;max-width:100%;padding:5px 0;}
.more-senses {border-left:2px solid #dce4d8;margin:8px 0 2px;padding:5px 0 4px 13px;}
.more-senses .sense-text {font-weight:500;color:#435044;}
.learning-progress {display:flex;align-items:center;gap:13px;padding:5px 0 12px;}
#knownCount {font-size:14px;font-weight:700;color:#2b6240;white-space:nowrap;}
.progress-track {height:6px;flex:1;max-width:220px;border-radius:4px;overflow:hidden;background:#dfe8dc;}
.progress-track>span {display:block;height:100%;background:#4d8b5a;width:0;}
.progress-menu {position:relative;margin-left:auto;font-size:13px;z-index:24;}
.progress-menu>summary {cursor:pointer;color:#50604a;white-space:nowrap;}
.progress-menu-body {position:absolute;top:33px;right:0;width:260px;border:1px solid #cdd8c8;padding:15px;background:#fffef9;border-radius:7px;box-shadow:0 8px 25px #22332220;}
.progress-menu-body p {font-size:13px;line-height:1.7;margin-bottom:10px;}
.progress-menu-body button {display:block;width:100%;padding:9px 10px;border:1px solid #c7d4c2;border-radius:5px;background:#eff5eb;margin-top:7px;color:#315235;font-size:13px;font-weight:600;}
.reading-dock {position:fixed;z-index:22;display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:55px;padding:9px 13px;background:#edf3e9;border:1px solid #c4d3bd;border-radius:0 0 7px 7px;box-shadow:0 4px 12px #293b2520;}
.dock-heading {display:flex;align-items:center;gap:10px;min-width:0;}
#dockTitle {font-size:14px;font-weight:700;color:#314e2c;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
#dockCount {font-size:12px;color:#53644e;white-space:nowrap;}
.dock-actions {display:flex;gap:7px;flex-shrink:0;}
.dock-actions button {border:1px solid #afc2a5;background:white;border-radius:5px;color:#355130;font-size:13px;font-weight:600;padding:6px 10px;white-space:nowrap;}
.dock-actions button:hover {background:#dfead8;}
.page-turner {display:flex;justify-content:space-between;gap:15px;margin:25px 0 0;}
.page-turner a {display:flex;align-items:center;gap:12px;max-width:49%;padding:13px 17px;border:1px solid var(--line);border-radius:7px;text-decoration:none;font-size:12px;background:var(--paper);}
.page-turner a:hover {border-color:var(--accent);}
.page-turner small {display:block;font-size:10px;color:var(--muted);}
.page-turner .next {margin-left:auto;text-align:right;}
.reader-footer {margin-top:36px;padding-top:17px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:10px;color:var(--muted);}
.search-heading {display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:20px;}
.search-heading h2 {font-size:20px;}
.search-caption {font-size:12px;color:var(--muted);margin-top:7px;}
.search-results {background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:0 20px;}
.result-location {display:inline-block;font-size:10px;color:var(--accent);text-decoration:none;margin-top:9px;}
.result-location:hover {text-decoration:underline;}
.show-more {display:block;margin:18px auto;font-size:12px;}
.empty-state {padding:50px 20px;text-align:center;border:1px dashed var(--line);border-radius:8px;background:var(--paper);}
.empty-state strong {font-size:18px;display:block;}
.empty-state p {font-size:13px;color:var(--muted);margin:10px auto;max-width:400px;}
.extras-panel {background:var(--paper);padding:22px;border:1px solid var(--line);border-radius:8px;}
.extras-panel h2 {font-size:24px;margin-bottom:10px;}
.extras-panel>p {font-size:13px;color:var(--muted);margin-bottom:20px;}
.spare-list {display:flex;gap:9px;flex-wrap:wrap;}
.spare-list span {font-family:Georgia,serif;font-size:17px;padding:7px 12px;border:1px solid var(--line);border-radius:5px;background:var(--surface);}
.appendix {margin-top:28px;}
.appendix h3 {font-size:17px;margin-bottom:10px;}
.appendix-entry {padding:15px 0;border-top:1px solid var(--line);font-size:13px;overflow-wrap:anywhere;}
.appendix-entry strong {font-family:Georgia,serif;font-size:20px;}
.appendix-entry p {margin-top:5px;}
.toast {position:fixed;bottom:28px;left:50%;transform:translate(-50%,15px);padding:10px 20px;background:var(--ink);color:#fff;border-radius:7px;font-size:12px;pointer-events:none;opacity:0;transition:opacity .15s,transform .15s;z-index:90;max-width:90vw;}
.toast.visible {opacity:1;transform:translate(-50%,0);}
.to-top {position:fixed;bottom:25px;right:25px;z-index:25;width:40px;height:40px;background:var(--paper);border:1px solid var(--line);border-radius:50%;color:var(--accent);box-shadow:0 4px 18px #292c280c;}
.icon-button {border:0;background:transparent;font-size:25px;width:38px;height:38px;}
.mobile-only {display:none;}
.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;}
@media(min-width:1550px) { :root {--sidebar:290px;} }
@media(max-width:1000px) { :root {--sidebar:230px;} .site-header {padding:0 22px;} #reader {padding:30px 28px;} .sidebar {padding-left:12px;padding-right:12px;} }
@media(max-width:760px) {
  :root {--header:115px;}
  .site-header {height:auto;min-height:115px;padding:12px 18px;flex-wrap:wrap;gap:10px;}
  .brand {font-size:15px;gap:9px;}.brand-mark {height:31px;width:31px;font-size:18px;}.brand small {font-size:9px;}
  .site-nav {width:100%;justify-content:space-between;gap:0;padding:3px;}.site-nav a {padding:6px 8px;font-size:12px;flex:1;text-align:center;}
  .page-shell {display:block;}
  .mobile-only {display:inline-block;}
  .sidebar {position:fixed;top:0;left:0;height:100dvh;width:min(310px,86vw);z-index:60;background:var(--bg);transform:translateX(-102%);transition:transform .18s;box-shadow:10px 0 40px #292c2820;padding:25px 18px 20px;}
  .sidebar.is-open {transform:translateX(0);}
  .drawer-shade {position:fixed;inset:0;border:0;z-index:50;background:#292c2866;backdrop-filter:blur(2px);}
  body.drawer-open {overflow:hidden;}
  #reader {padding:25px 18px 30px;}
  h1 {font-size:27px;}.page-intro {gap:10px;padding-bottom:19px;}.intro-copy {font-size:11px;max-width:220px;}.total-block strong {font-size:35px;}.total-block span {font-size:10px;}
  .reading-status {font-size:12px;min-height:48px;}
  .reader-tools {gap:7px;flex-wrap:nowrap;margin-bottom:20px;}.search-box {padding:6px 8px;gap:4px;}.search-box input {font-size:13px;}kbd {display:none;}
  .button {padding:8px 10px;font-size:12px;}
  .group-title-row h2 {font-size:24px;}html[data-mode="prefix"] .group-title-row h2 {font-size:24px;}.group-number {font-size:13px;padding:5px 8px;}.group-core {font-size:14px;}
  .kind-label,.core-chip {font-size:12px;padding:3px 7px;}
  .word-list,.search-results {padding:0 12px;}
  .word-row {grid-template-columns:47px minmax(0,1fr);gap:8px 10px;padding:21px 0;}.word-number {font-size:13px;letter-spacing:0;padding:3px;}.word {font-size:28px;}.word-heading {gap:8px;}.word-tags {gap:5px;}.tag {font-size:12px;padding:2px 6px;}
  .known-toggle {grid-column:2;justify-self:start;min-width:110px;font-size:13px;padding:7px 12px;}
  .meaning {font-size:17px;}.word-hint {font-size:14px;padding:9px 10px;}.word-note {font-size:13px;}
  .sense-text {font-size:17px;}.pos-badge {font-size:12px;min-width:35px;}.sense-number {font-size:15px;min-width:16px;}.sense-row {gap:7px;align-items:baseline;}
  .unit>summary {padding:13px;gap:8px;}.unit-title {font-size:14px;}.unit-count {font-size:13px;}.unit-progress {font-size:11px;}
  .learning-progress {gap:10px;}#knownCount {font-size:13px;}.progress-track {max-width:90px;}.progress-menu {font-size:12px;}.progress-menu-body {width:240px;}
  .reading-dock {flex-wrap:wrap;gap:6px;padding:8px 10px;}.dock-heading {width:100%;justify-content:space-between;}.dock-actions {width:100%;justify-content:space-between;}.dock-actions button {font-size:12px;padding:5px 8px;flex:1;}#dockTitle {font-size:13px;}#dockCount {font-size:11px;}
  .page-turner a {padding:10px 11px;font-size:11px;gap:7px;}.to-top {right:15px;bottom:18px;width:35px;height:35px;}
}
@media(prefers-reduced-motion:reduce) {html {scroll-behavior:auto;}*,*::before,*::after {transition:none!important;}}
@media(max-width:760px) and (max-height:600px) {
  :root {--header:55px;}
  .site-header {min-height:55px;padding:7px 12px;gap:0;}.site-header .brand {display:none;}
  .reader-tools {padding:6px 0;}
  .reading-dock {flex-wrap:nowrap;min-height:43px;padding:6px 8px;gap:8px;}
  .dock-heading {width:auto;min-width:0;flex:1;}#dockCount {display:none;}
  .dock-actions {width:auto;flex-shrink:0;}.dock-actions button {font-size:11px;padding:5px 7px;flex:none;}#collapseGroup {display:none;}
}
@media print {.site-header,.sidebar,.reader-tools,.reading-status,.learning-progress,.reading-dock,.group-actions,.known-toggle,.to-top,.page-turner,.reveal-button {display:none!important;}.page-shell {display:block;}#reader {padding:0;}details:not([open])>.unit-body {display:block;}.concealed .answer {display:block;}body {background:white;}.unit {break-inside:avoid;}}

/* 桌面端目录折叠 */
.page-shell {transition:grid-template-columns .2s ease;}
.sidebar {transition:transform .2s ease,opacity .2s ease;}
.sidebar-collapse {margin-left:auto;width:32px;height:32px;flex:none;padding:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--muted);font-size:18px;line-height:1;}
.sidebar-collapse:hover {color:var(--accent);border-color:var(--accent);}
.sidebar-expand {display:none;position:fixed;left:14px;top:calc(var(--header) + 14px);z-index:40;align-items:center;gap:6px;padding:8px 13px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--accent);font-size:13px;font-weight:600;box-shadow:0 4px 16px #292c2814;}
.sidebar-expand:hover {border-color:var(--accent);}
body.sidebar-collapsed .page-shell {grid-template-columns:0 minmax(0,1fr);}
body.sidebar-collapsed .sidebar {transform:translateX(-105%);opacity:0;pointer-events:none;}
body.sidebar-collapsed .sidebar-expand {display:inline-flex;}
@media(max-width:760px) {
  .sidebar-collapse,.sidebar-expand {display:none!important;}
  body.sidebar-collapsed .page-shell {display:block;}
  body.sidebar-collapsed .sidebar {transform:translateX(-102%);opacity:1;pointer-events:auto;}
  body.sidebar-collapsed .sidebar.is-open {transform:translateX(0);}
}

/* 模块、标红注释、组内序号与可组合背诵 */
.workspace-panel {border:1px solid var(--line);background:var(--paper);border-radius:9px;margin:10px 0 22px;}
.workspace-panel>summary {cursor:pointer;padding:13px 16px;font-size:15px;font-weight:700;}
.workspace-panel>summary>span {float:right;font-weight:400;color:var(--muted);font-size:12px;}
.module-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:9px;padding:0 14px 14px;max-height:390px;overflow:auto;}
.module-item {display:grid;grid-template-columns:1fr auto;gap:5px 8px;background:#f4f3ed;border:1px solid #e0ded4;border-radius:6px;padding:10px;min-width:0;}
.module-item label {display:flex;align-items:center;gap:7px;font-size:14px;font-weight:700;cursor:pointer;overflow-wrap:anywhere;}
.module-item input {accent-color:var(--accent);width:17px;height:17px;flex-shrink:0;}
.module-item a {font-size:12px;text-decoration:none;white-space:nowrap;}
.module-item small {grid-column:1/-1;font-size:12px;color:#496544;}
.module-item.complete {background:#e5f3e7;border-color:#94bc98;}
.workspace-actions {padding:0 14px 14px;display:flex;flex-wrap:wrap;gap:10px;align-items:center;}
#viewProgress {font-size:13px;font-weight:700;color:var(--accent);}
.directory-title small {display:block;font-size:11px;font-weight:500;opacity:.9;margin-top:3px;}
.letter-rail .complete {background:#287247!important;border-color:#287247!important;color:#fff!important;}
.letter-rail .complete::after {content:'✓';font-size:10px;margin-left:3px;}
.empty-letter {display:inline-grid;place-items:center;min-width:32px;min-height:32px;color:#a8aaa1;font-size:13px;border:1px dashed #e1e0d8;border-radius:4px;}
.word-number {align-self:start;min-width:64px;font-size:12px;white-space:nowrap;}
.word-number small {display:block;font-size:10px;color:#647066;font-weight:500;}
.word-row {grid-template-columns:70px minmax(0,1fr) auto;}
.local-number {font-size:12px;font-weight:700;color:#52637c;background:#eaf0fa;border:1px solid #cfdaee;border-radius:5px;padding:2px 7px;white-space:nowrap;}
.word-open {font:inherit;font-weight:inherit;line-height:inherit;border:0;padding:0;background:transparent;text-align:left;word-break:break-word;}
.word-open:hover {text-decoration:underline;text-decoration-color:#d9b5a7;text-underline-offset:5px;}
.red-mark {border:1px solid #e9b8b2;border-radius:6px;background:#fff7f4;color:#bc302b;font-family:Arial,sans-serif;font-size:23px;line-height:1;width:34px;height:34px;flex-shrink:0;}
.red-mark.marked {background:#b53731;color:white;border-color:#b53731;}
.is-marked .word-open {text-decoration-line:underline;text-decoration-color:#c66f64;text-underline-offset:6px;text-decoration-thickness:2px;}
.tag-origin {color:#4e5681;background:#eef0fa;border-color:#c9cce2;}
.study-dialog {border:1px solid #c9cec1;border-radius:12px;padding:24px;width:min(580px,calc(100vw - 32px));max-height:90dvh;overflow:auto;background:var(--paper);color:var(--ink);box-shadow:0 18px 80px #23302235;}
.study-dialog::backdrop {background:#17251e75;backdrop-filter:blur(3px);}
.dialog-heading {display:flex;gap:15px;align-items:center;justify-content:space-between;margin-bottom:18px;}
.dialog-heading h2 {font-size:21px;overflow-wrap:anywhere;}.dialog-close {font-size:27px;background:transparent;border:0;}
.study-dialog label {display:block;font-size:14px;font-weight:600;margin-bottom:8px;}
.study-dialog .mark-option {color:#ac302b;margin-bottom:20px;}
.study-dialog textarea,.study-dialog select {font:inherit;font-size:16px;display:block;width:100%;padding:12px;border:1px solid #b9c6b6;border-radius:6px;color:var(--ink);background:white;resize:vertical;}
.study-dialog p {font-size:13px;line-height:1.7;color:var(--muted);margin-bottom:14px;}
.dialog-actions {display:flex;justify-content:flex-end;gap:10px;margin-top:20px;}
.primary {background:var(--accent);color:white;border-color:var(--accent);}.primary:hover {background:#31503b;color:white;}
.export-selection {max-height:250px;overflow:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:14px 0;border:1px solid var(--line);border-radius:6px;padding:12px;}
.export-selection label {display:flex;align-items:center;gap:8px;font-size:14px;overflow-wrap:anywhere;}
.export-select-actions {display:flex;gap:24px;margin:0 0 10px;}
#exportCount {color:#2f6543;font-weight:700;margin-top:12px;}
.order-menu {position:fixed;right:22px;bottom:76px;z-index:28;}
.order-menu>summary {list-style:none;cursor:pointer;display:grid;place-items:center;width:39px;height:39px;border-radius:12px;border:1px solid #b8c6b6;background:#fffefa;color:#3e6852;font-family:Arial,sans-serif;font-size:24px;box-shadow:0 4px 16px #243c2720;}
.order-menu>summary::-webkit-details-marker {display:none;}
.order-body {display:none;position:absolute;right:0;bottom:100%;padding:14px;width:230px;border:1px solid #b8c6b6;border-radius:9px;background:var(--paper);box-shadow:0 4px 24px #243c2728;}
.order-menu[open] .order-body,.order-menu:hover .order-body,.order-menu:focus-within .order-body {display:block;}
.order-body strong {font-size:13px;display:block;line-height:1.5;margin-bottom:10px;}
.order-body button {display:block;width:100%;font-size:14px;padding:8px;border:1px solid #becfbb;border-radius:5px;background:#eef5eb;margin:8px 0;color:#375931;}
.order-body small {font-size:11px;color:var(--muted);display:block;}
.exam-example {margin-top:18px;padding:13px 16px;background:#f1f5ee;border-left:3px solid #77966c;border-radius:0 7px 7px 0;}
.example-label {font-size:12px;color:#31542b;background:#dfead8;padding:3px 7px;border-radius:4px;font-weight:700;}
.example-origin {font-size:12px;color:#61705b;margin-left:8px;}
.exam-example>p {font-family:Arial,sans-serif;font-size:18px;line-height:1.8;margin-top:10px;color:#2d3d2b;}
.exam-example mark {background:#ffe2da;color:#ac2926;font-weight:800;border-radius:3px;padding:0 3px;}
.exam-example summary {font-size:12px;color:#5d7354;cursor:pointer;margin-top:9px;}
.exam-example details p {font-size:15px;margin-top:6px;color:#4e5a48;}
.example-missing {font-size:12px;color:#7d806f;margin-top:15px;}
.page-turner:first-child {margin:0 0 24px;}.page-turner a small {font-size:12px;}
@media(max-width:760px){
  .module-grid {grid-template-columns:repeat(2,minmax(0,1fr));padding:0 10px 10px;gap:7px;max-height:360px;}.module-item {padding:9px;grid-template-columns:1fr;}.module-item a {font-size:11px;}.module-item small {font-size:11px;}.module-item label {font-size:13px;}
  .workspace-panel>summary {font-size:14px;padding:12px;}.workspace-panel>summary>span {display:none;}.workspace-actions {padding:0 10px 10px;gap:8px;}
  .word-row {grid-template-columns:60px minmax(0,1fr);gap:8px;}.word-number {min-width:58px;font-size:11px;}.word-number small {font-size:9px;}.word-heading {gap:7px;}.red-mark {font-size:21px;width:30px;height:30px;}.word {font-size:27px;}.local-number {font-size:11px;}.word-tags {flex-wrap:wrap;}
  .study-dialog {padding:17px;}.dialog-heading h2 {font-size:19px;}.dialog-actions {flex-wrap:wrap;}.export-selection {grid-template-columns:1fr;}
  .order-menu {right:14px;bottom:67px;}.order-menu>summary {width:35px;height:35px;}.order-body {width:215px;}
  .exam-example {padding:11px;}.exam-example>p {font-size:17px;}.example-origin {display:block;margin:7px 0 0;}
}
@media print {.workspace-panel,.order-menu,.red-mark,.study-dialog {display:none!important;}}
.reader-tools {flex-wrap:wrap;}
@media(max-width:760px){.review-filters {gap:8px;font-size:13px;}.review-toggle button {padding:8px;}.review-filters select {font-size:13px;padding:6px;}#knownViewCount {flex-basis:100%;font-size:12px;}}

/* 阅读时只显示组内与本轮序号；操作集中在右侧。 */
.word-row {grid-template-columns:96px minmax(0,1fr) 124px;gap:18px;padding:25px 12px;border-radius:8px;}
.word-number {min-width:0;padding:8px 5px;margin-top:1px;white-space:normal;line-height:1.5;background:#f0f3f7;}
.number-scope {display:block;font-family:"Microsoft YaHei",sans-serif;font-size:12px;color:#53677b;}
.word-number .local-number {display:block;padding:0;margin:1px 0 4px;border:0;background:none;color:#314e6a;font-family:Arial,sans-serif;font-size:22px;line-height:1.4;}
.word-number .local-number>span {font-size:14px;color:#62798e;font-weight:500;}
.word-number .view-number {display:block;padding-top:5px;border-top:1px solid #d3dde6;font-family:Arial,"Microsoft YaHei",sans-serif;font-size:11px;font-weight:600;color:#627386;white-space:nowrap;}
.word-actions {display:flex;flex-direction:column;gap:9px;align-items:stretch;align-self:start;}
.word-actions .known-toggle,.word-actions .red-mark {width:100%;min-width:0;margin:0;font-family:inherit;line-height:1.5;}
.word-actions .red-mark {height:auto;min-height:36px;font-size:13px;font-weight:600;color:#846b65;border:1px solid #ddd1cb;background:#fbf8f5;padding:6px 9px;border-radius:6px;}
.word-actions .red-mark:hover {background:#fae8df;color:#9b302a;border-color:#c88e83;}
.word-actions .red-mark.marked {color:#a22620;background:#ffe3d6;border-color:#d88a70;}
.word-actions .red-mark.has-note {border-style:solid;}
.word-row.is-marked {background:#fff0c4;border-color:#e7c478;box-shadow:inset 4px 0 0 #cd7755;}
.word-row.is-marked.is-known {box-shadow:inset 4px 0 0 #b26043;}
.word-row.is-marked .word-open {background:#ffdc96;color:#76342a;border-radius:5px;padding:1px 5px;text-decoration:none;box-decoration-break:clone;-webkit-box-decoration-break:clone;}
.word-row.is-marked .word-number {background:#fff6df;border-color:#e3c899;}
.word-row.is-marked .word-hint,.word-row.is-marked .exam-example {background:#fff9e9;}
.note-actions {display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;}
.note-actions button {width:100%;padding:10px 8px;}
.unmark-button {color:#a34735;background:#fff4ed;border-color:#dfb8a5;}
.floating-tools {position:fixed;right:22px;bottom:22px;z-index:28;}
.float-actions {display:flex;flex-direction:column;align-items:flex-end;gap:10px;transition:transform .22s ease,opacity .22s ease;}
.float-page-nav {display:flex;flex-direction:column;align-items:flex-end;gap:7px;}
.float-page-nav button,.floating-tools .order-menu>summary,.floating-tools .to-top {width:40px;height:40px;border-radius:10px;border:1px solid #b9c5b4;background:#fffdf6;color:#3c5c45;box-shadow:0 3px 14px #24382518;font-family:Arial,sans-serif;font-size:22px;display:grid;place-items:center;}
.float-page-nav button:disabled {color:#a9afa4;box-shadow:none;background:#efeee7;}
.float-page-nav button:hover:not(:disabled),.floating-tools .order-menu>summary:hover,.floating-tools .to-top:hover {background:#e9f0df;}
.floating-tools .order-menu,.floating-tools .to-top {position:relative;right:auto;bottom:auto;margin:0;}
.floating-tools .order-body {right:49px;bottom:0;width:218px;}
.floating-tools.is-resting .float-actions {transform:translateX(calc(100% + 25px));opacity:0;pointer-events:none;}
.float-handle {position:absolute;right:-22px;bottom:24px;width:19px;height:53px;border:1px solid #c2cbbb;border-right:0;border-radius:9px 0 0 9px;color:#6b805f;background:#edf1e5;font-size:24px;line-height:1;padding:0;box-shadow:-2px 1px 9px #2635210d;}
.float-handle:hover,.float-handle:focus-visible {background:#d7e5c8;color:#35522f;}
@media(max-width:760px){
  .word-row {grid-template-columns:79px minmax(0,1fr);padding:21px 5px;gap:10px;}
  .word-number {padding:7px 3px;}.number-scope {font-size:11px;}.word-number .local-number {font-size:21px;}.word-number .local-number>span {font-size:13px;}.word-number .view-number {font-size:10px;letter-spacing:-.2px;}
  .word-actions {grid-column:2;flex-direction:row;flex-wrap:wrap;gap:7px;}
  .word-actions .known-toggle {width:auto;min-width:89px;font-size:12px;padding:7px 9px;}
  .word-actions .red-mark {width:auto;min-width:105px;min-height:35px;font-size:12px;padding:6px 8px;}
  .note-actions {gap:7px;}.note-actions button {font-size:13px;padding:9px 5px;}
  .floating-tools {right:13px;bottom:18px;}.float-handle {right:-13px;}
  .float-page-nav button,.floating-tools .order-menu>summary,.floating-tools .to-top {width:36px;height:36px;font-size:21px;}
  .floating-tools .order-body {right:43px;width:min(215px,calc(100vw - 75px));}
}
@media print {.floating-tools,.word-actions {display:none!important;}.word-row {grid-template-columns:96px minmax(0,1fr);}}

/* 标红/注释弹窗放大 */
#noteDialog {width:min(920px,calc(100vw - 24px));max-height:94dvh;}
#noteText {height:clamp(240px,52dvh,620px);min-height:240px;resize:vertical;}
@media(max-width:760px) {
  #noteDialog {width:calc(100vw - 14px);padding:14px;max-height:96dvh;}
  #noteText {height:clamp(220px,46dvh,520px);min-height:220px;}
}

@media(max-width:760px) {
  .review-toggle {display:grid;grid-template-columns:1fr 1fr;width:100%;}
  .review-toggle button {width:100%;padding:8px 6px;}
}

/* 进度达到 100% 时标红 */
.is-complete {color:#c0392b !important;font-weight:700;}
.directory-link.complete [data-module-progress] {opacity:1;}
