/* ═══════════════════════════════════════════════════════════════
   辭林 — 臺灣文學辭典　設計系統 v6「書卷」
   淺：溫潤宣紙白×深墨×灰綠×赭石　深：夜晚書房×米白×柔和灰綠×淺金棕
   明體標題、黑體正文；8px 圓角、1160px 版心、200–400ms 動效
   ═══════════════════════════════════════════════════════════════ */
:root{
  /* 淺色（06:00–18:00）藤黃舊卷 */
  --bg:#F8F0E3; --card:#FFFBF5; --card-2:#F3EADF; --hover:#EFE6D8;
  --ink:#2A231C; --ink-2:#6E6358; --ink-3:#8A8073;
  --accent:#B08D57; --accent-2:#5C4A3A;
  --line:#E6D9C8; --link-h:#3F3227;
  --on-accent:#FFFBF5;
  /* 角色分配：藤黃作裝飾與大字形；深褐作互動與文字（7.4:1） */
  --ui:#5C4A3A; --ui-hover:#3F3227; --ui2:#7F6031; --deco:#B08D57;
  --shadow:0 2px 10px rgba(42,38,34,.06);
  --shadow-lift:0 10px 24px -14px rgba(42,38,34,.32);
  color-scheme:light;
}
[data-theme="dark"]{
  --bg:#1A1610; --card:#252019; --card-2:#252019; --hover:#2E281F;
  --ink:#EDE4D6; --ink-2:#A89B8A; --ink-3:#8B8071;
  --accent:#C6A56E; --accent-2:#8B7355;
  --line:#342E24; --link-h:#DCC393;
  --on-accent:#1A1610;
  /* 深色下藤黃本身可讀（7:1），故互動色用藤黃、裝飾降為淺金棕 */
  --ui:#C6A56E; --ui-hover:#DCC393; --ui2:#C6A56E; --deco:#8B7355;
  --shadow:0 2px 10px rgba(0,0,0,.25);
  --shadow-lift:0 10px 24px -14px rgba(0,0,0,.6);
  color-scheme:dark;
}

:root{
  --sans:"Noto Sans TC","Source Han Sans TC","PingFang TC","Microsoft JhengHei","微軟正黑體","Noto Sans CJK TC",system-ui,sans-serif;
  --serif:"Noto Serif TC","Source Han Serif TC","Songti TC",PMingLiU,"新細明體","Noto Serif CJK TC",SimSun,"宋体",serif;
  --wrap:1160px; --head-h:72px; --r:8px; --r-sm:6px;
  --sp-1:.25rem; --sp-2:.5rem; --sp-3:.75rem; --sp-4:1rem; --sp-5:1.5rem;
  --sp-6:2rem; --sp-7:3rem; --sp-8:4rem; --sp-sec:56px;
  --pad:20px;
  --dur-1:200ms; --dur-2:280ms; --dur-3:350ms;
  --ease:cubic-bezier(.25,.6,.3,1);
  --z-head:60; --z-top:80; --z-drawer:100;
}
@media (min-width:768px){ :root{ --pad:32px; --head-h:64px; } }
@media (min-width:1200px){ :root{ --pad:40px; --head-h:72px; } }

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--sans); font-size:17.5px; line-height:1.8; font-weight:400;
  -webkit-font-smoothing:antialiased;
  transition:background-color .3s ease, color .3s ease;
}
h1,h2,h3,h4{ font-family:var(--serif); font-weight:700; line-height:1.4; margin:0; }
p{ margin:0 0 var(--sp-4); }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
ul,ol,dl,dd{ margin:0; padding:0; list-style:none; }
svg{ display:block; }
:focus-visible{ outline:2px solid var(--ui); outline-offset:2px; }
::selection{ background:var(--ui); color:var(--card); }

.wrap{ width:100%; max-width:1160px; margin-inline:auto; padding-inline:var(--pad); }
.skip{ position:absolute; left:-9999px; top:8px; z-index:999; background:var(--ui); color:var(--card);
  padding:.6rem 1.1rem; border-radius:var(--r-sm); font-family:var(--sans); }
.skip:focus{ left:var(--pad); }
.vh{ position:absolute; inline-size:1px; block-size:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }

/* ── 頁首 72px ── */
.head{ position:sticky; top:0; z-index:var(--z-head); background:var(--bg);
  border-bottom:1px solid var(--line); transition:box-shadow .25s ease, padding .25s ease, background-color .3s ease; }
.head.is-scrolled{ box-shadow:var(--shadow); }
.head-in{ display:flex; align-items:center; gap:var(--sp-4); min-height:var(--head-h); }
.nav a{ white-space:nowrap; }
.viewsw{ white-space:nowrap; }
.head-in .search{ min-inline-size:0; }
.head-in .search input{ min-inline-size:0; }
.brand{ display:flex; align-items:center; gap:var(--sp-3); }
.brand-mark{ inline-size:34px; block-size:34px; display:grid; place-items:center;
  background:var(--ui); color:var(--card); border-radius:var(--r-sm);
  font-family:var(--serif); font-weight:700; font-size:1.1rem; }
.brand-name{ font-family:var(--serif); font-size:1.25rem; font-weight:700; letter-spacing:.14em; }
.nav{ display:none; margin-left:auto; font-family:var(--sans); }
.nav a{ display:inline-flex; align-items:center; min-block-size:2.75rem; padding-inline:var(--sp-4);
  font-size:.95rem; font-weight:500; color:var(--ink-2); border-radius:var(--r-sm); transition:color var(--dur-1) ease, background-color var(--dur-1) ease; }
.nav a:hover{ color:var(--ink); background:var(--hover); }
.nav a[aria-current="page"]{ color:var(--ui); font-weight:700; }
@media (min-width:64rem){ .nav{ display:flex; } }
.burger{ margin-left:auto; display:inline-flex; align-items:center; min-block-size:2.75rem;
  padding-inline:var(--sp-3); font-family:var(--sans); font-size:.9rem; color:var(--ink-2); }
.burger:hover{ color:var(--ink); }
@media (min-width:64rem){ .burger{ display:none; } }
.drawer{ position:fixed; inset:0; z-index:var(--z-drawer); background:var(--bg);
  padding:var(--sp-5) var(--pad); transform:translateX(-100%); transition:transform .3s var(--ease); overflow-y:auto; }
.drawer[data-open="true"]{ transform:none; }
.drawer nav a{ display:block; padding-block:var(--sp-4); border-bottom:1px solid var(--line);
  font-family:var(--serif); font-size:var(--t-lg); }

/* ── 首屏 ── */
.hero{ padding-block:var(--sp-8) var(--sp-7); border-bottom:1px solid var(--line); text-align:left; }
.hero__eyebrow{ font-family:var(--sans); font-size:var(--t-sm); color:var(--ink-3); letter-spacing:.18em; margin-bottom:var(--sp-4); }
.hero__title{ font-family:var(--serif); font-size:44px; font-weight:700; line-height:1.25;
  letter-spacing:.02em; margin:0 0 var(--sp-4); }
.hero__quote{ font-family:var(--serif); font-size:var(--t-lg); color:var(--ink-2); margin:0 0 var(--sp-6); }
.hero__quote cite{ font-style:normal; font-family:var(--sans); font-size:var(--t-sm); color:var(--ink-3); }

/* ── 頁首搜尋框（40px 高、6px 圓角、聚焦外發光） ── */
.search{ display:none; align-items:center; gap:var(--sp-2); margin-left:auto;
  block-size:40px; padding-inline:var(--sp-3); border:1px solid var(--line);
  border-radius:var(--r-sm); background:var(--card); }
.search svg{ inline-size:.95rem; block-size:.95rem; color:var(--ink-3); }
.search input{ border:0; background:none; outline:0; font-family:var(--sans);
  font-size:.9rem; inline-size:10rem; block-size:100%; color:var(--ink); }
.search input::placeholder{ color:var(--ink-3); }
.search:focus-within{ border-color:var(--ui);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--ui) 20%, transparent); }
@media (min-width:64rem){ .search{ display:flex; } }

.hero-search{ display:flex; gap:var(--sp-2); max-width:36rem; }
.hero-search input{ flex:1; min-inline-size:0; block-size:44px; padding-inline:var(--sp-4);
  border:1px solid var(--ink-3); border-radius:var(--r-sm); background:var(--card);
  font-family:var(--sans); font-size:var(--t-md); color:var(--ink); outline:none;
  transition:border-color var(--dur-2) ease, box-shadow var(--dur-2) ease; }
.hero-search input::placeholder{ color:var(--ink-3); }
.hero-search input:focus{ border-color:var(--ui); box-shadow:0 0 0 3px color-mix(in srgb, var(--ui) 22%, transparent); }
.hero-search button:not(.mic){ block-size:44px; padding-inline:var(--sp-5); border-radius:var(--r-sm);
  background:var(--ui); color:var(--card); font-family:var(--sans); font-weight:500; letter-spacing:.16em;
  transition:background-color var(--dur-1) ease; }
.hero-search button:not(.mic):hover{ background:var(--link-h); }
.hero__note{ font-family:var(--sans); font-size:var(--t-sm); color:var(--ink-3); margin-top:var(--sp-4); }

/* ── 今日一字（宣紙質感卡）── */
.today-card{ position:relative; border:1px solid var(--line); border-radius:var(--r);
  background:var(--card); padding:var(--sp-6) var(--sp-6) var(--sp-6) var(--sp-6);
  box-shadow:var(--shadow); overflow:hidden; }
.today-card::before{ /* 宣紙直絲 */
  content:""; position:absolute; inset:0; pointer-events:none; opacity:.5;
  background-image:repeating-linear-gradient(to right, transparent 0 47px, var(--line) 47px 48px); }
.today-card > *{ position:relative; }
.today-card__lb{ font-family:var(--sans); font-size:var(--t-xs); letter-spacing:.26em; color:var(--ui2); margin-bottom:var(--sp-4); }
/* 每日一字：標題列與動作列（閱覽完整條目＋換一個；換字後由伺服器端一併替換） */
.today-card__hd{ display:flex; align-items:center; justify-content:space-between; gap:var(--sp-3); }
.today-card__hd .today-card__lb{ margin-bottom:var(--sp-4); }
.today-actions{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--sp-3) var(--sp-4); margin-top:var(--sp-6); }
.today-card__sw{ display:inline-flex; align-items:center; gap:.35rem; min-block-size:44px; padding:.3rem 1rem;
  border:1px solid var(--line); border-radius:99px; background:var(--card-2);
  font-family:var(--sans); font-size:var(--t-sm); color:var(--ink-2);
  transition:border-color var(--dur-1) ease, color var(--dur-1) ease; }
.today-card__sw:hover{ border-color:var(--ui); color:var(--ui); }
.today-card__sw:focus-visible{ outline:3px solid var(--ui); outline-offset:2px; }
.today-card__sw[disabled]{ opacity:.5; cursor:default; }
.today-card__note{ margin-top:var(--sp-3); font-family:var(--sans); font-size:var(--t-xs); color:var(--ink-3); }
.today-card__note[hidden]{ display:none; }
.today-grid{ display:grid; gap:var(--sp-5); align-items:start; }
@media (min-width:48rem){ .today-grid{ grid-template-columns:auto minmax(0,1fr); gap:var(--sp-6); } }
.today-glyph{ display:flex; align-items:flex-start; gap:var(--sp-4); }
.today-glyph__char{ font-family:var(--serif); font-size:clamp(5rem,10vw,7rem); font-weight:700; line-height:1; }
.today-glyph__zy{ writing-mode:vertical-rl; text-orientation:upright; font-family:var(--serif);
  font-size:var(--t-lg); letter-spacing:.22em; color:var(--ui2); height:8.5rem; }
.today-def{ font-size:var(--t-md); color:var(--ink-2); }

/* ── 分類入口 ── */
.cats{ display:grid; gap:var(--sp-4); grid-template-columns:1fr; }
@media (min-width:48rem){ .cats{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (min-width:64rem){ .cats{ grid-template-columns:repeat(6,minmax(0,1fr)); } }
.cat{ display:flex; flex-direction:column; gap:var(--sp-1); padding:var(--sp-5) var(--sp-4);
  border:1px solid var(--line); border-radius:var(--r); background:var(--card);
  transition:transform var(--dur-2) var(--ease), box-shadow var(--dur-2) var(--ease), border-color var(--dur-2) ease; }
.cat:hover{ transform:translateY(-4px); box-shadow:var(--shadow-lift); border-color:var(--ui); }
.cat__name{ font-family:var(--serif); font-size:var(--t-card); font-weight:700; }
.cat:hover .cat__name{ color:var(--ui); }
.cat__n{ font-family:var(--sans); font-size:var(--t-sm); color:var(--ink-3); }

/* ── 區塊標題 ── */
.sec{ padding-block:var(--sp-sec); }
.sec__hd{ display:flex; align-items:baseline; gap:var(--sp-4); flex-wrap:wrap; margin-bottom:var(--sp-5); }
.sec__ttl{ font-size:var(--t-xl); font-weight:700; letter-spacing:.04em; }
.sec__ttl small{ font-family:var(--sans); font-size:var(--t-sm); font-weight:400; color:var(--ink-3); margin-left:var(--sp-3); }
.sec__more{ margin-left:auto; font-family:var(--sans); font-size:var(--t-sm); color:var(--ui); padding-block:.3rem; }
.sec__more:hover{ color:var(--ink); }

/* ── 內容卡片 ── */
.cards{ display:grid; gap:var(--sp-5); grid-template-columns:1fr; }
@media (min-width:48rem){ .cards{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (min-width:64rem){ .cards{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
.ecard{ display:flex; flex-direction:column; gap:var(--sp-2); padding:var(--sp-5);
  border:1px solid var(--line); border-radius:var(--r); background:var(--card);
  transition:transform var(--dur-2) var(--ease), box-shadow var(--dur-2) var(--ease), border-color var(--dur-2) ease; }
.ecard:hover{ transform:translateY(-4px); box-shadow:var(--shadow-lift); border-color:var(--ui); }
.ecard__hw{ font-family:var(--serif); font-size:var(--t-card); font-weight:700; display:inline; }
.ecard:hover .ecard__hw{ color:var(--ui); }
.ecard__zy{ font-family:var(--sans); font-size:var(--t-sm); color:var(--ink-3); margin-left:var(--sp-2); word-break:keep-all; }
.ecard__def{ font-family:var(--sans); font-size:var(--t-sm); color:var(--ink-2); line-height:1.8; margin-top:var(--sp-2); }
.ecard__meta{ font-family:var(--sans); font-size:.72rem; color:var(--ink-3); letter-spacing:.1em; margin-top:var(--sp-3); padding-top:var(--sp-2); border-top:1px solid var(--line); }

/* ── 列表頁：左欄 240px + 右內容 ── */
.lay{ display:grid; gap:var(--sp-6); }
@media (min-width:64rem){ .lay{ grid-template-columns:240px minmax(0,1fr); gap:var(--sp-7); } }
.side{ align-self:start; }
@media (min-width:64rem){ .side{ position:sticky; top:calc(var(--head-h) + 16px); } }
.side h2{ font-family:var(--sans); font-size:var(--t-sm); font-weight:700; color:var(--ink); margin:var(--sp-5) 0 var(--sp-2); }
.side h2:first-child{ margin-top:0; }
.side ul{ border-top:1px solid var(--line); }
.side li{ border-bottom:1px solid var(--line); }
.side a,.side button{ display:flex; width:100%; align-items:center; justify-content:space-between; gap:var(--sp-3);
  padding-block:.55rem; font-family:var(--sans); font-size:.9rem; color:var(--ink-2); text-align:left; }
.side a:hover,.side button:hover{ color:var(--ink); }
.side [aria-pressed="true"],.side a[aria-current="true"]{ color:var(--ui); font-weight:700; }
.side small{ color:var(--ink-3); font-size:.75rem; }
.listbar{ display:flex; align-items:baseline; justify-content:space-between; gap:var(--sp-4); flex-wrap:wrap; margin-bottom:var(--sp-4); }
.listbar p{ margin:0; font-family:var(--sans); font-size:var(--t-sm); color:var(--ink-3); }
.listbar select{ padding:.35rem .6rem; border:1px solid var(--line); border-radius:var(--r-sm); font-family:var(--sans); font-size:.9rem; background:var(--card); color:var(--ink); }

.rows{ border-top:1px solid var(--ink); }
.rowi{ display:grid; grid-template-columns:minmax(0,1fr); gap:var(--sp-2); padding-block:var(--sp-5);
  border-bottom:1px solid var(--line); transition:background-color var(--dur-1) ease; }
.rowi:hover{ background:var(--hover); }
@media (min-width:48rem){ .rowi{ grid-template-columns:11rem minmax(0,1fr); gap:var(--sp-5); } }
.rowi__hw{ font-family:var(--serif); font-size:var(--t-card); font-weight:700; }
.rowi a:hover .rowi__hw{ color:var(--ui); }
.rowi__zy{ font-family:var(--sans); font-size:var(--t-sm); color:var(--ink-3); margin-left:var(--sp-2); word-break:keep-all; }
.rowi__def{ font-family:var(--sans); font-size:.9rem; color:var(--ink-2); line-height:1.8; margin-top:var(--sp-1); }
.rowi__meta{ font-family:var(--sans); font-size:.72rem; color:var(--ink-3); letter-spacing:.1em; margin-top:var(--sp-2); }
.pager{ display:flex; flex-wrap:wrap; gap:var(--sp-1); padding-top:var(--sp-6); font-family:var(--sans); font-size:.9rem; }
.pager a{ min-inline-size:2.5rem; min-block-size:2.5rem; display:inline-flex; align-items:center; justify-content:center;
  padding-inline:var(--sp-2); color:var(--ink-2); border-radius:var(--r-sm); }
.pager a:hover{ color:var(--ink); background:var(--hover); }
.pager a[aria-current="page"]{ background:var(--ui); color:var(--card); font-weight:700; }
.pager .off{ color:var(--ink-3); opacity:.5; }
.empty{ padding:var(--sp-8) var(--sp-4); text-align:center; color:var(--ink-3); }
.empty b{ display:block; font-family:var(--serif); font-size:var(--t-xl); color:var(--ink); margin-bottom:var(--sp-2); }

/* ── 404／頁數限制：引文開場＋查詢（唯一主要動作）＋隨機一則＋常用入口 ── */
.nfhero{ max-width:44rem; margin:var(--sp-6) auto 0; padding:var(--sp-7) var(--sp-5) var(--sp-6); text-align:center;
  border:1px solid var(--line); border-radius:var(--r); background:var(--card); box-shadow:var(--shadow); }
.nfhero__code{ margin:0; font-family:var(--serif); font-size:clamp(3.2rem, 12vw, 5rem); line-height:1;
  letter-spacing:.08em; color:var(--deco); }
.nfhero__title{ margin:var(--sp-3) 0 var(--sp-2); font-size:var(--t-xl); }
.nfhero__msg{ margin:0 auto var(--sp-3); max-width:34em; font-family:var(--sans); font-size:var(--t-md);
  line-height:2; color:var(--ink-2); }
.nfhero__url{ margin:0 auto var(--sp-5); font-family:var(--sans); font-size:var(--t-sm); color:var(--ink-3); }
.nfhero__url code{ padding:.15rem .5rem; border:1px solid var(--line); border-radius:var(--r-sm); background:var(--card-2);
  font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size:.92em; color:var(--ink-2);
  word-break:break-all; }
.nf__search{ display:flex; gap:var(--sp-2); max-width:26rem; margin:0 auto var(--sp-4); }
.nf__search input{ flex:1; min-inline-size:0; block-size:48px; padding-inline:var(--sp-4);
  border:1px solid var(--line); border-radius:var(--r-sm); background:var(--card);
  font-family:var(--sans); font-size:var(--t-md); color:var(--ink); outline:none; }
.nf__search input::placeholder{ color:var(--ink-3); }
.nf__search input:focus{ border-color:var(--ui);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--ui) 22%, transparent); }
.nf__search button{ min-block-size:48px; padding-inline:var(--sp-5); border-radius:var(--r-sm);
  background:var(--ui); color:var(--card); font-family:var(--sans); font-weight:500; letter-spacing:.14em; }
.nf__search button:hover{ background:var(--link-h, var(--ui-hover)); }
.nf__search button:focus-visible, .nf__links a:focus-visible, .nfsec__more:focus-visible{ outline:3px solid var(--ui); outline-offset:2px; }
.nf__links{ display:flex; flex-wrap:wrap; gap:var(--sp-2); justify-content:center; }
.nf__links a{ display:inline-flex; align-items:center; min-block-size:44px; padding:.4rem 1rem;
  border:1px solid var(--line); border-radius:99px; background:var(--card);
  font-family:var(--sans); font-size:var(--t-sm); color:var(--ink-2); }
.nf__links a:hover{ border-color:var(--ui); color:var(--ui); }
.nf__links a.is-pri{ background:var(--ui); border-color:var(--ui); color:var(--card); }
.nfhero__quote{ margin:var(--sp-6) auto 0; max-width:30em; padding-top:var(--sp-4);
  border-top:1px solid var(--line); font-family:var(--serif); font-size:var(--t-md); line-height:2; color:var(--ink-2); }
.nfhero__quote p{ margin:0; }
.nfhero__quote cite{ display:block; margin-top:var(--sp-2); font-style:normal;
  font-family:var(--sans); font-size:var(--t-xs); color:var(--ink-2); }

.nfsec{ max-width:44rem; margin:var(--sp-6) auto 0; }
.nfsec:last-child{ margin-bottom:var(--sp-7); }
.nfsec__hd{ display:flex; align-items:baseline; justify-content:space-between; gap:var(--sp-3);
  padding-bottom:var(--sp-2); margin-bottom:var(--sp-4); border-bottom:1px solid var(--line); }
.nfsec__hd h2{ font-size:var(--t-lg); font-weight:700; }
.nfsec__more{ display:inline-flex; align-items:center; min-block-size:44px;
  font-family:var(--sans); font-size:var(--t-sm); color:var(--ui); }
.nfsec__more:hover{ color:var(--link-h, var(--ui-hover)); }
.nfpick{ display:grid; grid-template-columns:minmax(0,auto) minmax(0,1fr); align-items:baseline;
  gap:.2rem var(--sp-4); padding:var(--sp-4) var(--sp-5);
  border:1px solid var(--line); border-radius:var(--r); background:var(--card); }
.nfpick__word{ font-family:var(--serif); font-size:1.5rem; color:var(--ink); }
.nfpick__zy{ font-family:var(--serif); font-size:var(--t-sm); letter-spacing:.08em; color:var(--ui2);
  white-space:normal; word-break:keep-all; overflow-wrap:normal; line-height:1.7; }
.nfpick__def{ grid-column:1 / -1; font-family:var(--sans); font-size:var(--t-sm); line-height:1.9; color:var(--ink-2); }
.nfpick__meta{ grid-column:1 / -1; font-family:var(--sans); font-size:var(--t-xs); color:var(--ink-3); }
.nfpick:hover{ border-color:var(--ui); box-shadow:var(--shadow); }
.nfpick:hover .nfpick__word{ color:var(--ui); }

@media (max-width:30rem){
  .nfhero{ padding:var(--sp-6) var(--sp-4) var(--sp-5); }
  .nf__search{ flex-wrap:wrap; }
  .nf__search button{ flex:1 1 100%; }
}
@media (prefers-reduced-motion: no-preference){
  .nfhero, .nfsec{ animation:nfIn .28s ease-out both; }
  .nfsec{ animation-delay:.06s; }
  @keyframes nfIn{ from{ opacity:0; transform:translateY(6px); } to{ opacity:1; transform:none; } }
}

/* ── 站外連結提醒（/goto）：倒數 5 秒可取消，單一主要動作「繼續前往」 ── */
.gotohero__ic{ display:grid; place-items:center; inline-size:64px; block-size:64px; margin:0 auto var(--sp-4);
  border:1px solid var(--line); border-radius:50%; background:var(--card-2); color:var(--ui); }
.gotohero__ic svg{ inline-size:26px; block-size:26px; }
.gotohero__host{ margin:0 auto var(--sp-2); font-family:var(--sans); font-size:var(--t-sm); color:var(--ink-2); }
.gotohero__host b{ font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-weight:600; color:var(--ink); }
.goto__cd{ margin:var(--sp-5) auto 0; font-family:var(--sans); font-size:var(--t-sm); color:var(--ink-2); }
.goto__cd b{ display:inline-block; min-inline-size:1.3em; font-size:1.55em; line-height:1.15; color:var(--ui);
  font-variant-numeric:tabular-nums; text-align:center; vertical-align:-.08em; }
.goto__cd-stop{ display:inline; padding:.18rem .6rem; margin-inline-start:.2rem; border:1px solid var(--line);
  border-radius:99px; background:var(--card); font-family:var(--sans); font-size:var(--t-xs); color:var(--ui); }
.goto__cd-stop:hover{ border-color:var(--ui); color:var(--ui-hover); }
.goto__act{ display:flex; flex-wrap:wrap; gap:var(--sp-3); justify-content:center; margin-top:var(--sp-4); }
.goto__go{ display:inline-flex; align-items:center; gap:.55rem; min-block-size:48px; padding-inline:1.6rem;
  border-radius:var(--r-sm); background:var(--ui); color:var(--card);
  font-family:var(--sans); font-size:1rem; font-weight:500; letter-spacing:.12em; }
.goto__go svg{ inline-size:16px; block-size:16px; }
.goto__go:hover{ background:var(--link-h, var(--ui-hover)); }
.goto__go:focus-visible{ outline:3px solid var(--ui); outline-offset:2px; }
.goto__sub{ display:inline-flex; align-items:center; min-block-size:48px; padding-inline:1.2rem;
  border:1px solid var(--line); border-radius:99px; background:var(--card);
  font-family:var(--sans); font-size:var(--t-sm); color:var(--ink-2); }
.goto__sub:hover{ border-color:var(--ui); color:var(--ui); }
.goto__notes-wrap{ max-width:34em; margin:var(--sp-6) auto 0; padding:var(--sp-4) var(--sp-5);
  border:1px solid var(--line); border-radius:var(--r); background:var(--card-2); text-align:left; }
.goto__notes-hd{ margin:0 0 var(--sp-3); font-family:var(--sans); font-size:var(--t-xs); font-weight:700;
  letter-spacing:.2em; color:var(--ui2); }
.goto__notes{ display:grid; gap:var(--sp-3); }
.goto__notes li{ display:grid; grid-template-columns:1.8rem minmax(0,1fr); gap:var(--sp-3); align-items:start;
  font-family:var(--sans); font-size:var(--t-sm); line-height:1.9; color:var(--ink-2); }
.goto__notes-n{ display:grid; place-items:center; inline-size:1.8rem; block-size:1.8rem;
  border:1px solid color-mix(in srgb, var(--ui) 32%, transparent); border-radius:50%;
  font-size:.72rem; font-weight:700; font-variant-numeric:tabular-nums; color:var(--ui); }
.goto__notes b{ color:var(--ink); font-weight:600; }
@media (max-width:30rem){
  .goto__act{ flex-direction:column; align-items:stretch; }
  .goto__go, .goto__sub{ justify-content:center; }
  .goto__notes-wrap{ padding:var(--sp-4); }
}

/* ── 內容頁 ── */
.crumb{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--sp-2); font-family:var(--sans);
  font-size:var(--t-sm); color:var(--ink-3); padding-block:var(--sp-4); }
.crumb a{ padding-block:.3rem; }
.crumb a:hover{ color:var(--ui); text-decoration:underline; text-underline-offset:.3em; }
.crumb i{ font-style:normal; color:var(--ink-3); opacity:.6; }
.ehead{ padding-bottom:var(--sp-5); border-bottom:1px solid var(--line); margin-bottom:var(--sp-6); }
.ehead__row{ display:flex; align-items:flex-start; flex-wrap:wrap; gap:var(--sp-4) var(--sp-5); }
.ehead__word{ font-family:var(--serif); font-size:clamp(2.6rem,6vw,4rem); font-weight:700; line-height:1.1; }
.ehead__zy{ font-family:var(--serif); font-size:var(--t-xl); color:var(--ui2); align-self:center; word-break:keep-all; }
.ehead__py{ font-family:var(--sans); font-size:var(--t-md); color:var(--ink-3); align-self:center; }
.ehead__act{ margin-left:auto; display:flex; flex-wrap:wrap; gap:var(--sp-2); align-items:center; }
.ehead__sum{ max-width:46em; font-size:var(--t-md); color:var(--ink-2); margin-top:var(--sp-4); }
.facts{ display:flex; flex-wrap:wrap; gap:var(--sp-3) var(--sp-6); margin-top:var(--sp-5); }
.facts div{ font-family:var(--sans); font-size:var(--t-sm); }
.facts dt{ display:inline; color:var(--ink-3); margin-right:.4em; }
.facts dd{ display:inline; margin:0; color:var(--ink); }
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:var(--sp-2);
  min-block-size:2.75rem; padding-inline:var(--sp-4); border-radius:var(--r-sm);
  font-family:var(--sans); font-size:.92rem; font-weight:500; border:1px solid var(--line);
  color:var(--ink-2); background:var(--card); transition:all var(--dur-2) ease; }
.btn:hover{ border-color:var(--ui); color:var(--ui); }
.btn--pri{ background:var(--ui); border-color:var(--ui); color:var(--card); }
.btn--pri:hover{ background:var(--link-h); border-color:var(--link-h); color:var(--card); }

.elay{ display:grid; gap:var(--sp-6); }
@media (min-width:64rem){ .elay{ grid-template-columns:minmax(0,1fr) 240px; gap:var(--sp-7); align-items:start; } }
/* 內容頁側欄樣式見 v6.3（.eside／.eidx／.infocard） */
.blk{ margin-bottom:var(--sp-7); scroll-margin-top:calc(var(--head-h) + 20px); }
.blk__hd{ display:flex; align-items:baseline; gap:var(--sp-3); padding-bottom:var(--sp-2);
  border-bottom:1px solid var(--line); margin-bottom:var(--sp-4); }
.blk__no{ font-family:var(--sans); font-size:var(--t-xs); letter-spacing:.2em; color:var(--ui2); }
.blk__hd h2{ font-size:var(--t-xl); }
.def{ max-width:40em; font-size:var(--t-md); color:var(--ink-2); }
.def p{ margin:0 0 var(--sp-3); }
.def .qt{ color:var(--ui); }
.def-pos{ display:inline-block; font-family:var(--sans); font-size:var(--t-sm); font-weight:500;
  color:var(--ui); margin:0 0 var(--sp-2); }
.senses{ counter-reset:s; display:grid; gap:var(--sp-3); }
/* 只在義項本身計數：書證、注釋、例句等巢狀清單不受影響 */
.senses > li{ padding-left:2.4em; text-indent:-2.4em; }
.senses > li::before{ counter-increment:s; content:counter(s)"."; color:var(--ink-3); font-weight:500; }
.senses li .prov li, .senses li .cites li{ padding-left:0; text-indent:0; }
.senses li .prov li::before, .senses li .cites li::before{ content:none; }
.quote{ border-left:3px solid var(--ui2); padding:var(--sp-3) 0 var(--sp-3) var(--sp-5);
  margin-left:2px; color:var(--ink-2); }
.quote p{ margin:0 0 var(--sp-3); line-height:2.05; }
.quote p:last-child{ margin-bottom:0; }
.quote p + p{ padding-top:var(--sp-3); margin-top:var(--sp-3); border-top:1px dashed var(--line); }
.quote-src{ font-family:var(--sans); font-size:var(--t-sm); color:var(--ink-3); margin-bottom:var(--sp-3); }
.cites{ display:grid; gap:0; max-width:46em; }
@media (min-width:64rem){ .cites{ columns:2; column-gap:var(--sp-7); column-rule:1px solid var(--line); } }
.cites li{ break-inside:avoid; padding:var(--sp-3) 2.5em var(--sp-3) 0; padding-left:2.5em; text-indent:-2.5em;
  font-size:.95rem; line-height:2; color:var(--ink-2); border-bottom:1px solid var(--line); }
.cites li b{ display:inline-block; inline-size:2.2em; text-indent:0; font-family:var(--sans); font-weight:500; color:var(--ui2); }
.side-h{ font-family:var(--sans); font-size:var(--t-xs); letter-spacing:.22em; color:var(--ink-3); margin-bottom:var(--sp-2); }
.side-list li{ border-bottom:1px solid var(--line); }
.side-list a{ display:block; padding-block:.6rem; color:var(--ink-2); }
.side-list a:hover{ color:var(--ui); }
.side-list b{ display:block; font-family:var(--serif); font-size:var(--t-md); color:var(--ink); }
.license-note{ max-width:46em; margin-top:var(--sp-6); padding:var(--sp-4); border:1px solid var(--line);
  border-radius:var(--r); background:var(--card-2); font-family:var(--sans); font-size:var(--t-sm); color:var(--ink-2); }

/* ── 名句欣賞 ── */
.qcard{ border:1px solid var(--line); border-radius:var(--r); background:var(--card);
  padding:var(--sp-5); margin-bottom:var(--sp-4);
  transition:transform var(--dur-2) var(--ease), box-shadow var(--dur-2) var(--ease); }
.qcard:hover{ transform:translateY(-4px); box-shadow:var(--shadow-lift); }
.qcard__text{ font-family:var(--serif); font-size:var(--t-lg); line-height:2; color:var(--ink); }
.qcard__src{ font-family:var(--sans); font-size:var(--t-sm); color:var(--ink-3); margin-top:var(--sp-3); }
.qcard__src a{ color:var(--ui); }
.qcard__src a{ padding-block:.35rem; display:inline-block; }
.qcard__src a:hover{ text-decoration:underline; text-underline-offset:.3em; }

/* ── 頁尾 ── */
.foot{ margin-top:var(--sp-8); border-top:1px solid var(--line); background:var(--card-2);
  padding-block:var(--sp-7) var(--sp-5); font-family:var(--sans); }
.foot__grid{ display:grid; gap:var(--sp-5); }
@media (min-width:48rem){ .foot__grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (min-width:64rem){ .foot__grid{ grid-template-columns:1.6fr repeat(3,minmax(0,1fr)); gap:var(--sp-6); } }
.foot h3{ font-family:var(--sans); font-size:var(--t-sm); font-weight:700; color:var(--ink); margin-bottom:var(--sp-3); }
.foot p{ font-size:.88rem; color:var(--ink-2); line-height:1.9; }
.foot li a{ display:block; padding-block:.35rem; font-size:.88rem; color:var(--ink-2); }
.foot li a:hover{ color:var(--ui); text-decoration:underline; text-underline-offset:.3em; }

/* 尾部連結清單：統一行距與分欄，索引類改用標籤 */
.flinks{ display:grid; gap:0; }
.flinks--two{ grid-template-columns:repeat(2, minmax(0,1fr)); column-gap:var(--sp-4); }
.flinks--chips{ display:flex; flex-wrap:wrap; gap:var(--sp-2); margin-top:var(--sp-3); }
.flinks--chips li{ display:flex; }
.flinks--chips a{ display:inline-flex; align-items:center; min-block-size:2rem; padding:.25rem .75rem;
  border:1px solid var(--line); border-radius:99px; background:var(--card); font-size:.82rem;
  transition:border-color var(--dur-1) ease, color var(--dur-1) ease, background-color var(--dur-1) ease; }
.flinks--chips a:hover{ border-color:var(--ui); color:var(--ui); background:var(--hover); text-decoration:none; }
.foot__sub{ margin-top:var(--sp-5) !important; padding-top:var(--sp-4); border-top:1px dashed var(--line); }
@media (max-width:47.99rem){ .flinks--two{ grid-template-columns:minmax(0,1fr); } }
.foot__lic{ margin-top:var(--sp-6); padding-top:var(--sp-4); border-top:1px solid var(--line);
  display:grid; gap:var(--sp-2); font-size:.82rem; color:var(--ink-2); line-height:1.9; }
.foot__btm{ display:flex; flex-wrap:wrap; gap:var(--sp-3) var(--sp-5); justify-content:space-between;
  margin-top:var(--sp-4); font-size:.78rem; color:var(--ink-3); }

/* ── 浮動鈕：返回頂端 + 主題切換（正下方 12px）── */
.fabs{ position:fixed; right:var(--pad); bottom:10rem; z-index:var(--z-top);
  display:grid; justify-items:center; gap:12px; }
.totop{ inline-size:44px; block-size:44px; border-radius:50%; display:grid; place-items:center;
  background:var(--ui); color:var(--card); box-shadow:var(--shadow-lift);
  opacity:0; visibility:hidden; transform:translateY(.5rem);
  transition:opacity var(--dur-2) ease, transform var(--dur-2) ease, visibility var(--dur-2), background-color var(--dur-1) ease; }
.totop[data-show="true"]{ opacity:1; visibility:visible; transform:none; }
.totop:hover{ background:var(--link-h); }
.themebtn{ inline-size:44px; block-size:44px; border-radius:50%; display:grid; place-items:center;
  background:var(--card); color:var(--ink-2); border:1px solid var(--line); box-shadow:var(--shadow);
  transition:background-color var(--dur-2) ease, color var(--dur-2) ease, border-color var(--dur-2) ease; }
.themebtn:hover{ border-color:var(--ui); color:var(--ui); }
.themebtn svg{ inline-size:1.15rem; block-size:1.15rem; }
/* 圖示依「實際呈現的主題」決定：自動模式下（預設）也會有圖示；
   深色用實心彎月、淺色用線條太陽，小尺寸下都看得清楚 */
.themebtn .ic{ display:none; }
html[data-theme="light"] .themebtn .ic-light{ display:block; }
html[data-theme="dark"]  .themebtn .ic-dark{ display:block; }
/* 深色時把按鈕表面提亮、邊框用金線，讓浮動鈕本身也看得出來 */
html[data-theme="dark"] .themebtn{ background:var(--hover); color:var(--ui);
  border-color:color-mix(in srgb, var(--ui) 42%, transparent); }
html[data-theme="dark"] .themebtn:hover{ background:var(--card-2); border-color:var(--ui); }
html[data-theme="dark"] .totop{ border:1px solid color-mix(in srgb, var(--ui) 42%, transparent); }

/* ── 進場動效：fade-in + 上移 8–12px，200–400ms ── */
.view{ display:none; }
.view[data-on="true"]{ display:block; }
html.js-on .rv{ opacity:0; }
html.js-on .rv.in{ animation:rise .35s ease both; animation-delay:calc(var(--i, 0) * 45ms); }
@keyframes rise{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce){
  html.js-on .rv{ opacity:1; }
  html.js-on .rv.in{ animation:none; animation-delay:0s !important; }
  *,*::before,*::after{ animation-duration:.01ms !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
}

/* ── 內容頁目錄（長文時由 JS 生成） ── */
.toc{ border:1px solid var(--line); border-radius:var(--r); background:var(--card-2);
  padding:var(--sp-4) var(--sp-5); margin-bottom:var(--sp-6); }
.toc__lb{ font-family:var(--sans); font-size:var(--t-xs); letter-spacing:.22em; color:var(--ink-3); margin:0 0 var(--sp-2); }
.toc ol{ display:flex; flex-wrap:wrap; gap:var(--sp-1) var(--sp-4); font-family:var(--sans); font-size:.9rem; }
.toc a{ display:inline-block; padding-block:.35rem; color:var(--ink-2); border-bottom:1px solid transparent; }
.toc a:hover{ color:var(--ui); border-bottom-color:var(--ui); }


/* ══════════════════════════════════════════════════════════════
   v6.1 優化層：補齊字級變數與遺漏元件、放大留白與氣勢
   （置於檔案末，同特異性下後者生效）
   ══════════════════════════════════════════════════════════════ */
:root{
  /* 字級：PC 依規範（主標 44、頁標 32–36、卡標 20–22、正文 17–18、輔助 14–15） */
  --t-xs:14.5px; --t-sm:15px; --t-md:17.5px; --t-lg:20px; --t-card:22px;
  --t-xl:28px; --t-2xl:36px; --t-3xl:46px;
  --fs-page:38px;
  --t-hero:clamp(38px, 5.6vw, 62px);
  /* 留白：放大一級呼吸感 */
  --sp-sec:76px; --sp-7:4rem; --sp-8:5.5rem;
  --wrap:1200px; --head-h:76px;
}
@media (min-width:1200px){ :root{ --sp-sec:96px; } }
@media (max-width:767px){
  /* 移動端字級下調 2–4px */
  :root{ --t-md:16px; --t-lg:18px; --t-card:20px; --t-xl:24px; --t-2xl:30px; --fs-page:30px; --sp-sec:56px; }
}
body{ font-size:var(--t-md); line-height:1.85; }
h1,h2,h3,h4{ line-height:1.35; }

/* ── 首屏：加大氣勢 ── */
.hero{ padding-block:var(--sp-8) var(--sp-7); }
.hero__eyebrow{ letter-spacing:.26em; margin-bottom:var(--sp-5); }
.hero__title{ font-size:var(--t-hero); line-height:1.22; letter-spacing:.03em; margin-bottom:var(--sp-5); }
.hero__quote{ font-size:var(--t-lg); line-height:2; margin-bottom:var(--sp-7); }
.hero-search input{ block-size:48px; }
.hero-search button:not(.mic){ block-size:48px; padding-inline:var(--sp-6); }
.hero__note{ margin-top:var(--sp-5); }

/* ── 區塊與卡片：加大留白 ── */
.sec__hd{ margin-bottom:var(--sp-6); }
.today-card{ padding:var(--sp-7) var(--sp-6); }
.today-glyph__char{ font-size:clamp(6rem, 12vw, 9rem); }
.today-glyph__zy{ height:10rem; font-size:var(--t-xl); }
.today-def{ font-size:var(--t-lg); line-height:1.95; }
.cats{ gap:var(--sp-5); }
.cat{ padding:var(--sp-6) var(--sp-5); }
.cards{ gap:var(--sp-5); }
.ecard{ padding:var(--sp-6); gap:var(--sp-3); }
.ecard__hw{ font-size:var(--t-card); }
.ecard__def{ font-size:var(--t-sm); line-height:1.85; }

/* ── 列表：行距與欄寬放寬 ── */
@media (min-width:64rem){ .lay{ grid-template-columns:256px minmax(0,1fr); gap:var(--sp-8); } }
.side a,.side button{ padding-block:.7rem; font-size:.95rem; }
.rowi{ padding-block:var(--sp-6); }
@media (min-width:48rem){ .rowi{ grid-template-columns:12rem minmax(0,1fr); gap:var(--sp-6); } }
.rowi__hw{ font-size:var(--t-card); }
.rowi__def{ font-size:.95rem; line-height:1.9; }
.listbar{ margin-bottom:var(--sp-5); }
.pager{ padding-top:var(--sp-7); }

/* ── 內容頁：閱讀區放大 ── */
.ehead{ padding-bottom:var(--sp-6); margin-bottom:var(--sp-7); }
.ehead__word{ font-size:clamp(3rem, 7vw, 5rem); }
.ehead__sum{ font-size:var(--t-lg); max-width:44em; line-height:2; }
.def{ font-size:var(--t-md); line-height:1.95; }
.senses{ gap:var(--sp-4); }
.blk{ margin-bottom:var(--sp-8); }
.blk__hd{ margin-bottom:var(--sp-5); }
.blk__hd h2{ font-size:var(--t-xl); }
.quote{ padding:var(--sp-4) 0 var(--sp-4) var(--sp-6); }
.quote p{ font-size:var(--t-md); line-height:2.1; }
.cites li{ padding-block:var(--sp-3); font-size:.95rem; line-height:2.05; }
.toc{ padding:var(--sp-5) var(--sp-6); margin-bottom:var(--sp-7); }
.qcard{ padding:var(--sp-6) var(--sp-6); margin-bottom:var(--sp-5); }
.qcard__text{ font-size:var(--t-xl); line-height:2.05; }
.foot{ padding-block:var(--sp-8) var(--sp-6); }

/* ── 補齊模板用到但先前未定義的元件 ── */
.head-1{ display:flex; align-items:baseline; gap:var(--sp-4); flex-wrap:wrap; padding-bottom:var(--sp-5); }
.head-1 h1{ font-family:var(--serif); font-size:var(--fs-page); letter-spacing:.02em; }
.countline{ font-family:var(--sans); font-size:var(--t-sm); color:var(--ink-3); }
.countline b{ font-family:var(--serif); font-size:var(--t-lg); color:var(--ink); }
.mt{ margin-top:var(--sp-6); }
.def-sm p{ font-size:var(--t-md); }
.links{ display:flex; flex-wrap:wrap; gap:0 var(--sp-5); }
.links a{ color:var(--ink-2); }
.links a:hover{ color:var(--ui); }
.drawer__top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:var(--sp-5); }
.drawer__x{ display:grid; place-items:center; inline-size:2.75rem; block-size:2.75rem; color:var(--ink-2); }
.drawer__x:hover{ color:var(--ui); }
.frow{ margin-bottom:var(--sp-5); }
.frow label{ display:block; font-family:var(--sans); font-size:var(--t-sm); color:var(--ink-2); margin-bottom:var(--sp-2); }
.frow input,.frow textarea{ inline-size:100%; padding:14px 18px; border:1px solid var(--line);
  border-radius:var(--r-sm); background:var(--card); color:var(--ink);
  font-family:var(--sans); font-size:var(--t-md); line-height:1.7; outline:none;
  transition:border-color var(--dur-2) ease, box-shadow var(--dur-2) ease; }
.frow input:focus,.frow textarea:focus{ border-color:var(--ui);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--ui) 20%, transparent); }
.err-box{ border:1px solid var(--line); border-left:3px solid #B4553F; border-radius:var(--r);
  background:var(--card); padding:var(--sp-4) var(--sp-5); margin-bottom:var(--sp-6);
  font-family:var(--sans); font-size:var(--t-sm); color:var(--ink-2); }
.caprow{ display:flex; gap:var(--sp-3); align-items:center; margin:var(--sp-5) 0; flex-wrap:wrap; }
.capimg{ border:1px solid var(--line); border-radius:var(--r-sm); background:var(--card); }
.caprow input{ padding:12px 16px; border:1px solid var(--line); border-radius:var(--r-sm);
  background:var(--card); color:var(--ink); font-family:var(--sans); font-size:var(--t-md); }
.caprow input:focus{ border-color:var(--ui); box-shadow:0 0 0 3px color-mix(in srgb, var(--ui) 20%, transparent); }

/* 內文行內連結：擴大命中區（垂直 padding 不影響排版高度） */
.def a{ padding-block:.35rem; }


/* ══════════════════════════════════════════════════════════════
   v6.2「藤黃舊卷」：依 demo 調整首頁結構
   ══════════════════════════════════════════════════════════════ */
/* 首屏居中（demo 版式） */
.hero{ text-align:center; }
.hero__eyebrow{ justify-content:center; }
.hero__title{ margin-inline:auto; }
.hero__quote{ margin-inline:auto; }
.hero-search{ margin-inline:auto; max-width:32rem; }
.hero__note{ margin-inline:auto; }
/* 區塊標題拖尾細線 */
.sec__hd{ align-items:center; }
.sec__ttl{ display:flex; align-items:center; gap:var(--sp-4); flex:1; }
.sec__ttl::after{ content:""; flex:1; block-size:1px; background:var(--line); }
.sec__hd .sec__more{ margin-left:0; }
/* 今日一字：藤黃巨字 + 懸停上浮 */
.today-card{ transition:transform var(--dur-2) var(--ease), box-shadow var(--dur-2) var(--ease); }
.today-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-lift); }
.today-glyph__char{ color:var(--deco); }
.today-glyph__zy{ color:var(--ui2); }
.today-card__lb{ color:var(--ui2); }
/* 分類入口：居中、懸停底色 */
.cat{ align-items:center; text-align:center; }
.cat:hover{ background:var(--hover); }
.cat__name{ color:var(--ink); }
.cat:hover .cat__name{ color:var(--ui); }
/* 最新條目卡：分類標籤置頂（demo 的 card-tag） */
.ecard__hw{ color:var(--ink); }
.ecard:hover .ecard__hw{ color:var(--ui); }
.ecard__tag{ font-family:var(--sans); font-size:.78rem; letter-spacing:.08em; color:var(--ui2); margin-bottom:var(--sp-1); }
.ecard__meta{ border-top-color:var(--line); }
/* 頁首捲動收縮（72 → 64） */
.head.is-scrolled .head-in{ min-height:64px; }
.head{ transition:box-shadow var(--dur-2) ease, background-color .3s ease; }
/* 行動版選單抽屜底色 */
.drawer{ background:var(--card); }


/* ══════════════════════════════════════════════════════════════
   內容頁佈局優化：長釋義好讀、單字條目直排注音、側欄資訊卡
   ══════════════════════════════════════════════════════════════ */
/* 字頭：直排注音（單字／短注音） */
.ehead__zyv{ /*writing-mode:vertical-rl;*/ text-orientation:upright;
  font-family:var(--serif); font-size:var(--t-xl); letter-spacing:.2em;
  color:var(--ui2); align-self:center; max-block-size:7.5rem; }
/* 區塊標題帶義項數 */
.blk__cnt{ margin-left:auto; font-family:var(--sans); font-size:var(--t-sm); color:var(--ink-3); }
/* 長釋義：加寬行距、義項分組、引文易讀 */
.def{ line-height:2.05; max-width:42em; }
.def .senses{ gap:0; }
.def .senses li{ padding-block:var(--sp-4); border-top:1px dashed var(--line); }
.def .senses li:first-child{ padding-top:0; border-top:0; }
.def .senses li::before{ font-family:var(--sans); font-weight:700; color:var(--ui2); }
.def .qt{ color:var(--ui2); }
/* 側欄：條目資訊卡（橫列式） */
.infocard{ border:1px solid var(--line); border-radius:var(--r); background:var(--card); padding:var(--sp-5); }
.inforows{ display:grid; margin-top:var(--sp-2); }
.inforows > div{ display:flex; justify-content:space-between; gap:var(--sp-3);
  padding-block:.5rem; border-bottom:1px solid var(--line); font-family:var(--sans); font-size:var(--t-sm); }
.inforows > div:last-child{ border-bottom:0; }
.inforows dt{ color:var(--ink-3); flex:0 0 auto; }
.inforows dd{ margin:0; color:var(--ink); text-align:right; }
/* 側欄隨捲動固定（桌面） */
/* 長釋義在寬螢幕維持舒適行長 */
@media (min-width:1200px){ .def{ max-width:44em; } }

/* ══════════════════════════════════════════════════════════════
   v6.3 內容頁：依教育部《教育百科》條目結構重排
   切換辭典 → 釋義分段（本體／例詞／書證）→ 關聯詞 → 音讀字形
   → 典源＋注釋 → 典故 → 書證 → 用法 → 辨析 → 資料來源與授權
   ══════════════════════════════════════════════════════════════ */

/* ── 切換辭典（同詞在四部辭典的條目）── */
.dtabs{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--sp-2);
  padding-bottom:var(--sp-4); margin-bottom:var(--sp-6); border-bottom:1px solid var(--line); }
.dtabs__lb{ font-family:var(--sans); font-size:var(--t-xs); letter-spacing:.2em; color:var(--ink-3); margin-right:var(--sp-2); }
.dtab{ padding:.3rem .85rem; border:1px solid var(--line); border-radius:99px; background:var(--card);
  font-family:var(--sans); font-size:var(--t-sm); color:var(--ink-2);
  transition:background-color var(--dur-1) ease, border-color var(--dur-1) ease, color var(--dur-1) ease; }
.dtab:hover{ border-color:var(--ui); color:var(--ui); background:var(--hover); }
.dtab.is-on{ background:var(--ui); border-color:var(--ui); color:var(--card); }

/* ── 釋義：義項分段 ── */
.senses li.sense{ position:relative; padding-left:2.4em; text-indent:0; }
.senses li.sense::before{ position:absolute; left:0; top:0; }
.senses--one li.sense{ padding-left:0; }
.senses--one li.sense::before{ content:none; }
.senses--one{ counter-reset:none; }
.sense{ scroll-margin-top:calc(var(--head-h) + 24px); }
.sense + .sense{ margin-top:var(--sp-5); padding-top:var(--sp-5); border-top:1px dashed var(--line); }
.sense__core{ font-family:var(--serif); font-size:var(--t-lg); line-height:1.95; color:var(--ink); margin:0 0 var(--sp-3); }
.sense__ex{ display:flex; flex-wrap:wrap; align-items:baseline; gap:.3rem .35rem; margin:0 0 var(--sp-3); }
.ex__lb{ font-family:var(--sans); font-size:var(--t-sm); letter-spacing:.06em; color:var(--ink-3); }
.ex__w{ padding:.1rem .5rem; border-radius:var(--r-sm); background:color-mix(in srgb, var(--accent) 16%, transparent); color:var(--ui2); }
.ex__sp{ color:var(--ink-3); }
.dnote{ color:var(--ink-2); font-size:var(--t-md); }

/* 書證：一部一行，來源與引文分欄 */
.prov{ display:grid; gap:.3rem; margin-top:var(--sp-3); padding-left:var(--sp-4); border-left:2px solid var(--line); }
.prov li{ font-size:.97rem; line-height:1.95; color:var(--ink-2); }
.prov__src{ font-weight:500; color:var(--ui2); }
.prov__q{ color:var(--ink-2); }

/* 注音夾註（小字典）與顯示切換 */
ruby{ ruby-align:center; }
ruby rt{ font-family:var(--sans); font-size:.52em; color:var(--ink-3); letter-spacing:0; }
.def[data-ruby="off"] rt{ display:none; }
.rubytog{ margin-left:auto; padding:.25rem .7rem; border:1px solid var(--line); border-radius:99px;
  background:var(--card); font-family:var(--sans); font-size:var(--t-xs); color:var(--ink-2); }
.rubytog:hover{ border-color:var(--ui); color:var(--ui); }
.blk__cnt + .rubytog{ margin-left:var(--sp-2); }

/* ── 詞語關聯／用法：標籤＋內容列 ── */
.wrows{ display:grid; max-width:46em; }
.wrows > div{ display:flex; gap:var(--sp-4); padding-block:var(--sp-3); border-bottom:1px solid var(--line); }
.wrows > div:last-child{ border-bottom:0; }
.wrows dt{ flex:0 0 6.5rem; font-family:var(--sans); font-size:var(--t-sm); color:var(--ink-3); padding-top:.15rem; }
.wrows dd{ margin:0; color:var(--ink-2); }
.wchip{ display:inline-block; padding:.15rem .65rem; margin:0 .35rem .35rem 0; border:1px solid var(--line);
  border-radius:99px; background:var(--card); font-size:var(--t-sm); color:var(--ink);
  transition:border-color var(--dur-1) ease, color var(--dur-1) ease, background-color var(--dur-1) ease; }
.wchip:hover{ border-color:var(--ui); color:var(--ui); background:var(--hover); }
.zy2{ font-family:var(--serif); letter-spacing:.1em; color:var(--ink-2); }
.subh{ display:flex; align-items:center; gap:var(--sp-3); margin:var(--sp-5) 0 var(--sp-2);
  font-family:var(--sans); font-size:var(--t-sm); letter-spacing:.1em; color:var(--ink-3); }
.subh::after{ content:""; flex:1; block-size:1px; background:var(--line); }

/* ── 典源注釋 ── */
/* 典源註號：固定 26px 命中區，上標顯示 */
.anc a{ display:inline-block; inline-size:1.6rem; block-size:1.6rem; line-height:1.6rem;
  text-align:center; border-radius:99px; font-family:var(--sans); font-size:.68rem;
  color:var(--ui); vertical-align:super; }
.anc a:hover{ background:var(--hover); color:var(--ui-hover); }
.ancbox{ margin-top:var(--sp-4); padding:var(--sp-4) var(--sp-5); border:1px solid var(--line);
  border-radius:var(--r); background:var(--card-2); }
.anc-list{ display:grid; gap:var(--sp-2); }
.anc-list li{ font-size:.95rem; line-height:1.9; color:var(--ink-2); scroll-margin-top:calc(var(--head-h) + 24px); }
.anc-list li:target{ background:color-mix(in srgb, var(--accent) 20%, transparent); }
.anc-list b{ margin-right:.35em; font-weight:500; color:var(--ink); }

/* ── 辨析例句對照 ── */
.cmpscroll{ overflow-x:auto; margin-bottom:var(--sp-2); }
.cmp{ border-collapse:collapse; inline-size:100%; min-inline-size:34rem;
  font-family:var(--sans); font-size:.95rem; }
.cmp th,.cmp td{ padding:.5rem .75rem; border:1px solid var(--line); text-align:left; line-height:1.8; color:var(--ink-2); }
.cmp thead th{ background:var(--card-2); font-weight:500; color:var(--ink); }
.cmp:not(.bx) tbody td:nth-child(-n+2){ inline-size:3.4rem; text-align:center; font-size:var(--t-md); color:var(--ui2); }
/* 辨析對照表：首欄為項目名，其餘為兩個詞的內容 */
table.cmp.bx{ table-layout:fixed; }
table.cmp.bx th:first-child, table.cmp.bx td:first-child{ inline-size:7rem; }
table.cmp.bx th, table.cmp.bx td{ text-align:left; vertical-align:top; word-break:normal; overflow-wrap:anywhere; }
.cmp__lg{ font-family:var(--sans); font-size:var(--t-sm); color:var(--ink-3); }

/* ── 資料來源與授權 ── */
.srcline{ display:grid; max-width:46em; }
.srcline > div{ display:flex; gap:var(--sp-4); padding-block:var(--sp-3); border-bottom:1px solid var(--line); }
.srcline > div:last-child{ border-bottom:0; }
.srcline dt{ flex:0 0 6.5rem; font-family:var(--sans); font-size:var(--t-sm); color:var(--ink-3); padding-top:.15rem; }
.srcline dd{ margin:0; font-size:.97rem; line-height:1.95; color:var(--ink-2); }
.srcline__out{ color:var(--ui); border-bottom:1px solid color-mix(in srgb, var(--ui) 45%, transparent); padding-block:.35rem; }
.srcline__out:hover{ color:var(--ui-hover); }

/* ── 側欄：導覽＋資訊卡＋相關推薦 ── */
.eside{ display:grid; gap:var(--sp-5); align-content:start;   /* 不讓列高被容器撐開，導覽卡才不會變成一大片 */
  font-family:var(--sans); font-size:var(--t-sm); }
.eidx{ display:grid; }
.eidx li a{ display:block; padding:.5rem var(--sp-3); color:var(--ink-2);
  border-left:2px solid var(--line); transition:border-color var(--dur-1) ease, color var(--dur-1) ease; }
.eidx li a:hover{ color:var(--ui); border-left-color:var(--ui); }
.eidx--chips{ display:flex; flex-wrap:wrap; gap:var(--sp-2); }
.eidx--chips a{ display:grid; place-items:center; inline-size:2.1rem; block-size:2.1rem;
  border:1px solid var(--line); border-radius:var(--r-sm); color:var(--ink-2); }
.eidx--chips a:hover{ border-color:var(--ui); color:var(--ui); background:var(--hover); }
.infocard{ padding:var(--sp-4) var(--sp-5); border:1px solid var(--line); border-radius:var(--r); background:var(--card); }
.inforows{ display:grid; }
.inforows > div{ display:flex; justify-content:space-between; gap:var(--sp-3);
  padding-block:.5rem; border-bottom:1px solid var(--line); font-size:var(--t-sm); }
.inforows > div:last-child{ border-bottom:0; }
.inforows dt{ flex:0 0 auto; color:var(--ink-3); }
.inforows dd{ margin:0; text-align:right; color:var(--ink); }
.infocard__lic{ margin:var(--sp-4) 0 0; padding-top:var(--sp-3); border-top:1px dashed var(--line);
  font-family:var(--sans); font-size:var(--t-xs); line-height:1.9; color:var(--ink-3); }
.infocard__lic a{ color:var(--ui); padding-block:.35rem; }
.eside .side-list{ display:grid; }
.side-list a span{ display:block; font-family:var(--sans); font-size:var(--t-sm); letter-spacing:.06em; color:var(--ink-3); word-break:keep-all; }
.side-list a:hover b{ color:var(--ui); }

@media (min-width:64rem){
  .elay > .eside{ align-self:stretch; padding-bottom:var(--sp-8); }
  /* 捲動時側欄導覽會浮在下方卡片之上：給不透明底、留白與分隔線，避免文字互相重疊 */
  .eside__nav{ position:sticky; top:calc(var(--head-h) + 16px); z-index:2;
    background:var(--card); border:1px solid var(--line); border-radius:var(--r);
    padding:var(--sp-4) var(--sp-5); box-shadow:0 6px 18px -14px rgba(42,38,34,.45);
    transition:box-shadow var(--dur-2) ease, border-color var(--dur-2) ease; }
  .eside__nav .side-h{ margin-bottom:var(--sp-2); }
  .eside__nav .eidx li a{ padding-block:.4rem; }
  .eside__nav .eidx--chips{ margin-top:var(--sp-1); }
  /* 下方卡片往上捲時讓出一段距離，視覺上不會貼著導覽卡 */
  .elay > .eside > .infocard, .elay > .eside > .eside__rel{ margin-top:var(--sp-1); }
}
@media (max-width:63.99rem){
  .elay{ display:flex; flex-direction:column; }
  .eside__nav{ order:-1; }
  .eside__nav .eidx{ display:flex; flex-wrap:wrap; gap:var(--sp-2); }
  .eside__nav .eidx li a{ padding:.35rem .8rem; border:1px solid var(--line); border-radius:99px; border-left-width:1px; }
}
@media (max-width:47.99rem){
  .wrows > div,.srcline > div{ display:block; }
  .wrows dt,.srcline dt{ margin-bottom:.25rem; }
  .sense__core{ font-size:var(--t-md); }
  .senses li.sense{ padding-left:1.8em; }
}

/* ══════════════════════════════════════════════════════════════
   v6.4 產品層：视图切换、語音控制、索引／詞表／辨析頁
   ══════════════════════════════════════════════════════════════ */

/* ── 檢視模式切換器（頁首右側；連結形式，可分享可書籤）── */
.viewsw{ display:flex; gap:2px; padding:2px; border:1px solid var(--line); border-radius:99px; background:var(--card-2); }
.vsbtn{ display:inline-block; padding:.25rem .7rem; border-radius:99px; font-family:var(--sans); font-size:var(--t-xs);
  color:var(--ink-2); letter-spacing:.04em; text-decoration:none;
  transition:background-color var(--dur-1) ease, color var(--dur-1) ease; }
.vsbtn:hover{ color:var(--ui); }
.vsbtn.is-on{ background:var(--ui); color:var(--card); }
.vsbtn.is-soon{ opacity:.45; cursor:default; }
.vsbtn.is-soon:hover{ color:var(--ink-2); }
@media (max-width:47.99rem){
  .viewsw{ order:5; inline-size:100%; justify-content:center; margin-top:var(--sp-2); }   /* 手機：切換器獨占一列 */
}
@media (max-width:63.99rem){
  /* 窄螢幕：表頭可換行，品牌與選單不再被擠到斷行 */
  .head-in{ flex-wrap:wrap; row-gap:0; }
  .brand-name{ white-space:nowrap; }
  .burger{ white-space:nowrap; }
}
@media (max-width:26rem){
  .brand-name{ display:none; }   /* 極窄時只留「辭」字標記 */
}

/* ── 語音 ── */
.mic{ display:grid; place-items:center; inline-size:2.5rem; block-size:2.5rem; border-radius:50%;
  color:var(--ink-2); flex:0 0 auto; transition:color var(--dur-1) ease, background-color var(--dur-1) ease; }
.mic:hover{ color:var(--ui); background:var(--hover); }
.mic.is-listening{ color:var(--card); background:var(--ui); animation:pulse 1.4s ease-in-out infinite; }
@keyframes pulse{ 0%,100%{ transform:scale(1); } 50%{ transform:scale(1.08); } }
html.no-stt .mic{ display:none; }
.saybtn{ display:inline-flex; align-items:center; gap:.3rem; padding:.3rem .7rem; border:1px solid var(--line);
  border-radius:99px; background:var(--card); font-family:var(--sans); font-size:var(--t-xs); color:var(--ink-2);
  transition:border-color var(--dur-1) ease, color var(--dur-1) ease; }
.saybtn:hover{ border-color:var(--ui); color:var(--ui); }
.saybtn.is-speaking{ background:var(--ui); border-color:var(--ui); color:var(--card); }
.saybtn--sm{ margin-top:var(--sp-2); }
html.no-tts .saybtn, html.no-tts [data-say], html.no-tts [data-rate-toggle]{ display:none; }
.ehead__act{ display:flex; flex-wrap:wrap; gap:var(--sp-2); align-items:center; }

/* ── 檢視模式：只改強調，文字內容不變 ──
   區塊順序由伺服器端依 view_order() 決定（DOM 順序＝視覺順序），
   這裡不再用 CSS order 重排，避免 DOM 與視覺順序不一致（Tab／讀屏／列印）。 */
.elay > div{ display:flex; flex-direction:column; }
/* 強調：學習看重詞義與例句，寫作看重引文與關聯詞 */
html[data-view="learn"] .sense__core{ font-size:1.28rem; }
html[data-view="learn"] .ex__w{ background:color-mix(in srgb, var(--accent) 26%, transparent); }
html[data-view="write"] .quote p{ font-size:1.06rem; line-height:2.15; }
html[data-view="write"] .prov{ border-left-color:var(--ui); }
html[data-view="write"] .prov li{ font-size:1rem; }
html[data-view="write"] .cites li{ font-size:1rem; }

/* 長清單折疊（原生 details，免 JS；內容仍在 HTML 中） */
details.fold{ margin-top:var(--sp-2); }
details.fold > summary{ cursor:pointer; font-family:var(--sans); font-size:var(--t-sm); color:var(--ui);
  padding:.4rem 0; list-style:none; }
details.fold > summary::-webkit-details-marker{ display:none; }
details.fold > summary::before{ content:"▸ "; }
details.fold[open] > summary::before{ content:"▾ "; }

/* ── 索引頁 ── */
.idxnav{ display:flex; flex-wrap:wrap; gap:var(--sp-2); margin:var(--sp-4) 0 var(--sp-3); }
.idxnav__a{ padding:.3rem .9rem; border:1px solid var(--line); border-radius:99px; background:var(--card);
  font-family:var(--sans); font-size:var(--t-sm); color:var(--ink-2); }
.idxnav__a:hover{ border-color:var(--ui); color:var(--ui); }
.idxnav__a.is-on{ background:var(--ui); border-color:var(--ui); color:var(--card); }
.idxhint{ font-family:var(--sans); font-size:var(--t-sm); line-height:1.9; color:var(--ink-3); max-width:52em; }
.idxhint a{ padding-block:.35rem; color:var(--ui); }
.sech{ font-size:var(--t-lg); margin:var(--sp-6) 0 var(--sp-3); }
.idxgrid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(min(7.5rem, 100%), 1fr)); gap:var(--sp-2); }
.idxgrid--wide{ grid-template-columns:repeat(auto-fill, minmax(min(17rem, 100%), 1fr)); }
/* 辭典總覽：四部辭典（名稱長，改為名稱在上、筆數在下） */
.idxgrid--dicts{ grid-template-columns:repeat(auto-fill, minmax(min(13.5rem, 100%), 1fr)); }
.idxgrid.idxgrid--dicts a{ flex-direction:column; align-items:flex-start; justify-content:flex-start; gap:.2rem; }
.idxgrid a{ display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:.1rem var(--sp-2);
  padding:.55rem .8rem; border:1px solid var(--line); border-radius:var(--r-sm); background:var(--card);
  font-family:var(--sans); font-size:var(--t-sm); color:var(--ink); }
.idxgrid a:hover{ border-color:var(--ui); color:var(--ui); background:var(--hover); }
.idxgrid b{ font-family:var(--serif); font-size:1.12rem; font-weight:700; white-space:nowrap; }
.idxgrid span{ font-size:var(--t-xs); color:var(--ink-3); white-space:nowrap; }

/* ── 清單（索引／詞表共用）── */
.lslist{ display:grid; gap:0; margin-top:var(--sp-4); }
.lsi{ border-bottom:1px solid var(--line); }
.lsi a{ display:grid; grid-template-columns:minmax(0,auto) minmax(0,1fr); align-items:baseline;
  gap:.2rem var(--sp-4); padding-block:var(--sp-4); }
.lsi b{ font-family:var(--serif); font-size:1.3rem; color:var(--ink); overflow-wrap:anywhere; }
.lsi__zy{ font-family:var(--serif); font-size:var(--t-sm); letter-spacing:.08em; color:var(--ui2);
  white-space:normal; word-break:keep-all; overflow-wrap:normal; line-height:1.7; }
.lsi__def{ grid-column:1 / -1; font-family:var(--sans); font-size:var(--t-sm); line-height:1.8; color:var(--ink-3); }
.mixlist__c, .srcline__out{ padding-block:.35rem; }
.lsi a:hover b{ color:var(--ui); }
@media (min-width:48rem){
  /* 固定欄寬保留「跨列對齊」；minmax(0,…) 讓長詞／長注音在欄內換行，不再溢出壓到下一欄。
     成語注音最長可達 71 字元（含「（變）」第二讀音），因此注音欄放寬到 12rem。 */
  .lsi a{ grid-template-columns:minmax(0,9rem) minmax(0,12rem) minmax(0,1fr); }
  .lsi__def{ grid-column:auto; }
}

/* 成語典專用：詞頭與注音改為上下堆疊（左欄 16rem），釋義整欄對齊右側。
   成語詞長 2–10 字、注音 4–10 音節（最長 71 字元），三欄在成語上過擠；
   堆疊後注音有完整欄寬可用，避免音節被拆散、詞頭與注音互搶寬度。 */
@media (min-width:48rem){
  .lslist--idioms .lsi a{ grid-template-columns:minmax(0,17.5rem) minmax(0,1fr); align-items:start; }
  .lslist--idioms .lsi b{ grid-column:1; grid-row:1; }
  .lslist--idioms .lsi__zy{ grid-column:1; grid-row:2; margin-top:.1rem; }
  .lslist--idioms .lsi__def{ grid-column:2; grid-row:1 / span 2; }
}
@media (max-width:47.99rem){
  /* 手機：成語改單欄堆疊（詞頭 → 注音 → 釋義），注音可用整行寬度 */
  .lslist--idioms .lsi a{ grid-template-columns:minmax(0,1fr); }
  .lslist--idioms .lsi__zy{ grid-column:1; }
}

/* 分頁 */
.pager{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--sp-2); margin-top:var(--sp-6); }
.pager__n,.pager__btn{ display:grid; place-items:center; min-inline-size:2.4rem; block-size:2.4rem; padding-inline:.5rem;
  border:1px solid var(--line); border-radius:var(--r-sm); background:var(--card);
  font-family:var(--sans); font-size:var(--t-sm); color:var(--ink-2); }
.pager__n:hover,.pager__btn:hover{ border-color:var(--ui); color:var(--ui); }
.pager__n.is-on{ background:var(--ui); border-color:var(--ui); color:var(--card); }
.pager__sp{ color:var(--ink-3); }

/* ── 易混字詞 ── */
.mixlist{ display:grid; gap:0; margin-bottom:var(--sp-3); }
.mixlist li{ display:flex; flex-wrap:wrap; align-items:baseline; gap:var(--sp-3);
  padding-block:var(--sp-3); border-bottom:1px solid var(--line); }
.mixlist__w{ font-family:var(--serif); font-size:1.2rem; color:var(--ink);
  padding-block:.3rem; padding-inline:.4rem; margin-inline:-.4rem; border-radius:var(--r-sm); }
.mixlist__w:hover{ color:var(--ui); }
.mixlist__k{ padding:.05rem .5rem; border:1px solid var(--line); border-radius:99px;
  font-family:var(--sans); font-size:var(--t-xs); color:var(--ui2); }
.mixlist__n{ flex:1 1 12rem; font-family:var(--sans); font-size:var(--t-sm); color:var(--ink-3); }
.mixlist__c{ font-family:var(--sans); font-size:var(--t-sm); color:var(--ui);
  border-bottom:1px solid color-mix(in srgb, var(--ui) 45%, transparent); }
.srcline__note{ max-width:52em; margin:var(--sp-3) 0 0; font-family:var(--sans); font-size:var(--t-xs);
  line-height:1.9; color:var(--ink-3); }

/* 草稿預覽提示（後台檢視未發布條目） */
.prevnote{ margin:var(--sp-4) 0 0; padding:var(--sp-3) var(--sp-4); font-family:var(--sans); font-size:var(--t-sm);
  line-height:1.9; color:var(--ink-2); background:var(--card-2);
  border-left:3px solid var(--accent); border-radius:0 var(--r-sm) var(--r-sm) 0; }

/* ── 辨析對照頁 ── */
.bx__concl{ font-family:var(--serif); font-size:var(--t-lg); line-height:2; color:var(--ink); max-width:46em; }
.bx__ex{ display:grid; gap:.3rem; max-width:46em; }
.bx__ex li{ position:relative; padding-left:1.4em; font-family:var(--sans); font-size:var(--t-sm);
  line-height:1.95; color:var(--ink-2); }
.bx__ex li::before{ content:"·"; position:absolute; left:.3em; color:var(--ui2); }
table.cmp.bx tbody td:first-child{ font-family:var(--sans); font-size:var(--t-sm); color:var(--ink-3); }
table.cmp.bx tbody td .wchip{ margin:0; }

/* ══════════════════════════════════════════════════════════════
   v6.5 E-E-A-T／GEO：內容出處標籤、編寫與查核資訊、簡短答案、問答
   ══════════════════════════════════════════════════════════════ */

/* 出處標籤：官方原文（藍）／官方欄位（灰藍）／本站整理（綠） */
.ptag{ display:inline-block; padding:.05rem .5rem; border-radius:99px; border:1px solid transparent;
  font-family:var(--sans); font-size:var(--t-xs); line-height:1.7; white-space:nowrap; }
.ptag--off{ color:#2A5B8C; background:color-mix(in srgb, #2A5B8C 12%, transparent); border-color:color-mix(in srgb, #2A5B8C 26%, transparent); }
.ptag--field{ color:var(--ui2); background:color-mix(in srgb, var(--accent) 14%, transparent); border-color:color-mix(in srgb, var(--accent) 30%, transparent); }
.ptag--own{ color:#2E6B49; background:color-mix(in srgb, #2E6B49 12%, transparent); border-color:color-mix(in srgb, #2E6B49 26%, transparent); }
[data-theme="dark"] .ptag--off{ color:#9CC4EA; }
[data-theme="dark"] .ptag--own{ color:#9AD3AF; }
.blk__hd .ptag{ margin-left:auto; }
.blk__hd .ptag + .ptag{ margin-left:var(--sp-2); }
.blk__hd .blk__cnt + .ptag{ margin-left:var(--sp-3); }

/* 編寫與查核資訊列 */
.meta-strip{ margin:0 0 var(--sp-5); padding:var(--sp-3) var(--sp-4); border-left:3px solid var(--ui2);
  border-radius:0 var(--r-sm) var(--r-sm) 0; background:var(--card-2);
  font-family:var(--sans); font-size:var(--t-sm); line-height:1.9; color:var(--ink-2); }
.meta-strip b{ color:var(--ink); font-weight:500; }
.meta-strip a{ color:var(--ui); border-bottom:1px solid color-mix(in srgb, var(--ui) 45%, transparent); }

/* GEO：開頭就給答案 */
.answer{ padding:var(--sp-4) var(--sp-5); border:1px solid color-mix(in srgb, var(--accent) 42%, transparent);
  border-radius:var(--r); background:color-mix(in srgb, var(--accent) 12%, var(--card));
  max-width:52em; margin-bottom:var(--sp-2); }
.answer__lb{ display:block; margin-bottom:var(--sp-2); font-family:var(--sans); font-size:var(--t-xs);
  letter-spacing:.18em; color:var(--ui2); }
.answer p{ margin:0; font-family:var(--serif); font-size:var(--t-lg); line-height:1.95; color:var(--ink); }

/* 官方原文出處註記 */
.official-note{ margin:var(--sp-3) 0 0; padding-top:var(--sp-2); border-top:1px dashed var(--line);
  font-family:var(--sans); font-size:var(--t-xs); line-height:1.9; color:var(--ink-3); }

/* 問答（FAQ） */
.faq{ display:grid; gap:var(--sp-2); max-width:52em; }
.faq details{ border:1px solid var(--line); border-radius:var(--r-sm); background:var(--card); }
.faq summary{ padding:var(--sp-3) var(--sp-4); cursor:pointer; font-family:var(--sans); font-size:var(--t-md);
  color:var(--ink); list-style:none; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::before{ content:"問 "; font-family:var(--sans); color:var(--ui2); }
.faq details[open] summary{ border-bottom:1px solid var(--line); }
.faq .faq__a{ padding:var(--sp-3) var(--sp-4); font-size:var(--t-md); line-height:1.95; color:var(--ink-2); }

/* ── 筆順動畫（單字條目）── */
.stroke{ display:grid; grid-template-columns:minmax(0,240px) minmax(0,1fr); gap:var(--sp-6); align-items:start;
  padding:var(--sp-5); border:1px solid var(--line); border-radius:var(--r); background:var(--card); }
.stroke__stage{ position:relative; inline-size:240px; block-size:240px;
  border:1px solid var(--line); border-radius:var(--r-sm); background:var(--bg); }
.stroke__stage svg{ display:block; }
.stroke__side{ display:grid; gap:var(--sp-3); }
.stroke__n{ margin:0; font-family:var(--sans); font-size:var(--t-sm); color:var(--ink-3); }
.stroke__n b{ font-family:var(--serif); font-size:var(--t-md); color:var(--ink); }
.stroke__ctl{ display:flex; flex-wrap:wrap; gap:var(--sp-2); }
.stroke__status{ margin:0; min-block-size:1.6em; font-family:var(--sans); font-size:var(--t-sm); color:var(--ui2); }
.stroke__fallback{ margin:0; padding:var(--sp-3); font-family:var(--sans); font-size:var(--t-sm); line-height:1.9; color:var(--ink-3); }
.stroke__fallback a{ padding-block:.3rem; color:var(--ui); }
@media (max-width:47.99rem){ .stroke{ grid-template-columns:minmax(0,1fr); justify-items:center; } .stroke__side{ inline-size:100%; } }

/* 行內文字連結的命中區（垂直 padding 不影響行高，確保 ≥24px 可點） */
.foot__lic a, .official-note a, .meta-strip a, .srcline__note a, .idxhint a, .wrows dd a, .blk li a{ padding-block:.3rem; }

/* 部首索引：依部首筆畫分組 */
.rgroup{ margin-bottom:var(--sp-5); }
.rgroup__hd{ display:flex; align-items:baseline; gap:var(--sp-3); margin:0 0 var(--sp-2);
  font-family:var(--sans); font-size:var(--t-sm); font-weight:700; color:var(--ink);
  padding-bottom:.35rem; border-bottom:1px dashed var(--line); }
.rgroup__hd span{ font-weight:400; font-size:var(--t-xs); color:var(--ink-3); }
.rgroup .idxgrid{ grid-template-columns:repeat(auto-fill, minmax(min(5.5rem, 100%), 1fr)); }

/* ── 索引／詞表總覽：說明文字與格線排版 ── */
.idxhint{ max-width:46em; line-height:2; padding:var(--sp-3) var(--sp-4);
  border-left:3px solid color-mix(in srgb, var(--accent) 55%, transparent);
  border-radius:0 var(--r-sm) var(--r-sm) 0; background:var(--card-2); }
.idxhint + .sec-block, .idxhint + .idxgrid, .idxhint + .lslist{ margin-top:var(--sp-5); }

.sec-block{ margin-top:var(--sp-6); }
.sec-block__hd{ display:flex; align-items:baseline; gap:var(--sp-3); flex-wrap:wrap;
  padding-bottom:var(--sp-2); margin-bottom:var(--sp-4); border-bottom:1px solid var(--line); }
.sec-block__hd h2{ font-size:var(--t-lg); font-weight:700; }
.sec-block__hd span{ font-family:var(--sans); font-size:var(--t-sm); color:var(--ink-3); }

/* 標籤組：分組標題 + 一列標籤（筆畫數字、部首） */
.chipset{ display:grid; grid-template-columns:5rem minmax(0,1fr); gap:var(--sp-3) var(--sp-4);
  align-items:start; margin-bottom:var(--sp-3); }
.chipset__lb{ font-family:var(--sans); font-size:var(--t-sm); color:var(--ink-3); padding-top:.4rem; white-space:nowrap; }
.chipset__items{ display:flex; flex-wrap:wrap; gap:.35rem; }
.chip{ display:inline-flex; align-items:baseline; gap:.35rem; padding:.3rem .7rem;
  border:1px solid var(--line); border-radius:var(--r-sm); background:var(--card);
  font-family:var(--sans); font-size:var(--t-sm); color:var(--ink);
  transition:border-color var(--dur-1) ease, color var(--dur-1) ease, background-color var(--dur-1) ease; }
.chip b{ font-family:var(--serif); font-size:1.05rem; font-weight:700; }
.chip span{ font-size:var(--t-xs); color:var(--ink-3); }
.chip:hover{ border-color:var(--ui); color:var(--ui); background:var(--hover); }
.chip--rad b{ font-size:1.15rem; }
@media (max-width:47.99rem){
  .chipset{ grid-template-columns:minmax(0,1fr); gap:var(--sp-1) 0; }
  .chipset__lb{ padding-top:0; }
}

/* 格線卡：對齊與高度一致 */
.idxgrid a{ align-items:center; min-block-size:2.9rem; }
.idxgrid a b{ min-inline-size:0; }
.idxgrid a:hover{ box-shadow:var(--shadow); }
.idxgrid a:focus-visible{ outline:2px solid var(--ui); outline-offset:2px; }

/* ── 官方朗讀音檔與外文對譯（demo 建議模組落地）── */
.audio{ display:grid; gap:var(--sp-2); justify-items:start; }
.audio audio{ inline-size:min(420px,100%); block-size:44px; }
.audio__src{ margin:0; font-family:var(--sans); font-size:var(--t-sm); line-height:1.9; color:var(--ink-3); }

.xlate{ display:grid; gap:0; max-width:52em; }
.xlate__row{ display:flex; gap:var(--sp-4); padding-block:var(--sp-3); border-bottom:1px solid var(--line); }
.xlate__row:last-child{ border-bottom:0; }
.xlate__lang{ flex:0 0 3.5rem; font-family:var(--serif); font-size:var(--t-md); color:var(--ui2); }
.xlate__body{ min-inline-size:0; }
.xlate__g{ margin:0 0 .4rem; font-size:var(--t-md); line-height:1.9; color:var(--ink); }
.xlate__g:last-child{ margin-bottom:0; }
.xlate__src{ display:block; font-family:var(--sans); font-size:var(--t-xs); color:var(--ink-3); }
.xlate__lic{ color:var(--ui2); }
@media (max-width:47.99rem){
  .xlate__row{ display:block; }
  .xlate__lang{ margin-bottom:.25rem; }
}

/* ── 辭典瀏覽頁：篩選列與精簡分頁 ── */
.dfilter{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--sp-2); margin:0 0 var(--sp-3); }
.dfilter__lb{ font-family:var(--sans); font-size:var(--t-xs); letter-spacing:.16em; color:var(--ink-3); margin-right:var(--sp-2); }
.dfilter .chip.is-on{ background:var(--ui); border-color:var(--ui); color:var(--card); }
.pager__btn.is-off{ opacity:.45; pointer-events:none; }
.pager__cnt{ font-family:var(--sans); font-size:var(--t-xs); color:var(--ink-3); margin-left:auto; }

/* 檢索框（辭典總覽／單一辭典）：靠左、比首屏略窄 */
.searchwrap{ margin:var(--sp-5) 0 var(--sp-6); }
.searchwrap .hero-search{ margin-inline:0; max-width:34rem; }
.searchwrap .hero-search .mic{ align-self:center; }
.searchwrap__note{ margin-top:var(--sp-3); font-family:var(--sans); font-size:var(--t-sm); line-height:1.9; color:var(--ink-3); max-width:44em; }
.searchwrap__note a{ padding-block:.2rem; color:var(--ui); }
@media (max-width:30rem){
  .searchwrap .hero-search{ flex-wrap:wrap; }
  .searchwrap .hero-search button[type=submit]{ flex:1 1 auto; }
}

/* 驗證碼：點圖換一張（.capbtn 包住圖片；.caplink 為文字版換圖鈕） */
.capbtn{ padding:0; border:0; background:none; cursor:pointer; line-height:0; border-radius:var(--r-sm); }
.capbtn:hover .capimg{ border-color:var(--ui); }
.capbtn:focus-visible{ outline:3px solid var(--ui); outline-offset:2px; }
.caplink{ display:inline-flex; align-items:center; min-height:32px; padding:.15rem .25rem; border:0;
  background:none; font:inherit; font-family:var(--sans); font-size:var(--t-sm); color:var(--ui); cursor:pointer; }
.caplink:hover{ text-decoration:underline; }
.caplink:focus-visible{ outline:2px solid var(--ui); outline-offset:2px; }

/* 驗證碼：緊接在標籤後時收緊上緣間距（回饋表單） */
label + .caprow{ margin-top:var(--sp-2); }
