/* 主資料庫。左邊是檢索與清單，右邊是內文。
   側欄收合鈕做成最左緣的直書標籤，展開時不佔額外一列，
   收合後整個側欄寬度歸零，內文拿到整個畫面。 */

.sidetab{width:28px;min-width:28px;flex:none;cursor:pointer;border:0;padding:0;
 display:flex;align-items:center;justify-content:center;gap:9px;
 writing-mode:vertical-rl;letter-spacing:3px;font-family:inherit;font-size:12px;
 font-weight:600;background:var(--soft);color:var(--brand);
 border-right:1px solid var(--line)}
.sidetab:hover{background:#ece4d8}
.sidetab .n{font-weight:400;opacity:.7;letter-spacing:0}
main.folded .sidetab{background:var(--brand);color:#fff;border-right-color:var(--brand)}
main.folded .sidetab:hover{background:#84202f}

.side{width:296px;min-width:296px;flex:none;display:flex;flex-direction:column;
 border-right:1px solid var(--line);background:#fff;overflow:hidden}
main.folded .side{width:0;min-width:0;border-right:0}

/* 檢索控制：兩排。第一排是輸入與檢索鈕，第二排把全部條件排在一起，
   排不下自動換行。原本一項一列共五列，佔掉半個側欄高度。 */
.ctl{flex:none;padding:9px 10px;border-bottom:1px solid var(--line);
 display:flex;flex-direction:column;gap:5px}
.ctl .row{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.ctl .srch{flex-wrap:nowrap}
.ctl input[type=search]{flex:1;min-width:0;padding:8px 11px;font:inherit;font-size:13.5px;
 border:1px solid var(--line);border-radius:7px;background:#fff}
.ctl input:focus{outline:0;border-color:var(--brand)}
.ctl .go{flex:none;padding:8px 14px;border:1px solid var(--brand);background:var(--brand);
 color:#fff;border-radius:7px;cursor:pointer;font:inherit;font-size:13px;font-weight:700}
.ctl .go:hover{background:#84202f}
.ctl select{font:inherit;font-size:12px;padding:3px 5px;height:26px;border-radius:6px;
 border:1px solid var(--line);background:#fff;color:var(--ink2);max-width:100%}
.ctl label{font-size:12px;color:var(--ink2);display:flex;align-items:center;gap:3px;
 white-space:nowrap;cursor:pointer}
.ctl .lnk{border:0;background:none;color:var(--brand);font:inherit;font-size:12px;
 cursor:pointer;padding:2px 0;text-decoration:underline;text-underline-offset:2px}
.ctl .lnk:hover{color:#84202f}
.ctl .lnk.off{color:var(--muted)}
.ctl .cnt{font-size:11.5px;color:var(--muted);margin-left:auto;white-space:nowrap}
.ctl .cnt b{color:var(--brand);font-weight:700;font-size:12.5px}

/* 清單 */
.list{flex:1;overflow-y:auto;min-height:0}
.it{display:block;padding:9px 12px;border-bottom:1px solid var(--line);cursor:pointer;
 text-decoration:none;color:inherit}
.it:hover{background:var(--soft)}
.it.on{background:var(--brand-soft)}
.it .h{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap}
.it .z{font-weight:700;font-size:13.5px;color:var(--brand);white-space:nowrap}
.it .d{font-size:11px;color:var(--muted);margin-left:auto;white-space:nowrap;
 font-variant-numeric:tabular-nums}
.it .n{font-size:13px;color:var(--ink);line-height:1.6;margin-top:1px}
.it .q{font-size:11.5px;color:var(--ink2);line-height:1.65;margin-top:2px;
 display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.it .hit{font-size:11px;color:var(--muted);margin-top:3px;line-height:1.6}
.it .hit em{font-style:normal;background:#fdf0c8;color:#6b5400;border-radius:2px;padding:0 1px}
.it .ck{margin-right:6px;vertical-align:-1px}
.list .empty{padding:26px 16px;color:var(--muted);font-size:13px;text-align:center}

/* 內文 */
/* 不要加 scroll-behavior:smooth。它會把 scrollTop 的指定變成動畫，
   而在不執行捲動動畫的環境裡結果是「完全不捲」而非「不平滑」。 */
.doc{flex:1;min-width:0;overflow-y:auto;padding:0}
.doc .inner{max-width:920px;margin:0 auto;padding:26px 34px 90px}
.doc .hd{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap;
 border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:18px}
.doc h1{margin:0 0 6px;font-size:26px;line-height:1.35}
.doc .sub{font-size:12.5px;color:var(--muted);line-height:1.8}
.doc .sub a{color:var(--brand)}
.doc .acts{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap;flex:none}
.doc h2{font-size:17px;margin:30px 0 8px;padding-bottom:6px;
 border-bottom:1px solid var(--line);color:var(--brand)}
.doc h3{font-size:14.5px;margin:18px 0 4px;color:var(--ink)}
.doc p{margin:9px 0}
.doc .seg{margin:10px 0;display:flex;gap:12px;align-items:flex-start}
.doc .seg .no{flex:none;width:2.1em;text-align:right;color:var(--muted);font-size:12px;
 padding-top:3px;font-variant-numeric:tabular-nums}
.doc .seg .tx{flex:1;min-width:0;line-height:2;text-align:justify;white-space:pre-wrap}
.doc .meta{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;font-size:13.5px;
 margin:6px 0 0}
.doc .meta dt{color:var(--muted);white-space:nowrap}
.doc .meta dd{margin:0}
.doc .laws{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.doc .laws a,.doc .laws span{font-size:12.5px;background:var(--soft);border-radius:5px;
 padding:2px 9px;text-decoration:none;color:var(--ink2)}
.doc .laws a:hover{background:var(--brand-soft);color:var(--brand)}
.doc .op{border:1px solid var(--line);border-radius:9px;margin:10px 0;overflow:hidden}
.doc .op>summary{cursor:pointer;padding:10px 14px;font-size:13.5px;background:var(--soft);
 display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.doc .op>summary b{color:var(--brand)}
.doc .op[open]>summary{border-bottom:1px solid var(--line)}
.doc .op .body{padding:12px 16px 16px;white-space:pre-wrap;line-height:1.95;
 font-size:14px;text-align:justify;max-height:70vh;overflow-y:auto}
.doc .ph{padding:70px 20px;text-align:center;color:var(--muted)}
.doc .ph b{display:block;font-family:var(--serif);font-size:19px;color:var(--ink2);
 margin-bottom:8px}

/* 活動標籤。一排橫的標籤貼在內文頂端，跟著捲動標出目前這一節。
   原本做成右側固定直欄，那等於在畫面右邊挖掉一塊固定寬度；
   橫排貼頂只佔一列高度，窄畫面也還能用（自己橫向捲）。 */
.toc{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);
 backdrop-filter:blur(6px);border-bottom:1px solid var(--line);
 display:flex;gap:6px;padding:8px 12px;overflow-x:auto;scrollbar-width:thin}
.toc::-webkit-scrollbar{height:5px}
.toc::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}
.toc a{flex:none;font-size:12.5px;line-height:1.4;color:var(--ink2);text-decoration:none;
 padding:4px 11px;border:1px solid var(--line);border-radius:999px;white-space:nowrap;
 background:#fff}
.toc a:hover{border-color:var(--brand);color:var(--brand)}
.toc a.on{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:700}

/* 意見書列的兩個連結 */
.doc .op>summary .ops{margin-left:auto;display:flex;gap:12px;align-items:center;flex:none}
.doc .op>summary .ops a{font-size:12px;text-decoration:none;white-space:nowrap}
.doc .op>summary .ops a:hover{text-decoration:underline}
.doc .op>summary .ann{color:var(--brand);font-weight:700}

/* AI 白話解說：整段淡黃底。它夾在原文段落之間，不標出來很容易被
   當成原文引用；底色一路包到段落結束，範圍到哪裡一目了然。 */
.doc .aibox{background:var(--ai-bg);border:1px solid var(--ai-line);border-radius:10px;
 padding:2px 18px 14px;margin:8px 0 4px}
/* 警告框維持暖黃。AI 底色已改成冷色，兩者疊著也分得出來，
   不必再把警告染成 AI 的顏色。 */
/* 提醒框長在 AI 區塊裡，用比底色深一階的黃，才看得出是另一層。 */
.doc .aibox .warn,.stbox .warn,.minebox .warn{
 background:var(--warn2-bg);border-left-color:var(--warn2-line);margin:14px 0 4px}
.doc .aibox h3{margin-top:16px}
.doc .aibox p{margin:6px 0}
/* 標題顏色與原文區一致；是不是 AI 由底色表示，不靠標題顏色重複講。 */
.doc h2#s-ai{border-bottom-color:var(--ai-line)}

/* 法條：被引次數標在後面，一眼看出哪一條是常被拿來審查的 */
.doc .laws a .n{font-weight:700;color:var(--brand);margin-left:5px;font-size:11px}
.doc .laws a.ext{color:var(--ink2)}

/* 多案比較 */
.cmp{border-bottom:1px solid var(--line);padding:8px 12px;background:var(--warn-bg);
 font-size:12px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cmp b{color:var(--warn)}
.cmp .btn{padding:3px 9px;font-size:11.5px}
/* 並排比較：每欄就是一份完整內容，欄多時整區橫向捲，
   不要壓縮欄寬把字擠成一條——那樣兩邊都讀不下去。 */
.cmpview{display:grid;gap:18px;padding:22px 26px 80px;overflow-x:auto}
.cmpview .col{border:1px solid var(--line);border-radius:10px;padding:16px 18px;min-width:0}
.cmpview .col h3{margin:0 0 6px;color:var(--brand);font-size:15px}
.cmpview .col h3 a{text-decoration:none}
.cmpview .col h2{font-size:14.5px;margin:18px 0 6px;padding-bottom:5px}
.cmpview .col .seg{margin:7px 0}
.cmpview .col .seg .tx{font-size:13.5px;line-height:1.9}
.cmpview .col .op>summary{font-size:12.5px;padding:7px 11px}
.cmpview .col .aibox{padding:2px 12px 10px}

/* 窄畫面維持左右收合，不改成上下堆疊。堆疊的話一進站整個第一屏都是
   篩選條件，要捲很久才看得到內文——側欄佔寬度總比佔掉整個首屏好，
   而且收合鈕就在最左邊，一按就把畫面全讓給內文。 */
@media(max-width:960px){
 .side{width:min(272px,74vw);min-width:0}
 .doc .inner{padding:18px 16px 70px}
 .doc h1{font-size:20px}
 .doc .hd{gap:8px}
 .doc .acts{margin-left:0}
 .toc{padding:7px 10px}
}
@media(max-width:520px){
 .side{width:min(240px,80vw)}
 .ctl{padding:8px}
 .ctl select{font-size:11.5px}
}

/* 進階篩選彈窗。兩欄格線，每欄一組「含／不含」，
   一眼看得出條件之間是「且」而不是「或」。 */
.modal.adv{max-width:820px}
.modal.adv .grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px;margin:14px 0 4px}
.modal.adv .f{min-width:0}
.modal.adv .f.wide{grid-column:1/-1}
.modal.adv label{display:block;font-size:12.5px;color:var(--ink2);margin-bottom:3px}
.modal.adv .hint{color:var(--muted);font-size:11.5px}
.modal.adv .rng{display:flex;gap:6px;align-items:center}
.modal.adv input,.modal.adv select{width:100%;min-width:0;padding:6px 9px;font:inherit;
 font-size:13px;border:1px solid var(--line);border-radius:6px;background:#fff}
.modal.adv input:focus,.modal.adv select:focus{outline:0;border-color:var(--brand)}
.modal.adv input.no{background:#fffafa}
.modal.adv .mfoot{display:flex;align-items:center;gap:8px;margin-top:16px;
 padding-top:14px;border-top:1px solid var(--line);flex-wrap:wrap}
@media(max-width:700px){.modal.adv .grid{grid-template-columns:1fr}}

/* 篩選區壓縮：搜尋框原本 42px 高、四列各自留白，整塊 126px，
   把清單推得很下面。收成一列輸入、一列選項。 */
.side .ctl{padding:7px 10px;gap:5px}
.side .ctl .row{gap:5px}
.side .ctl input[type=search]{padding:5px 10px;font-size:13px}
.side .ctl .go{padding:5px 12px;font-size:12.5px}
.side .ctl select{height:24px;padding:2px 5px;font-size:11.5px}
.side .ctl label{font-size:11.5px}
.side .ctl .lnk{font-size:11.5px}
.side .ctl .cnt{font-size:11px}

/* 官網欄位裡的連結（判決全文、卷內文書、併案、立場表…）。
   官網給的是公文 PDF，就直接連那份 PDF，不另外轉檔。 */
.oflinks{display:flex;flex-direction:column;gap:4px;margin:8px 0 4px}
.oflinks a{color:var(--brand);text-decoration:none;font-size:13.5px;
 line-height:1.7;padding:3px 0}
.oflinks a:hover{text-decoration:underline}
.oflinks .pdf{display:inline-block;font:12.5px/1.7 var(--mono);
 border:1px solid rgba(0,0,0,.07);background:rgba(0,0,0,.045);border-radius:4px;
 padding:0 5px;color:var(--ink2);vertical-align:1px;margin-left:5px}

/* 本庫整理的區塊。整塊淡黃底，跟上面的官網原文明確分開。 */
.minebox{margin:26px 0 0;background:var(--ai-bg);
 border:1px solid var(--ai-line);border-radius:10px;padding:4px 18px 16px}
.minehd{margin:14px 0 4px;font-size:12.5px;font-weight:700;color:var(--ink2)}
.minehd span{display:block;font-weight:400;font-size:11.5px;color:var(--muted);
 margin-top:2px;line-height:1.7}
.minebox h2{border-bottom-color:var(--ai-line)}

/* 段落本身就是連結時（卷內文書、聲請書…），維持段落的排版 */
.seg .tx a{color:var(--brand);text-decoration:none}
.seg .tx a:hover{text-decoration:underline}
.seg .tx .pdf{display:inline-block;font-size:10px;font-weight:700;
 letter-spacing:.06em;border:1px solid var(--line);border-radius:3px;
 padding:0 4px;color:var(--muted);vertical-align:1px;margin-left:4px}

/* 章節標題底下的一行說明 */
.secnote{margin:4px 0 8px;font-size:12px;color:var(--muted);line-height:1.7}
/* 事實背景的寫法切換。鈕跟著小標走，不另佔一列；未選中的那顆是純文字感，
   避免兩顆實心鈕看起來像兩個分頁。 */
.bghd{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.bgsw{display:inline-flex;gap:4px;margin-left:auto}
.bgsw button{font:inherit;font-size:11.5px;font-weight:400;line-height:1.6;
 padding:1px 10px;border:1px solid var(--ai-line);background:#fff;color:var(--ink2);
 border-radius:999px;cursor:pointer}
.bgsw button:hover{border-color:var(--brand);color:var(--brand)}
.bgsw button.on{background:var(--ai-bg);border-color:var(--brand);color:var(--brand);font-weight:700}
.bgbox[hidden]{display:none}
/* 法律爭點裡對應官方基準的那幾項：與對照表「粗體＝官方」同一條規則 */
.doc .aibox .off{font-weight:700}

/* 並排比較：一列一個欄位，左邊是欄位名，右邊每件一格。
   某一件沒有那個欄位就留空，這樣主文對主文、理由對理由。 */
.cmpview{display:grid;align-items:start;gap:0;padding:18px 22px 80px}
.cmpview>.clab{position:sticky;left:0;background:var(--soft);
 font-weight:700;font-size:13px;color:var(--brand);
 padding:12px 12px;border-top:1px solid var(--line);z-index:1}
.cmpview>.ccell{padding:12px 14px;border-top:1px solid var(--line);min-width:0}
.cmpview>.chd{border-top:0;position:sticky;top:0;z-index:2;
 background:rgba(255,255,255,.97);backdrop-filter:blur(6px);
 padding-top:6px;padding-bottom:10px}
.cmpview>.clab.chd{background:rgba(250,249,246,.97)}
.cmpview>.chd a{font-family:var(--serif);font-size:15px;font-weight:700;
 color:var(--brand);text-decoration:none}
.cmpview>.chd a:hover{text-decoration:underline}
.cmpview .none{color:var(--muted);font-size:13px}
.cmpview .clab.mine,.cmpview .ccell.mine{background:var(--ai-bg)}
.cmpview .clab.mine{color:var(--ink2)}
/* 格子裡不再需要各自的標題 */
.cmpview .ccell h2{display:none}
.cmpview .ccell .seg{margin:4px 0}
@media(max-width:900px){
 .cmpview>.clab{position:static}
}

/* 比較畫面上方的欄位標籤：點一下收起該欄位那一列 */
.cmpbar{position:sticky;top:0;z-index:5;display:flex;flex-wrap:wrap;gap:6px;
 align-items:center;padding:10px 22px;border-bottom:1px solid var(--line);
 background:rgba(255,255,255,.97);backdrop-filter:blur(6px)}
.cmpbar .lb{font-size:12px;color:var(--muted);margin-right:2px}
.cmpbar button{border:1px solid var(--line);background:#fff;border-radius:999px;
 padding:3px 11px;font:inherit;font-size:12px;cursor:pointer;color:var(--muted)}
.cmpbar button:hover{border-color:var(--brand)}
.cmpbar button.on{background:var(--brand-soft);border-color:var(--brand);
 color:var(--brand);font-weight:700}
.cmpbar button.mine.on{background:var(--ai-bg);border-color:var(--ai-line);color:var(--ink2)}
.cmpbar button.all{color:var(--ink2)}
.cmpview [data-f].off{display:none}

/* AI 白話解說新版：審查標的兩欄表、裁判內容按標的分塊 */
.aitg{display:grid;grid-template-columns:74px 1fr;gap:8px 12px;margin:8px 0 4px}
/* 「法規範」「判決」改用 Markdown 行內碼樣式，見 site.css 的 .tag */
.aitg .b{align-self:start;justify-self:start;font:12.5px/1.9 var(--mono);
 background:rgba(0,0,0,.045);border:1px solid rgba(0,0,0,.08);
 border-radius:4px;padding:0 6px;color:var(--ink);white-space:nowrap;
 font-weight:400;letter-spacing:0;
 line-height:19px;padding:0 8px;border-radius:9px;white-space:nowrap;margin-top:4px}
.aitg .v{font-size:14px;line-height:1.95}
.aitg .v small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
/* 「法規範」「判決」原本一紅一藍，改成同一種行內碼樣式；
   兩者的差別靠文字本身，不靠顏色。 */
.b.norm,.b.jud{background:rgba(0,0,0,.045);
 border:1px solid rgba(0,0,0,.08);color:var(--ink)}

/* AI 區塊裡不再出現第二種底色：卡片只用一條細線圈出範圍。 */
.airv{border:1px solid var(--ai-line);border-radius:9px;margin:10px 0;
 padding:12px 16px;background:#fff}
.airv .rh{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;margin-bottom:4px}
.airv .rh .b{font:12.5px/19px var(--mono);font-weight:400;
 background:rgba(0,0,0,.045);border:1px solid rgba(0,0,0,.08);
 border-radius:4px;color:var(--ink);padding:0 8px;
 border-radius:9px;white-space:nowrap}
.airv .rh .obj{font-weight:700;font-size:14px;min-width:0}
/* 合憲違憲用跟立場標記同一顆標籤，不做彩色內文。
   全站規則：顏色只出現在標籤裡，文字一律不帶顏色。 */
.airv .res{font-size:11px;font-weight:700;line-height:19px;padding:0 8px;
 border-radius:10px;
 border-radius:10px;white-space:nowrap;margin-left:auto}
.airv .res.ok{background:var(--y-bg);color:var(--y-ink)}
.airv .res.no{background:var(--n-bg);color:var(--n-ink)}
.airv .lbl{font-size:11.5px;font-weight:700;color:var(--muted);
 margin:9px 0 1px;letter-spacing:.05em}
.airv p{margin:3px 0;font-size:13.8px;line-height:1.95}
/* 結論改成左側細線的引文，像 Markdown 的 blockquote，不用底色。 */
.airv .concl{font-family:var(--serif);background:none;border-left:3px solid var(--ai-line);
 border-radius:0;
 padding:9px 13px}
.aisrc{font-size:11.5px;color:var(--muted);line-height:1.75;margin:6px 0 0}

/* 多數意見及各大法官立場之分析對照表 */
/* 對照表與白話解說都是 AI 產物，用同一種黃底框起來，
   跟下面的官網原文一眼分得出來。 */
.stbox{margin:18px 0 6px;background:var(--ai-bg);border:1px solid var(--ai-line);
 border-radius:10px;padding:4px 20px 16px}
/* 這個 h2 長在框裡面，不像其他章節標題長在框外，再套 .doc h2 的 30px 上緣
   就會在框頂空出一大片。框本身的 margin 已經把它和上一段隔開了。 */
.stbox>h2{border-bottom-color:var(--ai-line);margin-top:6px}
.stbox>h3:first-of-type{margin-top:12px}
/* 表格本身留白底（資料要看得清楚），但不再另外加第三種米色表頭。 */
.stbox .stdet{background:#fff;border:1px solid var(--ai-line)}
.stbox .stmx th,.stbox .strows th{background:#fafafa}
.stwrap{overflow-x:auto;margin:8px 0}
.stmx,.strows{border-collapse:collapse;font-size:12.8px;min-width:100%}
.stmx th,.stmx td,.strows th,.strows td{border:1px solid var(--line);
 padding:6px 8px;text-align:left;vertical-align:top;line-height:1.8}
.stmx th,.strows th{background:var(--soft);font-size:12px;white-space:nowrap}
.stmx td{text-align:center;white-space:nowrap}

/* 爭點欄黏在左邊：意見書多的案子橫向一定要捲，捲走列名就沒人知道
   自己在看哪一列。sticky 的格子必須自己有底色，否則下層內容會透出來。 */
.stmx th:first-child,.stmx td.q{position:sticky;left:0;z-index:2;
 box-shadow:1px 0 0 var(--line)}
.stmx th:first-child{z-index:3;background:var(--soft)}
.stmx td.q{background:var(--ai-bg);text-align:left;white-space:normal;
 min-width:12em;max-width:17em}
/* 多數意見原本不換行，一長句就把整欄撐得比所有立場欄加起來還寬。
   改成正常換行並給上限，真正需要比對立場時還可以整欄收起來。 */
.stmx td.maj{text-align:left;white-space:normal;color:var(--ink2);
 min-width:11em;max-width:20em}
.stmx td:not(.q):not(.maj){min-width:5.6em}
.stbox.nomaj .stmx th:nth-child(2),.stbox.nomaj .stmx td.maj{display:none}
/* 橫向捲動時要能沿著一列讀到底，滑過整列打亮 */
.stmx tr:hover td{background:var(--warn2-bg)}
.stmx tr:hover td.q{background:var(--warn2-bg)}
/* 表格上方的控制列 */
.stctl{display:flex;align-items:center;gap:10px;margin:10px 0 0;flex-wrap:wrap}
.stctl .btn.sm{font-size:12px;padding:3px 10px}
.stctl .hint{font-size:11.5px;color:var(--muted)}
/* 詳表的爭點欄：官方爭點（qid 指向總覽的粗體列）才加粗，其餘正常字重。
   改版前整欄都是粗體，粗體就失去意義。 */
.strows td.obj{width:19%}
.strows td.obj.off{font-weight:700}
.strows td.obj small{display:block;font-weight:400;color:var(--muted);font-size:11.5px}
.strows td.maj{width:24%;color:var(--ink2)}
.strows td.st{width:8%;text-align:center;white-space:nowrap}
.strows td.why{line-height:1.9}

/* 立場標記 */
/* .stb 的樣式與四個色票移到 site.css（全站共用，含意見書檢索頁）。
   這裡不再重複定義，免得兩份各改各的。 */
/* 總覽表：爭點主題標籤、欄名連個人頁 */
/* 官方爭點加粗：憲判以主文項、釋字以官網「解釋爭點」欄為基準（見使用說明） */
.stmx td.q.off{font-weight:700}
.stmx td.q .tpt{margin-top:4px;display:flex;flex-wrap:wrap;gap:4px}
/* 主題碼與面向碼：同一種 Markdown 行內碼樣式，前面補井號。
   主題碼仍然可以點（連到該主題的跨案分析），只是不再用藍色表示，
   改成滑過去變深。名稱顯示中文，原始代碼放 title。 */
.stmx td.q .tpt a,.stmx td.q .tpt span{display:inline-block;
 font:12.5px/1.7 var(--mono);padding:0 6px;border-radius:4px;white-space:nowrap;
 background:rgba(0,0,0,.045);border:1px solid rgba(0,0,0,.08);
 color:var(--brand);text-decoration:none}
.stmx td.q .tpt a::before,.stmx td.q .tpt span::before{content:"#";opacity:.55}
.stmx td.q .tpt a:hover{background:rgba(0,0,0,.09);border-color:var(--brand)}
.stmx td.q .tpt span{color:var(--ink)}
.stmx th a.jl{color:inherit;text-decoration:none}
.stmx th a.jl:hover{color:var(--brand);text-decoration:underline}
/* 憲判評決矩陣 */
.votes th a{color:inherit;text-decoration:none}
.votes th a:hover{color:var(--brand);text-decoration:underline}
.votes td.q small{display:block;color:var(--muted);font-weight:400}
/* 立場表是官網 PDF 的轉錄，不是本站的分析，所以不套 aibox 的黃底 */
.votebody{margin:6px 0 4px}
.votebody .absent{font-size:12.5px;color:var(--muted);margin:8px 0 0}
.vnotes{font-size:12px;color:var(--muted);margin-top:6px}
.vnotes ul{margin:4px 0 0;padding-left:18px}
/* 先例對話區塊 */
.prebox .pos{font-size:13px;color:var(--ink2)}
.precols{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:18px}
.precols h3{margin:8px 0 6px;font-size:14px}
.precols h3 small{color:var(--muted);font-weight:400}
.precols ul{list-style:none;margin:0;padding:0}
.precols li{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;padding:6px 0;border-bottom:1px dotted var(--line);font-size:13px;line-height:1.6}
.precols li .y{color:var(--muted);font-size:12px;min-width:36px}
.precols li a{font-weight:700;color:var(--brand);text-decoration:none}
.precols li a:hover{text-decoration:underline}
.precols li .how{flex:1 1 100%;color:var(--ink2);font-size:12.5px;padding-left:42px}
.precols li small{color:var(--muted);font-size:11px}
.pkt{display:inline-block;font-size:11px;font-weight:700;line-height:17px;padding:0 7px;border-radius:9px;color:#fff;white-space:nowrap}
/* 概括表態：只有整體性表態、對該爭點沒有自己理由的格，畫淡一點 */
.stb.wk{opacity:.5;outline:1px dashed currentColor;outline-offset:-1px}
.pill.wk{opacity:.55}
.suptag{display:inline-block;margin-left:4px;font-size:10px;line-height:16px;padding:0 5px;
  border-radius:8px;background:#f1efe9;color:#8c857c;vertical-align:middle;white-space:nowrap}
.ocrnote{display:inline-block;margin-left:8px;font-size:10.5px;font-weight:400;line-height:16px;
  padding:0 6px;border-radius:8px;background:#fbeee0;color:#9a5b1c;border:1px solid #efd3b4;vertical-align:middle}
.v3note{display:inline-block;margin-left:8px;font-size:10.5px;font-weight:400;line-height:16px;
  padding:0 6px;border-radius:8px;background:#e8f1e9;color:#3d6b4a;border:1px solid #c6dccb;vertical-align:middle}


.stdet{border:1px solid var(--line);border-radius:8px;margin:8px 0;background:#fff}
.stdet>summary{cursor:pointer;padding:8px 12px;font-weight:700;font-size:13.5px;
 color:var(--brand);list-style:none}
.stdet>summary::-webkit-details-marker{display:none}
.stdet>summary::before{content:"▸ ";color:var(--muted)}
.stdet[open]>summary::before{content:"▾ "}
.stdet[open]>summary{border-bottom:1px solid var(--line)}
.stdet .stwrap{margin:0;padding:0 12px 12px}

/* 並排比較的「其他官網資料」：一格裡塞好幾個官網欄位，
   各自要有小標，不然全部黏成一團看不出哪句屬於哪一欄。 */
.cmpview .ofblk+.ofblk{margin-top:12px;padding-top:10px;border-top:1px dotted var(--line)}
.cmpview .ofblk h5{margin:0 0 5px;font-size:12px;font-family:var(--sans);
 font-weight:700;color:var(--muted);letter-spacing:.04em}

/* 先例對話裡的那段散文。它是白話整理的一部分（原本在白話解說區塊的最後），
   移到這裡與抽出來的關係表放在一起——同一件事不必分兩處講。 */
.prebody .dial{margin:8px 0;line-height:2.05;font-size:14px}
.prebody h3{margin:14px 0 6px;font-size:14.5px;color:var(--brand)}
.prebody .precols h3{margin-top:0}

/* 篩選列：下了條件就收成一行摘要，把側欄的高度讓給結果清單 */
.ctl .sum{display:none}
.ctl.min .row{display:none}
.ctl.min .sum{display:flex;gap:8px;align-items:center;flex-wrap:wrap;
 font-size:12px;color:var(--ink2)}
.ctl .sum .on{flex:1;min-width:0;color:var(--brand);font-weight:600}
.ctl .sum .cnt{flex:none}

/* 官網意見書欄位裡，有實質標註的那幾篇多一個連結到 /opinions */
.oflinks a.ann{border:0;background:none;padding:0 0 0 10px;color:var(--brand);
 font-size:12px;text-decoration:none;white-space:nowrap}
.oflinks a.ann:hover{text-decoration:underline}

/* 立場表的主文欄：官網只寫「第一項」，這裡把該項主文全文接上。
   不論長短一律完整顯示。 */
.votes td.q{width:34%;font-weight:400}
.votes td.q b{display:block;margin-bottom:2px}
.votes .mainfull{display:block;font-size:12.5px;line-height:1.8}

/* 紅格第二行：該篇自己的主張（「真正溯及」「訴外裁判」…）。
   用反對色系的字但不再上底色，主張是紅色的補充說明，不是另一個標記。 */
.stmx td .ntag{display:block;margin-top:2px;font-size:11px;line-height:1.5;
  color:var(--n-ink);white-space:nowrap}

/* 官方爭點列的格子底下那一行小字：該欄大法官對這一列所對應主文項的官方票。
   刻意不上色，顏色是立場層的語言，這一行是另一層的資料，不搶視線。 */
.stmx td .ovote{display:block;margin-top:3px;font-size:11px;line-height:1.5;
  color:var(--muted);white-space:nowrap}
