@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@300;400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&family=Noto+Sans+TC:wght@300;400;500;700&display=swap");
/* ══════════════════════════════════════════════════════════════
   Threads 社群工具 · 共用設計語彙（己案 · 帳冊密度版）  [CJ33_MKT_DESK_XIANGYE_V1]
   🔴 色碼、字級、動作元件只寫在這一份，四頁共用。要改顏色只改這個檔。
   🔵 2026-08-17 換皮：乙案（中性排版 · 米白紙／頂部報頭）→ 己案（帳冊密度版 · 白底灰藍／左窄欄）
      class 名稱一個都沒改，四支 Controller 的 HTML 不用動。
   ══════════════════════════════════════════════════════════════ */
:root{
  --paper:#ffffff; --paper2:#f7f8fa; --paper3:#eef1f5;
  --ink:#12171d; --ink2:#39434f;
  /* --ink3 用在 10.5～12px 小字。對白底 4.83:1、對 #f7f8fa 底 4.62:1，都過 4.5 */
  --ink3:#5f6b7a; --faint:#939daa; --rule:#dfe4ea; --hair:#edf0f4;
  --c1:#41597a; --c2:#2b6cb0; --c3:#2f7d4f; --c4:#c0392b;
  --c5:#b8860b; --c6:#5b8f9e; --c7:#7d5573; --c8:#8a7a3d;
  --hot:#c0392b; --mark:#41597a; --ok:#2f7d4f; --warn:#b8860b; --bad:#c0392b;
  --rail:212px;
}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);
  font:12.5px/1.6 "IBM Plex Sans","Noto Sans TC",-apple-system,sans-serif;-webkit-font-smoothing:antialiased}
.n{font-family:"IBM Plex Mono","Noto Sans TC",ui-monospace,monospace;font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}
.serif{font-family:"IBM Plex Sans","Noto Sans TC",sans-serif;font-weight:600;letter-spacing:-.01em}
.sw{display:inline-block;width:9px;height:9px;flex:none}
.up{color:var(--c3);font-weight:600}
.dn{color:var(--ink3)}
/* 動作元件：方角細框 ＋ 等寬字距 ＋ 會伸長的箭頭線 */
button{font-family:inherit}
.act{display:inline-flex;align-items:center;gap:10px;font:500 11.5px/1 "IBM Plex Sans","Noto Sans TC",sans-serif;letter-spacing:.06em;
  padding:9px 15px;border:1px solid var(--ink);color:var(--ink);background:var(--paper);
  cursor:pointer;text-decoration:none;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}
.act:hover{background:var(--ink);color:var(--paper)}
.act:focus-visible{outline:2px solid var(--c2);outline-offset:2px}
.act .arw{display:block;width:16px;height:1px;background:currentColor;position:relative;transition:width .18s}
.act .arw::after{content:"";position:absolute;right:0;top:-3px;width:6px;height:6px;
  border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg)}
.act:hover .arw{width:24px}
.act.solid{background:var(--ink);color:var(--paper)}
.act.solid:hover{background:#000}
.act.ghost{border-color:var(--rule);color:var(--ink2);letter-spacing:.04em;padding:7px 12px;font-size:11px}
.act.ghost:hover{background:var(--paper2);border-color:var(--ink);color:var(--ink)}
.act.mini{padding:5px 10px;font-size:10.5px;letter-spacing:.04em;gap:7px}
.act.mini .arw{width:12px}.act.mini:hover .arw{width:18px}

/* ── 報頭：從「頂部橫幅」改成「左固定窄欄」（HTML 不動，只靠 CSS） ── */
header{position:fixed;left:0;top:0;bottom:0;width:var(--rail);z-index:30;
  background:var(--paper2);border-right:1px solid var(--rule);border-bottom:0;
  display:flex;flex-direction:column;overflow-y:auto}
.mast{max-width:none;margin:0;padding:16px 15px 12px;display:block}
.mast h1{font-family:"IBM Plex Sans","Noto Sans TC",sans-serif;font-size:15px;font-weight:600;margin:0;letter-spacing:.01em;line-height:1.3}
.mast .sub{font-family:"IBM Plex Mono",monospace;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-top:3px;
  padding-bottom:13px;border-bottom:1px solid var(--rule)}
.mast nav{display:flex;flex-direction:column;gap:0;margin:14px 0 0;align-items:stretch}
.mast nav::before{content:"頁面";font-family:"IBM Plex Mono",monospace;font-size:9px;letter-spacing:.16em;color:var(--faint);margin-bottom:6px}
.mast nav a{font-size:12.5px;color:var(--ink2);text-decoration:none;padding:6px 9px;border-bottom:0;border-left:2px solid transparent}
.mast nav a.on{color:var(--ink);border-left-color:var(--ink);font-weight:600;background:var(--paper);
  box-shadow:inset -1px 0 0 var(--rule),0 1px 0 var(--rule),0 -1px 0 var(--rule)}
.mast nav a:hover{background:var(--paper3)}
.mast nav a:last-child{margin-bottom:14px}

/* 狀態帶：留在主區頂端當一條橫向狀態列（它是 header 的兄弟，不在左欄裡） */
.ribbon{border-bottom:1px solid var(--rule);background:var(--paper2);margin-left:var(--rail)}
.ribbon .in{max-width:none;margin:0;padding:8px 24px;display:flex;gap:20px;flex-wrap:wrap;
  font-family:"IBM Plex Mono","Noto Sans TC",ui-monospace,monospace;font-size:10.5px;color:var(--ink3);align-items:center}
.ribbon b{font-weight:400;color:var(--ink2)}
.ribbon .r{margin-left:auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.led{display:inline-block;width:5px;height:5px;border-radius:0;background:var(--ok);margin-right:7px;vertical-align:1px}
.led.w{background:var(--warn)}
.led.b{background:var(--bad)}

/* ── 主區：讓開左欄 ── */
main{max-width:none;margin:0 0 0 var(--rail);padding:0 24px 70px}

/* 段落標題：帳冊的區塊抬頭 */
.head{display:flex;align-items:center;gap:11px;margin:0 -24px 14px;padding:7px 24px;
  background:var(--paper2);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);flex-wrap:wrap}
.head h3{font-family:"IBM Plex Sans","Noto Sans TC",sans-serif;font-size:13px;margin:0;font-weight:600;letter-spacing:.03em}
.head .note{font-size:10.5px;color:var(--ink3)}
.head .r{margin-left:auto;font-size:10.5px;color:var(--ink3);display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.subhd{font-family:"IBM Plex Mono",monospace;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);
  border-bottom:1px solid var(--ink);padding-bottom:6px;margin-bottom:8px}
/* 標籤 */
.flag{display:inline-block;font-family:"IBM Plex Mono",monospace;font-size:10px;letter-spacing:.04em;
  border:1px solid var(--hot);color:var(--hot);padding:1px 6px;font-weight:400;white-space:nowrap}
.flag.n{border-color:var(--rule);color:var(--ink3);font-family:"IBM Plex Mono",monospace}
footer{margin:36px -24px 0;padding:14px 24px 0;border-top:1px solid var(--rule);
  font-size:10.5px;color:var(--faint);line-height:1.9}

@media(max-width:1000px){
  header{position:static;width:auto;border-right:0;border-bottom:1px solid var(--rule)}
  .mast nav{flex-direction:row;flex-wrap:wrap;gap:2px}
  .mast nav::before{width:100%}
  .mast nav a{border-left:0;border-bottom:2px solid transparent}
  .mast nav a.on{border-left:0;border-bottom-color:var(--ink);box-shadow:none}
  .ribbon{margin-left:0}
  main{margin-left:0}
}
@media(max-width:620px){.mast h1{font-size:14px}}
@media print{body{background:#fff;color:#000}header,.ribbon,.act,.mast nav{display:none!important}main{margin:0;max-width:none;padding:0}.head{margin:0;padding:6px 0}}
