/* Zimai 0.8.1 — reading comes first. Loaded after the recovered v10 styles. */
:root,
html body.home-page {
  --sans: 'IBM Plex Sans', 'Zimai Tone Fallback', 'Noto Sans SC', 'Noto Sans TC', sans-serif;
  --cjk-sc: 'Noto Sans SC', 'Noto Sans TC', sans-serif;
  --cjk-tc: 'Noto Sans TC', 'Noto Sans SC', sans-serif;
  --paper: #f5f4f1;
  --white: #ffffff;
  --surface: #ebe9e5;
  --subtle: #f8f7f5;
  --ink: #202322;
  --muted: #626660;
  --rule: #dcded7;
  --accent: #b02b25;
  --accent-dark: #85211d;
  --signal: #b02b25;
  --signal-ink: #ffffff;
  --tint: #faebe7;
  --row-hover: #fcf3ef;
  --clay: #a32c26;
  --definition-size: 1.0625rem;
  --related-size: 1rem;
  --reading-size: 1.0625rem;
  --lead-size: 1.4375rem;
  --ui-size: .875rem;
  --meta-size: .75rem;
}
:root[data-theme='dark'],
html[data-theme='dark'] body.home-page {
  --paper: #161a19;
  --white: #1d2220;
  --surface: #292f2c;
  --subtle: #202623;
  --ink: #f0f2ed;
  --muted: #b3bcb5;
  --rule: #3c4540;
  --accent: #ffaaa0;
  --accent-dark: #ffbcb4;
  --signal: #ad2f28;
  --signal-ink: #ffffff;
  --tint: #3a2927;
  --row-hover: #2b2e29;
  --clay: #ffaaa0;
}
:root[data-reading-size='large'],
html[data-reading-size='large'] body.home-page {
  --definition-size: 1.1875rem;
  --related-size: 1.125rem;
  --reading-size: 1.1875rem;
  --lead-size: 1.5625rem;
  --ui-size: .9375rem;
  --meta-size: .8125rem;
}
html { font-size: 100%; text-size-adjust: 100%; }
body { font-family: var(--sans); font-size: 1rem; line-height: 1.55; }
button, input, select, textarea { font-family: var(--sans); }
button, a, input, select, summary { touch-action: manipulation; }
h1, h2, h3, h4 { text-wrap: pretty; }
::selection { background: var(--tint); color: var(--ink); }
mark { background: var(--tint); color: var(--accent-dark); }
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, summary:focus-visible {
  outline: 2px solid var(--accent); outline-offset: 3px;
}

/* A compact masthead and a generous, unmistakable search field. */
body .site-header, body.home-page .site-header,
body:has(#collection-app) .site-header { min-height: 68px; gap: 24px; }
.site-header .wordmark { font-size: 34px; }
.site-header .brand-han { font-size: 22px; color: var(--accent); }
.site-header .site-nav a, body.home-page .site-nav a {
  font-size: .9375rem; font-weight: 500; min-height: 40px; padding: 8px 12px;
}
.site-header .site-nav a[aria-current='page'] { background: var(--tint); color: var(--accent-dark); }
.site-header .header-right { gap: 9px; }
.site-header .edition-label, body.home-page .site-header .edition-label {
  font-size: .75rem; letter-spacing: 0; text-transform: none;
}
.reading-toggle, .site-header .theme-toggle {
  width: 42px; height: 40px; min-width: 42px; border: 1px solid var(--rule);
  background: var(--white); border-radius: 10px;
}
.reading-toggle { font: 500 16px/1 var(--sans); }
.reading-toggle:hover, .reading-toggle[aria-pressed='true'] { background: var(--tint); border-color: var(--accent); color: var(--accent); }
body:has(#collection-app) { --workspace-gutter: 24px; }
body:has(#collection-app) .home-hero { padding-top: 2px; padding-bottom: 15px; }
.global-search-scope { font-size: .875rem; }
.global-search-results { background: var(--white); box-shadow: 0 16px 44px #20232218; }
.search-recents > button { font-size: .875rem; min-height: 30px; border-radius: 6px; }

/* Two real work surfaces, with an adjustable split preserved. */
.collection-app { --dict-share: 44%; grid-template-rows: 52px minmax(0, 1fr); }
.collection-app > .workspace-heading { padding-bottom: 10px; gap: 14px; }
.workspace-heading h1 { font: 500 1rem/1.25 var(--sans); letter-spacing: -.02em; }
.workspace-heading > a { font-size: .8125rem; }
.workspace-heading .section-tag { color: var(--accent); }
.workspace-layouts { padding: 3px; border-radius: 10px; gap: 2px; }
.workspace-layouts button { min-height: 34px; padding: 6px 12px; border-radius: 7px; font-size: .8125rem; font-weight: 500; }
.workspace-layouts button[aria-pressed='true'] { background: var(--ink); color: var(--paper); }
.collection-dictionary, .collection-visual {
  border: 1px solid var(--rule); border-radius: 14px; background: var(--white);
}
.workspace-divider:before { inset: 12px 6px; border-radius: 3px; opacity: .35; }
.workspace-divider > span { width: 3px; height: 38px; background: var(--muted); }
.collection-app .collection-tabs { padding-inline: 10px; background: var(--subtle); }
.collection-app .collection-tabs > button,
.collection-app.searching .collection-tabs > button {
  min-height: 44px; padding: 11px 12px; font-size: var(--ui-size); font-weight: 500;
}
.collection-app .collection-tabs > button:first-child { padding-left: 12px; }
.collection-app .collection-inspector { padding: 0 14px 18px; scrollbar-color: var(--rule) transparent; }
.collection-app .collection-inspector-bar { padding: 12px 0; background: var(--white); font-size: var(--meta-size); }
.collection-app .collection-inspector-bar button { font-size: var(--meta-size); min-height: 34px; }
.collection-app .collection-history { padding-inline: 14px; min-height: 40px; }
.collection-app .collection-history > span { font-size: var(--meta-size); letter-spacing: .03em; }
.collection-app .collection-history a { font-size: 22px; }
.collection-app #collection-search-results,
.collection-app.searching.has-network #collection-search-results { padding: 0 14px 14px; }
.collection-app.searching.has-network .collection-overview { flex-basis: 46%; min-height: 160px; border-bottom-color: var(--rule); }
.collection-app .collection-filters, .collection-app .collection-pager { padding: 10px 14px; font-size: var(--meta-size); }
.entry-tools { gap: 7px; }
.entry-tools button { min-height: 36px; padding: 7px 10px; border-radius: 7px; font-size: var(--meta-size); color: var(--ink); }
.collection-app .collection-word-scroll { padding: 0 14px; }
.collection-app .collection-character-grid { padding: 8px; grid-template-columns: repeat(auto-fill, minmax(70px, 1fr)); }
.collection-character-grid > a { border-radius: 8px; }
.collection-character-grid small { font-size: .875rem; }

/* Search results: headword / pronunciation, then a full-width readable gloss. */
#collection-search-results .dictionary-row, .dictionary-row {
  display: grid; grid-template-columns: 22px minmax(0, 1fr) minmax(0, .9fr) 14px;
  gap: 5px 12px; padding: 16px 8px; min-height: 104px; align-items: start;
}
.dictionary-row > * { min-width: 0; }
#collection-search-results .dictionary-headword, .dictionary-headword {
  grid-column: 2; grid-row: 1; font: 400 1.8125rem/1.35 var(--cjk-tc);
  letter-spacing: .01em; gap: 5px 10px; overflow-wrap: anywhere;
}
#collection-search-results .dictionary-headword > .dim,
.dictionary-headword > .dim { font-size: 1.375rem; color: var(--muted); }
#collection-search-results .dictionary-reading, .dictionary-reading {
  grid-column: 3; grid-row: 1; align-self: center; text-align: left;
  font: 500 var(--reading-size)/1.45 var(--sans); color: var(--accent);
  overflow-wrap: anywhere;
}
#collection-search-results .dictionary-gloss, .dictionary-gloss {
  grid-column: 2 / 4; grid-row: 2; font: 400 var(--definition-size)/1.55 var(--sans);
  color: var(--ink); overflow: visible; max-height: none;
  white-space: normal; overflow-wrap: anywhere; -webkit-line-clamp: unset;
}
#collection-search-results .dictionary-row .result-number, .result-number { font-size: var(--meta-size); padding-top: 7px; }
#collection-search-results .dictionary-row .result-source, .result-source {
  font: 400 var(--meta-size)/1.45 var(--sans); color: var(--muted); letter-spacing: 0; margin-top: 3px;
}
.result-word { border-bottom: 1px solid var(--rule); }
.result-word:hover, .dictionary-row:hover { background: var(--row-hover); }
.result-word:has([aria-current='true']) { background: var(--tint); box-shadow: inset 3px 0 var(--accent); }
.result-alternatives { padding: 0 8px 13px 42px; font-size: var(--meta-size); }
.result-alternatives a { font-size: var(--related-size); line-height: 1.55; }
#collection-search-results .search-type-tabs { background: var(--white); }
#collection-search-results .search-type-tabs > a { font-size: var(--ui-size); }
#collection-search-results .results-heading { margin: 14px 0; }
.results-heading .search-state { font-size: var(--meta-size); }
#collection-search-results .panel-heading h2 { font: 500 1.125rem/1.35 var(--sans); }
#collection-search-results .panel-heading a { font-size: var(--meta-size); }
.exact-result, .collection-app .exact-result,
.collection-app.searching.has-network .exact-result {
  border: 1px solid var(--rule); border-color: color-mix(in srgb,var(--accent) 45%,var(--rule));
  border-radius: 10px; background: var(--subtle); box-shadow: none;
  padding: 16px; gap: 14px; margin-block: 12px 18px;
}
.exact-result p, .collection-app .exact-result p { font: 400 var(--definition-size)/1.55 var(--sans); color: var(--ink); }
.exact-result strong, .collection-app .exact-result strong { font-size: var(--reading-size); font-weight: 500; }
.exact-eyebrow, .exact-result small { font-size: var(--meta-size); letter-spacing: .02em; }

/* Compact Chinese uses sans; large study specimens retain their serif shapes. */
.dictionary-headword [lang='zh-Hant'], .collection-word > [lang='zh-Hant'],
.home-word-list > a > [lang='zh-Hant'] { font-family: var(--cjk-tc); }
.dictionary-headword [lang='zh-Hans'], .collection-word > [lang='zh-Hans'],
.home-word-list > a > [lang='zh-Hans'] { font-family: var(--cjk-sc); }
.collection-word, .catalog-record-grid .collection-word,
.home-word-list > a { grid-template-columns: minmax(66px, .7fr) minmax(0, 2fr) 12px; gap: 12px; padding: 12px 4px; }
.collection-word > *, .home-word-list > a > * { min-width: 0; }
.collection-word > [lang], .catalog-record-grid .collection-word > [lang],
.home-word-list > a > [lang] { font-size: 1.75rem; line-height: 1.4; overflow-wrap: anywhere; }
.collection-word strong, .home-word-list strong { font: 500 var(--reading-size)/1.45 var(--sans); }
.collection-word small, .catalog-record-grid .collection-word small,
.home-word-list small {
  display: block; margin-top: 3px; font: 400 var(--related-size)/1.5 var(--sans);
  color: var(--ink); white-space: normal; overflow: visible; max-height: none; overflow-wrap: anywhere;
}
.card-gloss, #collection-search-results .card-gloss { font-size: var(--related-size); line-height: 1.5; color: var(--ink); }
.card-reading, #collection-search-results .card-reading { font-size: var(--reading-size); }
#collection-search-results .character-grid { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }

/* Entry identity, senses, evidence and examples share one reading scale. */
.home-entry, .collection-inspector .home-entry,
.catalog-identity, .collection-inspector .catalog-identity,
.detail-card, .collection-inspector .detail-card { border-radius: 11px; background: var(--white); }
.collection-inspector .home-entry-top { padding: 11px 16px; font-size: var(--meta-size); background: var(--subtle); }
.collection-inspector .home-entry-overview,
.collection-app .collection-inspector .home-entry-overview { grid-template-columns: 100px minmax(0, 1fr); padding: 18px 16px; gap: 18px; }
.collection-inspector .home-glyph-stage { min-height: 126px; align-self: start; }
.collection-inspector .home-glyph-stage > .han,
.collection-app .collection-inspector .home-glyph-stage > .han { font-size: 96px; }
.collection-inspector .home-glyph-caption { font-size: .6875rem; letter-spacing: .025em; }
.home-definition h2, .collection-inspector .home-definition h2,
.collection-app .collection-inspector .home-definition h2 {
  font: 500 var(--lead-size)/1.3 var(--sans); letter-spacing: -.025em; margin-bottom: 14px;
}
.home-reading, .collection-inspector .home-reading { font: 500 1.1875rem/1.45 var(--sans); margin-bottom: 7px; }
.home-senses { gap: 13px; }
.home-senses > div { grid-template-columns: 18px minmax(0, 1fr); gap: 8px; }
.home-senses > div > span { font-size: var(--meta-size); }
.home-senses p, .collection-inspector .home-senses p,
.home-depth-card > p, .collection-inspector .home-depth-card > p,
.detail-card-body > p, .detail-sense > p, .history-record > p,
.detail-note p, .detail-note li, .example-translation,
.catalog-definitions li, .prose-page p, .prose-page li {
  font: 400 var(--definition-size)/1.6 var(--sans); color: var(--ink);
  overflow-wrap: anywhere;
}
.collection-inspector .home-depth-card { padding: 16px 16px 0; }
.home-depth-card h3, .collection-inspector .home-depth-card h3 { font: 500 1.125rem/1.4 var(--sans); }
.home-card-label { font-size: var(--meta-size); letter-spacing: .055em; }
.home-readings > div > span, .home-readings small { font-size: var(--meta-size); line-height: 1.5; }
.home-readings strong { font-size: var(--reading-size); }
.home-readings > a, .collection-inspector .home-source-map summary,
.collection-inspector .home-source-map summary > span:last-child { font-size: var(--meta-size); }
.detail-card-heading { padding: 13px 16px; background: var(--subtle); }
.detail-card-heading h2 { font: 500 1.0625rem/1.4 var(--sans); letter-spacing: -.01em; }
.detail-card-heading > span, .detail-source, .source-note { font-size: var(--meta-size); }
.detail-card-body { padding: 16px; }
.detail-facts dt, .identity-facts dt { font-size: var(--meta-size); }
.detail-facts dd, .identity-facts dd { font-size: var(--related-size); }
.catalog-identity p, .collection-inspector .catalog-identity p,
.identity-reading > p { font-size: var(--lead-size); line-height: 1.45; color: var(--ink); }
.catalog-identity > div:nth-child(2), .word-identity > div { min-width: 0; }
.catalog-identity h1,.catalog-identity h2 { font-family: var(--sans); letter-spacing: -.02em; }
.reading, .word-identity .reading, .collection-inspector .word-identity .reading { font-size: var(--reading-size); }
.example-chinese { font-size: 1.3125rem; line-height: 1.65; }
.example-pinyin { font-size: var(--reading-size); line-height: 1.5; }
.license-table, .data-table { font-size: var(--related-size); line-height: 1.5; }
.collection-footnote, .search-scope-note, .catalog-search-note,
.footer-meta, .footer-links { font-size: var(--meta-size); line-height: 1.55; }

/* Graph chrome is legible without taking the character field away. */
.collection-app .field-toolbar { padding: 7px 10px; gap: 5px; background: var(--subtle); flex-wrap: wrap; }
.collection-app .field-toolbar button { min-height: 34px; padding: 6px 9px; font-size: .8125rem; border-radius: 7px; }
.collection-app .field-toolbar button[aria-pressed='true'] { background: var(--white); color: var(--accent); border-color: var(--rule); }
.collection-app .network-summary { padding: 12px 16px; gap: 12px; }
.collection-app .network-summary p {
  max-height: none; font: 400 var(--related-size)/1.45 var(--sans); color: var(--ink);
  white-space: normal; overflow: visible; -webkit-line-clamp: unset;
}
.network-summary > div { min-width: 0; }
.collection-app .network-summary [data-network-focus] { font-size: 38px; }
.collection-app .network-summary button { min-height: 36px; font-size: var(--meta-size); }
.collection-app .field-stage { background: var(--subtle); }
.field-corner-label { font-size: .75rem; }
.collection-app .field-meta { font-size: var(--meta-size); padding: 8px 12px; }
.collection-app .field-notes { font-size: var(--meta-size); padding: 0 12px 10px; }
.field-evidence summary, .field-accessible summary { font-size: var(--meta-size); padding-block: 8px; }
.field-accessible > div > a { font-size: var(--related-size); }

@media (min-width: 851px) {
  .collection-app { grid-template-columns: minmax(350px, var(--dict-share)) 16px minmax(0, 1fr); }
  .collection-app[data-layout='dictionary'], .collection-app[data-layout='visual'] { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 1100px) {
  .site-header .edition-label { display: none; }
  body:has(#collection-app) { --workspace-gutter: 16px; }
  .collection-inspector .home-entry-overview,
  .collection-app .collection-inspector .home-entry-overview { grid-template-columns: 78px minmax(0, 1fr); gap: 14px; padding: 16px 12px; }
  .collection-inspector .home-glyph-stage > .han,
  .collection-app .collection-inspector .home-glyph-stage > .han { font-size: 76px; }
  #collection-search-results .dictionary-row, .dictionary-row { grid-template-columns: 20px minmax(0, 1fr) 12px; gap: 5px 9px; }
  #collection-search-results .dictionary-headword, .dictionary-headword { grid-column: 2; grid-row: 1; }
  #collection-search-results .dictionary-reading, .dictionary-reading { grid-column: 2; grid-row: 2; }
  #collection-search-results .dictionary-gloss, .dictionary-gloss { grid-column: 2; grid-row: 3; }
  #collection-search-results .dictionary-row .result-source, .result-source { grid-column: 2; grid-row: 4; }
  #collection-search-results .dictionary-row .result-arrow, .result-arrow { grid-column: 3; grid-row: 1 / 5; }
}
@media (max-width: 850px) {
  body:has(#collection-app) { --workspace-gutter: 12px; }
  .collection-app { grid-template-columns: minmax(0, 1fr); grid-template-rows: 52px minmax(220px, var(--dict-share)) 14px minmax(260px, 1fr); height: max(760px, calc(100dvh - var(--workspace-top, 185px))); }
  .collection-app[data-layout='dictionary'], .collection-app[data-layout='visual'] { grid-template-rows: 52px minmax(0, 1fr); }
  .workspace-heading h1 { font-size: .9375rem; }
  .workspace-layouts button { font-size: .8125rem; padding-inline: 9px; }
  .workspace-divider:before { inset: 5px 12px; }
  .workspace-divider > span { height: 3px; width: 38px; }
  .collection-app .collection-inspector { padding-inline: 12px; }
  .collection-app .collection-inspector-bar { padding-block: 9px; }
  .collection-app.searching.has-network .collection-overview { min-height: 145px; }
  .collection-app .field-toolbar { flex-wrap: wrap; }
  .collection-app .network-summary [data-network-focus] { font-size: 32px; }
  .collection-app .network-summary { padding: 10px 12px; }
  .collection-app .field-stage { min-height: 140px; }
  .collection-app .field-notes { max-height: 28%; }
  .collection-app[data-layout='dictionary'] .collection-inspector .home-depth-grid { grid-template-columns: 1fr; }
}
@media (max-width: 580px) {
  body .site-header, body.home-page .site-header,
  body:has(#collection-app) .site-header { gap: 12px; padding-top: 12px; padding-bottom: 10px; flex-wrap: wrap; }
  .site-header .brand { gap: 8px; }
  .site-header .wordmark { font-size: 30px; }
  .site-header .brand-han { font-size: 20px; padding-left: 10px; }
  .site-header .header-right { order: 1; margin-left: auto; }
  .site-header .site-nav { display: flex; order: 2; width: 100%; gap: 4px; justify-content: flex-start; }
  .site-header .site-nav a, body.home-page .site-nav a { display: flex; padding: 6px 10px; min-height: 36px; font-size: .875rem; }
  .site-header .edition-label { display: none; }
  .workspace-heading h1 { font-size: .875rem; white-space: normal; }
  .workspace-layouts button { padding-inline: 7px; font-size: .75rem; }
  .collection-app > .workspace-heading { gap: 8px; }
  .collection-app .field-toolbar button { font-size: .75rem; padding-inline: 7px; min-height: 34px; }
  .collection-app .field-tools { gap: 3px; }
  .collection-app .collection-inspector { padding-inline: 8px; }
  .collection-app #collection-search-results,
  .collection-app.searching.has-network #collection-search-results { padding-inline: 8px; }
  .collection-app .collection-inspector .home-entry-overview { grid-template-columns: 64px minmax(0, 1fr); gap: 12px; padding: 15px 10px; }
  .collection-app .collection-inspector .home-glyph-stage > .han { font-size: 64px; }
  .collection-inspector .home-glyph-caption { letter-spacing: 0; }
  .catalog-identity { flex-wrap: wrap; }
  .catalog-identity > div:nth-child(2) { min-width: 150px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .dictionary-row,.collection-word,button { transition: none; }
}
@media print {
  .reading-toggle { display: none; }
  .collection-dictionary { border: 0; }
  .collection-app .collection-inspector { padding: 0; }
}
