@import url("https://fonts.googleapis.com/css2?family=Noto+Serif+TC:wght@500;700;900&display=swap");
/* =====================================================
 * rex/daily · 每日通知內頁主題層（daily-theme.css）
 * 骨架＝C 行動簡報卡；品牌語言＝A 私人銀行夜金（襯線標題、海軍藍夜金、分類色只留小色點）；法規小欄＝B。
 * 淺色：#f4f6f9 底＋白卡，強調色只用深藍 #0a2334＋金 #E8A020。
 * 深色：海軍藍底＋暖白字＋金細線。
 * 結構：①令牌 ②通用兜底（自動產生，低特異度）③手寫元件（高特異度，蓋過兜底）④互動層元件。
 * 單頁特例請放 assets/days/<檔名>.css，不要動這份。
 * ===================================================== */

/* ---------- 分享圖（canvas）：深藍金卡，暖白字，標題襯線 ---------- */
:root{
  --dv-serif:"Noto Serif TC","Songti TC","PMingLiU",serif;
  --dv-card-bg1:#0a2334; --dv-card-bg2:#16405e; --dv-card-ink:#f3ecdc;
  --dv-card-mut:rgba(243,236,220,.72); --dv-card-acc:#E8A020; --dv-card-line:rgba(232,160,32,.45);
  --dv-card-font:"Noto Sans TC","Microsoft JhengHei",sans-serif; --dv-card-title-font:"Noto Serif TC","Songti TC","PMingLiU",serif;
}

/* ---------- 淺色 ---------- */
html[data-rex-theme="light"], html:not([data-rex-theme]){
  color-scheme:light;
  --bg:#f4f6f9; --panel:#ffffff; --panel-2:#ffffff; --line:rgba(10,35,52,.12);
  --text:#15222d; --muted:#556575;
  --gold:#8a5500; --green:#0d7451; --red:#b3302c; --orange:#b4540a; --cyan:#0b6a86; --warm:#b4540a;
  --shadow:0 1px 2px rgba(10,35,52,.05), 0 10px 30px rgba(10,35,52,.07);
  --t-ink:#0a2334; --t-soft:#2c3d4c;
  --t-red:#b3302c; --t-gold:#7d4d00; --t-green:#0d7451; --t-blue:#2f4aa0; --t-violet:#65419f;
  --red-rgb:192,57,43; --gold-rgb:232,160,32; --green-rgb:15,122,82; --blue-rgb:59,82,181; --violet-rgb:106,69,176; --orange-rgb:210,100,20;
  --sf-1:rgba(10,35,52,.035); --sf-2:rgba(10,35,52,.055); --input-bg:#ffffff;
  --acc-rgb:10,35,52; --cat-on:#ffffff; --gold-fill:#E8A020; --gold-on:#0a2334; --rule:#0a2334;
  --cat-system-rgb:27,111,143; --cat-law-rgb:138,53,80; --cat-doc-rgb:74,90,168; --cat-product-rgb:44,122,88; --cat-kpi-rgb:176,98,24;
}
/* ---------- 深色：夜金 ---------- */
html[data-rex-theme="dark"]{
  color-scheme:dark;
  --bg:#08182a; --panel:#0d2236; --panel-2:#112b44; --line:rgba(232,160,32,.18);
  --text:#f3ecdc; --muted:#a9b9c6;
  --gold:#f0b94d; --green:#7fdcb0; --red:#ff9f98; --orange:#ffb883; --cyan:#7fd0ec; --warm:#ffb883;
  --shadow:0 1px 0 rgba(255,255,255,.03) inset, 0 12px 32px rgba(0,0,0,.4);
  --t-ink:#fbf6e9; --t-soft:#d9e0e6;
  --t-red:#ffaaa4; --t-gold:#f4c36a; --t-green:#8fe3ba; --t-blue:#aac8f0; --t-violet:#c9baf2;
  --red-rgb:255,138,134; --gold-rgb:232,160,32; --green-rgb:95,208,160; --blue-rgb:120,170,225; --violet-rgb:170,150,230; --orange-rgb:255,170,110;
  --sf-1:rgba(255,255,255,.045); --sf-2:rgba(0,0,0,.26); --input-bg:rgba(0,0,0,.34);
  --acc-rgb:232,160,32; --cat-on:#0a2334; --gold-fill:#E8A020; --gold-on:#0a2334; --rule:#E8A020;
  --cat-system-rgb:98,189,224; --cat-law-rgb:226,141,165; --cat-doc-rgb:154,171,240; --cat-product-rgb:111,208,160; --cat-kpi-rgb:240,164,90;
}
/* 分類色：只給小色點／細條用（hero 徽章圓點、dv-cat 圓點） */
body.dv2{ --cat-rgb:var(--cat-system-rgb); }
body.dv2-cat-system{ --cat-rgb:var(--cat-system-rgb); }
body.dv2-cat-law{ --cat-rgb:var(--cat-law-rgb); }
body.dv2-cat-doc{ --cat-rgb:var(--cat-doc-rgb); }
body.dv2-cat-product{ --cat-rgb:var(--cat-product-rgb); }
body.dv2-cat-kpi{ --cat-rgb:var(--cat-kpi-rgb); }
body.dv2{
  --cat:rgb(var(--cat-rgb)); --acc:rgb(var(--acc-rgb));
  --accent:var(--acc); --accent-2:var(--t-gold);
  background:var(--bg) !important; color:var(--text);
  font-family:"Noto Sans TC","Microsoft JhengHei",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:16px; line-height:1.75; letter-spacing:.005em;
  -webkit-font-smoothing:antialiased;
  /* 浮動鈕（右下兩顆＋左下回主頁）高度＋24px＋safe-area：頁尾內容不被蓋住 */
  padding-bottom:calc(168px + env(safe-area-inset-bottom));
}
body.dv2::before, body.dv2::after{ display:none !important; }
body.dv2 .wrap{ max-width:820px; padding:14px 16px 24px; }
@media(min-width:880px){ body.dv2 .wrap{ padding:26px 20px 40px; } }
body.dv2 .wrap:has(> main.grid){ max-width:1040px; }

/* ===== 通用兜底（自動產生 by _daily-qa/gen_fallback.py；掃描 rex/daily 原稿 inline style 的寫死深底／淺字）=====
 * 以 :where() 包住前綴 → 特異度只剩原選擇器本身，手寫規則可輕易蓋過。 */
/* -- 淺色 -- */
:where(html:not([data-rex-theme="dark"]) body.dv2) .admin-row .ad-item{border-bottom-color:var(--line)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) .bt-item .n{background-image:none!important;background:var(--sf-1)!important;color:var(--t-blue)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) .calc-card,
:where(html:not([data-rex-theme="dark"]) body.dv2) .cond-item,
:where(html:not([data-rex-theme="dark"]) body.dv2) .compare-table,
:where(html:not([data-rex-theme="dark"]) body.dv2) .co-row,
:where(html:not([data-rex-theme="dark"]) body.dv2) .tab .badge-co,
:where(html:not([data-rex-theme="dark"]) body.dv2) .tab.active .badge-co,
:where(html:not([data-rex-theme="dark"]) body.dv2) .schedule-table,
:where(html:not([data-rex-theme="dark"]) body.dv2) .big-prize,
:where(html:not([data-rex-theme="dark"]) body.dv2) .field .suffix input,
:where(html:not([data-rex-theme="dark"]) body.dv2) .countdown-90,
:where(html:not([data-rex-theme="dark"]) body.dv2) .vs-table-wrap,
:where(html:not([data-rex-theme="dark"]) body.dv2) .prize-row,
:where(html:not([data-rex-theme="dark"]) body.dv2) .sf-item,
:where(html:not([data-rex-theme="dark"]) body.dv2) .ex,
:where(html:not([data-rex-theme="dark"]) body.dv2) .bank-card,
:where(html:not([data-rex-theme="dark"]) body.dv2) .fee-row,
:where(html:not([data-rex-theme="dark"]) body.dv2) .prod-stat,
:where(html:not([data-rex-theme="dark"]) body.dv2) .addr-card,
:where(html:not([data-rex-theme="dark"]) body.dv2) .danger,
:where(html:not([data-rex-theme="dark"]) body.dv2) .figure,
:where(html:not([data-rex-theme="dark"]) body.dv2) .figure-cap,
:where(html:not([data-rex-theme="dark"]) body.dv2) .mobile-step .thumb,
:where(html:not([data-rex-theme="dark"]) body.dv2) .div-stat,
:where(html:not([data-rex-theme="dark"]) body.dv2) .cd-box,
:where(html:not([data-rex-theme="dark"]) body.dv2) .th-row,
:where(html:not([data-rex-theme="dark"]) body.dv2) .field select,
:where(html:not([data-rex-theme="dark"]) body.dv2) .field input,
:where(html:not([data-rex-theme="dark"]) body.dv2) .result,
:where(html:not([data-rex-theme="dark"]) body.dv2) .calc-meta,
:where(html:not([data-rex-theme="dark"]) body.dv2) .opt,
:where(html:not([data-rex-theme="dark"]) body.dv2) .ph,
:where(html:not([data-rex-theme="dark"]) body.dv2) .tmpl-box,
:where(html:not([data-rex-theme="dark"]) body.dv2) .keep-table,
:where(html:not([data-rex-theme="dark"]) body.dv2) .bond-item,
:where(html:not([data-rex-theme="dark"]) body.dv2) .bond-quote,
:where(html:not([data-rex-theme="dark"]) body.dv2) .tl-item{background-image:none!important;background:var(--sf-2)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) .calc-card .row.total{border-top-color:var(--line)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) .cd-num,
:where(html:not([data-rex-theme="dark"]) body.dv2) .result .premium{-webkit-text-fill-color:currentColor!important;background-image:none!important;background:none!important;color:var(--t-gold)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) .chip,
:where(html:not([data-rex-theme="dark"]) body.dv2) .see-card,
:where(html:not([data-rex-theme="dark"]) body.dv2) .day-nav a,
:where(html:not([data-rex-theme="dark"]) body.dv2) .day-nav a:hover,
:where(html:not([data-rex-theme="dark"]) body.dv2) .day-nav a:active,
:where(html:not([data-rex-theme="dark"]) body.dv2) .benefit,
:where(html:not([data-rex-theme="dark"]) body.dv2) table.cmp th,
:where(html:not([data-rex-theme="dark"]) body.dv2) .case-step,
:where(html:not([data-rex-theme="dark"]) body.dv2) .rule,
:where(html:not([data-rex-theme="dark"]) body.dv2) .rule:hover,
:where(html:not([data-rex-theme="dark"]) body.dv2) .tab,
:where(html:not([data-rex-theme="dark"]) body.dv2) .tab:hover,
:where(html:not([data-rex-theme="dark"]) body.dv2) table.sch th,
:where(html:not([data-rex-theme="dark"]) body.dv2) table.sch tr:nth-child(even),
:where(html:not([data-rex-theme="dark"]) body.dv2) .concept,
:where(html:not([data-rex-theme="dark"]) body.dv2) .stair,
:where(html:not([data-rex-theme="dark"]) body.dv2) .stair-divider,
:where(html:not([data-rex-theme="dark"]) body.dv2) .calc,
:where(html:not([data-rex-theme="dark"]) body.dv2) .product,
:where(html:not([data-rex-theme="dark"]) body.dv2) .step-card,
:where(html:not([data-rex-theme="dark"]) body.dv2) .topic-pill:hover,
:where(html:not([data-rex-theme="dark"]) body.dv2) .topic-pill:active,
:where(html:not([data-rex-theme="dark"]) body.dv2) .feat,
:where(html:not([data-rex-theme="dark"]) body.dv2) table.vs th,
:where(html:not([data-rex-theme="dark"]) body.dv2) table.vs td.lbl,
:where(html:not([data-rex-theme="dark"]) body.dv2) .prize,
:where(html:not([data-rex-theme="dark"]) body.dv2) .step,
:where(html:not([data-rex-theme="dark"]) body.dv2) .step:hover,
:where(html:not([data-rex-theme="dark"]) body.dv2) .cred,
:where(html:not([data-rex-theme="dark"]) body.dv2) .req,
:where(html:not([data-rex-theme="dark"]) body.dv2) .weapon,
:where(html:not([data-rex-theme="dark"]) body.dv2) .target,
:where(html:not([data-rex-theme="dark"]) body.dv2) .doc,
:where(html:not([data-rex-theme="dark"]) body.dv2) .bank-head,
:where(html:not([data-rex-theme="dark"]) body.dv2) .fee,
:where(html:not([data-rex-theme="dark"]) body.dv2) .adv,
:where(html:not([data-rex-theme="dark"]) body.dv2) .addr-head,
:where(html:not([data-rex-theme="dark"]) body.dv2) .rule-item,
:where(html:not([data-rex-theme="dark"]) body.dv2) .price,
:where(html:not([data-rex-theme="dark"]) body.dv2) .comp,
:where(html:not([data-rex-theme="dark"]) body.dv2) .mobile-step,
:where(html:not([data-rex-theme="dark"]) body.dv2) .doc-item,
:where(html:not([data-rex-theme="dark"]) body.dv2) .tl-card,
:where(html:not([data-rex-theme="dark"]) body.dv2) .reason,
:where(html:not([data-rex-theme="dark"]) body.dv2) .div-card,
:where(html:not([data-rex-theme="dark"]) body.dv2) .req-item,
:where(html:not([data-rex-theme="dark"]) body.dv2) .type-card,
:where(html:not([data-rex-theme="dark"]) body.dv2) .type-card:hover,
:where(html:not([data-rex-theme="dark"]) body.dv2) details.acc,
:where(html:not([data-rex-theme="dark"]) body.dv2) .q-item,
:where(html:not([data-rex-theme="dark"]) body.dv2) .method,
:where(html:not([data-rex-theme="dark"]) body.dv2) .tier .seats,
:where(html:not([data-rex-theme="dark"]) body.dv2) .field select option,
:where(html:not([data-rex-theme="dark"]) body.dv2) .scenario,
:where(html:not([data-rex-theme="dark"]) body.dv2) .tmpl-head,
:where(html:not([data-rex-theme="dark"]) body.dv2) .field-item,
:where(html:not([data-rex-theme="dark"]) body.dv2) .special,
:where(html:not([data-rex-theme="dark"]) body.dv2) .agent-card,
:where(html:not([data-rex-theme="dark"]) body.dv2) .term,
:where(html:not([data-rex-theme="dark"]) body.dv2) .bonus-table,
:where(html:not([data-rex-theme="dark"]) body.dv2) .keep-table-head,
:where(html:not([data-rex-theme="dark"]) body.dv2) table.kpr th,
:where(html:not([data-rex-theme="dark"]) body.dv2) .legend-item,
:where(html:not([data-rex-theme="dark"]) body.dv2) .sub-formula,
:where(html:not([data-rex-theme="dark"]) body.dv2) .bar-chart,
:where(html:not([data-rex-theme="dark"]) body.dv2) .bond-card,
:where(html:not([data-rex-theme="dark"]) body.dv2) .announce,
:where(html:not([data-rex-theme="dark"]) body.dv2) .announce:hover,
:where(html:not([data-rex-theme="dark"]) body.dv2) .kpi,
:where(html:not([data-rex-theme="dark"]) body.dv2) .progress,
:where(html:not([data-rex-theme="dark"]) body.dv2) .event{background-image:none!important;background:var(--sf-1)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) .hero .lead,
:where(html:not([data-rex-theme="dark"]) body.dv2) .tip .ttl,
:where(html:not([data-rex-theme="dark"]) body.dv2) .tip .desc{color:var(--text)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) .hero .lead strong,
:where(html:not([data-rex-theme="dark"]) body.dv2) .hl-product,
:where(html:not([data-rex-theme="dark"]) body.dv2) .zone p .em,
:where(html:not([data-rex-theme="dark"]) body.dv2) .tri-name,
:where(html:not([data-rex-theme="dark"]) body.dv2) .see-card .see-when,
:where(html:not([data-rex-theme="dark"]) body.dv2) .case-card .em,
:where(html:not([data-rex-theme="dark"]) body.dv2) .b-title,
:where(html:not([data-rex-theme="dark"]) body.dv2) .cond-item .txt strong,
:where(html:not([data-rex-theme="dark"]) body.dv2) .script-box p,
:where(html:not([data-rex-theme="dark"]) body.dv2) .case-step h3,
:where(html:not([data-rex-theme="dark"]) body.dv2) .compare-card h3,
:where(html:not([data-rex-theme="dark"]) body.dv2) .rule h3,
:where(html:not([data-rex-theme="dark"]) body.dv2) .group-head h3,
:where(html:not([data-rex-theme="dark"]) body.dv2) .reminder-card .em,
:where(html:not([data-rex-theme="dark"]) body.dv2) .cny-banner .em,
:where(html:not([data-rex-theme="dark"]) body.dv2) .co-type h4,
:where(html:not([data-rex-theme="dark"]) body.dv2) .concept-zh,
:where(html:not([data-rex-theme="dark"]) body.dv2) .bp-num,
:where(html:not([data-rex-theme="dark"]) body.dv2) .stair-title,
:where(html:not([data-rex-theme="dark"]) body.dv2) .product .co,
:where(html:not([data-rex-theme="dark"]) body.dv2) .cd-text .ttl,
:where(html:not([data-rex-theme="dark"]) body.dv2) .step-card h4,
:where(html:not([data-rex-theme="dark"]) body.dv2) .feat .name,
:where(html:not([data-rex-theme="dark"]) body.dv2) table.vs td.hl,
:where(html:not([data-rex-theme="dark"]) body.dv2) .activity-hero h3,
:where(html:not([data-rex-theme="dark"]) body.dv2) .prize h4,
:where(html:not([data-rex-theme="dark"]) body.dv2) .admin-row .ad-val,
:where(html:not([data-rex-theme="dark"]) body.dv2) .day-nav .home:hover,
:where(html:not([data-rex-theme="dark"]) body.dv2) .bubble .em,
:where(html:not([data-rex-theme="dark"]) body.dv2) .both-card .ttl,
:where(html:not([data-rex-theme="dark"]) body.dv2) .weapon h4,
:where(html:not([data-rex-theme="dark"]) body.dv2) .path h3,
:where(html:not([data-rex-theme="dark"]) body.dv2) .sf-item .val,
:where(html:not([data-rex-theme="dark"]) body.dv2) .vs-result .v,
:where(html:not([data-rex-theme="dark"]) body.dv2) .quote-card h4,
:where(html:not([data-rex-theme="dark"]) body.dv2) .target h4,
:where(html:not([data-rex-theme="dark"]) body.dv2) .strat h3,
:where(html:not([data-rex-theme="dark"]) body.dv2) .strat .prod strong,
:where(html:not([data-rex-theme="dark"]) body.dv2) .prize-info h4,
:where(html:not([data-rex-theme="dark"]) body.dv2) .step h4,
:where(html:not([data-rex-theme="dark"]) body.dv2) .doc-name,
:where(html:not([data-rex-theme="dark"]) body.dv2) .fee-eq,
:where(html:not([data-rex-theme="dark"]) body.dv2) .ex-name,
:where(html:not([data-rex-theme="dark"]) body.dv2) .bank-row .val,
:where(html:not([data-rex-theme="dark"]) body.dv2) .fee h4,
:where(html:not([data-rex-theme="dark"]) body.dv2) .fee-row.combo .v,
:where(html:not([data-rex-theme="dark"]) body.dv2) .dl-card .ttl,
:where(html:not([data-rex-theme="dark"]) body.dv2) .rule .core strong,
:where(html:not([data-rex-theme="dark"]) body.dv2) .rule .focus strong,
:where(html:not([data-rex-theme="dark"]) body.dv2) .prod-card h3,
:where(html:not([data-rex-theme="dark"]) body.dv2) .prod-stat .v,
:where(html:not([data-rex-theme="dark"]) body.dv2) .pain strong,
:where(html:not([data-rex-theme="dark"]) body.dv2) .gain strong,
:where(html:not([data-rex-theme="dark"]) body.dv2) .adv h4,
:where(html:not([data-rex-theme="dark"]) body.dv2) .addr-row .val,
:where(html:not([data-rex-theme="dark"]) body.dv2) .rule-item .txt strong,
:where(html:not([data-rex-theme="dark"]) body.dv2) .danger .big,
:where(html:not([data-rex-theme="dark"]) body.dv2) .law-box strong,
:where(html:not([data-rex-theme="dark"]) body.dv2) .comp h4,
:where(html:not([data-rex-theme="dark"]) body.dv2) .tl-title,
:where(html:not([data-rex-theme="dark"]) body.dv2) .years,
:where(html:not([data-rex-theme="dark"]) body.dv2) .reason h4,
:where(html:not([data-rex-theme="dark"]) body.dv2) .quote,
:where(html:not([data-rex-theme="dark"]) body.dv2) .div-card h4,
:where(html:not([data-rex-theme="dark"]) body.dv2) .prize-info h3,
:where(html:not([data-rex-theme="dark"]) body.dv2) .meta strong,
:where(html:not([data-rex-theme="dark"]) body.dv2) .type-card .ttl,
:where(html:not([data-rex-theme="dark"]) body.dv2) .acc-title h3,
:where(html:not([data-rex-theme="dark"]) body.dv2) .formula,
:where(html:not([data-rex-theme="dark"]) body.dv2) .result .seat,
:where(html:not([data-rex-theme="dark"]) body.dv2) .scenario .conclusion strong,
:where(html:not([data-rex-theme="dark"]) body.dv2) .condition-card .em,
:where(html:not([data-rex-theme="dark"]) body.dv2) .ours .formula,
:where(html:not([data-rex-theme="dark"]) body.dv2) .result .when,
:where(html:not([data-rex-theme="dark"]) body.dv2) .vs-card h3,
:where(html:not([data-rex-theme="dark"]) body.dv2) .vs-card .en,
:where(html:not([data-rex-theme="dark"]) body.dv2) .vs-card .desc,
:where(html:not([data-rex-theme="dark"]) body.dv2) .vs-card .desc strong,
:where(html:not([data-rex-theme="dark"]) body.dv2) .vs-conclusion .em,
:where(html:not([data-rex-theme="dark"]) body.dv2) .pie-center,
:where(html:not([data-rex-theme="dark"]) body.dv2) .bar-shape,
:where(html:not([data-rex-theme="dark"]) body.dv2) .bond-item .v,
:where(html:not([data-rex-theme="dark"]) body.dv2) .bond-conclusion strong,
:where(html:not([data-rex-theme="dark"]) body.dv2) .rule-banner .em,
:where(html:not([data-rex-theme="dark"]) body.dv2) .scenario h3,
:where(html:not([data-rex-theme="dark"]) body.dv2) .tl-event .em,
:where(html:not([data-rex-theme="dark"]) body.dv2) .quote-card blockquote{color:var(--t-ink)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) .hero h1{-webkit-text-fill-color:currentColor!important;background-image:none!important;background:none!important;color:var(--text)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) .hl-new,
:where(html:not([data-rex-theme="dark"]) body.dv2) .big-pct{-webkit-text-fill-color:currentColor!important;background-image:none!important;background:none!important;color:var(--orange)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) .limit-amount,
:where(html:not([data-rex-theme="dark"]) body.dv2) .save-banner .v,
:where(html:not([data-rex-theme="dark"]) body.dv2) .bp-amt,
:where(html:not([data-rex-theme="dark"]) body.dv2) .calc-out .val,
:where(html:not([data-rex-theme="dark"]) body.dv2) .product-hero h3,
:where(html:not([data-rex-theme="dark"]) body.dv2) .path.b .final-num,
:where(html:not([data-rex-theme="dark"]) body.dv2) .prize.top .prize-amt,
:where(html:not([data-rex-theme="dark"]) body.dv2) .type-card .num,
:where(html:not([data-rex-theme="dark"]) body.dv2) .term .abbr,
:where(html:not([data-rex-theme="dark"]) body.dv2) .result-total .v{-webkit-text-fill-color:currentColor!important;background-image:none!important;background:none!important;color:var(--t-ink)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) .meta-pill{background-image:none!important;background:var(--sf-2)!important;color:var(--text)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) .name-chip{background-image:none!important;background:var(--sf-1)!important;color:var(--t-ink)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) .punch,
:where(html:not([data-rex-theme="dark"]) body.dv2) .flow-num,
:where(html:not([data-rex-theme="dark"]) body.dv2) .formula-main,
:where(html:not([data-rex-theme="dark"]) body.dv2) .sub-formula .calc{background-image:none!important;background:var(--sf-2)!important;color:var(--t-ink)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) .script-box::before,
:where(html:not([data-rex-theme="dark"]) body.dv2) .bubble.client::before,
:where(html:not([data-rex-theme="dark"]) body.dv2) .bubble.you::before,
:where(html:not([data-rex-theme="dark"]) body.dv2) .pie::after{background-image:none!important;background:var(--panel)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) .sec-ico.blue,
:where(html:not([data-rex-theme="dark"]) body.dv2) .calc-card h4,
:where(html:not([data-rex-theme="dark"]) body.dv2) .tri-card.bond .tri-pct,
:where(html:not([data-rex-theme="dark"]) body.dv2) .tri-card.cb .tri-pct,
:where(html:not([data-rex-theme="dark"]) body.dv2) .callout.info .ttl,
:where(html:not([data-rex-theme="dark"]) body.dv2) .day-nav .home,
:where(html:not([data-rex-theme="dark"]) body.dv2) .sec-ico.violet,
:where(html:not([data-rex-theme="dark"]) body.dv2) .cond-item .txt,
:where(html:not([data-rex-theme="dark"]) body.dv2) table.cmp td.v,
:where(html:not([data-rex-theme="dark"]) body.dv2) .case-step .desc strong,
:where(html:not([data-rex-theme="dark"]) body.dv2) .rule p strong,
:where(html:not([data-rex-theme="dark"]) body.dv2) .group-head.g1 .gh-ic,
:where(html:not([data-rex-theme="dark"]) body.dv2) .co-name,
:where(html:not([data-rex-theme="dark"]) body.dv2) table.sch td,
:where(html:not([data-rex-theme="dark"]) body.dv2) .stair.tier1 .stair-tag,
:where(html:not([data-rex-theme="dark"]) body.dv2) .stair-target,
:where(html:not([data-rex-theme="dark"]) body.dv2) .stair.tier1 .stair-prize,
:where(html:not([data-rex-theme="dark"]) body.dv2) .product-hero .sub,
:where(html:not([data-rex-theme="dark"]) body.dv2) table.vs td,
:where(html:not([data-rex-theme="dark"]) body.dv2) .prize-row .item,
:where(html:not([data-rex-theme="dark"]) body.dv2) .step .link,
:where(html:not([data-rex-theme="dark"]) body.dv2) .cred .v,
:where(html:not([data-rex-theme="dark"]) body.dv2) .cred .v a,
:where(html:not([data-rex-theme="dark"]) body.dv2) .req .n,
:where(html:not([data-rex-theme="dark"]) body.dv2) .bubble.client,
:where(html:not([data-rex-theme="dark"]) body.dv2) .path.a .path-tag,
:where(html:not([data-rex-theme="dark"]) body.dv2) .sf-item .label,
:where(html:not([data-rex-theme="dark"]) body.dv2) .path.a .final-num,
:where(html:not([data-rex-theme="dark"]) body.dv2) .strat.b .strat-tag,
:where(html:not([data-rex-theme="dark"]) body.dv2) .strat.b .strat-num,
:where(html:not([data-rex-theme="dark"]) body.dv2) .bank-head .ttl,
:where(html:not([data-rex-theme="dark"]) body.dv2) .feat p,
:where(html:not([data-rex-theme="dark"]) body.dv2) .rule.prop .rule-tag,
:where(html:not([data-rex-theme="dark"]) body.dv2) .step-card .pill,
:where(html:not([data-rex-theme="dark"]) body.dv2) .addr-head .ttl,
:where(html:not([data-rex-theme="dark"]) body.dv2) .law-box .clause,
:where(html:not([data-rex-theme="dark"]) body.dv2) .price .name,
:where(html:not([data-rex-theme="dark"]) body.dv2) .step .pill.violet,
:where(html:not([data-rex-theme="dark"]) body.dv2) .figure-empty .ph-name,
:where(html:not([data-rex-theme="dark"]) body.dv2) .mobile-step .thumb-empty .ph-name,
:where(html:not([data-rex-theme="dark"]) body.dv2) .doc-item .ic,
:where(html:not([data-rex-theme="dark"]) body.dv2) .doc-item .name,
:where(html:not([data-rex-theme="dark"]) body.dv2) .tl-card.t1 .tl-date,
:where(html:not([data-rex-theme="dark"]) body.dv2) .div-stat .label,
:where(html:not([data-rex-theme="dark"]) body.dv2) .req-item h4,
:where(html:not([data-rex-theme="dark"]) body.dv2) .legal-banner .ttl,
:where(html:not([data-rex-theme="dark"]) body.dv2) .action p,
:where(html:not([data-rex-theme="dark"]) body.dv2) .scenario-pill.violet,
:where(html:not([data-rex-theme="dark"]) body.dv2) .q-item .q-n,
:where(html:not([data-rex-theme="dark"]) body.dv2) .method .link,
:where(html:not([data-rex-theme="dark"]) body.dv2) .v.blue,
:where(html:not([data-rex-theme="dark"]) body.dv2) .result.eu .target,
:where(html:not([data-rex-theme="dark"]) body.dv2) .calc-meta .b,
:where(html:not([data-rex-theme="dark"]) body.dv2) .tmpl-title,
:where(html:not([data-rex-theme="dark"]) body.dv2) .tmpl-title .badge,
:where(html:not([data-rex-theme="dark"]) body.dv2) .tmpl-body .label,
:where(html:not([data-rex-theme="dark"]) body.dv2) .field-item .n,
:where(html:not([data-rex-theme="dark"]) body.dv2) .special.car .sp-ic,
:where(html:not([data-rex-theme="dark"]) body.dv2) .special.corp .sp-ic,
:where(html:not([data-rex-theme="dark"]) body.dv2) .term .fullname,
:where(html:not([data-rex-theme="dark"]) body.dv2) .bt-head.t1 .bt-tag,
:where(html:not([data-rex-theme="dark"]) body.dv2) .result.fyc .target,
:where(html:not([data-rex-theme="dark"]) body.dv2) table.kpr td:first-child,
:where(html:not([data-rex-theme="dark"]) body.dv2) .formula-main .var.v2,
:where(html:not([data-rex-theme="dark"]) body.dv2) .formula-main .var.v3,
:where(html:not([data-rex-theme="dark"]) body.dv2) .sub-formula h4,
:where(html:not([data-rex-theme="dark"]) body.dv2) .sub-formula h4 .badge,
:where(html:not([data-rex-theme="dark"]) body.dv2) .sub-formula .calc .l,
:where(html:not([data-rex-theme="dark"]) body.dv2) .tl-event,
:where(html:not([data-rex-theme="dark"]) body.dv2) .market .name{color:var(--t-blue)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) .sec-ico.gold,
:where(html:not([data-rex-theme="dark"]) body.dv2) .case-card p,
:where(html:not([data-rex-theme="dark"]) body.dv2) .callout.gold .ttl,
:where(html:not([data-rex-theme="dark"]) body.dv2) .limit-unit,
:where(html:not([data-rex-theme="dark"]) body.dv2) .save-banner .desc,
:where(html:not([data-rex-theme="dark"]) body.dv2) .rule .quote,
:where(html:not([data-rex-theme="dark"]) body.dv2) .group-head.g2 .gh-ic,
:where(html:not([data-rex-theme="dark"]) body.dv2) .co-type.calc .co-tag,
:where(html:not([data-rex-theme="dark"]) body.dv2) .stair.tier2 .stair-tag,
:where(html:not([data-rex-theme="dark"]) body.dv2) .blessing,
:where(html:not([data-rex-theme="dark"]) body.dv2) .rule-card h3,
:where(html:not([data-rex-theme="dark"]) body.dv2) table.vs th.h-cur,
:where(html:not([data-rex-theme="dark"]) body.dv2) .prize-tag,
:where(html:not([data-rex-theme="dark"]) body.dv2) .bubble.you,
:where(html:not([data-rex-theme="dark"]) body.dv2) .quote-card p,
:where(html:not([data-rex-theme="dark"]) body.dv2) .strat.a .strat-tag,
:where(html:not([data-rex-theme="dark"]) body.dv2) .calc-out .desc,
:where(html:not([data-rex-theme="dark"]) body.dv2) .rule .focus,
:where(html:not([data-rex-theme="dark"]) body.dv2) .must h4,
:where(html:not([data-rex-theme="dark"]) body.dv2) .confess h3,
:where(html:not([data-rex-theme="dark"]) body.dv2) .celebrate-desc,
:where(html:not([data-rex-theme="dark"]) body.dv2) .comp-bar .ttl,
:where(html:not([data-rex-theme="dark"]) body.dv2) .comp-bar .desc,
:where(html:not([data-rex-theme="dark"]) body.dv2) .scenario-pill,
:where(html:not([data-rex-theme="dark"]) body.dv2) .s46 .sc-tag,
:where(html:not([data-rex-theme="dark"]) body.dv2) .condition-card .ttl,
:where(html:not([data-rex-theme="dark"]) body.dv2) .condition-card .desc,
:where(html:not([data-rex-theme="dark"]) body.dv2) .agent-card.gen .ic,
:where(html:not([data-rex-theme="dark"]) body.dv2) .bt-head.t3 .bt-tag,
:where(html:not([data-rex-theme="dark"]) body.dv2) .bt-item .badge,
:where(html:not([data-rex-theme="dark"]) body.dv2) .result.m25 .target,
:where(html:not([data-rex-theme="dark"]) body.dv2) .bar-warn,
:where(html:not([data-rex-theme="dark"]) body.dv2) .bond-head h3,
:where(html:not([data-rex-theme="dark"]) body.dv2) .rule-banner .ttl,
:where(html:not([data-rex-theme="dark"]) body.dv2) .rule-banner .desc{color:var(--t-gold)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) .sec-ico.green,
:where(html:not([data-rex-theme="dark"]) body.dv2) .callout.green .ttl,
:where(html:not([data-rex-theme="dark"]) body.dv2) .magic-flow h4,
:where(html:not([data-rex-theme="dark"]) body.dv2) .compare-card.good .cmp-tag,
:where(html:not([data-rex-theme="dark"]) body.dv2) .compare-card.good .v,
:where(html:not([data-rex-theme="dark"]) body.dv2) .rule .tip,
:where(html:not([data-rex-theme="dark"]) body.dv2) .reminder-card .ttl,
:where(html:not([data-rex-theme="dark"]) body.dv2) .reminder-card p,
:where(html:not([data-rex-theme="dark"]) body.dv2) .co-type.fixed .co-tag,
:where(html:not([data-rex-theme="dark"]) body.dv2) .result-box .ttl,
:where(html:not([data-rex-theme="dark"]) body.dv2) .result-box .desc,
:where(html:not([data-rex-theme="dark"]) body.dv2) table.vs th.h-old,
:where(html:not([data-rex-theme="dark"]) body.dv2) .action-card .ttl,
:where(html:not([data-rex-theme="dark"]) body.dv2) .action-card .desc,
:where(html:not([data-rex-theme="dark"]) body.dv2) .stat-pill,
:where(html:not([data-rex-theme="dark"]) body.dv2) .path.b .path-tag,
:where(html:not([data-rex-theme="dark"]) body.dv2) .sf-item.plus .val,
:where(html:not([data-rex-theme="dark"]) body.dv2) .strat.c .strat-tag,
:where(html:not([data-rex-theme="dark"]) body.dv2) .strat.c .strat-num,
:where(html:not([data-rex-theme="dark"]) body.dv2) .dl-card .url,
:where(html:not([data-rex-theme="dark"]) body.dv2) .rule.life .rule-tag,
:where(html:not([data-rex-theme="dark"]) body.dv2) .prod-card.skl .prod-tag,
:where(html:not([data-rex-theme="dark"]) body.dv2) .gain,
:where(html:not([data-rex-theme="dark"]) body.dv2) .now-card h4,
:where(html:not([data-rex-theme="dark"]) body.dv2) .step .pill,
:where(html:not([data-rex-theme="dark"]) body.dv2) .tl-card.t3 .tl-date,
:where(html:not([data-rex-theme="dark"]) body.dv2) .prize-info .price,
:where(html:not([data-rex-theme="dark"]) body.dv2) .req-item .ic,
:where(html:not([data-rex-theme="dark"]) body.dv2) .action h3,
:where(html:not([data-rex-theme="dark"]) body.dv2) .scenario-pill.green,
:where(html:not([data-rex-theme="dark"]) body.dv2) .s56 .sc-tag,
:where(html:not([data-rex-theme="dark"]) body.dv2) .tmpl-body,
:where(html:not([data-rex-theme="dark"]) body.dv2) .agent-card.life .ic,
:where(html:not([data-rex-theme="dark"]) body.dv2) .ours h3,
:where(html:not([data-rex-theme="dark"]) body.dv2) .ours .var,
:where(html:not([data-rex-theme="dark"]) body.dv2) .bt-head.t2 .bt-tag,
:where(html:not([data-rex-theme="dark"]) body.dv2) .result.m13 .target,
:where(html:not([data-rex-theme="dark"]) body.dv2) .bond-conclusion,
:where(html:not([data-rex-theme="dark"]) body.dv2) .scenario.good .scen-tag{color:var(--t-green)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) .sec-ico.orange{color:var(--orange)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) .sec-ico.red,
:where(html:not([data-rex-theme="dark"]) body.dv2) .tri-card.stock .tri-pct,
:where(html:not([data-rex-theme="dark"]) body.dv2) .callout.warn .ttl,
:where(html:not([data-rex-theme="dark"]) body.dv2) .compare-card.bad .cmp-tag,
:where(html:not([data-rex-theme="dark"]) body.dv2) .compare-card.bad .v,
:where(html:not([data-rex-theme="dark"]) body.dv2) .risk-item h4,
:where(html:not([data-rex-theme="dark"]) body.dv2) .rule p .red,
:where(html:not([data-rex-theme="dark"]) body.dv2) .group-head.g3 .gh-ic,
:where(html:not([data-rex-theme="dark"]) body.dv2) .cny-banner .ttl,
:where(html:not([data-rex-theme="dark"]) body.dv2) .cny-banner .desc,
:where(html:not([data-rex-theme="dark"]) body.dv2) table.sch tr.cny-row td,
:where(html:not([data-rex-theme="dark"]) body.dv2) .stair.tier3 .stair-tag,
:where(html:not([data-rex-theme="dark"]) body.dv2) .rule-card li .red,
:where(html:not([data-rex-theme="dark"]) body.dv2) .activity-hero .period,
:where(html:not([data-rex-theme="dark"]) body.dv2) .callout .red,
:where(html:not([data-rex-theme="dark"]) body.dv2) .sf-item.minus .val,
:where(html:not([data-rex-theme="dark"]) body.dv2) .bp-desc,
:where(html:not([data-rex-theme="dark"]) body.dv2) .doc-tag,
:where(html:not([data-rex-theme="dark"]) body.dv2) .alert-banner .ttl,
:where(html:not([data-rex-theme="dark"]) body.dv2) .alert-banner .desc,
:where(html:not([data-rex-theme="dark"]) body.dv2) .rule .core .red,
:where(html:not([data-rex-theme="dark"]) body.dv2) .prod-card.tw .prod-tag,
:where(html:not([data-rex-theme="dark"]) body.dv2) .pain,
:where(html:not([data-rex-theme="dark"]) body.dv2) .rule-item .txt .red,
:where(html:not([data-rex-theme="dark"]) body.dv2) .danger h3,
:where(html:not([data-rex-theme="dark"]) body.dv2) .danger p,
:where(html:not([data-rex-theme="dark"]) body.dv2) .alert-card .ttl,
:where(html:not([data-rex-theme="dark"]) body.dv2) .alert-card .desc,
:where(html:not([data-rex-theme="dark"]) body.dv2) .action p .red,
:where(html:not([data-rex-theme="dark"]) body.dv2) .q-item.key .q-n,
:where(html:not([data-rex-theme="dark"]) body.dv2) .result.th2 .target,
:where(html:not([data-rex-theme="dark"]) body.dv2) .s36 .sc-tag,
:where(html:not([data-rex-theme="dark"]) body.dv2) .trick h3,
:where(html:not([data-rex-theme="dark"]) body.dv2) .law-note strong,
:where(html:not([data-rex-theme="dark"]) body.dv2) .scenario.bad .scen-tag,
:where(html:not([data-rex-theme="dark"]) body.dv2) .scenario.bad .tl-date{color:var(--t-red)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) .see-card .see-effect,
:where(html:not([data-rex-theme="dark"]) body.dv2) .stair-quote,
:where(html:not([data-rex-theme="dark"]) body.dv2) .topic-pill,
:where(html:not([data-rex-theme="dark"]) body.dv2) .sms-sample,
:where(html:not([data-rex-theme="dark"]) body.dv2) .weapon .clause,
:where(html:not([data-rex-theme="dark"]) body.dv2) .strat .prod,
:where(html:not([data-rex-theme="dark"]) body.dv2) .rule .core,
:where(html:not([data-rex-theme="dark"]) body.dv2) .pain-point,
:where(html:not([data-rex-theme="dark"]) body.dv2) .law-box,
:where(html:not([data-rex-theme="dark"]) body.dv2) .meta,
:where(html:not([data-rex-theme="dark"]) body.dv2) .vs-card.old .vs-tag{background-image:none!important;background:var(--sf-2)!important;color:var(--t-blue)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) .stair.tier3 .stair-prize{-webkit-text-fill-color:currentColor!important;background-image:none!important;background:none!important;color:var(--t-red)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) .trick .truth,
:where(html:not([data-rex-theme="dark"]) body.dv2) .vs-card.new .vs-tag{background-image:none!important;background:var(--sf-2)!important;color:var(--t-gold)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) .vs-card.old{background-image:none!important;background:var(--sf-1)!important;border-color:var(--line)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) .vs-conclusion{background-image:none!important;background:var(--sf-1)!important;color:var(--t-gold)!important}
/* -- 深色（原稿寫死的紫黑底 → 海軍藍）-- */
:where(html[data-rex-theme="dark"] body.dv2) .script-box::before,
:where(html[data-rex-theme="dark"] body.dv2) .calc,
:where(html[data-rex-theme="dark"] body.dv2) .bubble.client::before,
:where(html[data-rex-theme="dark"] body.dv2) .bubble.you::before,
:where(html[data-rex-theme="dark"] body.dv2) .field select option,
:where(html[data-rex-theme="dark"] body.dv2) .vs-card.old,
:where(html[data-rex-theme="dark"] body.dv2) .vs-conclusion,
:where(html[data-rex-theme="dark"] body.dv2) .pie::after,
:where(html[data-rex-theme="dark"] body.dv2) .bond-card{background-image:none!important;background:var(--panel-2)!important}
:where(html[data-rex-theme="dark"] body.dv2) .vs-bubble{background-image:none!important;background:var(--panel-2)!important;color:var(--text)!important}
:where(html[data-rex-theme="dark"] body.dv2) .vs-bubble::after{border-top-color:var(--panel-2)!important}
/* -- 次要字下限 12.5px（原稿 <12px 的元件）-- */
body.dv2 .activity-hero .ribbon,
body.dv2 .addr-head .date,
body.dv2 .admin-row .ad-lbl,
body.dv2 .announce .when,
body.dv2 .b-eng,
body.dv2 .bar-sub,
body.dv2 .bond-item .l,
body.dv2 .bp-lbl,
body.dv2 .bp-tag,
body.dv2 .brand-text .t2,
body.dv2 .bt-item .badge,
body.dv2 .bt-tag,
body.dv2 .bubble.client::before,
body.dv2 .bubble.you::before,
body.dv2 .calc-out .lbl,
body.dv2 .card .tag,
body.dv2 .case-tag,
body.dv2 .cd-label,
body.dv2 .celebrate .ribbon,
body.dv2 .cmp-row .v small,
body.dv2 .cmp-tag,
body.dv2 .co-tag,
body.dv2 .comp .rate small,
body.dv2 .comp .when,
body.dv2 .comp-co,
body.dv2 .concept-en,
body.dv2 .cred .l,
body.dv2 .daybadge,
body.dv2 .div-card .note,
body.dv2 .dl-card .url,
body.dv2 .doc-item .ver,
body.dv2 .doc-lbl,
body.dv2 .doc-tag,
body.dv2 .event .who,
body.dv2 .ex-tag,
body.dv2 .fee-formula .lbl,
body.dv2 .field label .hint,
body.dv2 .field-item .hint,
body.dv2 .field-item .n,
body.dv2 .figure-empty .ph-tag,
body.dv2 .final-lbl,
body.dv2 .foot,
body.dv2 .formula-box .label,
body.dv2 .group-head .gh-tag,
body.dv2 .hl-label,
body.dv2 .kpi .delta,
body.dv2 .law-box .clause,
body.dv2 .limit-note,
body.dv2 .limit-tag,
body.dv2 .link-card .url,
body.dv2 .market .head-row .chg,
body.dv2 .market .head-row .name,
body.dv2 .market .head-row .val,
body.dv2 .meta-pill,
body.dv2 .mobile-step .thumb-empty .ph-name,
body.dv2 .mobile-step .thumb-empty .ph-tag,
body.dv2 .path-tag,
body.dv2 .pdf-link .desc,
body.dv2 .ph,
body.dv2 .prize-amt small,
body.dv2 .prize-info .ribbon,
body.dv2 .prize-row .count,
body.dv2 .prize-tag,
body.dv2 .prod-tag,
body.dv2 .product .prod,
body.dv2 .product-hero .badge-new,
body.dv2 .q-item .key-tag,
body.dv2 .q-item .q-n,
body.dv2 .quote-tag,
body.dv2 .req .badge,
body.dv2 .result .formula-mini,
body.dv2 .result .premium-yi,
body.dv2 .result .target,
body.dv2 .ribbon,
body.dv2 .rule-item .n,
body.dv2 .rule-tag,
body.dv2 .save-banner .l,
body.dv2 .sc-tag,
body.dv2 .scen-tag,
body.dv2 .scenario-pill,
body.dv2 .script-tag,
body.dv2 .sec-tag,
body.dv2 .sms-sample .lbl,
body.dv2 .stair-coef,
body.dv2 .stair-quote,
body.dv2 .stair-tag,
body.dv2 .step .important,
body.dv2 .step .pill,
body.dv2 .step-card .pill,
body.dv2 .step-card .pill-key,
body.dv2 .strat-eq,
body.dv2 .strat-tag,
body.dv2 .sub-formula .note,
body.dv2 .sub-formula h4 .badge,
body.dv2 .tab .badge-co,
body.dv2 .tier-tag,
body.dv2 .tl-tag,
body.dv2 .tmpl-title .badge,
body.dv2 .tri-desc,
body.dv2 .type-card .desc,
body.dv2 .vs-card .vs-tag,
body.dv2 .warn-bar-marks,
body.dv2 table.cmp th,
body.dv2 table.kpr th,
body.dv2 table.sch th,
body.dv2 table.vs td.lbl,
body.dv2 table.vs th{font-size:12.5px!important}
/* -- 行內 style="" 寫死色（淺色翻深字、深色保留）-- */
:where(html:not([data-rex-theme="dark"]) body.dv2) [style*="color:#fff"],:where(html:not([data-rex-theme="dark"]) body.dv2) [style*="color: #fff"]{color:var(--t-ink)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) [style*="color:#ffffff"],:where(html:not([data-rex-theme="dark"]) body.dv2) [style*="color: #ffffff"]{color:var(--t-ink)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) [style*="color:#e9edf7"],:where(html:not([data-rex-theme="dark"]) body.dv2) [style*="color: #e9edf7"]{color:var(--t-soft)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) [style*="color:#cdd6ff"],:where(html:not([data-rex-theme="dark"]) body.dv2) [style*="color: #cdd6ff"]{color:var(--t-blue)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) [style*="color:#a8baff"],:where(html:not([data-rex-theme="dark"]) body.dv2) [style*="color: #a8baff"]{color:var(--t-blue)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) [style*="color:#7c9cff"],:where(html:not([data-rex-theme="dark"]) body.dv2) [style*="color: #7c9cff"]{color:var(--t-blue)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) [style*="color:#cbb3ff"],:where(html:not([data-rex-theme="dark"]) body.dv2) [style*="color: #cbb3ff"]{color:var(--t-violet)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) [style*="color:#b694ff"],:where(html:not([data-rex-theme="dark"]) body.dv2) [style*="color: #b694ff"]{color:var(--t-violet)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) [style*="color:#ffb3bb"],:where(html:not([data-rex-theme="dark"]) body.dv2) [style*="color: #ffb3bb"]{color:var(--t-red)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) [style*="color:#ff7c8a"],:where(html:not([data-rex-theme="dark"]) body.dv2) [style*="color: #ff7c8a"]{color:var(--t-red)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) [style*="color:#9deec3"],:where(html:not([data-rex-theme="dark"]) body.dv2) [style*="color: #9deec3"]{color:var(--t-green)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) [style*="color:#5fd6a0"],:where(html:not([data-rex-theme="dark"]) body.dv2) [style*="color: #5fd6a0"]{color:var(--t-green)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) [style*="color:#ffd99a"],:where(html:not([data-rex-theme="dark"]) body.dv2) [style*="color: #ffd99a"]{color:var(--t-gold)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) [style*="color:#f5c97c"],:where(html:not([data-rex-theme="dark"]) body.dv2) [style*="color: #f5c97c"]{color:var(--t-gold)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) [style*="color:#ffae6c"],:where(html:not([data-rex-theme="dark"]) body.dv2) [style*="color: #ffae6c"]{color:var(--orange)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) [style*="color:#aaa"],:where(html:not([data-rex-theme="dark"]) body.dv2) [style*="color: #aaa"]{color:var(--muted)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) [style*="color:#fde6ea"],:where(html:not([data-rex-theme="dark"]) body.dv2) [style*="color: #fde6ea"]{color:var(--t-red)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) [style*="color:#fde8c8"],:where(html:not([data-rex-theme="dark"]) body.dv2) [style*="color: #fde8c8"]{color:var(--t-gold)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) [style*="rgba(0,0,0"]{background:var(--sf-2)!important}
:where(html:not([data-rex-theme="dark"]) body.dv2) [style*="background-clip:text"]{background:none!important;-webkit-text-fill-color:currentColor!important;color:var(--t-gold)!important}


/* ========== 手寫元件（高特異度）========== */
/* ---------- 頂列 ---------- */
body.dv2 .topbar{ display:flex; align-items:center; justify-content:space-between; gap:10px 12px; flex-wrap:wrap; margin:0 0 14px; padding:4px 2px; position:static; background:none; border:0; backdrop-filter:none; border-radius:0; }
body.dv2 .brand{ display:flex; align-items:center; gap:12px; min-width:0; }
body.dv2 .logo{ width:42px; height:42px; border-radius:14px; flex:none; font-size:0 !important; color:transparent !important;
  background:#fff url(/rex/daily/logo.png) center/30px 30px no-repeat !important; box-shadow:0 0 0 1px var(--line), 0 4px 12px rgba(10,35,52,.10) !important; }
body.dv2 .brand-text .t1{ font-size:17px; font-weight:800; color:var(--text); letter-spacing:.02em; }
body.dv2 .brand-text .t2{ font-size:12px; color:var(--muted); letter-spacing:.04em; }
body.dv2 .chip{ background:var(--panel); border:1px solid var(--line); color:var(--muted); font-size:13px; padding:8px 14px; border-radius:999px; box-shadow:0 1px 2px rgba(10,35,52,.04); }
body.dv2 .chip .dot, body.dv2 .dot{ background:var(--green); box-shadow:none; }

/* ---------- 今日卡（hero） ---------- */
body.dv2 .hero{
  position:relative; overflow:hidden; border-radius:28px; margin-bottom:14px; padding:30px 20px 20px;
  background:linear-gradient(180deg, rgba(232,160,32,.10), rgba(232,160,32,0) 160px), var(--panel);
  border:1px solid var(--line); box-shadow:var(--shadow);
}
@media(min-width:640px){ body.dv2 .hero{ padding:36px 32px 28px; } }
body.dv2 .hero::before{ content:"" !important; display:block !important; position:absolute !important; left:0; right:0; top:0; bottom:auto; width:auto; height:5px; background:#E8A020 !important; filter:none !important; inset:0 0 auto 0 !important; border-radius:0; }
body.dv2 .hero::after{ display:none !important; }
body.dv2 .daybadge{ display:inline-flex; align-items:center; gap:8px; padding:7px 15px; border-radius:999px; margin-bottom:14px; font-size:13px; font-weight:800; letter-spacing:.08em; background:var(--acc) !important; color:var(--cat-on) !important; }
body.dv2 .daybadge::before{ content:""; width:8px; height:8px; border-radius:50%; background:rgb(var(--cat-rgb)); box-shadow:0 0 0 2px rgba(255,255,255,.85); flex:none; }
body.dv2 .hero h1{ font-family:var(--dv-serif); font-size:clamp(25px,6.6vw,35px); font-weight:900; line-height:1.3; letter-spacing:0; margin-bottom:12px; color:var(--t-ink) !important; background:none !important; -webkit-text-fill-color:currentColor !important; -webkit-background-clip:border-box; background-clip:border-box; }
body.dv2 .hero .lead, body.dv2 .hero p{ font-size:16px; line-height:1.8; color:var(--t-soft) !important; max-width:none; }
body.dv2 .hero .lead{ border-left:4px solid #E8A020; padding-left:14px; }
body.dv2 .hero .lead strong, body.dv2 .hero p strong{ color:var(--t-ink) !important; }
body.dv2 .hero .lead .em, body.dv2 .hero p .em{ color:var(--t-gold) !important; }
body.dv2 .hero-meta{ display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
body.dv2 .meta-pill{ background:rgba(var(--acc-rgb),.10) !important; border:1px solid rgba(var(--acc-rgb),.20) !important; color:var(--t-soft) !important; font-size:14px; padding:8px 14px; font-weight:500; border-radius:999px; }
body.dv2 .meta-pill strong[style]{ color:var(--t-gold) !important; }

/* 主 CTA：一鍵分享 */
body.dv2 .dv-hero-actions{ display:flex; flex-direction:column; gap:10px; margin-top:22px; }
@media(min-width:640px){ body.dv2 .dv-hero-actions{ flex-direction:row; align-items:stretch; } body.dv2 .dv-hero-actions .dv-btn-share{ flex:1; } }
body.dv2 .dv-btn{ display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:48px; padding:0 22px; border-radius:18px; border:1px solid transparent; font:inherit; font-size:16px; font-weight:700; cursor:pointer; text-decoration:none; transition:transform .12s ease, box-shadow .12s ease, background .12s ease; -webkit-tap-highlight-color:transparent; }
body.dv2 .dv-btn svg{ flex:none; }
body.dv2 .dv-btn-share{ min-height:58px; font-size:17px; font-weight:800; letter-spacing:.02em; background:var(--gold-fill); color:var(--gold-on); box-shadow:0 8px 22px rgba(232,160,32,.38), 0 1px 0 rgba(255,255,255,.4) inset; }
body.dv2 .dv-btn-share:hover{ background:#f1ad33; }
body.dv2 .dv-btn-share:active{ transform:scale(.98); }
body.dv2 .dv-btn-ghost{ background:transparent; color:var(--t-ink); border:1.5px solid rgba(10,35,52,.5); }
html[data-rex-theme="dark"] body.dv2 .dv-btn-ghost{ color:#f3ecdc; border-color:rgba(243,236,220,.6); }
body.dv2 .dv-btn-ghost:hover{ background:var(--sf-2); }
body.dv2 .dv-btn:focus-visible, body.dv2 .dv-fab:focus-visible, body.dv2 .dv-x:focus-visible, body.dv2 .dv-toc a:focus-visible, body.dv2 .dv-next:focus-visible{ outline:3px solid rgba(232,160,32,.65); outline-offset:2px; }

/* ---------- 3 秒看重點 ---------- */
body.dv2 .dv-brief::before{ content:""; position:absolute; left:0; right:0; top:0; height:3px; background:#E8A020; }
body.dv2 .dv-brief{ margin:0 0 14px; padding:20px 18px 16px; border-radius:26px; color:#f3f7fb;
  background:linear-gradient(150deg,#0a2334 0%,#154160 100%); box-shadow:0 14px 34px rgba(10,35,52,.28); position:relative; overflow:hidden; }
html[data-rex-theme="dark"] body.dv2 .dv-brief{ background:linear-gradient(150deg,#16344d 0%,#0f2538 100%); box-shadow:0 0 0 1px rgba(232,160,32,.28), 0 14px 34px rgba(0,0,0,.4); }
@media(min-width:640px){ body.dv2 .dv-brief{ padding:26px 28px 20px; } }
body.dv2 .dv-brief-head{ display:flex; flex-wrap:wrap; align-items:center; gap:8px 10px; margin-bottom:12px; }
body.dv2 .dv-brief-k{ display:inline-flex; align-items:center; gap:6px; font-size:14px; font-weight:800; letter-spacing:.08em; color:#E8A020; }
body.dv2 .dv-brief-k::before{ content:"⚡"; font-size:15px; }
body.dv2 .dv-cat{ display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:700; padding:4px 12px; border-radius:999px; background:rgba(255,255,255,.13); color:#fff; }
body.dv2 .dv-cat::before{ content:""; width:8px; height:8px; border-radius:50%; background:#8fb5c8; }
body.dv2 .dv-cat-system::before{ background:#62bde0; } body.dv2 .dv-cat-law::before{ background:#e28da5; } body.dv2 .dv-cat-doc::before{ background:#9aabf0; } body.dv2 .dv-cat-product::before{ background:#6fd0a0; } body.dv2 .dv-cat-kpi::before{ background:#f0a45a; }
body.dv2 .dv-brief-date{ margin-left:auto; font-size:13px; color:rgba(255,255,255,.72); font-variant-numeric:tabular-nums; }
body.dv2 .dv-brief-p{ font-family:var(--dv-serif); font-size:17px; line-height:1.85; font-weight:500; color:#fff; margin:0; }
body.dv2 .dv-toc{ margin-top:16px; }
body.dv2 .dv-toc-k{ display:block; font-size:13px; font-weight:700; letter-spacing:.06em; color:rgba(255,255,255,.66); margin-bottom:8px; }
body.dv2 .dv-toc ol{ list-style:none; margin:0 -18px; padding:2px 18px 6px; display:flex; gap:8px; overflow-x:auto; -webkit-overflow-scrolling:touch; scroll-snap-type:x proximity; scrollbar-width:none; }
body.dv2 .dv-toc ol::-webkit-scrollbar{ display:none; }
/* 橫滑提示：右側漸層遮罩＋標題旁「左右滑動」；桌機換行後取消 */
body.dv2 .dv-toc ol{ padding-right:46px !important; -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 44px),transparent); mask-image:linear-gradient(90deg,#000 calc(100% - 44px),transparent); }
body.dv2 .dv-toc-k::after{ content:"　左右滑動 ›"; font-weight:500; letter-spacing:.02em; color:#E8A020; }
@media(min-width:900px){ body.dv2 .dv-toc ol{ -webkit-mask-image:none; mask-image:none; padding-right:0 !important; } body.dv2 .dv-toc-k::after{ content:none; } }
@media(min-width:640px){ body.dv2 .dv-toc ol{ margin:0 -28px; padding:2px 28px 6px; } }
@media(min-width:900px){ body.dv2 .dv-toc ol{ flex-wrap:wrap; overflow:visible; margin:0; padding:2px 0 0; } }
body.dv2 .dv-toc li{ flex:none; scroll-snap-align:start; }
body.dv2 .dv-toc a{ display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:0 16px 0 8px; border-radius:999px; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.14); color:#fff; font-size:15px; font-weight:600; text-decoration:none; white-space:nowrap; }
body.dv2 .dv-toc a:hover, body.dv2 .dv-toc a:active{ background:rgba(255,255,255,.22); }
body.dv2 .dv-toc a b{ display:inline-grid; place-items:center; width:28px; height:28px; border-radius:50%; background:#E8A020; color:#0a2334; font-size:13px; font-weight:800; font-family:Inter,sans-serif; }

/* ---------- 法源卡：淡金卡＋左金條＋⚖（C），反白小標「法規小欄」（B）---------- */
body.dv2 .dv-legal{ position:relative; border-radius:22px !important; margin:16px 0 18px !important; padding:44px 18px 18px 22px !important;
  background:linear-gradient(135deg, rgba(232,160,32,.17), rgba(232,160,32,.07)), var(--panel) !important; border:1px solid rgba(232,160,32,.5) !important; border-left:7px solid #E8A020 !important; color:var(--text) !important; box-shadow:0 6px 18px rgba(232,160,32,.10); overflow:hidden; }
html[data-rex-theme="dark"] body.dv2 .dv-legal{ background:linear-gradient(135deg, rgba(232,160,32,.16), rgba(232,160,32,.06)), var(--panel) !important; }
body.dv2 .dv-legal::before{ content:"法 規 小 欄 · LEGAL BASIS"; position:absolute; top:0; left:0; padding:5px 14px 5px 14px; border-radius:0 0 14px 0; background:#0a2334; color:#f3ecdc; font-size:12px; font-weight:700; letter-spacing:.16em; line-height:1.4; }
html[data-rex-theme="dark"] body.dv2 .dv-legal::before{ background:#E8A020; color:#0a2334; }
body.dv2 .dv-legal .ic{ background:#E8A020 !important; color:#0a2334 !important; width:50px; height:50px; border-radius:50%; font-size:23px; box-shadow:0 4px 12px rgba(232,160,32,.35); flex:none; }
body.dv2 .dv-legal .ttl, body.dv2 .dv-legal-ttl{ display:inline-block; align-self:flex-start; font-size:14px !important; font-weight:800 !important; letter-spacing:.14em; padding:3px 12px; border-radius:999px; margin-bottom:8px !important; background:#0a2334 !important; color:#ffd78a !important; border:1px solid rgba(232,160,32,.6); }
html[data-rex-theme="dark"] body.dv2 .dv-legal .ttl, html[data-rex-theme="dark"] body.dv2 .dv-legal-ttl{ background:#E8A020 !important; color:#0a2334 !important; border-color:#E8A020; }
body.dv2 .dv-legal .desc{ font-size:15px !important; line-height:1.8 !important; color:var(--text) !important; }
body.dv2 .dv-legal .em{ color:var(--t-gold) !important; font-weight:700; }
body.dv2 .dv-legal p, body.dv2 .dv-legal li{ color:var(--text) !important; }

/* ---------- 內容卡（section / briefing card） ---------- */
body.dv2 .section, body.dv2 .card, body.dv2 .quote-card{ background:var(--panel) !important; border:1px solid var(--line); border-radius:24px; padding:22px 18px; box-shadow:var(--shadow); margin-bottom:14px; }
@media(min-width:640px){ body.dv2 .section, body.dv2 .card{ padding:28px 28px; } }
body.dv2 .section-head{ display:flex; align-items:flex-start; gap:14px; margin-bottom:16px; }
body.dv2 .sec-ico{ width:48px; height:48px; border-radius:16px; font-size:23px; box-shadow:none !important; flex:none; background:rgba(var(--acc-rgb),.12); color:var(--acc); }
body.dv2 .sec-ico.red{ background:rgba(var(--red-rgb),.14) !important; color:var(--t-red) !important; }
body.dv2 .sec-ico.gold, body.dv2 .sec-ico.orange{ background:rgba(var(--gold-rgb),.18) !important; color:var(--t-gold) !important; }
body.dv2 .sec-ico.green{ background:rgba(var(--green-rgb),.15) !important; color:var(--t-green) !important; }
body.dv2 .sec-ico.violet{ background:rgba(var(--violet-rgb),.15) !important; color:var(--t-violet) !important; }
body.dv2 .sec-ico.blue{ background:rgba(var(--blue-rgb),.15) !important; color:var(--t-blue) !important; }
body.dv2 .sec-tag{ font-size:12.5px; letter-spacing:.08em; font-weight:800; color:var(--t-gold); }
body.dv2 .section h2{ font-family:var(--dv-serif); font-size:clamp(19px,5.2vw,23px); font-weight:900; line-height:1.35; color:var(--t-ink); }
body.dv2 .section h2 small{ display:block; font-size:14.5px; line-height:1.6; color:var(--muted); font-weight:500; margin-top:6px; letter-spacing:0; }
body.dv2 .section p, body.dv2 .card p{ font-size:15.5px; line-height:1.8; }
body.dv2 .section h3, body.dv2 .section h4{ color:var(--t-ink); }
body.dv2 .section[id], body.dv2 section[id]{ scroll-margin-top:12px; }

/* 一般小卡：半透明底，淺深兩色都成立 */
body.dv2 .type-card, body.dv2 .term, body.dv2 .price, body.dv2 .comp, body.dv2 .prize, body.dv2 .step-card, body.dv2 details.acc, body.dv2 .bonus-table, body.dv2 .announce, body.dv2 .kpi, body.dv2 .event, body.dv2 .day-nav a, body.dv2 .topic-pill{ background:var(--sf-1) !important; border:1px solid var(--line) !important; border-radius:18px; }
body.dv2 .type-card{ padding:18px 12px; }
body.dv2 .type-card .num, body.dv2 .term .abbr, body.dv2 .step-card .n{ background:none; }
body.dv2 .type-card .num{ -webkit-text-fill-color:currentColor; color:var(--acc); font-size:30px; }
body.dv2 .type-card .ttl, body.dv2 .acc-title h3, body.dv2 .strat h3, body.dv2 .prize-info h4, body.dv2 .comp h4{ color:var(--t-ink) !important; }
body.dv2 .type-card .ttl{ font-size:15.5px; }
body.dv2 .type-card .desc, body.dv2 .term .desc, body.dv2 .step-card p, body.dv2 .prize-info p, body.dv2 .acc-title .scenario, body.dv2 .pdf-link .desc, body.dv2 .signoff, body.dv2 .strat .sub, body.dv2 .strat-eq, body.dv2 .comp .when, body.dv2 .announce p, body.dv2 .announce .when, body.dv2 .kpi .label{ color:var(--muted) !important; font-size:14px; }
body.dv2 .term .abbr{ -webkit-text-fill-color:currentColor; color:var(--acc); font-size:18px; }
body.dv2 .term .fullname, body.dv2 .price .name, body.dv2 .market .name, body.dv2 table.kpr td:first-child, body.dv2 .topic-pill{ color:var(--t-soft) !important; }
body.dv2 .term .desc, body.dv2 .step-card p{ font-size:14.5px; }
body.dv2 .step-card .n{ background:var(--acc) !important; color:var(--cat-on) !important; }
body.dv2 .step-card h4{ font-size:15.5px; color:var(--t-ink); }

/* 行動清單（綠） */
body.dv2 .action{ background:rgba(var(--green-rgb),.10) !important; border:1px solid rgba(var(--green-rgb),.28) !important; border-radius:18px; padding:18px; }
body.dv2 .action .n{ background:var(--t-green) !important; color:var(--cat-on) !important; border-radius:12px; width:34px; height:34px; }
html[data-rex-theme="light"] body.dv2 .action .n{ color:#fff !important; }
body.dv2 .action h3{ color:var(--t-green) !important; font-size:17px; }
body.dv2 .action p{ color:var(--text) !important; font-size:15.5px; line-height:1.8; }
body.dv2 .action p .em, body.dv2 .callout .em, body.dv2 .alert-card .em, body.dv2 .now-card .em{ color:var(--t-gold) !important; font-weight:700; }
body.dv2 .action p .red, body.dv2 .callout .red{ color:var(--t-red) !important; font-weight:700; }

/* 手風琴 */
body.dv2 details.acc{ overflow:hidden; }
body.dv2 details.acc[open]{ border-color:rgba(var(--acc-rgb),.45) !important; }
body.dv2 details.acc summary{ min-height:60px; padding:16px 18px; gap:14px; }
body.dv2 .acc-num, body.dv2 details.acc.type-1 .acc-num, body.dv2 details.acc.type-2 .acc-num, body.dv2 details.acc.type-3 .acc-num, body.dv2 details.acc.type-4 .acc-num{ background:var(--acc) !important; color:var(--cat-on) !important; width:40px; height:40px; border-radius:14px; }
body.dv2 .acc-title h3{ font-size:17px; }
body.dv2 .acc-chevron{ color:var(--muted); font-size:14px; }
body.dv2 details.acc[open] .acc-chevron{ color:var(--acc); }
body.dv2 .acc-body{ padding:6px 18px 20px; border-top:1px solid var(--line); }
body.dv2 .scenario-pill, body.dv2 .scenario-pill.violet, body.dv2 .scenario-pill.green{ font-size:13.5px; padding:5px 12px; border-radius:999px; background:rgba(var(--gold-rgb),.16) !important; color:var(--t-gold) !important; border:1px solid rgba(var(--gold-rgb),.34) !important; }
body.dv2 .scenario-pill.violet{ background:rgba(var(--violet-rgb),.14) !important; color:var(--t-violet) !important; border-color:rgba(var(--violet-rgb),.32) !important; }
body.dv2 .scenario-pill.green{ background:rgba(var(--green-rgb),.14) !important; color:var(--t-green) !important; border-color:rgba(var(--green-rgb),.32) !important; }
body.dv2 .q-subhead{ color:var(--t-gold); font-size:14px; letter-spacing:.06em; margin:18px 0 8px; }
body.dv2 .q-item{ background:var(--sf-1) !important; border:1px solid var(--line) !important; font-size:15.5px; line-height:1.75; padding:12px 14px; border-radius:14px; }
body.dv2 .q-item .q-n{ background:rgba(var(--acc-rgb),.16) !important; color:var(--acc) !important; width:26px; height:26px; border-radius:8px; }
body.dv2 .q-item.key{ background:rgba(var(--red-rgb),.10) !important; border-color:rgba(var(--red-rgb),.32) !important; }
body.dv2 .q-item.key .q-n{ background:rgba(var(--red-rgb),.20) !important; color:var(--t-red) !important; }
body.dv2 .q-item .key-tag{ background:#E8A020; color:#0a2334; font-size:12px; }

/* 提示框 callout */
body.dv2 .callout{ border-radius:18px; padding:16px 16px; margin:16px 0; gap:14px; }
body.dv2 .callout p{ font-size:15.5px; line-height:1.8; color:var(--text) !important; }
body.dv2 .callout .ttl{ font-size:15.5px; font-weight:800; }
body.dv2 .callout.warn{ background:rgba(var(--red-rgb),.10) !important; border-color:rgba(var(--red-rgb),.34) !important; } body.dv2 .callout.warn .ttl{ color:var(--t-red) !important; } body.dv2 .callout.warn .ic{ color:var(--t-red) !important; }
body.dv2 .callout.info{ background:rgba(var(--blue-rgb),.10) !important; border-color:rgba(var(--blue-rgb),.34) !important; } body.dv2 .callout.info .ttl{ color:var(--t-blue) !important; } body.dv2 .callout.info .ic{ color:var(--t-blue) !important; }
body.dv2 .callout.gold{ background:rgba(var(--gold-rgb),.14) !important; border-color:rgba(var(--gold-rgb),.40) !important; } body.dv2 .callout.gold .ttl{ color:var(--t-gold) !important; } body.dv2 .callout.gold .ic{ color:var(--t-gold) !important; }
body.dv2 .callout.green{ background:rgba(var(--green-rgb),.10) !important; border-color:rgba(var(--green-rgb),.34) !important; } body.dv2 .callout.green .ttl{ color:var(--t-green) !important; } body.dv2 .callout.green .ic{ color:var(--t-green) !important; }

/* 話術框 */
body.dv2 .script-box{ background:rgba(var(--green-rgb),.10) !important; border:1px solid rgba(var(--green-rgb),.32) !important; border-radius:18px; padding:20px 18px 16px; }
body.dv2 .script-box::before{ background:var(--panel) !important; }
body.dv2 .script-tag{ color:var(--t-green) !important; font-size:13px; }
body.dv2 .script-box p{ color:var(--text) !important; font-size:15.5px; line-height:1.85; }
body.dv2 .script-box p::before, body.dv2 .script-box p::after{ color:var(--t-green) !important; }

/* PDF 連結卡 */
body.dv2 .pdf-link{ min-height:64px; border-radius:18px !important; background:rgba(var(--gold-rgb),.12) !important; border:1px solid rgba(var(--gold-rgb),.36) !important; color:var(--text) !important; padding:14px 16px; }
body.dv2 .pdf-link:hover{ background:rgba(var(--gold-rgb),.2) !important; }
body.dv2 .pdf-link .ic{ background:#E8A020 !important; color:#0a2334 !important; border-radius:14px; }
body.dv2 .pdf-link .ttl{ font-size:15px; color:var(--t-ink); }

/* Day 7：招數／我們的算法／表格 */
body.dv2 .trick{ background:rgba(var(--red-rgb),.09) !important; border:1px solid rgba(var(--red-rgb),.28) !important; border-radius:18px; padding:18px; }
body.dv2 .trick-num{ background:var(--t-red) !important; color:var(--cat-on) !important; }
html[data-rex-theme="light"] body.dv2 .trick-num{ color:#fff !important; }
body.dv2 .trick h3{ color:var(--t-red) !important; font-size:16.5px; }
body.dv2 .trick p{ color:var(--text); font-size:15.5px; }
body.dv2 .trick .truth{ background:rgba(var(--gold-rgb),.14) !important; border-left:4px solid #E8A020; color:var(--t-gold) !important; font-size:14.5px; border-radius:12px; }
body.dv2 .trick .truth strong{ color:var(--t-gold) !important; }
body.dv2 .ours{ background:rgba(var(--green-rgb),.12) !important; border:1px solid rgba(var(--green-rgb),.34) !important; border-radius:20px; }
body.dv2 .ours .ttl, body.dv2 .ours h3{ color:var(--t-green) !important; }
body.dv2 .ours .formula{ color:var(--t-ink) !important; }
body.dv2 .ours .var{ background:rgba(var(--green-rgb),.20) !important; color:var(--t-green) !important; }
body.dv2 .ours .op{ color:var(--muted) !important; }
body.dv2 .ours .res{ background:#E8A020 !important; color:#0a2334 !important; }
body.dv2 .bonus-table{ overflow:hidden; }
body.dv2 .bt-head{ border-bottom:1px solid var(--line); }
body.dv2 .bt-head.t1{ background:rgba(var(--blue-rgb),.12) !important; } body.dv2 .bt-head.t2{ background:rgba(var(--green-rgb),.12) !important; } body.dv2 .bt-head.t3{ background:rgba(var(--gold-rgb),.16) !important; }
body.dv2 .bt-head.t1 .bt-tag{ background:rgba(var(--blue-rgb),.2) !important; color:var(--t-blue) !important; }
body.dv2 .bt-head.t2 .bt-tag{ background:rgba(var(--green-rgb),.2) !important; color:var(--t-green) !important; }
body.dv2 .bt-head.t3 .bt-tag{ background:rgba(var(--gold-rgb),.26) !important; color:var(--t-gold) !important; }
body.dv2 .bt-head h3 small{ color:var(--muted) !important; }
body.dv2 .bt-item{ font-size:15px; }
body.dv2 .bt-item .n{ background:var(--sf-2) !important; color:var(--t-soft) !important; }
body.dv2 .bt-item .n.exclusive{ background:#E8A020 !important; color:#0a2334 !important; }
body.dv2 .bt-item .badge{ background:rgba(var(--gold-rgb),.2) !important; color:var(--t-gold) !important; border-color:rgba(var(--gold-rgb),.4) !important; }

/* 試算器（Day 7 / 21） */
body.dv2 .calc{ background:var(--sf-1) !important; border:1px solid rgba(var(--gold-rgb),.45) !important; border-radius:22px; box-shadow:none !important; padding:20px 16px; }
body.dv2 .field label{ font-size:14px; color:var(--muted); }
body.dv2 .field label .hint{ color:var(--t-gold); font-size:12.5px; }
body.dv2 .field input, body.dv2 .field select, body.dv2 select#strat, body.dv2 .field .suffix input{ background:var(--input-bg) !important; border:1px solid var(--line) !important; color:var(--text) !important; border-radius:14px !important; min-height:48px; font-size:16px !important; }
body.dv2 .field input:focus, body.dv2 .field select:focus, body.dv2 select#strat:focus{ border-color:#E8A020 !important; box-shadow:0 0 0 3px rgba(232,160,32,.25); outline:none; }
body.dv2 .field select option{ background:var(--panel); color:var(--text); }
body.dv2 .field .suffix::after{ color:var(--muted); }
body.dv2 .result{ background:var(--sf-2) !important; border:1px solid var(--line) !important; border-radius:18px; }
body.dv2 .result .target{ color:var(--muted) !important; font-size:13px; }
body.dv2 .result .when{ color:var(--t-ink) !important; font-size:14px; }
body.dv2 .result .premium, body.dv2 .result-total .v, body.dv2 .calc-out .val{ background:none !important; -webkit-text-fill-color:currentColor !important; color:var(--t-ink) !important; }
body.dv2 .result-total .v, body.dv2 .calc-out .val{ color:var(--t-gold) !important; }
body.dv2 .result .formula-mini{ color:var(--muted); }
body.dv2 .result.fyc .target{ color:var(--t-blue) !important; } body.dv2 .result.m13 .target{ color:var(--t-green) !important; } body.dv2 .result.m25 .target{ color:var(--t-gold) !important; }
body.dv2 .result.fyc{ border-color:rgba(var(--blue-rgb),.4) !important; } body.dv2 .result.m13{ border-color:rgba(var(--green-rgb),.4) !important; } body.dv2 .result.m25{ border-color:rgba(var(--gold-rgb),.5) !important; }
body.dv2 .result-total, body.dv2 .calc-out{ background:rgba(var(--gold-rgb),.16) !important; border:1px solid rgba(var(--gold-rgb),.45) !important; border-radius:18px; }
body.dv2 .result-total .lbl, body.dv2 .calc-out .lbl{ color:var(--t-gold) !important; font-size:13.5px; }
body.dv2 .calc-out .desc{ color:var(--t-soft) !important; font-size:14.5px; }
body.dv2 .keep-table{ background:var(--sf-1) !important; border:1px solid var(--line) !important; border-radius:18px; overflow-x:auto; }
body.dv2 .keep-table-head{ background:var(--sf-2) !important; color:var(--t-gold) !important; font-size:13.5px; }
body.dv2 table.kpr th{ background:var(--sf-2) !important; color:var(--muted) !important; font-size:13px; }
body.dv2 table.kpr td{ font-size:14px; }
body.dv2 table.kpr td .pct{ color:var(--t-ink); }

/* Day 21：策略卡／獎項 */
body.dv2 .strat{ border-radius:20px; }
body.dv2 .strat.a{ background:rgba(var(--gold-rgb),.14) !important; border-color:rgba(var(--gold-rgb),.42) !important; }
body.dv2 .strat.b{ background:rgba(var(--blue-rgb),.12) !important; border-color:rgba(var(--blue-rgb),.38) !important; }
body.dv2 .strat.c{ background:rgba(var(--green-rgb),.12) !important; border-color:rgba(var(--green-rgb),.38) !important; }
body.dv2 .strat.a .strat-tag{ background:rgba(var(--gold-rgb),.28) !important; color:var(--t-gold) !important; }
body.dv2 .strat.b .strat-tag{ background:rgba(var(--blue-rgb),.22) !important; color:var(--t-blue) !important; }
body.dv2 .strat.c .strat-tag{ background:rgba(var(--green-rgb),.22) !important; color:var(--t-green) !important; }
body.dv2 .strat.a .strat-num{ color:var(--t-gold) !important; } body.dv2 .strat.b .strat-num{ color:var(--t-blue) !important; } body.dv2 .strat.c .strat-num{ color:var(--t-green) !important; }
body.dv2 .strat .prod{ background:var(--sf-2) !important; color:var(--t-soft) !important; font-size:14px; }
body.dv2 .strat .prod strong{ color:var(--t-ink) !important; }
body.dv2 .strat-num small{ color:var(--muted) !important; }
body.dv2 .prize{ padding:14px 16px; }
body.dv2 .prize.top{ background:rgba(var(--gold-rgb),.18) !important; border-color:rgba(var(--gold-rgb),.5) !important; }
body.dv2 .prize-amt, body.dv2 .prize.top .prize-amt{ color:var(--t-gold) !important; background:none !important; -webkit-text-fill-color:currentColor !important; }
body.dv2 .prize-amt small{ color:var(--muted) !important; }
body.dv2 .prize-info h4{ font-size:16px; }

/* Day 29：警示卡／價格／清單 */
body.dv2 .alert-card{ background:rgba(var(--red-rgb),.10) !important; border:1px solid rgba(var(--red-rgb),.34) !important; border-radius:20px; }
body.dv2 .alert-card .ttl{ color:var(--t-red) !important; font-size:16.5px; }
body.dv2 .alert-card .desc{ color:var(--text) !important; font-size:15px; }
body.dv2 .now-card{ background:rgba(var(--green-rgb),.10) !important; border:1px solid rgba(var(--green-rgb),.34) !important; border-radius:20px; }
body.dv2 .now-card h4{ color:var(--t-green) !important; font-size:16px; }
body.dv2 .now-card p{ color:var(--text); font-size:15px; }
body.dv2 .price .name{ font-size:14px; }
body.dv2 .price-old{ color:var(--muted) !important; } body.dv2 .price-arr{ color:var(--orange) !important; } body.dv2 .price-new{ color:var(--t-gold) !important; }
body.dv2 .comp .ic{ background:#E8A020 !important; color:#0a2334 !important; }
body.dv2 .comp-co{ color:var(--t-gold) !important; font-size:12.5px; }
body.dv2 .comp .rate{ color:var(--t-gold) !important; }
body.dv2 .comp .rate small{ color:var(--muted) !important; }
body.dv2 .topic-pill{ min-height:48px; font-size:15px; }
body.dv2 .topic-pill .nn{ color:var(--t-gold) !important; }
body.dv2 .pdf-row .pdf-link{ background:rgba(var(--blue-rgb),.10) !important; border-color:rgba(var(--blue-rgb),.32) !important; }
body.dv2 .pdf-row .pdf-link .ic{ background:var(--acc) !important; color:var(--cat-on) !important; }

/* 內文行內寫死色 */
body.dv2 [style*="#ffb3bb"]{ color:var(--t-red) !important; }
body.dv2 [style*="#cdd6ff"]{ color:var(--t-blue) !important; }
body.dv2 [style*="#f5c97c"]{ color:var(--t-gold) !important; }
body.dv2 strong[style*="color:#fff"]{ color:var(--t-ink) !important; }

/* ---------- Day 1 簡報板 ---------- */
body.dv2 .card h2{ font-family:var(--dv-serif); font-size:17px; color:var(--t-ink); }
body.dv2 .card h2 .ico{ background:rgba(var(--acc-rgb),.14); color:var(--acc); width:32px; height:32px; border-radius:10px; }
body.dv2 .card h2 .ico.gold{ background:rgba(var(--gold-rgb),.2); color:var(--t-gold); }
body.dv2 .card h2 .ico.green{ background:rgba(var(--green-rgb),.16); color:var(--t-green); }
body.dv2 .card h2 .ico.violet{ background:rgba(var(--violet-rgb),.16); color:var(--t-violet); }
body.dv2 .card .tag{ color:var(--muted); font-size:13px; }
body.dv2 .announce .bar{ background:var(--acc); } body.dv2 .announce.imp .bar{ background:#E8A020; } body.dv2 .announce.warn .bar{ background:var(--t-red); }
body.dv2 .announce h3{ color:var(--t-ink); font-size:16px; }
body.dv2 .announce p{ font-size:14.5px; line-height:1.75; }
body.dv2 .kpi .num{ color:var(--t-ink); } body.dv2 .delta.up, body.dv2 .chg.up{ color:var(--t-green); } body.dv2 .delta.down, body.dv2 .chg.down{ color:var(--t-red); }
body.dv2 .progress{ background:var(--sf-2); } body.dv2 .progress > span{ background:linear-gradient(90deg,var(--acc),#E8A020); }
body.dv2 .market .val{ color:var(--t-ink); } body.dv2 .market .head-row .name, body.dv2 .market .head-row .val, body.dv2 .market .head-row .chg{ color:var(--muted); }
body.dv2 .event .time{ color:var(--t-gold); } body.dv2 .event .who{ background:rgba(var(--acc-rgb),.12); color:var(--t-soft); } body.dv2 .event .title{ color:var(--t-ink); }
body.dv2 .quote-card{ background:radial-gradient(circle at 85% 15%, rgba(232,160,32,.24), transparent 55%), linear-gradient(145deg,#0a2334,#154160) !important; border:0; padding:30px 22px; }
body.dv2 .quote-card blockquote{ color:#fff; font-family:var(--dv-serif); } body.dv2 .quote-card cite{ color:#E8A020; }
body.dv2 .home-link{ right:auto !important; left:max(14px, env(safe-area-inset-left)); bottom:calc(16px + env(safe-area-inset-bottom)) !important; min-height:48px; padding:0 18px !important; z-index:80; background:#0a2334 !important; color:#fff !important; border:1px solid rgba(232,160,32,.5); box-shadow:0 8px 22px rgba(10,35,52,.35) !important; backdrop-filter:none; }


/* ---------- 補強：大獎框、倒數框、重點條（原稿寫死 rgba 黑底的元件）---------- */
body.dv2 .big-prize{ background:linear-gradient(135deg, rgba(232,160,32,.20), rgba(232,160,32,.08)), var(--panel) !important; border:1px solid rgba(232,160,32,.55) !important; border-radius:20px; }
body.dv2 .bp-tag{ color:var(--t-gold) !important; font-size:13px; font-weight:800; }
body.dv2 .bp-amt{ font-family:var(--dv-serif) !important; color:var(--t-gold) !important; background:none !important; -webkit-text-fill-color:currentColor !important; }
body.dv2 .bp-desc{ color:var(--t-soft) !important; font-size:14px; }
body.dv2 .bp-period{ background:rgba(232,160,32,.22) !important; color:var(--t-gold) !important; font-size:13px; }
body.dv2 .cd-box, body.dv2 .countdown-90, body.dv2 .punch{ background:var(--sf-1) !important; border:1px solid rgba(232,160,32,.4) !important; }
body.dv2 .cd-num{ font-family:var(--dv-serif); color:var(--t-gold) !important; }
body.dv2 .hero .em{ color:var(--t-gold); }
/* 大數字統一襯線 */
body.dv2 .type-card .num, body.dv2 .prize-amt, body.dv2 .strat-num, body.dv2 .kpi .num, body.dv2 .price-new, body.dv2 .result .premium{ font-family:var(--dv-serif); }
/* 表格兜底 */
body.dv2 table{ border-collapse:collapse; max-width:100%; }
body.dv2 table th{ background:var(--sf-2); color:var(--muted); }
body.dv2 table td{ border-color:var(--line); }
body.dv2 .tbl-wrap, body.dv2 .vs-table-wrap, body.dv2 .schedule-table, body.dv2 .compare-table{ overflow-x:auto; -webkit-overflow-scrolling:touch; }


/* 回主頁（左下）：首屏不顯示（不蓋「今日重點」），往下捲才浮現；不支援 scroll-driven 的瀏覽器照常顯示 */
@supports (animation-timeline: scroll()){
  body.dv2 .home-link{ animation:dv-hl-in linear both; animation-timeline:scroll(root); animation-range:0 320px; }
  @keyframes dv-hl-in{ from{ opacity:0; pointer-events:none; transform:translateY(12px); } to{ opacity:1; pointer-events:auto; transform:none; } }
}


/* 網格／表單溢出兜底：1fr 欄遇到長 select／input 不撐破卡片 */
body.dv2 :is(.grid, [class*="-grid"], [class$="grid"], .row2, .calc-results) > *{ min-width:0; }
body.dv2 .field, body.dv2 .field .suffix{ min-width:0; max-width:100%; }
body.dv2 .field input, body.dv2 .field select, body.dv2 select#strat{ min-width:0; width:100%; max-width:100%; box-sizing:border-box; text-overflow:ellipsis; }
body.dv2 .pie::after{ background:var(--panel) !important; background-image:none !important; }


/* 橫向可捲的表格：兩側陰影提示（捲到頭自動消失）；窄螢幕先試著縮到塞得下 */
body.dv2 :is(.schedule-table, .tbl-wrap, .vs-table-wrap, .keep-table, .compare-table){
  background-color:var(--sf-1) !important; overflow-x:auto;
  background-image:linear-gradient(to right, var(--panel) 46%, rgba(0,0,0,0)), linear-gradient(to left, var(--panel) 46%, rgba(0,0,0,0)), linear-gradient(to right, rgba(10,35,52,.22), rgba(10,35,52,0)), linear-gradient(to left, rgba(10,35,52,.22), rgba(10,35,52,0)) !important;
  background-repeat:no-repeat !important; background-position:left center, right center, left center, right center !important;
  background-size:36px 100%, 36px 100%, 14px 100%, 14px 100% !important; background-attachment:local, local, scroll, scroll !important;
}
html[data-rex-theme="dark"] body.dv2 :is(.schedule-table, .tbl-wrap, .vs-table-wrap, .keep-table, .compare-table){
  background-image:linear-gradient(to right, var(--panel) 46%, rgba(0,0,0,0)), linear-gradient(to left, var(--panel) 46%, rgba(0,0,0,0)), linear-gradient(to right, rgba(232,160,32,.35), rgba(232,160,32,0)), linear-gradient(to left, rgba(232,160,32,.35), rgba(232,160,32,0)) !important;
}
@media(max-width:480px){
  body.dv2 table.sch, body.dv2 .schedule-table table{ min-width:0 !important; }
  body.dv2 table.sch th, body.dv2 table.sch td{ padding-left:5px !important; padding-right:5px !important; letter-spacing:0 !important; }
}

/* ---------- 前後篇導覽與頁尾 ---------- */
body.dv2 .dv-next{ display:flex; align-items:center; gap:14px; margin:6px 0 12px; padding:16px 16px 16px 20px; min-height:76px; border-radius:22px; text-decoration:none; position:relative; overflow:hidden; background:var(--panel); border:1px solid var(--line); box-shadow:var(--shadow); color:var(--text); }
body.dv2 .dv-next::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:7px; background:#E8A020; }
body.dv2 .dv-next-k, body.dv2 .dv-next-t{ display:block; }
body.dv2 .dv-next{ flex-wrap:wrap; }
body.dv2 .dv-next .dv-next-k{ flex:1 1 100%; font-size:13px; font-weight:800; letter-spacing:.06em; color:var(--acc); margin-bottom:-8px; }
body.dv2 .dv-next .dv-next-t{ font-family:var(--dv-serif); flex:1 1 0; min-width:0; font-size:17px; font-weight:800; line-height:1.45; color:var(--t-ink); }
body.dv2 .dv-next svg{ flex:none; width:40px; height:40px; padding:10px; border-radius:50%; background:#E8A020; color:#0a2334; }
body.dv2 .day-nav{ gap:10px; margin-bottom:14px; }
body.dv2 .day-nav a{ min-height:52px; padding:12px 16px; font-size:14.5px; border-radius:18px; color:var(--t-soft) !important; }
body.dv2 .day-nav .home, body.dv2 .day-nav a.home{ background:rgba(var(--acc-rgb),.12) !important; border-color:rgba(var(--acc-rgb),.32) !important; color:var(--acc) !important; font-weight:700; }
body.dv2 .day-nav .home:hover{ background:rgba(var(--acc-rgb),.2) !important; color:var(--acc) !important; }
body.dv2 .signoff{ border-top:1px solid var(--line); font-size:14.5px; }
body.dv2 .signoff strong{ color:var(--t-ink); }
body.dv2 .foot{ color:var(--muted) !important; font-size:13px; }
body.dv2 .foot a{ color:var(--acc); }
body.dv2 a{ -webkit-tap-highlight-color:transparent; }

/* ---------- 互動層元件 ---------- */
body.dv2 #dv-progress{ position:fixed; left:0; top:0; right:0; width:auto; height:3px; z-index:90; transform:scaleX(0); transform-origin:left center; background:linear-gradient(90deg,#E8A020,var(--acc)); pointer-events:none; }
body.dv2 .dv-fabs{ position:fixed; right:max(14px, env(safe-area-inset-right)); bottom:max(16px, env(safe-area-inset-bottom)); z-index:80; display:flex; flex-direction:column; align-items:flex-end; gap:10px; opacity:0; transform:translateY(16px); pointer-events:none; transition:opacity .2s ease, transform .2s ease; }
body.dv2 .dv-fabs.show{ opacity:1; transform:none; pointer-events:auto; }
body.dv2 .dv-fab{ display:inline-flex; align-items:center; justify-content:center; gap:8px; min-width:52px; min-height:52px; border-radius:26px; border:0; cursor:pointer; font:inherit; font-size:15px; font-weight:800; box-shadow:0 8px 22px rgba(10,35,52,.30); -webkit-tap-highlight-color:transparent; }
body.dv2 .dv-fab-share{ padding:0 20px 0 16px; background:#E8A020; color:#0a2334; }
body.dv2 .dv-top{ background:#0a2334; color:#fff; border:1px solid rgba(232,160,32,.5); }
html[data-rex-theme="dark"] body.dv2 .dv-top{ background:#1b3a54; }
body.dv2 .dv-modal{ position:fixed; inset:0; z-index:1000; display:none; align-items:flex-end; justify-content:center; background:rgba(5,15,25,.62); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); }
body.dv2 .dv-modal.open{ display:flex; }
body.dv2 .dv-modal-card{ width:100%; max-width:480px; max-height:94vh; max-height:94dvh; overflow-y:auto; background:var(--panel); color:var(--text); border-radius:30px 30px 0 0; padding:20px 18px max(20px, env(safe-area-inset-bottom)); box-shadow:0 -12px 40px rgba(0,0,0,.35); }
@media(min-width:640px){ body.dv2 .dv-modal{ align-items:center; } body.dv2 .dv-modal-card{ border-radius:30px; padding:24px; } }
body.dv2 .dv-modal-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
body.dv2 .dv-modal-head b{ font-size:19px; font-weight:800; color:var(--t-ink); }
body.dv2 .dv-x{ display:inline-grid; place-items:center; width:44px; height:44px; border-radius:50%; border:0; background:var(--sf-2); color:var(--text); cursor:pointer; }
body.dv2 .dv-modal-note{ margin:0 0 12px; padding:10px 14px; border-radius:14px; background:rgba(var(--gold-rgb),.16); border:1px solid rgba(var(--gold-rgb),.4); color:var(--t-gold); font-size:14.5px; line-height:1.7; }
body.dv2 .dv-modal-pv{ display:flex; justify-content:center; margin-bottom:12px; }
body.dv2 .dv-modal-pv canvas, body.dv2 .dv-modal-pv img{ display:block; width:100%; max-width:340px; height:auto; border-radius:18px; box-shadow:0 8px 24px rgba(10,35,52,.25); }
body.dv2 .dv-modal-tip{ margin:0 0 12px; font-size:14.5px; color:var(--muted); text-align:center; }
body.dv2 .dv-modal-acts{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
body.dv2 .dv-modal-acts .dv-btn{ padding:0 10px; font-size:15px; }
body.dv2 .dv-modal-acts .dv-btn-share{ grid-column:1 / -1; }
body.dv2 .dv-modal [hidden]{ display:none !important; }
body.dv-lock{ overflow:hidden; }
body.dv2 #dv-toast{ position:fixed; left:50%; bottom:calc(148px + env(safe-area-inset-bottom)); z-index:1100; transform:translate(-50%,16px); opacity:0; pointer-events:none; padding:12px 20px; border-radius:999px; background:#0a2334; color:#fff; border:1px solid rgba(232,160,32,.5); font-size:15px; font-weight:600; box-shadow:0 10px 28px rgba(0,0,0,.35); transition:opacity .2s ease, transform .2s ease; max-width:calc(100vw - 32px); text-align:center; }
body.dv2 #dv-toast.show{ opacity:1; transform:translate(-50%,0); }

/* 手機窄寬修正 */
@media(max-width:480px){
  body.dv2 .type-grid{ grid-template-columns:repeat(2,1fr); }
  body.dv2 .dv-brief-p{ font-size:16.5px; }
  body.dv2 .bt-body, body.dv2 .bt-head{ padding-left:14px; padding-right:14px; }
  body.dv2 .comp{ grid-template-columns:44px 1fr; } body.dv2 .comp .rate{ grid-column:2; text-align:left; }
  body.dv2 .prize{ grid-template-columns:44px 1fr auto; gap:10px; }
  body.dv2 .market{ gap:6px 10px; }
  body.dv2 .event{ grid-template-columns:54px 1fr; } body.dv2 .event .who{ grid-column:2; justify-self:start; }
}
body.dv2 img, body.dv2 svg, body.dv2 canvas, body.dv2 video{ max-width:100%; }
body.dv2 .section, body.dv2 .card, body.dv2 .callout, body.dv2 .action, body.dv2 .q-item{ overflow-wrap:anywhere; }

/* ---------- 動態與列印 ---------- */
@media (prefers-reduced-motion: reduce){
  body.dv2 *, body.dv2 *::before, body.dv2 *::after{ animation-duration:.01ms !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
  body.dv2 .dv-fabs, body.dv2 #dv-toast{ transform:none !important; }
}
@media print{
  body.dv2 .dv-fabs, body.dv2 .dv-modal, body.dv2 #dv-toast, body.dv2 #dv-progress, body.dv2 .dv-hero-actions, body.dv2 .home-link{ display:none !important; }
  body.dv2{ background:#fff !important; }
  body.dv2 .dv-brief{ background:#fff !important; color:#000 !important; box-shadow:none !important; border:1px solid #999; }
  body.dv2 .dv-brief *{ color:#000 !important; background:none !important; }
  body.dv2 .section, body.dv2 .card, body.dv2 .hero{ box-shadow:none !important; break-inside:avoid; }
}

html[data-rex-theme="dark"] body.dv2 .dv-modal-pv canvas, html[data-rex-theme="dark"] body.dv2 .dv-modal-pv img{ box-shadow:0 0 0 1px rgba(232,160,32,.55), 0 8px 24px rgba(0,0,0,.45); }

/* ========== 批次回報收斂（2026-10-18，各頁共通缺漏收進核心，未來新內容一併適用）========== */
/* 寫死「漸層＋深色字」的小徽章／按鈕：淺色＝深藍底白字、深色＝金底深藍字；複製鈕兩邊都用金 */
html:not([data-rex-theme="dark"]) body.dv2 :is(.step .n, .adv .n, .reason .n, .ribbon, .formula .res, .fee-eq .res){
  background:#0a2334 !important; background-image:none !important; color:#fff !important; -webkit-text-fill-color:#fff !important; }
html[data-rex-theme="dark"] body.dv2 :is(.step .n, .adv .n, .reason .n, .ribbon, .formula .res, .fee-eq .res){
  background:var(--gold-fill) !important; background-image:none !important; color:var(--gold-on) !important; -webkit-text-fill-color:var(--gold-on) !important; }
body.dv2 .copy-btn{ background:var(--gold-fill) !important; background-image:none !important; color:var(--gold-on) !important; -webkit-text-fill-color:var(--gold-on) !important; min-height:40px; }
/* 淺色：提醒塊與行動卡翻淺底 */
html:not([data-rex-theme="dark"]) body.dv2 .tip{ background:#fdf3dc !important; background-image:none !important; border-color:rgba(232,160,32,.5) !important; }
html:not([data-rex-theme="dark"]) body.dv2 .tip .ttl{ color:#6b4300 !important; }
html:not([data-rex-theme="dark"]) body.dv2 .tip .desc{ color:#3b3320 !important; }
html:not([data-rex-theme="dark"]) body.dv2 .action-card{ background:#e8f5ee !important; background-image:none !important; border-color:rgba(31,122,77,.35) !important; }
html:not([data-rex-theme="dark"]) body.dv2 .alert-banner{ background:rgba(var(--red-rgb),.08) !important; background-image:none !important; border-color:rgba(var(--red-rgb),.30) !important; }
body.dv2 .result .target{ background:transparent !important; }
/* 寫死深色漸層底的橫幅卡：淺色也維持深藍卡＋亮字（品牌卡） */
html:not([data-rex-theme="dark"]) body.dv2 :is(.product-hero, .activity-hero, .quote-card){
  background:linear-gradient(135deg,#0a2334,#143a5c) !important; border-color:rgba(232,160,32,.45) !important; color:#f3ecdc !important; }
html:not([data-rex-theme="dark"]) body.dv2 :is(.product-hero, .activity-hero, .quote-card) :is(h1,h2,h3,h4,p,div,span,strong,li):not(.dv-btn *){
  color:#f3ecdc !important; -webkit-text-fill-color:#f3ecdc !important; }
html:not([data-rex-theme="dark"]) body.dv2 :is(.product-hero, .activity-hero, .quote-card) :is(.em, strong){ color:#f4c36a !important; -webkit-text-fill-color:#f4c36a !important; }
/* 表格沒溢位時不畫兩側陰影帶 */
body.dv2 :is(.schedule-table, .tbl-wrap, .vs-table-wrap, .keep-table, .compare-table){ background-color:transparent !important; }
/* 話術框上緣的 💬／🎤 缺口標籤：改成圓角細框小膠囊（原稿是無框色塊，淺色像白塊、深色像黑塊） */
body.dv2 .script-box::before{ top:-15px; left:16px; padding:3px 9px; line-height:1; border-radius:999px; border:1px solid rgba(var(--green-rgb),.32); font-size:15px; background:var(--panel) !important; }
/* 原稿 html,body{height:100%} 會讓底部預留空間失效（浮動鈕蓋頁尾）→ 一律改自然高度 */
body.dv2{ height:auto !important; min-height:100%; }
html:has(body.dv2){ height:auto !important; }

/* ========== 插圖（2026-10-19 ChatGPT 第一批：D1～D5 分類插圖）==========
 * 依 body.dv2-cat-<分類> 自動套用；之後每天的新文章只要分類對就有圖，不用改任何頁。
 * 裝飾用途，以 CSS 背景呈現（不進無障礙樹）；透明 PNG→WebP 保留 alpha，淺深底共用一張。 */
body.dv2 .hero > *{ position:relative; z-index:1; }
body.dv2 .hero::after{ content:"" !important; display:block !important; position:absolute; z-index:0; pointer-events:none;
  right:-18px; top:18px; width:150px; height:150px; opacity:.16; filter:none !important;
  background:no-repeat center/contain !important; }
body.dv2-cat-system .hero::after{ background-image:url(art/system.webp) !important; }
body.dv2-cat-law .hero::after{ background-image:url(art/law.webp) !important; }
body.dv2-cat-doc .hero::after{ background-image:url(art/doc.webp) !important; }
body.dv2-cat-product .hero::after{ background-image:url(art/product.webp) !important; }
body.dv2-cat-kpi .hero::after{ background-image:url(art/kpi.webp) !important; }
@media(min-width:760px){
  body.dv2 .hero{ padding-right:230px !important; }
  body.dv2 .hero::after{ right:26px; top:34px; width:190px; height:190px; opacity:1; }
}
@media print{ body.dv2 .hero::after{ display:none !important; } }

/* ========== 插圖第二批（2026-10-20 完整 18 張）：角花、重點卡底紋、法規徽章、段落小圖示 ========== */
/* D14 今日卡右上角花（裝飾，淺深共用；跟分類插圖疊在同一角） */
body.dv2 .hero{ background-image:url(art/corner.webp), linear-gradient(180deg, rgba(232,160,32,.10), rgba(232,160,32,0) 160px) !important;
  background-repeat:no-repeat, no-repeat !important; background-position:right 6px top 6px, 0 0 !important; background-size:120px auto, auto !important; }
@media(min-width:760px){ body.dv2 .hero{ background-size:170px auto, auto !important; } }
/* D10 「3 秒看重點」深色卡底紋（右側金色細線，左側留給文字） */
body.dv2 .dv-brief, html[data-rex-theme="dark"] body.dv2 .dv-brief{ background:linear-gradient(90deg, rgba(10,35,52,.94) 0%, rgba(10,35,52,.82) 55%, rgba(10,35,52,.30) 100%), #0a2334 url(art/brief-bg.webp) no-repeat right center/cover !important; }
/* D11 法規小欄徽章（右上） */
body.dv2 .dv-legal{ padding-top:60px !important; }
body.dv2 .dv-legal::after{ content:""; position:absolute; top:8px; right:12px; width:46px; height:46px; pointer-events:none;
  background:url(art/legal-badge.webp) no-repeat center/contain; filter:drop-shadow(0 2px 6px rgba(10,35,52,.18)); }
/* D13 段落小圖示：用在互動層自己的標題（原稿文字與 emoji 不動） */
body.dv2 .dv-brief-k::before{ content:"" !important; width:18px; height:18px; background:url(art/icons/D13-08_lightbulb.webp) no-repeat center/contain; }
body.dv2 .dv-toc-k::before{ content:""; display:inline-block; width:16px; height:16px; margin-right:6px; vertical-align:-3px; background:url(art/icons/D13-02_checklist.webp) no-repeat center/contain; }
body.dv2 .dv-next-k::before{ content:""; display:inline-block; width:16px; height:16px; margin-right:6px; vertical-align:-3px; background:url(art/icons/D13-03_document.webp) no-repeat center/contain; }
/* D8 分類小圖示：取代分類小色點 */
body.dv2 .dv-cat::before{ width:15px !important; height:15px !important; border-radius:0 !important; background:no-repeat center/contain !important; }
body.dv2 .dv-cat-system::before{ background-image:url(art/icons/D8-01_gear.webp) !important; }
body.dv2 .dv-cat-law::before{ background-image:url(art/icons/D8-02_scales.webp) !important; }
body.dv2 .dv-cat-doc::before{ background-image:url(art/icons/D8-03_folder.webp) !important; }
body.dv2 .dv-cat-product::before{ background-image:url(art/icons/D8-04_umbrella.webp) !important; }
body.dv2 .dv-cat-kpi::before{ background-image:url(art/icons/D8-05_trophy.webp) !important; }
@media print{ body.dv2 .dv-legal::after{ display:none; } body.dv2 .hero{ background-image:none !important; } }
