
/* ================= 設計代號（tokens） ================= */
:root{
  --fs:1;
  --c-primary:#1D6B5F;--c-primary-d:#164F47;--c-brand-ink:#1D6B5F;--c-primary-soft:#E4F1EC;
  --c-secondary:#0B4A6B;--c-secondary-soft:#E5EFF5;
  --c-accent:#C2410C;--c-accent-soft:#FBEADF;--c-highlight:#F2B544;
  --c-ink:#1F2B2B;--c-ink-2:#33403F;--c-muted:#5D6870;--c-border:#DCE5DD;--c-border-2:#C9D5CB;
  --c-bg:#F7F5EF;--c-surface:#FFFEFA;--c-surface-2:#F1EEE4;--c-glass:rgba(255,254,250,.82);
  --c-success:#2E7D32;--c-success-soft:#E8F5E9;--c-warning:#8A4B00;--c-warning-soft:#FFF4E0;--c-error:#B3261E;--c-error-soft:#FDECEA;
  --c-link:#1D6B5F;--c-focus:#F2B544;
  --shadow-1:0 1px 2px rgba(31,43,43,.05),0 1px 3px rgba(31,43,43,.06);
  --shadow-2:0 2px 6px rgba(31,43,43,.05),0 12px 32px -8px rgba(31,43,43,.14);
  --radius:12px;--radius-sm:8px;--radius-lg:20px;--radius-pill:999px;
  --font:"Noto Sans TC","PingFang TC","Microsoft JhengHei",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-serif:"Noto Serif TC","Source Han Serif TC","PMingLiU",Georgia,serif;
  --font-mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --lh:1.75;--ls:0;--btn-h:44px;--ease:cubic-bezier(.2,.8,.2,1);--dur:.32s;
  --appbar-h:64px;--bottombar-h:0px;--maxw:1240px;
  /* 插圖用色 */
  --il-sky1:#FDF3DF;--il-sky2:#E9F3EE;--il-sun:#F2B544;--il-sun2:#F7CF7A;--il-cloud:#FFFFFF;
  --il-hill1:#9CC9A9;--il-hill2:#C9E2CF;--il-hill3:#7DB592;--il-path:#EBD9B8;
  --il-wall:#FFF8EC;--il-wall-s:#F2E3C8;--il-roof:#D9673A;--il-roof-d:#B9532C;--il-door:#1D6B5F;--il-window:#FFD98A;--il-frame:#E9D3AE;
  --il-skin1:#E7B48C;--il-skin2:#C98D63;--il-skin3:#F0C8A4;--il-hijab:#2F8F7E;--il-dress:#F2B544;--il-shirt:#0B4A6B;--il-pants:#33403F;
  --il-hair:#2B2523;--il-case:#C2410C;--il-paper:#FFFFFF;--il-line:#1F2B2B;--il-leaf:#4E9A72;--il-heart:#E26D4F;--il-star:#FFFFFF;
  --il-badge:#FFFEFA;
}
html[data-theme="dark"]{
  --c-primary:#1F7A6B;--c-primary-d:#1D6B5F;--c-brand-ink:#7FD3C1;--c-primary-soft:#173A36;
  --c-secondary:#8FBCF2;--c-secondary-soft:#16273D;
  --c-accent:#F08A5D;--c-accent-soft:#3A2219;--c-highlight:#F2B544;
  --c-ink:#EEF2F8;--c-ink-2:#D6DEE8;--c-muted:#A7B3C2;--c-border:#2A3647;--c-border-2:#38475C;
  --c-bg:#0E1522;--c-surface:#17202F;--c-surface-2:#1D2839;--c-glass:rgba(17,25,38,.82);
  --c-success:#7CCB83;--c-success-soft:#183121;--c-warning:#F5C26B;--c-warning-soft:#33270F;--c-error:#F49B93;--c-error-soft:#3A1A19;
  --c-link:#8FBCF2;
  --shadow-1:0 1px 2px rgba(0,0,0,.3);--shadow-2:0 12px 32px -10px rgba(0,0,0,.55);
  --il-sky1:#1B2A45;--il-sky2:#203653;--il-sun:#F6E7B8;--il-sun2:#F6E7B8;--il-cloud:#2E4363;
  --il-hill1:#2E5B4F;--il-hill2:#254A45;--il-hill3:#21483C;--il-path:#4A4436;
  --il-wall:#E9DDC8;--il-wall-s:#C9B898;--il-roof:#B9532C;--il-roof-d:#933F21;--il-window:#FFC85A;--il-frame:#C7AE85;
  --il-paper:#E9EEF6;--il-line:#0E1522;--il-badge:#1D2839;--il-star:#FFF5D6;
}
html[data-hc="1"]{
  --c-bg:#10212C;--c-surface:#0B1820;--c-surface-2:#14293A;--c-ink:#E8F1F5;--c-ink-2:#E8F1F5;--c-muted:#C9D7DF;
  --c-border:#6F8B9B;--c-border-2:#9BB3C1;--c-link:#F2B544;--c-brand-ink:#F2B544;--c-primary:#F2B544;--c-primary-d:#FFD27A;
  --c-primary-soft:#1F3443;--c-secondary:#9FD0FF;--c-secondary-soft:#1A3142;--c-accent:#FFB38A;--c-accent-soft:#3A2A20;
  --c-success:#9BE3A0;--c-success-soft:#173322;--c-warning:#FFD27A;--c-warning-soft:#33290F;--c-glass:rgba(11,24,32,.95);
  --shadow-1:none;--shadow-2:0 0 0 2px #6F8B9B;
}
html[data-lh="relaxed"]{--lh:1.9}
html[data-lh="loose"]{--lh:2.1}
html[data-ls="1"]{--ls:.06em}
html[data-fm="1"]{--btn-h:48px}

/* ================= 基礎 ================= */
*,*::before,*::after{box-sizing:border-box}
html{font-size:calc(16px * var(--fs));-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--appbar-h) + 16px)}
body{margin:0;background:var(--c-bg);color:var(--c-ink);font-family:var(--font);line-height:var(--lh);letter-spacing:var(--ls);
  font-feature-settings:"palt" 0;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;
  padding-bottom:calc(var(--bottombar-h) + env(safe-area-inset-bottom));transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease)}
h1,h2,h3,h4{line-height:1.35;margin:0;font-weight:700;letter-spacing:calc(var(--ls) + .01em)}
p{margin:0}
a{color:var(--c-link);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
html[data-ul="1"] main a:not(.btn):not(.entry),html[data-ul="1"] .site-foot a{text-decoration:underline!important;text-decoration-thickness:2px!important}
:focus-visible{outline:3px solid var(--c-focus);outline-offset:3px;border-radius:6px}
html[data-fx="1"] :focus-visible{outline-width:4px;outline-offset:4px;box-shadow:0 0 0 8px rgba(242,181,68,.35)}
button{font:inherit;color:inherit;letter-spacing:inherit}
img,svg{display:block}
.i{width:1.25em;height:1.25em;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.i .d{fill:currentColor;fill-opacity:.16;stroke:none}
.i .f{fill:currentColor;stroke:none}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;left:12px;top:-80px;z-index:200;background:var(--c-surface);color:var(--c-ink);padding:10px 16px;border-radius:var(--radius);transition:top .2s}
.skip:focus{top:12px;box-shadow:var(--shadow-2)}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(16px,4vw,32px)}

/* ================= 頂部列 ================= */
.appbar{position:sticky;top:0;z-index:50;height:var(--appbar-h);background:var(--c-glass);
  -webkit-backdrop-filter:saturate(1.6) blur(14px);backdrop-filter:saturate(1.6) blur(14px);border-bottom:1px solid var(--c-border)}
.appbar .wrap{height:100%;display:flex;align-items:center;gap:16px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--c-ink);min-width:0;flex:none}
.brand-mark{width:38px;height:38px;flex:none}
.brand b{display:block;font-size:1rem;line-height:1.25;white-space:nowrap}
.brand .short{display:none}
.brand small{display:block;font-size:.72rem;color:var(--c-muted);line-height:1.2;letter-spacing:.08em;white-space:nowrap}
.tabs{display:flex;gap:2px;margin-left:auto;position:relative;padding:4px;background:var(--c-surface-2);border-radius:var(--radius-pill);border:1px solid var(--c-border)}
.tab{position:relative;z-index:1;display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border:0;border-radius:var(--radius-pill);
  background:transparent;color:var(--c-muted);font-size:.9rem;font-weight:600;cursor:pointer;text-decoration:none;white-space:nowrap;transition:color .2s}
.tab:hover{color:var(--c-ink)}
.tab[aria-current="page"]{color:var(--c-brand-ink)}
.tab .i{width:1.05em;height:1.05em}
.tab-ink{position:absolute;z-index:0;top:4px;left:0;height:36px;border-radius:var(--radius-pill);background:var(--c-surface);box-shadow:var(--shadow-1);
  transition:transform .38s var(--ease),width .38s var(--ease);pointer-events:none}
.actions{display:flex;gap:6px;flex:none}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:var(--btn-h);height:var(--btn-h);padding:0 12px;border-radius:var(--radius-pill);
  border:1px solid var(--c-border);background:var(--c-surface);color:var(--c-ink);cursor:pointer;font-size:.88rem;font-weight:600;transition:background .2s,border-color .2s,transform .15s}
.icon-btn:hover{border-color:var(--c-border-2);background:var(--c-surface-2)}
.icon-btn:active{transform:scale(.96)}
.icon-btn.fm-btn{background:var(--c-primary-soft);border-color:transparent;color:var(--c-brand-ink)}
html[data-fm="1"] .icon-btn.fm-btn{background:var(--c-primary);color:#fff}
html[data-hc="1"][data-fm="1"] .icon-btn.fm-btn{color:#10212C}
.theme-btn .moon{display:none}
html[data-theme="dark"] .theme-btn .sun{display:none}
html[data-theme="dark"] .theme-btn .moon{display:block}

/* 平板：分頁移到第二列，可橫向滑動 */
.subtabs{display:none}
/* 平板／大字級：分頁移到第二列（html.cn 由腳本依寬度與字級設定） */
html.cn .appbar .tabs{display:none}
html.cn .actions{margin-left:auto}
html.cn .subtabs{display:block;position:sticky;top:var(--appbar-h);z-index:45;background:var(--c-glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--c-border)}
html.cn .subtabs .tabs{display:flex;margin:0;overflow-x:auto;scrollbar-width:none;background:transparent;border:0;padding:8px 0;gap:6px}
html.cn .subtabs .tabs::-webkit-scrollbar{display:none}
html.cn .subtabs .tab{background:var(--c-surface);border:1px solid var(--c-border);height:38px}
html.cn .subtabs .tab[aria-current="page"]{background:var(--c-primary);border-color:var(--c-primary);color:#fff}
html.cn[data-hc="1"] .subtabs .tab[aria-current="page"]{color:#10212C}
html.cn .subtabs .tab-ink{display:none}
html.cn{scroll-padding-top:calc(var(--appbar-h) + 72px)}
/* 手機：底部分頁列 */
.bottombar{display:none}
@media (max-width:639px){
  :root{--appbar-h:58px;--bottombar-h:68px}
  .subtabs{display:none}
  .appbar .tabs{display:none}
  .actions{margin-left:auto}
  .brand small{display:none}
  .brand .full{display:none}.brand .short{display:inline}
  .icon-btn{padding:0 10px}
  .brand b{font-size:15px}
  .icon-btn{font-size:14px}
  .bb{font-size:11px}
  .brand-mark{width:34px;height:34px}
  .icon-btn .lbl-md{display:none}
  .bottombar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;z-index:60;left:0;right:0;bottom:0;height:calc(var(--bottombar-h) + env(safe-area-inset-bottom));
    padding:6px 6px env(safe-area-inset-bottom);background:var(--c-glass);-webkit-backdrop-filter:saturate(1.6) blur(16px);backdrop-filter:saturate(1.6) blur(16px);border-top:1px solid var(--c-border)}
  .bb{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:0;background:none;color:var(--c-muted);font-size:.7rem;font-weight:600;cursor:pointer;border-radius:14px;text-decoration:none;position:relative}
  .bb .pill-ic{display:flex;align-items:center;justify-content:center;width:52px;height:30px;border-radius:var(--radius-pill);transition:background .25s var(--ease)}
  .bb .i{width:22px;height:22px}
  .bb[aria-current="page"]{color:var(--c-brand-ink)}
  .bb[aria-current="page"] .pill-ic{background:var(--c-primary-soft)}
  html{scroll-padding-top:calc(var(--appbar-h) + 16px)}
}

/* ================= 版面與分頁切換 ================= */
main{display:block;min-height:60vh}
.view{display:none;padding-top:28px;padding-bottom:56px}
.view.is-active{display:block;animation:viewIn .42s var(--ease) both}
html[data-v="home"] #v-home,html[data-v="data"] #v-data,html[data-v="db"] #v-db,html[data-v="timeline"] #v-timeline,html[data-v="policy"] #v-policy,html[data-v="topics"] #v-topics,html[data-v="sources"] #v-sources{display:block}
@keyframes viewIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
::view-transition-old(root){animation:vtOut .18s ease both}
::view-transition-new(root){animation:vtIn .32s var(--ease) both}
@keyframes vtOut{to{opacity:0}}
@keyframes vtIn{from{opacity:0;transform:translateY(8px)}}
html[data-rm="1"] *,html[data-rm="1"] *::before,html[data-rm="1"] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}

.view-head{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;margin-bottom:24px}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:.74rem;font-weight:700;letter-spacing:.14em;color:var(--c-brand-ink);text-transform:uppercase}
.eyebrow::before{content:"";width:18px;height:2px;border-radius:2px;background:currentColor}
.view-head h1{font-size:clamp(1.55rem,3.2vw,2rem);margin:6px 0 8px}
.view-head p{color:var(--c-muted);max-width:40em}
.view-art{width:132px;height:104px}
@media (max-width:639px){.view-head{grid-template-columns:1fr;gap:4px}.view-art{order:-1;width:88px;height:68px;margin-bottom:-4px}}

/* ================= 首頁主視覺 ================= */
.hero{position:relative;display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(20px,4vw,48px);align-items:center;padding:12px 0 8px}
.hero h1{font-family:var(--font-serif);font-size:clamp(2rem,5.2vw,3.35rem);line-height:1.25;letter-spacing:.02em;margin:14px 0 16px}
.hero h1 em{font-style:normal;color:var(--c-brand-ink);position:relative;white-space:nowrap}
.hero h1 em::after{content:"";position:absolute;left:-2%;right:-2%;bottom:.06em;height:.32em;background:var(--c-highlight);opacity:.35;border-radius:4px;z-index:-1}
.hero .lead{font-size:1.06rem;color:var(--c-ink-2);max-width:34em}
.qchips{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 0}
.qchip{display:inline-flex;align-items:center;gap:7px;padding:7px 13px 7px 9px;border-radius:var(--radius-pill);background:var(--c-surface);border:1px solid var(--c-border);font-size:.86rem;font-weight:600;color:var(--c-ink-2)}
.qchip span{display:inline-flex;width:26px;height:26px;border-radius:50%;align-items:center;justify-content:center}
.qchip:nth-child(1) span{background:var(--c-primary-soft);color:var(--c-brand-ink)}
.qchip:nth-child(2) span{background:var(--c-accent-soft);color:var(--c-accent)}
.qchip:nth-child(3) span{background:var(--c-warning-soft);color:var(--c-warning)}
.qchip:nth-child(4) span{background:var(--c-secondary-soft);color:var(--c-secondary)}
.cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--btn-h);padding:0 20px;border-radius:var(--radius);border:1px solid var(--c-border-2);
  background:var(--c-surface);color:var(--c-ink);font-weight:700;font-size:.95rem;text-decoration:none;cursor:pointer;transition:background .2s,transform .15s,box-shadow .2s,border-color .2s}
.btn:hover{background:var(--c-surface-2)}
.btn:active{transform:translateY(1px) scale(.99)}
.btn-primary{background:var(--c-primary);border-color:var(--c-primary);color:#fff;box-shadow:0 6px 16px -6px rgba(29,107,95,.55)}
.btn-primary:hover{background:var(--c-primary-d);border-color:var(--c-primary-d)}
html[data-hc="1"] .btn-primary{color:#10212C}
.btn-outline{border-color:var(--c-primary);color:var(--c-brand-ink);background:transparent}
.btn-sm{min-height:36px;padding:0 14px;font-size:.85rem;border-radius:var(--radius-sm)}
html[data-fm="1"] .btn-sm{min-height:44px}
.hero-meta{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:22px;font-size:.82rem;color:var(--c-muted)}
.hero-meta span{display:inline-flex;align-items:center;gap:6px}
.hero-meta .i{width:1em;height:1em;color:var(--c-brand-ink)}
.hero-art{position:relative;width:100%;max-width:560px;justify-self:end;aspect-ratio:520/420}
.hero-art svg{width:100%;height:100%;overflow:visible}
@media (max-width:899px){.hero{grid-template-columns:1fr}.hero-art{order:-1;max-width:440px;justify-self:center;margin:-6px 0 -10px}}
@media (max-width:639px){.hero-art{max-width:340px}.hero .lead{font-size:1rem}}

/* 插圖動態 */
html.anim .float-a{animation:floatY 6s ease-in-out infinite}
html.anim .float-b{animation:floatY 7.5s ease-in-out -2s infinite}
html.anim .float-c{animation:floatY 5.5s ease-in-out -1s infinite}
@keyframes floatY{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
html.anim .drift{animation:drift 26s linear infinite}
@keyframes drift{from{transform:translateX(-20px)}50%{transform:translateX(24px)}to{transform:translateX(-20px)}}
.spin-slow{transform-origin:404px 104px}
html.anim .spin-slow{animation:spin 60s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
html.anim .glow{animation:glow 4s ease-in-out infinite}
html.anim .bulbs circle{animation:twinkle 2.4s ease-in-out infinite}
.bulbs circle:nth-child(2n){animation-delay:-1.2s}
@keyframes twinkle{50%{opacity:.45}}
html[data-theme="dark"] .bulbs circle{filter:drop-shadow(0 0 4px currentColor)}
@keyframes glow{50%{opacity:.55}}
.plane-path{stroke-dasharray:4 7}
html.anim .plane-path{animation:dash 18s linear infinite}
@keyframes dash{to{stroke-dashoffset:-220}}
.night{opacity:0;transition:opacity .4s}
html[data-theme="dark"] .night{opacity:1}
html[data-theme="dark"] .day{opacity:0}
.day{transition:opacity .4s}

/* ================= 卡片／統計 ================= */
.card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-1)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:34px 0 0}
.stat{padding:20px 20px 18px;position:relative;overflow:hidden}
.stat .ic{width:42px;height:42px;border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.stat .ic .i{width:24px;height:24px}
.stat strong{display:flex;align-items:baseline;gap:4px;font-size:2rem;line-height:1.1;font-family:var(--font-mono);font-weight:700;color:var(--c-ink);letter-spacing:-.02em}
.stat strong small{font-family:var(--font);font-size:.95rem;font-weight:600;color:var(--c-muted);letter-spacing:0}
.stat p{margin-top:6px;font-weight:600;font-size:.92rem}
.stat .note{display:flex;align-items:flex-start;gap:5px;margin-top:10px;padding-top:10px;border-top:1px dashed var(--c-border);font-size:.76rem;color:var(--c-muted);line-height:1.55}
.stat .note .i{width:.95em;height:.95em;margin-top:.2em}
.stat::after{content:"";position:absolute;right:-26px;top:-26px;width:96px;height:96px;border-radius:50%;opacity:.5}
.t-green .ic{background:var(--c-primary-soft);color:var(--c-brand-ink)}.t-green::after{background:var(--c-primary-soft)}
.t-orange .ic{background:var(--c-accent-soft);color:var(--c-accent)}.t-orange::after{background:var(--c-accent-soft)}
.t-blue .ic{background:var(--c-secondary-soft);color:var(--c-secondary)}.t-blue::after{background:var(--c-secondary-soft)}
.t-gold .ic{background:var(--c-warning-soft);color:var(--c-warning)}.t-gold::after{background:var(--c-warning-soft)}
.stat strong.pending{font-family:var(--font);font-size:1.5rem;color:var(--c-warning)}
@media (max-width:899px){.stats{grid-template-columns:repeat(2,1fr)}}
@media (max-width:420px){.stat{padding:16px}.stat strong{font-size:1.6rem}.stats{gap:10px}}

.section{margin-top:44px}
.sec-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.sec-title h2{font-size:1.28rem;display:flex;align-items:center;gap:10px}
.sec-title h2 .i{color:var(--c-brand-ink)}
.sec-title p{color:var(--c-muted);font-size:.9rem;width:100%}

/* 入口卡 */
.entries{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
@media (max-width:1179px){.entries{grid-template-columns:repeat(3,1fr)}}
.entry{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:18px;text-decoration:none;color:inherit;cursor:pointer;text-align:left;width:100%;font:inherit;
  transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s}
.entry:hover{transform:translateY(-3px);box-shadow:var(--shadow-2);border-color:var(--c-border-2)}
.entry .badge{width:52px;height:52px;border-radius:16px;display:flex;align-items:center;justify-content:center}
.entry .badge .i{width:28px;height:28px}
.entry b{display:block;font-size:1rem}
.entry span.s{display:block;font-size:.83rem;color:var(--c-muted);line-height:1.5;margin-top:2px}
.entry .go{color:var(--c-muted);transition:transform .25s var(--ease)}
.entry:hover .go{transform:translateX(4px);color:var(--c-brand-ink)}
@media (max-width:899px){.entries{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.entries{grid-template-columns:1fr}.entry{padding:14px}}

/* 提醒 */
.notice{display:flex;gap:14px;padding:16px 18px;border-radius:var(--radius);background:var(--c-secondary-soft);border:1px solid color-mix(in srgb,var(--c-secondary) 25%,transparent);color:var(--c-ink-2);font-size:.92rem}
.notice .i{color:var(--c-secondary);width:22px;height:22px;margin-top:2px}
.notice b{color:var(--c-ink)}
.notice.warm{background:var(--c-warning-soft);border-color:color-mix(in srgb,var(--c-warning) 25%,transparent)}
.notice.warm .i{color:var(--c-warning)}

/* ================= 收合（文章） ================= */
.fold-tools{display:flex;gap:6px}
.folds{display:grid;gap:10px}
details.fold{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);overflow:hidden;transition:border-color .2s,box-shadow .2s}
details.fold[open]{border-color:var(--c-border-2);box-shadow:var(--shadow-1)}
details.fold>summary{list-style:none;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:14px 16px;cursor:pointer;min-height:var(--btn-h);user-select:none}
details.fold>summary::-webkit-details-marker{display:none}
details.fold>summary:hover{background:var(--c-surface-2)}
.fold .num{width:34px;height:34px;border-radius:11px;display:flex;align-items:center;justify-content:center;background:var(--c-primary-soft);color:var(--c-brand-ink);font-weight:700;font-size:.9rem}
.fold .num .i{width:20px;height:20px}
.fold .ttl b{display:block;font-size:.98rem}
.fold .ttl small{display:block;color:var(--c-muted);font-size:.8rem;line-height:1.45}
.fold .chev{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--c-surface-2);color:var(--c-muted);transition:transform .35s var(--ease),background .2s}
details.fold[open] .chev{transform:rotate(180deg);background:var(--c-primary-soft);color:var(--c-brand-ink)}
.fold .body{padding:0 18px 18px 62px;color:var(--c-ink-2);font-size:.94rem}
.fold .body p+p{margin-top:10px}
.fold .body ul,.fold .body ol{margin:8px 0 0;padding-left:1.2em}
.fold .body li+li{margin-top:6px}
@media (max-width:560px){.fold .body{padding:0 16px 16px 16px}}

/* 標籤 */
.tag{display:inline-flex;align-items:center;gap:5px;padding:2px 10px;border-radius:var(--radius-pill);font-size:.75rem;font-weight:700;line-height:1.7;background:var(--c-secondary-soft);color:var(--c-secondary);white-space:nowrap}
.tag::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.8}
.tag.green{background:var(--c-success-soft);color:var(--c-success)}
.tag.amber{background:var(--c-warning-soft);color:var(--c-warning)}
.tag.gray{background:var(--c-surface-2);color:var(--c-muted)}
.tag.orange{background:var(--c-accent-soft);color:var(--c-accent)}
html:not([data-theme="dark"]):not([data-hc="1"]) .tag.orange{color:#9A330A}

/* 兩欄面板 */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:899px){.grid-2{grid-template-columns:1fr}}
.panel{padding:22px}
.panel h3{font-size:1.06rem;margin:10px 0 8px}
.panel p{color:var(--c-ink-2);font-size:.93rem}
.panel p+p{margin-top:8px}
.panel .src{display:inline-flex;align-items:center;gap:5px;margin-top:12px;font-size:.88rem;font-weight:600}
.panel .src .i{width:1em;height:1em}
.panel small.muted{display:block;margin-top:10px;font-size:.78rem;color:var(--c-muted)}

/* 條狀圖 */
.bars{display:grid;gap:12px;margin:8px 0 12px}
.bar-row{display:grid;grid-template-columns:7.5em 1fr;gap:12px;align-items:center;font-size:.86rem}
.track{height:28px;border-radius:9px;background:var(--c-surface-2);overflow:hidden}
.fill{height:100%;border-radius:9px;display:flex;align-items:center;padding-left:10px;color:#fff;font-size:.8rem;font-weight:700;white-space:nowrap;
  background:linear-gradient(90deg,var(--c-primary),color-mix(in srgb,var(--c-primary) 70%,#4FB39E));transform-origin:left;animation:grow 1s var(--ease) both}
.fill.b2{background:linear-gradient(90deg,var(--c-accent),#E07A45)}
html[data-hc="1"] .fill{color:#10212C}
@keyframes grow{from{transform:scaleX(0)}}

/* ================= 資料庫 ================= */
.toolbar{position:sticky;top:calc(var(--appbar-h) + 8px);z-index:20;display:grid;grid-template-columns:1fr auto;gap:10px;padding:12px;margin-bottom:14px;
  background:var(--c-glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
html.cn .toolbar{top:calc(var(--appbar-h) + 64px)}
.searchbox{position:relative}
.searchbox .i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--c-muted)}
.searchbox input{width:100%;height:var(--btn-h);padding:0 14px 0 42px;border-radius:var(--radius);border:1px solid var(--c-border-2);background:var(--c-surface);color:var(--c-ink);font:inherit;font-size:.95rem}
.searchbox input::placeholder{color:var(--c-muted)}
input[type=search]::-webkit-search-cancel-button{filter:grayscale(1);opacity:.6;cursor:pointer}
select.sel{height:var(--btn-h);padding:0 34px 0 12px;border-radius:var(--radius);border:1px solid var(--c-border-2);background:var(--c-surface);color:var(--c-ink);font:inherit;font-size:.9rem;appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 17px) 52%,calc(100% - 12px) 52%;background-size:5px 5px;background-repeat:no-repeat}
.chips{grid-column:1/-1;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.chip{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 13px;border-radius:var(--radius-pill);border:1px solid var(--c-border-2);background:var(--c-surface);color:var(--c-ink-2);font-size:.84rem;font-weight:600;cursor:pointer;transition:all .2s}
html[data-fm="1"] .chip{height:44px}
.chip[aria-pressed="true"]{background:var(--c-primary);border-color:var(--c-primary);color:#fff}
html[data-hc="1"] .chip[aria-pressed="true"]{color:#10212C}
.chip .n{font-family:var(--font-mono);font-size:.75rem}
.chips .spacer{flex:1}
.count{font-size:.86rem;color:var(--c-muted);margin:4px 2px 12px}
.org-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media (max-width:1079px){.org-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:639px){.org-grid{grid-template-columns:1fr}.toolbar{grid-template-columns:1fr;top:calc(var(--appbar-h) + 6px)}.toolbar select{width:100%}}
.org{display:flex;flex-direction:column;padding:18px;gap:10px;animation:viewIn .4s var(--ease) both}
.org .top{display:flex;gap:12px;align-items:flex-start}
.org .av{width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex:none}
.org .av .i{width:24px;height:24px}
.org .av.government{background:var(--c-secondary-soft);color:var(--c-secondary)}
.org .av.shelter{background:var(--c-primary-soft);color:var(--c-brand-ink)}
.org .av.education{background:var(--c-accent-soft);color:var(--c-accent)}
.org h3{font-size:1rem;line-height:1.45}
.org .scope{font-size:.8rem;color:var(--c-muted);margin-top:2px}
.org .meta{display:flex;gap:6px;flex-wrap:wrap}
.org .desc{font-size:.9rem;color:var(--c-ink-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.org.open .desc{-webkit-line-clamp:unset;display:block}
.org .more{display:none;font-size:.82rem;color:var(--c-muted);padding:10px 12px;border-radius:var(--radius-sm);background:var(--c-surface-2)}
.org.open .more{display:block}
.org .foot{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:10px;border-top:1px solid var(--c-border)}
.linkbtn{display:inline-flex;align-items:center;gap:5px;border:0;background:none;padding:6px 0;color:var(--c-link);font-size:.85rem;font-weight:600;cursor:pointer;text-decoration:none;min-height:36px}
.linkbtn .i{width:1em;height:1em;transition:transform .3s var(--ease)}
.org.open .toggle .i{transform:rotate(180deg)}
.empty{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:36px 20px;color:var(--c-muted)}
.empty>svg{width:150px;height:110px}

/* ================= 時間軸 ================= */
.tl{position:relative;display:grid;gap:16px;padding-left:34px;margin-top:6px}
.tl::before{content:"";position:absolute;left:12px;top:8px;bottom:8px;width:2px;border-radius:2px;background:linear-gradient(var(--c-primary),var(--c-highlight),var(--c-border))}
.ev{position:relative;padding:18px 20px}
.ev .dot{position:absolute;left:-34px;top:20px;width:26px;height:26px;border-radius:50%;background:var(--c-surface);border:2px solid var(--c-primary);display:flex;align-items:center;justify-content:center;color:var(--c-brand-ink)}
.ev .dot .i{width:14px;height:14px}
.ev.future .dot{border-style:dashed;border-color:var(--c-muted);color:var(--c-muted)}
.ev time{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-weight:700;font-size:.82rem;color:var(--c-brand-ink)}
.ev h3{font-size:1.05rem;margin:4px 0 6px}
.ev p{font-size:.92rem;color:var(--c-ink-2)}
.ev .foot{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin-top:10px}
.tl-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:18px;align-items:start}
@media (max-width:899px){.tl-grid{grid-template-columns:1fr}}
.side{padding:20px;position:sticky;top:calc(var(--appbar-h) + 20px)}
.side h3{font-size:1rem;margin-bottom:10px;display:flex;gap:8px;align-items:center}
.legend{display:grid;gap:10px;font-size:.88rem}
.legend div{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start}
.mini-map{width:100%;max-width:220px;margin:6px auto 12px}

/* ================= 表格 ================= */
.table-wrap{overflow-x:auto;border:1px solid var(--c-border);border-radius:var(--radius);background:var(--c-surface)}
table{width:100%;border-collapse:collapse;font-size:.9rem;min-width:620px}
th,td{text-align:left;vertical-align:top;padding:13px 16px;border-bottom:1px solid var(--c-border)}
th{background:var(--c-surface-2);font-size:.82rem;color:var(--c-muted);font-weight:700;letter-spacing:.04em}
tr:last-child td{border-bottom:0}
td:first-child{font-weight:600;white-space:nowrap}
@media (max-width:639px){
  table{min-width:0}thead{display:none}tr{display:block;padding:12px 14px;border-bottom:1px solid var(--c-border)}tr:last-child{border-bottom:0}
  td{display:block;padding:3px 0;border:0}td::before{content:attr(data-th)"：";color:var(--c-muted);font-size:.78rem;font-weight:600}td:first-child::before{content:none}
}

/* ================= 來源 ================= */
.src-list{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:899px){.src-list{grid-template-columns:1fr}}
.source{display:grid;grid-template-columns:auto 1fr;gap:14px;padding:16px 18px;align-items:start}
.source .sid{font-family:var(--font-mono);font-size:.76rem;font-weight:700;padding:4px 8px;border-radius:8px;background:var(--c-primary-soft);color:var(--c-brand-ink)}
.source b{display:block;font-size:.95rem;line-height:1.5}
.source .sd{font-size:.84rem;color:var(--c-muted);margin-top:4px}
.source a{display:inline-flex;align-items:center;gap:5px;font-size:.84rem;font-weight:600;margin-top:8px}
.source a .i{width:1em;height:1em}

/* ================= 頁尾 ================= */
.site-foot{margin-top:24px;background:var(--c-surface);border-top:1px solid var(--c-border)}
.foot-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 24px;padding:14px 0;border-bottom:1px solid var(--c-border);font-size:14px;color:var(--c-muted)}
html[data-fm="1"] .foot-meta{font-size:16px}
.foot-meta span{display:inline-flex;align-items:center;gap:7px}
.foot-meta .i{width:1.05em;height:1.05em;color:var(--c-brand-ink)}
.foot-meta .num{font-family:var(--font-mono);font-weight:600;color:var(--c-brand-ink)}
.visits[hidden]{display:none!important}
.foot-main{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:24px;padding:28px 0 32px;font-size:.88rem;color:var(--c-muted)}
.foot-main b{color:var(--c-ink);display:block;margin-bottom:8px;font-size:.95rem}
.foot-main a,.foot-main button.lk{display:block;color:var(--c-ink-2);text-decoration:none;padding:3px 0;background:none;border:0;cursor:pointer;font:inherit;text-align:left}
.foot-main a:hover,.foot-main button.lk:hover{color:var(--c-brand-ink);text-decoration:underline}
@media (max-width:767px){.foot-main{grid-template-columns:1fr 1fr}.foot-main>div:first-child{grid-column:1/-1}}

/* ================= 設定面板（友善模式細部設定） ================= */
dialog.sheet{border:0;padding:0;margin:0 0 0 auto;height:100dvh;max-height:100dvh;width:min(420px,100vw);background:var(--c-surface);color:var(--c-ink);box-shadow:-20px 0 60px -20px rgba(0,0,0,.35)}
dialog.sheet[open]{animation:slideIn .38s var(--ease) both}
dialog.sheet::backdrop{background:rgba(14,21,34,.42);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade .3s both}
@keyframes slideIn{from{transform:translateX(40px);opacity:0}}
@keyframes slideUp{from{transform:translateY(40px);opacity:0}}
@keyframes fade{from{opacity:0}}
@media (max-width:639px){
  dialog.sheet{margin:auto 0 0;width:100vw;max-width:100vw;height:auto;max-height:88dvh;border-radius:22px 22px 0 0}
  dialog.sheet[open]{animation-name:slideUp}
}
.sheet-in{display:flex;flex-direction:column;height:100%;max-height:inherit}
.sheet-head{display:flex;align-items:center;gap:12px;padding:18px 20px;border-bottom:1px solid var(--c-border)}
.sheet-head .grab{display:none}
@media (max-width:639px){.sheet-head{position:relative;padding-top:24px}.sheet-head .grab{display:block;position:absolute;top:9px;left:50%;width:42px;height:5px;margin-left:-21px;border-radius:5px;background:var(--c-border-2)}}
.sheet-head h2{font-size:1.1rem}
.sheet-head p{font-size:.8rem;color:var(--c-muted)}
.sheet-head .close{margin-left:auto}
.sheet-body{overflow-y:auto;padding:8px 20px 20px;overscroll-behavior:contain}
.sheet-foot{display:flex;gap:10px;padding:14px 20px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--c-border)}
.sheet-foot .btn{flex:1}
.grp{padding:16px 0;border-bottom:1px dashed var(--c-border)}
.grp:last-child{border-bottom:0}
.grp>h3{font-size:.78rem;letter-spacing:.12em;color:var(--c-muted);margin-bottom:10px;font-weight:700}
.master{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:16px;border-radius:var(--radius);background:var(--c-primary-soft)}
.master .ic{width:44px;height:44px;border-radius:14px;background:var(--c-surface);color:var(--c-brand-ink);display:flex;align-items:center;justify-content:center}
.master b{display:block}
.master small{display:block;font-size:.8rem;color:var(--c-muted);line-height:1.45}
.seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;padding:4px;border-radius:var(--radius);background:var(--c-surface-2);border:1px solid var(--c-border)}
.seg button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:40px;border:0;border-radius:9px;background:transparent;color:var(--c-muted);font-size:.86rem;font-weight:600;cursor:pointer;transition:all .2s}
html[data-fm="1"] .seg button{min-height:48px}
.seg button[aria-checked="true"]{background:var(--c-surface);color:var(--c-brand-ink);box-shadow:var(--shadow-1)}
html[data-hc="1"] .seg button[aria-checked="true"]{outline:2px solid var(--c-primary)}
.seg .i{width:1.05em;height:1.05em}
.seg .aa{font-family:var(--font-serif);font-weight:700}
.row{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:10px 0}
.row .ri{width:36px;height:36px;border-radius:11px;background:var(--c-surface-2);color:var(--c-ink-2);display:flex;align-items:center;justify-content:center}
.row .ri .i{width:20px;height:20px}
.row b{display:block;font-size:.93rem}
.row small{display:block;font-size:.78rem;color:var(--c-muted);line-height:1.45}
.sw{position:relative;width:50px;height:30px;flex:none;border-radius:30px;border:0;background:var(--c-border-2);cursor:pointer;transition:background .25s}
.sw::after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .3s var(--ease)}
.sw[aria-checked="true"]{background:var(--c-primary)}
.sw[aria-checked="true"]::after{transform:translateX(20px)}
.preview{margin-top:10px;padding:14px 16px;border-radius:var(--radius);border:1px dashed var(--c-border-2);background:var(--c-bg);font-size:.95rem}
.preview b{color:var(--c-brand-ink)}

/* 更多選單（手機） */
.more-list{display:grid;gap:8px;padding:12px 0}
.more-list button,.more-list a{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:14px;border-radius:var(--radius);border:1px solid var(--c-border);background:var(--c-surface);color:var(--c-ink);text-decoration:none;font:inherit;text-align:left;cursor:pointer}
.more-list .badge{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center}
.more-list small{display:block;color:var(--c-muted);font-size:.8rem}

/* 吐司訊息 */
.toast{position:fixed;left:50%;bottom:calc(24px + var(--bottombar-h) + env(safe-area-inset-bottom));z-index:300;transform:translate(-50%,20px);opacity:0;pointer-events:none;
  display:flex;align-items:center;gap:8px;padding:10px 16px;border-radius:var(--radius-pill);background:var(--c-ink);color:var(--c-bg);font-size:.88rem;font-weight:600;box-shadow:var(--shadow-2);transition:all .3s var(--ease)}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* 回到頂端 */
.totop{position:fixed;right:18px;bottom:calc(18px + var(--bottombar-h) + env(safe-area-inset-bottom));z-index:40;opacity:0;transform:translateY(10px);pointer-events:none;transition:all .3s var(--ease);box-shadow:var(--shadow-2)}
.totop.show{opacity:1;transform:none;pointer-events:auto}

/* 渲染效能：未顯示的分頁略過排版 */
.cv{content-visibility:auto;contain-intrinsic-size:auto 600px}


/* ================= 數據分析（圖表） ================= */
:root{--s1:#13846D;--s2:#D45F28;--s3:#3473BD;--s0:#A3ACB4;--grid:#E6E9E3;--axis:#5D6870}
html[data-theme="dark"],html[data-hc="1"]{--s1:#24A086;--s2:#E2703A;--s3:#4D8FD8;--s0:#5E6B7A;--grid:#2A3647;--axis:#A7B3C2}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,14.5rem),1fr));gap:14px}
.kpi{min-width:0;overflow-wrap:anywhere}
.kpi{padding:18px 20px}
.kpi .lb{font-size:.84rem;color:var(--c-muted);display:flex;align-items:center;gap:6px}
.kpi .lb .i{width:1.05em;height:1.05em;color:var(--c-brand-ink)}
.kpi .v{display:block;font-size:clamp(1.5rem,3vw,2rem);font-weight:700;line-height:1.2;margin:8px 0 4px;letter-spacing:-.01em}
.kpi .v small{font-size:.9rem;font-weight:600;color:var(--c-muted);margin-left:2px}
.kpi .d{font-size:.8rem;color:var(--c-muted)}
.kpi .d b{color:var(--c-ink);font-weight:600}
.spark{display:block;width:100%;height:34px;margin-top:10px}
.charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}
.charts .wide{grid-column:1/-1}
@media (max-width:899px){.charts{grid-template-columns:minmax(0,1fr)}}
.chart-card{padding:20px 20px 14px;min-width:0}
.chart-card h2{font-size:1.06rem;line-height:1.45}
.chart-card .sub{font-size:.84rem;color:var(--c-muted);margin-top:4px}
.legend-row{display:flex;flex-wrap:wrap;gap:6px 16px;margin:12px 0 4px;font-size:.82rem;color:var(--c-ink-2)}
.legend-row span{display:inline-flex;align-items:center;gap:6px}
.legend-row i{width:12px;height:12px;border-radius:3px;display:inline-block}
.legend-row i.ln{height:3px;width:16px;border-radius:2px}
.viz{position:relative;width:100%;margin-top:6px}
.viz svg{width:100%;height:auto;overflow:visible;font-family:var(--font)}
.viz .gl{stroke:var(--grid);stroke-width:1}
.viz .ax{fill:var(--axis);font-size:11px;font-variant-numeric:tabular-nums}
.viz .lab{fill:var(--c-ink);font-size:11.5px;font-weight:700}
.viz .lab2{fill:var(--c-muted);font-size:11px}
.viz .mk{transition:opacity .2s}
.viz .hit{fill:transparent;cursor:pointer}
.viz .hit:focus{outline:none}
.viz .hit:focus-visible{stroke:var(--c-focus);stroke-width:3;fill:rgba(242,181,68,.08)}
.viz.hovering .mk{opacity:.45}
.viz.hovering .mk.on{opacity:1}
.viz .xh{stroke:var(--c-muted);stroke-width:1;opacity:0}
.viz .xh.on{opacity:.6}
.tip{position:absolute;z-index:5;pointer-events:none;min-width:150px;max-width:240px;padding:10px 12px;border-radius:10px;background:var(--c-surface);border:1px solid var(--c-border-2);box-shadow:var(--shadow-2);font-size:.8rem;opacity:0;transform:translateY(4px);transition:opacity .15s,transform .15s}
.tip.on{opacity:1;transform:none}
.tip .t{font-weight:700;margin-bottom:6px;color:var(--c-ink)}
.tip .r{display:grid;grid-template-columns:14px 1fr auto;gap:8px;align-items:center;color:var(--c-muted);line-height:1.6}
.tip .r i{height:3px;border-radius:2px}
.tip .r b{color:var(--c-ink);font-variant-numeric:tabular-nums;font-weight:700}
.tip .r.sum{border-top:1px solid var(--c-border);margin-top:4px;padding-top:4px}
.chart-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--c-border);font-size:.78rem;color:var(--c-muted)}
.chart-foot a{color:var(--c-muted)}
.chart-table{display:none;margin-top:10px}
.chart-card.show-table .chart-table{display:block}
.chart-table table{min-width:0;font-size:.82rem}
.chart-table td,.chart-table th{padding:7px 10px;text-align:right;font-variant-numeric:tabular-nums}
.chart-table td:first-child,.chart-table th:first-child{text-align:left}
@media (max-width:639px){.chart-table thead{display:table-header-group}.chart-table tr{display:table-row;padding:0}.chart-table td{display:table-cell;padding:6px 8px}.chart-table td::before{content:none}}
.insight{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media (max-width:899px){.insight{grid-template-columns:1fr}}
.insight div{padding:16px;border-radius:var(--radius);background:var(--c-surface);border:1px solid var(--c-border)}
.insight b{display:flex;gap:8px;align-items:center;font-size:.95rem;margin-bottom:4px}
.insight b .n{font-family:var(--font-mono);color:var(--c-brand-ink)}
.insight p{font-size:.86rem;color:var(--c-ink-2)}

/* ================= 全站搜尋 ================= */
dialog.palette{border:0;padding:0;margin:10vh auto auto;width:min(640px,calc(100vw - 24px));max-height:76vh;border-radius:18px;background:var(--c-surface);color:var(--c-ink);box-shadow:0 30px 80px -20px rgba(0,0,0,.45)}
dialog.palette[open]{animation:popIn .25s var(--ease) both}
dialog.palette::backdrop{background:rgba(14,21,34,.42);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
@keyframes popIn{from{opacity:0;transform:translateY(-8px) scale(.98)}}
.pal-in{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--c-border)}
.pal-in .i{color:var(--c-muted)}
.pal-in input{flex:1;border:0;background:transparent;color:var(--c-ink);font:inherit;font-size:1.05rem;outline:none;min-width:0}
.pal-in kbd{font-family:var(--font-mono);font-size:.72rem;padding:2px 6px;border-radius:6px;border:1px solid var(--c-border-2);color:var(--c-muted)}
.pal-list{overflow-y:auto;max-height:calc(76vh - 64px);padding:8px}
.pal-list .grp-t{font-size:.72rem;letter-spacing:.12em;color:var(--c-muted);padding:10px 10px 4px;font-weight:700}
.pal-item{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;width:100%;padding:10px;border:0;border-radius:10px;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
.pal-item .badge{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--c-primary-soft);color:var(--c-brand-ink)}
.pal-item b{display:block;font-size:.92rem}
.pal-item small{display:block;font-size:.78rem;color:var(--c-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pal-item span:nth-child(2){min-width:0}
.pal-item[aria-selected="true"],.pal-item:hover{background:var(--c-surface-2)}
.pal-empty{padding:28px;text-align:center;color:var(--c-muted)}
mark{background:color-mix(in srgb,var(--c-highlight) 45%,transparent);color:inherit;border-radius:3px;padding:0 1px}

/* 閱讀進度 */
.progress{position:fixed;left:0;top:0;height:3px;z-index:70;width:100%;transform-origin:left;transform:scaleX(0);background:linear-gradient(90deg,var(--c-primary),var(--c-highlight));pointer-events:none}
.share-btn{margin-left:auto}

/* 列印 */
@media print{
  .appbar,.subtabs,.bottombar,.cta,.toolbar,.totop,.toast,.skip,.fold-tools,dialog,.progress,.chart-foot .btn,.actions,.view-art,.hero-art{display:none!important}
  body{background:#fff;color:#000;padding:0}
  .view{display:block!important;animation:none!important;page-break-before:always;padding:12px 0}
  .view:first-of-type{page-break-before:auto}
  details.fold .body{display:block!important}
  .card{box-shadow:none;break-inside:avoid}
  a{color:#000}
}
