:root {
  --bg: #f7f8fa;
  --card: #ffffff;
  --text: #1c2333;
  --muted: #5b6472;
  --accent: #0e7490;
  --accent-weak: #e0f2f7;
  --border: #dfe3ea;
  --badge: #0e7490;
  --badge-text: #ffffff;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg: #12161f;
    --card: #1a202c;
    --text: #e8ebf0;
    --muted: #9aa4b2;
    --accent: #38bdf8;
    --accent-weak: #16303e;
    --border: #2b3444;
    --badge: #0ea5e9;
    --badge-text: #06202e;
  }
}

* { box-sizing: border-box; }
body {
  margin: 0;
  font-family: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", system-ui, sans-serif;
  background: var(--bg);
  color: var(--text);
  line-height: 1.6;
}
a { color: var(--accent); }

.site-header { padding: 1.5rem 1rem 0.5rem; max-width: 60rem; margin: 0 auto; }
.site-header h1 { margin: 0 0 0.25rem; font-size: 1.5rem; }
.subtitle { margin: 0; color: var(--muted); font-size: 0.9rem; }

.tabs {
  display: flex; gap: 0.25rem; flex-wrap: wrap;
  max-width: 60rem; margin: 1rem auto 0; padding: 0 1rem;
  border-bottom: 2px solid var(--border);
}
.tab {
  border: none; background: none; color: var(--muted);
  padding: 0.5rem 0.9rem; font-size: 0.95rem; cursor: pointer;
  border-bottom: 2px solid transparent; margin-bottom: -2px;
}
.tab.active { color: var(--accent); border-bottom-color: var(--accent); font-weight: 600; }

main { max-width: 60rem; margin: 0 auto; padding: 1rem; }
.panel { display: none; }
.panel.active { display: block; }

.toolbar { display: flex; gap: 0.75rem; flex-wrap: wrap; align-items: center; margin: 0.75rem 0; }
.toolbar input[type="search"] {
  flex: 1 1 16rem; padding: 0.5rem 0.75rem; font-size: 1rem;
  border: 1px solid var(--border); border-radius: 0.5rem;
  background: var(--card); color: var(--text);
}
.toolbar select {
  padding: 0.45rem 0.5rem; border: 1px solid var(--border); border-radius: 0.5rem;
  background: var(--card); color: var(--text); font-size: 0.95rem;
}
.chk { color: var(--muted); font-size: 0.9rem; white-space: nowrap; }

.result-count { color: var(--muted); font-size: 0.85rem; margin: 0.25rem 0; }
.hint { color: var(--muted); font-size: 0.9rem; }

.ann-list { list-style: none; margin: 0; padding: 0; }
.ann-list .ann-year {
  background: none; border: none; padding: 0; margin: 1.4rem 0 0.6rem;
}
.ann-list .ann-year h3 {
  margin: 0; font-size: 1.05rem; color: var(--accent);
  border-bottom: 2px solid var(--border); padding-bottom: 0.3rem;
}
.ann-list .ann-year .count { color: var(--muted); font-weight: normal; font-size: 0.85rem; margin-left: 0.4rem; }
.ann-list li {
  background: var(--card); border: 1px solid var(--border);
  border-radius: 0.6rem; padding: 0.7rem 0.9rem; margin-bottom: 0.6rem;
}
.ann-date { color: var(--muted); font-size: 0.85rem; margin-right: 0.5rem; white-space: nowrap; }
.ann-title { font-size: 0.98rem; }
.ann-doc { display: block; color: var(--muted); font-size: 0.82rem; margin-top: 0.2rem; }
.badge {
  display: inline-block; background: var(--badge); color: var(--badge-text);
  font-size: 0.72rem; border-radius: 0.4rem; padding: 0.05rem 0.4rem;
  vertical-align: middle; margin-left: 0.4rem;
}

.timeline { border-left: 3px solid var(--border); margin-left: 0.5rem; padding-left: 1.25rem; }
.timeline h3 {
  position: relative; margin: 1.2rem 0 0.4rem; font-size: 1.05rem;
}
.timeline h3::before {
  content: ""; position: absolute; left: -1.72rem; top: 0.45rem;
  width: 0.7rem; height: 0.7rem; border-radius: 50%;
  background: var(--accent); border: 2px solid var(--bg);
}
.timeline ul { list-style: none; margin: 0 0 0.5rem; padding: 0; }
.timeline li { margin: 0.3rem 0; font-size: 0.92rem; }
.timeline .count { color: var(--muted); font-weight: normal; font-size: 0.85rem; }

.file-list { list-style: none; margin: 0.75rem 0; padding: 0; }
.file-list li {
  display: flex; justify-content: space-between; gap: 1rem; align-items: baseline;
  background: var(--card); border: 1px solid var(--border);
  border-radius: 0.5rem; padding: 0.55rem 0.8rem; margin-bottom: 0.45rem;
  flex-wrap: wrap;
}
.file-name { flex: 1 1 20rem; }
.file-links { display: flex; gap: 0.4rem; flex-wrap: wrap; }
.file-links a {
  text-decoration: none; font-size: 0.8rem; text-transform: uppercase;
  background: var(--accent-weak); color: var(--accent);
  padding: 0.15rem 0.5rem; border-radius: 0.35rem;
}
.file-size { color: var(--muted); font-size: 0.78rem; margin-left: 0.25rem; }

.rule-list details {
  background: var(--card); border: 1px solid var(--border);
  border-radius: 0.6rem; padding: 0.55rem 0.9rem; margin-bottom: 0.55rem;
}
.rule-list summary { cursor: pointer; font-size: 0.95rem; line-height: 1.5; }
.rule-list summary::marker { color: var(--accent); }
.rule-id {
  display: inline-block; background: var(--accent-weak); color: var(--accent);
  font-size: 0.78rem; font-weight: 600; border-radius: 0.35rem;
  padding: 0.05rem 0.45rem; margin-right: 0.45rem;
}
.rule-chapter { color: var(--muted); font-size: 0.78rem; margin-left: 0.4rem; }
.rule-text {
  margin: 0.6rem 0 0.2rem; padding-top: 0.6rem; border-top: 1px dashed var(--border);
  font-size: 0.92rem; line-height: 1.85; white-space: pre-wrap; overflow-wrap: anywhere;
  max-width: 46rem;
}
mark { background: #ffe28a; color: inherit; border-radius: 0.15rem; padding: 0 0.1rem; }
@media (prefers-color-scheme: dark) { mark { background: #8a6d00; } }

.fulldoc-card {
  display: flex; justify-content: space-between; align-items: center; gap: 1rem;
  flex-wrap: wrap; background: var(--accent-weak); border: 1px solid var(--accent);
  border-radius: 0.6rem; padding: 0.8rem 1rem; margin: 0.75rem 0;
}
.fulldoc-card .hint { margin: 0.15rem 0 0; }

/* 風險計算機 */
.calc-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(16rem, 1fr); gap: 1.2rem; align-items: start; }
@media (max-width: 52rem) { .calc-grid { grid-template-columns: 1fr; } }
.calc-form fieldset {
  border: 1px solid var(--border); border-radius: 0.6rem; background: var(--card);
  padding: 0.7rem 1rem 0.8rem; margin: 0 0 0.9rem;
}
.calc-form legend { font-weight: 600; font-size: 0.92rem; color: var(--accent); padding: 0 0.4rem; }
.chk-line { display: block; margin: 0.35rem 0; font-size: 0.92rem; line-height: 1.55; cursor: pointer; }
.chk-line input { margin-right: 0.4rem; }
.sub-list { margin: 0.1rem 0 0.4rem 1.6rem; padding-left: 0.6rem; border-left: 2px solid var(--border); }
.mets-box { margin: 0.4rem 0 0.1rem; }
.mets-box summary { cursor: pointer; font-size: 0.92rem; color: var(--text); }
.mets-box .chk-line { margin-left: 1.4rem; }
.num-row { display: flex; gap: 1rem; flex-wrap: wrap; }
.num-row label { font-size: 0.9rem; }
.num-row input {
  width: 6.5rem; padding: 0.35rem 0.5rem; margin-left: 0.3rem;
  border: 1px solid var(--border); border-radius: 0.4rem;
  background: var(--bg); color: var(--text); font-size: 1rem;
  font-variant-numeric: tabular-nums;
}
.calc-result {
  position: sticky; top: 1rem; background: var(--card);
  border: 1px solid var(--accent); border-radius: 0.8rem; padding: 1rem 1.2rem;
}
.calc-result h2 { margin: 0 0 0.5rem; font-size: 1.1rem; }
.risk-level { margin: 0.3rem 0 0.7rem; }
.risk-pill {
  display: inline-block; padding: 0.15rem 0.7rem; border-radius: 2rem;
  background: var(--accent-weak); color: var(--accent); font-weight: 700;
}
.risk-pill[data-level="extreme"], .risk-pill[data-level="veryhigh"] { background: #fde8e8; color: #b91c1c; }
.risk-pill[data-level="high"] { background: #fef3d9; color: #b45309; }
@media (prefers-color-scheme: dark) {
  .risk-pill[data-level="extreme"], .risk-pill[data-level="veryhigh"] { background: #4a1516; color: #fca5a5; }
  .risk-pill[data-level="high"] { background: #453110; color: #fcd34d; }
}
.risk-detail { margin: 0.4rem 0 0.8rem; font-size: 0.9rem; }
.risk-detail dt { color: var(--muted); font-size: 0.8rem; margin-top: 0.55rem; }
.risk-detail dd { margin: 0.1rem 0 0; line-height: 1.6; }
.copy-btn {
  width: 100%; padding: 0.6rem 0.8rem; border: none; border-radius: 0.5rem;
  background: var(--accent); color: var(--badge-text, #fff); font-size: 0.95rem;
  font-weight: 600; cursor: pointer;
}
.copy-btn:hover { opacity: 0.9; }
.reset-btn {
  width: 100%; margin-top: 0.45rem; padding: 0.45rem 0.8rem;
  border: 1px solid var(--border); border-radius: 0.5rem;
  background: var(--card); color: var(--muted); font-size: 0.88rem; cursor: pointer;
}
.reset-btn:hover { border-color: var(--accent); color: var(--accent); }

/* 血清指數推定區 */
.serum-box { margin: 0.5rem 0 0.1rem; padding: 0.5rem 0 0; border-top: 1px dashed var(--border); }
.serum-box summary { cursor: pointer; font-size: 0.9rem; color: var(--accent); }
.serum-box .num-row { margin-top: 0.6rem; }
.serum-box .num-row label { font-size: 0.86rem; }
.inline-opts {
  display: flex; align-items: center; gap: 0.9rem; flex-wrap: wrap;
  margin: 0.6rem 0 0.2rem; font-size: 0.9rem; color: var(--muted);
}
.chk-line.inline { display: inline-block; margin: 0; }

/* MASH 說明摺疊區 */
.mash-note {
  margin-top: 0.9rem; padding-top: 0.8rem; border-top: 1px solid var(--border);
  font-size: 0.85rem; color: var(--muted);
}
.mash-note summary { cursor: pointer; color: var(--accent); font-weight: 600; }
.mash-note p { margin: 0.6rem 0 0; line-height: 1.75; }

/* MASLD／FIB-4 結果分層 */
.risk-pill[data-level="met"] { background: #dcfce7; color: #15803d; }
.risk-pill[data-level="warn"] { background: #fef3d9; color: #b45309; }
.risk-pill[data-level="none"] { background: var(--accent-weak); color: var(--muted); }
.fib-line { margin-top: 1rem; padding-top: 0.8rem; border-top: 1px solid var(--border); }
.fib-value {
  font-size: 1.35rem; font-weight: 700; font-variant-numeric: tabular-nums;
  color: var(--accent);
}
.fib-value[data-level="met"] { color: #15803d; }
.fib-value[data-level="warn"] { color: #b45309; }
.fib-value[data-level="high"] { color: #b91c1c; }
.fib-value[data-level="none"] { color: var(--muted); }
@media (prefers-color-scheme: dark) {
  .risk-pill[data-level="met"] { background: #14361f; color: #4ade80; }
  .risk-pill[data-level="warn"] { background: #453110; color: #fcd34d; }
  .fib-value[data-level="met"] { color: #4ade80; }
  .fib-value[data-level="warn"] { color: #fcd34d; }
  .fib-value[data-level="high"] { color: #fca5a5; }
}
:root[data-theme="dark"] .risk-pill[data-level="met"] { background: #14361f; color: #4ade80; }
:root[data-theme="dark"] .risk-pill[data-level="warn"] { background: #453110; color: #fcd34d; }
:root[data-theme="dark"] .fib-value[data-level="met"] { color: #4ade80; }
:root[data-theme="dark"] .fib-value[data-level="warn"] { color: #fcd34d; }
:root[data-theme="dark"] .fib-value[data-level="high"] { color: #fca5a5; }

/* LDL-C 已達起始藥物治療門檻（符合給付條件） */
.ldl-met { color: #15803d; font-weight: 700; }
@media (prefers-color-scheme: dark) { .ldl-met { color: #4ade80; } }
:root[data-theme="dark"] .ldl-met { color: #4ade80; }
:root[data-theme="light"] .ldl-met { color: #15803d; }
.copy-preview {
  width: 100%; margin-top: 0.7rem; padding: 0.55rem 0.7rem;
  border: 1px dashed var(--border); border-radius: 0.5rem;
  background: var(--bg); color: var(--text); font-size: 0.83rem; line-height: 1.6;
  resize: vertical; box-sizing: border-box;
}
.badge-update {
  display: inline-block; background: #fde8e8; color: #b91c1c;
  font-size: 0.72rem; border-radius: 0.4rem; padding: 0.05rem 0.4rem;
  vertical-align: middle; margin-left: 0.4rem; text-decoration: none;
}
@media (prefers-color-scheme: dark) { .badge-update { background: #4a1516; color: #fca5a5; } }

.site-footer {
  max-width: 60rem; margin: 2rem auto 0; padding: 1rem;
  border-top: 1px solid var(--border); color: var(--muted); font-size: 0.82rem;
}
.disclaimer { font-weight: 600; }

/* 首頁題獻與製作者署名 */
.dedication {
  margin: 0 0 0.55rem; font-size: 0.88rem; letter-spacing: 0.04em;
  color: var(--muted); display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap;
}
.dedication::after {
  content: ""; flex: 1 1 3rem; height: 1px; min-width: 2rem;
  background: linear-gradient(to right, var(--border), transparent);
}
.anniv {
  color: var(--accent); font-weight: 700; font-size: 1.02rem;
  letter-spacing: 0.02em;
}
.credits {
  margin: 0 0 0.8rem; padding-bottom: 0.8rem;
  border-bottom: 1px solid var(--border);
}
.credits-org { margin: 0; font-size: 0.9rem; color: var(--text); font-weight: 600; }
.credits-author { margin: 0.2rem 0 0; font-size: 0.86rem; color: var(--muted); }

.breadcrumb { margin: 0 0 0.3rem; font-size: 0.85rem; }
.breadcrumb a { text-decoration: none; color: var(--muted); }
.breadcrumb a:hover { color: var(--accent); }

.feature-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr));
  gap: 1rem; margin: 1.5rem 0;
}
.feature-card {
  display: block; background: var(--card); border: 1px solid var(--border);
  border-radius: 0.8rem; padding: 1.2rem 1.3rem; text-decoration: none;
  color: var(--text); transition: border-color 0.15s, transform 0.15s;
}
.feature-card:hover { border-color: var(--accent); transform: translateY(-2px); }
.feature-card h2 { margin: 0.4rem 0 0.4rem; font-size: 1.15rem; color: var(--accent); }
.feature-card p { margin: 0.2rem 0; font-size: 0.9rem; color: var(--muted); }
.feature-icon { font-size: 1.8rem; }
.feature-meta { font-size: 0.8rem; }

.revisions { margin: 1rem 0; color: var(--muted); font-size: 0.85rem; }
.revisions summary { cursor: pointer; }
.revisions ul { margin: 0.5rem 0 0 1rem; padding: 0 0 0 1rem; }

/* 居家醫療：問答集版本落差提示與條號對照 */
.stale-banner {
  margin: 1rem 0; padding: 0.85rem 1rem;
  border: 1px solid #f0c36d; border-left: 4px solid #d97706;
  border-radius: 0.6rem; background: #fffaf0;
}
.stale-head { margin: 0 0 0.35rem; font-weight: 700; color: #b45309; font-size: 0.95rem; }
.stale-body { margin: 0; font-size: 0.88rem; line-height: 1.75; color: var(--text); }
.stale-banner details { margin-top: 0.5rem; font-size: 0.85rem; }
.stale-banner summary { cursor: pointer; color: #b45309; font-weight: 600; }
.stale-banner ul { margin: 0.4rem 0 0; padding-left: 1.2rem; color: var(--muted); }
@media (prefers-color-scheme: dark) {
  .stale-banner { background: #2a2010; border-color: #7c5a17; border-left-color: #f59e0b; }
  .stale-head, .stale-banner summary { color: #fcd34d; }
}
/* 校訂標記與說明 */
.rev-badge {
  display: inline-block; margin-left: 0.4rem; padding: 0.05rem 0.45rem;
  border-radius: 0.4rem; font-size: 0.72rem; vertical-align: middle; white-space: nowrap;
}
.rev-badge[data-kind="substantive"] { background: #fde8e8; color: #b91c1c; }
.rev-badge[data-kind="premise"] { background: #fef3d9; color: #b45309; }
.rev-badge[data-kind="renumber"] { background: var(--accent-weak); color: var(--accent); }
.rev-badge[data-kind="supplement"] { background: #e6f0fb; color: #1d4ed8; }
@media (prefers-color-scheme: dark) {
  .rev-badge[data-kind="substantive"] { background: #4a1516; color: #fca5a5; }
  .rev-badge[data-kind="premise"] { background: #453110; color: #fcd34d; }
  .rev-badge[data-kind="supplement"] { background: #16273f; color: #93c5fd; }
}
.ans-head {
  margin: 0.7rem 0 0.1rem; font-size: 0.78rem; font-weight: 700; color: var(--accent);
  letter-spacing: 0.02em;
}
.rev-box {
  margin: 0.6rem 0 0; padding: 0.55rem 0.75rem;
  border-left: 3px solid var(--border); border-radius: 0 0.5rem 0.5rem 0; background: var(--bg);
}
.rev-box[data-kind="substantive"] { border-left-color: #b91c1c; }
.rev-box[data-kind="premise"] { border-left-color: #d97706; }
.rev-box[data-kind="renumber"] { border-left-color: var(--accent); }
.rev-box[data-kind="supplement"] { border-left-color: #1d4ed8; }
.rev-head { margin: 0 0 0.3rem; font-size: 0.78rem; font-weight: 700; color: var(--muted); }
.rev-why { margin: 0 0 0.35rem; font-size: 0.86rem; line-height: 1.8; }
.rev-moved, .rev-basis { margin: 0.2rem 0 0; font-size: 0.82rem; color: var(--muted); }
.orig-box { margin: 0.6rem 0 0; font-size: 0.86rem; }
.orig-box > summary { cursor: pointer; color: var(--muted); font-size: 0.82rem; }
.orig-box .rule-text { opacity: 0.8; }
.qa-note { margin: 0.5rem 0 0; font-size: 0.8rem; color: var(--muted); }
.revisions { margin: 1rem 0; color: var(--muted); font-size: 0.85rem; }
.revisions summary { cursor: pointer; }
.revisions ul { margin: 0.5rem 0 0 1rem; padding: 0 0 0 1rem; }

/* 居家醫療：問答集版本落差提示與條號對照 */
.stale-banner {
  margin: 1rem 0; padding: 0.85rem 1rem;
  border: 1px solid #f0c36d; border-left: 4px solid #d97706;
  border-radius: 0.6rem; background: #fffaf0;
}
.stale-head { margin: 0 0 0.35rem; font-weight: 700; color: #b45309; font-size: 0.95rem; }
.stale-body { margin: 0; font-size: 0.88rem; line-height: 1.75; color: var(--text); }
.stale-banner details { margin-top: 0.5rem; font-size: 0.85rem; }
.stale-banner summary { cursor: pointer; color: #b45309; font-weight: 600; }
.stale-banner ul { margin: 0.4rem 0 0; padding-left: 1.2rem; color: var(--muted); }
@media (prefers-color-scheme: dark) {
  .stale-banner { background: #2a2010; border-color: #7c5a17; border-left-color: #f59e0b; }
  .stale-head, .stale-banner summary { color: #fcd34d; }
}
.cite-map {
  margin: 0.6rem 0 0; padding: 0.55rem 0.75rem;
  border: 1px dashed var(--border); border-radius: 0.5rem; background: var(--bg);
}
.cite-head { margin: 0 0 0.3rem; font-size: 0.8rem; color: var(--muted); font-weight: 600; }
.cite-map ul { margin: 0; padding-left: 1.2rem; font-size: 0.86rem; line-height: 1.8; }
.qa-note { margin: 0.5rem 0 0; font-size: 0.8rem; color: var(--muted); }
.revisions { margin-top: 1.2rem; font-size: 0.86rem; }
.revisions summary { cursor: pointer; color: var(--accent); }
.revisions ul { margin: 0.5rem 0 0; padding-left: 1.2rem; color: var(--muted); line-height: 1.8; }

/* 兩案並列：以色標區分健保署（居整）與長照司（失能） */
:root { --plan-hh: #0e7490; --plan-dis: #7c3aed; --plan-hh-weak: #e0f2f7; --plan-dis-weak: #f0eafc; }
@media (prefers-color-scheme: dark) {
  :root { --plan-hh: #38bdf8; --plan-dis: #c4b5fd; --plan-hh-weak: #16303e; --plan-dis-weak: #241c3d; }
}
.plan-tag {
  margin: 0.9rem 0 0; padding: 0.3rem 0.7rem; display: inline-block;
  border-radius: 2rem; font-size: 0.8rem; font-weight: 600;
}
.plan-tag[data-plan="hh"] { background: var(--plan-hh-weak); color: var(--plan-hh); }
.plan-tag[data-plan="dis"] { background: var(--plan-dis-weak); color: var(--plan-dis); }
.plan-dot {
  display: inline-block; width: 0.55rem; height: 0.55rem; border-radius: 50%;
  margin-right: 0.45rem; vertical-align: baseline;
}
.plan-dot[data-plan="hh"] { background: var(--plan-hh); }
.plan-dot[data-plan="dis"] { background: var(--plan-dis); }

.plan-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); gap: 1rem; margin: 1.2rem 0; }
.plan-card {
  background: var(--card); border: 1px solid var(--border); border-top: 4px solid var(--border);
  border-radius: 0.7rem; padding: 0.9rem 1rem;
}
.plan-card[data-plan="hh"] { border-top-color: var(--plan-hh); }
.plan-card[data-plan="dis"] { border-top-color: var(--plan-dis); }
.plan-card h2 { margin: 0.2rem 0 0.3rem; font-size: 1.05rem; }
.plan-card[data-plan="hh"] h2 { color: var(--plan-hh); }
.plan-card[data-plan="dis"] h2 { color: var(--plan-dis); }
.plan-card-agency { margin: 0; font-size: 0.78rem; color: var(--muted); letter-spacing: 0.03em; }
.plan-card-short, .plan-card-ver { margin: 0.1rem 0 0; font-size: 0.82rem; color: var(--muted); }
.plan-card-go {
  margin-top: 0.7rem; padding: 0.3rem 0.8rem; font-size: 0.82rem; cursor: pointer;
  background: none; border: 1px solid var(--border); border-radius: 2rem; color: var(--text);
}
.plan-card-go:hover { border-color: var(--accent); color: var(--accent); }

.cmp-wrap { overflow-x: auto; margin: 0.8rem 0 1.5rem; }
.cmp-table { border-collapse: collapse; width: 100%; min-width: 46rem; font-size: 0.86rem; }
.cmp-table th, .cmp-table td {
  border: 1px solid var(--border); padding: 0.55rem 0.7rem; vertical-align: top; text-align: left;
  line-height: 1.75;
}
.cmp-table thead th { background: var(--bg); font-size: 0.9rem; position: sticky; top: 0; }
.cmp-table thead th[data-plan="hh"] { color: var(--plan-hh); border-top: 3px solid var(--plan-hh); }
.cmp-table thead th[data-plan="dis"] { color: var(--plan-dis); border-top: 3px solid var(--plan-dis); }
.cmp-agency { display: block; font-size: 0.72rem; color: var(--muted); font-weight: normal; }
.cmp-table tbody th { background: var(--bg); white-space: nowrap; font-size: 0.84rem; width: 8rem; }
.cmp-table .cmp-item { width: 8rem; }
.cmp-src { white-space: nowrap; font-size: 0.78rem; text-decoration: none; }
.cmp-src::before { content: "› "; }

.sec-h { font-size: 1rem; margin: 1.6rem 0 0.6rem; }
.link-list, .note-list { display: grid; gap: 0.7rem; }
.link-card, .note-card {
  border: 1px solid var(--border); border-radius: 0.6rem; padding: 0.7rem 0.9rem;
  background: var(--card); font-size: 0.86rem; line-height: 1.8;
}
.link-title { margin: 0 0 0.25rem; font-weight: 700; }
.link-text { margin: 0; }
.link-src { margin: 0.35rem 0 0; display: flex; gap: 0.8rem; flex-wrap: wrap; }
.note-card { border-left: 4px solid #d97706; background: #fffaf0; }
.note-card p { margin: 0; }
.note-title { font-weight: 700; color: #b45309; margin-bottom: 0.25rem !important; }
@media (prefers-color-scheme: dark) {
  .note-card { background: #2a2010; border-left-color: #f59e0b; }
  .note-title { color: #fcd34d; }
}
.qa-img {
  display: block; max-width: 100%; margin: 0.7rem 0 0;
  border: 1px solid var(--border); border-radius: 0.5rem;
}

/* 流程圖（SVG 由 scraper/build_flows.py 產生，樣式全部由此處控制以支援深色模式） */
.flow-fig { margin: 1.5rem 0 2.2rem; }
.flow-fig figcaption h2 { margin: 0 0 0.2rem; font-size: 1.02rem; }
.flow-fig[data-plan="hh"] figcaption h2 { color: var(--plan-hh); }
.flow-fig[data-plan="dis"] figcaption h2 { color: var(--plan-dis); }
.flow-sub { margin: 0; font-size: 0.84rem; color: var(--muted); }
.flow-legend { margin: 0.15rem 0 0; font-size: 0.8rem; color: var(--muted); font-style: italic; }
.flow-scroll {
  overflow-x: auto; margin-top: 0.7rem; padding: 0.3rem;
  border: 1px solid var(--border); border-radius: 0.7rem; background: var(--bg);
}
.flow-svg { display: block; width: 100%; min-width: 44rem; height: auto; }

.fl-box { stroke-width: 1.4; }
.fl-step { fill: var(--card); stroke: var(--border); }
.fl-start, .fl-end { fill: var(--accent-weak); stroke: var(--accent); }
.fl-decision { fill: var(--card); stroke: var(--accent); stroke-dasharray: none; }
.fl-fail { fill: #fdecec; stroke: #d97070; }
.fl-note { fill: var(--bg); stroke: var(--border); stroke-dasharray: 5 4; }
.fl-text { font-family: inherit; font-size: 13px; fill: var(--text); }
.fl-t-start, .fl-t-end { font-weight: 600; fill: var(--accent); }
.fl-t-decision { font-weight: 600; }
.fl-t-fail { fill: #a33a3a; }
.fl-t-note { fill: var(--muted); font-size: 12.5px; }
.fl-edge { fill: none; stroke: var(--muted); stroke-width: 1.6; }
.fl-edge-fail { stroke: #d97070; stroke-dasharray: 5 4; }
.fl-arrow { fill: var(--muted); }
.fl-arrow-f { fill: #d97070; }
.fl-label { font-family: inherit; font-size: 11.5px; fill: var(--muted); font-weight: 600; }
.fl-link { cursor: pointer; }
.fl-link:hover .fl-box { stroke: var(--accent); stroke-width: 2.4; }
@media (prefers-color-scheme: dark) {
  .fl-fail { fill: #3a1c1c; stroke: #a35d5d; }
  .fl-t-fail { fill: #f2b8b8; }
  .fl-edge-fail, .fl-arrow-f { stroke: #a35d5d; fill: #a35d5d; }
  .fl-arrow-f { fill: #a35d5d; }
}
@media print {
  .tabs, .toolbar, .site-footer { display: none; }
  .panel { display: block !important; }
  .flow-fig { break-inside: avoid; page-break-inside: avoid; }
  .flow-scroll { border: none; overflow: visible; }
}
.fl-tint-hh { stroke: var(--plan-hh); fill: var(--plan-hh-weak); }
.fl-tint-dis { stroke: var(--plan-dis); fill: var(--plan-dis-weak); }
.fl-tint-hh.fl-note, .fl-tint-dis.fl-note { fill: var(--bg); }
.fl-tt-hh { fill: var(--plan-hh); }
.fl-tt-dis { fill: var(--plan-dis); }
.fl-tt-hh.fl-t-note, .fl-tt-dis.fl-t-note { fill: var(--muted); }
