/* ═══════════════════════════════════════════
   特殊教育 AI 工作坊 ── 共用樣式
   全站共用這一支。零外部字型、零外部資源。
   ═══════════════════════════════════════════ */

:root{
  --paper:#FFFCF6;
  --paper-2:#F6F1E6;
  --card:#FFFFFF;
  --ink:#15181C;
  --ink-2:#414851;
  --muted:#6E6A63;
  --rule:#E4DCCB;
  --rule-2:#CFC4AD;

  --brand:#0A5A4B;          /* 主色：深雲杉綠 */
  --brand-2:#0E7A65;
  --brand-ink:#FFFCF6;      /* 主色塊上的文字 */
  --brand-soft:#DFEFE9;

  --hot:#C2371A;            /* 警示：柿紅 */
  --hot-soft:#FBE6DE;
  --gold:#E8A400;           /* 標記：琥珀 */
  --gold-soft:#FBEBC4;

  --ph-bg:#0A5A4B;          /* 頁首色塊 */
  --ph-ink:#FFFCF6;

  --shadow:0 1px 2px rgba(21,24,28,.05), 0 6px 18px rgba(21,24,28,.07);
  --shadow-lg:0 2px 4px rgba(21,24,28,.06), 0 16px 40px rgba(21,24,28,.12);

  --fs:17px;
  --measure:44rem;

  --sans:"PingFang TC","Noto Sans TC","Source Han Sans TC","Microsoft JhengHei","Heiti TC",sans-serif;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,"Times New Roman",serif;
  --mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,"Courier New",monospace;
}

html[data-theme="dark"]{
  --paper:#0C0E11;
  --paper-2:#15191E;
  --card:#181D23;
  --ink:#F4F1EA;
  --ink-2:#C7C3BA;
  --muted:#918C83;
  --rule:#252C34;
  --rule-2:#39424D;

  --brand:#3FC7A8;
  --brand-2:#63DCC0;
  --brand-ink:#06231D;
  --brand-soft:#10322B;

  --hot:#FF8158;
  --hot-soft:#3A1D14;
  --gold:#FFC13B;
  --gold-soft:#3B2E0E;

  --ph-bg:#0E2E28;
  --ph-ink:#EAF6F2;

  --shadow:0 1px 2px rgba(0,0,0,.5), 0 6px 18px rgba(0,0,0,.45);
  --shadow-lg:0 2px 6px rgba(0,0,0,.55), 0 18px 44px rgba(0,0,0,.6);
}

html[data-fs="l"]{ --fs:19.5px; }
html[data-fs="xl"]{ --fs:22.5px; }

*{margin:0;padding:0;box-sizing:border-box;}
html{font-size:var(--fs);-webkit-text-size-adjust:100%;}

/* 切換主題的瞬間關閉所有過場（見 site.js 的 withoutTransition） */
html.theming *,html.theming *::before,html.theming *::after{
  transition:none !important;animation:none !important;}

body{
  background:var(--paper);color:var(--ink);
  font-family:var(--sans);line-height:1.68;letter-spacing:.005em;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}

.wrap{max-width:62rem;margin:0 auto;padding:0 clamp(1.15rem,4vw,2.6rem);}
.narrow{max-width:56rem;}

.skip{position:absolute;left:-9999px;top:0;z-index:99;background:var(--ink);color:var(--paper);
  padding:.7rem 1.2rem;border-radius:0 0 .6rem 0;font-weight:700;}
.skip:focus{left:0;}
:focus-visible{outline:3px solid var(--brand);outline-offset:3px;border-radius:3px;}

/* ══ 頂欄 ═══════════════════════════════ */
.topbar{position:sticky;top:0;z-index:40;background:var(--paper);
  border-bottom:1px solid var(--rule);}

.topbar .row1{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;
  min-height:3rem;padding-top:.45rem;padding-bottom:.45rem;}
.brand{font-size:.95rem;font-weight:800;color:var(--ink);text-decoration:none;
  margin-right:auto;white-space:nowrap;letter-spacing:-.01em;
  display:inline-flex;align-items:center;gap:.55rem;}
.brand::before{content:"";width:.62rem;height:.62rem;border-radius:2px;
  background:var(--brand);flex:0 0 auto;}
.brand:hover{text-decoration:none;color:var(--brand);}

.ctrl{display:flex;align-items:center;gap:.25rem;}
.ctrl .lbl{font-size:.7rem;letter-spacing:.12em;color:var(--muted);margin-right:.25rem;white-space:nowrap;}
.tog{font:inherit;font-size:.8rem;line-height:1;font-weight:600;
  background:var(--paper-2);color:var(--ink-2);
  border:1px solid transparent;border-radius:.45rem;padding:.44rem .64rem;cursor:pointer;
  transition:background .14s ease,color .14s ease;}
.tog:hover{background:var(--rule);color:var(--ink);}
.tog[aria-pressed="true"]{background:var(--ink);color:var(--paper);font-weight:800;}

/* 分頁：目前頁 = 填色 ＋ 粗體 ＋ 底線，三重標示 */
.tabs{background:var(--paper-2);border-top:1px solid var(--rule);position:relative;}
.tabs .wrap{display:flex;gap:.22rem;overflow-x:auto;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;padding-top:.4rem;padding-bottom:.4rem;}
.tabs .wrap::-webkit-scrollbar{display:none;}
.tabs a{flex:0 0 auto;
  padding:.42rem .8rem;font-size:.88rem;font-weight:700;line-height:1.5;
  color:var(--ink-2);text-decoration:none;white-space:nowrap;border-radius:.42rem;
  border-bottom:3px solid transparent;
  transition:background .14s ease,color .14s ease;}
.tabs a:hover{background:var(--rule);color:var(--ink);text-decoration:none;}
.tabs a[aria-current="page"]{background:var(--brand);color:var(--brand-ink);
  font-weight:800;border-bottom-color:var(--gold);}
.tabs .sp{flex:0 0 auto;width:1px;background:var(--rule-2);margin:.5rem .38rem;}
/* 右緣淡出，暗示還可以往右捲 */
.tabs::after{content:"";position:absolute;right:0;top:0;bottom:0;width:2.2rem;
  pointer-events:none;background:linear-gradient(to right,transparent,var(--paper-2));}

/* ══ 頁內章節跳轉 ═══════════════════════ */
.toc{background:var(--paper-2);border-bottom:1px solid var(--rule);}
.toc .wrap{display:flex;gap:.35rem;overflow-x:auto;scrollbar-width:none;
  padding-top:.42rem;padding-bottom:.42rem;align-items:center;}
.toc .wrap::-webkit-scrollbar{display:none;}
.toc .t{font-size:.72rem;letter-spacing:.14em;color:var(--muted);font-weight:800;
  white-space:nowrap;margin-right:.3rem;flex:0 0 auto;}
.toc a{flex:0 0 auto;font-size:.83rem;font-weight:700;color:var(--ink-2);
  text-decoration:none;white-space:nowrap;border-radius:.4rem;padding:.28rem .62rem;
  background:var(--card);}
.toc a:hover{background:var(--brand);color:var(--brand-ink);text-decoration:none;}
/* ══ 系統高對比模式 ═══════════════════════
   Windows 高對比等設定會接管所有顏色，填色區塊將被壓平。
   本站的區辨本來就不單靠顏色，此處僅補上邊框以維持形狀。 */
@media (forced-colors: active){
  .num,.flag,.path .cat,.path .db,.gate .g,.todo,.cmd .lbl,
  .tabs a[aria-current="page"],.tog[aria-pressed="true"]{
    border:1px solid currentColor;}
  .path,.card,.gate,.law,.note,.redline,.a11y,.stair li,.tw,.pager a,.cmd{
    border:1px solid currentColor;}
  .steps>li::before{border:1px solid currentColor;}
  .ph{border-bottom:2px solid currentColor;}
  .ph::after,.tabs::after{display:none;}
  .tabs a[aria-current="page"]{outline:2px solid currentColor;outline-offset:-3px;}
  section > details > summary .head::after{border-color:currentColor;}
  .thesis{border-left-color:currentColor;}
  h3{border-left-color:currentColor;}
  :focus-visible{outline:3px solid currentColor;}
}

@media print{.toc{display:none;}}

/* ══ 階段標示（每頁頁首下方）════════════ */
.stage{background:var(--brand-soft);border-bottom:1px solid var(--rule);}
.stage .wrap{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;
  padding-top:.5rem;padding-bottom:.5rem;}
.stage .tag{flex:0 0 auto;font-size:.76rem;font-weight:900;letter-spacing:.06em;
  background:var(--brand);color:var(--brand-ink);border-radius:.35rem;padding:.24rem .62rem;}
.stage .tag.free{background:var(--ink);}
.stage .txt{font-size:.87rem;color:var(--ink-2);}
.stage .nx{margin-left:auto;font-size:.85rem;font-weight:800;white-space:nowrap;}
@media(max-width:34rem){.stage .nx{margin-left:0;}}
@media print{.stage{background:none;}}

/* ══ 課程地圖 ═══════════════════════════ */
.roadmap{list-style:none;margin:1.4rem 0 0;padding:0;max-width:100%;
  counter-reset:rm;position:relative;}
.roadmap>li{counter-increment:rm;position:relative;
  display:grid;grid-template-columns:2.5rem 1fr;gap:1rem;
  padding:0 0 1.3rem;margin:0;max-width:100%;}
.roadmap>li:last-child{padding-bottom:0;}
/* 節點與連接線 */
.roadmap>li::before{content:counter(rm);grid-column:1;
  display:flex;align-items:center;justify-content:center;
  width:2.5rem;height:2.5rem;border-radius:50%;z-index:1;
  background:var(--brand);color:var(--brand-ink);
  font-size:1rem;font-weight:900;font-variant-numeric:lining-nums;}
.roadmap>li::after{content:"";position:absolute;left:1.2rem;top:2.5rem;bottom:0;
  width:2px;background:var(--rule-2);}
.roadmap>li:last-child::after{display:none;}
.roadmap>li.gap::before{background:var(--paper);color:var(--brand);
  border:2px dashed var(--brand);font-size:.85rem;}
.roadmap>li.gap::after{background:repeating-linear-gradient(
  to bottom,var(--rule-2) 0 5px,transparent 5px 11px);}

.rm{background:var(--card);border-radius:.75rem;padding:1rem 1.15rem;
  box-shadow:var(--shadow);}
.roadmap>li.gap .rm{background:var(--paper-2);box-shadow:none;
  border:1px dashed var(--rule-2);}
.rm .when{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap;margin-bottom:.35rem;}
.rm .when b{font-size:.74rem;letter-spacing:.14em;font-weight:900;color:var(--brand);}
.rm .when span{font-size:.74rem;color:var(--muted);font-weight:700;}
.rm h3{font-size:1.12rem;font-weight:900;margin:0 0 .35rem;padding:0;border:none;
  letter-spacing:-.015em;}
.rm p{font-size:.92rem;color:var(--ink-2);margin:0 0 .6rem;max-width:100%;line-height:1.65;}
.rm .pages{display:flex;flex-wrap:wrap;gap:.35rem;margin:.5rem 0 .6rem;}
.rm .pages a{font-size:.82rem;font-weight:800;text-decoration:none;
  background:var(--brand-soft);color:var(--brand);border-radius:.35rem;
  padding:.22rem .6rem;white-space:nowrap;}
.rm .pages a:hover{background:var(--brand);color:var(--brand-ink);text-decoration:none;}
.rm .pages .lbl{font-size:.74rem;letter-spacing:.1em;color:var(--muted);
  font-weight:800;align-self:center;margin-right:.15rem;}
.rm .out{font-size:.88rem;margin:0;padding-top:.55rem;border-top:1px solid var(--rule);}
.rm .out b{color:var(--brand);font-weight:900;}
@media (forced-colors: active){
  .roadmap>li::before{border:1px solid currentColor;}
  .rm{border:1px solid currentColor;}
}
@media(max-width:34rem){
  .roadmap>li{grid-template-columns:2rem 1fr;gap:.7rem;}
  .roadmap>li::before{width:2rem;height:2rem;font-size:.88rem;}
  .roadmap>li::after{left:.95rem;top:2rem;}
}

/* ══ 頁首色塊 ═══════════════════════════ */
.ph{background:var(--ph-bg);color:var(--ph-ink);
  padding:clamp(1.9rem,4.4vw,2.9rem) 0 clamp(1.7rem,3.6vw,2.4rem);
  position:relative;overflow:hidden;}
.ph.big{padding-top:clamp(1.9rem,4vw,2.6rem);padding-bottom:clamp(1.6rem,3.2vw,2.1rem);}
.ph::after{content:"";position:absolute;right:-14%;top:-55%;width:60%;aspect-ratio:1;
  border-radius:50%;background:rgba(255,255,255,.05);pointer-events:none;}
.ph .wrap{position:relative;z-index:1;}

.kicker{font-size:.78rem;letter-spacing:.26em;font-weight:800;
  color:var(--ph-ink);opacity:.78;margin-bottom:.65rem;}

h1{font-size:clamp(1.6rem,4vw,2.35rem);line-height:1.16;font-weight:900;
  letter-spacing:-.026em;margin-bottom:.75rem;max-width:24em;}
h1 .x{color:var(--gold);}

.thesis{font-size:clamp(.96rem,1.8vw,1.06rem);line-height:1.65;max-width:var(--measure);
  border-left:4px solid var(--gold);padding-left:1.15rem;opacity:.94;}
.thesis b{background:var(--gold);color:#241900;padding:.08em .32em;
  border-radius:.18em;font-weight:800;}

.tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.85rem;}
.tags span{font-size:.78rem;font-weight:700;border-radius:2rem;padding:.26rem .8rem;
  white-space:nowrap;background:rgba(255,255,255,.13);color:var(--ph-ink);}

@media (prefers-reduced-motion:no-preference){
  .rise{animation:rise .6s cubic-bezier(.22,.8,.3,1) both;}
  .rise:nth-child(1){animation-delay:.04s}.rise:nth-child(2){animation-delay:.11s}
  .rise:nth-child(3){animation-delay:.18s}.rise:nth-child(4){animation-delay:.25s}
  .rise:nth-child(5){animation-delay:.32s}
  @keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
}

/* ══ 摺疊分節 ═══════════════════════════ */
section > details{border:none;}
section > details > summary{
  list-style:none;cursor:pointer;display:block;
  border-radius:.6rem;margin:-.35rem -.6rem;padding:.35rem .6rem;
  transition:background .14s ease;}
section > details > summary::-webkit-details-marker{display:none;}
section > details > summary:hover{background:var(--paper-2);}
section > details > summary .head{margin-bottom:0;align-items:center;}
/* 展開指示：顏色以外另有形狀與方位變化 */
section > details > summary .head::after{
  content:"";flex:0 0 auto;margin-left:auto;align-self:center;
  width:.62rem;height:.62rem;border-right:2.5px solid var(--brand);
  border-bottom:2.5px solid var(--brand);transform:rotate(45deg);
  transition:transform .16s ease;}
section > details[open] > summary .head::after{transform:rotate(-135deg);}
section > details > summary .lead{margin-top:.15rem;}
.sec-body{padding-top:.9rem;}
html.theming .sec-body{transition:none;}

/* 展開／收合全部 */
.allctl{display:flex;gap:.45rem;align-items:center;padding:.7rem 0 0;flex-wrap:wrap;}
.allctl .t{font-size:.72rem;letter-spacing:.14em;color:var(--muted);font-weight:800;margin-right:.2rem;}
.allctl button{font:inherit;font-size:.8rem;font-weight:700;cursor:pointer;
  background:var(--paper-2);color:var(--ink-2);border:1px solid var(--rule-2);
  border-radius:.42rem;padding:.34rem .75rem;transition:background .14s ease,color .14s ease;}
.allctl button:hover{background:var(--brand);color:var(--brand-ink);border-color:var(--brand);}

/* ══ 分節 ═══════════════════════════════ */
section{padding:clamp(1rem,2vw,1.35rem) 0;border-bottom:1px solid var(--rule);
  scroll-margin-top:6.5rem;}
section:last-of-type{border-bottom:none;}

.head{display:flex;gap:clamp(.7rem,2vw,1.1rem);align-items:flex-start;margin-bottom:1rem;}
.num{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;
  min-width:2.3rem;height:2.3rem;padding:0 .5rem;border-radius:.5rem;
  background:var(--brand);color:var(--brand-ink);
  font-size:.98rem;font-weight:900;letter-spacing:.01em;
  font-variant-numeric:lining-nums tabular-nums;margin-top:.2rem;}
h2{font-size:clamp(1.35rem,3.4vw,1.9rem);line-height:1.3;font-weight:900;letter-spacing:-.02em;}
.lead{color:var(--muted);margin-top:.4rem;max-width:var(--measure);font-size:.97rem;}

h3{font-size:1.12rem;font-weight:900;margin:1.4rem 0 .55rem;letter-spacing:-.01em;
  padding-left:.7rem;border-left:4px solid var(--brand);}
h4{font-size:.95rem;font-weight:800;margin:1.4rem 0 .4rem;color:var(--brand);}
p{max-width:var(--measure);margin-bottom:.7rem;}
p:last-child{margin-bottom:0;}
ul,ol{margin:.7rem 0 .7rem 1.35rem;max-width:var(--measure);}
li{margin-bottom:.32rem;}
li::marker{color:var(--brand);}
strong{font-weight:800;}
a{color:var(--brand);font-weight:600;text-decoration:underline;
  text-underline-offset:.2em;text-decoration-thickness:1.5px;
  text-decoration-color:color-mix(in srgb,var(--brand) 40%,transparent);}
a:hover{text-decoration-color:var(--brand);}
code{font-family:var(--mono);font-size:.86em;background:var(--brand-soft);
  color:var(--brand);border-radius:.32rem;padding:.1em .45em;font-weight:600;}

/* ══ 路線卡 ═════════════════════════════ */
.paths{display:grid;grid-template-columns:repeat(auto-fit,minmax(15.5rem,1fr));gap:.8rem;margin:1.2rem 0 0;}
.path{display:block;background:var(--card);border-radius:.85rem;padding:1.05rem 1.15rem .95rem;
  text-decoration:none;color:inherit;box-shadow:var(--shadow);
  border-top:5px solid var(--brand);
  transition:transform .18s ease,box-shadow .18s ease;}
.path:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);text-decoration:none;}
.path .cat{display:inline-block;font-size:.72rem;letter-spacing:.16em;font-weight:900;
  color:var(--brand);background:var(--brand-soft);border-radius:.3rem;
  padding:.15rem .5rem;margin-bottom:.7rem;}
.path .t{font-weight:900;font-size:1.14rem;margin-bottom:.4rem;letter-spacing:-.015em;}
.path .d{font-size:.9rem;color:var(--muted);line-height:1.7;}
.path .db{display:inline-block;margin-top:.85rem;font-size:.74rem;font-weight:800;
  letter-spacing:.05em;border-radius:.3rem;padding:.2rem .55rem;}
.path .db.yes{color:var(--hot);background:var(--hot-soft);}
.path .db.opt{color:#7A5A12;background:var(--gold-soft);}
html[data-theme="dark"] .path .db.opt{color:var(--gold);}
.path .db.no{color:var(--muted);background:var(--paper-2);}

/* ══ 階段清單（總覽頁）═════════════════ */
.stair{list-style:none;margin:1.2rem 0 0;padding:0;max-width:100%;display:grid;gap:.55rem;}
.stair li{display:grid;grid-template-columns:2.4rem 1fr;gap:1rem;align-items:start;
  background:var(--card);border-radius:.75rem;padding:.85rem 1.1rem;margin:0;
  box-shadow:var(--shadow);border-left:5px solid var(--brand);}
.stair li::marker{content:none;}
.stair li .s{display:flex;align-items:center;justify-content:center;
  width:2.4rem;height:2.4rem;border-radius:50%;
  background:var(--brand);color:var(--brand-ink);
  font-size:1rem;font-weight:900;line-height:1;}
.stair li .t{font-weight:900;display:block;margin-bottom:.22rem;font-size:1.06rem;
  letter-spacing:-.01em;}
.stair li .d{color:var(--muted);font-size:.92rem;line-height:1.72;display:block;}
@media(min-width:44rem){
  .stair li:nth-child(2){margin-left:1.6rem}
  .stair li:nth-child(3){margin-left:3.2rem}
  .stair li:nth-child(4){margin-left:4.8rem}
}

/* ══ 步驟 ═══════════════════════════════ */
.steps{counter-reset:st;margin:1rem 0 0;list-style:none;padding:0;max-width:100%;}
.steps>li{counter-increment:st;display:grid;grid-template-columns:2.1rem 1fr;gap:1rem;
  padding:.8rem 0;border-top:1px solid var(--rule);margin:0;max-width:100%;}
.steps>li:last-child{border-bottom:1px solid var(--rule);}
.steps>li::before{content:counter(st);
  display:flex;align-items:center;justify-content:center;
  width:2.1rem;height:2.1rem;border-radius:50%;
  background:var(--brand-soft);color:var(--brand);
  font-size:.92rem;font-weight:900;font-variant-numeric:lining-nums;}
.steps .t{font-weight:800;margin-bottom:.28rem;font-size:1.02rem;}
.steps .d{color:var(--ink-2);font-size:.94rem;line-height:1.72;max-width:var(--measure);}

/* ══ 指令框 ═════════════════════════════ */
.cmd{background:var(--paper-2);border-radius:.7rem;margin:.9rem 0;overflow:hidden;
  border:1px solid var(--rule);}
.cmd .lbl{font-size:.72rem;letter-spacing:.14em;font-weight:900;
  background:var(--brand);color:var(--brand-ink);padding:.5rem 1.15rem;}
.cmd pre{font-family:var(--mono);font-size:.85rem;line-height:1.7;color:var(--ink);
  padding:.8rem 1.1rem;white-space:pre-wrap;word-break:break-word;}
.cmd .fill{background:var(--gold);color:#241900;border-radius:.2rem;
  padding:.05em .28em;font-weight:700;}

/* ══ 時間軸 ═════════════════════════════ */
.flow{margin:1rem 0 0;}
/* 寬螢幕分兩欄。用多欄排版而非格線，時間才會沿著欄位由上往下讀 */
@media(min-width:62rem){
  .flow{columns:2;column-gap:2.4rem;}
  .step{break-inside:avoid;-webkit-column-break-inside:avoid;}
  .step:first-child{border-top:none;}
  .step:last-child{border-bottom:none;}
}
.step{display:grid;grid-template-columns:5.4rem 1fr;gap:clamp(.8rem,2.4vw,1.5rem);
  padding:.62rem 0;border-top:1px solid var(--rule);}
.step:last-child{border-bottom:1px solid var(--rule);}
.step .clock{font-variant-numeric:lining-nums tabular-nums;
  font-size:1.02rem;color:var(--brand);font-weight:900;line-height:1.5;letter-spacing:-.01em;}
.step .clock small{display:block;font-weight:600;font-size:.76rem;
  color:var(--muted);letter-spacing:.03em;}
.step .t{font-weight:800;margin-bottom:.2rem;font-size:1.02rem;}
.step .d{color:var(--ink-2);font-size:.9rem;line-height:1.62;max-width:var(--measure);}
.step.rest{background:var(--paper-2);}
.step.rest .clock,.step.rest .t{color:var(--muted);}

/* ══ 表格 ═══════════════════════════════ */
.tw{overflow-x:auto;margin:1rem 0;-webkit-overflow-scrolling:touch;
  border-radius:.7rem;background:var(--card);box-shadow:var(--shadow);}
table{width:100%;border-collapse:collapse;font-size:.93rem;min-width:32rem;}
caption{text-align:left;padding:.9rem 1.15rem .2rem;color:var(--muted);font-size:.84rem;line-height:1.6;}
th,td{padding:.6rem 1.1rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--rule);}
thead th{font-size:.76rem;letter-spacing:.11em;color:var(--brand-ink);font-weight:800;
  white-space:nowrap;background:var(--brand);border-bottom:none;}
thead th:first-child{border-top-left-radius:.7rem;}
thead th:last-child{border-top-right-radius:.7rem;}
tbody tr:last-child th,tbody tr:last-child td{border-bottom:none;}
tbody th{font-weight:800;white-space:nowrap;}

/* 三重標記：顏色＋文字＋符號 */
.flag{display:inline-flex;align-items:center;gap:.38rem;font-size:.84rem;font-weight:800;
  white-space:nowrap;border-radius:2rem;padding:.22rem .7rem .22rem .5rem;}
.flag .g{font-size:.95rem;line-height:1;}
.flag.move{color:var(--hot);background:var(--hot-soft);}
.flag.part{color:#7A5A12;background:var(--gold-soft);}
html[data-theme="dark"] .flag.part{color:var(--gold);}
.flag.keep{color:var(--brand-ink);background:var(--brand);}
tr.spot th,tr.spot td{background:var(--brand-soft);}
tr.spot th{color:var(--brand);}

/* ══ 檢核關卡 ═══════════════════════════ */
.gates{display:grid;gap:.9rem;margin:1.1rem 0;grid-template-columns:repeat(auto-fit,minmax(19rem,1fr));}
.gate{background:var(--card);border-radius:.85rem;padding:1.05rem 1.2rem;
  box-shadow:var(--shadow);border-left:6px solid var(--brand);}
.gate .g{display:inline-block;font-size:.72rem;letter-spacing:.16em;font-weight:900;
  color:var(--brand);background:var(--brand-soft);border-radius:.3rem;
  padding:.15rem .5rem;margin-bottom:.55rem;}
.gate .q{font-weight:900;font-size:1.1rem;margin-bottom:.6rem;letter-spacing:-.015em;}
.gate ul{margin:.5rem 0 0 1.2rem;max-width:100%;}
.gate .out{margin:.75rem 0 0;padding-top:.6rem;border-top:1px solid var(--rule);
  font-size:.9rem;max-width:100%;}
.gate .out b{color:var(--brand);font-weight:900;}
.gate li{font-size:.92rem;color:var(--ink-2);margin-bottom:.35rem;}

/* ══ 卡片 ═══════════════════════════════ */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:.7rem;margin:1.1rem 0;}
.card{background:var(--card);border-radius:.75rem;padding:.9rem 1.05rem;box-shadow:var(--shadow);}
.card .t{font-weight:800;margin-bottom:.35rem;font-size:1.02rem;}
.card .d{font-size:.9rem;color:var(--muted);line-height:1.7;}

/* ══ 參考文獻（APA 第七版，首行凸排）═════ */
.refs{list-style:none;margin:1rem 0 0;padding:0;max-width:100%;}
.refs li{padding-left:2.2em;text-indent:-2.2em;margin-bottom:.7rem;
  font-size:.94rem;line-height:1.7;max-width:var(--measure);}
.refs li::marker{content:none;}
.refs cite{font-style:italic;}
.refs .kind{display:block;font-size:.72rem;letter-spacing:.16em;font-weight:900;
  color:var(--brand);margin:1.3rem 0 .55rem;padding-left:0;text-indent:0;}
.refs li:first-child .kind{margin-top:0;}

/* ══ 圖表 ═══════════════════════════════
   圖片本身為淺底，兩種主題下均維持淺色底板，
   避免深色模式下白圖浮在暗背景上。 */
figure.chart{margin:1.2rem 0;background:#FFFCF6;border-radius:.75rem;
  padding:.6rem .6rem .2rem;box-shadow:var(--shadow);border:1px solid var(--rule);}
figure.chart img{display:block;width:100%;height:auto;border-radius:.45rem;}
figure.chart figcaption{padding:.7rem .8rem .8rem;font-size:.88rem;
  color:#5E5A54;line-height:1.65;}
figure.chart figcaption b{color:#0A5A4B;font-weight:900;}
figure.chart .tw{margin:.2rem .4rem .6rem;box-shadow:none;border:1px solid #E4DCCB;}
figure.chart table{font-size:.88rem;min-width:20rem;color:#15181C;}
figure.chart thead th{background:#0A5A4B;color:#FFFCF6;}
figure.chart th,figure.chart td{border-bottom:1px solid #E4DCCB;}
figure.chart caption{color:#5E5A54;}
figure.chart details{margin:0 .4rem .6rem;}
figure.chart summary{cursor:pointer;font-size:.86rem;font-weight:800;color:#0A5A4B;
  padding:.35rem .4rem;}
@media (forced-colors: active){figure.chart{border:1px solid currentColor;}}

/* ══ 概念圖（內嵌 SVG，跟隨主題）════════ */
figure.dia{margin:1.3rem 0;background:var(--card);border-radius:.8rem;
  padding:1.1rem 1.2rem .9rem;box-shadow:var(--shadow);}
figure.dia svg{display:block;width:100%;height:auto;
  font-family:var(--sans);overflow:visible;}
figure.dia .t{font-weight:900;font-size:1.02rem;margin-bottom:.7rem;
  letter-spacing:-.01em;}
figure.dia figcaption{margin-top:.8rem;padding-top:.7rem;
  border-top:1px solid var(--rule);font-size:.88rem;color:var(--ink-2);line-height:1.65;}
figure.dia figcaption b{color:var(--brand);font-weight:900;}
figure.dia .alt{margin-top:.5rem;}
figure.dia .alt summary{cursor:pointer;font-size:.84rem;font-weight:800;
  color:var(--brand);padding:.3rem 0;}
figure.dia .alt ol,figure.dia .alt ul{margin:.4rem 0 .3rem 1.3rem;font-size:.88rem;}
figure.dia .alt li{margin-bottom:.25rem;}
/* SVG 內的取色 */
.dia .fill-b{fill:var(--brand);} .dia .fill-h{fill:var(--hot);}
.dia .fill-g{fill:var(--gold);} .dia .fill-s{fill:var(--brand-soft);}
.dia .fill-c{fill:var(--card);} .dia .fill-p{fill:var(--paper-2);}
.dia .fill-hs{fill:var(--hot-soft);}
.dia .st-r{stroke:var(--rule-2);} .dia .st-b{stroke:var(--brand);}
.dia .st-h{stroke:var(--hot);} .dia .st-i{stroke:var(--ink-2);}
.dia .tx{fill:var(--ink);} .dia .tx-m{fill:var(--muted);}
.dia .tx-i{fill:var(--brand-ink);} .dia .tx-b{fill:var(--brand);}
.dia .tx-h{fill:var(--hot);} .dia .tx-d{fill:#241900;}
@media (forced-colors: active){
  figure.dia{border:1px solid currentColor;}
  .dia rect,.dia circle,.dia path,.dia line{stroke:currentColor !important;}
}

/* ══ 模板卡（可直接照抄）════════════════ */
.tpl{background:var(--card);border-radius:.8rem;margin:1.1rem 0;
  box-shadow:var(--shadow);overflow:hidden;border-left:6px solid var(--gold);}
.tpl .hd{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap;
  padding:.75rem 1.1rem .1rem;}
.tpl .no{font-size:.72rem;letter-spacing:.16em;font-weight:900;color:var(--gold);}
.tpl .nm{font-size:1.05rem;font-weight:900;letter-spacing:-.01em;}
.tpl .use{font-size:.85rem;color:var(--muted);padding:.1rem 1.1rem .5rem;}
.tpl pre{font-family:var(--mono);font-size:.86rem;line-height:1.85;color:var(--ink);
  background:var(--paper-2);margin:0;padding:.9rem 1.1rem;
  white-space:pre-wrap;word-break:break-word;border-top:1px solid var(--rule);}
.tpl .fill{background:var(--gold);color:#241900;border-radius:.2rem;
  padding:.05em .3em;font-weight:800;}
.tpl .tip{padding:.7rem 1.1rem .85rem;font-size:.87rem;color:var(--ink-2);
  background:var(--card);line-height:1.7;}
.tpl .tip b{color:var(--brand);font-weight:900;}
.tpl.copy{border-left-color:var(--brand);}
.tpl.copy .no{color:var(--brand);}
.tpl.copy pre{background:var(--brand-soft);}

/* 口語提示：說這句就好 */
.say{display:grid;gap:.55rem;margin:1rem 0;}
.say div{background:var(--paper-2);border-radius:.55rem;padding:.7rem .95rem;
  border-left:4px solid var(--brand-2);font-size:.94rem;}
.say b{display:block;font-size:.76rem;letter-spacing:.1em;color:var(--muted);
  font-weight:900;margin-bottom:.2rem;}
@media (forced-colors: active){.tpl,.say div{border:1px solid currentColor;}}

/* ══ 引文與提示 ═════════════════════════ */
.law{background:var(--card);border-radius:.75rem;padding:1rem 1.2rem;margin:1rem 0;
  box-shadow:var(--shadow);border-left:6px solid var(--ink);}
.law p{max-width:100%;font-size:.97rem;line-height:1.85;}
.law cite{display:block;margin-top:.8rem;font-style:normal;font-size:.81rem;color:var(--muted);}

.redline{background:var(--hot-soft);border-radius:.75rem;padding:1rem 1.2rem;margin:1rem 0;
  border-left:6px solid var(--hot);}
.redline .h{font-weight:900;color:var(--hot);margin-bottom:.6rem;
  display:flex;align-items:center;gap:.45rem;font-size:1.04rem;}
.redline p{max-width:100%;font-size:.94rem;}
.redline ul{margin:.5rem 0 0 1.2rem;max-width:100%;}
.redline li{font-size:.93rem;}
.redline li::marker{color:var(--hot);}

.note{background:var(--brand-soft);border-radius:.75rem;padding:.85rem 1.1rem;margin:1rem 0;
  font-size:.93rem;color:var(--ink-2);border-left:6px solid var(--brand-2);}
.note p{max-width:100%;}
.note b{color:var(--brand);font-weight:900;}
html[data-theme="dark"] .note{color:var(--ink);}

.todo{background:var(--gold);color:#241900;font-weight:900;border-radius:.28rem;
  padding:.08em .45em;font-size:.88em;}

/* ══ 按鈕 ═══════════════════════════════ */
.btn{display:inline-block;border-radius:.55rem;padding:.62rem 1.3rem;
  font-weight:900;text-decoration:none;font-size:.98rem;
  background:var(--ink);color:var(--paper);border:2px solid var(--ink);
  transition:transform .14s ease,box-shadow .14s ease;}
.btn:hover{text-decoration:none;transform:translateY(-2px);box-shadow:var(--shadow);}
.btn.ghost{background:transparent;color:currentColor;border-color:currentColor;}
.ph .btn{background:var(--gold);color:#241900;border-color:var(--gold);}
.ph .btn.ghost{background:transparent;color:var(--ph-ink);border-color:var(--ph-ink);}
.cta{margin:.95rem 0 0;display:flex;gap:.7rem;flex-wrap:wrap;align-items:center;}
.cta .u{display:block;width:100%;margin-top:.35rem;font-size:.8rem;
  opacity:.8;word-break:break-all;}

/* ══ 上下頁 ═════════════════════════════ */
.pager{display:flex;gap:.9rem;flex-wrap:wrap;justify-content:space-between;
  padding:1.3rem 0 0;margin-top:.6rem;border-top:1px solid var(--rule);}
.pager a{display:block;flex:1 1 15rem;background:var(--card);border-radius:.7rem;
  padding:.95rem 1.2rem;text-decoration:none;color:inherit;box-shadow:var(--shadow);
  transition:transform .15s ease,box-shadow .15s ease;}
.pager a:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);text-decoration:none;}
.pager .k{font-size:.71rem;letter-spacing:.14em;color:var(--brand);font-weight:900;
  display:block;margin-bottom:.15rem;}
.pager .n{font-weight:800;font-size:.97rem;}
.pager .next{text-align:right;}

/* ══ 無障礙自陳 ═════════════════════════ */
.a11y{background:var(--ph-bg);color:var(--ph-ink);border-radius:.85rem;
  padding:1.15rem 1.3rem;margin:1.1rem 0;}
.a11y .h{font-weight:900;margin-bottom:.7rem;font-size:1.12rem;letter-spacing:-.015em;}
.a11y p{max-width:100%;font-size:.93rem;margin-bottom:.7rem;opacity:.92;}
.a11y ul{margin:0 0 0 1.2rem;max-width:100%;}
.a11y li{font-size:.92rem;opacity:.95;}
.a11y li::marker{color:var(--gold);}
.a11y strong{color:var(--gold);}

footer{padding:1.8rem 0 2.6rem;color:var(--muted);font-size:.85rem;
  border-top:4px solid var(--brand);margin-top:2.5rem;}
footer p{max-width:100%;margin-bottom:.3rem;}
footer strong{color:var(--ink);}

@media(max-width:34rem){
  :root{--measure:100%;}
  .step{grid-template-columns:1fr;gap:.25rem;}
  .step .clock{display:flex;align-items:baseline;gap:.7rem;}
  .step .clock small{display:inline;}
  .head{gap:.7rem;}
  .num{min-width:2rem;height:2rem;font-size:.88rem;}
  .steps>li{grid-template-columns:1.8rem 1fr;gap:.75rem;}
  .steps>li::before{width:1.8rem;height:1.8rem;font-size:.84rem;}
  .topbar .row1{min-height:2.6rem;gap:.45rem;}
  .brand{font-size:.86rem;}
  .ctrl .lbl{display:none;}
  .tog{padding:.4rem .55rem;font-size:.78rem;}
  .tabs a{padding:.38rem .68rem;font-size:.84rem;}
}
@media print{
  .topbar,.skip,.pager,.cta,.allctl{display:none;}
  section > details > summary .head::after{display:none;}
  .sec-body{display:block !important;}
  .ph{background:none;color:var(--ink);border-bottom:3px solid var(--ink);}
  .ph .kicker{color:var(--ink);}
  .a11y{background:none;color:var(--ink);border:2px solid var(--ink);}
  section,.gate,.cmd,.steps>li,.path,.card{break-inside:avoid;box-shadow:none;}
  a{color:inherit;text-decoration:none;}
}
