/* 後台控制台（console）— 暗場用：暖黑底、白字、單一琥珀色。
   對比：主要文字 --fg 對底約 16:1、說明 --fg2 約 10:1、琥珀 約 10:1（都過 AAA 7:1）。
   不用灰字、不用光暈；層級靠字級、字重、等寬字與分隔線。 */
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;
  src:url(files/IBMPlexMono-400.woff2) format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:600;font-display:swap;
  src:url(files/IBMPlexMono-600.woff2) format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  --bg:#14120F; --deep:#0E0C0A; --s1:#1C1915; --s2:#25211C;
  --ln:#38312A; --ln2:#5E5346;
  --fg:#F5EFE6; --fg2:#D4CABB;
  --amb:#FFB547; --ink:#17110A;
  --red:var(--amb);
  --mono:"IBM Plex Mono","SF Mono",Menlo,Consolas,"PingFang TC","Noto Sans TC",monospace;
  --sans:"PingFang TC","Hiragino Sans","Noto Sans TC",system-ui,sans-serif;
  --pad:32px;
  --gut:max(var(--pad),calc((100% - 1320px) / 2 + var(--pad)));   /* 頁首、頁尾與內文左右對齊 */
  color-scheme:dark;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-padding-top:var(--scrollpad,140px);background:var(--bg)}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
body{background:var(--bg);color:var(--fg);font-family:var(--sans);font-size:16px;line-height:1.65;
  -webkit-font-smoothing:antialiased}
a{color:inherit}
b,strong{font-weight:700}
::selection{background:var(--amb);color:var(--ink)}
:focus-visible{outline:2px solid var(--amb);outline-offset:2px}
td.n,.fig b,.adsum b{font-variant-numeric:tabular-nums}
kbd{font-family:var(--mono);font-size:12.5px;font-weight:600;line-height:1;color:var(--fg);
  background:var(--s2);border:1px solid var(--ln2);border-bottom-width:2px;border-radius:3px;
  padding:3px 6px 2px;display:inline-block;min-width:22px;text-align:center}

/* ══ 頁首 ══ */
header{position:sticky;top:0;z-index:40;background:var(--bg)}
.bar1{display:flex;align-items:center;gap:20px;min-height:50px;padding:0 var(--gut);
  background:var(--deep);border-bottom:1px solid var(--ln)}
.home{display:flex;align-items:baseline;gap:10px;text-decoration:none;min-height:44px;align-items:center}
.home .ti{font-size:17px;font-weight:800;letter-spacing:.01em}
.home .su{font-size:14px;color:var(--fg2);font-weight:600}
.home:hover .ti{color:var(--amb)}
.here{display:none}
.when{font-family:var(--mono);font-size:13.5px;color:var(--fg)}
.orig{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.keys{margin-left:auto;font-size:13px;color:var(--fg2);white-space:nowrap;display:flex;align-items:center;gap:4px}
.keys kbd{margin:0 1px}
.prt{font:inherit;font-size:14px;font-weight:700;min-height:36px;padding:0 14px;cursor:pointer;
  background:none;color:var(--fg);border:1px solid var(--ln2);border-radius:3px}
.prt:hover{border-color:var(--amb);color:var(--amb)}
.keys+.prt{margin-left:4px}

.bar2{display:flex;align-items:center;gap:20px;padding:12px var(--gut);border-bottom:1px solid var(--ln2);background:var(--bg)}
.cmd{flex:1;min-width:300px;display:flex;align-items:center;height:52px;background:var(--s1);
  border:1.5px solid var(--ln2);border-radius:4px;position:relative}
.cmd:focus-within{border-color:var(--amb)}
.cmd .ps{font-family:var(--mono);font-weight:600;font-size:24px;color:var(--amb);padding:0 6px 0 16px;line-height:1;cursor:text}
.cmd input{flex:1;min-width:0;height:100%;font:inherit;font-size:18px;color:var(--fg);background:none;border:0;
  padding:0 8px 0 4px;outline:none;caret-color:var(--amb)}
.cmd input::placeholder{color:var(--fg2);opacity:1}
.cmd input::-webkit-search-cancel-button{display:none}
.cmd .x{display:none;font:inherit;font-size:14px;font-weight:700;color:var(--fg);background:var(--s2);
  border:1px solid var(--ln2);border-radius:3px;height:36px;padding:0 12px;margin-right:8px;cursor:pointer}
.cmd .x:hover{border-color:var(--amb);color:var(--amb)}
.cmd.on .x{display:block}
.cmd .idx{display:none;align-items:center;align-self:stretch;padding:0 16px;font-size:15px;font-weight:700;
  text-decoration:none;border-right:1px solid var(--ln2);color:var(--fg)}
.cmd .idx::before{content:"‹";font-family:var(--mono);color:var(--amb);margin-right:8px;font-size:18px}
.cmd .idx:hover{color:var(--amb)}
body.v-ch .cmd .idx{display:flex}

/* 首頁的指令列放大，當主角 */
body.v-home .cmd{height:76px;border-width:2px}
body.v-home .cmd .ps{font-size:34px;padding-left:22px}
body.v-home .cmd input{font-size:28px;font-weight:600}
body.v-home .cmd input::placeholder{font-weight:400}
body.v-home .bar2{padding-top:22px;padding-bottom:22px}

/* 章節快選格：每章一格兩位數，目前那格展開成章名 */
.strip{display:flex;align-items:center;gap:10px;flex:none}
.strip .sg{display:flex;gap:3px}
.strip .sg+.sg{padding-left:10px;border-left:1px solid var(--ln2)}
.strip a{display:flex;align-items:center;justify-content:center;gap:8px;height:40px;min-width:34px;padding:0 4px;
  font-family:var(--mono);font-size:13.5px;font-weight:600;text-decoration:none;color:var(--fg);
  background:var(--s1);border:1px solid var(--ln);border-radius:3px}
.strip a .t{display:none;font-family:var(--sans);font-size:14px;font-weight:700;white-space:nowrap}
.strip a:hover{border-color:var(--fg2)}
.strip a.on{background:var(--amb);color:var(--ink);border-color:var(--amb);padding:0 12px}
.strip a.on .t{display:inline}
body.v-home .strip{display:none}

/* ══ 主區 ══ */
main{max-width:1320px;margin:0 auto;padding:0 var(--pad) 72px;overflow-x:clip}
#main>section{display:none;padding-top:30px;outline:none}
body.v-ch #main>section.cur{display:block}
body.v-ch #home{display:none}
body.searching #home,body.searching #main>section:not(#res){display:none!important}

/* ══ 首頁：案子資訊＋章節索引 ══ */
#home{padding-top:26px}
.facts{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.2fr) minmax(0,.7fr) minmax(0,2fr);
  border-top:1px solid var(--ln2);border-bottom:1px solid var(--ln2)}
.facts>div{padding:12px 18px 14px 0;min-width:0}
.facts>div+div{padding-left:18px;border-left:1px solid var(--ln)}
.facts dt{font-size:13px;color:var(--fg2);font-weight:600;letter-spacing:.06em}
.facts dd{font-size:15px;font-weight:600;margin-top:3px;line-height:1.5}
.und{margin-top:20px;border:1px solid var(--amb);padding:14px 18px;background:var(--s1)}
.und .uh{font-size:15px;font-weight:700}
.und ul{list-style:none;margin-top:8px}
.und li{display:grid;grid-template-columns:180px minmax(0,1fr) minmax(0,1.4fr);gap:14px;padding:8px 0;border-top:1px solid var(--ln);font-size:15px}
.und li a{color:var(--amb);font-weight:700}

.idx-list{columns:2;column-gap:44px;margin-top:30px}
.ig{break-inside:avoid;margin-bottom:30px}
.igh{display:flex;align-items:baseline;gap:12px;padding-bottom:8px;border-bottom:1px solid var(--ln2)}
.igh .gn{font-size:15px;font-weight:800;letter-spacing:.12em;color:var(--amb)}
.igh .gc{font-family:var(--mono);font-size:13px;color:var(--fg2)}
.ig ol{list-style:none}
.ig a{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:4px 12px;align-items:center;
  min-height:58px;padding:9px 12px 9px 6px;text-decoration:none;border-bottom:1px solid var(--ln)}
.ig a:hover,.ig a:focus-visible{background:var(--s2)}
.ig a:focus-visible{outline-offset:-2px}
.ig .no{font-family:var(--mono);font-size:19px;font-weight:600;color:var(--amb);text-align:center;line-height:1;padding:6px 0}
.ig a.last .no{background:var(--amb);color:var(--ink);border-radius:3px}
.ig .tt{min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 12px}
.ig .t{font-size:18px;font-weight:700;line-height:1.35}
.ig .en{font-family:var(--mono);font-size:13px;color:var(--fg2)}
.ig .tg{flex-basis:100%;display:flex;flex-wrap:wrap;gap:4px 14px;font-family:var(--mono);font-size:13px;color:var(--fg2);line-height:1.45}
.ig .tg .hot{color:var(--amb)}
.ig .ct{font-family:var(--mono);font-size:13px;color:var(--fg2);white-space:nowrap}

/* ══ 章節標頭 ══ */
.sh{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:6px 22px;align-items:end;
  padding-bottom:16px;border-bottom:2px solid var(--ln2)}
.sh .no{font-family:var(--mono);font-weight:600;font-size:64px;line-height:.85;color:var(--amb);letter-spacing:-.04em}
.sh .no small{font-size:17px;color:var(--fg2);letter-spacing:0;margin-left:4px;font-weight:400}
.sh .gp{font-size:14px;font-weight:700;color:var(--fg2);letter-spacing:.14em}
.sh h2{font-size:38px;font-weight:800;line-height:1.15;letter-spacing:.005em}
.sh .en{font-family:var(--mono);font-size:14px;color:var(--fg2);text-transform:uppercase;letter-spacing:.08em}
.sh .rt{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;max-width:520px;padding-bottom:4px}
.sh.find{grid-template-columns:minmax(0,1fr) auto}
.sh.find h2{font-size:28px}

/* ══ 標籤 ══ */
.tag{display:inline-flex;align-items:center;font-family:var(--mono);font-size:12.5px;font-weight:600;line-height:1.3;
  color:var(--fg);border:1px solid var(--ln2);border-radius:3px;padding:4px 8px;white-space:nowrap;text-decoration:none;background:var(--s1)}
.tag.red{background:var(--amb);border-color:var(--amb);color:var(--ink)}
.tag.hollow{background:none}
a.tag.src{color:var(--amb);border-color:var(--amb);background:none;text-decoration:none}
a.tag.src::after{content:"↗";margin-left:5px}
a.tag.src.red{background:var(--amb);color:var(--ink)}
a.tag.src:hover{background:var(--amb);color:var(--ink)}
.st-ok,.st-done{background:var(--fg)!important;color:var(--ink)!important;border-color:var(--fg)!important}
.st-proof{background:none!important;color:var(--fg)!important}
.st-none{background:var(--amb)!important;color:var(--ink)!important;border-color:var(--amb)!important}
.st-recv{border-style:dashed!important;background:none!important}
.of{color:var(--amb)!important;border-color:var(--amb)!important;background:none!important}

/* ══ 來源連結、無連結、未定 ══ */
a.src{color:var(--amb);text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px;
  overflow-wrap:anywhere}
a.src::after{content:"↗";margin-left:3px;text-decoration:none;display:inline-block}
a.src:hover{background:var(--amb);color:var(--ink);text-decoration:none}
td a.src{white-space:nowrap;overflow-wrap:normal}
/* 文字裡一般的外部連結（不是來源連結）也要一眼看得出能點 */
#main section a[href^="http"]:not(.src):not(.tag){color:var(--amb);text-decoration:underline;text-underline-offset:3px}
.nolink{border-bottom:1.5px dashed var(--fg2);padding-bottom:1px}
.nolink::after{content:"（無連結）";font-size:.86em;color:var(--fg2);margin-left:4px;white-space:nowrap}
mark{background:var(--amb);color:var(--ink);padding:0 3px;border-radius:2px}
mark.tbd{font-weight:800;padding:1px 7px;outline:2px solid var(--amb);outline-offset:1px;letter-spacing:.06em}

/* ══ 總覽大標 ══ */
.hero{padding:26px 0 6px}
.hero .eb{font-size:15px;font-weight:600;color:var(--fg2)}
.hero h1{font-family:var(--mono);font-size:clamp(46px,7vw,92px);font-weight:600;line-height:1;letter-spacing:-.03em;margin-top:8px}
.hero h1 em{font-style:normal;color:var(--amb)}
.hero .zhn{font-size:18px;font-weight:600;margin-top:10px}
.hero .bar{display:none}

/* ══ 小標、段落 ══ */
h3{display:flex;align-items:baseline;gap:6px 14px;flex-wrap:wrap;font-size:21px;font-weight:800;line-height:1.35;
  margin:40px 0 4px;padding-bottom:8px;border-bottom:1px solid var(--ln2)}
h3 .as,h4.stg-h .as{margin-left:auto;font-size:14px;font-weight:600;color:var(--fg2)}
h4.stg-h{display:flex;align-items:baseline;gap:4px 12px;flex-wrap:wrap;font-size:17px;font-weight:700;margin:24px 0 2px}
h4.stg-h .ht{font-family:var(--mono);font-weight:600}
.p{font-size:16px;margin-top:12px;max-width:88ch}
.disc{font-size:15px;color:var(--fg2);margin-top:12px;max-width:88ch}
.lead{font-size:16.5px;font-weight:600;margin-top:14px;padding:12px 16px;background:var(--s1);border:1px solid var(--ln)}

/* ══ 表格 ══ */
.tw{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-top:14px;border:1px solid var(--ln2);border-radius:3px}
table{width:100%;border-collapse:collapse;font-size:15px;min-width:520px}
th{text-align:left;font-size:13px;font-weight:700;color:var(--fg2);letter-spacing:.04em;white-space:nowrap;
  padding:10px 14px;background:var(--s2);border-bottom:1px solid var(--ln2);position:sticky;top:0}
td{padding:10px 14px;border-bottom:1px solid var(--ln);vertical-align:top}
tbody tr:last-child td{border-bottom:0}
td.n{text-align:right;font-family:var(--mono);font-weight:600;white-space:nowrap;font-size:14.5px}
td.w{width:100%}
td.n.w{text-align:left;font-family:var(--sans);font-weight:400}
td:first-child:not(.w){white-space:nowrap}
td:first-child:not(.w) br+*{white-space:normal}
tbody tr:hover td{background:var(--s1)}
tr.mark td{background:#2E2416;font-weight:600}
tr.mark:hover td{background:#372B19}
tr.sum td{border-top:1px solid var(--ln2);background:var(--s2);font-weight:800}
caption{caption-side:bottom;text-align:left;font-size:14px;color:var(--fg2);padding:10px 14px;border-top:1px solid var(--ln)}
table.rdn{min-width:960px}
table.rdn td:nth-child(1){white-space:nowrap;width:36px;font-family:var(--mono)}
table.rdn td:nth-child(2){white-space:nowrap;width:120px;font-weight:700;font-family:var(--mono)}
table.rdn td:nth-child(3){white-space:nowrap;width:60px;text-align:right;font-family:var(--mono)}
table.rdn td:nth-child(4){min-width:180px;font-weight:700}
table.rdn td:nth-child(5){min-width:200px;white-space:pre-line}
table.rdn td:nth-child(n+6):nth-child(-n+8){white-space:nowrap;width:60px;font-size:14px}
table.rdn td:nth-child(9){min-width:300px;width:34%;white-space:pre-line;font-size:14px}
table.rdn tr.mark td,table.rooms td{white-space:normal}

/* ══ 提醒框 ══ */
.note{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 14px;align-items:start;margin-top:16px;
  padding:14px 16px;background:var(--s1);border:1px solid var(--amb);border-radius:3px}
.note .h{background:var(--amb);color:var(--ink);font-size:13.5px;font-weight:800;padding:3px 9px;border-radius:2px;white-space:nowrap;margin-top:2px}
.note.n2{border-color:var(--ln2)}
.note.n2 .h{background:none;color:var(--fg);border:1px solid var(--fg2)}
.note p{font-size:15px;line-height:1.65}
.note p+p{margin-top:8px}

/* ══ 關鍵數字 ══ */
.figs,.adsum{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));margin-top:16px;
  border-top:1px solid var(--ln2);border-bottom:1px solid var(--ln2)}
.fig,.adsum>div{padding:14px 18px 16px 0;min-width:0}
.fig+.fig,.adsum>div+div{padding-left:18px;border-left:1px solid var(--ln)}
.fig .k,.adsum .k{font-size:13.5px;font-weight:600;color:var(--fg2)}
.fig b,.adsum b{display:block;font-family:var(--mono);font-weight:600;font-size:clamp(26px,3vw,36px);line-height:1.1;margin-top:4px;letter-spacing:-.02em}
.fig b i{font-family:var(--sans);font-style:normal;font-size:14px;font-weight:600;color:var(--fg2);margin-left:5px;letter-spacing:0}
.fig .s{font-size:14px;color:var(--fg2);margin-top:5px;line-height:1.5}

/* ══ 鍵值 ══ */
.kvl{margin-top:14px;border-top:1px solid var(--ln2)}
.kvl>div{display:grid;grid-template-columns:220px minmax(0,1fr);gap:16px;padding:10px 0;border-bottom:1px solid var(--ln)}
.kvl b{font-weight:700;color:var(--fg2)}
.kvl .hot span{color:var(--amb);font-weight:700}

/* ══ 圖面：深色頁上一律乾淨白框，不反相 ══ */
.plate{margin-top:16px;cursor:zoom-in}
.plate img{display:block;width:100%;height:auto;background:#fff;border:10px solid #fff;border-radius:2px}
.plate figcaption{display:flex;gap:14px;align-items:baseline;padding:8px 2px 0;font-size:14.5px;font-weight:600}
.plate figcaption .r{margin-left:auto;font-family:var(--mono);font-size:13px;color:var(--fg2);font-weight:400;text-align:right}
.plate:hover img{border-color:#FFF4E0}
.grid2,.rg{display:grid;gap:22px;margin-top:4px}
.grid2,.rg.c2{grid-template-columns:repeat(2,minmax(0,1fr))}
.rg.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.rg .plate figcaption{font-size:14px}

/* ══ 施工圖卡（文字＋圖） ══ */
.st{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,440px);margin-top:20px;background:var(--s1);border:1px solid var(--ln2);border-radius:3px}
.st .l{padding:18px 22px 20px}
.st h4{font-size:24px;font-weight:800;line-height:1.25}
.st .tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.st dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:0 18px;margin-top:14px;font-size:15px}
.st dt{color:var(--fg2);font-weight:600;padding:8px 0;border-top:1px solid var(--ln);white-space:nowrap}
.st dd{padding:8px 0;border-top:1px solid var(--ln);font-variant-numeric:tabular-nums}
.st .p{font-size:15px}
.st .w{margin-top:14px;padding:10px 12px;border:1px solid var(--amb);font-size:14.5px}
.st .w b{color:var(--amb)}
.st .r{background:#fff;padding:10px;cursor:zoom-in;align-self:start;margin:12px 12px 12px 0;border-radius:2px}
.st .r img{display:block;width:100%;height:auto}

/* ══ 節目卡 ══ */
.pg{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,380px);margin-top:10px;background:var(--s1);border:1px solid var(--ln2);border-radius:3px}
.pg .l{padding:14px 18px}
.pg h4{font-size:19px;font-weight:800;line-height:1.4}
.pg .tm{font-family:var(--mono);font-size:24px;font-weight:600;color:var(--amb);margin-top:4px;line-height:1.2;font-variant-numeric:tabular-nums}
.pg .mm{font-size:15px;margin-top:8px;line-height:1.6}
.pg .mm b{color:var(--amb)}
.pg .r{border-left:1px solid var(--ln2);padding:12px 16px;background:var(--s2)}
.pg .rh{font-size:13px;font-weight:700;color:var(--fg2);padding-bottom:6px;border-bottom:1px solid var(--ln)}
.pg dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:0 12px;font-size:14.5px}
.pg dt{font-family:var(--mono);font-size:13.5px;font-weight:600;padding:7px 0;border-bottom:1px solid var(--ln);white-space:nowrap}
.pg dd{padding:7px 0;border-bottom:1px solid var(--ln)}
.pg .none{font-size:14px;color:var(--fg2);padding:8px 0}

/* ══ 演出 Rider ══ */
.act{margin-top:20px;background:var(--s1);border:1px solid var(--ln2);border-radius:3px}
.act .hd{display:flex;align-items:baseline;gap:8px 14px;flex-wrap:wrap;padding:14px 18px;border-bottom:1px solid var(--ln2);background:var(--s2)}
.act .hd h4{font-size:22px;font-weight:800}
.act .hd .sb{font-size:15px;color:var(--fg2)}
.act .hd .r{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}
.act .bd{padding:4px 18px 16px}
.act dl{display:grid;grid-template-columns:200px minmax(0,1fr);gap:0 20px;font-size:15px}
.act dt{padding:10px 0;border-bottom:1px solid var(--ln);font-weight:700;color:var(--fg2)}
.act dd{padding:10px 0;border-bottom:1px solid var(--ln)}
.act ul{list-style:none;margin-top:12px;font-size:15px}
.act li{padding:7px 0 7px 18px;position:relative;border-bottom:1px solid var(--ln)}
.act li::before{content:"";position:absolute;left:2px;top:16px;width:6px;height:6px;background:var(--fg2)}
.act li.w{font-weight:700}
.act li.w::before{background:var(--amb)}
.act .bd .rnote{margin-top:10px;font-size:14px;color:var(--fg2);border-top:1px dashed var(--ln2);padding-top:9px}

/* ══ 攤位格、房間分群、並排欄 ══ */
.bth{display:grid;grid-template-columns:repeat(auto-fill,minmax(176px,1fr));gap:8px;margin-top:14px}
.bth>div{display:flex;flex-direction:column;gap:3px;padding:10px 12px;background:var(--s1);border:1px solid var(--ln2);border-radius:3px;min-width:0}
.bth .n{font-size:15px;font-weight:700;line-height:1.35;display:flex;flex-wrap:wrap;gap:0 8px}
.bth .n .a{font-family:var(--mono);color:var(--amb);font-size:13.5px;font-weight:600}
.bth .g{font-family:var(--mono);font-size:19px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.2}
.bth .g i{font-style:normal;font-size:13px;margin-left:2px;color:var(--fg2)}
.bth .m{font-size:13.5px;color:var(--fg2)}
.bth>div.big{border:2px solid var(--amb)}
.rms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 28px;margin-top:12px}
.rms>section{display:block!important;padding:12px 0 0;border-top:2px solid var(--ln2)}
.rms h4{font-size:16px;font-weight:700;margin-bottom:6px}
.rms dl{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 12px;font-size:15px}
.rms dt{padding:6px 0;border-bottom:1px solid var(--ln)}
.rms dd{padding:6px 0;border-bottom:1px solid var(--ln);text-align:right;font-family:var(--mono);font-weight:600;white-space:nowrap}
.rms p{font-size:14px;color:var(--fg2);margin-top:8px}
.stg-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;margin-top:6px}
.stg{min-width:0;margin-bottom:12px}
.stg td:nth-child(1),.stg td:nth-child(2){white-space:nowrap}

/* ══ 廣告版位 ══ */
.adg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px}
.ad{display:flex;flex-direction:column;min-width:0;background:var(--s1);border:1px solid var(--ln2);border-radius:3px}
.ad .im{background:#fff;aspect-ratio:4/3;display:grid;place-items:center;overflow:hidden;cursor:zoom-in;margin:8px 8px 0;padding:6px;border-radius:2px}
.ad .im img{width:100%;height:100%;object-fit:contain;display:block}
.ad .im.no{background:var(--s2);cursor:default;border:1px dashed var(--ln2)}
.ad .im.no span{font-size:14px;font-weight:600;color:var(--fg2)}
.ad .bd{padding:10px 12px 12px;display:flex;flex-direction:column;gap:6px;flex:1}
.ad .cd{display:flex;gap:6px;flex-wrap:wrap}
.ad h4{font-size:16px;font-weight:700;line-height:1.4}
.ad .dim{font-family:var(--mono);font-size:15px;font-weight:600}
.ad .ds{font-size:14px;color:var(--fg2);line-height:1.5}
.ad .mt{font-size:14px;line-height:1.5;border-top:1px solid var(--ln);padding-top:6px;margin-top:auto}
.ad .wn{font-size:14px;color:var(--amb);font-weight:700}
.ad a.src,.ad .ds,.ad .mt,.ad .wn{overflow-wrap:anywhere}

/* ══ 來源清冊 ══ */
.srchead,.srcrow{display:grid;grid-template-columns:minmax(0,1fr) 150px 140px 160px;gap:0 18px}
.srchead{margin-top:16px;padding:9px 0;border-bottom:1px solid var(--ln2);font-size:13px;font-weight:700;color:var(--fg2)}
.srcrow{padding:12px 0;border-bottom:1px solid var(--ln);align-items:start}
.srcrow .nm{font-size:15.5px;font-weight:600}
.srcrow .mt{font-size:14px;color:var(--fg2)}
.srcrow .mt:nth-child(3){font-family:var(--mono);font-size:13.5px}
.srcrow .wn{grid-column:1/-1;font-size:14px;color:var(--amb);font-weight:600;margin-top:4px}

/* ══ 換章 ══ */
.pn{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:56px}
.pn a{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;gap:2px 12px;align-items:center;
  min-height:72px;padding:12px 18px;text-decoration:none;background:var(--s1);border:1px solid var(--ln2);border-radius:3px}
.pn a:hover{border-color:var(--amb)}
.pn kbd{grid-row:1/3}
.pn .d{font-size:13.5px;color:var(--fg2);font-weight:600}
.pn .t{font-size:17px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pn .t b{font-family:var(--mono);color:var(--amb);font-weight:600}
.pn .pn-next{grid-template-columns:minmax(0,1fr) auto;text-align:right}
.pn .pn-next kbd{grid-column:2;grid-row:1/3}
.pn .pn-next .d,.pn .pn-next .t{grid-column:1}

/* ══ 搜尋結果 ══ */
#res{display:none;padding-top:26px}
#res.on{display:block!important}
.cm{margin-top:16px}
.cmh{font-size:13.5px;font-weight:700;color:var(--fg2);margin-bottom:6px}
.cm a{display:flex;align-items:baseline;gap:12px;min-height:52px;padding:12px 14px;text-decoration:none;
  background:var(--s1);border:1px solid var(--ln2);border-radius:3px;margin-bottom:6px}
.cm a:hover,.cm a:focus-visible{border-color:var(--amb)}
.cm b{font-family:var(--mono);color:var(--amb);font-weight:600;font-size:17px}
.cm span{font-size:18px;font-weight:700}
.cm i{font-family:var(--mono);font-style:normal;font-size:13px;color:var(--fg2)}
.rr{display:grid;grid-template-columns:170px minmax(0,1fr);gap:4px 18px;align-items:start;padding:12px 0;border-bottom:1px solid var(--ln)}
.rr .tag{justify-self:start;min-height:34px;font-family:var(--sans);font-size:14px;font-weight:700;white-space:normal}
.rr .tag:hover,.rr .tag:focus-visible{border-color:var(--amb);color:var(--amb)}
.rr .w{font-size:15px;line-height:1.6}
.rnone{padding:22px 0;font-size:16px}

/* ══ 燈箱 ══ */
#lb{position:fixed;inset:0;z-index:90;display:none;align-items:center;justify-content:center;
  padding:64px 24px 60px;background:rgba(10,9,7,.96);cursor:zoom-out}
#lb.on{display:flex}
#lb img{max-width:100%;max-height:100%;object-fit:contain;background:#fff;border:10px solid #fff}
#lb .cl{position:absolute;top:10px;right:12px;width:48px;height:48px;font-size:20px;font-weight:700;cursor:pointer;
  color:var(--fg);background:var(--s2);border:1px solid var(--ln2);border-radius:3px}
#lb .cp{position:absolute;left:0;right:0;bottom:0;padding:12px 20px;font-size:14.5px;font-weight:600;background:var(--deep);border-top:1px solid var(--ln2)}

/* ══ 頁尾 ══ */
footer{border-top:1px solid var(--ln);margin-top:24px}
.fin{padding:16px var(--gut) 22px;display:flex;flex-wrap:wrap;gap:6px 26px;font-size:13.5px;color:var(--fg2)}
.toTop{position:fixed;right:20px;bottom:20px;z-index:30;width:48px;height:48px;display:none;cursor:pointer;
  font-size:18px;color:var(--fg);background:var(--s2);border:1px solid var(--ln2);border-radius:3px}
.toTop.on{display:block}
.toTop:hover{border-color:var(--amb);color:var(--amb)}

/* ══ 中寬：快選格與鍵盤提示收起 ══ */
@media(max-width:1279px){
  .strip{display:none}
  .keys{font-size:12.5px}
  .orig{display:none}
}
@media(max-width:1060px){
  .idx-list{columns:1}
  .facts{grid-template-columns:1fr 1fr}
  .facts>div:nth-child(3){padding-left:0;border-left:0}
  .facts>div:nth-child(n+3){border-top:1px solid var(--ln)}
  .adg{grid-template-columns:repeat(3,minmax(0,1fr))}
  .st{grid-template-columns:minmax(0,1fr) minmax(0,340px)}
  .keys{display:none}
  .prt{margin-left:auto}
}

/* ══ 手機：指令列固定在底部拇指位置 ══ */
@media(max-width:760px){
  :root{--pad:16px}
  body{font-size:16px;padding-bottom:calc(76px + env(safe-area-inset-bottom))}
  .bar1{gap:10px;min-height:52px;flex-wrap:wrap;padding-top:2px;padding-bottom:2px}
  .home .su,.when,.keys,.prt{display:none}
  .home .ti{font-size:16px}
  .here{display:block;margin-left:auto;font-family:var(--mono);font-size:13.5px;font-weight:600;color:var(--fg);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1;text-align:right}
  body.v-home header{position:static}
  body.v-home .orig{display:flex;flex-wrap:nowrap;overflow-x:auto;width:calc(100% + var(--pad));margin-right:calc(-1 * var(--pad));
    padding:2px var(--pad) 10px 0;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  body.v-home.searching .orig{display:none}
  body.v-home .orig .tag{min-height:44px;padding:0 12px;font-size:13px;flex:none}
  .bar2{position:fixed;left:0;right:0;bottom:0;z-index:50;padding:8px 10px calc(8px + env(safe-area-inset-bottom));
    background:var(--deep);border-top:1px solid var(--ln2);border-bottom:0}
  body.v-home .bar2{padding:8px 10px calc(8px + env(safe-area-inset-bottom))}
  .cmd,body.v-home .cmd{height:56px;min-width:0;border-width:1.5px}
  .cmd .ps,body.v-home .cmd .ps{font-size:22px;padding-left:12px}
  .cmd input,body.v-home .cmd input{font-size:17px;font-weight:400}
  .cmd .idx{padding:0 14px;font-size:15px}
  .cmd .x{height:40px;min-width:56px}
  .toTop{bottom:calc(84px + env(safe-area-inset-bottom));right:12px}

  #home{padding-top:16px}
  .facts{grid-template-columns:1fr}
  .facts>div,.facts>div+div{display:grid;grid-template-columns:72px minmax(0,1fr);gap:10px;padding:9px 0;border-left:0}
  .facts dt{padding-top:2px}
  .facts dd{margin-top:0;font-size:14.5px}
  .facts>div+div{border-top:1px solid var(--ln)}
  .und li{grid-template-columns:1fr;gap:2px}
  .ig a{grid-template-columns:42px minmax(0,1fr);min-height:60px;padding-right:4px}
  .ig .ct{grid-column:2;font-size:12.5px}
  .ig .t{font-size:17.5px}

  #main>section{padding-top:20px}
  .sh{grid-template-columns:auto minmax(0,1fr);gap:8px 14px;padding-bottom:12px}
  .sh .no{font-size:44px}
  .sh .no small{display:block;font-size:13px;margin:4px 0 0}
  .sh h2{font-size:26px}
  .sh .rt{grid-column:1/-1;justify-content:flex-start;max-width:none}
  .sh.find .rt{grid-column:auto}
  .hero h1{font-size:46px}
  h3{font-size:19px;margin-top:32px}
  h3 .as,h4.stg-h .as{margin-left:0;width:100%}
  table{font-size:14.5px}
  td,th{padding:9px 10px}
  .grid2,.rg.c2,.rg.c3,.stg-grid,.rms{grid-template-columns:1fr}
  .plate img{border-width:6px}
  .figs,.adsum{grid-template-columns:1fr 1fr}
  .fig,.adsum>div{padding:12px 12px 12px 0}
  .fig+.fig,.adsum>div+div{padding-left:12px}
  .fig:nth-child(odd),.adsum>div:nth-child(odd){padding-left:0;border-left:0}
  .fig:nth-child(n+3),.adsum>div:nth-child(n+3){border-top:1px solid var(--ln)}
  .kvl>div{grid-template-columns:1fr;gap:2px}
  .st,.pg{grid-template-columns:1fr}
  .st .r{margin:0 12px 12px}
  .st .l{padding:16px}
  .pg .r{border-left:0;border-top:1px solid var(--ln2)}
  .act dl{grid-template-columns:1fr}
  .act dt{border-bottom:0;padding-bottom:0}
  .act .hd .r{margin-left:0;width:100%}
  .adg{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .bth{grid-template-columns:repeat(2,minmax(0,1fr))}
  .srchead{display:none}
  .srcrow{grid-template-columns:1fr;gap:2px}
  .rr{grid-template-columns:1fr;gap:6px}
  .pn{grid-template-columns:1fr;gap:8px;margin-top:40px}
  .pn kbd{display:none}
  .pn a,.pn .pn-next{grid-template-columns:1fr;min-height:64px}
  .pn .pn-next .d,.pn .pn-next .t{grid-column:1}
  .note{grid-template-columns:1fr}
  .note .h{justify-self:start}
  /* 觸控目標：內文來源連結撐到 44px */
  a.src:not(.tag){display:inline-block;padding-block:11px;line-height:1.35}
  main a.tag.src{min-height:44px}
  td a.src:not(.tag){margin-block:-11px}
  /* 現場先找章：手機首頁索引排在案子資訊前面 */
  #home{display:flex;flex-direction:column}
  .facts{order:2;margin-top:8px}
  .idx-list{margin-top:4px}
}

/* ══ 列印：pager 只是螢幕顯示方式，印的時候全部章節攤開、轉白底 ══ */
@media print{
  :root{--bg:#fff;--deep:#fff;--s1:#fff;--s2:#f2f2f2;--ln:#ccc;--ln2:#888;--fg:#000;--fg2:#333;--amb:#000;--ink:#fff}
  body{background:#fff;color:#000;padding:0;font-size:10.5pt}
  header,.pn,.toTop,#lb,#home,#res,footer{display:none!important}
  #main>section{display:block!important;padding-top:14pt}
  #main>section+section{break-before:page}
  main{max-width:none;padding:0}
  .tw{overflow:visible;border-color:#888} table{min-width:0} th{position:static}
  .plate,.st,.pg,.act,.note,.ad{break-inside:avoid}
  .plate img,.st .r{border-color:#fff}
  mark,mark.tbd{background:#000;color:#fff;outline:0}
  a.src{color:#000}
}
