/* ============================================================
   LifeOS 色票檔 — 設計規範 v2（2026-09-12）
   全站唯一一份色票＋字型，深淺兩套。這是唯一可以出現色碼的地方，
   外皮 lifeos-theme.css 與各頁一律讀 var(--token)，不要再寫死色碼。
   色票宣告都帶 !important，是為了蓋過各頁自己 :root 裡的同名變數
   （有些頁的 <style> 排在外皮後面，光靠順序蓋不掉）。
   規範頁：https://claude.ai/code/artifact/104707a4-4108-4e30-9ec2-897ac8f2dbaf
   用法：<link rel="stylesheet" href="/webhook/lifeos-tokens.css">
         <script src="/webhook/lifeos-theme.js"></script>   ← 深淺切換鈕
         深淺由 <html data-theme="dark|light"> 決定；局部強制用 .force-light／.force-dark
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600;700&family=Noto+Sans+TC:wght@300;400;500;700;900&family=Noto+Serif+TC:wght@600;700&display=swap');

:root{
  /* 底層 */
  --bg:#0e1113 !important;--top:#0a0d0e !important;--side:#12171a !important;--panel:#151a1d !important;--raise:#1c2327 !important;--sunk:#0a0d0e !important;--hov:#191f22 !important;
  /* 線 */
  --rl:#212a2f !important;--rl2:#2e383e !important;--rl3:#3d4950 !important;
  /* 字：標題數字／內文／次要／標籤 */
  --tx:#e6ebed !important;--body:#cbd3d6 !important;--md:#a7b1b6 !important;--ft:#8b969c !important;
  /* 強調與語意（紅漲綠跌）；-t＝壓在同色網底上的字，-ln＝同色框線 */
  --cy:#3fb6c4 !important;--cy-d:#2b7f8a !important;--cy-h:#5fcbd7 !important;--cy-t:#7fd4de !important;--cy-bg:rgba(63,182,196,.10) !important;--cy-ln:rgba(63,182,196,.45) !important;--on-cy:#061012 !important;--on-fill:#ffffff !important;
  --up:#e35d52 !important;--up-bg:rgba(227,93,82,.13) !important;--up-t:#e89189 !important;--up-ln:#8c3a33 !important;
  --dn:#3faa72 !important;--dn-bg:rgba(63,170,114,.13) !important;--dn-t:#7dcf9f !important;--dn-ln:#2f7d55 !important;
  --wn:#dfa03b !important;--wn-bg:rgba(223,160,59,.10) !important;--wn-t:#e0b46b !important;--wn-ln:#8a6526 !important;
  --vi:#9b8cd6 !important;--ma:#dfa03b !important;--vi-t:#bdb1e8 !important;--vi-ln:#6b5fa0 !important;
  --ov:0 20px 60px rgba(0,0,0,.5) !important;
  /* 字型 */
  --ui:'Archivo','Noto Sans TC',-apple-system,BlinkMacSystemFont,'PingFang TC',sans-serif !important;
  --txt:'Noto Sans TC',-apple-system,'PingFang TC',sans-serif !important;
  --serif:'Noto Serif TC','Songti TC',serif !important;
  --nm:'JetBrains Mono','Noto Sans TC',ui-monospace,monospace !important;
  color-scheme:dark !important;
}
html[data-theme="light"],.force-light{
  --bg:#fafaf7 !important;--top:#ffffff !important;--side:#f0f2f0 !important;--panel:#ffffff !important;--raise:#e8ecea !important;--sunk:#f1f3f2 !important;--hov:#f2f5f3 !important;
  --rl:#e1e5e3 !important;--rl2:#cfd6d5 !important;--rl3:#a8b2b0 !important;
  --tx:#161c20 !important;--body:#2c3439 !important;--md:#4c585e !important;--ft:#6b777d !important;
  /* --cy-d 各頁有時當框線、有時當淡一階的字，所以淺色維持中間調（白底黑底都站得住） */
  --cy:#0f7581 !important;--cy-d:#2b7f8a !important;--cy-h:#0b5c66 !important;--cy-t:#0b5c66 !important;--cy-bg:rgba(15,117,129,.08) !important;--cy-ln:rgba(15,117,129,.4) !important;--on-cy:#ffffff !important;--on-fill:#161c20 !important;
  --up:#c8372d !important;--up-bg:rgba(200,55,45,.08) !important;--up-t:#a32b21 !important;--up-ln:#e6aba5 !important;
  --dn:#187a4b !important;--dn-bg:rgba(24,122,75,.08) !important;--dn-t:#12603a !important;--dn-ln:#a3d2ba !important;
  --wn:#96590a !important;--wn-bg:rgba(150,89,10,.07) !important;--wn-t:#7a4708 !important;--wn-ln:#ddc096 !important;
  --vi:#6a58b8 !important;--ma:#b8680c !important;--vi-t:#53439c !important;--vi-ln:#c2b9e4 !important;
  --ov:0 20px 50px rgba(20,30,35,.18) !important;
  color-scheme:light !important;
}
.force-dark{
  --bg:#0e1113 !important;--top:#0a0d0e !important;--side:#12171a !important;--panel:#151a1d !important;--raise:#1c2327 !important;--sunk:#0a0d0e !important;--hov:#191f22 !important;
  --rl:#212a2f !important;--rl2:#2e383e !important;--rl3:#3d4950 !important;
  --tx:#e6ebed !important;--body:#cbd3d6 !important;--md:#a7b1b6 !important;--ft:#8b969c !important;
  --cy:#3fb6c4 !important;--cy-d:#2b7f8a !important;--cy-h:#5fcbd7 !important;--cy-t:#7fd4de !important;--cy-bg:rgba(63,182,196,.10) !important;--cy-ln:rgba(63,182,196,.45) !important;--on-cy:#061012 !important;--on-fill:#ffffff !important;
  --up:#e35d52 !important;--up-bg:rgba(227,93,82,.13) !important;--up-t:#e89189 !important;--up-ln:#8c3a33 !important;
  --dn:#3faa72 !important;--dn-bg:rgba(63,170,114,.13) !important;--dn-t:#7dcf9f !important;--dn-ln:#2f7d55 !important;
  --wn:#dfa03b !important;--wn-bg:rgba(223,160,59,.10) !important;--wn-t:#e0b46b !important;--wn-ln:#8a6526 !important;
  --vi:#9b8cd6 !important;--ma:#dfa03b !important;--vi-t:#bdb1e8 !important;--vi-ln:#6b5fa0 !important;
  --ov:0 20px 60px rgba(0,0,0,.5) !important;
  color-scheme:dark !important;
}

/* ============================================================
   共用元件（設計規範 v2）— 一律 los- 開頭，不碰各頁原本的 class
   頁首：<div class="los-top">
           <div class="los-brand"><span class="los-pulse"></span><b>LifeOS</b><i>/</i><span class="los-pg">頁名</span></div>
           <nav class="los-tabs"><button class="los-tab on">…</button></nav>
           <div class="los-grow"></div>
           <span class="los-asof">資料 09/11 13:33</span>
           <button class="los-btn">重新整理</button><button class="los-btn pri">主要動作</button>
         </div>
         <p class="los-note">這頁在做什麼（選配）</p>
   ============================================================ */
@keyframes los-pl{50%{opacity:.35}}
.los-top{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;min-height:48px;margin:0 0 14px;padding:0 2px;
  background:transparent;border:0;border-bottom:1px solid var(--rl);border-radius:0;box-shadow:none;font-family:var(--ui);min-width:0}
/* 直接放在 body 下＝整條滿版；body 有 padding 的頁面設 --los-bpt／--los-bpx 抵掉 */
body>.los-top{margin:calc(-1 * var(--los-bpt,0px)) calc(-1 * var(--los-bpx,0px)) 16px;padding:0 max(16px,var(--los-bpx,0px)) 0 max(18px,var(--los-bpx,0px));background:var(--top)}
.los-brand{display:flex;align-items:center;gap:9px;margin:0;padding:0;font-size:14px;font-weight:400;line-height:1.2;letter-spacing:0;white-space:nowrap;color:var(--tx)}
.los-brand b{font-family:'Archivo',var(--ui);font-weight:700;letter-spacing:.02em;color:var(--tx)}
.los-brand i{font-style:normal;color:var(--ft);opacity:.75}
.los-brand .los-pg{color:var(--md);font-weight:500}
.los-pulse{width:7px;height:7px;flex:none;border-radius:50%;background:var(--cy);box-shadow:0 0 0 3px var(--cy-bg);animation:los-pl 2.4s infinite}
.los-tabs{display:flex;align-self:stretch;gap:0;margin:0 0 -1px;padding:0;border:0;background:transparent;overflow-x:auto;scrollbar-width:none}
.los-tabs::-webkit-scrollbar{display:none}
.los-tab{display:flex;align-items:center;gap:6px;min-height:47px;padding:0 12px;margin:0;font:inherit;font-size:13px;font-weight:500;color:var(--ft);
  background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0;box-shadow:none;white-space:nowrap;cursor:pointer;transition:color .15s}
.los-tab:hover{color:var(--tx)}
.los-tab.on,.los-tab.active{color:var(--tx);font-weight:600;border-bottom-color:var(--cy);background:transparent}
.los-grow{flex:1;min-width:0}
.los-acts{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.los-asof{font-family:var(--nm);font-size:11px;color:var(--ft);white-space:nowrap}
.los-note{margin:12px 0 14px;font-size:12px;line-height:1.7;color:var(--ft);letter-spacing:.02em}
.los-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:30px;padding:0 12px;margin:0;font:inherit;font-size:12.5px;font-weight:500;
  color:var(--md);background:transparent;border:1px solid var(--rl2);border-radius:4px;box-shadow:none;white-space:nowrap;cursor:pointer;transition:border-color .15s,color .15s}
.los-btn:hover{border-color:var(--cy);color:var(--cy);background:transparent}
.los-btn.pri{background:var(--cy);border-color:var(--cy);color:var(--on-cy);font-weight:600}
.los-btn.pri:hover{filter:brightness(1.08);color:var(--on-cy);background:var(--cy)}
.los-btn:disabled{opacity:.45;cursor:not-allowed}
@media (max-width:760px){.los-top{padding-top:6px;padding-bottom:6px}.los-tabs{order:9;width:100%}.los-tab{min-height:38px}}
@media (prefers-reduced-motion:reduce){.los-pulse{animation:none}}
.los-dot{display:inline-block;width:6px;height:6px;flex:none;border-radius:50%;background:var(--x,var(--cy))}

/* 深淺切換鈕：由 /webhook/lifeos-theme.js 自動塞進 .los-top，顯示的是「按下去會變成的那一邊」 */
.los-theme{width:30px;padding:0;flex:none;color:var(--ft)}
.los-theme svg{display:block}
.los-ic-moon{display:none}
html[data-theme="light"] .los-ic-sun{display:none}
html[data-theme="light"] .los-ic-moon{display:inline}
.los-theme-float{position:fixed;right:16px;bottom:16px;z-index:9999;background:var(--panel);box-shadow:var(--ov)}
@media print{.los-theme{display:none}}

/* ── 舊配色的淺色對映（palette_flip.py 產生，勿手改）──
   深色＝各頁原本的色，維持原樣；淺色＝同色系壓暗／提亮後的版本 */
:root{
  --xb-0033ad:#0033ad;
  --xb-040708:#040708;
  --xb-04070f:#04070f;
  --xb-050c18:#050c18;
  --xb-052e16:#052e16;
  --xb-060809:#060809;
  --xb-06090a:#06090a;
  --xb-070d1a:#070d1a;
  --xb-075985:#075985;
  --xb-0a0e1a:#0a0e1a;
  --xb-0a1424:#0a1424;
  --xb-0a1525:#0a1525;
  --xb-0a1628:#0a1628;
  --xb-0b1120:#0b1120;
  --xb-0c1a2e:#0c1a2e;
  --xb-0c1f17:#0c1f17;
  --xb-0c2340:#0c2340;
  --xb-0c2e5c:#0c2e5c;
  --xb-0c3070:#0c3070;
  --xb-0d1117:#0d1117;
  --xb-0d1220:#0d1220;
  --xb-0d1626:#0d1626;
  --xb-0d1f3c:#0d1f3c;
  --xb-0d3060:#0d3060;
  --xb-0d3a6a:#0d3a6a;
  --xb-0f1524:#0f1524;
  --xb-0f172a:#0f172a;
  --xb-0f1a2e:#0f1a2e;
  --xb-0f1b30:#0f1b30;
  --xb-0f1e35:#0f1e35;
  --xb-0f1f35:#0f1f35;
  --xb-0f2044:#0f2044;
  --xb-111c30:#111c30;
  --xb-111f33:#111f33;
  --xb-112347:#112347;
  --xb-112a4a:#112a4a;
  --xb-12171a:#12171a;
  --xb-12181a:#12181a;
  --xb-140f30:#140f30;
  --xb-141c33:#141c33;
  --xb-14304f:#14304f;
  --xb-14352b:#14352b;
  --xb-161b22:#161b22;
  --xb-166534:#166534;
  --xb-172238:#172238;
  --xb-1a1050:#1a1050;
  --xb-1a2024:#1a2024;
  --xb-1a2226:#1a2226;
  --xb-1a2333:#1a2333;
  --xb-1a2642:#1a2642;
  --xb-1a3a5c:#1a3a5c;
  --xb-1c2129:#1c2129;
  --xb-1d1412:#1d1412;
  --xb-1e293b:#1e293b;
  --xb-1e2a44:#1e2a44;
  --xb-1e3350:#1e3350;
  --xb-1e3558:#1e3558;
  --xb-1e4060:#1e4060;
  --xb-221618:#221618;
  --xb-234047:#234047;
  --xb-252b34:#252b34;
  --xb-2a4a72:#2a4a72;
  --xb-2d1512:#2d1512;
  --xb-2d3f66:#2d3f66;
  --xb-2e2450:#2e2450;
  --xb-30363d:#30363d;
  --xb-334155:#334155;
  --xb-3a2618:#3a2618;
  --xb-422006:#422006;
  --xb-450a0a:#450a0a;
  --xb-475569:#475569;
  --xb-7c3d25:#7c3d25;
  --xb-9d174d:#9d174d;
  --xf-06b6d4:#06b6d4;
  --xf-0ea5e9:#0ea5e9;
  --xf-10b981:#10b981;
  --xf-22c55e:#22c55e;
  --xf-34d399:#34d399;
  --xf-38bdf8:#38bdf8;
  --xf-4ade80:#4ade80;
  --xf-4fc9d7:#4fc9d7;
  --xf-60a5fa:#60a5fa;
  --xf-63c7d3:#63c7d3;
  --xf-6ee7b7:#6ee7b7;
  --xf-7dd3fc:#7dd3fc;
  --xf-7fd0a3:#7fd0a3;
  --xf-86efac:#86efac;
  --xf-8fdde6:#8fdde6;
  --xf-94a3b8:#94a3b8;
  --xf-9aa5ac:#9aa5ac;
  --xf-a78bfa:#a78bfa;
  --xf-a99ee0:#a99ee0;
  --xf-bae6fd:#bae6fd;
  --xf-c084fc:#c084fc;
  --xf-c3d9ef:#c3d9ef;
  --xf-c4b5fd:#c4b5fd;
  --xf-cbd5e1:#cbd5e1;
  --xf-cfe3ff:#cfe3ff;
  --xf-d3e8dc:#d3e8dc;
  --xf-d8b4fe:#d8b4fe;
  --xf-d8d8d0:#d8d8d0;
  --xf-dba86f:#dba86f;
  --xf-dbe6f2:#dbe6f2;
  --xf-dbeafe:#dbeafe;
  --xf-e2e0d8:#e2e0d8;
  --xf-e2e8f0:#e2e8f0;
  --xf-e2e8f2:#e2e8f2;
  --xf-eab308:#eab308;
  --xf-eafcff:#eafcff;
  --xf-f0c78a:#f0c78a;
  --xf-f0d6cc:#f0d6cc;
  --xf-f19a92:#f19a92;
  --xf-f1f5f9:#f1f5f9;
  --xf-f472b6:#f472b6;
  --xf-f59e0b:#f59e0b;
  --xf-f7931a:#f7931a;
  --xf-f87171:#f87171;
  --xf-f97316:#f97316;
  --xf-facc15:#facc15;
  --xf-fb923c:#fb923c;
  --xf-fbbf24:#fbbf24;
  --xf-fbc9cf:#fbc9cf;
  --xf-fbcfa3:#fbcfa3;
  --xf-fbdf94:#fbdf94;
  --xf-fca5a5:#fca5a5;
  --xf-fcd34d:#fcd34d;
  --xf-fdba74:#fdba74;
  --xf-fde047:#fde047;
  --xf-fde68a:#fde68a;
  --xf-fecaca:#fecaca;
  --xf-fee2e2:#fee2e2;
  --xv-00d395:#00d395;
  --xv-06b6d4:#06b6d4;
  --xv-0ea5e9:#0ea5e9;
  --xv-0f2c3f:#0f2c3f;
  --xv-10b981:#10b981;
  --xv-14b8a6:#14b8a6;
  --xv-1a3a5c:#1a3a5c;
  --xv-22c55e:#22c55e;
  --xv-243f5f:#243f5f;
  --xv-34d399:#34d399;
  --xv-38bdf8:#38bdf8;
  --xv-3fb950:#3fb950;
  --xv-4ade80:#4ade80;
  --xv-4b9fe1:#4b9fe1;
  --xv-58a6ff:#58a6ff;
  --xv-60a5fa:#60a5fa;
  --xv-7dd3fc:#7dd3fc;
  --xv-7f1d1d:#7f1d1d;
  --xv-84cc16:#84cc16;
  --xv-8899a6:#8899a6;
  --xv-8b9bb4:#8b9bb4;
  --xv-93c5fd:#93c5fd;
  --xv-94a3b8:#94a3b8;
  --xv-a78bfa:#a78bfa;
  --xv-bae6fd:#bae6fd;
  --xv-bda593:#bda593;
  --xv-bef264:#bef264;
  --xv-c98b4b:#c98b4b;
  --xv-c9953a:#c9953a;
  --xv-ca8a04:#ca8a04;
  --xv-d29922:#d29922;
  --xv-d8c65a:#d8c65a;
  --xv-e2e0d8:#e2e0d8;
  --xv-e2e8f0:#e2e8f0;
  --xv-e2eaf5:#e2eaf5;
  --xv-e6edf3:#e6edf3;
  --xv-e6f2ff:#e6f2ff;
  --xv-e8ecf5:#e8ecf5;
  --xv-e8f0f8:#e8f0f8;
  --xv-eab308:#eab308;
  --xv-edf4fb:#edf4fb;
  --xv-eef4fb:#eef4fb;
  --xv-f0f7ff:#f0f7ff;
  --xv-f1f5f9:#f1f5f9;
  --xv-f2ddc8:#f2ddc8;
  --xv-f59e0b:#f59e0b;
  --xv-f5f5f0:#f5f5f0;
  --xv-f5f9ff:#f5f9ff;
  --xv-f6dcc3:#f6dcc3;
  --xv-f7931a:#f7931a;
  --xv-f87171:#f87171;
  --xv-f97316:#f97316;
  --xv-fbbf24:#fbbf24;
  --xv-ffe9d6:#ffe9d6;
  --xv-ffedd5:#ffedd5;
  --xv-fff7f0:#fff7f0;
  --xv-fff8f2:#fff8f2;
}
html[data-theme="light"],.force-light{
  --xb-0033ad:#dde7ff !important;
  --xb-040708:#dde9ee !important;
  --xb-04070f:#e1e7f7 !important;
  --xb-050c18:#dee8f8 !important;
  --xb-052e16:#b1f7ce !important;
  --xb-060809:#e2e8eb !important;
  --xb-06090a:#dfe9ec !important;
  --xb-070d1a:#e0e7f7 !important;
  --xb-075985:#cdecfc !important;
  --xb-0a0e1a:#e3e7f4 !important;
  --xb-0a1424:#dfe8f6 !important;
  --xb-0a1525:#dee8f6 !important;
  --xb-0a1628:#dee8f7 !important;
  --xb-0b1120:#e2e7f5 !important;
  --xb-0c1a2e:#dee8f6 !important;
  --xb-0c1f17:#d2ede2 !important;
  --xb-0c2340:#dce9f8 !important;
  --xb-0c2e5c:#dbe8fa !important;
  --xb-0c3070:#dde8fb !important;
  --xb-0d1117:#e3e8ef !important;
  --xb-0d1220:#e3e7f4 !important;
  --xb-0d1626:#e0e8f5 !important;
  --xb-0d1f3c:#dee8f8 !important;
  --xb-0d3060:#dbe8fa !important;
  --xb-0d3a6a:#d9e9fa !important;
  --xb-0f1524:#e2e7f3 !important;
  --xb-0f172a:#e2e7f5 !important;
  --xb-0f1a2e:#e0e8f5 !important;
  --xb-0f1b30:#e0e8f5 !important;
  --xb-0f1e35:#dfe8f6 !important;
  --xb-0f1f35:#dee8f6 !important;
  --xb-0f2044:#e0e7f8 !important;
  --xb-111c30:#e1e8f4 !important;
  --xb-111f33:#dfe8f4 !important;
  --xb-112347:#e0e8f7 !important;
  --xb-112a4a:#dde8f7 !important;
  --xb-12171a:#e3e8eb !important;
  --xb-12181a:#e2e8eb !important;
  --xb-140f30:#e8e5f7 !important;
  --xb-141c33:#e3e7f4 !important;
  --xb-14304f:#dce9f6 !important;
  --xb-14352b:#d1ede5 !important;
  --xb-161b22:#e4e8ed !important;
  --xb-166534:#c3f2d5 !important;
  --xb-172238:#e2e7f3 !important;
  --xb-1a1050:#e8e5fa !important;
  --xb-1a2024:#e3e8eb !important;
  --xb-1a2226:#e2e8eb !important;
  --xb-1a2333:#e2e8f0 !important;
  --xb-1a2642:#e2e7f4 !important;
  --xb-1a3a5c:#dde9f5 !important;
  --xb-1c2129:#e4e7ed !important;
  --xb-1d1412:#eee5e4 !important;
  --xb-1e293b:#e2e8f0 !important;
  --xb-1e2a44:#e2e7f2 !important;
  --xb-1e3350:#e0e8f3 !important;
  --xb-1e3558:#e0e8f4 !important;
  --xb-1e4060:#dde9f4 !important;
  --xb-221618:#eee5e7 !important;
  --xb-234047:#dbeaed !important;
  --xb-252b34:#e4e7ec !important;
  --xb-2a4a72:#dfe8f3 !important;
  --xb-2d1512:#f3e4e2 !important;
  --xb-2d3f66:#e2e7f2 !important;
  --xb-2e2450:#e9e5f3 !important;
  --xb-30363d:#e5e7ea !important;
  --xb-334155:#e3e8ee !important;
  --xb-3a2618:#f1e5dd !important;
  --xb-422006:#fbe3d1 !important;
  --xb-450a0a:#fbe1e1 !important;
  --xb-475569:#e4e7ed !important;
  --xb-7c3d25:#f5e4dd !important;
  --xb-9d174d:#fbe0eb !important;
  --xf-06b6d4:#047a8e !important;
  --xf-0ea5e9:#0a76a7 !important;
  --xf-10b981:#0b7f58 !important;
  --xf-22c55e:#16803d !important;
  --xf-34d399:#1b7e5a !important;
  --xf-38bdf8:#0676a8 !important;
  --xf-4ade80:#17803d !important;
  --xf-4fc9d7:#1e7a85 !important;
  --xf-60a5fa:#076ae4 !important;
  --xf-63c7d3:#257a84 !important;
  --xf-6ee7b7:#157f55 !important;
  --xf-7dd3fc:#0476ac !important;
  --xf-7fd0a3:#2e7d51 !important;
  --xf-86efac:#118039 !important;
  --xf-8fdde6:#1e7a85 !important;
  --xf-94a3b8:#5d718c !important;
  --xf-9aa5ac:#647179 !important;
  --xf-a78bfa:#784cf7 !important;
  --xf-a99ee0:#715ecc !important;
  --xf-bae6fd:#0575b0 !important;
  --xf-c084fc:#9734fa !important;
  --xf-c3d9ef:#3072b4 !important;
  --xf-c4b5fd:#724efa !important;
  --xf-cbd5e1:#557193 !important;
  --xf-cfe3ff:#0066f4 !important;
  --xf-d3e8dc:#407b59 !important;
  --xf-d8b4fe:#9534fc !important;
  --xf-d8d8d0:#70705d !important;
  --xf-dba86f:#9a6326 !important;
  --xf-dbe6f2:#3e72ab !important;
  --xf-dbeafe:#0768ea !important;
  --xf-e2e0d8:#756f57 !important;
  --xf-e2e8f0:#51719c !important;
  --xf-e2e8f2:#4c6faa !important;
  --xf-eab308:#8b6a05 !important;
  --xf-eafcff:#007a8e !important;
  --xf-f0c78a:#996414 !important;
  --xf-f0d6cc:#af5633 !important;
  --xf-f19a92:#d52b1b !important;
  --xf-f1f5f9:#4572a0 !important;
  --xf-f472b6:#d51177 !important;
  --xf-f59e0b:#9a6306 !important;
  --xf-f7931a:#a55d06 !important;
  --xf-f87171:#df0b0b !important;
  --xf-f97316:#b94f05 !important;
  --xf-facc15:#876c03 !important;
  --xf-fb923c:#b45304 !important;
  --xf-fbbf24:#906803 !important;
  --xf-fbc9cf:#dd1029 !important;
  --xf-fbcfa3:#ab5907 !important;
  --xf-fbdf94:#8e6905 !important;
  --xf-fca5a5:#df0707 !important;
  --xf-fcd34d:#8b6b02 !important;
  --xf-fdba74:#ac5902 !important;
  --xf-fde047:#826e01 !important;
  --xf-fde68a:#876c02 !important;
  --xf-fecaca:#e00404 !important;
  --xf-fee2e2:#df0808 !important;
  --xv-00d395:#007f5a !important;
  --xv-06b6d4:#047a8e !important;
  --xv-0ea5e9:#0a76a7 !important;
  --xv-0f2c3f:#d8eaf6 !important;
  --xv-10b981:#0b7f58 !important;
  --xv-14b8a6:#0e7d71 !important;
  --xv-1a3a5c:#dde9f5 !important;
  --xv-22c55e:#16803d !important;
  --xv-243f5f:#dfe8f3 !important;
  --xv-34d399:#1b7e5a !important;
  --xv-38bdf8:#0676a8 !important;
  --xv-3fb950:#2b7f37 !important;
  --xv-4ade80:#17803d !important;
  --xv-4b9fe1:#1e73b6 !important;
  --xv-58a6ff:#006ae3 !important;
  --xv-60a5fa:#076ae4 !important;
  --xv-7dd3fc:#0476ac !important;
  --xv-7f1d1d:#f8e2e2 !important;
  --xv-84cc16:#507b0d !important;
  --xv-8899a6:#5f727f !important;
  --xv-8b9bb4:#5c708f !important;
  --xv-93c5fd:#046bdf !important;
  --xv-94a3b8:#5d718c !important;
  --xv-a78bfa:#784cf7 !important;
  --xv-bae6fd:#0575b0 !important;
  --xv-bda593:#876953 !important;
  --xv-bef264:#527b0a !important;
  --xv-c98b4b:#98642e !important;
  --xv-c9953a:#8e6927 !important;
  --xv-ca8a04:#956603 !important;
  --xv-d29922:#8f6817 !important;
  --xv-d8c65a:#7d6f1e !important;
  --xv-e2e0d8:#756f57 !important;
  --xv-e2e8f0:#51719c !important;
  --xv-e2eaf5:#3e70b4 !important;
  --xv-e6edf3:#497397 !important;
  --xv-e6f2ff:#006bdf !important;
  --xv-e8ecf5:#4f6db2 !important;
  --xv-e8f0f8:#3572af !important;
  --xv-eab308:#8b6a05 !important;
  --xv-edf4fb:#2971ba !important;
  --xv-eef4fb:#2d70bf !important;
  --xv-f0f7ff:#006ae4 !important;
  --xv-f1f5f9:#4572a0 !important;
  --xv-f2ddc8:#9d6125 !important;
  --xv-f59e0b:#9a6306 !important;
  --xv-f5f5f0:#71714c !important;
  --xv-f5f9ff:#0064f9 !important;
  --xv-f6dcc3:#a55d19 !important;
  --xv-f7931a:#a55d06 !important;
  --xv-f87171:#df0b0b !important;
  --xv-f97316:#b94f05 !important;
  --xv-fbbf24:#906803 !important;
  --xv-ffe9d6:#b45300 !important;
  --xv-ffedd5:#a45e00 !important;
  --xv-fff7f0:#b35400 !important;
  --xv-fff8f2:#b45300 !important;
}
/* losC() 的查表：舊色碼 → 目前深淺該用的顏色 */
:root{
  --xf-061012:var(--on-cy);
  --xf-0a0d0e:var(--sunk);
  --xf-0b0e10:var(--bg);
  --xf-0d1012:var(--bg);
  --xf-0e1113:var(--bg);
  --xf-0e1214:var(--sunk);
  --xf-131719:var(--panel);
  --xf-151a1d:var(--panel);
  --xf-181d20:var(--raise);
  --xf-191f22:var(--hov);
  --xf-1c2327:var(--raise);
  --xf-1f3236:var(--raise);
  --xf-212a2f:var(--rl);
  --xf-232a2e:var(--rl);
  --xf-2b7f8a:var(--cy-d);
  --xf-2e383e:var(--rl2);
  --xf-2f7d55:var(--dn-ln);
  --xf-30a46c:var(--dn);
  --xf-313a3f:var(--rl2);
  --xf-3d4950:var(--rl3);
  --xf-3faa72:var(--dn);
  --xf-3fb6c4:var(--cy);
  --xf-414c52:var(--rl3);
  --xf-4ab87a:var(--dn);
  --xf-5c676d:var(--ft);
  --xf-5fcbd7:var(--cy-h);
  --xf-6b5fa0:var(--vi-ln);
  --xf-6fc79b:var(--dn-t);
  --xf-79848a:var(--ft);
  --xf-7dcf9f:var(--dn-t);
  --xf-7fd4de:var(--cy-t);
  --xf-8a6526:var(--wn-ln);
  --xf-8adde6:var(--cy-h);
  --xf-8b7fd4:var(--vi);
  --xf-8b969c:var(--ft);
  --xf-8c3a33:var(--up-ln);
  --xf-9b8cd6:var(--vi);
  --xf-a7b1b6:var(--md);
  --xf-bdb1e8:var(--vi-t);
  --xf-c98f86:var(--up-t);
  --xf-cbd3d6:var(--body);
  --xf-d3dadd:var(--body);
  --xf-d9a441:var(--wn);
  --xf-dee4e7:var(--tx);
  --xf-dfa03b:var(--wn);
  --xf-e0b46b:var(--wn-t);
  --xf-e35d52:var(--up);
  --xf-e5484d:var(--up);
  --xf-e6ebed:var(--tx);
  --xf-e89189:var(--up-t);
  --xf-e8edf3:var(--tx);
  --xf-f08a80:var(--up-t);
  --xf-f0c078:var(--wn-t);
  --xf-00d395:var(--xv-00d395);
  --xf-0f2c3f:var(--xv-0f2c3f);
  --xf-14b8a6:var(--xv-14b8a6);
  --xf-1a3a5c:var(--xv-1a3a5c);
  --xf-243f5f:var(--xv-243f5f);
  --xf-3fb950:var(--xv-3fb950);
  --xf-4b9fe1:var(--xv-4b9fe1);
  --xf-58a6ff:var(--xv-58a6ff);
  --xf-7f1d1d:var(--xv-7f1d1d);
  --xf-84cc16:var(--xv-84cc16);
  --xf-8899a6:var(--xv-8899a6);
  --xf-8b9bb4:var(--xv-8b9bb4);
  --xf-93c5fd:var(--xv-93c5fd);
  --xf-bda593:var(--xv-bda593);
  --xf-bef264:var(--xv-bef264);
  --xf-c98b4b:var(--xv-c98b4b);
  --xf-c9953a:var(--xv-c9953a);
  --xf-ca8a04:var(--xv-ca8a04);
  --xf-d29922:var(--xv-d29922);
  --xf-d8c65a:var(--xv-d8c65a);
  --xf-e2eaf5:var(--xv-e2eaf5);
  --xf-e6edf3:var(--xv-e6edf3);
  --xf-e6f2ff:var(--xv-e6f2ff);
  --xf-e8ecf5:var(--xv-e8ecf5);
  --xf-e8f0f8:var(--xv-e8f0f8);
  --xf-edf4fb:var(--xv-edf4fb);
  --xf-eef4fb:var(--xv-eef4fb);
  --xf-f0f7ff:var(--xv-f0f7ff);
  --xf-f2ddc8:var(--xv-f2ddc8);
  --xf-f5f5f0:var(--xv-f5f5f0);
  --xf-f5f9ff:var(--xv-f5f9ff);
  --xf-f6dcc3:var(--xv-f6dcc3);
  --xf-ffe9d6:var(--xv-ffe9d6);
  --xf-ffedd5:var(--xv-ffedd5);
  --xf-fff7f0:var(--xv-fff7f0);
  --xf-fff8f2:var(--xv-fff8f2);
  --xf-0033ad:var(--xb-0033ad);
  --xf-040708:var(--xb-040708);
  --xf-04070f:var(--xb-04070f);
  --xf-050c18:var(--xb-050c18);
  --xf-052e16:var(--xb-052e16);
  --xf-060809:var(--xb-060809);
  --xf-06090a:var(--xb-06090a);
  --xf-070d1a:var(--xb-070d1a);
  --xf-075985:var(--xb-075985);
  --xf-0a0e1a:var(--xb-0a0e1a);
  --xf-0a1424:var(--xb-0a1424);
  --xf-0a1525:var(--xb-0a1525);
  --xf-0a1628:var(--xb-0a1628);
  --xf-0b1120:var(--xb-0b1120);
  --xf-0c1a2e:var(--xb-0c1a2e);
  --xf-0c1f17:var(--xb-0c1f17);
  --xf-0c2340:var(--xb-0c2340);
  --xf-0c2e5c:var(--xb-0c2e5c);
  --xf-0c3070:var(--xb-0c3070);
  --xf-0d1117:var(--xb-0d1117);
  --xf-0d1220:var(--xb-0d1220);
  --xf-0d1626:var(--xb-0d1626);
  --xf-0d1f3c:var(--xb-0d1f3c);
  --xf-0d3060:var(--xb-0d3060);
  --xf-0d3a6a:var(--xb-0d3a6a);
  --xf-0f1524:var(--xb-0f1524);
  --xf-0f172a:var(--xb-0f172a);
  --xf-0f1a2e:var(--xb-0f1a2e);
  --xf-0f1b30:var(--xb-0f1b30);
  --xf-0f1e35:var(--xb-0f1e35);
  --xf-0f1f35:var(--xb-0f1f35);
  --xf-0f2044:var(--xb-0f2044);
  --xf-111c30:var(--xb-111c30);
  --xf-111f33:var(--xb-111f33);
  --xf-112347:var(--xb-112347);
  --xf-112a4a:var(--xb-112a4a);
  --xf-12171a:var(--xb-12171a);
  --xf-12181a:var(--xb-12181a);
  --xf-140f30:var(--xb-140f30);
  --xf-141c33:var(--xb-141c33);
  --xf-14304f:var(--xb-14304f);
  --xf-14352b:var(--xb-14352b);
  --xf-161b22:var(--xb-161b22);
  --xf-166534:var(--xb-166534);
  --xf-172238:var(--xb-172238);
  --xf-1a1050:var(--xb-1a1050);
  --xf-1a2024:var(--xb-1a2024);
  --xf-1a2226:var(--xb-1a2226);
  --xf-1a2333:var(--xb-1a2333);
  --xf-1a2642:var(--xb-1a2642);
  --xf-1c2129:var(--xb-1c2129);
  --xf-1d1412:var(--xb-1d1412);
  --xf-1e293b:var(--xb-1e293b);
  --xf-1e2a44:var(--xb-1e2a44);
  --xf-1e3350:var(--xb-1e3350);
  --xf-1e3558:var(--xb-1e3558);
  --xf-1e4060:var(--xb-1e4060);
  --xf-221618:var(--xb-221618);
  --xf-234047:var(--xb-234047);
  --xf-252b34:var(--xb-252b34);
  --xf-2a4a72:var(--xb-2a4a72);
  --xf-2d1512:var(--xb-2d1512);
  --xf-2d3f66:var(--xb-2d3f66);
  --xf-2e2450:var(--xb-2e2450);
  --xf-30363d:var(--xb-30363d);
  --xf-334155:var(--xb-334155);
  --xf-3a2618:var(--xb-3a2618);
  --xf-422006:var(--xb-422006);
  --xf-450a0a:var(--xb-450a0a);
  --xf-475569:var(--xb-475569);
  --xf-7c3d25:var(--xb-7c3d25);
  --xf-9d174d:var(--xb-9d174d);
}
