/* =====================================================
   算利所 SUANLI — 品牌設計系統 v2
   所有顏色/字體/圓角皆為 CSS 變數,未來計算器頁面沿用本檔。
   ===================================================== */

:root{
  color-scheme:dark; /* 修正:讓原生下拉選單/日期等控件走深色,避免白底配淺字變隱形 */

  --ink-900:#0D1219; --ink-800:#131A24; --ink-700:#1B2432;
  --ink-600:#263244;
  --line-strong:#546F96;  /* 互動元件邊界,WCAG 1.4.11 需 3:1 */ --ink-300:#9FAFC6; --ink-100:#E8ECF2;
  --gold:#D9A957; --gold-soft:#8F7440;
  --jade:#54C09F; --cinnabar:#F29950; --seal-red:#C0392B;
  --paper:#F4EFE6; --paper-ink:#2A2620;

  --font-display:"Noto Serif TC", serif;
  --font-body:"Noto Sans TC", sans-serif;
  --font-mono:"IBM Plex Mono", monospace;

  --wrap-max:1280px; --radius:10px; --radius-sm:6px;
  --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:20px; --sp-7:28px; --sp-10:40px; --sp-14:56px;
  --shadow:0 8px 30px rgba(0,0,0,.35);;--neon:#3FE8C9
}

/* ---- 日間主題:只覆寫變數,版型不動 ---- */
[data-theme="light"]{
  color-scheme:light;
  /* --- 灰階:米紙系 --- */
  --ink-900:#F3EFE7;   /* 頁面底 */
  --ink-800:#FBF8F1;   /* 面板底 */
  --ink-700:#EFE9DC;   /* 卡片底 */
  --ink-600:#C9BFA8;   /* 分隔線(裝飾用) */
  --line-strong:#8C8575;  /* 互動元件邊界 3:1 */
  --ink-300:#524C3F;   /* 次要文字 4.91 → 6.4:1 */
  --ink-100:#26211A;   /* 主要文字 */
  /* --- 語意色:深色模式的值在米白底上對比不足,日間必須獨立指定 --- */
  --gold:#644717;      /* 重點金   3.61:1 → 7.09:1  AAA */
  --gold-soft:#82652F; /* 次級金   → 4.54:1  AA */
  --jade:#195557;      /* 獲利綠   2.28:1 → 7.02:1  AAA */
  --cinnabar:#8F261E;  /* 虧損紅   3.28:1 → 7.14:1  AAA */
  --seal-red:#8D2919;  /* 印章紅   → 7.09:1  AAA */
  --shadow:0 8px 30px rgba(80,65,35,.14);
}
[data-theme="light"] .statement::before{
  background-image:radial-gradient(circle at 8px 5px, var(--ink-900) 4px, transparent 4.5px);
}
/* 選擇器特異度要贏過下面 body.t-home/.t-ec/.t-fr .site-header(它有多一層 body
   元素選擇器),不然日間模式的不透明背景永遠套用不到,頁面裝飾紋理會透出來 */
[data-theme="light"] body.t-home .site-header,
[data-theme="light"] body.t-ec .site-header,
[data-theme="light"] body.t-fr .site-header{
  background:linear-gradient(180deg, rgba(168,122,42,.06), transparent 70%), var(--ink-900);
}

/* 主題切換鈕 */
.header-tools{display:flex;align-items:center;gap:10px}
.theme-toggle{width:38px;height:38px;border:1px solid var(--line-strong);border-radius:50%;
  background:var(--ink-800);color:var(--gold);font-size:16px;cursor:pointer;
  display:grid;place-items:center;transition:all .15s}
.theme-toggle:hover{border-color:var(--gold-soft)}
.nav-burger{display:none;width:38px;height:38px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);
  background:var(--ink-800);color:var(--ink-100);font-size:16px;cursor:pointer;place-items:center}
.nav-burger:hover{border-color:var(--gold-soft)}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--ink-900);color:var(--ink-100);font-family:var(--font-body);
  font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}
.wrap{max-width:var(--wrap-max);margin:0 auto;padding:0 20px}
.u-gold{color:var(--gold)}
strong{font-weight:700}

/* 下拉選單雙保險:即使瀏覽器忽略 color-scheme 也可讀 */
select{color:var(--ink-100)}
select option{background:var(--ink-700);color:var(--ink-100)}

/* =============== 跳到主要內容 =============== */
/* 鍵盤使用者每次進頁面都要先按過整排頁首導覽(首頁/電商計算室選單6項/加盟計算室選單8項/
   聯盟行銷/關於我們/聯絡我們/隱私權政策/主題切換/漢堡選單)才能到欄位,計算器又是會
   反覆重整、來回填寫的頁面,這個成本會被重複付很多次。平常完全隱藏在畫面外,
   一 Tab 到才跳出來,不影響滑鼠/觸控使用者。 */
.skip-link{position:absolute;left:-9999px;top:0;z-index:1000;
  background:var(--ink-900);color:var(--gold);padding:12px 20px;border-radius:0 0 8px 0;
  font-size:14px;font-weight:700;text-decoration:none;border:1px solid var(--gold)}
.skip-link:focus{left:0}

/* =============== 頁首 =============== */
.site-header{border-bottom:1px solid var(--ink-600);
  background:linear-gradient(180deg, rgba(217,169,87,.05), transparent 70%), var(--ink-900);
  position:sticky;top:0;z-index:50;backdrop-filter:blur(6px)}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}
.brand-seal{width:38px;height:38px;flex:none;display:grid;place-items:center;
  font-family:var(--font-display);font-weight:900;font-size:21px;color:var(--paper);
  background:var(--seal-red);border-radius:8px;box-shadow:inset 0 0 0 2px rgba(244,239,230,.35)}
.brand-name{font-family:var(--font-display);font-weight:900;font-size:18px;letter-spacing:.12em;display:block;line-height:1.2}
.brand-sub{font-size:12px;color:var(--ink-300);letter-spacing:.18em;display:block}
.site-nav{display:flex;gap:4px;align-items:center}
.nav-item{display:inline-flex;align-items:center;height:38px;
  color:var(--ink-300);text-decoration:none;font-size:13px;padding:0 14px;
  border-radius:var(--radius-sm);transition:color .15s, background .15s;position:relative;
  line-height:1;white-space:nowrap}
.nav-item:hover{color:var(--ink-100);background:var(--ink-700)}
.nav-item.is-active{color:var(--gold)}
.nav-item.is-soon{cursor:default;opacity:.55}
.nav-item sup{font-size:12px;color:var(--gold-soft);margin-left:3px;transform:translateY(-5px);line-height:1}

/* 導覽下拉:電商平台 → 四平台介紹 */
.nav-drop{position:relative}
.nav-drop > .nav-item::after{content:" ▾";font-size:12px}
.nav-menu{position:absolute;top:calc(100% + 6px);left:0;min-width:180px;
  background:var(--ink-800);border:1px solid var(--ink-600);border-radius:var(--radius-sm);
  box-shadow:var(--shadow);padding:6px;display:none;z-index:60}
.nav-drop.is-open .nav-menu,.nav-drop:focus-within .nav-menu{display:block}
@media (hover:hover) and (pointer:fine){ .nav-drop:hover .nav-menu{display:block} }
.nav-menu a{display:flex;align-items:center;gap:10px;padding:9px 12px;
  border-radius:4px;text-decoration:none;color:var(--ink-100);font-size:13px}
.nav-menu a:hover{background:var(--ink-700)}
.nav-menu .dot{width:9px;height:9px;border-radius:2px;flex:none}

/* 平台介紹區 */
.pi-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.pi-tab{font-size:13px;padding:8px 18px;border:1px solid var(--ink-600);
  border-radius:999px;background:none;color:var(--ink-300);cursor:pointer;transition:all .15s}
.pi-tab:hover{color:var(--ink-100)}
.pi-tab.is-active{color:var(--ink-900);font-weight:600}
.pi-panel{background:var(--ink-800);border:1px solid var(--ink-600);
  border-radius:var(--radius);padding:26px;border-top:3px solid var(--gold)}
.pi-head{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:6px}
.pi-head h3,.pi-head h2{font-family:var(--font-display);font-size:21px;font-weight:900;letter-spacing:.04em}
.pi-go{font-size:13px;color:var(--ink-900);text-decoration:none;border-radius:var(--radius-sm);
  padding:8px 18px;font-weight:600}
.pi-position{color:var(--ink-300);font-size:13px;margin-bottom:16px}
.pi-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:16px}
.pi-col h4,.pi-col h3{font-family:var(--font-display);font-size:14px;color:var(--gold);margin-bottom:8px;letter-spacing:.06em}
.pi-col ul{list-style:none}
.pi-col li{font-size:13px;padding:5px 0 5px 20px;position:relative;color:var(--ink-100);line-height:1.65}
.pi-col.is-pro li::before{content:"＋";position:absolute;left:0;color:var(--jade);font-weight:700}
.pi-col.is-con li::before{content:"－";position:absolute;left:0;color:var(--cinnabar);font-weight:700}
.pi-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;
  border-top:1px dashed var(--ink-600);padding-top:14px}
.pi-meta .k{font-size:12px;color:var(--ink-300);letter-spacing:.08em;display:block}
.pi-meta .v{font-family:var(--font-mono);font-size:13px;color:var(--gold)}

/* 內容頁段落 */
.prose{font-size:14px;line-height:2;color:var(--ink-100);margin-bottom:14px}
.prose strong{color:var(--gold)}
/* 聯絡表單 */
.contact-form textarea{width:100%;background:var(--ink-900);border:1px solid var(--line-strong);
  border-radius:var(--radius-sm);color:var(--ink-100);font-family:var(--font-body);font-size:14px;
  padding:11px 12px;outline:none;resize:vertical;line-height:1.7}
.contact-form textarea:focus{border-color:var(--gold-soft)}
.contact-form .btn-calc{margin-top:6px}

/* 介紹頁:公司資料卡 */
.pi-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;
  background:var(--ink-700);border:1px solid var(--ink-600);border-radius:var(--radius-sm);
  padding:16px 18px;margin-bottom:20px}
.pi-facts .k{font-size:12px;color:var(--ink-300);letter-spacing:.08em;display:block;margin-bottom:2px}
.pi-facts .v{font-size:13px;color:var(--ink-100);line-height:1.6}
/* 介紹頁:發展沿革 */
.pi-history{list-style:none;border-left:2px solid var(--gold-soft);padding-left:18px;margin:0 0 20px}
.pi-history li{font-size:13px;padding:6px 0;color:var(--ink-100);line-height:1.7}
.pi-history b{color:var(--gold);font-family:var(--font-mono);font-weight:600;margin-right:10px}
.pi-sub{font-family:var(--font-display);font-size:14px;color:var(--gold);letter-spacing:.06em;margin:22px 0 10px}

/* 平台色塊連結(文字商標,非官方 logo) */
.pl-chip{display:flex;align-items:center;gap:12px;padding:14px 16px;
  background:var(--ink-800);border:1px solid var(--ink-600);border-radius:var(--radius);
  text-decoration:none;color:var(--ink-100);transition:all .15s}
.pl-chip:hover{transform:translateY(-2px);border-color:var(--gold-soft)}
.pl-mark{width:38px;height:38px;flex:none;border-radius:9px;display:grid;place-items:center;
  color:#fff;font-family:var(--font-display);font-weight:900;font-size:16px;position:relative;overflow:hidden}
.pl-mark img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;
  background:#fff;border-radius:inherit;padding:6px}
.pl-chip .t{display:flex;flex-direction:column;line-height:1.3}
.pl-chip .t b{font-size:14px}
.pl-chip .t small{font-size:12px;color:var(--ink-300)}

/* =============== 廣告位 =============== */
.ad-slot{border:1px dashed var(--ink-600);border-radius:var(--radius-sm);
  display:grid;place-items:center;color:var(--ink-600);position:relative;
  background:repeating-linear-gradient(45deg, transparent 0 12px, rgba(255,255,255,.012) 12px 24px)}
/* 尚未串接 AdSense,先隱藏空占位框,避免上線後訪客看到空的「ADVERTISEMENT」方塊;
   實際廣告代碼填入 .ad-slot 內、且該廣告服務已核可上線後,移除下面這行即可全站恢復顯示 */
.ad-slot{display:none}
.ad-label{font-family:var(--font-mono);font-size:12px;letter-spacing:.3em;color:var(--ink-600)}
.ad-top{height:96px;margin:20px 0 4px}
.ad-inline{height:120px;margin:var(--sp-10) 0}
.ad-bottom{height:120px;margin:var(--sp-10) 0 var(--sp-2)}

/* =============== 主標 =============== */
.hero{padding:52px 20px 34px}
.hero-eyebrow{font-family:var(--font-mono);font-size:12px;letter-spacing:.35em;
  color:var(--gold);text-transform:uppercase;margin-bottom:14px}
.hero-eyebrow::before{content:"◆ ";font-size:12px;vertical-align:2px}
.hero-title{font-family:var(--font-display);font-weight:900;
  font-size:clamp(30px, 4.6vw, 52px);line-height:1.28;letter-spacing:.02em;max-width:760px}
.hero-lede{margin-top:18px;color:var(--ink-300);max-width:660px;font-size:16px}
.rate-version{margin-top:16px;font-family:var(--font-mono);font-size:12px;color:var(--ink-300)}
.rate-version strong{color:var(--gold)}

/* =============== 版面 =============== */
.layout{display:grid;grid-template-columns:350px minmax(0,1fr);gap:28px;
  align-items:start;padding-bottom:60px}

/* =============== 輸入面板 =============== */
.panel-input{background:var(--ink-800);border:1px solid var(--ink-600);
  border-radius:var(--radius);padding:20px 22px 26px;position:sticky;top:84px;
  max-height:calc(100vh - 104px);overflow-y:auto;
  scrollbar-width:thin;scrollbar-color:var(--ink-600) transparent}
.panel-title{font-family:var(--font-display);font-size:16px;font-weight:700;
  letter-spacing:.08em;color:var(--gold);margin:26px 0 12px;padding-bottom:8px;
  border-bottom:1px solid var(--ink-600)}
.panel-sec{border:none;padding:0;margin:0}
.panel-sec>summary.panel-title{cursor:pointer;list-style:none;margin:20px 0 12px;
  display:flex;align-items:center;justify-content:space-between;user-select:none}
.panel-sec>summary.panel-title::-webkit-details-marker{display:none}
.panel-sec>summary.panel-title::after{content:"▸";font-size:12px;color:var(--gold-soft);
  transition:transform .18s}
.panel-sec[open]>summary.panel-title::after{transform:rotate(90deg)}
.panel-sec:first-of-type>summary.panel-title{margin-top:10px}

/* 多商品頁籤 */
.product-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.product-tab{font-family:var(--font-mono);font-size:12px;
  border:1px solid var(--line-strong);border-radius:999px;
  background:none;color:var(--ink-300);padding:5px 13px;cursor:pointer;transition:all .15s}
.product-tab:hover{color:var(--ink-100);border-color:var(--ink-300)}
.product-tab.is-active{color:var(--ink-900);background:var(--gold);border-color:var(--gold);font-weight:600}
.product-tab.is-add{border-style:dashed}
.product-name-row{display:flex;gap:6px;margin-bottom:12px}
.product-name-row input{flex:1;background:var(--ink-900);border:1px solid var(--line-strong);
  border-radius:var(--radius-sm);color:var(--ink-100);font-size:13px;padding:7px 10px;outline:none}
.product-name-row input:focus{border-color:var(--gold-soft)}
.btn-mini{font-size:12px;border:1px solid var(--line-strong);background:none;color:var(--ink-300);
  border-radius:var(--radius-sm);padding:0 10px;cursor:pointer}
.btn-mini:hover{color:var(--ink-100);border-color:var(--ink-300)}
.btn-mini.is-danger:hover{color:var(--cinnabar);border-color:var(--cinnabar)}
.btn-mini.is-accent{color:var(--gold);border-color:var(--gold-soft)}
.btn-mini.is-accent:hover{color:var(--ink-100);border-color:var(--gold);background:color-mix(in oklab, var(--gold) 16%, transparent)}

/* 範例情境 */
.preset-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;
  font-size:12px;color:var(--ink-300);margin-bottom:4px}
.btn-chip{font-size:12px;border:1px solid var(--line-strong);background:none;color:var(--gold);
  border-radius:999px;padding:3px 12px;cursor:pointer;transition:all .15s}
.btn-chip:hover{background:rgba(217,169,87,.1);border-color:var(--gold-soft)}

.field{margin-bottom:14px}
.field label{display:block;font-size:13px;color:var(--ink-300);margin-bottom:6px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.input-money{display:flex;align-items:center;gap:8px;background:var(--ink-900);
  border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:0 12px;transition:border-color .15s}
.input-money:focus-within{border-color:var(--gold-soft)}
.input-money span{font-family:var(--font-mono);font-size:12px;color:var(--ink-300);flex:none}
.input-money input{width:100%;background:none;border:none;outline:none;color:var(--ink-100);
  font-family:var(--font-mono);font-size:14px;font-weight:600;padding:9px 0;-moz-appearance:textfield}
.input-money input::-webkit-outer-spin-button,
.input-money input::-webkit-inner-spin-button{-webkit-appearance:none}
.input-money.is-invalid{border-color:var(--cinnabar)}

select{width:100%;background:var(--ink-900);border:1px solid var(--line-strong);
  border-radius:var(--radius-sm);font-family:var(--font-body);font-size:14px;
  padding:10px 12px;outline:none}
select:focus{border-color:var(--gold-soft)}

.seg{display:flex;gap:6px;flex-wrap:wrap}
.seg label{flex:1;margin:0;cursor:pointer;min-width:84px}
.seg input{position:absolute;opacity:0;pointer-events:none}
.seg span{display:block;text-align:center;font-size:12px;line-height:1.35;color:var(--ink-300);
  border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:9px 6px;transition:all .15s}
.seg span small{font-size:12px;opacity:.7}
.seg input:checked + span{border-color:var(--gold);color:var(--gold);background:rgba(217,169,87,.08)}
.seg input:focus-visible + span{outline:2px solid var(--gold);outline-offset:2px}

.checkbox-field label{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-100);cursor:pointer}
.checkbox-field input{accent-color:var(--gold);width:15px;height:15px}

.field-group{border:1px solid var(--ink-600);border-radius:var(--radius-sm);padding:12px 14px;margin-bottom:14px}
.field-group summary{cursor:pointer;font-size:13px;color:var(--ink-100);font-weight:600;
  list-style:none;display:flex;align-items:center;gap:8px}
.field-group summary::before{content:"▸";color:var(--gold);transition:transform .15s;font-size:12px}
.field-group[open] summary::before{transform:rotate(90deg)}
.field-group summary::-webkit-details-marker{display:none}
.field-group[open] summary{margin-bottom:12px}
.hint{font-size:13px;color:var(--ink-300);margin:8px 0 10px;line-height:1.6}
.derived{font-size:13px;color:var(--ink-300);margin:4px 0 12px}
.derived strong{font-family:var(--font-mono);color:var(--gold)}
.live-note{margin-top:18px;font-size:12px;color:var(--gold-soft);text-align:center;letter-spacing:.1em}

/* tooltip */
.tip{display:inline-grid;place-items:center;width:15px;height:15px;margin-left:4px;
  border:1px solid var(--ink-300);border-radius:50%;background:none;color:var(--ink-300);
  font-size:12px;cursor:help;vertical-align:1px}
.tip:hover{border-color:var(--gold);color:var(--gold)}
.tooltip-pop{position:fixed;z-index:99;max-width:280px;background:var(--ink-700);
  border:1px solid var(--gold-soft);border-radius:var(--radius-sm);
  padding:10px 13px;font-size:12px;line-height:1.7;color:var(--ink-100);
  box-shadow:var(--shadow);pointer-events:none}

/* =============== 固定摘要條 =============== */
.summary-bar{position:sticky;top:72px;z-index:40;
  display:flex;align-items:center;gap:10px;background:var(--ink-800);
  background:color-mix(in srgb, var(--ink-800) 88%, transparent);
  backdrop-filter:blur(8px);
  border:1px solid var(--ink-600);border-radius:var(--radius-sm);
  padding:9px 16px;margin-bottom:var(--sp-4);
  font-family:var(--font-mono);font-size:12px;color:var(--ink-300)}
.summary-bar .sb-dot{width:8px;height:8px;border-radius:50%;background:var(--jade);flex:none}
.summary-bar.is-loss .sb-dot{background:var(--cinnabar)}
.summary-bar p{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.summary-bar strong{color:var(--gold)}

/* =============== 警示/判定 =============== */
.warn-strip{background:rgba(217,103,87,.08);border:1px solid rgba(217,103,87,.4);
  border-left:4px solid var(--cinnabar);border-radius:var(--radius-sm);
  padding:14px 18px;margin-bottom:14px;font-size:13px}
.warn-strip strong{color:var(--cinnabar)}
.verdict-strip{background:var(--ink-700);border:1px solid var(--ink-600);
  border-left:4px solid var(--gold);border-radius:var(--radius-sm);
  padding:14px 18px;margin-bottom:22px;font-size:14px}
.verdict-strip strong{color:var(--gold)}

/* =============== 對帳單 =============== */
.statements{display:grid;grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));gap:var(--sp-5);min-height:200px}
.statement{background:var(--paper);color:var(--paper-ink);border-radius:4px;
  padding:20px 20px 18px;position:relative;font-family:var(--font-mono);box-shadow:var(--shadow)}
.statement::before{content:"";position:absolute;left:0;right:0;top:-5px;height:10px;
  background-image:radial-gradient(circle at 8px 5px, var(--ink-900) 4px, transparent 4.5px);
  background-size:20px 10px;background-repeat:repeat-x}
.st-head{display:flex;justify-content:space-between;align-items:baseline;
  border-bottom:2px solid var(--paper-ink);padding-bottom:8px;margin-bottom:10px}
.st-platform{font-family:var(--font-display);font-weight:900;font-size:18px;letter-spacing:.06em}
.st-no{font-size:12px;color:#736C5F;letter-spacing:.1em}
.st-lines{font-size:12px}
.st-line{display:flex;justify-content:space-between;gap:10px;padding:3px 0}
.st-line .lbl{color:#5c5647}
.st-line .val{font-weight:600;white-space:nowrap}
.st-line.is-minor .lbl,.st-line.is-minor .val{font-size:12px;color:#736C5F}
.st-line.is-sub{border-top:1px dashed #b9b0a0;margin-top:6px;padding-top:7px}
.st-total{display:flex;justify-content:space-between;align-items:baseline;
  border-top:2px solid var(--paper-ink);margin-top:10px;padding-top:10px}
.st-total .lbl{font-size:12px;font-weight:600}
.st-total .val{font-size:25px;font-weight:600;letter-spacing:.02em}
.st-total.is-profit .val{color:#1E7A5C}
.st-total.is-loss .val{color:var(--seal-red)}
.st-metrics{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;
  margin-top:12px;padding-top:10px;border-top:1px dashed #b9b0a0}
.st-metric .k{font-size:12px;color:#736C5F;letter-spacing:.06em;display:block}
.st-metric .v{font-size:13px;font-weight:600}
.st-foot{margin-top:12px;font-size:13px;color:#736C5F;line-height:1.5;padding-right:76px;min-height:34px}
.st-seal{position:absolute;right:16px;bottom:14px;width:64px;height:64px;
  border:3px solid var(--seal-red);border-radius:50%;display:grid;place-items:center;
  font-family:var(--font-display);font-weight:900;font-size:14px;color:var(--seal-red);
  transform:rotate(-12deg);letter-spacing:.05em;line-height:1.15;text-align:center;opacity:.88;
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .82 .18'/%3E%3C/filter%3E%3Crect width='64' height='64' filter='url(%23n)'/%3E%3C/svg%3E");
  mask-size:cover}
.st-seal.is-good{border-color:#1E7A5C;color:#1E7A5C}
.st-seal.is-thin{border-color:#C99A2E;color:#C99A2E}
@keyframes stamp{
  0%{transform:rotate(-12deg) scale(1.9);opacity:0}
  62%{transform:rotate(-12deg) scale(.93);opacity:.95}
  100%{transform:rotate(-12deg) scale(1);opacity:.88}}
.st-seal{animation:stamp .38s cubic-bezier(.2,.85,.3,1.15) both}

.share-row{margin:18px 0 6px;display:flex;justify-content:flex-end;align-items:center;gap:10px;flex-wrap:wrap}
.share-row select{width:auto;min-width:150px;padding:8px 12px;font-size:13px}
.btn-share{font-family:var(--font-body);font-size:13px;color:var(--gold);
  border:1px solid var(--gold-soft);background:none;border-radius:var(--radius-sm);
  padding:9px 18px;cursor:pointer;transition:all .15s}
.btn-share:hover{background:rgba(217,169,87,.1)}

/* =============== 決策區 =============== */
.section-title{font-family:var(--font-display);font-weight:900;font-size:21px;
  letter-spacing:.04em;margin:var(--sp-14) 0 var(--sp-5);display:flex;align-items:center;gap:14px}
.section-title::after{content:"";flex:1;height:1px;background:var(--ink-600)}
.decision-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));gap:var(--sp-4);margin-bottom:var(--sp-5)}
.d-card{background:var(--ink-800);border:1px solid var(--ink-600);border-radius:var(--radius);padding:20px}
.d-card h3{font-family:var(--font-display);font-size:14px;font-weight:700;
  color:var(--gold);margin-bottom:8px;letter-spacing:.04em}
.d-sub{font-size:13px;color:var(--ink-300);margin-bottom:12px}
.goal-rows{font-family:var(--font-mono);font-size:12px}
.goal-row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px dashed var(--ink-600)}
.goal-row:last-child{border-bottom:none}
.goal-row .p{color:var(--ink-300)}
.goal-row .n{color:var(--ink-100)}
.goal-row .n em{font-style:normal;color:var(--gold)}
.goal-row.is-impossible .n{color:var(--cinnabar)}
#advisorBody,#capitalBody{font-size:13px;line-height:1.8}
#advisorBody strong,#capitalBody strong{color:var(--gold)}
.adv-verdict{display:inline-block;margin:4px 0;padding:2px 10px;border:1px solid var(--gold-soft);
  border-radius:999px;color:var(--gold);font-size:12px}
.cap-row{display:flex;justify-content:space-between;font-family:var(--font-mono);
  font-size:12px;padding:5px 0;border-bottom:1px dashed var(--ink-600)}
.cap-row:last-child{border-bottom:none}
.cap-row .p{color:var(--ink-300);font-family:var(--font-body)}

/* =============== 表格共用 =============== */
.table-scroll{overflow-x:auto;border:1px solid var(--ink-600);border-radius:var(--radius)}
.pnl-table,.sens-table,.cmp-table,.rate-table{width:100%;border-collapse:collapse;
  font-size:13px;background:var(--ink-800)}
.pnl-table th,.pnl-table td,.sens-table th,.sens-table td,
.cmp-table th,.cmp-table td,.rate-table th,.rate-table td{
  padding:9px 14px;text-align:right;border-bottom:1px solid var(--ink-600);
  font-family:var(--font-mono);white-space:nowrap}
.pnl-table th,.sens-table th,.cmp-table th,.rate-table th{
  font-family:var(--font-display);font-size:12px;letter-spacing:.06em;
  color:var(--gold);font-weight:700;background:var(--ink-700)}
.pnl-table td:first-child,.pnl-table th:first-child,
.sens-table td:first-child,.sens-table th:first-child,
.cmp-table td:first-child,.cmp-table th:first-child,
.rate-table td:first-child,.rate-table th:first-child{
  text-align:left;color:var(--ink-300);font-family:var(--font-body);white-space:normal}
.pnl-table .is-total td,.cmp-table .is-total td{border-top:2px solid var(--gold-soft);color:var(--gold);font-weight:600}
.pnl-table .is-em td{color:var(--ink-100)}
.neg{color:var(--cinnabar)}
.pos{color:var(--jade)}
.cmp-best{outline:1.5px solid var(--gold);outline-offset:-4px;border-radius:4px;color:var(--gold)!important}
.rate-table input{width:76px;background:var(--ink-900);border:1px solid var(--line-strong);
  border-radius:4px;color:var(--gold);font-family:var(--font-mono);font-size:13px;
  padding:4px 8px;text-align:right;outline:none}
.rate-table input:focus{border-color:var(--gold-soft)}
.rate-table .unit{font-size:12px;color:var(--ink-300);margin-left:4px}
.rate-table .na{color:var(--ink-300);font-family:var(--font-body);font-size:12px;white-space:normal;text-align:left}

/* =============== 圖表 =============== */
.chart-card{background:var(--ink-800);border:1px solid var(--ink-600);
  border-radius:var(--radius);padding:22px;margin-bottom:var(--sp-5)}
.chart-card h3{font-family:var(--font-display);font-size:16px;font-weight:700;
  margin-bottom:6px;letter-spacing:.03em}
.chart-note{font-size:13px;color:var(--ink-300);margin-bottom:12px}
.rate-ov-banner{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:12.5px;line-height:1.7;
  color:var(--ink-100);background:color-mix(in oklab, var(--gold-soft) 12%, var(--ink-700));
  border:1px solid var(--ink-600);border-radius:10px;padding:10px 14px;margin:0 0 12px}
.rate-ov-banner b{color:var(--gold-soft)}
.rate-ov-banner.is-stale{background:color-mix(in oklab, #E0623E 14%, var(--ink-700));border-color:#E0623E}
.rate-ov-banner.is-stale b{color:#E0623E}
.rate-ov-banner .btn-mini{flex-shrink:0;margin-left:auto}
.chart-box{position:relative;height:300px;overflow:hidden}
.chart-box--tall{height:380px}

/* =============== 聯盟推薦 =============== */
.affiliate-zone{margin-top:8px;padding:18px}
/* .section-title 的 56px 頂部間距是設計給「直接躺在頁面上」的情況;
   現在是卡片的第一個子元素,會跟卡片自己的 padding 疊加變成過大的留白 */
.affiliate-zone>.section-title,.faq-section>.section-title{margin-top:0}
.aff-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(240px, 1fr));gap:18px}
.aff-card{background:var(--ink-800);border:1px solid var(--ink-600);border-radius:var(--radius);
  padding:18px;display:flex;flex-direction:column;gap:8px;transition:border-color .15s}
.aff-card:hover{border-color:var(--gold-soft)}
.aff-tag{font-family:var(--font-mono);font-size:12px;letter-spacing:.2em;color:var(--gold-soft)}
.aff-card h4{font-family:var(--font-display);font-size:14px;font-weight:700}
.aff-card p{font-size:13px;color:var(--ink-300);flex:1}
.aff-card a{color:var(--gold);font-size:13px;text-decoration:none}
.aff-card a:hover{text-decoration:underline}
.aff-disclosure{margin-top:14px;font-size:13px;color:var(--ink-600)}

/* =============== FAQ =============== */
/* faq-section 前面的 #rateZone 是 pc-adv-only,簡易版會被整個隱藏——
   若 faq-section 沒有自己的頂部留白,簡易版底下就會直接貼著 affiliate-zone,
   兩張卡片背景色相同、沒有間隔,看起來像融成同一塊 */
.faq-section{margin-top:var(--sp-14)}
.faq-list{display:flex;flex-direction:column;gap:14px}
.faq-item{background:var(--ink-800);border:1px solid var(--ink-600);border-radius:var(--radius-sm);padding:4px 18px}
.faq-item summary{cursor:pointer;font-size:14px;font-weight:600;padding:12px 0;list-style:none;
  display:flex;gap:10px;align-items:baseline}
.faq-item summary::before{content:"問";flex:none;font-family:var(--font-display);
  font-size:12px;color:var(--gold);border:1px solid var(--gold-soft);border-radius:4px;padding:0 5px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item .faq-a{padding:0 0 14px 34px;font-size:13px;color:var(--ink-300);line-height:1.9}
.faq-item .faq-a strong{color:var(--ink-100)}

/* =============== 頁尾 =============== */
.site-footer{border-top:1px solid var(--ink-600);padding:40px 0 44px;background:var(--ink-800)}
.footer-inner{display:flex;flex-direction:column;align-items:center;text-align:center}
.footer-brand{font-family:var(--font-display);font-weight:900;letter-spacing:.15em;margin-bottom:18px;font-size:16px}
.footer-social{display:flex;justify-content:center;gap:12px;margin-bottom:18px}
.footer-social a{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;border:1px solid var(--ink-600);color:var(--ink-300);transition:color .15s,border-color .15s}
.footer-social a:hover{color:var(--gold);border-color:var(--gold)}
.footer-social .ic-at{font-family:var(--font-display);font-weight:900;font-size:15px;line-height:1}
.footer-social .ic-f{font-family:var(--font-display);font-weight:900;font-size:16px;line-height:1}
.footer-platforms{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-bottom:22px}
.footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 22px;margin-bottom:18px}
.footer-links a{color:var(--ink-300);text-decoration:none;font-size:13px;transition:color .15s}
.footer-links a:hover{color:var(--gold)}
.footer-platforms .pl-chip{min-width:170px}
.footer-note{font-size:13px;color:var(--ink-300);max-width:640px;line-height:1.8;margin:0 auto}
.footer-copy{font-family:var(--font-mono);font-size:12px;color:var(--ink-600);margin-top:14px}

/* =============== 響應式 =============== */
@media (max-width:880px){
  html,body{overflow-x:clip}
  .layout{grid-template-columns:1fr;gap:20px}
  .panel-input{position:static;max-height:none}
  /* 單行頁首:品牌 | 主題鈕+漢堡 */
  .header-inner{height:56px}
  .nav-burger{display:grid}
  .site-nav{position:absolute;top:100%;left:0;right:0;
    display:none;flex-direction:column;align-items:stretch;gap:2px;
    background:var(--ink-800);border-bottom:1px solid var(--ink-600);
    padding:10px 16px 16px;box-shadow:var(--shadow)}
  .site-nav.is-open{display:flex}
  .nav-item{height:46px;width:100%;justify-content:flex-start;font-size:14px}
  .nav-drop{width:100%}
  .nav-menu{position:static;transform:none;display:none;min-width:0;
    box-shadow:none;border:none;border-left:2px solid var(--ink-600);
    border-radius:0;margin:2px 0 8px 16px;padding:2px 0}
  .nav-drop.is-open .nav-menu{display:block}
  .summary-bar{top:56px}
  .hero{padding-top:32px}
  .hero-title br{display:none}
  .ad-top{height:auto;min-height:60px;aspect-ratio:320/100;margin:14px 0 2px}
  .ad-inline,.ad-bottom{height:auto;min-height:100px;aspect-ratio:300/250;max-height:280px;margin:26px 0}
  .share-row{text-align:center}
  .chart-box{height:240px}
  .chart-box--tall{height:300px}
  .pi-grid{grid-template-columns:1fr}
  .decision-grid{grid-template-columns:1fr}
}
@media (max-width:520px){
  .footer-platforms{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%}
  .footer-platforms .pl-chip{min-width:0}
}
@media (max-width:480px){
  .field-row{grid-template-columns:1fr}
  .seg label{min-width:72px}
  .seg span{font-size:12px;padding:8px 4px}
  .st-metrics{grid-template-columns:1fr 1fr}
  .statements{grid-template-columns:1fr}
  .hero-title{font-size:25px}
  .section-title{font-size:21px}
  .panel-input{padding:16px 14px 20px}
  .chart-card{padding:16px 12px}
  .pnl-table,.sens-table,.rate-table{font-size:12px;min-width:560px} /* 手機:保留橫捲;.cmp-table 已改堆疊卡片,見下方 */
  .cmp-table{font-size:12px}
}

:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
@media (prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important}
  html{scroll-behavior:auto}
}

/* =============== 加盟計算器 =============== */
/* 永久警示橫幅(不可關閉) */
.fr-warn{
  background:linear-gradient(90deg, rgba(217,103,87,.14), rgba(217,169,87,.10));
  border:1px solid rgba(217,103,87,.45);
  border-left:5px solid var(--cinnabar);
  border-radius:var(--radius-sm);
  padding:14px 18px;margin:0 0 var(--sp-5);
  font-size:13px;line-height:1.9}
.fr-warn strong{color:var(--cinnabar)}
.fr-warn b{color:var(--gold)}

/* 法定揭露檢查卡 */
.chk-row{display:flex;align-items:flex-start;gap:10px;padding:8px 0;border-bottom:1px dashed var(--ink-600)}
.chk-row:last-of-type{border-bottom:none}
.chk-row input{accent-color:var(--gold);width:16px;height:16px;margin-top:3px;flex:none;cursor:pointer}
.chk-row label{font-size:13px;color:var(--ink-100);cursor:pointer;line-height:1.6}
.chk-law{display:block;font-size:12px;color:var(--cinnabar);margin-top:3px}
.chk-foot{margin-top:12px;padding-top:10px;border-top:1px solid var(--ink-600);
  font-size:12px;color:var(--ink-300);line-height:1.8}
.chk-badge{display:inline-block;padding:3px 14px;border-radius:999px;font-size:12px;
  border:1.5px solid;font-weight:600;margin-bottom:10px}
.chk-badge.ok{color:var(--jade);border-color:var(--jade)}
.chk-badge.warn{color:#B07A1E;border-color:#B07A1E}
.chk-badge.bad{color:var(--cinnabar);border-color:var(--cinnabar)}

/* 風險頁:概念象限圖 */
.quad{position:relative;aspect-ratio:16/10;max-width:640px;margin:0 auto;
  border-left:2px solid var(--ink-300);border-bottom:2px solid var(--ink-300)}
.quad .q-x,.quad .q-y{position:absolute;font-size:12px;color:var(--ink-300);font-family:var(--font-mono)}
.quad .q-x{right:0;bottom:-26px}
.quad .q-y{left:-10px;top:-26px}
.quad .q-mid-v{position:absolute;left:50%;top:0;bottom:0;border-left:1px dashed var(--ink-600)}
.quad .q-mid-h{position:absolute;top:50%;left:0;right:0;border-top:1px dashed var(--ink-600)}
.quad .q-dot{position:absolute;transform:translate(-50%,50%);text-align:center}
.quad .q-dot i{display:block;width:16px;height:16px;border-radius:50%;margin:0 auto 6px}
.quad .q-dot span{font-size:12px;font-weight:700;white-space:nowrap}
.quad-note{text-align:center;font-size:12px;color:var(--ink-300);margin-top:34px}

/* ============ 首頁(生意人的計算室 入口) ============ */
.home-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.home-card{display:flex;flex-direction:column;gap:12px;background:var(--ink-800);
  border:1px solid var(--ink-600);border-top:2px solid var(--gold);border-radius:var(--radius);
  padding:26px 24px;text-decoration:none;color:var(--ink-100);transition:border-color .18s, transform .18s}
.home-card:hover{border-color:var(--gold-soft);transform:translateY(-2px)}
.hc-eyebrow{font-family:var(--font-mono, 'IBM Plex Mono', monospace);font-size:12px;letter-spacing:.14em;color:var(--gold)}
.hc-title{font-family:var(--font-display);font-weight:900;font-size:21px;line-height:1.35;margin:0}
.hc-desc{font-size:13px;line-height:1.9;color:var(--ink-300);margin:0}
.hc-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}
.hc-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-100);
  border:1px solid var(--ink-600);border-radius:999px;padding:5px 12px;background:var(--ink-700)}
.hc-chip i{width:8px;height:8px;border-radius:50%;display:inline-block}
.hc-cta{margin-top:auto;padding-top:8px;font-size:13px;font-weight:700;color:var(--gold);letter-spacing:.04em}
@media (max-width:760px){.home-grid{grid-template-columns:1fr}}

/* ============ 加盟計算器:續約引導 / 補充列 ============ */
.guide-note{background:var(--ink-800);border:1px solid var(--ink-600);border-left:3px solid var(--gold);
  border-radius:var(--radius-sm);padding:14px 16px;font-size:13px;line-height:1.9;color:var(--ink-300);margin:14px 0}
.guide-note strong{color:var(--ink-100)}

/* ============ 首頁 v2:主視覺 帳房 ============ */
.hm-hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.9fr);gap:36px;align-items:center;
  padding-top:56px;padding-bottom:20px;position:relative}
.hm-vert{position:absolute;right:6px;top:44px;writing-mode:vertical-rl;letter-spacing:.5em;
  font-family:var(--font-display);font-weight:700;font-size:13px;color:var(--gold);opacity:.5;pointer-events:none}
.hm-hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.hm-btn{display:inline-block;text-decoration:none;padding:12px 26px}
.hm-btn--ghost{background:transparent;color:var(--gold);border:1px solid var(--gold-soft)}
.hm-btn--ghost:hover{background:var(--ink-700)}

/* 直式對帳單裝飾 */
.hm-ledger{background:var(--ink-800);border:1px solid var(--ink-600);border-top:2px solid var(--gold);
  border-radius:var(--radius);padding:22px 20px;font-family:'IBM Plex Mono',monospace;font-size:12px}
.hm-ledger-row{display:flex;align-items:baseline;gap:10px;padding:9px 0;color:var(--ink-300)}
.hm-ledger-row+.hm-ledger-row{border-top:1px dashed var(--ink-600)}
.hm-ledger-row i{flex:1;border-bottom:1px dotted var(--ink-600);transform:translateY(-3px)}
.hm-ledger-row.is-sum{color:var(--ink-100);font-weight:600;border-top:1px solid var(--gold-soft)}

/* 數字條 */
.hm-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--ink-600);
  border:1px solid var(--ink-600);border-radius:var(--radius);overflow:hidden;margin:26px 0 6px}
.hm-stat{background:var(--ink-800);padding:16px 14px;text-align:center}
.hm-stat b{display:block;font-family:'IBM Plex Mono',monospace;font-size:25px;font-weight:600;color:var(--gold)}
.hm-stat span{font-size:12px;color:var(--ink-300);letter-spacing:.04em}

/* 計算室卡片:帳目列 */
.hc-lines{display:flex;flex-direction:column;font-size:12px;font-family:'IBM Plex Mono',monospace}
.hc-line{display:flex;align-items:baseline;gap:8px;padding:7px 0;color:var(--ink-300)}
.hc-line+.hc-line{border-top:1px dashed var(--ink-600)}
.hc-line i{flex:1;border-bottom:1px dotted var(--ink-600);transform:translateY(-3px)}
.hc-line span:last-child{color:var(--ink-100)}

/* 三步驟 */
.hm-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:28px}
.hm-step{background:var(--ink-800);border:1px solid var(--ink-600);border-radius:var(--radius);padding:22px 20px;position:relative}
.hm-step-no{font-family:var(--font-display);font-weight:900;font-size:14px;color:var(--gold);
  display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;
  border:1px solid var(--gold-soft);border-radius:50%;margin-bottom:12px}
.hm-step h3{font-family:var(--font-display);font-weight:700;font-size:16px;margin:0 0 8px}
.hm-step p{font-size:13px;line-height:1.85;color:var(--ink-300);margin:0}

/* 規矩三欄 */
.hm-rules{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:6px}
.hm-rule b{display:block;font-family:var(--font-display);font-size:14px;color:var(--gold);margin-bottom:6px}
.hm-rule p{font-size:13px;line-height:1.85;color:var(--ink-300);margin:0}

@media (max-width:860px){
  .hm-hero{grid-template-columns:1fr;padding-top:36px}
  .hm-ledger{display:none}
  .hm-vert{display:none}
  .hm-stats{grid-template-columns:repeat(2,1fr)}
  .hm-steps,.hm-rules{grid-template-columns:1fr}
}

/* =====================================================================
   v3 全站分區風格(依 網站整體重新設計 設計稿)
   t-home:首頁(墨黑・燈下計算室) t-ec:電商家族(午夜交易所・霓虹青)
   t-fr:加盟家族(燈下簽約桌・木紋與契約紙)
   ===================================================================== */

/* ---- 色票重映:夜間 ---- */
body.t-home{--ink-900:#07080B;--ink-800:#0D0F14;--ink-700:#12151C;--ink-600:#27251E;
  --ink-300:#A7A196;--ink-100:#EDE7DA;--gold:#D9A957;--gold-soft:#8F7440;--seal:#C8402F;--neon:#3FE8C9}
body.t-ec{--ink-900:#05070B;--ink-800:#0B0E15;--ink-700:#080B12;--ink-600:#1B2330;
  --ink-300:#7C8CA3;--ink-100:#DCE6F2;--gold:#3FE8C9;--gold-soft:#1F7A6B;--seal:#C8402F;--neon:#3FE8C9}
body.t-fr{--ink-900:#17110A;--ink-800:#1E1710;--ink-700:#261D13;--ink-600:#3A2E1E;
  --ink-300:#B2A995;--ink-100:#EDE4CE;--gold:#E0B36A;--gold-soft:#8A6A34;--seal:#C0392B;--neon:#3E7A55;
  --paper:#F6EFDC;--paper-ink:#2A2318}

/* ---- 色票重映:日間 ---- */
[data-theme="light"] body.t-home{--ink-900:#EFE9DB;--ink-800:#F8F3E6;--ink-700:#EFE7D3;--ink-600:#D8CDB6;
  --ink-300:#524B3C;--ink-100:#221D15;--gold:#624413;--gold-soft:#B8955A;--seal:#A8321F;--neon:#0A7A66;--jade:#1D525D;--cinnabar:#8E231F;--line-strong:#8B8474}
[data-theme="light"] body.t-ec{--ink-900:#EDF1F0;--ink-800:#FFFFFF;--ink-700:#F0F4F3;--ink-600:#D2DCD9;
  --ink-300:#54636F;--ink-100:#141D28;--gold:#0A7560;--gold-soft:#6FB3A6;--seal:#A8321F;--neon:#0A7560}
[data-theme="light"] body.t-fr{--ink-900:#E7D8B8;--ink-800:#F6EFDC;--ink-700:#F2E9D0;--ink-600:#D3C4A0;
  --ink-300:#4C422E;--ink-100:#241E14;--gold:#583B0E;--gold-soft:#A8802E;--seal:#A8321F;--neon:#356A49;--jade:#1E4952;--cinnabar:#821B17;--line-strong:#80796B}

/* ---- 共通:黏頂毛玻璃頁首、紅印章、底線式導覽 ---- */
body.t-home .site-header,body.t-ec .site-header,body.t-fr .site-header{
  position:sticky;top:0;z-index:50;background:color-mix(in oklab, var(--ink-900) 86%, transparent);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
body.t-home .brand-seal,body.t-ec .brand-seal,body.t-fr .brand-seal{
  background:var(--seal);color:#F6EFDC;border:none;box-shadow:inset 0 0 0 2px rgba(246,239,220,.4);border-radius:6px}
body.t-home .nav-item,body.t-ec .nav-item,body.t-fr .nav-item{
  border-radius:0;border-bottom:2px solid transparent}
body.t-home .nav-item.is-active,body.t-ec .nav-item.is-active,body.t-fr .nav-item.is-active{
  border-bottom-color:var(--gold);background:transparent}
body.t-home .nav-drop.is-open>.nav-item,body.t-ec .nav-drop.is-open>.nav-item,body.t-fr .nav-drop.is-open>.nav-item{
  border-bottom-color:var(--gold)}

/* ---- t-ec:午夜交易所 ---- */
body.t-ec{position:relative}
body.t-ec::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(60% 46% at 12% 0%, color-mix(in oklab, var(--neon) 9%, transparent), transparent 58%),
    repeating-linear-gradient(0deg, color-mix(in oklab, var(--neon) 4%, transparent) 0 1px, transparent 1px 46px),
    repeating-linear-gradient(90deg, color-mix(in oklab, var(--neon) 3%, transparent) 0 1px, transparent 1px 46px)}
body.t-ec>*{position:relative;z-index:1}
body.t-ec .hero-eyebrow{color:var(--neon)}
body.t-ec .ec-hero .hero-eyebrow::after{content:"_";animation:v3blink 1.1s step-end infinite}
body.t-ec .hero-title{
  color:color-mix(in oklab, var(--neon) 22%, var(--ink-100));
  text-shadow:0 0 8px color-mix(in oklab, var(--neon) 70%, transparent),
    0 0 32px color-mix(in oklab, var(--neon) 45%, transparent),
    0 0 90px color-mix(in oklab, var(--neon) 25%, transparent);
  animation:v3neonFlick 9s infinite}
body.t-ec .u-gold{color:var(--neon);text-shadow:0 0 14px color-mix(in oklab, var(--neon) 60%, transparent)}
@keyframes v3neonFlick{0%,86%,100%{opacity:1}87%{opacity:.35}88%{opacity:1}93%{opacity:.6}94%{opacity:1}}
@keyframes v3blink{0%,100%{opacity:1}50%{opacity:0}}

/* ---- t-fr:燈下簽約桌 ---- */
body.t-fr{position:relative}
body.t-fr::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background:repeating-linear-gradient(90deg, transparent 0 180px, rgba(0,0,0,.22) 180px 182px),
    radial-gradient(70% 46% at 50% 0%, rgba(255,196,110,.14), transparent 62%)}
[data-theme="light"] body.t-fr::before{
  background:repeating-linear-gradient(90deg, transparent 0 180px, rgba(90,70,40,.18) 180px 182px),
    radial-gradient(70% 46% at 50% 0%, rgba(255,226,170,.35), transparent 62%)}
body.t-fr>*{position:relative;z-index:1}
body.t-fr .hero-eyebrow{font-family:'LXGW WenKai TC','Noto Serif TC',serif;letter-spacing:.42em}
body.t-fr .hero-title{color:#F6E7C4;text-shadow:0 2px 30px rgba(255,190,100,.3)}
[data-theme="light"] body.t-fr .hero-title{color:#3A2C14;text-shadow:none}
body.t-fr .hint,body.t-fr .chart-note,body.t-fr .st-foot,body.t-fr .fr-warn,
body.t-fr .pi-sub,body.t-fr .hero-eyebrow,body.t-fr .quad-note{
  font-family:'LXGW WenKai TC','Noto Sans TC',sans-serif}
body.t-fr .statement{transform:rotate(-.6deg);
  background-image:repeating-linear-gradient(180deg, transparent 0 37px, rgba(43,36,24,.045) 37px 38px)}
body.t-fr .st-seal{border-color:var(--seal);color:var(--seal)}
body.t-fr .summary-bar{border-left:3px solid var(--seal)}
body.t-fr .product-tab{font-family:'LXGW WenKai TC','Noto Sans TC',sans-serif;letter-spacing:.1em}

/* ---- t-home:首頁專用元件 ---- */
body.t-home .v3-hero{position:relative;min-height:82vh;display:flex;align-items:center;
  overflow:hidden;border-bottom:1px solid var(--ink-600)}
body.t-home .v3-lamp{position:absolute;inset:0;
  background:radial-gradient(58% 52% at 38% 0%, color-mix(in oklab, var(--gold) 14%, transparent), transparent 68%);
  animation:v3lamp 1.6s ease-out both}
body.t-home .v3-bigchar{position:absolute;right:-8vw;top:50%;transform:translateY(-48%);
  font-family:var(--font-display);font-weight:900;font-size:46vw;line-height:1;color:transparent;
  -webkit-text-stroke:1.5px var(--ink-600);user-select:none;pointer-events:none}
body.t-home .v3-hero-in{position:relative;max-width:1240px;margin:0 auto;padding:70px 32px;width:100%;box-sizing:border-box}
body.t-home .v3-rise{animation:v3rise .8s both}
body.t-home .v3-stamp{display:inline-block;vertical-align:super;margin-left:1.5vw;width:.62em;height:.62em;
  border:.06em solid var(--seal);border-radius:.09em;color:var(--seal);font-size:.5em;line-height:1.15;
  text-align:center;transform:rotate(8deg);animation:v3stampIn .6s 1.15s both}
body.t-home .v3-facts{position:absolute;right:36px;bottom:34px;display:flex;flex-direction:column;gap:9px;
  text-align:right;font-family:var(--font-mono);font-size:12px;color:var(--ink-300);animation:v3rise 1s .8s both}
body.t-home .v3-facts b{color:var(--gold);font-weight:600}
@keyframes v3rise{from{opacity:0;transform:translateY(36px)}to{opacity:1;transform:none}}
@keyframes v3lamp{from{opacity:0}to{opacity:1}}
@keyframes v3stampIn{0%{opacity:0;transform:rotate(8deg) scale(1.9)}60%{opacity:1;transform:rotate(8deg) scale(.94)}100%{opacity:1;transform:rotate(8deg) scale(1)}}

/* 行情跑馬燈 */
body.t-home .v3-ticker{overflow:hidden;border-bottom:1px solid var(--ink-600);background:var(--ink-800)}
body.t-home .v3-ticker-track{display:flex;width:max-content;animation:v3tick 44s linear infinite}
body.t-home .v3-ticker-set{display:flex;gap:44px;padding:12px 22px;white-space:nowrap;
  font-family:var(--font-mono);font-size:12px;color:var(--ink-300)}
body.t-home .v3-ticker-set b{font-weight:600}
@keyframes v3tick{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* 兩間計算室(全幅) */
body.t-home .v3-room{display:grid;grid-template-columns:1.1fr .9fr;gap:36px;align-items:center;
  min-height:52vh;position:relative;overflow:hidden;padding:64px 7vw;border-bottom:1px solid var(--ink-600);
  box-sizing:border-box;text-decoration:none;transition:filter .3s}
body.t-home .v3-room:hover{filter:brightness(1.08)}
body.t-home .v3-room--ec{background:#05080D;color:#DCE6F2}
body.t-home .v3-room--ec .v3-room-bg{position:absolute;inset:0;
  background:radial-gradient(70% 90% at 12% 50%, rgba(63,232,201,.13), transparent 58%),
    repeating-linear-gradient(0deg, rgba(63,232,201,.045) 0 1px, transparent 1px 46px),
    repeating-linear-gradient(90deg, rgba(63,232,201,.035) 0 1px, transparent 1px 46px)}
body.t-home .v3-room--fr{grid-template-columns:.9fr 1.1fr;
  background:repeating-linear-gradient(180deg, #191411 0 13px, #221B15 13px 15px);color:#F0E6CE}
body.t-home .v3-room--fr .v3-room-bg{position:absolute;inset:0;
  background:radial-gradient(64% 80% at 82% 12%, rgba(255,190,100,.2), transparent 60%)}
body.t-home .v3-roomno{position:absolute;font-family:var(--font-mono);font-weight:600;
  font-size:min(240px,20vw);line-height:1;color:transparent;user-select:none}
body.t-home .v3-room--ec .v3-roomno{top:-40px;right:2vw;-webkit-text-stroke:1.5px rgba(63,232,201,.16)}
body.t-home .v3-room--fr .v3-roomno{bottom:-46px;left:2vw;-webkit-text-stroke:1.5px rgba(255,190,100,.16)}
body.t-home .v3-room-eyebrow{margin:0 0 14px;font-family:var(--font-mono);font-size:12px;letter-spacing:.4em;color:#3FE8C9}
body.t-home .v3-room--fr .v3-room-eyebrow{font-family:'LXGW WenKai TC',serif;font-size:14px;color:#E0B36A}
body.t-home .v3-room-title{margin:0;font-family:var(--font-display);font-weight:900;
  font-size:clamp(34px,4.6vw,62px);line-height:1.25}
body.t-home .v3-room--ec .v3-room-title{color:#EAFFF9;
  text-shadow:0 0 8px rgba(63,232,201,.8),0 0 30px rgba(63,232,201,.5),0 0 80px rgba(63,232,201,.28);
  animation:v3neonFlick 8s infinite}
body.t-home .v3-room--fr .v3-room-title{color:#F6E7C4;text-shadow:0 2px 30px rgba(255,190,100,.3)}
body.t-home .v3-room-desc{margin:16px 0 26px;max-width:460px;font-size:14px}
body.t-home .v3-room--ec .v3-room-desc{color:#8FA2BA}
body.t-home .v3-room--fr .v3-room-desc{color:#B7A88C}
body.t-home .v3-room-cta{display:inline-block;font-family:var(--font-mono);font-size:13px;
  letter-spacing:.14em;padding:11px 22px;border-radius:4px;
  background-color:transparent;box-shadow:none}
body.t-home .v3-room--ec .v3-room-cta{color:#3FE8C9;border:1px solid rgba(63,232,201,.5);box-shadow:0 0 20px rgba(63,232,201,.14)}
body.t-home .v3-room--fr .v3-room-cta{font-family:'LXGW WenKai TC',serif;font-size:14px;letter-spacing:.16em;
  color:#F0E6CE;border:1.5px solid #C9A05E;border-radius:3px}
/* 電商房:LIVE BOARD */
body.t-home .v3-board{position:relative;display:flex;flex-direction:column;gap:10px;font-family:var(--font-mono)}
body.t-home .v3-board-cap{margin:0 0 2px;font-size:12px;letter-spacing:.3em;color:#5F7189}
body.t-home .v3-lane{display:flex;align-items:center;gap:12px;
  background-color:transparent;box-shadow:none;border-radius:0}
body.t-home .v3-lane .nm{width:64px;font-size:12px;color:#8FA2BA}
body.t-home .v3-lane .bar{flex:1;height:14px;border-radius:3px;background-color:#101A26}
body.t-home .v3-lane .vv{font-size:13px;color:#3FE8C9}
/* 加盟房:契約紙 */
body.t-home .v3-contract{position:relative;justify-self:center;width:min(320px,100%);
  background:#F6EFDC;color:#2A2318;border-radius:3px;padding:22px 22px 18px;
  transform:rotate(-2.5deg);box-shadow:0 22px 44px rgba(0,0,0,.5)}
body.t-home .v3-contract .seal{position:absolute;top:12px;right:12px;width:52px;height:52px;
  border:3px solid rgba(192,57,43,.75);border-radius:6px;display:grid;place-items:center;
  font-family:var(--font-display);font-weight:900;font-size:25px;color:rgba(192,57,43,.8);transform:rotate(9deg)}
body.t-home .v3-contract .ttl{margin:0;font-family:var(--font-display);font-weight:900;font-size:16px;
  letter-spacing:.22em;border-bottom:3px double #B8A67F;padding-bottom:8px}
body.t-home .v3-contract .bd{margin:12px 0 0;font-family:'LXGW WenKai TC',serif;font-size:13px;line-height:2.3;color:#4A4030}
body.t-home .v3-contract .bd b{color:#9E2B1B;border-bottom:1.5px solid #B8A67F;padding:0 12px;font-weight:700}
body.t-home .v3-contract .sg{margin:14px 0 0;font-family:'LXGW WenKai TC',serif;font-size:12px;color:#7A6F58;text-align:right}

/* FACT CHECK */
body.t-home .v3-fact{max-width:1240px;margin:0 auto;padding:90px 32px 30px;position:relative}
body.t-home .v3-fact-cap{margin:0;font-family:var(--font-mono);font-size:12px;letter-spacing:.4em;color:var(--seal)}
body.t-home .v3-vs{display:flex;align-items:baseline;gap:6vw;margin-top:18px;flex-wrap:wrap}
body.t-home .v3-vs .num{margin:0;font-family:var(--font-display);font-weight:900;
  font-size:clamp(70px,10vw,150px);line-height:1}
body.t-home .v3-vs .num--myth{color:var(--ink-300);text-decoration:line-through;
  text-decoration-color:var(--seal);text-decoration-thickness:6px}
body.t-home .v3-vs .num--real{color:var(--gold)}
body.t-home .v3-vs .cap{margin:10px 0 0;max-width:340px;font-size:13px;color:var(--ink-300)}
body.t-home .v3-vs .cap b{color:var(--ink-100)}
body.t-home .v3-badge{position:absolute;top:-6px;right:-22px;transform:rotate(-10deg);
  font-family:'LXGW WenKai TC',serif;font-size:14px;color:var(--seal);border:2.5px solid var(--seal);
  border-radius:5px;padding:3px 12px;letter-spacing:.26em}

/* 三步驟(描邊數字) */
body.t-home .v3-steps{max-width:1240px;margin:0 auto;padding:50px 32px 90px}
body.t-home .v3-steps-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px}
body.t-home .v3-step{padding:28px}
body.t-home .v3-step .no{margin:0;font-family:var(--font-display);font-weight:700;font-size:48px;line-height:1;
  color:var(--gold);opacity:.55}
body.t-home .v3-step h3,.v3-step h2{margin:14px 0 6px;font-family:var(--font-display);font-size:21px;font-weight:700}
body.t-home .v3-step p{margin:0;font-size:13px;color:var(--ink-300)}

@media (max-width:900px){
  body.t-home .v3-room{grid-template-columns:1fr;min-height:0;padding:48px 24px}
  body.t-home .v3-board,body.t-home .v3-contract{display:none}
  body.t-home .v3-facts{display:none}
  body.t-home .v3-steps-grid{grid-template-columns:1fr}
  body.t-home .v3-vs{flex-direction:column;gap:20px}
}

/* =====================================================================
   v4:設計稿版面移植 + 拉燈日夜開關 + 產業須知頁
   ===================================================================== */

/* ---- 拉燈開關(全站):夜=燈亮,日=燈熄 ---- */
.theme-toggle{width:30px;height:46px;border:none;border-radius:0;background:transparent;
  font-size:0;line-height:0;position:relative;cursor:pointer;padding:0}
.theme-toggle::before{content:"";position:absolute;left:50%;top:2px;width:1.5px;height:20px;
  background:var(--ink-300);opacity:.7;transform:translateX(-50%)}
.theme-toggle::after{content:"";position:absolute;left:50%;bottom:6px;width:15px;height:15px;
  border-radius:50%;transform:translateX(-50%);transition:background .3s, box-shadow .3s, border-color .3s;
  background:radial-gradient(circle at 38% 32%, #FFF3D0, #E9BE6C 58%, #C79A45);
  box-shadow:0 0 12px 3px color-mix(in oklab, var(--gold) 55%, transparent),
             0 0 30px 8px color-mix(in oklab, var(--gold) 22%, transparent)}
.theme-toggle:hover::after{box-shadow:0 0 16px 5px color-mix(in oklab, var(--gold) 65%, transparent),
             0 0 36px 10px color-mix(in oklab, var(--gold) 28%, transparent)}
.theme-toggle:active::after{transform:translateX(-50%) translateY(2px)}
.theme-toggle:active::before{height:22px}
[data-theme="light"] .theme-toggle::after{background:var(--ink-800);
  border:1.5px solid var(--ink-300);box-shadow:none;width:13px;height:13px}
[data-theme="light"] .theme-toggle::before{background:var(--ink-300)}
body.t-ec .theme-toggle::after{background:radial-gradient(circle at 38% 32%, #D8FFF4, #3FE8C9 58%, #1F9C85);
  box-shadow:0 0 12px 3px rgba(63,232,201,.55),0 0 30px 8px rgba(63,232,201,.22)}
[data-theme="light"] body.t-ec .theme-toggle::after{background:var(--ink-800);box-shadow:none}
body.t-fr .theme-toggle::after{box-shadow:0 0 12px 3px rgba(255,196,110,.6),0 0 32px 10px rgba(255,196,110,.25)}
[data-theme="light"] body.t-fr .theme-toggle::after{box-shadow:none}

/* ---- t-ec:輸入區橫向開盤條(設計稿版面) ---- */
body.t-ec .layout{display:flex;flex-direction:column;gap:26px}
body.t-ec .panel-input{position:static;width:100%;box-sizing:border-box;
  display:flex;flex-wrap:wrap;align-items:flex-start;gap:0 30px;
  border-left:none;border-right:none;border-radius:0;
  margin:0 calc(50% - 50vw);width:100vw;padding:18px 7vw 22px}
body.t-ec .panel-input>h2,body.t-ec .panel-input>.preset-row{flex-basis:100%}
body.t-ec .panel-sec{flex:1 1 220px;min-width:200px;padding-left:22px;
  border-left:1px dashed var(--ink-600)}
body.t-ec .panel-sec:first-of-type{border-left:none;padding-left:0}
body.t-ec .panel-sec>summary.panel-title{margin:6px 0 10px;font-family:var(--font-mono);
  font-size:16px;letter-spacing:.3em;color:var(--neon);pointer-events:none}
body.t-ec .panel-sec>summary.panel-title::after{display:none}
body.t-ec .input-money{background:var(--ink-700)}
body.t-ec .input-money input{color:var(--neon);text-align:right;font-family:var(--font-mono)}
body.t-ec .input-money:focus-within{border-color:var(--neon)}
body.t-ec .field select{background:var(--ink-700)}
body.t-ec .seg label input:checked+span{color:#031512;background:var(--neon)}
/* 結果對帳單 → 午夜霓虹版 */
body.t-ec{--paper:#0B0E15;--paper-ink:#DCE6F2}
body.t-ec .statement{border:1px solid rgba(63,232,201,.28);
  box-shadow:0 0 24px rgba(63,232,201,.08), var(--shadow)}
body.t-ec .st-line .lbl{color:#7C8CA3}
body.t-ec .st-no,body.t-ec .st-line.is-minor .lbl,body.t-ec .st-line.is-minor .val{color:#5F7189}
body.t-ec .st-line.is-sub{border-top-color:#1B2330}
body.t-ec .st-foot{color:#5F7189}
[data-theme="light"] body.t-ec{--paper:#FFFFFF;--paper-ink:#17202B}
[data-theme="light"] body.t-ec .st-line .lbl{color:#5C6B7E}
[data-theme="light"] body.t-ec .statement{border-color:rgba(11,138,116,.3);box-shadow:var(--shadow)}
@media (max-width:900px){body.t-ec .panel-sec{flex-basis:100%;border-left:none;padding-left:0}}

/* ---- t-fr:契約紙填空表單(設計稿版面) ---- */
body.t-fr .panel-input{background:var(--paper);color:var(--paper-ink);
  border:none;border-radius:3px;box-shadow:0 30px 70px rgba(0,0,0,.5);
  background-image:repeating-linear-gradient(180deg, transparent 0 37px, rgba(43,36,24,.045) 37px 38px)}
[data-theme="light"] body.t-fr .panel-input{box-shadow:0 18px 44px rgba(60,45,20,.35)}
body.t-fr .panel-input h2,body.t-fr .panel-input label,body.t-fr .panel-input .derived{color:var(--paper-ink)}
body.t-fr .panel-input .panel-title{font-family:'LXGW WenKai TC','Noto Serif TC',serif;
  color:#6B5E42;letter-spacing:.14em;border-bottom:1px solid #D9CCA9}
body.t-fr .panel-input .panel-title::after{color:#B98A3E}
body.t-fr .panel-input .hint{color:#7A6F58}
body.t-fr .panel-input .input-money{background:transparent;border:none;
  border-bottom:1.5px solid #B8A67F;border-radius:0;padding:2px 4px}
body.t-fr .panel-input .input-money:focus-within{border-bottom-color:var(--seal)}
body.t-fr .panel-input .input-money input{color:#9E2B1B;font-weight:600;text-align:center;
  font-family:var(--font-mono)}
body.t-fr .panel-input .input-money span{color:#7A6F58}
body.t-fr .panel-input select{background:transparent;color:#2A2318;border:1px solid #B8A67F;border-radius:3px}
body.t-fr .panel-input input[type="text"]{background:transparent;border:none;border-bottom:1.5px solid #B8A67F;
  border-radius:0;color:#2A2318;font-family:'LXGW WenKai TC',serif}
body.t-fr .panel-input .seg label span{background:transparent;border:1px solid #B8A67F;color:#6B5E42;border-radius:3px}
body.t-fr .panel-input .seg label input:checked+span{background:#2A2318;color:#F6EFDC;border-color:#2A2318}
body.t-fr .panel-input input[type="checkbox"]{accent-color:var(--seal)}
body.t-fr .panel-input .btn-chip,body.t-fr .panel-input .product-tab{
  font-family:'LXGW WenKai TC',serif;border-color:#B8A67F;color:#6B5E42;background:transparent}
body.t-fr .panel-input .product-tab.is-active{background:#2A2318;color:#F6EFDC;border-color:#2A2318}
body.t-fr .panel-input .tip{border-color:#B8A67F;color:#8A6A34;background:transparent}
/* 產業資料夾頁籤 */
body.t-fr .fr-tabs{display:flex;gap:6px;align-items:flex-end;padding:0 6px;position:relative;z-index:2}
body.t-fr .fr-tab{font-family:'LXGW WenKai TC','Noto Sans TC',sans-serif;font-size:14px;
  letter-spacing:.1em;padding:9px 20px 13px;border-radius:9px 9px 0 0;
  border:1px solid #D9CCA9;border-bottom:none;background:color-mix(in oklab, var(--paper) 62%, #8A7A55);
  color:#6B5E42;cursor:pointer;transform:translateY(4px);transition:transform .2s, background .2s}
body.t-fr .fr-tab.is-active{background:var(--paper);color:#2A2318;transform:translateY(1px);font-weight:700}
body.t-fr .fr-tabs+.panel-input{margin-top:-1px;border-top-left-radius:0}
@media (max-width:640px){body.t-fr .fr-tab{padding:8px 12px 11px;font-size:13px;letter-spacing:.04em}}

/* ---- 產業須知頁(t-fr 家族) ---- */
body.t-fr .ind-sheet{background:var(--paper);color:var(--paper-ink);border-radius:3px;
  padding:34px 38px 30px;box-shadow:0 30px 70px rgba(0,0,0,.5);position:relative;
  background-image:repeating-linear-gradient(180deg, transparent 0 37px, rgba(43,36,24,.045) 37px 38px)}
[data-theme="light"] body.t-fr .ind-sheet{box-shadow:0 18px 44px rgba(60,45,20,.3)}
body.t-fr .ind-sheet .seal-mark{position:absolute;top:20px;right:22px;width:52px;height:52px;
  border:3px solid rgba(192,57,43,.7);border-radius:6px;display:grid;place-items:center;
  font-family:var(--font-display);font-weight:900;font-size:25px;color:rgba(192,57,43,.78);transform:rotate(9deg)}
body.t-fr .ind-sheet h2{font-family:var(--font-display);font-weight:900;font-size:21px;
  letter-spacing:.18em;border-bottom:3px double #B8A67F;padding-bottom:10px;margin:0 0 6px}
body.t-fr .ind-sheet .ind-sub{font-family:'LXGW WenKai TC',serif;font-size:13px;color:#7A6F58;margin:0 0 18px}
body.t-fr .ind-sheet h3{font-family:'LXGW WenKai TC','Noto Serif TC',serif;font-weight:700;
  font-size:16px;color:#6B4A17;letter-spacing:.12em;margin:26px 0 8px}
body.t-fr .ind-sheet p{font-size:14px;line-height:2.05;color:#3A3222;margin:0 0 10px}
body.t-fr .ind-sheet p b,body.t-fr .ind-sheet p strong{color:#9E2B1B}
body.t-fr .ind-sheet .ind-table{width:100%;border-collapse:collapse;font-size:13px;margin:8px 0 4px}
body.t-fr .ind-sheet .ind-table th{font-family:'LXGW WenKai TC',serif;font-weight:700;color:#6B5E42;
  text-align:left;border-bottom:1.5px solid #B8A67F;padding:6px 8px}
body.t-fr .ind-sheet .ind-table td{border-bottom:1px dashed #D9CCA9;padding:7px 8px;color:#3A3222}
body.t-fr .ind-sheet .ind-table td.n{font-family:var(--font-mono);color:#9E2B1B;white-space:nowrap}
body.t-fr .ind-cta{display:inline-block;font-family:'LXGW WenKai TC',serif;font-size:14px;
  letter-spacing:.16em;color:#F6EFDC;background:#2A2318;padding:12px 26px;border-radius:3px;
  text-decoration:none;margin-top:16px}
body.t-fr .ind-cta:hover{background:var(--seal);color:#F6EFDC}
body.t-fr .ind-warn{font-family:'LXGW WenKai TC',serif;font-size:13px;color:#9E2B1B;
  border:1.5px solid rgba(158,43,27,.4);border-radius:3px;padding:10px 14px;margin:18px 0 0}

/* =====================================================================
   v5:設計稿完整移植 — 契約書表單 / 交易所賽道 / 行動端
   ===================================================================== */

/* ---- 極簡導覽(照稿:底線式) ---- */
body.t-home .nav-item,body.t-ec .nav-item,body.t-fr .nav-item{background:transparent;padding:7px 13px;font-size:13px}
body.t-ec .nav-item.is-active{color:var(--neon);border-bottom-color:var(--neon)}
body.t-fr .nav-item.is-active{color:var(--gold);border-bottom-color:var(--gold)}

/* ---- EC:JACK(TONIGHT'S BEST) ---- */
.ec-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center;max-width:1320px;margin:0 auto;padding:58px 32px 40px;box-sizing:border-box}
.ec-hero-bg{position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(60% 90% at 8% 0%, color-mix(in oklab, var(--neon) 9%, transparent), transparent 58%),
  repeating-linear-gradient(0deg, color-mix(in oklab, var(--neon) 4%, transparent) 0 1px, transparent 1px 46px),
  repeating-linear-gradient(90deg, color-mix(in oklab, var(--neon) 3%, transparent) 0 1px, transparent 1px 46px)}
.ec-jack{position:relative;text-align:right;border-left:1px dashed var(--ink-600);padding:16px 18px 16px 40px}
.ec-jack-cap{margin:0;font-family:var(--font-mono);font-size:12px;letter-spacing:.32em;color:var(--ink-300)}
.ec-jack-num{margin:6px 0 0;font-family:var(--font-mono);font-weight:600;font-size:clamp(52px,6vw,84px);line-height:1.05;letter-spacing:-.01em;transition:color .3s}
.ec-jack-meta{margin:10px 0 0;display:flex;justify-content:flex-end;gap:10px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--ink-300)}
.ec-jack-badge{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:700;border:1px solid var(--ink-600);border-radius:999px;padding:5px 14px;background:var(--ink-800);color:var(--ink-100)}
.ec-jack-badge i{width:9px;height:9px;border-radius:2px;display:inline-block}

/* ---- EC:橫向操作台 ---- */
.ec-band{border-top:1px solid var(--ink-600);border-bottom:1px solid var(--ink-600);background:var(--ink-800)}
.ec-band-in{max-width:1320px;margin:0 auto;padding:18px 32px 20px;display:flex;gap:26px;flex-wrap:wrap;align-items:flex-end}
.ec-grp{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}
.ec-grp+.ec-grp{border-left:1px dashed var(--ink-600);padding-left:26px}
.ec-grp-tag{font-family:var(--font-mono);font-size:12px;letter-spacing:.26em;color:var(--neon);writing-mode:vertical-rl;padding-bottom:6px;align-self:stretch}
.ec-f{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--ink-300)}
.ec-f b{color:var(--ink-100);font-family:var(--font-mono);font-weight:600}
.ec-f input[type=number]{background:var(--ink-700);border:1px solid var(--ink-600);border-radius:6px;color:var(--neon);
  font-family:var(--font-mono);font-size:14px;padding:8px 10px;text-align:right;outline:none;box-sizing:border-box}
.ec-f input[type=number]:focus{border-color:var(--neon)}
.ec-f select{background:var(--ink-700);border:1px solid var(--ink-600);border-radius:6px;color:var(--ink-100);font-size:12px;padding:9px 8px;outline:none}
.ec-f input[type=range]{accent-color:var(--neon);margin-bottom:8px}
.ec-f input[type=range].is-gold{accent-color:#D9A957}
.ec-pills{display:flex;gap:5px;flex-wrap:wrap}
.ec-pills label{cursor:pointer}
.ec-pills input{position:absolute;opacity:0;pointer-events:none}
.ec-pills span{display:inline-block;font-size:12px;padding:7px 11px;border-radius:6px;border:1px solid var(--ink-600);background:var(--ink-700);color:var(--ink-300)}
.ec-pills input:checked+span{border-color:var(--neon);background:color-mix(in oklab, var(--neon) 14%, var(--ink-700));color:var(--neon)}
.ec-adv{flex-basis:100%;border-top:1px dashed var(--ink-600);padding-top:10px}
.ec-adv>summary{cursor:pointer;list-style:none;font-family:var(--font-mono);font-size:12px;letter-spacing:.26em;color:var(--ink-300)}
.ec-adv>summary::-webkit-details-marker{display:none}
.ec-adv>summary::after{content:" ▸";color:var(--neon)}
.ec-adv[open]>summary::after{content:" ▾"}
.ec-adv-in{display:flex;gap:12px 22px;flex-wrap:wrap;align-items:flex-end;padding-top:10px}
.ec-f .hint2{font-size:13px;color:var(--ink-300);max-width:200px}

/* ---- EC:四平台賽道 ---- */
.ec-lanes{display:flex;flex-direction:column;gap:10px}
.ec-lane{border:1px solid var(--ink-600);border-radius:10px;background:var(--ink-800);overflow:hidden;transition:border-color .25s, box-shadow .25s}
.ec-lane.is-best{border-color:color-mix(in oklab, var(--neon) 55%, transparent);box-shadow:0 0 26px color-mix(in oklab, var(--neon) 14%, transparent)}
.ec-lane-btn{width:100%;display:grid;grid-template-columns:170px 1fr 190px;gap:20px;align-items:center;padding:15px 20px;background:none;border:none;cursor:pointer;color:var(--ink-100);text-align:left;box-sizing:border-box;font:inherit}
.ec-lane-nm{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:700;min-width:0}
.ec-lane-nm i{width:10px;height:10px;border-radius:2px;flex:none}
.ec-best-tag{font-family:var(--font-mono);font-size:12px;letter-spacing:.16em;color:#06120E;background:var(--neon);border-radius:3px;padding:2px 7px;font-weight:600;flex:none}
.ec-bar{display:flex;height:18px;border-radius:4px;overflow:hidden;background:var(--ink-700)}
.ec-bar span{transition:width .55s cubic-bezier(.2,.7,.2,1)}
.ec-bar .sg{background:#4A5A72}.ec-bar .sf{}.ec-bar .so{background:#D9A957;opacity:.75}
.ec-bar .sn{background:var(--neon);box-shadow:0 0 14px color-mix(in oklab, var(--neon) 50%, transparent)}
.ec-lane-sub{font-family:var(--font-mono);font-size:12px;color:var(--ink-300);margin-top:5px;display:block}
.ec-lane-num{text-align:right}
.ec-lane-num b{display:block;font-family:var(--font-mono);font-weight:600;font-size:25px;line-height:1.1}
.ec-lane-num span{font-family:var(--font-mono);font-size:12px;color:var(--ink-300)}
.ec-lane-detail{border-top:1px dashed var(--ink-600);padding:16px 20px 18px;animation:v5unfold .3s ease-out}
.ec-lane-detail-cap{margin:0 0 10px;font-family:var(--font-mono);font-size:12px;letter-spacing:.28em;color:var(--ink-300)}
.ec-lane-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px}
.ec-cell{background:var(--ink-700);border-radius:6px;padding:9px 12px;display:flex;justify-content:space-between;gap:10px;font-size:12px}
.ec-cell span{color:var(--ink-300)}
.ec-cell b{font-family:var(--font-mono);font-weight:600}
.ec-cell.is-net{background:color-mix(in oklab, var(--neon) 10%, var(--ink-700));border:1px solid color-mix(in oklab, var(--neon) 35%, transparent)}
.ec-cell.is-net span{color:var(--ink-100);font-weight:700}
.ec-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--ink-300);font-family:var(--font-mono);margin:0}
.ec-legend i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:5px}
@keyframes v5unfold{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}

/* ---- FR:契約書 ---- */
.fr-sheet{position:relative;margin-top:-1px;background:var(--paper);color:var(--paper-ink);border-radius:3px;padding:34px 38px 30px;
  box-shadow:0 30px 70px rgba(0,0,0,.5);background-image:repeating-linear-gradient(180deg, transparent 0 37px, rgba(43,36,24,.045) 37px 38px)}
[data-theme="light"] .fr-sheet{box-shadow:0 18px 44px rgba(60,45,20,.35)}
.fr-sheet-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-bottom:3px double #B8A67F;padding-bottom:14px;flex-wrap:wrap}
.fr-sheet-seal{width:44px;height:44px;border:2.5px solid var(--seal);border-radius:7px;display:grid;place-items:center;
  font-family:var(--font-display);font-weight:900;font-size:25px;color:var(--seal);transform:rotate(-4deg);flex:none}
.fr-sheet-title{margin:0;font-family:var(--font-display);font-weight:900;font-size:21px;letter-spacing:.18em}
.fr-sheet-sub{margin:2px 0 0;font-family:'LXGW WenKai TC',serif;font-size:13px;color:#7A6F58}
.fr-sheet-no{margin:0;text-align:right;font-family:var(--font-mono);font-size:12px;color:#7A6F58;line-height:1.9}
/* 條款目錄:契約書七條一次攤開易失去方向,給個可跳轉的小目錄 */
.fr-toc{display:flex;flex-wrap:wrap;gap:6px 8px;margin:16px 0 2px;padding:10px 12px;
  background:color-mix(in oklab, var(--paper) 88%, #8A7A55);border:1px solid #D9CCA9;border-radius:6px}
.fr-toc a{font-family:'LXGW WenKai TC','Noto Sans TC',sans-serif;font-size:12.5px;letter-spacing:.03em;
  color:#6B5E42;text-decoration:none;padding:5px 10px;border:1px solid #D9CCA9;border-radius:14px;
  background:var(--paper);white-space:nowrap;transition:background .15s,color .15s}
.fr-toc a:hover,.fr-toc a:focus-visible{background:#2A2318;color:#F6EFDC;border-color:#2A2318}
@media print{.fr-toc{display:none !important}}
@media (max-width:640px){.fr-toc{gap:5px 6px;padding:8px 10px}.fr-toc a{font-size:11.5px;padding:4px 8px}}
.fr-clause{margin:24px 0 6px;font-family:var(--font-display);font-weight:700;font-size:16px;letter-spacing:.14em;color:#9E2B1B;scroll-margin-top:96px}
.fr-prose{font-family:'LXGW WenKai TC',serif;font-size:14px;line-height:2.7;color:#3A3122}
.fr-prose .nw{white-space:normal;overflow-wrap:anywhere}
.fr-prose input[type=number]{width:58px;background:transparent;border:none;border-bottom:1.5px solid #B8A67F;color:#9E2B1B;
  font-family:var(--font-mono);font-size:14px;text-align:center;outline:none;padding:0 2px}
.fr-prose input[type=number]:focus{border-bottom-color:var(--seal)}
.fr-prose input.w-l{width:78px}.fr-prose input.w-s{width:46px}
.fr-prose b.sum{font-family:var(--font-mono);font-size:18px;color:#9E2B1B}
.fr-prose b.rev{font-family:var(--font-mono);font-size:16px;color:#2A2318}
.fr-pill{font-family:'LXGW WenKai TC',serif;font-size:13px;padding:2px 10px;border-radius:999px;border:1.5px solid #B8A67F;background:transparent;color:#6B5E42;cursor:pointer;margin:0 3px}
.fr-pill input{position:absolute;opacity:0;pointer-events:none}
label.fr-pill:has(input:checked){background:#2A2318;color:#F6EFDC;border-color:#2A2318}
.fr-mut{color:#7A6F58;font-size:13px}
/* 印章按鈕(立約模式) */
.fr-stamps{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.fr-stamp{position:relative;width:74px;height:74px;border-radius:50%;border:2.5px solid var(--seal);display:grid;place-items:center;
  font-family:var(--font-display);font-weight:900;font-size:14px;line-height:1.35;text-align:center;color:var(--seal);
  cursor:pointer;transition:all .2s;background:transparent;flex:none;user-select:none}
.fr-stamp input{position:absolute;opacity:0;pointer-events:none}
.fr-stamp:has(input:checked){background:var(--seal);color:#F6EFDC;transform:rotate(-8deg);box-shadow:0 4px 14px rgba(158,43,27,.4)}
.fr-stamp.is-off{opacity:.35;cursor:not-allowed;border-style:dashed}
.fr-note-alert{margin-top:22px;border:1.5px solid var(--seal);border-radius:4px;padding:12px 16px;background:rgba(192,57,43,.05);
  font-family:'LXGW WenKai TC',serif;font-size:13px;line-height:2;color:#9E2B1B}
.fr-signline{margin:20px 0 0;text-align:right;font-family:'LXGW WenKai TC',serif;font-size:14px;color:#7A6F58}
/* 附件紙 */
.fr-attach{position:relative;margin:30px 10px 0;background:var(--paper);color:var(--paper-ink);border-radius:3px;padding:26px 30px 22px;
  box-shadow:0 20px 46px rgba(0,0,0,.4);transform:rotate(.6deg)}
.fr-attach.alt{transform:rotate(-.5deg);background:#F2E9D0}
[data-theme="light"] .fr-attach{box-shadow:0 14px 34px rgba(60,45,20,.3)}
.fr-attach .clip{position:absolute;top:-14px;left:28px;width:16px;height:42px;border:3px solid #8C8474;border-radius:9px;border-bottom:none}
.fr-attach-title{margin:0;font-family:var(--font-display);font-weight:900;font-size:16px;letter-spacing:.16em}
.fr-attach .hint,.fr-attach .chart-note{color:#7A6F58;font-family:'LXGW WenKai TC',serif}
.fr-attach table td,.fr-attach table th{color:#3A3122}
/* 損益評估書(黏性) */
.fr-eval-col{position:relative;min-width:0;transform:rotate(-.4deg)}
.fr-eval{position:relative;background:var(--paper);color:var(--paper-ink);border-radius:3px;padding:28px 30px 26px;box-shadow:0 30px 70px rgba(0,0,0,.55)}
[data-theme="light"] .fr-eval{box-shadow:0 18px 44px rgba(60,45,20,.4)}
.fr-verdict{position:absolute;top:20px;right:22px;width:108px;height:108px;border:5px double;border-radius:10px;display:grid;place-items:center;
  text-align:center;font-family:var(--font-display);font-weight:900;font-size:21px;line-height:1.3;letter-spacing:.08em;pointer-events:none;
  animation:v5slam .45s cubic-bezier(.2,1.4,.4,1) both}
/* .fr-verdict 也被下方「深色卡片底」共用清單(約 2600 行)蓋成 position:relative,
   蓋章從絕對定位的右上角浮章變成隨文件流排到左上、壓在標題上;用 id 的優先度贏回來,
   不改共用清單以免動到清單上其他元件 */
#evVerdict{position:absolute}
@keyframes v5slam{0%{opacity:0;transform:rotate(-12deg) scale(2)}62%{opacity:1;transform:rotate(-12deg) scale(.93)}100%{opacity:.94;transform:rotate(-12deg) scale(1)}}
/* 直排(標題在上、列印鈕在下)而非左右並排:.fr-verdict 蓋章固定貼在卡片右上角,
   跟並排右側的列印鈕在任何寬度都會搶同一個角落疊在一起 */
.fr-eval-head{display:flex;flex-direction:column;align-items:flex-start;gap:8px;
  border-bottom:3px double #B8A67F;padding-bottom:12px}
.fr-eval-title{margin:0;font-family:var(--font-display);font-weight:900;font-size:21px;letter-spacing:.2em}
.fr-eval-head .btn-share{font-size:12px;padding:6px 12px;letter-spacing:0}
@media print{.fr-eval-head .btn-share{display:none}}
.fr-eval-sub{margin:8px 0 0;font-family:var(--font-mono);font-size:12px;color:#7A6F58}
.fr-payrow{display:flex;align-items:baseline;gap:10px;margin-top:18px;flex-wrap:wrap}
.fr-payrow .wk{font-family:'LXGW WenKai TC',serif;font-size:14px;color:#7A6F58}
.fr-paynum{font-family:var(--font-display);font-weight:900;font-size:56px;line-height:1}
.fr-payrow .mono{font-family:var(--font-mono);font-size:12px;color:#7A6F58}
.fr-mgrid{display:grid;grid-template-columns:repeat(12,1fr);gap:3px;margin:12px 0 4px}
.fr-mgrid span{height:11px;border-radius:2px;box-sizing:border-box}
.fr-mgrid-note{margin:0;font-family:var(--font-mono);font-size:12px;color:#7A6F58}
.fr-ledger{margin-top:18px;border-top:1.5px dashed #C9BC97;padding-top:12px}
.fr-lrow{display:flex;align-items:baseline;gap:10px;padding:2.5px 0}
.fr-lrow .l{font-family:'LXGW WenKai TC',serif;font-size:13px;color:#7A6F58}
.fr-lrow .dots{flex:1;border-bottom:1px dotted #C9BC97}
.fr-lrow .v{font-family:var(--font-mono);font-size:13px;white-space:nowrap;color:#3A3122}
.fr-ltotal{display:flex;align-items:baseline;gap:10px;padding:8px 0 0;border-top:1.5px dashed #C9BC97;margin-top:6px}
.fr-ltotal .l{font-family:var(--font-display);font-weight:700;font-size:14px}
.fr-ltotal .v{font-family:var(--font-mono);font-weight:600;font-size:25px;margin-left:auto}
.fr-kv{margin-top:16px;border-top:1.5px dashed #C9BC97;padding-top:12px;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fr-kv p{margin:0}
.fr-kv .k{font-family:'LXGW WenKai TC',serif;font-size:12px;color:#7A6F58}
.fr-kv .v{font-family:var(--font-mono);font-weight:600;font-size:18px}
.fr-kv .v small{font-size:12px;color:#7A6F58;font-weight:400}
.fr-eval-guide{margin:14px 0 0;font-family:'LXGW WenKai TC',serif;font-size:12px;line-height:1.9;color:#7A6F58;border-left:3px solid #B98A3E;padding-left:10px}
.fr-eval-sign{margin:16px 0 0;text-align:right;font-family:'LXGW WenKai TC',serif;font-size:12px;color:#7A6F58}
.fr-plan-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 4px 10px}
.fr-portfolio-pick{display:flex;align-items:center;gap:6px;margin:0 4px 16px;padding-bottom:14px;
  border-bottom:1px dashed var(--ink-600);font-size:12.5px;color:var(--ink-300);cursor:pointer}
.fr-portfolio-pick input{accent-color:var(--gold)}
.fr-portfolio-pick b{color:var(--ink-100);font-weight:600}
/* 佈局 */
.fr-main{position:relative;z-index:1;max-width:1360px;margin:0 auto;padding:24px 32px 80px;display:block}

/* ---- 行動端 ---- */
@media (max-width:1060px){
  
  .fr-eval-col{position:static;transform:none;margin-top:26px}
}
@media (max-width:980px){
  .ec-hero{grid-template-columns:1fr;padding:40px 20px 28px}
  .ec-jack{text-align:left;border-left:none;border-top:1px dashed var(--ink-600);padding:18px 16px 16px}
  .ec-jack-meta{justify-content:flex-start}
  .ec-band-in{padding:14px 20px 16px;gap:18px}
  .ec-grp+.ec-grp{border-left:none;padding-left:0;border-top:1px dashed var(--ink-600);padding-top:14px;flex-basis:100%}
  .ec-grp-tag{writing-mode:horizontal-tb;align-self:auto;padding-bottom:0}
  .ec-lane-btn{grid-template-columns:1fr;gap:8px;padding:13px 14px}
  .ec-lane-num{text-align:left}
}
@media (max-width:640px){
  .fr-sheet{padding:24px 18px}
  .fr-attach{margin:26px 2px 0;padding:20px 16px}
  .fr-eval{padding:22px 18px}
  .fr-verdict{width:88px;height:88px;font-size:21px;top:14px;right:12px}
  .fr-paynum{font-size:40px}
  .fr-stamps{gap:10px}
  .fr-stamp{width:64px;height:64px;font-size:13px}
  .fr-prose{font-size:14px;line-height:2.5}
  .fr-main{padding:0 16px 60px}
  .ec-f input[type=number]{font-size:16px}  /* iOS 防縮放 */
  .fr-prose input[type=number]{font-size:16px}
}

/* =====================================================================
   v7:紙上元件修復 / header 復原 / 拉燈校正 / 操作台細節
   ===================================================================== */

/* ---- 附件紙上的表格:墨字白紙,不再是深色面板 ---- */
.fr-attach .table-scroll{border:none;border-radius:0}
.fr-attach .pnl-table,.fr-attach .sens-table,.fr-attach .cmp-table{background:transparent;font-size:12px}
.fr-attach .pnl-table th,.fr-attach .pnl-table td,
.fr-attach .sens-table th,.fr-attach .sens-table td,
.fr-attach .cmp-table th,.fr-attach .cmp-table td{
  background:transparent;color:#3A3122;border-bottom:1px dashed #C9BC97;padding:8px 12px}
.fr-attach .pnl-table th,.fr-attach .sens-table th,.fr-attach .cmp-table th{
  font-family:'LXGW WenKai TC','Noto Sans TC',sans-serif;color:#6B5E42;font-weight:700;
  border-bottom:1.5px solid #B8A67F;background:transparent;letter-spacing:.05em}
.fr-attach td:first-child,.fr-attach th:first-child{font-family:'LXGW WenKai TC','Noto Sans TC',sans-serif}
.fr-attach .pnl-table .is-total td,.fr-attach .cmp-table .is-total td{border-top:3px double #B8A67F;border-bottom:none;color:#9E2B1B;font-weight:700}
.fr-attach .pnl-table .is-em td{color:#2A2318;font-weight:600}
.fr-attach .neg,.fr-attach td.neg{color:#9E2B1B}
.fr-attach .pos,.fr-attach td.pos{color:#3E7A55}
.fr-attach .warn,.fr-attach td.warn{color:#B07A1E}
.fr-attach .cmp-best{color:#9E2B1B;font-weight:700}
.fr-attach tfoot td{color:#7A6F58 !important;font-family:'LXGW WenKai TC',serif !important;border:none}

/* ---- 附件一:核對清單墨字+朱紅勾選 ---- */
.fr-attach .chk-row{border-bottom:none;padding:7px 4px}
.fr-attach .chk-row label{color:#3A3122;font-family:'LXGW WenKai TC','Noto Sans TC',sans-serif;font-size:13px}
.fr-attach .chk-row input{accent-color:#C0392B}
.fr-attach .chk-law{color:#9E2B1B}
.fr-attach .chk-badge{border:1.5px solid;background:transparent;font-family:var(--font-mono)}
.fr-attach .chk-badge.ok{color:#3E7A55;border-color:#3E7A55}
.fr-attach .chk-badge.warn{color:#B07A1E;border-color:#B07A1E}
.fr-attach .chk-badge.bad{color:#C0392B;border-color:#C0392B}

/* ---- 附件四:圖表容器在紙上不帶深框 ---- */
.fr-attach .chart-box{background:transparent;border:none}

/* ---- 木桌上的工具列與聯盟/FAQ 對比 ---- */
body.t-fr .fr-plan-tools #inName{background:transparent;border:none;border-bottom:1.5px solid var(--ink-600);
  border-radius:0;color:var(--ink-100);font-family:'LXGW WenKai TC',sans-serif;font-size:13px;padding:5px 4px;outline:none}
body.t-fr .fr-plan-tools #inName:focus{border-bottom-color:var(--gold)}
body.t-fr .fr-plan-tools .product-tab{font-family:'LXGW WenKai TC',sans-serif;letter-spacing:.08em}
body.t-fr .aff-card{background:var(--ink-800)}
/* ---- 電商操作台:方案列樣式與分隔 ---- */
body.t-ec .ec-band .ec-grp:first-child{border-bottom:1px dashed var(--ink-600);padding-bottom:12px;margin-bottom:2px}
body.t-ec .ec-band #inName{background:var(--ink-700);border:1px solid var(--ink-600);border-radius:6px;
  color:var(--ink-100);font-size:12px;padding:7px 10px;outline:none}
body.t-ec .ec-band #inName:focus{border-color:var(--neon)}
body.t-ec .ec-band .product-tab{border-radius:999px}
body.t-ec .ec-band .product-tab.is-add{width:30px;text-align:center}
body.t-ec .ec-band .btn-mini{border-radius:6px;padding:7px 12px}
.ec-band-in{row-gap:16px}

/* ---- 拉燈:收進 header 高度、與導覽對齊 ---- */
.header-inner{align-items:center}
.theme-toggle{width:26px;height:38px;align-self:center;margin:0 2px;overflow:visible}
.theme-toggle::before{top:0;height:16px}
.theme-toggle::after{bottom:4px;width:14px;height:14px}
[data-theme="light"] .theme-toggle::after{width:12px;height:12px}

/* ---- 下拉指示符 ---- */
.nav-drop>.nav-item::after{content:" ▾";font-size:12px;opacity:.6}

@media (max-width:640px){
  .theme-toggle{width:24px;height:34px}
  .theme-toggle::before{height:13px}
  .fr-plan-tools{margin:0 0 10px}
}

/* =====================================================================
   v9:單一平台計算器(平台頁內嵌,交易所語言)
   ===================================================================== */
.pc-wrap{margin-top:30px;border:1px solid var(--ink-600);border-radius:14px;overflow:hidden;background:var(--ink-800)}
.pc-head{display:grid;grid-template-columns:1.05fr .95fr;gap:20px;align-items:center;padding:24px 26px;
  border-bottom:1px solid var(--ink-600);position:relative;overflow:hidden}
.pc-head-bg{position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(70% 100% at 6% 0%, color-mix(in oklab, var(--neon) 10%, transparent), transparent 60%)}
.pc-title{margin:0;font-family:var(--font-display);font-weight:900;font-size:21px;letter-spacing:.04em;position:relative}
.pc-sub{margin:6px 0 0;font-size:12px;color:var(--ink-300);position:relative}
.pc-jack{text-align:right;position:relative}
.pc-jack-cap{margin:0;font-family:var(--font-mono);font-size:12px;letter-spacing:.28em;color:var(--ink-300)}
.pc-jack-num{margin:2px 0 0;font-family:var(--font-mono);font-weight:600;font-size:clamp(38px,6vw,56px);line-height:1.05;color:var(--neon)}
.pc-jack-meta{margin:4px 0 0;font-family:var(--font-mono);font-size:12px;color:var(--ink-300)}
.pc-body{padding:22px 26px}
.pc-grid{display:flex;gap:20px 30px;flex-wrap:wrap;align-items:flex-end}
.pc-grp{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}
.pc-grp+.pc-grp{border-left:1px dashed var(--ink-600);padding-left:26px}
.pc-f{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--ink-300)}
.pc-f input[type=number]{background:var(--ink-700);border:1px solid var(--ink-600);border-radius:6px;color:var(--neon);
  font-family:var(--font-mono);font-size:14px;padding:8px 10px;text-align:right;outline:none;width:96px;box-sizing:border-box}
.pc-f input[type=number]:focus{border-color:var(--neon)}
.pc-f select{background:var(--ink-700);border:1px solid var(--ink-600);border-radius:6px;color:var(--ink-100);font-size:12px;padding:9px 8px;outline:none}
.pc-pills{display:flex;gap:5px;flex-wrap:wrap}
.pc-pills label{cursor:pointer}
.pc-pills input{position:absolute;opacity:0;pointer-events:none}
.pc-pills span{display:inline-block;font-size:12px;padding:7px 11px;border-radius:6px;border:1px solid var(--ink-600);background:var(--ink-700);color:var(--ink-300)}
.pc-pills input:checked+span{border-color:var(--neon);background:color-mix(in oklab, var(--neon) 14%, var(--ink-700));color:var(--neon)}
.pc-check{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-300)}
.pc-check input{accent-color:var(--neon)}
.pc-check.is-off{opacity:.4;cursor:not-allowed}
.pc-bar{display:flex;height:20px;border-radius:5px;overflow:hidden;background:var(--ink-700);margin:20px 0 6px}
.pc-bar span{transition:width .5s cubic-bezier(.2,.7,.2,1)}
.pc-bar .sg{background:#4A5A72}.pc-bar .sn{background:var(--neon)}
.pc-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--ink-300);font-family:var(--font-mono);margin:0 0 14px}
.pc-legend i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:5px}
.pc-lines{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}
.pc-foot{margin:14px 0 0;font-size:12px;color:var(--ink-300);line-height:1.8}
@media (max-width:820px){
  .pc-head{grid-template-columns:1fr}
  .pc-jack{text-align:left;border-top:1px dashed var(--ink-600);padding-top:14px}
  .pc-grp+.pc-grp{border-left:none;padding-left:0;border-top:1px dashed var(--ink-600);padding-top:14px;flex-basis:100%}
}

/* =====================================================================
   v10:多商品計算器 + 教程 + 整店加總(交易所語言)
   ===================================================================== */
/* ---- 教程(可折疊,預設展開) ---- */
.pc-guide{margin-top:30px;border:1px solid var(--ink-600);border-radius:14px;overflow:hidden;background:var(--ink-800)}
.pc-guide>summary{cursor:pointer;list-style:none;padding:16px 22px;display:flex;align-items:center;gap:10px;
  font-family:var(--font-display);font-weight:700;font-size:16px}
.pc-guide>summary::-webkit-details-marker{display:none}
.pc-guide>summary::before{content:"▾";color:var(--neon);font-size:12px;transition:transform .2s}
.pc-guide:not([open])>summary::before{transform:rotate(-90deg)}
.pc-guide>summary .tag{font-family:var(--font-mono);font-size:13px;letter-spacing:.2em;color:var(--neon);
  border:1px solid var(--neon);border-radius:4px;padding:2px 8px;margin-left:auto}
.pc-guide-body{padding:4px 22px 22px;border-top:1px solid var(--ink-600)}
.pc-guide-body h4,.pc-guide-body h2{font-family:var(--font-display);font-size:14px;font-weight:700;margin:18px 0 8px;color:var(--ink-100)}
.pc-guide-body p{font-size:13px;line-height:1.9;color:var(--ink-300);margin:0 0 8px}
.pc-guide-body p b{color:var(--ink-100)}
.pc-guide-lead{background:color-mix(in oklab, var(--neon) 8%, var(--ink-700));border-radius:10px;padding:14px 16px;
  font-size:14px !important;line-height:1.9;color:var(--ink-100) !important;margin:12px 0 4px !important}
.pc-guide-lead b{color:var(--neon)}
/* 案例逐行扣費表 */
.pc-example{width:100%;border-collapse:collapse;font-size:13px;margin:8px 0}
.pc-example td,.pc-example th{padding:9px 12px;text-align:left;border-bottom:1px solid var(--ink-600)}
.pc-example th{font-family:var(--font-mono);font-size:12px;letter-spacing:.16em;color:var(--ink-300);font-weight:400}
.pc-example .step{color:var(--ink-100)}
.pc-example .amt{font-family:var(--font-mono);text-align:right;white-space:nowrap;color:#FF8A78}
.pc-example .run{font-family:var(--font-mono);text-align:right;white-space:nowrap;color:var(--ink-100)}
.pc-example tr.is-final td{border-top:2px solid var(--neon);border-bottom:none;font-weight:700}
.pc-example tr.is-final .run{color:var(--neon)}
.pc-example tr.is-start .run{color:var(--ink-100)}
/* 欄位說明表 */
.pc-fields-tbl{width:100%;border-collapse:collapse;font-size:13px;margin:8px 0}
.pc-fields-tbl td,.pc-fields-tbl th{padding:8px 12px;text-align:left;vertical-align:top;border-bottom:1px solid var(--ink-600)}
.pc-fields-tbl th{font-family:var(--font-mono);font-size:12px;letter-spacing:.16em;color:var(--ink-300);font-weight:400}
.pc-fields-tbl .fname{color:var(--neon);font-weight:600;white-space:nowrap}
.pc-fields-tbl .fwhy{color:var(--ink-300);line-height:1.7}
.pc-fields-tbl .feg{font-family:var(--font-mono);color:var(--ink-100);white-space:nowrap}
.pc-miss{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.pc-miss li{list-style:none;font-size:13px;color:var(--ink-300);line-height:1.8;padding-left:20px;position:relative}
.pc-miss li::before{content:"⚠";position:absolute;left:0;color:#E0B36A}
.pc-miss li b{color:var(--ink-100)}

/* ---- 多商品計算器容器 ---- */
.pc-wrap{margin-top:20px;border:1px solid var(--ink-600);border-radius:14px;overflow:hidden;background:var(--ink-800)}
.pc-wrap-head{padding:20px 24px;border-bottom:1px solid var(--ink-600);position:relative;overflow:hidden}
.pc-wrap-head-bg{position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(70% 100% at 6% 0%, color-mix(in oklab, var(--neon) 10%, transparent), transparent 60%)}
.pc-wrap-title{margin:0;font-family:var(--font-display);font-weight:900;font-size:18px;letter-spacing:.04em;position:relative}
.pc-wrap-sub{margin:6px 0 0;font-size:12px;color:var(--ink-300);position:relative;line-height:1.7}
.pc-list{padding:16px 20px;display:flex;flex-direction:column;gap:12px}
/* 單一商品列(桌面橫、手機卡) */
.pc-row{border:1px solid var(--ink-600);border-radius:10px;background:var(--ink-700);overflow:hidden}
.pc-row-head{display:flex;align-items:center;gap:12px;padding:11px 14px;border-bottom:1px solid var(--ink-600);flex-wrap:wrap}
.pc-row-name{flex:0 0 auto;width:140px;background:var(--ink-800);border:1px solid var(--ink-600);border-radius:6px;
  color:var(--ink-100);font-size:13px;padding:7px 10px;outline:none}
.pc-row-name:focus{border-color:var(--neon)}
.pc-row-net{flex:1;min-width:180px;font-size:12px;color:var(--ink-300);font-family:var(--font-mono)}
.pc-row-net b{font-size:14px}
.pc-row-del{flex:none;width:30px;height:30px;border:1px solid var(--ink-600);border-radius:6px;background:transparent;
  color:var(--ink-300);cursor:pointer;font-size:13px}
.pc-row-del:hover{border-color:#FF6B57;color:#FF6B57}
.pc-row-fields{display:flex;gap:14px 18px;flex-wrap:wrap;align-items:flex-end;padding:14px}
.pc-row-detail{padding:0 14px 14px}
.pc-row-toggle{width:100%;background:transparent;border:none;border-top:1px dashed var(--ink-600);
  color:var(--ink-300);font-size:12px;padding:8px;cursor:pointer;font-family:var(--font-mono);letter-spacing:.06em}
.pc-row-toggle:hover{color:var(--neon)}
/* 欄位 */
.pc-f{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--ink-300)}
.pc-f input[type=number]{background:var(--ink-800);border:1px solid var(--ink-600);border-radius:6px;color:var(--neon);
  font-family:var(--font-mono);font-size:14px;padding:7px 9px;text-align:right;outline:none;width:88px;box-sizing:border-box}
.pc-f input[type=number]:focus{border-color:var(--neon)}
.pc-f select{background:var(--ink-800);border:1px solid var(--ink-600);border-radius:6px;color:var(--ink-100);font-size:12px;padding:8px;outline:none}
.pc-pills{display:flex;gap:4px;flex-wrap:wrap}
.pc-pills label{cursor:pointer}
.pc-pills input{position:absolute;opacity:0;pointer-events:none}
.pc-pills span{display:inline-block;font-size:12px;padding:6px 9px;border-radius:6px;border:1px solid var(--ink-600);background:var(--ink-800);color:var(--ink-300)}
.pc-pills input:checked+span{border-color:var(--neon);background:color-mix(in oklab, var(--neon) 14%, var(--ink-800));color:var(--neon)}
.pc-check{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--ink-300)}
.pc-check input{accent-color:var(--neon)}
.pc-bar{display:flex;height:16px;border-radius:4px;overflow:hidden;background:var(--ink-800);margin:4px 0 10px}
.pc-bar span{transition:width .5s cubic-bezier(.2,.7,.2,1)}
.pc-bar .sg{background:#4A5A72}.pc-bar .sn{background:var(--neon)}
.pc-lines{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:7px}
/* 新增商品鈕 */
.pc-add{margin:2px 20px 18px;width:calc(100% - 40px);background:transparent;border:1.5px dashed var(--ink-600);
  border-radius:10px;color:var(--neon);font-size:13px;padding:12px;cursor:pointer;font-family:var(--font-mono);letter-spacing:.06em}
.pc-add:hover:not(:disabled){border-color:var(--neon);background:color-mix(in oklab, var(--neon) 6%, transparent)}
.pc-add:disabled{color:var(--ink-300);cursor:not-allowed;opacity:.6}
/* 店層級(固定成本 + 稅) */
.pc-store-ctl{padding:14px 24px;border-top:1px solid var(--ink-600);display:flex;gap:20px 26px;flex-wrap:wrap;align-items:flex-end}
.pc-store-ctl .pc-f input[type=number]{width:110px}
.pc-store-tag{font-family:var(--font-mono);font-size:12px;letter-spacing:.24em;color:var(--neon);align-self:center}
/* 整店加總 */
.pc-foot{padding:22px 24px;border-top:1px solid var(--ink-600);background:color-mix(in oklab, var(--neon) 5%, var(--ink-800))}
.pc-store-main{display:grid;grid-template-columns:1fr 1.1fr;gap:22px;align-items:center}
.pc-store-cap{margin:0;font-family:var(--font-mono);font-size:12px;letter-spacing:.16em;color:var(--ink-300)}
.pc-store-net{margin:4px 0 0;font-family:var(--font-mono);font-weight:600;font-size:clamp(38px,6vw,60px);line-height:1.05}
.pc-kpis{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.pc-kpi{background:var(--ink-700);border:1px solid var(--ink-600);border-radius:10px;padding:12px 14px}
.pc-kpi .k{display:block;font-size:12px;color:var(--ink-300);margin-bottom:4px}
.pc-kpi b{font-family:var(--font-mono);font-size:18px;color:var(--ink-100)}
.pc-store-ledger{margin-top:18px;border-top:1px dashed var(--ink-600);padding-top:14px;display:flex;flex-direction:column;gap:2px}
.pc-lrow{display:flex;justify-content:space-between;gap:16px;padding:5px 0;font-size:13px;color:var(--ink-300)}
.pc-lrow b{font-family:var(--font-mono);color:var(--ink-100)}
.pc-lrow.is-sub{border-top:1px solid var(--ink-600);margin-top:4px;padding-top:9px}
.pc-lrow.is-total{border-top:2px solid var(--neon);margin-top:4px;padding-top:11px;font-size:14px;color:var(--ink-100);font-weight:700}
.pc-lrow.is-total b{font-size:21px}
.pc-foot-note{margin:12px 0 0;font-size:12px;color:var(--ink-300);line-height:1.7}

@media (max-width:820px){
  .pc-store-main{grid-template-columns:1fr;gap:14px}
  .pc-row-fields{gap:12px}
  .pc-kpis{grid-template-columns:1fr 1fr 1fr}
}
@media (max-width:560px){
  .pc-row-name{width:100%}
  .pc-row-net{min-width:0;flex-basis:100%;order:3}
  .pc-f input[type=number]{font-size:16px}  /* iOS 防縮放 */
  .pc-kpis{grid-template-columns:1fr}
  .pc-lines{grid-template-columns:1fr}
  .pc-example td,.pc-example th{padding:7px 8px;font-size:12px}
  .pc-fields-tbl .feg{white-space:normal}
}

/* ---- 加盟教程(契約紙質感) ---- */
.fr-guide{position:relative;z-index:1;max-width:1360px;margin:20px auto 0;padding:0 32px;box-sizing:border-box}
.fr-guide-inner{background:var(--paper);color:var(--paper-ink);border-radius:3px;overflow:hidden;
  box-shadow:0 20px 46px rgba(0,0,0,.4);background-image:repeating-linear-gradient(180deg, transparent 0 37px, rgba(43,36,24,.045) 37px 38px)}
[data-theme="light"] .fr-guide-inner{box-shadow:0 14px 34px rgba(60,45,20,.3)}
.fr-guide-inner>summary{cursor:pointer;list-style:none;padding:16px 26px;display:flex;align-items:center;gap:10px;
  font-family:var(--font-display);font-weight:900;font-size:16px;letter-spacing:.1em;color:#2A2318}
.fr-guide-inner>summary::-webkit-details-marker{display:none}
.fr-guide-inner>summary::before{content:"▾";color:var(--seal);font-size:12px;transition:transform .2s}
.fr-guide-inner:not([open])>summary::before{transform:rotate(-90deg)}
.fr-guide-inner>summary .tag{font-family:'LXGW WenKai TC',serif;font-size:12px;letter-spacing:.16em;color:var(--seal);
  border:1.5px solid var(--seal);border-radius:4px;padding:2px 10px;margin-left:auto}
.fr-guide-body{padding:6px 26px 24px;border-top:1px solid #D9CCA9}
.fr-guide-body h4,.fr-guide-body h2{font-family:'LXGW WenKai TC','Noto Serif TC',serif;font-weight:700;font-size:16px;color:#6B4A17;letter-spacing:.1em;margin:20px 0 8px}
.fr-guide-body p{font-size:14px;line-height:2;color:#3A3222;margin:0 0 8px}
.fr-guide-body p b{color:#9E2B1B}
.fr-guide-lead{background:rgba(158,43,27,.05);border-left:3px solid var(--seal);border-radius:0 6px 6px 0;padding:12px 16px;
  font-size:14px !important;line-height:2 !important}
.fr-example{width:100%;border-collapse:collapse;font-size:13px;margin:8px 0}
.fr-example td,.fr-example th{padding:9px 12px;text-align:left;border-bottom:1px dashed #C9BC97}
.fr-example th{font-family:'LXGW WenKai TC',serif;font-size:12px;color:#6B5E42;font-weight:700}
.fr-example .amt{font-family:var(--font-mono);text-align:right;white-space:nowrap;color:#9E2B1B}
.fr-example .run{font-family:var(--font-mono);text-align:right;white-space:nowrap;color:#2A2318}
.fr-example tr.is-final td{border-top:2px solid var(--seal);border-bottom:none;font-weight:700}
.fr-example tr.is-final .run{color:#9E2B1B}
.fr-fields-tbl{width:100%;border-collapse:collapse;font-size:13px;margin:8px 0}
.fr-fields-tbl td,.fr-fields-tbl th{padding:8px 12px;text-align:left;vertical-align:top;border-bottom:1px dashed #C9BC97}
.fr-fields-tbl th{font-family:'LXGW WenKai TC',serif;font-size:12px;color:#6B5E42;font-weight:700}
.fr-fields-tbl .fname{color:#9E2B1B;font-weight:700;white-space:nowrap}
.fr-fields-tbl .feg{font-family:var(--font-mono);color:#2A2318;white-space:nowrap}
@media (max-width:640px){
  .fr-guide{padding:0 16px}
  .fr-guide-body{padding:6px 16px 18px}
  .fr-example td,.fr-example th,.fr-fields-tbl td,.fr-fields-tbl th{padding:7px 8px;font-size:12px}
  .fr-fields-tbl .feg{white-space:normal}
}

/* ---- 平台計算器:分析室(敏感度+利潤曲線) ---- */
.pc-ana{margin-top:16px;border:1px solid var(--ink-600);border-radius:14px;background:var(--ink-800);overflow:hidden}
.pc-ana>summary{cursor:pointer;list-style:none;padding:15px 22px;display:flex;align-items:center;gap:10px;
  font-family:var(--font-display);font-weight:700;font-size:16px}
.pc-ana>summary::-webkit-details-marker{display:none}
.pc-ana>summary::before{content:"▾";color:var(--neon);font-size:12px;transition:transform .2s}
.pc-ana:not([open])>summary::before{transform:rotate(-90deg)}
.pc-ana>summary .tag{font-family:var(--font-mono);font-size:12px;letter-spacing:.2em;color:var(--neon);
  border:1px solid var(--neon);border-radius:4px;padding:2px 8px;margin-left:auto}
.pc-ana-body{padding:6px 22px 22px;border-top:1px solid var(--ink-600)}
.pc-ana-block{margin-top:18px}
.pc-ana-title{font-family:var(--font-display);font-size:14px;font-weight:700;margin:0 0 4px;color:var(--ink-100)}
.pc-ana-sub{font-size:12px;color:var(--ink-300);margin:0 0 10px;line-height:1.7}
.pc-ana-sub b{color:var(--ink-100)}
.pc-ana-tbl{width:100%;border-collapse:collapse;font-size:12px;min-width:480px}
.pc-ana-tbl th,.pc-ana-tbl td{padding:8px 10px;border-bottom:1px solid var(--ink-600)}
.pc-ana-tbl th{font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;color:var(--ink-300);font-weight:400;text-align:right}
.pc-ana-tbl th:first-child,.pc-ana-tbl td:first-child{text-align:left;color:var(--ink-100)}
@media (max-width:560px){.pc-ana-body{padding:6px 12px 18px}}

/* ---- 產業頁:常見問答手風琴(契約紙質感) ---- */
.ind-qa-list{margin:8px 0 4px;border-top:1px dashed #C9BC97}
.ind-qa{border-bottom:1px dashed #C9BC97}
.ind-qa>summary{cursor:pointer;list-style:none;padding:12px 4px;display:flex;align-items:flex-start;gap:10px;
  font-family:'LXGW WenKai TC','Noto Serif TC',serif;font-weight:700;font-size:14px;color:#3A3222;line-height:1.6}
.ind-qa>summary::-webkit-details-marker{display:none}
.ind-qa>summary::before{content:"問";flex:none;width:22px;height:22px;border-radius:4px;background:var(--seal);color:#F6EFDC;
  font-size:12px;display:grid;place-items:center;font-family:var(--font-display);margin-top:1px}
.ind-qa[open]>summary::before{content:"答";background:#6B5E42}
.ind-qa>p{margin:0 0 14px 32px;font-size:14px;line-height:2;color:#3A3222}
.ind-qa>p b{color:#9E2B1B}

/* ---- 利潤曲線:多線圖例 + hover 提示 ---- */
.pc-ana-block{position:relative}
.pc-cv-legend{display:flex;gap:10px 16px;flex-wrap:wrap;margin-top:10px}
.pc-cv-leg{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-300);cursor:pointer}
.pc-cv-leg input{accent-color:var(--neon)}
.pc-cv-leg .sw{width:14px;height:0;border-top:2.4px solid;border-radius:2px;display:inline-block}
.pc-cv-leg small{color:var(--ink-300);opacity:.7;font-size:12px;margin-left:2px}
.pc-cv-tip{position:absolute;pointer-events:none;background:var(--ink-900);border:1px solid var(--ink-600);border-radius:8px;
  padding:8px 11px;font-size:12px;line-height:1.7;color:var(--ink-100);font-family:var(--font-mono);z-index:5;
  box-shadow:0 8px 24px rgba(0,0,0,.4);white-space:normal;width:max-content;max-width:230px}
.pc-curve-svg{cursor:crosshair;margin-top:4px}

/* ---- 欄位「?」小提示 ---- */
.pc-hint{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;
  border:1px solid var(--ink-300);color:var(--ink-300);font-size:12px;line-height:1;cursor:help;margin-left:4px;
  position:relative;font-family:var(--font-mono);flex:none}
.pc-hint:hover,.pc-hint:focus{border-color:var(--neon);color:var(--neon)}
/* position:fixed(不是 absolute)是刻意的:提示框的父層(.pc-row 等)常有
   overflow:hidden 讓圓角乾淨(裁掉子層方角),但同一個 overflow:hidden 也會把
   往上彈出的提示框腰斬——bottom:130% 讓它跑到 .pc-row 的框外就被裁掉一截,
   欄位擠在一列時常見。改用 fixed 定位、由 JS(positionHintTip)在滑過/聚焦當下
   算出視窗座標寫成 CSS 變數,完全跳過所有祖先層的 overflow 裁切與螢幕邊緣。 */
.pc-hint::after{content:attr(data-tip);position:fixed;
  left:var(--pc-hint-left, -9999px);bottom:var(--pc-hint-bottom, -9999px);
  background:var(--ink-900);border:1px solid var(--ink-600);border-radius:8px;padding:9px 12px;font-size:12px;
  line-height:1.7;color:var(--ink-100);width:var(--pc-hint-width, 220px);white-space:normal;text-align:left;z-index:60;
  box-shadow:0 8px 24px rgba(0,0,0,.45);opacity:0;visibility:hidden;transition:opacity .15s;pointer-events:none;font-family:inherit}
.pc-hint:hover::after,.pc-hint:focus::after{opacity:1;visibility:visible}
/* 教程:看不懂稅的提示框 */
.pc-tax-note{margin-top:14px;background:color-mix(in oklab, #E0B36A 10%, var(--ink-700));border-left:3px solid #E0B36A;
  border-radius:0 8px 8px 0;padding:12px 15px;font-size:13px;line-height:1.9;color:var(--ink-100)}
.pc-tax-note b{color:#E0B36A}

/* =====================================================================
   v13:電商計算器 簡易 / 進階 模式
   ===================================================================== */
/* 模式選擇卡(未選過時顯示) */
.pc-mode-pick{margin-top:30px;border:1px solid var(--ink-600);border-radius:16px;background:var(--ink-800);
  padding:26px 28px;position:relative;overflow:hidden;scroll-margin-top:90px}
.pc-mode-pick-bg{position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(60% 100% at 5% 0%, color-mix(in oklab, var(--neon) 8%, transparent), transparent 60%)}
.pc-mode-pick h3,.pc-mode-pick h2{margin:0 0 4px;font-family:var(--font-display);font-weight:900;font-size:18px;position:relative}
.pc-mode-pick .lead{margin:0 0 16px;font-size:13px;color:var(--ink-300);line-height:1.8;position:relative}
.pc-mode-diff{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 18px;position:relative}
.pc-mode-diff div{background:var(--ink-700);border:1px solid var(--ink-600);border-radius:10px;padding:13px 15px}
.pc-mode-diff h4,.pc-mode-diff h3{margin:0 0 5px;font-size:13px;font-weight:700;color:var(--ink-100)}
.pc-mode-diff p{margin:0;font-size:12px;color:var(--ink-300);line-height:1.7}
.pc-mode-diff .tag{display:inline-block;font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;
  padding:2px 8px;border-radius:4px;margin-bottom:6px}
.pc-mode-note{margin:0 0 18px;font-size:12px;color:var(--ink-100);background:color-mix(in oklab, var(--neon) 8%, var(--ink-700));
  border-radius:8px;padding:11px 14px;line-height:1.8;position:relative}
.pc-mode-note b{color:var(--neon)}
.pc-mode-btns{display:flex;gap:12px;flex-wrap:wrap;position:relative}
.pc-mode-btn{flex:1;min-width:180px;border:1.5px solid var(--ink-600);border-radius:12px;background:var(--ink-700);
  padding:16px 20px;cursor:pointer;text-align:left;transition:all .18s;color:var(--ink-100);font:inherit}
.pc-mode-btn:hover{border-color:var(--neon);background:color-mix(in oklab, var(--neon) 8%, var(--ink-700))}
.pc-mode-btn b{display:block;font-family:var(--font-display);font-size:16px;font-weight:900;margin-bottom:3px}
.pc-mode-btn span{font-size:12px;color:var(--ink-300);line-height:1.6}
.pc-mode-btn.is-adv b{color:var(--gold-soft)}
.pc-mode-btn.is-simple b{color:var(--neon)}
/* 重新叫出說明時才會出現的「維持原設定」選項;第一次進站選模式時不需要這顆 */
.pc-mode-close{display:block;margin:12px auto 0;background:none;border:none;color:var(--ink-300);
  font-size:12px;text-decoration:underline;cursor:pointer;position:relative}

/* 模式切換列(選過後,計算器頂端) */
.pc-mode-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:30px;padding:12px 18px;
  border:1px solid var(--ink-600);border-radius:12px;background:var(--ink-800)}
.pc-mode-bar .cur{font-size:13px;color:var(--ink-300)}
.pc-mode-bar .cur b{color:var(--ink-100)}
.pc-mode-switch{display:inline-flex;border:1px solid var(--ink-600);border-radius:8px;overflow:hidden;margin-left:auto}
.pc-mode-switch button{background:transparent;border:none;color:var(--ink-300);font:inherit;font-size:12px;
  padding:7px 16px;cursor:pointer}
.pc-mode-switch button.is-on{background:var(--neon);color:#06120E;font-weight:700}
.pc-mode-hint-line{flex-basis:100%;font-size:12px;color:var(--ink-300);margin:0;line-height:1.6}

/* ===== 簡易模式:隱藏進階元件 ===== */
body.pc-mode-simple .pc-adv-only{display:none !important}
/* 簡易模式視覺變安靜:關掉霓虹光暈/掃描線/動畫背景 */
body.pc-mode-simple .ec-hero-bg,
body.pc-mode-simple .pc-wrap-head-bg,
body.pc-mode-simple .pc-mode-pick-bg{display:none !important}
body.pc-mode-simple .pc-jack-num,
body.pc-mode-simple .pc-store-net,
body.pc-mode-simple #pcNet{text-shadow:none !important}
body.pc-mode-simple .ec-lane.is-best,
body.pc-mode-simple .pc-row{box-shadow:none !important}
body.pc-mode-simple .hero-eyebrow::after{content:"" !important;animation:none !important}
/* 簡易模式:單品結果條 */
.pc-simple-result{display:none;margin-top:16px;padding:20px 22px;border:1px solid var(--ink-600);border-radius:14px;
  background:color-mix(in oklab, var(--neon) 5%, var(--ink-800))}
body.pc-mode-simple .pc-simple-result{display:block}
.pc-simple-result .cap{margin:0;font-family:var(--font-mono);font-size:12px;letter-spacing:.16em;color:var(--ink-300)}
.pc-simple-result .num{margin:4px 0 0;font-family:var(--font-mono);font-weight:600;font-size:clamp(36px,6vw,52px);line-height:1.05}
.pc-simple-result .meta{margin:6px 0 0;font-size:13px;color:var(--ink-300)}
.pc-simple-result .meta b{color:var(--ink-100);font-family:var(--font-mono)}

@media (max-width:560px){
  .pc-mode-diff{grid-template-columns:1fr}
  .pc-mode-btn{min-width:0;flex-basis:100%}
}

/* 簡易模式:隱藏每列的進階欄位(費率覆寫、加成、月銷量等) */
body.pc-mode-simple .pc-rowadv{display:none !important}
/* 簡易模式:列內的月貢獻/明細/刪除都收起(答案看下方的簡易結果框即可) */
body.pc-mode-simple .pc-row-net{display:none}
body.pc-mode-simple .pc-row-del{display:none}
body.pc-mode-simple .pc-row-toggle{display:none}
body.pc-mode-simple .pc-row-head{border-bottom:none;padding-bottom:0}
body.pc-mode-simple .pc-row{background:transparent;border:none}
body.pc-mode-simple .pc-list{padding:0 0 4px}

/* ---- 品牌標誌:方孔錢(取代舊的「算」字印章) ---- */
.brand-seal:has(svg){background:transparent !important;box-shadow:none !important;border:none !important}
.brand-seal svg{display:block}

/* =====================================================================
   電商版圖 — 色塊拼貼 v3(八分類 + 官方標誌)
   ===================================================================== */

.mk-band{--mk-a:#7A5C2E;--mk-b:#5A4220;--mk-line:rgba(255,255,255,.05);--mk-glow:217,169,87;margin:32px 0 0}
.mk-band[data-cat="tools"]   {--mk-a:#2E7A57;--mk-b:#1C5039;--mk-glow:87,184,150}
.mk-band[data-cat="source"]  {--mk-a:#8A6431;--mk-b:#5C4220;--mk-glow:217,169,87}
.mk-band[data-cat="channel"] {--mk-a:#2F5E8A;--mk-b:#1D3D5C;--mk-glow:74,144,217}
.mk-band[data-cat="cross"]   {--mk-a:#2B6F63;--mk-b:#1B4A42;--mk-glow:87,184,150}
.mk-band[data-cat="select"]  {--mk-a:#4E4468;--mk-b:#322B45;--mk-glow:150,130,200}
.mk-band[data-cat="food"]    {--mk-a:#8A4A38;--mk-b:#5C3024;--mk-glow:217,120,87}
.mk-band[data-cat="beauty"]  {--mk-a:#7A3E63;--mk-b:#4E2740;--mk-glow:210,120,180}
.mk-band[data-cat="life"]    {--mk-a:#3E5A7A;--mk-b:#27384E;--mk-glow:120,160,210}
.mk-band[data-cat="shopee"]  {--mk-a:#A8412A;--mk-b:#70281A;--mk-glow:238,77,45}
[data-theme="light"] .mk-band{--mk-line:rgba(255,255,255,.10)}
[data-theme="light"] .mk-band[data-cat="tools"]   {--mk-a:#4A9E76;--mk-b:#2F7355}
[data-theme="light"] .mk-band[data-cat="source"]  {--mk-a:#B08A4A;--mk-b:#8A6A34}
[data-theme="light"] .mk-band[data-cat="channel"] {--mk-a:#4C82B4;--mk-b:#356087}
[data-theme="light"] .mk-band[data-cat="cross"]   {--mk-a:#4A9585;--mk-b:#2F6D60}
[data-theme="light"] .mk-band[data-cat="select"]  {--mk-a:#6F6392;--mk-b:#4E446B}
[data-theme="light"] .mk-band[data-cat="food"]    {--mk-a:#B06A52;--mk-b:#8A4A38}
[data-theme="light"] .mk-band[data-cat="beauty"]  {--mk-a:#A05C85;--mk-b:#7A3E63}
[data-theme="light"] .mk-band[data-cat="life"]    {--mk-a:#5C7EA5;--mk-b:#3E5A7A}
[data-theme="light"] .mk-band[data-cat="shopee"]  {--mk-a:#D4614A;--mk-b:#A8412A}

.mk-band-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.mk-band-head h3{font-family:var(--font-display);font-size:16px;font-weight:900;letter-spacing:.06em;
  display:flex;align-items:center;gap:9px}
.mk-band-head h3::before{content:"";width:11px;height:11px;border-radius:3px;flex:none;
  background:linear-gradient(150deg,var(--mk-a),var(--mk-b));box-shadow:0 0 0 3px rgba(var(--mk-glow),.14)}
.mk-band-count{font-family:var(--font-mono);font-size:12px;color:var(--ink-300);letter-spacing:.1em}
.mk-band-lead{font-size:13px;color:var(--ink-300);line-height:1.75;margin-bottom:14px;max-width:70ch}

.mk-mosaic{display:grid;grid-template-columns:repeat(auto-fill,minmax(134px,1fr));
  grid-auto-rows:84px;gap:14px;grid-auto-flow:dense}

.mk-tile{position:relative;overflow:hidden;border-radius:13px;text-decoration:none;color:#fff;
  display:flex;flex-direction:column;gap:7px;padding:11px 12px;isolation:isolate;
  background:linear-gradient(152deg,var(--mk-a),var(--mk-b));
  box-shadow:0 1px 2px rgba(0,0,0,.28);
  transition:transform .2s cubic-bezier(.2,.8,.3,1),box-shadow .2s}
.mk-tile::before{content:"";position:absolute;inset:0;z-index:-2;
  background:repeating-linear-gradient(118deg,transparent 0 6px,var(--mk-line) 6px 7px)}
.mk-tile::after{content:"";position:absolute;right:-40px;bottom:-40px;width:104px;height:104px;z-index:-2;
  background:radial-gradient(circle,rgba(255,255,255,.09) 0 34%,transparent 35%),
             radial-gradient(circle,transparent 0 44%,rgba(255,255,255,.06) 45% 50%,transparent 51%),
             radial-gradient(circle,transparent 0 58%,rgba(255,255,255,.045) 59% 64%,transparent 65%);
  transition:transform .35s cubic-bezier(.2,.8,.3,1)}
.mk-tile:hover{transform:translateY(-3px);
  box-shadow:0 3px 0 rgba(var(--mk-glow),.30),0 7px 0 rgba(var(--mk-glow),.15),0 15px 28px rgba(0,0,0,.38)}
.mk-tile:hover::after{transform:scale(1.18) translate(-6px,-6px)}
.mk-tile:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

/* 標誌容器:白底承載官方 logo;無 logo 時顯示字母章 */
.mk-ico{width:34px;height:34px;flex:none;border-radius:9px;display:grid;place-items:center;
  position:relative;overflow:hidden;
  font-family:var(--font-display);font-weight:900;font-size:14px;color:#fff;line-height:1;
  background:linear-gradient(150deg,var(--acc,#888),color-mix(in srgb,var(--acc,#888) 60%,#000));
  box-shadow:0 2px 6px rgba(0,0,0,.32),inset 0 0 0 1px rgba(255,255,255,.22)}
.mk-ico img.mk-logo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;
  background:#fff;padding:4px;border-radius:inherit}

.mk-txt{display:flex;flex-direction:column;gap:3px;min-width:0}
.mk-n{font-size:13px;font-weight:700;line-height:1.32;letter-spacing:.01em;
  text-shadow:0 1px 3px rgba(0,0,0,.28);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mk-d{font-size:13px;line-height:1.6;color:rgba(255,255,255,.80);
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.mk-go{position:absolute;right:11px;bottom:10px;width:22px;height:22px;border-radius:50%;
  display:grid;place-items:center;font-size:12px;color:#fff;
  background:rgba(255,255,255,.16);backdrop-filter:blur(3px);
  opacity:0;transform:translateX(-5px);transition:opacity .2s,transform .2s}
.mk-tile:hover .mk-go{opacity:1;transform:translateX(0)}

.mk-tile.t1{grid-column:span 2;grid-row:span 2;border-radius:16px;padding:14px 15px;justify-content:flex-start}
.mk-tile.t1 .mk-ico{width:42px;height:42px;font-size:18px;border-radius:11px}
.mk-tile.t1 .mk-n{font-size:16px}
.mk-tile.t1 .mk-txt{margin-top:auto}
.mk-tile.t2{grid-column:span 2;flex-direction:row;align-items:center;gap:10px}
.mk-tile.t2 .mk-n{font-size:13px;-webkit-line-clamp:1}
.mk-tile.t2 .mk-d{-webkit-line-clamp:2;font-size:13px}
.mk-tile.t3{flex-direction:row;align-items:center;gap:9px}
.mk-tile.t3 .mk-ico{width:28px;height:28px;font-size:13px;border-radius:8px}
.mk-tile.t3 .mk-n{font-size:12px;-webkit-line-clamp:2}
.mk-tile.t3 .mk-d{display:none}
.mk-tile.t2 .mk-go,.mk-tile.t3 .mk-go{display:none}

.mk-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(134px,1fr));
  grid-auto-rows:68px;gap:9px;grid-auto-flow:dense}
.mk-strip .mk-tile{flex-direction:row;align-items:center;gap:9px;padding:10px 12px}
.mk-strip .mk-tile .mk-ico{width:29px;height:29px;font-size:13px;border-radius:8px}
.mk-strip .mk-tile .mk-n{font-size:12px;-webkit-line-clamp:2}
.mk-strip .mk-tile .mk-d,.mk-strip .mk-go{display:none}
.mk-strip .mk-tile.t1{grid-column:span 2;grid-row:span 1}

.mk-disclosure{font-size:13px;color:var(--ink-300);line-height:1.8;
  background:var(--ink-700);border:1px solid var(--ink-600);border-radius:var(--radius-sm);
  padding:12px 15px;margin:16px 0 0}

@media (max-width:520px){
  .mk-mosaic,.mk-strip{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));grid-auto-rows:76px;gap:10px}
  .mk-tile.t1 .mk-n{font-size:14px}
  .mk-tile.t1 .mk-d{-webkit-line-clamp:2}
}
@media (prefers-reduced-motion:reduce){
  .mk-tile,.mk-tile::after,.mk-go{transition:none}
  .mk-tile:hover,.mk-tile:hover::after{transform:none}
}

/* 熱門排名徽章 */
.sp-rank{position:absolute;top:9px;right:10px;z-index:1;
  font-family:var(--font-mono);font-size:12px;font-weight:600;line-height:1;
  color:rgba(255,255,255,.72);background:rgba(0,0,0,.24);
  padding:3px 6px;border-radius:5px;letter-spacing:.03em}
.mk-tile.t1 .sp-rank{font-size:12px;padding:4px 8px;top:12px;right:13px}

/* =============== 蝦皮品類:幾何圖示 + 品類專屬色 =============== */
/* 色塊底色改由各品類的 --acc 決定,不再是一整片橘 */
.sp-tile{background:var(--acc);background:linear-gradient(152deg,
  color-mix(in srgb, var(--acc) 62%, #1A1116),
  color-mix(in srgb, var(--acc) 30%, #120C10))}
[data-theme="light"] .sp-tile{background:var(--acc);background:linear-gradient(152deg,
  color-mix(in srgb, var(--acc) 82%, #fff),
  color-mix(in srgb, var(--acc) 58%, #000))}
.sp-tile:hover{box-shadow:var(--acc);box-shadow:
  0 3px 0 color-mix(in srgb, var(--acc) 55%, transparent),
  0 7px 0 color-mix(in srgb, var(--acc) 28%, transparent),
  0 15px 28px rgba(0,0,0,.4)}
/* 圖示底改為半透明白,讓線條圖示浮出 */
.sp-ico{background:rgba(255,255,255,.16)!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.26)!important;
  backdrop-filter:blur(2px)}
.sp-svg{width:60%;height:60%;color:#fff;display:block}
.mk-tile.t1 .sp-svg{width:56%;height:56%}

/* =============== 數字對齊:表格與金額不隨數值變化跳動 =============== */
.pnl-table,.sens-table,.cmp-table,.rate-table,.pc-ana-tbl,
.statement,.st-total .val,.st-metric .v,.goal-rows,.cap-row,
.summary-bar,.input-money input,.derived strong,.mk-band-count,
.sp-rank,.st-no,.rate-version{
  font-variant-numeric:tabular-nums lining-nums;
  font-feature-settings:"tnum" 1,"lnum" 1;
}

/* =============== 高對比模式(系統開啟「增加對比」時生效) =============== */
@media (prefers-contrast: more){
  :root{
    --ink-300:#C3CCD9;      /* 次要文字 6.04 → 11.2:1 */
    --ink-600:#3D4E68;
    --line-strong:#7E97BC;  /* 邊界 3.08 → 6.1:1 */
    --gold:#F0C978;
    --jade:#7FD8B4;
    --cinnabar:#F09184;
  }
  [data-theme="light"]{
    --ink-300:#3A3529;
    --ink-600:#A69C86;
    --line-strong:#5C5648;
    --gold:#4A340F;
    --jade:#0D3E2B;
    --cinnabar:#631D14;
  }
  .mk-tile,.sp-tile{box-shadow:0 0 0 1px var(--line-strong),0 1px 2px rgba(0,0,0,.28)}
  .mk-tile::before,.mk-tile::after{display:none}   /* 移除紋理,避免干擾辨識 */
  .st-foot,.chart-note,.mk-band-lead{color:var(--ink-100)}
}

/* 列標頭(第一欄的 th scope="row")外觀應與內容儲存格一致,不套用欄標頭的金色底 */
.pnl-table th[scope="row"],.sens-table th[scope="row"],
.cmp-table th[scope="row"],.rate-table th[scope="row"],
.pc-ana-tbl th[scope="row"]{
  background:transparent;color:var(--ink-300);
  font-family:var(--font-body);font-weight:400;font-size:inherit;
  letter-spacing:normal;text-align:left;white-space:normal;
}
.pnl-table .is-total th[scope="row"]{color:var(--gold);font-weight:600}
.pnl-table .is-em th[scope="row"]{color:var(--ink-100)}

/* =====================================================================
   觸控目標尺寸 — WCAG 2.5.8 最低 24×24,實務建議 44×44
   策略:視覺尺寸維持設計感,以偽元素擴大實際可點區域,不影響版面
   ===================================================================== */

/* 「?」提示鈕:視覺 18px,可點區 44×44 */
.tip{width:18px;height:18px;position:relative;flex:none}
.tip::after{content:"";position:absolute;top:50%;left:50%;
  width:44px;height:44px;transform:translate(-50%,-50%)}

/* 小型按鈕:實際加高到 32px 以上 */
.btn-mini{min-height:34px;padding:0 12px}
.btn-chip{min-height:32px;padding:0 14px;display:inline-flex;align-items:center}
.preset-row{gap:8px;row-gap:8px}
.product-tab{min-height:34px;padding:0 15px;display:inline-flex;align-items:center}

/* 分段選擇器:確保每格 ≥44px 高 */
.seg span{min-height:44px;display:flex;flex-direction:column;
  align-items:center;justify-content:center}
.seg.seg-3 span{min-height:52px}

/* 勾選框:15px → 20px,並擴大整列可點區 */
.checkbox-field input{width:20px;height:20px}
.checkbox-field label{min-height:32px;padding:4px 0}

/* 表格內的可編輯費率輸入 */
.rate-table input{min-height:34px}

/* 導覽與工具鈕維持 ≥38px,行動版 46px(已符合) */
.theme-toggle,.nav-burger{width:44px;height:44px}

/* 連結型觸控目標:版圖色塊、平台色塊已 ≥64px,無需調整 */

/* =====================================================================
   批次二 版面補償 — 字級提升後,固定尺寸元件需要更多空間
   ===================================================================== */

/* 1) 對帳單指標:標籤 9.5→12px,三欄會擠壓中文標籤,改為兩欄並允許換行 */
.st-metrics{grid-template-columns:1fr 1fr;gap:10px 12px}
.st-metric .k{line-height:1.4;white-space:normal;margin-bottom:2px}
.st-metric .v{font-size:14px;line-height:1.3}
@media (min-width:1200px){ .st-metrics{grid-template-columns:1fr 1fr 1fr} }

/* 2) 導覽上標「籌備中」:12px 會撐高導覽列,改為徽章樣式不佔行高 */
.nav-item sup{font-size:12px;line-height:1;transform:none;vertical-align:middle;
  margin-left:5px;padding:2px 5px;border-radius:4px;
  background:rgba(217,169,87,.14);color:var(--gold-soft)}
.nav-item{gap:2px}

/* 3) 品牌區:副標 10.5→12px,頁首需加高 */
.header-inner{height:auto;min-height:72px;padding:10px 0}
.brand-sub{line-height:1.35}
.brand-name{font-size:21px}

/* 4) 版圖色塊:文字變大,列高需增加避免截斷 */
.mk-mosaic{grid-auto-rows:96px}
.mk-strip{grid-auto-rows:76px}
.mk-tile{padding:12px 13px}
.mk-tile.t1{padding:15px 16px}
.mk-n{line-height:1.35}
.mk-d{line-height:1.65}

/* 5) 摘要條與判定條:文字變大需要更多垂直空間 */
.summary-bar{padding:11px 16px;line-height:1.5}
.verdict-strip,.warn-strip,.fr-warn{line-height:1.8}

/* 6) 表格:儲存格內距隨字級調整,避免擁擠 */
.pnl-table th,.pnl-table td,.sens-table th,.sens-table td,
.cmp-table th,.cmp-table td,.rate-table th,.rate-table td{padding:11px 14px}

/* 7) 輸入面板:label 與欄位間距 */
.field label{line-height:1.5;margin-bottom:7px}
.field{margin-bottom:16px}
.hint{line-height:1.7}

/* 8) 對帳單本體:逐行明細字級提升後的行距 */
.st-lines{font-size:13px}
.st-line{padding:4px 0}
.st-total .val{font-size:25px}

/* 9) 行動版:字級變大後重新調整斷點行為 */
@media (max-width:520px){
  .mk-mosaic,.mk-strip{grid-auto-rows:88px}
  .st-metrics{grid-template-columns:1fr 1fr}
  .header-inner{min-height:64px}
  .nav-item sup{font-size:12px;padding:1px 4px}
}

/* 數字輸入框:字級提升後加寬,避免五位數金額被截斷 */
.rate-table input{width:92px}
.fr-prose input[type=number]{width:76px}
body.t-home .v3-lane .nm{width:auto;min-width:64px;word-break:keep-all}

/* WebP logo:width/height 屬性用於防止版面位移(CLS),實際尺寸由容器決定 */
.mk-ico img.mk-logo,.pl-mark img.mk-logo{width:100%;height:100%}

/* =====================================================================
   視覺精修 — 日間模式的「物件感」與層次
   問題:深色模式的識別來自「深靛墨底 + 紙色對帳單」的圖地對比;
        日間模式底色也是紙色,對帳單失去「桌面上的一張紙」的物件感。
   解法:日間模式不靠明度差,改靠「邊界 + 投影 + 材質」建立層次。
   ===================================================================== */

/* 頁面底加入極淡的紙纖維紋理,避免大面積死白 */
[data-theme="light"] body{
  background-image:
    radial-gradient(circle at 18% 12%, rgba(140,120,80,.045) 0 1px, transparent 1.5px),
    radial-gradient(circle at 62% 48%, rgba(140,120,80,.035) 0 1px, transparent 1.5px),
    radial-gradient(circle at 84% 78%, rgba(140,120,80,.04) 0 1px, transparent 1.5px);
  background-size:180px 180px, 240px 240px, 200px 200px;
}

/* 面板:日間靠邊界與投影分層,不靠明度 */
[data-theme="light"] .panel-input,
[data-theme="light"] .chart-card,
[data-theme="light"] .d-card,
[data-theme="light"] .aff-card,
[data-theme="light"] .faq-item,
[data-theme="light"] .table-scroll{
  box-shadow:0 1px 2px rgba(90,72,40,.06), 0 4px 14px rgba(90,72,40,.05);border-color:var(--line-strong);
  border-color:color-mix(in srgb, var(--line-strong) 42%, transparent);
}

/* 對帳單:日間模式強化為「桌上的一張紙」——暖白紙面 + 立體投影 + 壓痕邊 */
[data-theme="light"] .statement{
  background:linear-gradient(168deg,#FFFDF8,#F7F1E4);
  box-shadow:
    0 1px 1px rgba(90,72,40,.10),
    0 10px 28px rgba(90,72,40,.14),
    0 2px 0 rgba(255,255,255,.9) inset;
  border:1px solid rgba(150,128,86,.28);
}
[data-theme="light"] .statement::before{
  background-image:radial-gradient(circle at 8px 5px, var(--ink-900) 4px, transparent 4.5px);
  filter:drop-shadow(0 1px 0 rgba(150,128,86,.35));
}

/* 頁首:日間加一道細金線,呼應深色模式的漸層
   選擇器特異度要贏過 body.t-home/.t-ec/.t-fr .site-header,不然這裡的
   不透明背景永遠套用不到,頁面裝飾紋理會從半透明的頁首透出來 */
[data-theme="light"] body.t-home .site-header,
[data-theme="light"] body.t-ec .site-header,
[data-theme="light"] body.t-fr .site-header{
  background:linear-gradient(180deg, rgba(168,122,42,.05), transparent 70%), var(--ink-900);
  border-bottom-color:color-mix(in srgb, var(--line-strong) 55%, transparent);
  box-shadow:0 1px 0 rgba(255,255,255,.7)
}

/* 摘要條:日間需要更明確的容器感 */
[data-theme="light"] .summary-bar{background:var(--ink-800);
  background:color-mix(in srgb, var(--ink-800) 92%, transparent);
  box-shadow:0 2px 10px rgba(90,72,40,.08)
}

/* =====================================================================
   資訊密度分層 — 決策在前,分析可收合
   ===================================================================== */

/* 可收合區段:標題本身就是開關 */
.zone-fold{border:1px solid var(--ink-600);border-radius:var(--radius);background:var(--ink-800);
  background:color-mix(in srgb, var(--ink-800) 55%, transparent);
  margin:var(--sp-14) 0 var(--sp-5);overflow:hidden}
.zone-fold > summary{
  list-style:none;cursor:pointer;user-select:none;
  display:flex;align-items:center;gap:14px;
  padding:18px 22px;min-height:56px;
  font-family:var(--font-display);font-weight:900;font-size:21px;letter-spacing:.04em}
.zone-fold > summary::-webkit-details-marker{display:none}
.zone-fold > summary::after{
  content:"展開";margin-left:auto;flex:none;
  font-family:var(--font-body);font-weight:400;font-size:13px;letter-spacing:.08em;
  color:var(--gold);border:1px solid var(--gold-soft);border-radius:999px;
  padding:6px 16px;min-height:32px;display:inline-flex;align-items:center}
.zone-fold[open] > summary::after{content:"收合"}
.zone-fold > summary:hover::after{background:var(--gold);background:color-mix(in srgb, var(--gold) 12%, transparent)}
.zone-fold > summary:focus-visible{outline:2px solid var(--gold);outline-offset:-3px}
.zone-fold .zone-lead{
  font-family:var(--font-body);font-weight:400;font-size:13px;letter-spacing:normal;
  color:var(--ink-300);margin-left:2px}
.zone-fold-body{padding:0 22px 22px}
.zone-fold[open] > summary{border-bottom:1px solid var(--ink-600);margin-bottom:20px}
/* 收合區段內的區塊標題降一級,避免與 summary 打架 */
.zone-fold-body .section-title{font-size:21px;margin:var(--sp-7) 0 var(--sp-4)}
.zone-fold-body .section-title:first-child{margin-top:0}

@media (max-width:520px){
  .zone-fold > summary{padding:15px 16px;font-size:16px;gap:10px}
  .zone-fold > summary::after{padding:6px 12px;font-size:12px}
  .zone-fold-body{padding:0 16px 18px}
}

/* =====================================================================
   列印樣式 — 對帳單/評估書可直接列印或存 PDF 給會計師看
   ===================================================================== */
@media print{
  .site-header,.site-footer,.ad-slot,.panel-input,.mk-band,.mk-section,
  .affiliate-zone,.faq-section,.share-row,.zone-fold,.summary-bar,
  .rate-table-section,#compareZone,.chart-card{display:none !important}
  body{background:#fff !important;color:#000 !important;font-size:12pt}
  .layout{display:block !important;padding:0 !important}
  .statement,.fr-eval,#evalWrap{
    background:#fff !important;color:#000 !important;
    box-shadow:none !important;border:1px solid #999 !important;
    page-break-inside:avoid;max-width:100% !important}
  .statement::before{display:none}
  .st-seal{border-color:#000 !important;color:#000 !important;opacity:1;mask:none}
  .verdict-strip{border:1px solid #999 !important;background:#fff !important;color:#000 !important}
  .st-total .val,.st-metric .v{color:#000 !important}
  a[href]::after{content:""}
  @page{margin:16mm}
}
/* 只列印損益評估書:切到 body.is-print-eval 時,把其餘所有區塊(頁首/hero/廣告/
   契約書表單/附件/頁尾)整段移出版面,而不是逐一列出可能漏掉的 class */
@media print{
  body.is-print-eval > *:not(main){display:none !important}
  body.is-print-eval main > *:not(.fr-grid){display:none !important}
  /* 隱藏左欄後 .fr-grid 只剩一個 grid item,若還留著雙欄軌道,
     評估書會被自動排進原本給契約書用的寬軌道,把版面撐爆並蓋住印章 */
  body.is-print-eval .fr-grid{display:block !important}
  body.is-print-eval .fr-grid > *:not(.fr-eval-col){display:none !important}
  body.is-print-eval .fr-eval-col > *:not(#evalPaper){display:none !important}
  body.is-print-eval .fr-eval-col{
    position:static !important;max-height:none !important;overflow:visible !important;
    max-width:640px;margin:0 auto}
}

/* =====================================================================
   互動細節精修
   ===================================================================== */
/* 統一過場曲線與時長 */
.btn-calc,.btn-share,.btn-mini,.btn-chip,.product-tab,.nav-item,
.theme-toggle,.nav-burger,.mk-tile,.aff-card,.pl-chip{
  transition-timing-function:cubic-bezier(.2,.8,.3,1)}
/* 鍵盤焦點:金色雙環,任何底色上都看得見 */
:focus-visible{outline:2px solid var(--gold);outline-offset:2px;box-shadow:var(--gold);
  box-shadow:0 0 0 4px color-mix(in srgb, var(--gold) 22%, transparent)}
/* 可捲動表格給出可捲動的視覺提示 */
.table-scroll{position:relative}
@media (max-width:880px){
  .table-scroll::after{content:"← 可左右滑動 →";
    position:sticky;left:0;display:block;text-align:center;
    font-size:12px;color:var(--ink-300);padding:6px 0 2px;
    background:linear-gradient(to top, var(--ink-800), transparent)}
}

/* =====================================================================
   .pc-hint 觸控目標 — 視覺維持 15px 的精緻感,可點區擴大到 44×44
   (批次二處理的是舊的 .tip;改版後提示元件更名為 .pc-hint,一併補上)
   ===================================================================== */
.pc-hint{position:relative}
.pc-hint::before{content:"";position:absolute;top:50%;left:50%;
  width:44px;height:44px;transform:translate(-50%,-50%);border-radius:50%}
/* 提示氣泡:鍵盤 focus 也要能觸發(原本已支援),補上 focus-visible 與行動版寬度 */
.pc-hint:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

/* =====================================================================
   字體排印系統 v2 — 數字是主角,標籤是配角
   問題:先前標籤與數字同字重同色,眼睛掃過去分不出哪個是答案。
   原則:三重編碼區分 —— 字重(400 vs 600)、顏色(次要 vs 主要)、字族(黑體 vs 等寬)
   ===================================================================== */

/* --- 字重語彙(從 5 種收斂為 4 種:400 內文 / 600 數值 / 700 小標 / 900 大標)--- */
.st-line .val,.st-metric .v,.goal-row .n,.cap-row span:last-child,
.summary-bar strong,.derived strong,.fr-ltotal .v,.fr-paynum,
.pnl-table td,.sens-table td,.cmp-table td,.rate-table td,
.pc-ana-tbl td,.pc-foot-num,.mk-band-count{
  font-family:var(--font-mono);
  font-weight:600;
  font-variant-numeric:tabular-nums lining-nums;
  font-feature-settings:"tnum" 1,"lnum" 1;
  color:var(--ink-100);
  letter-spacing:-.01em;      /* 等寬字微收緊,長數字不鬆散 */
}
/* --- 標籤:退到背景 --- */
.st-line .lbl,.st-metric .k,.goal-row .p,.cap-row .p,
.pnl-table td:first-child,.sens-table td:first-child,
.cmp-table td:first-child,.rate-table td:first-child,
.pnl-table th[scope="row"],.sens-table th[scope="row"],
.cmp-table th[scope="row"],.rate-table th[scope="row"]{
  font-family:var(--font-body);
  font-weight:400;
  color:var(--ink-300);
  letter-spacing:0;
}
/* 對帳單紙面上的標籤色需另外指定(紙色底) */
.statement .st-line .lbl,.statement .st-metric .k{color:#6B6355}
.statement .st-line .val,.statement .st-metric .v{color:var(--paper-ink)}

/* --- 核心數字:對帳單的「每件實拿」--- */
.st-total .val{font-weight:700;letter-spacing:-.02em;line-height:1.1}
.st-total .lbl{font-weight:400;color:#6B6355}

/* --- 指標三格:標籤 12 / 數值 16,拉開層級(原本只差 1px)--- */
.st-metric .k{font-size:12px;line-height:1.45}
.st-metric .v{font-size:16px;font-weight:600;line-height:1.25}

/* --- 決策室數列:標籤與數值左右對齊,數值靠右便於比對 --- */
/* 手機窄螢幕時右側數值文字太長,flex 子項若允許縮到 0 寬會讓左側平台名稱
   被擠壓成逐字換行(CJK 沒有空白斷詞,寬度不夠就會一字一行);改成允許整列
   換行、且左側標籤保留最小寬度,寬螢幕仍維持同一行、行為不變。 */
.goal-row,.cap-row{display:flex;align-items:baseline;gap:6px 12px;flex-wrap:wrap}
.goal-row .p,.cap-row .p{flex:1 1 auto;min-width:5.5em}
.goal-row .n,.cap-row span:last-child{text-align:right;white-space:normal}
.goal-row .n em{font-style:normal;font-weight:700;color:var(--gold);font-size:16px}

/* --- 表格:數值欄右對齊、標籤欄左對齊(掃視時數字位數對齊)--- */
.pnl-table td:not(:first-child),.sens-table td:not(:first-child),
.cmp-table td:not(:first-child),.rate-table td:not(:first-child){text-align:right}
.pnl-table th:not(:first-child),.sens-table th:not(:first-child),
.cmp-table th:not(:first-child){text-align:right}

/* --- 表頭:小而穩,不與數字爭視線 --- */
.pnl-table th,.sens-table th,.cmp-table th,.rate-table th{
  font-family:var(--font-body);font-weight:700;font-size:12px;
  letter-spacing:.06em;line-height:1.4}

/* --- 摘要條:一句話裡的數字要跳出來 --- */
.summary-bar{font-size:13px}
.summary-bar strong{font-size:14px;color:var(--gold);font-weight:700}

/* --- 輸入框數字:比標籤大一級,輸入時看得清 --- */
.input-money input{font-size:16px;font-weight:600;letter-spacing:-.01em}
.input-money span{font-weight:400;font-size:12px}

/* --- 行動版:核心數字不縮水,標籤先讓 --- */
@media (max-width:520px){
  .st-total .val{font-size:25px}
  .st-metric .v{font-size:16px}
  .st-metric .k{font-size:12px}
  .summary-bar{font-size:13px}
}

/* =====================================================================
   觸控裝置的輸入體驗 — 與桌機保持一致的關鍵
   iOS Safari 在 font-size < 16px 的輸入框聚焦時會強制放大整個頁面,
   使用者必須手動縮回,是手機與桌機體感落差最大的來源。
   用 pointer:coarse 針對「觸控裝置」而非「小螢幕」,平板橫置也適用。
   ===================================================================== */
@media (pointer: coarse){
  input[type="text"],input[type="number"],input[type="email"],
  input[type="search"],input[type="tel"],select,textarea{
    font-size:16px !important;      /* 低於 16px 會觸發 iOS 自動縮放 */
    line-height:1.4;
  }
  /* 放大後仍要維持欄位比例 */
  .input-money{padding:0 12px}
  .input-money input{padding:11px 0}
  .rate-table input{width:104px;min-height:40px}
  .product-name-row input{min-height:40px}
  /* 觸控裝置的可點區一律 ≥44px */
  .btn-mini,.btn-chip,.product-tab{min-height:40px}
  .seg span{min-height:48px}
  .nav-item{min-height:44px}
  /* 觸控沒有 hover,提示改為點擊觸發(已在 JS 處理),此處放大氣泡易讀性 */
  .pc-hint::after{font-size:13px;line-height:1.75;padding:10px 12px}
}

/* 觸控裝置不顯示 hover 專屬的視覺變化,避免「卡在 hover 狀態」 */
@media (hover: none){
  .mk-tile:hover{transform:none}
  .pl-chip:hover{transform:none}
  .aff-card:hover{border-color:var(--ink-600)}
}

/* =============== 成本結構體檢 =============== */
.hl-row{margin-bottom:14px}
.hl-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;
  font-size:13px;margin-bottom:5px}
.hl-head .p{color:var(--ink-300)}
.hl-bar{position:relative;height:8px;border-radius:999px;background:var(--ink-700);
  overflow:visible;border:1px solid var(--line-strong)}
.hl-bar i{display:block;height:100%;border-radius:999px;transition:width .35s cubic-bezier(.2,.8,.3,1)}
.hl-bar b{position:absolute;top:-4px;width:2px;height:16px;background:var(--gold);border-radius:1px}
.hl-note{font-size:12px;color:var(--ink-300);line-height:1.65;margin:5px 0 0}

/* =====================================================================
   重點提示卡 — 需要讀者確實看到的警語與前提
   三個層級:caution(必讀前提)/ note(補充說明)/ law(法規依據)
   ===================================================================== */
.callout{
  position:relative;display:flex;gap:14px;align-items:flex-start;
  border-radius:var(--radius);padding:18px 20px 18px 18px;margin:20px 0;
  border:1px solid var(--line-strong);
  background:color-mix(in srgb, var(--ink-800) 88%, transparent);
  box-shadow:0 1px 2px rgba(0,0,0,.16)}
.callout::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;
  border-radius:var(--radius) 0 0 var(--radius);background:var(--gold)}
.callout-ic{flex:none;width:34px;height:34px;border-radius:9px;display:grid;place-items:center;
  font-size:16px;line-height:1;background:color-mix(in srgb, var(--gold) 18%, transparent);
  color:var(--gold)}
.callout-b{min-width:0}
.callout-t{font-family:var(--font-display);font-weight:900;font-size:16px;letter-spacing:.03em;
  margin:0 0 6px;color:var(--ink-100);display:block}
.callout p{font-size:14px;line-height:1.9;margin:0;color:var(--ink-100)}
.callout p + p{margin-top:8px}
.callout b{color:var(--gold);font-weight:700}

.callout.is-caution::before{background:var(--cinnabar)}
.callout.is-caution .callout-ic{background:color-mix(in srgb, var(--cinnabar) 18%, transparent);color:var(--cinnabar)}
.callout.is-caution .callout-t{color:var(--cinnabar)}
.callout.is-caution b{color:var(--cinnabar)}
.callout.is-law::before{background:var(--jade)}
.callout.is-law .callout-ic{background:color-mix(in srgb, var(--jade) 18%, transparent);color:var(--jade)}
.callout.is-law .callout-t{color:var(--jade)}
.callout.is-law b{color:var(--jade)}

@media (max-width:520px){
  .callout{padding:15px 16px 15px 15px;gap:11px}
  .callout-ic{width:30px;height:30px;font-size:14px}
  .callout-t{font-size:14px}
  .callout p{font-size:13px;line-height:1.85}
}



/* =====================================================================
   話術拆解 — 對話泡泡 + 漸進揭露
   十則各有三段文字,全部攤開就是一面牆。改為收合時只顯示「別人說的話」,
   十句一眼掃完;需要時再展開看拆解。
   ===================================================================== */
.pitch-list{margin:22px 0}
.pitch{border-bottom:1px solid var(--ink-600)}
.pitch:first-child{border-top:1px solid var(--ink-600)}

/* ---- 收合狀態:一句話 ---- */
.pitch > summary{
  list-style:none;cursor:pointer;user-select:none;
  display:flex;align-items:center;gap:14px;
  padding:14px 6px;min-height:56px;
  transition:background .16s cubic-bezier(.2,.8,.3,1)}
.pitch > summary::-webkit-details-marker{display:none}
.pitch > summary:hover{background:color-mix(in srgb, var(--gold) 6%, transparent)}
.pitch > summary:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}

.pitch-no{flex:none;width:24px;text-align:right;
  font-family:var(--font-mono);font-size:12px;color:var(--ink-300);letter-spacing:.02em}

/* 對話泡泡:左側尖角指向編號 */
.pitch-bubble{position:relative;flex:1;min-width:0;
  padding:10px 16px;border-radius:14px 14px 14px 4px;
  background:color-mix(in srgb, var(--ink-700) 88%, transparent);
  border:1px solid var(--ink-600);
  font-family:var(--font-display);font-weight:700;font-size:15px;line-height:1.6;
  color:var(--ink-100)}
.pitch-bubble::before{content:"";position:absolute;left:-6px;bottom:6px;
  width:10px;height:10px;transform:rotate(45deg);
  background:color-mix(in srgb, var(--ink-700) 88%, transparent);
  border-left:1px solid var(--ink-600);border-bottom:1px solid var(--ink-600)}
.pitch[open] .pitch-bubble{background:color-mix(in srgb, var(--gold) 10%, transparent);
  border-color:color-mix(in srgb, var(--gold) 34%, transparent)}
.pitch[open] .pitch-bubble::before{background:color-mix(in srgb, var(--gold) 10%, transparent);
  border-color:color-mix(in srgb, var(--gold) 34%, transparent)}

.pitch-more{flex:none;display:inline-flex;align-items:center;gap:5px;
  font-size:12px;letter-spacing:.06em;color:var(--gold);
  padding:6px 12px;border-radius:999px;min-height:32px;
  border:1px solid color-mix(in srgb, var(--gold) 30%, transparent)}
.pitch-more::after{content:"▾";font-size:10px;transition:transform .2s}
.pitch[open] .pitch-more::after{transform:rotate(180deg)}
.pitch[open] .pitch-more span{display:none}
.pitch[open] .pitch-more::before{content:"收合"}

/* ---- 展開狀態:拆解 ---- */
.pitch-body{padding:2px 6px 20px 44px;display:grid;gap:12px}
.pitch-step{position:relative;padding-left:18px}
.pitch-step::before{content:"";position:absolute;left:0;top:7px;bottom:7px;width:2px;border-radius:1px}
.pitch-step.is-gap::before{background:var(--ink-600)}
.pitch-step.is-ask::before{background:var(--gold)}
.pitch-step b{display:block;font-size:12px;font-weight:700;letter-spacing:.08em;margin-bottom:5px}
.pitch-step.is-gap b{color:var(--ink-300)}
.pitch-step.is-ask b{color:var(--gold)}
.pitch-step p{font-size:14px;line-height:1.95;margin:0;color:var(--ink-100)}
.pitch-step.is-gap p{color:var(--ink-300)}
.pitch-step.is-ask p b{display:inline;font-size:inherit;letter-spacing:normal;color:var(--gold)}

@media (max-width:560px){
  .pitch > summary{gap:9px;padding:12px 2px;min-height:52px;flex-wrap:wrap}
  .pitch-bubble{font-size:14px;padding:9px 13px;order:2;flex:1 1 100%}
  .pitch-no{order:1}
  .pitch-more{order:1;margin-left:auto}
  .pitch-body{padding:2px 2px 16px 12px}
  .pitch-step p{font-size:13px}
}

/* =====================================================================
   長文的閱讀節奏 — 避免整頁都是等寬段落
   ===================================================================== */
/* 拉引句:把一段裡最關鍵的一句拉出來,給眼睛一個停頓 */
.pullquote{position:relative;margin:26px 0;padding:6px 0 6px 24px;
  border-left:3px solid var(--gold);
  font-family:var(--font-display);font-weight:700;font-size:18px;line-height:1.85;
  color:var(--ink-100);letter-spacing:.01em}
.pullquote span{color:var(--gold)}
@media (max-width:560px){.pullquote{font-size:16px;padding-left:18px;margin:20px 0}}

/* 數據列:大數字＋說明,適合統計型內容 */
.statline{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:14px;margin:22px 0}
.stat{padding:16px 18px;border:1px solid var(--line-strong);border-radius:var(--radius);
  background:color-mix(in srgb, var(--ink-800) 90%, transparent)}
.stat .n{display:block;font-family:var(--font-mono);font-weight:600;font-size:25px;
  line-height:1.15;color:var(--gold);letter-spacing:-.01em;
  font-variant-numeric:tabular-nums lining-nums}
.stat .n small{font-size:14px;color:var(--ink-300);font-weight:400;margin-left:3px}
.stat .k{display:block;font-size:12.5px;line-height:1.65;color:var(--ink-300);margin-top:6px}
@media (max-width:560px){
  .statline{grid-template-columns:1fr 1fr;gap:10px}
  .stat{padding:13px 14px}
  .stat .n{font-size:21px}
}

/* 段落節奏:長文區塊的首段稍大,建立層次 */
.prose-lead{font-size:16px;line-height:1.95;color:var(--ink-100)}
.prose-lead::first-letter{font-family:var(--font-display);font-weight:900;font-size:1.35em;
  color:var(--gold);line-height:1;padding-right:1px}

/* =====================================================================
   寬表格在手機:改為「每列一張卡」,不必橫向捲動
   以 data-label 顯示欄位名稱,由 CSS 生成
   ===================================================================== */
@media (max-width:600px){
  .cmp-table.is-stack thead,.pc-fields-tbl.is-stack thead,.fr-fields-tbl.is-stack thead,
  .cmp-table.is-stack thead th,.pc-fields-tbl.is-stack thead th,.fr-fields-tbl.is-stack thead th{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .cmp-table.is-stack,.cmp-table.is-stack tbody,.cmp-table.is-stack tr,
  .cmp-table.is-stack th,.cmp-table.is-stack td,
  .pc-fields-tbl.is-stack,.pc-fields-tbl.is-stack tbody,.pc-fields-tbl.is-stack tr,
  .pc-fields-tbl.is-stack th,.pc-fields-tbl.is-stack td,
  .fr-fields-tbl.is-stack,.fr-fields-tbl.is-stack tbody,.fr-fields-tbl.is-stack tr,
  .fr-fields-tbl.is-stack th,.fr-fields-tbl.is-stack td{display:block;width:auto}
  .cmp-table.is-stack tr,.pc-fields-tbl.is-stack tr,.fr-fields-tbl.is-stack tr{
    border:1px solid var(--line-strong);border-radius:var(--radius);
    background:color-mix(in srgb, var(--ink-800) 90%, transparent);
    padding:14px 16px;margin-bottom:12px}
  .cmp-table.is-stack th[scope="row"],.pc-fields-tbl.is-stack td:first-child,.fr-fields-tbl.is-stack td:first-child{
    font-family:var(--font-display);font-weight:900;font-size:16px;
    color:var(--ink-100);padding:0 0 10px;border:0;
    border-bottom:1px solid var(--ink-600);margin-bottom:10px;text-align:left}
  .cmp-table.is-stack td,.pc-fields-tbl.is-stack td,.fr-fields-tbl.is-stack td{
    padding:8px 0;border:0;font-size:13.5px;line-height:1.85;text-align:left}
  .cmp-table.is-stack td::before,.pc-fields-tbl.is-stack td::before,.fr-fields-tbl.is-stack td::before{
    content:attr(data-label);display:block;
    font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--gold);margin-bottom:3px}
  .cmp-table.is-stack td + td,.pc-fields-tbl.is-stack td + td,.fr-fields-tbl.is-stack td + td{border-top:1px dashed var(--ink-600)}
  .table-scroll:has(.is-stack)::after{display:none}
}

/* =====================================================================
   徹底消除橫向捲動
   ---------------------------------------------------------------------
   原則:任何寬度都不該讓使用者左右滑動。
   1) nowrap 只保護「數字＋單位」不被拆開,不保護整句
   2) 表格在窄螢幕一律堆疊為卡片,不再用 overflow-x
   3) 全域保險:任何元素都不得超出視窗寬度
   ===================================================================== */

/* --- 1) 散文式輸入:長句可換行,只有數字與單位維持同行 --- */
.fr-prose .nw input,.ec-prose .nw input{margin:0 2px}
/* 數字與其後單位不拆行;.fr-mut 是動態塞入的長提示句,不能套 nowrap
   (曾經因此在 renewalHint 撐出橫向溢出) */
.fr-prose .nw input + *:not(.fr-mut),.ec-prose .nw input + *:not(.fr-mut){white-space:nowrap}
.fr-prose,.ec-prose{overflow-wrap:anywhere;word-break:normal;line-break:strict}

/* 選項膠囊在窄螢幕自動排成一行一顆 */
.fr-pill{display:inline-flex;align-items:center;margin:2px 4px 2px 0;max-width:100%}

/* --- 2) 表格:窄螢幕堆疊,不用橫向捲動 --- */
.table-scroll{overflow-x:visible;max-width:100%}
@media (max-width:760px){
  .table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
  /* 所有內容型表格一律堆疊 */
  .cmp-table thead,.pnl-table thead,.sens-table thead,
  .pc-fields-tbl thead,.fr-fields-tbl thead,.ind-table thead,.rate-table thead,
  .cmp-table thead th,.pnl-table thead th,.sens-table thead th,
  .pc-fields-tbl thead th,.fr-fields-tbl thead th,.ind-table thead th,.rate-table thead th{
    position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .cmp-table,.cmp-table tbody,.cmp-table tr,.cmp-table th,.cmp-table td,
  .pc-fields-tbl,.pc-fields-tbl tbody,.pc-fields-tbl tr,.pc-fields-tbl th,.pc-fields-tbl td,
  .fr-fields-tbl,.fr-fields-tbl tbody,.fr-fields-tbl tr,.fr-fields-tbl th,.fr-fields-tbl td,
  .ind-table,.ind-table tbody,.ind-table tr,.ind-table th,.ind-table td{
    display:block;width:auto;max-width:100%}
  .cmp-table tr,.pc-fields-tbl tr,.fr-fields-tbl tr,.ind-table tr{
    border:1px solid var(--line-strong);border-radius:var(--radius);
    background:color-mix(in srgb, var(--ink-800) 90%, transparent);
    padding:13px 15px;margin-bottom:11px}
  .cmp-table th[scope="row"],.cmp-table td:first-child,
  .pc-fields-tbl td:first-child,.fr-fields-tbl td:first-child,.ind-table td:first-child{
    font-family:var(--font-display);font-weight:900;font-size:15px;color:var(--ink-100);
    padding:0 0 9px;border:0;border-bottom:1px solid var(--ink-600);margin-bottom:9px;text-align:left}
  .cmp-table td,.pc-fields-tbl td,.fr-fields-tbl td,.ind-table td{
    padding:7px 0;border:0;font-size:13px;line-height:1.85;text-align:left;white-space:normal}
  /* .cmp-table td:not(:first-child) 另有 text-align:right 規則(非手機專用,用來讓一般
     表格的數字靠右對齊),specificity 比上面這條高,堆疊模式下要贏回來否則數字會被推到
     視窗外、要橫捲才看得到,等於白做了堆疊 */
  .cmp-table td:not(:first-child),.pc-fields-tbl td:not(:first-child),
  .fr-fields-tbl td:not(:first-child),.ind-table td:not(:first-child){text-align:left}
  .cmp-table td[data-label]::before,.pc-fields-tbl td[data-label]::before,
  .fr-fields-tbl td[data-label]::before,.ind-table td[data-label]::before{
    content:attr(data-label);display:block;font-size:11.5px;font-weight:700;
    letter-spacing:.06em;color:var(--gold);margin-bottom:3px}
  .cmp-table td + td,.pc-fields-tbl td + td,.fr-fields-tbl td + td,.ind-table td + td{
    border-top:1px dashed var(--ink-600)}
  /* 數字型表格(損益、敏感度)保留表格形式但可捲 */
  .pnl-table,.sens-table{font-size:12px}
  .table-scroll:has(.pnl-table),.table-scroll:has(.sens-table){overflow-x:auto}
  /* 上面的堆疊卡片預設是深色卡配淺字,是給深色頁面(電商計算室)用的;
     契約書 .fr-attach 是淺色紙面配深字,同一顆卡搬進來會變深底深字看不清楚 */
  .fr-attach .cmp-table tr,.fr-attach .fr-fields-tbl tr,.fr-attach .ind-table tr{
    background:color-mix(in oklab, var(--paper) 90%, #8A7A55);border-color:#B8A67F}
  .fr-attach .cmp-table th[scope="row"],.fr-attach .cmp-table td:first-child,
  .fr-attach .fr-fields-tbl td:first-child,.fr-attach .ind-table td:first-child{
    color:#2A2318;border-bottom-color:#B8A67F}
  .fr-attach .cmp-table td,.fr-attach .fr-fields-tbl td,.fr-attach .ind-table td{color:#3A3122}
  .fr-attach .cmp-table td[data-label]::before,.fr-attach .fr-fields-tbl td[data-label]::before,
  .fr-attach .ind-table td[data-label]::before{color:#8A6A34}
  .fr-attach .cmp-table td+td,.fr-attach .fr-fields-tbl td+td,.fr-attach .ind-table td+td{
    border-top-color:#D9CCA9}
}

/* --- 3) 全域保險:沒有任何東西可以超出視窗 --- */
html,body{max-width:100%}
body{overflow-x:clip}                    /* clip 不建立捲動容器,不會讓 sticky 失效 */
@supports not (overflow:clip){ body{overflow-x:hidden} }
img,svg,video,canvas,iframe{max-width:100%;height:auto}
pre,code{white-space:pre-wrap;overflow-wrap:anywhere}
.wrap,main,section,article,.d-card,.pi-panel,.callout,.statement{max-width:100%;min-width:0}
* { min-width:0 }

/* --- 黏性摘要條:長句在窄螢幕要能換行 --- */
@media (max-width:760px){
  .summary-bar p{white-space:normal;line-height:1.7}
  .summary-bar{padding:10px 14px}
  /* 數字型表格:縮字級並允許換行,取代橫向捲動 */
  .pnl-table th,.pnl-table td,.sens-table th,.sens-table td{
    white-space:normal;font-size:12px;padding:8px 7px;word-break:keep-all}
  .pnl-table td:first-child,.sens-table td:first-child{min-width:88px}
  .table-scroll:has(.pnl-table),.table-scroll:has(.sens-table){overflow-x:auto}
}
@media (max-width:420px){
  .pnl-table th,.pnl-table td,.sens-table th,.sens-table td{font-size:12px;padding:7px 5px}
}

/* =====================================================================
   加盟計算室版面修正
   左欄=契約書(輸入)、右欄=評估書(結果,黏著跟隨)、跨欄=分析與內容
   ===================================================================== */






/* =====================================================================
   契約紙:任何情況都不得溢出
   ===================================================================== */
.fr-sheet,.fr-prose,.fr-clause{max-width:100%;box-sizing:border-box;overflow-wrap:anywhere}
.fr-prose{white-space:normal}
.fr-prose > *{max-width:100%}
.fr-pill{display:inline-flex;align-items:center;margin:2px 4px 2px 0;max-width:100%;
  white-space:nowrap;flex:0 0 auto}          /* 膠囊本身不斷字,但可整顆換行 */
.fr-prose input[type=number]{max-width:100%}
/* 數字與緊接的單位不拆開,其餘照常換行;.fr-mut 是動態塞入的長提示句排除在外 */
.fr-prose input + span:not(.fr-mut),.fr-prose b.sum{white-space:nowrap}

/* 這些 nowrap 只應保護短字串;長句一律可換行 */
.summary-bar p{white-space:normal}
.pc-cv-tip{white-space:normal}
.pc-fields-tbl .fname,.fr-fields-tbl .fname{white-space:normal;word-break:keep-all}
@media (max-width:760px){
  .pnl-table th,.pnl-table td,.sens-table th,.sens-table td{white-space:normal}
}

/* =====================================================================
   加盟計算室版面(重構)
   .fr-main 只負責寬度與內距;.fr-grid 才是兩欄;.fr-below 在網格「之後」
   ---------------------------------------------------------------------
   不再使用 sticky 側欄 —— 黏性元素會停在畫面上,蓋住後面的滿版區塊。
   結構上把兩者分開,物理上就不可能重疊。
   ===================================================================== */
.fr-grid{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);
  gap:32px;align-items:start}
.fr-grid > .fr-full-1{grid-column:1 / -1}          /* 提示卡跨兩欄 */
.fr-grid > *{min-width:0;max-width:100%}
.fr-below{margin-top:38px;display:block}
.fr-below > *{max-width:100%;min-width:0}
@media (max-width:980px){
  .fr-grid{grid-template-columns:1fr;gap:22px}
}

/* =====================================================================
   評估書黏性:限制在 .fr-grid 內
   grid 項目的黏性容器塊就是它的網格區域,所以捲到網格結束(風險提醒之前)
   就會自然停住,不會再往下蓋住任何內容。
   ===================================================================== */
.fr-grid > .fr-eval-col{position:sticky;top:84px;align-self:start;max-height:calc(100vh - 104px);overflow:auto}
.fr-grid > .fr-eval-col::-webkit-scrollbar{width:6px}
.fr-grid > .fr-eval-col::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:3px}
@media (max-width:980px){
  .fr-grid > .fr-eval-col{position:static;max-height:none;overflow:visible}
}

/* =====================================================================
   附件內文:加深加粗,提高可讀性
   ===================================================================== */
.fr-eval .fr-sec-sub,.fr-eval .d-sub,.fr-eval p,.fr-eval li{
  color:var(--paper-ink);font-weight:500}
.fr-eval .fr-sec-title,.fr-eval h3,.fr-eval h4{
  color:#231C11;font-weight:900;letter-spacing:.03em}
.fr-eval .fr-lrow .k,.fr-eval .cap-row .p,.fr-eval .goal-row .p{
  color:#4A4232;font-weight:500}
.fr-eval .fr-lrow .v,.fr-eval .cap-row span:last-child{
  color:#231C11;font-weight:700}
.fr-eval .chk-foot,.fr-eval .hl-note,.fr-eval small{
  color:#57503F;font-weight:500}
.fr-eval .fr-mut{color:#5A5241;font-weight:500}

/* 白工警示:嵌在契約紙內,配合紙色調整 */
#ownerWarn{margin:14px 0 20px}
#ownerWarn .callout{background:rgba(160,60,40,.06);border-color:rgba(160,60,40,.34)}
#ownerWarn .callout-t{font-size:15px}
#ownerWarn .callout p{font-size:13.5px;line-height:1.95;color:#3A3122}
#ownerWarn .callout b{color:#9E2B1B}
#ownerWarn .callout-ic{background:rgba(160,60,40,.14);color:#9E2B1B}
#ownerWarn .callout::before{background:#9E2B1B}
.callout-foot{font-size:12px !important;color:#6B6355 !important;margin-top:10px !important;
  padding-top:9px;border-top:1px dashed rgba(120,100,70,.3)}

/* =============== 退場試算:讓數字有感 =============== */
.ex-list{display:grid;gap:14px;margin:14px 0 16px}
.ex-row{border:1px solid var(--line-strong);border-radius:var(--radius);
  padding:14px 16px;background:color-mix(in srgb, var(--cinnabar) 7%, transparent)}
.ex-row.is-ok{background:color-mix(in srgb, var(--jade) 8%, transparent)}
.ex-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.ex-when{font-size:14px;color:var(--ink-100);font-weight:700}
.ex-amt{font-family:var(--font-mono);font-weight:600;font-size:25px;line-height:1.1;
  color:var(--cinnabar);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.ex-amt small{font-size:14px;margin-left:2px}
.ex-row.is-ok .ex-amt{color:var(--jade)}
.ex-feel{display:block;margin-top:7px;font-size:13px;line-height:1.8;color:var(--ink-300)}
.ex-feel b{color:var(--cinnabar);font-weight:700}
.ex-feel.is-ok{color:var(--jade)}
@media (max-width:560px){
  .ex-head{flex-direction:column;gap:2px}
  .ex-amt{font-size:21px}
}

/* =====================================================================
   附件內文:再加深、再加粗(先前仍偏淺)
   紙色底 #F4EFE6 / #FFFDF8,以下全部 ≥ 7:1(AAA)
   ===================================================================== */
.fr-eval,.fr-eval p,.fr-eval li,.fr-eval td,.fr-eval th,
.fr-eval .d-sub,.fr-eval .fr-sec-sub{color:#1E1810;font-weight:600}
.fr-eval .fr-sec-title,.fr-eval h2,.fr-eval h3,.fr-eval h4,.fr-eval .fr-sheet-title{
  color:#120D07;font-weight:900;letter-spacing:.03em}
.fr-eval .fr-lrow .k,.fr-eval .cap-row .p,.fr-eval .goal-row .p,
.fr-eval .hl-head .p,.fr-eval .ex-when{color:#332B1E;font-weight:600}
.fr-eval .fr-lrow .v,.fr-eval .cap-row span:last-child,
.fr-eval .goal-row .n,.fr-eval .hl-head span:last-child{color:#120D07;font-weight:700}
.fr-eval .chk-foot,.fr-eval .hl-note,.fr-eval small,.fr-eval .fr-mut,
.fr-eval .ex-feel{color:#453C2C;font-weight:600}
.fr-eval .d-sub{font-size:13.5px;line-height:1.9}
/* 附件標題列加一條金線,層級更明確 */
.fr-eval .fr-sec-title{padding-bottom:7px;border-bottom:2px solid rgba(140,110,50,.35)}

/* =====================================================================
   結語提醒 — 放在使用者看完全部內容之後
   ===================================================================== */
.closing{position:relative;margin:40px 0 8px;padding:30px 32px;
  border:1px solid var(--line-strong);border-radius:var(--radius);
  background:linear-gradient(160deg,
    color-mix(in srgb, var(--gold) 7%, transparent),
    color-mix(in srgb, var(--ink-800) 94%, transparent))}
.closing::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;
  border-radius:var(--radius) 0 0 var(--radius);
  background:linear-gradient(180deg,var(--gold),transparent)}
.closing h3{font-family:var(--font-display);font-weight:900;font-size:21px;
  letter-spacing:.04em;color:var(--ink-100);margin:0 0 14px;line-height:1.5}
.closing p{font-size:14px;line-height:2.05;color:var(--ink-100);margin:0 0 12px}
.closing p:last-child{margin-bottom:0}
.closing b{color:var(--gold);font-weight:700}
.closing .closing-hard{
  margin-top:18px;padding:16px 18px;border-radius:var(--radius-sm);
  background:color-mix(in srgb, var(--cinnabar) 9%, transparent);
  border:1px solid color-mix(in srgb, var(--cinnabar) 30%, transparent)}
.closing .closing-hard p{font-size:14px;margin:0;color:var(--ink-100)}
.closing .closing-hard b{color:var(--cinnabar)}
@media (max-width:560px){
  .closing{padding:22px 20px;margin:30px 0 8px}
  .closing h3{font-size:18px}
  .closing p{font-size:13.5px;line-height:1.95}
}

/* =====================================================================
   附件(附件一~四)文字:全部加深加粗
   先前只改了 .fr-eval 作用域,附件實際用的是 .fr-attach —— 沒套到。
   紙色底 #F4EFE6 / #F2E9D0 / #FFFDF8,以下皆 ≥ 7:1(AAA)
   ===================================================================== */
.fr-attach,.fr-attach p,.fr-attach li,.fr-attach div{color:#1E1810}
.fr-attach-title{color:#120D07;font-weight:900}
.fr-attach .hint,.fr-attach .chart-note,.fr-attach .d-sub,.fr-attach small{
  color:#463D2C;font-weight:600}
/* 表格:表頭與內容都要看得清楚 */
.fr-attach table th{color:#120D07 !important;font-weight:900 !important;font-size:12.5px}
.fr-attach table td{color:#1E1810 !important;font-weight:600 !important}
.fr-attach table td:first-child,.fr-attach table th[scope="row"]{
  color:#2B2418 !important;font-weight:600 !important}
.fr-attach .pnl-table .is-total td,.fr-attach .pnl-table .is-total th,
.fr-attach .pnl-table .is-em td,.fr-attach .pnl-table .is-em th{
  color:#120D07 !important;font-weight:700 !important}
/* 逐列損益(附件二)的標籤與數值 */
.fr-lrow .l{color:#2B2418;font-weight:600}
.fr-lrow .v{color:#120D07;font-weight:700}
.fr-lrow .dots{border-bottom-color:rgba(90,75,45,.42)}
/* 附件標題下的說明句 */
.fr-attach .fr-sec-sub,.fr-attach .fr-attach-sub{color:#463D2C;font-weight:600}
/* 圖表說明與圖例 */
.fr-attach .cash-legend,.fr-attach .legend,.fr-attach figcaption{color:#463D2C;font-weight:600}

/* =====================================================================
   評估書與附件:文字清晰度優先
   原本 .fr-eval-col 與 .fr-attach 有 transform:rotate(),旋轉會讓文字進入
   次像素渲染而邊緣發虛。傾斜只是裝飾,清晰度更重要 —— 一律移除旋轉,
   改用陰影與邊界保留「紙張」的層次感。
   ===================================================================== */
.fr-eval-col{transform:none !important}
.fr-attach,.fr-attach.alt{transform:none !important}
.fr-eval,.fr-eval-col,.fr-attach{
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility}
/* 用陰影補回層次,取代旋轉 */
.fr-attach{box-shadow:0 10px 26px rgba(60,45,20,.22), 0 1px 0 rgba(255,255,255,.5) inset}
.fr-attach.alt{box-shadow:0 12px 30px rgba(60,45,20,.26), 0 1px 0 rgba(255,255,255,.5) inset}

/* =====================================================================
   修正:提示框在各主題下的可讀性
   .mk-disclosure 用 var(--ink-300) 與 var(--ink-700),在 t-fr 的深褐底上
   對比不足。統一改為高對比配色。
   ===================================================================== */
.mk-disclosure{
  color:var(--ink-100) !important;font-weight:500;
  background:color-mix(in srgb, var(--gold) 8%, var(--ink-800)) !important;
  border:1px solid color-mix(in srgb, var(--gold) 30%, transparent) !important;
  line-height:1.9}
.mk-disclosure b{color:var(--gold)}

/* =====================================================================
   成本結構體檢:人效那一列與其他列同級
   ===================================================================== */
.hl-eff{display:flex;justify-content:space-between;align-items:baseline;gap:12px;
  margin-top:14px;padding-top:13px;border-top:1px solid var(--ink-600)}
.hl-eff .p{font-size:13px;color:var(--ink-300)}
.hl-eff .v{font-family:var(--font-mono);font-weight:600;font-size:16px;color:var(--ink-100);
  font-variant-numeric:tabular-nums}
.hl-eff .v small{font-size:12px;color:var(--ink-300);font-weight:400;margin-left:6px}



/* =====================================================================
   背景紋理不得干擾內容(全站通用)
   ---------------------------------------------------------------------
   各頁 body 有等高線、格線、光暈等裝飾紋理。任何承載文字的容器都必須
   有不透明底色,否則紋理會穿透到文字後方影響閱讀。
   這裡一次涵蓋全站所有內容容器,不再逐頁處理。
   ===================================================================== */
.zone-fold,.d-card,.pi-panel,.callout,.closing,.faq-section,.affiliate-zone,
.mk-section,.rate-table-section,.panel-input,.panel-result,.chart-card,
.aff-card,.faq-item,.table-scroll,.statement,.fr-sheet,.fr-attach,.fr-eval,
.pc-ana-block,.pc-store-main,.pc-head,.ec-hero,.hm-hero,.home-card,
.clause-list,.pitch-list,.ex-row,.stat,.statline,.hl-row,
.ind-sheet,.fr-guide,.pi-facts,.pi-meta,.mk-band,.pc-guide{
  position:relative;z-index:1}

/* 深色主題:以頁面底色為基準,確保完全不透明 */
.zone-fold,.d-card,.pi-panel,.faq-section,.affiliate-zone,.mk-section,
.rate-table-section,.panel-input,.chart-card,.faq-item,
.pc-ana-block,.fr-guide,.pc-guide,.mk-band{
  background-color:var(--ink-800)}
.callout,.closing,.aff-card,.ex-row,.stat,.clause-list{
  background-color:var(--ink-800)}
/* 這幾個原本沒有圓角,直角色塊硬貼在紋理背景上;.mk-band 另外補上內距,
   避免圓角後內容(標題、色塊)貼著卡片邊緣沒有留白。
   .fr-guide 不在此列:它只是外層排版容器(左右內距、置中寬度),
   真正的卡片是子層 .fr-guide-inner(已有自己的圓角+陰影),
   外層再套一層圓角╱陰影會變成卡中卡,故不套用 */
.faq-section,.affiliate-zone,.mk-section,.rate-table-section,
.pc-ana-block,.mk-band{
  border-radius:var(--radius);box-shadow:0 2px 12px rgba(0,0,0,.22)}
.faq-section,.rate-table-section,.pc-ana-block,.mk-band{padding:18px}
[data-theme="light"] .faq-section,[data-theme="light"] .affiliate-zone,
[data-theme="light"] .mk-section,[data-theme="light"] .rate-table-section,
[data-theme="light"] .pc-ana-block,
[data-theme="light"] .mk-band{
  box-shadow:0 1px 2px rgba(90,72,40,.06), 0 4px 14px rgba(90,72,40,.05)}
.pitch,.pitch-list{background-color:var(--ink-900)}
.pitch > summary{background-color:var(--ink-900)}
.pitch-say,.pitch-bubble{background-color:var(--ink-700)}
/* 紙面類維持紙色(本來就不透明) */
.statement,.fr-sheet,.fr-attach,.fr-eval,.ind-sheet{background-color:var(--paper)}

/* 區塊之間的間隔處不需要底色,避免整頁變成一片色塊 */
.zone-fold-body,.pi-grid,.decision-grid,.aff-grid,.statements,.ex-list,
.clause,.pitch-body,.hl-row{background-color:transparent}

/* 頁面裝飾紋理一律壓在最底層 */
body::before,body::after,
body.t-home::before,body.t-ec::before,body.t-fr::before{z-index:0;pointer-events:none}
main,.wrap,.fr-main,.fr-grid,.fr-below{position:relative;z-index:1}

/* =====================================================================
   背景紋理不干擾閱讀 — 全站分層規則(取代逐一列舉)
   ---------------------------------------------------------------------
   原則:凡是「承載內文的方塊」一律不透明;純排版容器與裝飾維持透明。
   ===================================================================== */

/* --- 第一層:內容方塊(卡片、面板、區塊、表格容器)---
   統一給圓角,避免直角色塊硬生生嵌在紋理背景上顯得突兀。
   .chk-row 例外:同一清單內零間距緊鄰(僅靠 border 分隔),
   獨立圓角╱陰影會在項目交界處露出縫隙或疊出髒污陰影,故不套用。
   .v3-step 已改為真實 gap 排列(見 801 行),不再零間距緊鄰,可正常套圓角。
   .v3-lane、.v3-room-cta 不在此列:它們活在固定深色的計算室(v3-room)內,
   不隨全站日夜主題變色,理應套用主題色變數會在日間模式跑出淺色底色,故另外
   在 v3-room 區塊(約 757 行起)給固定深色樣式 */
.pi-col,.quad,.chart-box,.ind-warn,.pc-ana-body,.pc-simple-result,
.pc-mode-note,.pc-tax-note,.pc-guide-body,.pc-guide-lead,.pc-list,.pc-foot,
.fr-verdict,.fr-plan-tools,.closing-hard,.pullquote,
.pitch-body,.ec-jack,.ec-legend,.v3-fact,.v3-step,.chk-row,
.pi-history,.pi-go,.mk-band-head,.table-scroll{
  position:relative;z-index:1;border-radius:var(--radius);
  background-color:color-mix(in srgb, var(--ink-800) 97%, var(--ink-900));
  box-shadow:0 2px 12px rgba(0,0,0,.22)}
/* .ec-legend、.mk-band-head 本身沒有內距,套上圓角背景後文字會貼著自己的邊緣 */
.ec-legend{padding:10px 14px}
.mk-band-head{padding:10px 16px}
[data-theme="light"] .pi-col,[data-theme="light"] .quad,[data-theme="light"] .chart-box,
[data-theme="light"] .ind-warn,[data-theme="light"] .pc-ana-body,[data-theme="light"] .pc-simple-result,
[data-theme="light"] .pc-mode-note,[data-theme="light"] .pc-tax-note,[data-theme="light"] .pc-guide-body,
[data-theme="light"] .pc-guide-lead,[data-theme="light"] .pc-list,[data-theme="light"] .pc-foot,
[data-theme="light"] .fr-verdict,[data-theme="light"] .fr-plan-tools,
[data-theme="light"] .closing-hard,[data-theme="light"] .pullquote,[data-theme="light"] .pitch-body,
[data-theme="light"] .ec-jack,[data-theme="light"] .ec-legend,[data-theme="light"] .v3-fact,
[data-theme="light"] .v3-step,[data-theme="light"] .chk-row,
[data-theme="light"] .pi-history,[data-theme="light"] .pi-go,[data-theme="light"] .mk-band-head{
  box-shadow:0 1px 2px rgba(90,72,40,.06), 0 4px 14px rgba(90,72,40,.05)}
.chk-row{border-radius:0;box-shadow:none}
/* .fr-guide-body 只活在紙色的 .fr-guide-inner 裡,不該套用深色主題背景;
   .chk-row 同理只在 .fr-attach 紙面內時要維持透明,franchise-site.html 的
   深色卡片用法不受影響(選擇器未限縮,仍套用上面的深色規則) */
.fr-guide-body,.fr-attach .chk-row,.fr-guide-body .table-scroll,.fr-attach .callout{background-color:transparent;box-shadow:none}

/* --- 第二層:表格本體(儲存格底色必須蓋住紋理)--- */
.ind-table,.fr-fields-tbl,.pc-example,.pc-fields-tbl,
.cmp-table,.pnl-table,.sens-table,.rate-table{
  background-color:var(--ink-800);position:relative;z-index:1}
/* .fr-example 只出現在紙色的 .fr-guide-body 裡,不該套深色底 */
.fr-example{background-color:transparent}
.ind-table th,.ind-table td,.fr-example th,.fr-example td,
.fr-fields-tbl th,.fr-fields-tbl td,.pc-example th,.pc-example td,
.pc-fields-tbl th,.pc-fields-tbl td,.cmp-table th,.cmp-table td,
.pnl-table th,.pnl-table td,.sens-table th,.sens-table td{
  background-color:inherit}

/* --- 第三層:紙面內的容器沿用紙色,不可套深色 --- */
.fr-sheet .fr-prose,.fr-sheet .fr-guide-body,.fr-sheet .fr-example,
.fr-sheet .fr-fields-tbl,.fr-attach .ind-table,.fr-attach .cmp-table,
.fr-attach .pnl-table,.fr-attach .sens-table,.fr-attach .table-scroll,
.ind-sheet .ind-table,.ind-sheet .ind-warn,.fr-eval .table-scroll,
.ind-sheet .table-scroll{
  background-color:transparent !important}
.fr-sheet,.fr-attach,.fr-eval,.ind-sheet,.statement{
  background-color:var(--paper) !important;position:relative;z-index:1}

/* --- 第四層:純排版容器維持透明,避免整頁變色塊 --- */
.wrap,.hero,.fr-main,.fr-grid,.fr-below,.header-inner,.zone-fold-body,
.fr-mgrid,.fr-tabs,.share-row,.pc-add,.pc-store-ctl,.pc-mode-switch,
.mk-strip,.v3-steps,.v3-hero-in,.ec-band-in,.pc-wrap-head,.clause,
.bar,.bd,.clip,.tag,.dot,.q-dot,.sb-dot,.seal,.seal-mark,.brand-seal,
.fr-stamp,.v3-stamp,.v3-badge,.fr-sheet-seal,.chk-badge,.pitch-more,
.btn-mini,.ad-slot,.t1,.t3,.is-stack,.v3-ticker-set,.mk-tile,
.fr-eval-col,.ec-hero,.v3-room,.v3-room--fr{
  background-color:transparent}

/* 裝飾層一律在最底 */
body::before,body::after{z-index:0 !important;pointer-events:none}

/* =====================================================================
   條款清單 — 完整的卡片設計
   每一條是獨立、不透明的卡片:左側編號徽章、標題、金色提問、內文。
   不再用「靠左內縮 + 分隔線」的半成品做法。
   ===================================================================== */
.clause-list{counter-reset:cl;display:grid;gap:14px;margin:22px 0}
.clause{
  counter-increment:cl;position:relative;z-index:1;
  background-color:color-mix(in srgb, var(--ink-800) 97%, var(--ink-900));
  border:1px solid var(--line-strong);border-radius:var(--radius);
  padding:20px 22px 20px 70px;
  transition:border-color .18s cubic-bezier(.2,.8,.3,1)}
.clause:hover{border-color:var(--gold-soft)}
.clause::before{
  content:counter(cl,decimal-leading-zero);
  position:absolute;left:20px;top:20px;
  width:34px;height:34px;border-radius:10px;display:grid;place-items:center;
  font-family:var(--font-mono);font-weight:600;font-size:14px;letter-spacing:-.02em;
  color:var(--gold);
  background:color-mix(in srgb, var(--gold) 13%, transparent);
  border:1px solid color-mix(in srgb, var(--gold) 36%, transparent)}
.clause h3{
  font-family:var(--font-display);font-weight:900;font-size:18px;letter-spacing:.03em;
  margin:0 0 8px;color:var(--ink-100);line-height:1.5}
.clause .clause-q{
  display:block;font-size:13px;line-height:1.75;color:var(--gold);
  margin:0 0 12px;padding:9px 13px;border-radius:var(--radius-sm);
  background:color-mix(in srgb, var(--gold) 9%, transparent);
  border-left:3px solid var(--gold)}
.clause p{font-size:14px;line-height:1.95;color:var(--ink-100);margin:0 0 9px}
.clause p:last-child{margin-bottom:0}
.clause p b{color:var(--gold);font-weight:700}
@media (max-width:560px){
  .clause{padding:16px 16px 16px 16px}
  .clause::before{position:static;margin-bottom:10px;width:30px;height:30px;font-size:13px}
  .clause h3{font-size:16px}
  .clause .clause-q{font-size:12.5px;padding:8px 11px}
  .clause p{font-size:13px}
}

/* =====================================================================
   延伸閱讀:內部連結區塊(SEO 與使用者導流)
   ===================================================================== */
.related{margin:34px 0 8px;padding:22px 24px;border-radius:var(--radius);
  border:1px solid var(--line-strong);position:relative;z-index:1;
  background-color:color-mix(in srgb, var(--ink-800) 97%, var(--ink-900))}
.related h2{font-family:var(--font-display);font-weight:900;font-size:18px;
  letter-spacing:.04em;margin:0 0 4px;color:var(--ink-100)}
.related > p{font-size:13px;color:var(--ink-300);margin:0 0 16px;line-height:1.75}
.related-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}
.related-grid a{display:block;text-decoration:none;padding:14px 16px;border-radius:var(--radius-sm);
  border:1px solid var(--ink-600);background:color-mix(in srgb, var(--ink-700) 72%, transparent);
  transition:border-color .18s cubic-bezier(.2,.8,.3,1),transform .18s cubic-bezier(.2,.8,.3,1)}
.related-grid a:hover{border-color:var(--gold-soft);transform:translateY(-1px)}
.related-grid b{display:block;font-family:var(--font-display);font-weight:700;font-size:14.5px;
  color:var(--ink-100);margin-bottom:5px;letter-spacing:.02em}
.related-grid span{display:block;font-size:12.5px;line-height:1.7;color:var(--ink-300)}
@media (max-width:560px){.related{padding:18px 16px}.related-grid{grid-template-columns:1fr}}
