
/* ── P1 token（2026-09-14 設計精修 v2）：色 10 個、字階 8 級、行高 4 種、圓角 3 種、陰影 1 種；元件只能從這裡取值 ── */
/* 2026-09-27 使用者選定「方向 C 深藍・金」（取代 9/15 的石墨與電光藍）：墨＝深藍 #0F1B33、點綴＝黃銅；
   --link＝墨色（可點提示改方案二：整列可點＋右側箭頭，不再用藍字）；--tint＝象牙色面板；--brass＝黃銅按鈕底、--onbrass＝其上文字；
   --band＝頁首與頁尾的深藍帶（兩種主題都是深藍）；--acc＝深黃銅文字（淺色主題對白底 5.2:1）。 */
:root{--paper:#FFFFFF;--card:#FFFFFF;--tint:#F6F4EF;--ink:#0F1B33;--ink2:#3C4558;--mute:#626A7E;--hair:#E3DED4;--hair2:#EEEBE4;
--acc:#8A6632;--onacc:#FFFFFF;--link:var(--ink);--linksoft:var(--tint);--acc2:color-mix(in srgb,var(--acc) 86%,var(--ink));--accsoft:color-mix(in srgb,var(--acc) 8%,var(--card));
--brass:#B58D55;--brass2:#C39B62;--onbrass:#0F1B33;--brasslt:#CDA86F;
--band:#0F1B33;--bandink:#FFFFFF;--bandmute:color-mix(in srgb,var(--bandink) 62%,var(--band));
--up:#B5352A;--dn:#1A7354;--warn:#8F6512;--ok:var(--dn);--bad:var(--up);
--brandserif:"Source Serif 4","Noto Serif TC",Georgia,"Songti TC","Noto Serif CJK TC","PMingLiU",serif;
/* 2026-09-30 使用者「字體請統一」：全站文字改同一套無襯線（標題、內文、卡片）；襯線只留給刊頭與頁尾的 AHI Journal 字標（--brandserif） */
--serif:var(--ui);--display:var(--serif);--disp:var(--serif);--zh:var(--serif);
--ui:"IBM Plex Sans","Noto Sans TC","PingFang TC","Microsoft JhengHei","Noto Sans CJK TC","Helvetica Neue",Arial,sans-serif;--mono:"IBM Plex Sans","Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;
/* 2026-09-15 使用者「字體大小調整失靈」：字階改 rem（A-/A/A+ 只改 html 的 font-size，px 字階不會跟著動）；「內文間距開一點」：內文行高 1.85 */
--fs-note:.8125rem;--fs-12:.875rem;--fs-14:1rem;--fs-16:1.0625rem;--fs-18:1.25rem;--fs-22:1.375rem;--fs-28:1.75rem;--fs-36:2.25rem;--fs-48:3rem;
--lh-h:1.15;--lh-c:1.3;--lh-b:1.6;--lh-ui:1.4;--lh-read:1.85;
--sh:0 1px 2px rgba(15,27,51,.05),0 12px 32px rgba(15,27,51,.09);--r:3px;--rb:3px;--max:1040px}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--paper:#0A1120;--card:#0F1829;--tint:#141F35;--ink:#EDE8DE;--ink2:#C3C7D1;--mute:#8E96A8;--hair:#233049;--hair2:#1A253B;
--link:var(--ink);--linksoft:var(--tint);--acc:#D4B07A;--onacc:#0A1120;--brass:#C9A46C;--brass2:#D6B27B;--onbrass:#0A1120;--brasslt:#D4B07A;
--band:#0F1A31;--bandink:#F3EFE7;--up:#FF6F61;--dn:#45C997;--warn:#E0B04A;--sh:0 12px 32px rgba(0,0,0,.5)}}
:root[data-theme="dark"]{--paper:#0A1120;--card:#0F1829;--tint:#141F35;--ink:#EDE8DE;--ink2:#C3C7D1;--mute:#8E96A8;--hair:#233049;--hair2:#1A253B;
--link:var(--ink);--linksoft:var(--tint);--acc:#D4B07A;--onacc:#0A1120;--brass:#C9A46C;--brass2:#D6B27B;--onbrass:#0A1120;--brasslt:#D4B07A;
--band:#0F1A31;--bandink:#F3EFE7;--up:#FF6F61;--dn:#45C997;--warn:#E0B04A;--sh:0 12px 32px rgba(0,0,0,.5)}
*{box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--ui);font-size:var(--fs-16);line-height:var(--lh-b);-webkit-font-smoothing:antialiased}
/* bilingual toggle：預設顯示中文，[data-lang="en"] 時互換；.bi- 前綴避免撞到既有的 "eyebrow zh" 等純語意 class。
   隱藏側用 :not()+!important——元件層規則（.lights a{display:flex}、要聞速覽的 b{display:block}）特異性高於 .bi-en，
   不加會把英文半邊強制顯示出來、造成中英並陳；顯示側刻意不設 display，讓元件自己的版面規則生效。 */
[hidden]{display:none!important}
html:not([data-lang="en"]) .bi-en{display:none!important}
html[data-lang="en"] .bi-zh{display:none!important}
html[data-lang="en"] .bi-en.blk{display:block}
.chip{font-family:var(--ui);font-size:var(--fs-12);font-weight:500;background:var(--card);border:1px solid var(--hair);border-radius:999px;color:var(--ink2);padding:5px 12px;cursor:pointer;transition:border-color .15s,color .15s;line-height:1.4}
.chip:hover{border-color:var(--ink);color:var(--ink)}
a{color:inherit;text-decoration:none;transition:color .15s}a:hover{color:var(--acc)}
:focus-visible{outline:2px solid var(--acc);outline-offset:3px}
/* 跳到主要內容（2026-09-11）：純鍵盤／螢幕報讀器使用者的第一個可聚焦元素，平時挪到畫面外，
   Tab 聚焦時才浮出——不影響滑鼠讀者的版面。 */
.skip-link{position:absolute;left:-9999px;top:0;background:var(--acc);color:var(--onacc);padding:10px 18px;
z-index:200;border-radius:0;font-family:var(--ui);font-size:var(--fs-14)}
.skip-link:focus{left:0}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}
.ui{font-family:var(--ui)}.disp{font-family:var(--disp)}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
/* top bar + masthead */
.util{display:flex;justify-content:space-between;align-items:center;gap:16px;font-family:var(--ui);font-size:var(--fs-12);color:var(--mute);padding:12px 0;border-bottom:1px solid var(--hair2)}
.util .r{display:flex;gap:10px;align-items:center}
/* 2026-09-15 首頁重排 H1：工具列併入刊頭右側（.masthead .util）；行情條改最上方深色細條（全出血、內容對齊版心；兩種主題各一組 --st-*） */
.masthead .util{flex:1 1 auto;min-width:0;justify-content:flex-end;gap:14px;padding:0;border-bottom:0}
.masthead .util>span:first-child{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;gap:10px;align-items:center}
@media (max-width:1100px){.masthead .util .md-upd{display:none}}
@media (max-width:760px){.masthead .util>span:first-child{display:none}}
/* 手機：刊頭換成兩行（字標一行、按鈕一行）。用 html body 起頭——同權重時後面的 .masthead{height:56px} 會蓋掉這裡，按鈕就溢出到選單列底下被擋住（2026-09-15 使用者「標誌跟頁首擋住了」） */
@media (max-width:560px){html body .masthead{height:auto;min-height:52px;flex-wrap:wrap;gap:6px 10px;padding:8px 0}html body .masthead .util{padding:0;flex-wrap:nowrap}
 html body .masthead .util .r{width:auto;justify-content:flex-end;gap:6px;flex-wrap:nowrap}html body .masthead .util .r>*{min-height:34px}
 html body .masthead .util .r .chip{padding:6px 9px}html body .masthead .util .btn.sm{padding:6px 10px;min-height:34px}html body .tickw .tick{padding:0 16px}}
:root{--st-bg:#0A1428;--st-fg:#F1EDE4;--st-mute:#95A0B5;--st-line:#1E2B45;--st-up:#FF7A6E;--st-dn:#4FD1A0}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--st-bg:#070D1A;--st-fg:#ECE7DC;--st-mute:#8791A4;--st-line:#1B2640;--st-up:#FF6F61;--st-dn:#45C997}}
:root[data-theme="dark"]{--st-bg:#070D1A;--st-fg:#ECE7DC;--st-mute:#8791A4;--st-line:#1B2640;--st-up:#FF6F61;--st-dn:#45C997}
.tickw{margin:0 calc(50% - 50vw);background:var(--st-bg)}
.tickw .tick{max-width:var(--max);margin:0 auto;padding:0 24px;border-bottom:0}
.tickw .ti{border-right-color:var(--st-line)}.tickw .ti b{color:var(--st-mute)}.tickw .ti i{color:var(--st-fg)}
.tickw .ti u.up{color:var(--st-up)}.tickw .ti u.dn{color:var(--st-dn)}.tickw .ti u.flat{color:var(--st-mute)}
.tickw .tickx{background:var(--st-bg);color:var(--st-mute)}.tickw .tickx:hover{color:var(--st-fg)}
/* P8（2026-09-14）：報頭固定 56px＋髮線；首頁保留標語，內頁 .masthead.inner 不顯示標語 */
.masthead{display:flex;justify-content:space-between;align-items:center;gap:24px;height:56px;padding:0;border-bottom:1px solid var(--hair)}
.brand{font-family:var(--brandserif);font-weight:700;font-size:var(--fs-22);line-height:1;letter-spacing:-.01em;margin:0}
.brand em{font-style:normal;font-weight:400;color:var(--acc)}
.brand a:hover{color:inherit}
.tagline{font-family:var(--ui);font-size:var(--fs-12);color:var(--mute);text-align:right;max-width:52ch;line-height:var(--lh-ui)}
.masthead.inner .tagline{display:none}
nav.main{display:flex;gap:20px;align-items:center;font-family:var(--ui);font-size:var(--fs-14);line-height:var(--lh-ui);font-weight:500;padding:12px 0;border-bottom:1px solid var(--hair2);position:sticky;top:0;background:var(--paper);z-index:5}
/* 行情條：報頭下方常駐一列市場快照，讀者不必進到某一頁才知道盤面。
   2026-09-10 使用者指定改回持續跑動的跑馬燈（先前一度改成靜態橫向捲動，
   使用者當天稍晚要求恢復移動）——.tickin 放兩份一樣的內容，CSS 位移 -50%
   做無縫循環；第二份用 aria-hidden 蓋掉，螢幕報讀器只念一次。滑鼠移入暫停，
   偏好減少動態的使用者（prefers-reduced-motion）則直接停用動畫、退回可橫向捲動。 */
.tick{border-bottom:1px solid var(--hair2);overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 28px,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,transparent,#000 28px,#000 calc(100% - 28px),transparent)}
.tickin{display:flex;gap:0;white-space:nowrap;width:max-content;padding:6px 0;animation:tickscroll 50s linear infinite}
.tick:hover .tickin,.tick:focus-within .tickin{animation-play-state:paused}
@keyframes tickscroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.ti{display:inline-flex;align-items:baseline;gap:7px;padding:0 16px;border-right:1px solid var(--hair2);font-family:var(--mono);font-size:var(--fs-12);line-height:var(--lh-ui)}
.ti:last-child{border-right:0}
.ti b{font-family:var(--ui);font-weight:600;color:var(--ink2);letter-spacing:.01em}
.ti i{font-style:normal;color:var(--ink);font-variant-numeric:tabular-nums}
.ti u{text-decoration:none;font-variant-numeric:tabular-nums}
.ti u.up{color:var(--up)}.ti u.dn{color:var(--dn)}.ti u.flat{color:var(--mute)}
@media (max-width:560px){.ti{padding:0 12px}}
/* 行情帶可關閉（P8）：×鈕在右緣（蓋在漸層淡出區上），關掉記 localStorage ahi-tick=0，site_modern.head_meta 在 <head> 早期套 html.tick-off */
.tickw{position:relative}
.tickx{position:absolute;right:0;top:0;height:100%;width:28px;border:0;background:var(--paper);color:var(--mute);font:400 var(--fs-14)/1 var(--ui);cursor:pointer;padding:0;line-height:1}
.tickx:hover{color:var(--ink)}
html.tick-off .tickw{display:none}
@media (prefers-reduced-motion:reduce){.tick{overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;-webkit-mask-image:none;mask-image:none}.tick::-webkit-scrollbar{display:none}.tickin{animation:none;min-width:max-content}.tickin .tickdupe{display:none}}
nav.main a{position:relative;padding:4px 0;color:var(--ink2);white-space:nowrap}
nav.main a:after{content:"";position:absolute;left:0;bottom:-2px;height:2px;width:0;background:var(--acc);transition:width .22s ease}
nav.main a:hover:after,nav.main a.on:after{width:100%}nav.main a.on{color:var(--ink)}nav.main .spacer{flex:1}
.navtog{display:none}.navlist{display:contents}
.navvip{display:inline-block;font:700 var(--fs-12)/1 var(--ui);letter-spacing:.08em;padding:2px 6px 1px;border-radius:999px;background:var(--acc);color:var(--onacc);margin-left:5px;vertical-align:.15em}
/* 內頁（文章、欄目）的報頭縮到比文章標題小：讀者進到一篇文章，最大的字應該是那篇的標題 */
.masthead.inner .brand{font-size:var(--fs-22)}
.btn{display:inline-flex;align-items:center;gap:8px;background:var(--acc);color:var(--onacc);font-family:var(--ui);font-size:var(--fs-14);line-height:var(--lh-ui);font-weight:500;min-height:36px;padding:8px 16px;border-radius:var(--rb);border:1px solid var(--acc);transition:background .15s,border-color .15s,color .15s;cursor:pointer}
.btn:hover{background:var(--acc2);border-color:var(--acc2);color:#fff}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--hair)}.btn.ghost:hover{border-color:var(--ink);color:var(--ink)}
.btn.sm{padding:6px 12px;font-size:var(--fs-12)}
/* ticker */
.ticker{border-bottom:1px solid var(--hair2);overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 40px,#000 calc(100% - 40px),transparent);mask-image:linear-gradient(90deg,transparent,#000 40px,#000 calc(100% - 40px),transparent)}
.ticker .track{display:flex;width:max-content}
.tk{display:flex;gap:10px;align-items:baseline;padding:10px 22px;border-right:1px solid var(--hair2);font-family:var(--ui);font-size:var(--fs-12);color:var(--mute);white-space:nowrap}
.tk .v{font-family:var(--mono);font-size:var(--fs-14);color:var(--ink);font-weight:500;font-variant-numeric:tabular-nums}
.tk .c{font-family:var(--mono);font-size:var(--fs-12);font-variant-numeric:tabular-nums}
@media (prefers-reduced-motion:reduce){.ticker .track{flex-wrap:wrap;width:auto}}
.up{color:var(--up)}.dn{color:var(--dn)}
/* layout */
.hero{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:40px;padding:32px 0 24px;align-items:start}
/* grid 子項預設 min-width:auto，內容（表格、晶片列）寬過欄位時會把整欄撐開，
   在手機上就變成整頁橫捲——實測 375px 視窗被撐到 536px。單欄那一段沒有 minmax 保護，補在這裡。 */
.hero>*{min-width:0}
/* 首頁與常設欄目頭圖（2026-09-10 起）：唯一允許的「非圖表」影像——版式仍是細線＋留白，
   不做滿版背景圖，圖說一律附授權出處（多數 Wikimedia Commons 圖片為 CC BY，出處連結即履行標示義務）。 */
.wn .wnmore{font-family:var(--ui);font-size:var(--fs-12);color:var(--acc);white-space:nowrap;margin-left:4px}
.heroimg{margin:18px 0 24px;border:0}
.heroimg img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:var(--r)}
.heroimg figcaption{font-family:var(--ui);font-size:var(--fs-12);color:var(--mute);padding:8px 2px 0;line-height:1.5}
.heroimg figcaption a{color:var(--mute);border-bottom:1px dotted var(--hair)}
.heroimg figcaption a:hover{color:var(--acc);border-color:var(--acc)}
@media (min-width:961px){.hero>.aside{position:sticky;top:74px;max-height:calc(100vh - 90px);overflow:auto;scrollbar-width:thin}}
.eyebrow{font-family:var(--ui);font-size:var(--fs-12);letter-spacing:.16em;text-transform:uppercase;color:var(--acc);margin:0 0 12px;font-weight:600}
.eyebrow.zh{letter-spacing:.12em}
h1.head{font-family:var(--serif);font-weight:700;font-size:var(--fs-36);line-height:var(--lh-h);letter-spacing:-.01em;margin:0 0 14px;text-wrap:balance}
h2.head{font-family:var(--serif);font-weight:700;font-size:var(--fs-28);line-height:var(--lh-h);letter-spacing:-.01em;margin:0 0 10px;text-wrap:balance}
.deck{font-family:var(--serif);font-size:var(--fs-18);line-height:var(--lh-b);color:var(--ink2);margin:0 0 18px;max-width:680px}
.body p{margin:0 0 1.35em;max-width:680px;font-size:var(--fs-16);line-height:var(--lh-read)}
.body h2,.body h3{margin-top:2em}.body li{line-height:var(--lh-read)}
.body p.drop::first-letter{font-family:var(--zh);font-weight:700;font-size:3em;float:left;line-height:.85;padding:6px 10px 0 0;color:var(--acc)}
.body h3{font-family:var(--serif);font-weight:700;font-size:var(--fs-22);line-height:var(--lh-c);margin:32px 0 12px;max-width:680px}
.body h3:first-child{margin-top:0}
.pq{font-family:var(--serif);font-weight:600;font-size:var(--fs-22);line-height:var(--lh-c);max-width:680px;margin:24px 0 28px;padding-left:18px;border-left:3px solid var(--acc)}
.meta{font-family:var(--ui);font-size:var(--fs-12);color:var(--mute);display:flex;gap:14px;flex-wrap:wrap;margin:0 0 20px}
/* free-tier closing note */
.more{max-width:680px;margin:24px 0 8px;padding:4px 0 4px 20px;border-left:3px solid var(--acc);background:transparent;border-radius:0}
.more p{margin:0 0 10px;font-size:var(--fs-16);color:var(--ink2)}.more p:last-child{margin:0}
/* aside */
.blk{border-top:1px solid var(--ink);padding-top:10px;margin-bottom:32px}
.blk h4{font-family:var(--ui);font-size:var(--fs-12);letter-spacing:.05em;margin:0 0 10px;color:var(--ink);font-weight:600}
.blk h4 span{letter-spacing:.08em;color:var(--mute);font-weight:400;margin-left:8px;text-transform:none}
.risk{display:flex;flex-direction:column;gap:6px}
.risk>div{display:grid;grid-template-columns:4px 1fr;gap:12px;padding:8px 0;border-bottom:1px solid var(--hair2)}
.risk>div>i{display:block;border-radius:0}
.risk .axis{font-family:var(--ui);font-size:var(--fs-12);letter-spacing:.05em;color:var(--mute)}
.risk .note{font-size:var(--fs-14);line-height:1.5}
.l綠{background:var(--ok)}.l黃{background:var(--warn)}.l紅{background:var(--bad)}
/* 2026-09-15 首頁首屏：風險燈號（含一句說明）與要聞速覽並排 */
.hp-side{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:0 28px;margin:6px 0 4px}
.hp-side .blk{margin-bottom:18px}
.risk.brief>div{padding:6px 0}.risk.brief .note{font-size:var(--fs-14);color:var(--ink2);line-height:1.5}
@media (max-width:760px){.hp-side{grid-template-columns:minmax(0,1fr)}}
.lights{display:flex;flex-wrap:wrap;gap:8px 14px}
.lights span,.lights a{display:inline-flex;align-items:center;gap:6px;font-family:var(--ui);font-size:var(--fs-12);color:var(--ink2)}
.lights a{border-bottom:1px dotted var(--hair);padding-bottom:1px;transition:border-color .15s}
.lights a:hover{border-color:var(--acc)}
.lights i{width:8px;height:8px;border-radius:999px;display:inline-block}
.blk h4 .hint,.blk h4 a.hint{letter-spacing:.08em;color:var(--mute);font-weight:400;margin-left:8px;text-transform:none;font-size:var(--fs-12)}
.blk h4 a.hint:hover{color:var(--acc)}
.wn p{margin:0;padding:10px 0;border-bottom:1px solid var(--hair2);font-size:var(--fs-14);line-height:1.55}
.wn b{font-family:var(--serif);font-weight:600;display:block;font-size:var(--fs-16);line-height:var(--lh-c);margin-bottom:2px}
.wn a.wnhead{display:block}
.wn a.wnhead:hover b{color:var(--acc)}
.wn .grp{font-family:var(--ui);font-size:var(--fs-12);letter-spacing:.14em;color:var(--acc);margin:14px 0 2px;text-transform:uppercase}
.cal p{margin:0;padding:6px 0;border-bottom:1px solid var(--hair2);font-size:var(--fs-14);display:grid;grid-template-columns:92px 1fr;gap:10px}
.cal p span{font-family:var(--mono);color:var(--mute);font-size:var(--fs-12);padding-top:2px}
/* sections */
/* P5（2026-09-14）：2px 墨色上線＋28px 襯線標題＋右側小字副標；主區塊 64（手機 40）、區塊內 24、行內 8 */
.sec{display:flex;justify-content:space-between;align-items:baseline;gap:16px;border-top:2px solid var(--ink);padding-top:16px;margin:64px 0 24px}
.sec h2{font-family:var(--serif);font-size:var(--fs-28);line-height:var(--lh-h);letter-spacing:-.01em;margin:0;font-weight:700}
.sec h2>span:not(.bi-zh):not(.bi-en){font-family:var(--ui);font-size:var(--fs-12);line-height:var(--lh-ui);letter-spacing:0;color:var(--mute);font-weight:400;margin-left:12px;text-transform:none}
.sec a{font-family:var(--ui);font-size:var(--fs-14);color:var(--acc);white-space:nowrap}
@media (max-width:640px){.sec{margin:40px 0 20px;padding-top:12px}.sec h2{font-size:var(--fs-22)}}
/* editor band */
.band{background:var(--band);color:var(--bandink);margin:64px calc(50% - 50vw) 0;padding:48px 0}
.band .wrap{display:grid;grid-template-columns:1fr 2fr;gap:40px;align-items:start}
.band .eyebrow{color:var(--bandmute)}
.band h2{font-family:var(--serif);font-weight:700;font-size:var(--fs-28);line-height:var(--lh-h);letter-spacing:-.01em;margin:0 0 14px;text-wrap:balance}
.band p{margin:0 0 12px;font-size:var(--fs-16);line-height:var(--lh-b);max-width:680px;color:var(--bandink)}
.band .state{display:inline-block;font-family:var(--ui);font-size:var(--fs-12);letter-spacing:.06em;border:1px solid var(--bandmute);padding:6px 12px;border-radius:999px;margin-top:8px;color:var(--bandink)}
.band .stat{font-family:var(--mono);font-size:var(--fs-48);font-weight:400;line-height:1;letter-spacing:-.01em;margin:6px 0 4px;font-variant-numeric:tabular-nums}
.band .stat small{font-size:var(--fs-12);font-family:var(--ui);letter-spacing:.1em;display:block;color:var(--bandmute);margin-top:8px;text-transform:uppercase}
.band a{color:var(--bandink);text-decoration:underline;text-underline-offset:3px}
/* cards */
/* P9（2026-09-14）：卡片白底、無框、無陰影、零圓角，靠髮線與留白；卡片間 24 */
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.card{background:var(--card);border:0;border-radius:0;box-shadow:none;padding:20px 24px;display:flex;flex-direction:column;gap:8px}
.card:hover h3 a{color:var(--acc)}
.card .num{font-family:var(--mono);font-weight:500;font-size:var(--fs-28);line-height:1;letter-spacing:-.01em;color:var(--acc);font-variant-numeric:tabular-nums}
.card .num small{display:block;font-family:var(--ui);font-size:var(--fs-12);letter-spacing:.04em;color:var(--mute);margin-top:6px}
.card h3{font-family:var(--serif);font-weight:600;font-size:var(--fs-22);line-height:var(--lh-c);margin:0}
.card .deck{font-family:var(--ui);font-size:var(--fs-14);line-height:var(--lh-b);margin:0;color:var(--ink2)}
.card .foot{display:flex;justify-content:space-between;align-items:center;font-family:var(--ui);font-size:var(--fs-12);color:var(--mute);margin-top:auto;padding-top:8px;border-top:1px solid var(--hair2)}
.card .foot a{color:var(--acc)}
.card.mini{padding:16px 18px}
/* 深度專題卡片配圖（2026-09-10 起）：放在卡片內距之內、不做滿版；卡片上直接寫出來源／作者／授權，
   授權條款與原始出處的連結在專題頁的圖說。 */
.card .cardimg{margin:0 0 2px}
.card .cardimg a{display:block}
.card .cardimg img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:var(--r);background:var(--paper)}
.card .cardimg figcaption{font-family:var(--ui);font-size:var(--fs-12);color:var(--mute);padding:5px 1px 0;line-height:1.45;overflow-wrap:anywhere}
/* 免費電子報列表頁封面（2026-09-11 使用者：「免費電子報的標題版面沒有封面」） */
.fcover{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:30px;align-items:start;margin:4px 0 34px;padding-bottom:30px;border-bottom:2px solid var(--ink)}
.fcover>div{min-width:0}
.fcover .heroimg{margin:0}
.fcover .head{font-size:var(--fs-28);line-height:var(--lh-h);margin:8px 0 12px;text-wrap:balance}
.fcover .head a:hover{color:var(--acc)}
.fcover .deck{margin:0 0 14px}
.fcover ol.toc{list-style:none;margin:0 0 18px;padding:0;border-top:1px solid var(--hair2)}
.fcover ol.toc li{display:grid;grid-template-columns:96px minmax(0,1fr);gap:12px;padding:8px 0;border-bottom:1px solid var(--hair2);font-size:var(--fs-14);line-height:1.45}
.fcover ol.toc .k{font-family:var(--ui);font-size:var(--fs-12);letter-spacing:.04em;color:var(--mute);padding-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fcover ol.toc .k.free{color:var(--acc)}
.fcover ol.toc a{font-family:var(--zh);font-weight:600}
.fcover ol.toc a:hover{color:var(--acc)}
/* 期號字卡：配不到圖（或與本頁已用過的圖重複）時代替封面圖 */
.cph{aspect-ratio:16/9;border-radius:var(--r);background:var(--paper);border:0;display:flex;flex-direction:column;justify-content:space-between;padding:14px 16px;color:var(--ink)}
.cph .cb{font-family:var(--ui);font-size:var(--fs-12);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.cph b{font-family:var(--serif);font-weight:400;font-size:var(--fs-48);line-height:1;color:var(--acc);font-variant-numeric:tabular-nums}
.cph .cd{font-family:var(--mono);font-size:var(--fs-12);color:var(--mute)}
.cph.big b{font-size:var(--fs-48)}
.icov .deck{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
@media (max-width:960px){.fcover{grid-template-columns:minmax(0,1fr);gap:18px}}
/* 財經行事曆（首頁一區＋calendar.html，2026-09-11） */
.calnote{font-size:var(--fs-14);color:var(--mute);margin:-4px 0 14px}
.fcal{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.fcal .day{background:var(--card);border:0;border-radius:0;padding:14px 16px;min-width:0}
.fcal .day.today{border-top:2px solid var(--ink)}
.fcal h3,.calday h3{font-family:var(--ui);font-size:var(--fs-12);font-weight:600;margin:0 0 6px;display:flex;align-items:baseline;gap:8px}
.fcal h3 .dt,.calday h3 .dt{font-family:var(--mono);font-size:var(--fs-16);color:var(--ink)}
.fcal h3 .dw,.calday h3 .dw{color:var(--mute);font-weight:400}
.fcal h3 em,.calday h3 em{font-style:normal;font-size:var(--fs-12);color:var(--acc);border:1px solid currentColor;border-radius:999px;padding:0 7px}
.fcal ul,.calday ul{list-style:none;margin:0;padding:0}
.fcal li,.calday li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;padding:6px 0;border-top:1px solid var(--hair2);font-size:var(--fs-14);line-height:1.5}
.fcal li .x,.calday li .x{min-width:0;overflow-wrap:anywhere}
.fcal li .x b,.calday li .x b{font-weight:600}
.calday li small{display:block;font-family:var(--ui);font-size:var(--fs-12);color:var(--mute);margin-top:2px}
.fcal li.more{display:block;font-family:var(--ui);font-size:var(--fs-12)}
.fcal li.more a{color:var(--acc)}
.fcal .c,.calday .c{font-family:var(--ui);font-size:var(--fs-12);letter-spacing:.04em;padding:1px 7px;border-radius:999px;white-space:nowrap;align-self:start;margin-top:3px;border:1px solid currentColor;color:var(--mute)}
.fcal .c.cb,.calday .c.cb,.fcal .c.hs,.calday .c.hs{color:var(--acc)}
.fcal .c.mc,.calday .c.mc{color:var(--ink2)}
.fcal .c.ge,.calday .c.ge{color:var(--up)}.fcal .c.ue,.calday .c.ue{color:var(--tone-2)}.fcal .c.in,.calday .c.in{color:var(--ink2)}.fcal .c.tm,.calday .c.tm{color:var(--mute)}.fcal .c.ck,.calday .c.ck{color:var(--acc)}
.evr .host,.evc .tent{font-style:normal;font-size:.72em;color:var(--mute);border:1px solid var(--hair);border-radius:3px;padding:0 4px;margin-left:6px;vertical-align:middle;white-space:nowrap}.evc .x a{color:inherit;text-decoration:underline;text-decoration-color:var(--hair)}
.calday{padding:14px 0;border-bottom:1px solid var(--hair2);scroll-margin-top:84px}
.calday.today h3 .dt{color:var(--acc)}
/* 2026-09-15 行事曆圖卡：一件一張、類別色條、日期列；行事曆頁每一天一個卡片格 */
.evgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:8px}
.evc{display:flex;flex-direction:column;gap:6px;background:var(--card);border-radius:var(--rb);padding:12px 14px 10px;min-width:0;border-top:3px solid var(--tn,var(--hair));box-shadow:none}
.evc .evd{display:flex;align-items:baseline;gap:8px;font-family:var(--ui);font-size:var(--fs-12);color:var(--mute)}
.evc .evd .dt{font-family:var(--mono);font-size:var(--fs-18);color:var(--ink);font-weight:500}
.evc.today .evd .dt{color:var(--acc)}
.evc .evd em{font-style:normal;color:var(--acc);border:1px solid currentColor;border-radius:999px;padding:0 7px}
.evc ul{list-style:none;margin:0;padding:0}
.evc li,.fcal .evc li{border-top:0;padding:0;grid-template-columns:auto minmax(0,1fr)}
/* 2026-09-16 使用者「法說排版太混亂」：法說會與除權息在行事曆頁改成一家一列。
   名單與收合區要跨滿整列（li 本身是 chip + 內容的兩欄 grid）。 */
.evc li.evlist>.evr,.evc li.evlist>.evmore{grid-column:1/-1}
.evr{display:block;margin-top:6px}
.evr .r{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:4px 0;
        border-top:1px solid var(--hair2);font-size:var(--fs-14);line-height:var(--lh-ui)}
.evr .r:first-child{border-top:0}
.evr .nm{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.evr .tm{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--mute);white-space:nowrap}
.evmore{margin-top:2px}
.evmore>summary{cursor:pointer;list-style:none;font-family:var(--ui);font-size:var(--fs-12);
                color:var(--mute);padding:4px 0}
.evmore>summary::-webkit-details-marker{display:none}
.evmore>summary::before{content:"＋ ";color:var(--acc)}
.evmore[open]>summary::before{content:"− "}
.evc.evmore{align-items:center;justify-content:center;text-align:center;border-top-color:var(--hair);font:500 var(--fs-14) var(--ui);color:var(--acc);min-height:88px;text-decoration:none}
@media (max-width:960px){.fcal{grid-template-columns:repeat(2,minmax(0,1fr))}.evgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.evgrid{grid-template-columns:minmax(0,1fr)}}
@media (max-width:600px){.fcal{grid-template-columns:minmax(0,1fr)}}
/* tables */
table.snap{width:100%;border-collapse:collapse;font-family:var(--ui);font-size:var(--fs-14);table-layout:fixed}
table.snap td:first-child{width:42%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
table.snap td:nth-child(2){width:29%}table.snap td:nth-child(3){width:29%;overflow-wrap:anywhere}
table.snap td{padding:8px 8px;border-bottom:1px solid var(--hair2)}
td.v,td.c{text-align:right;font-family:var(--mono);white-space:nowrap;font-variant-numeric:tabular-nums}
/* P6（2026-09-14）：表頭 12 灰 w500、儲存格 16（數字欄 mono 靠右由 site_design .ds-n 標）、列髮線 */
table.mini{width:100%;border-collapse:collapse;font-size:var(--fs-16);font-family:var(--ui)}
table.mini th{font-family:var(--ui);text-align:left;font-weight:500;color:var(--mute);font-size:var(--fs-12);line-height:var(--lh-ui);letter-spacing:.04em;border-bottom:1px solid var(--hair);padding:8px 10px;text-transform:none}
table.mini td{padding:10px;border-bottom:1px solid var(--hair2);vertical-align:top}
table.tbl2 td.tn,table.tbl2 th.tn{font-size:var(--fs-12);line-height:1.5;color:var(--mute);min-width:200px}
table.tbl2 td.mono{white-space:nowrap}
table.tbl2 td.sg-up{color:var(--up)}table.tbl2 td.sg-dn{color:var(--dn)}
details.appx{margin-top:28px;border-top:1px solid var(--hair);padding-top:10px}
details.appx>summary{cursor:pointer;font-family:var(--ui);font-size:var(--fs-14);color:var(--ink2);list-style:none;display:flex;align-items:center;gap:8px}
details.appx>summary::before{content:"";width:8px;height:8px;border-right:1.5px solid var(--mute);border-bottom:1.5px solid var(--mute);transform:rotate(-45deg);transition:transform .15s}
details.appx[open]>summary::before{transform:rotate(45deg)}
details.appx table.mini{font-size:var(--fs-14)}
/* key numbers / bull bear / verdict */
/* P6（2026-09-14）數字元件：無框無底、格與格之間 1px 髮線、標籤 12 灰、數字 28 mono、註記 12 */
.kn{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:0;margin:8px 0 24px;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.kn>div{background:transparent;border:0;border-right:1px solid var(--hair2);border-radius:0;padding:14px 16px;min-width:0}
.kn>div:last-child{border-right:0}
.kn .l{font-family:var(--ui);font-size:var(--fs-12);line-height:var(--lh-ui);letter-spacing:0;color:var(--mute);text-transform:none}
.kn .v{font-family:var(--mono);font-size:var(--fs-28);font-weight:500;line-height:1.1;margin:6px 0 4px;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.kn .n{font-family:var(--ui);font-size:var(--fs-12);color:var(--mute);line-height:var(--lh-ui)}
.bb{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:16px 0}
.bb div{border-top:1px solid var(--ink);padding-top:8px}
.bb h4{font-family:var(--ui);font-size:var(--fs-12);letter-spacing:.16em;text-transform:uppercase;margin:0 0 8px;font-weight:600}
.bb ul{margin:0;padding-left:18px;font-size:var(--fs-16)}.bb li{margin:0 0 6px}
.verdict{background:var(--card);border-left:3px solid var(--acc);padding:18px 22px;margin:24px 0;max-width:680px;border-radius:0}
.verdict p{margin:0;font-size:var(--fs-16)}
/* nav search */
nav.main a.navsearchlink{display:none}
.navsearch{display:flex;align-items:center;gap:7px;border:1px solid var(--hair);border-radius:var(--r);padding:5px 12px;background:var(--card);transition:border-color .15s;color:var(--mute)}
.navsearch:focus-within{border-color:var(--acc);color:var(--acc)}
.navsearch input{border:0;background:transparent;font-family:var(--ui);font-size:var(--fs-14);color:var(--ink);width:150px;outline:none}
.navsearch input::placeholder{color:var(--mute)}
/* 頁首搜尋的即時建議：打字就列出符合的文章，Enter 進搜尋頁看全部 */
.navsearch{position:relative}
.sugg{position:absolute;top:calc(100% + 8px);right:0;width:min(440px,86vw);background:var(--card);
  border:1px solid var(--hair);border-radius:var(--r);box-shadow:var(--sh);z-index:70;overflow:hidden;display:none}
.sugg.on{display:block}
.sugg a{display:block;padding:9px 13px;border-bottom:1px solid var(--hair2);text-decoration:none;color:var(--ink)}
.sugg a:last-of-type{border-bottom:0}
.sugg a.sel,.sugg a:hover{background:var(--paper)}
.sugg .st{font-size:var(--fs-14);line-height:1.45}
.sugg .sm{font-family:var(--ui);font-size:var(--fs-12);color:var(--mute);margin-top:3px}
.sugg mark{background:transparent;color:var(--acc);font-weight:600;padding:0}
.sugg .smore{font-family:var(--ui);font-size:var(--fs-12);color:var(--mute);padding:8px 13px;background:var(--paper);border-top:1px solid var(--hair2)}
.sugg .snone{font-family:var(--ui);font-size:var(--fs-12);color:var(--mute);padding:12px 13px}
/* 即時建議裡的標的列：代號或名稱命中時置頂，下一行是產業與公開行情讀數 */
.sugg .shd{font-family:var(--ui);font-size:var(--fs-12);letter-spacing:.14em;color:var(--mute);padding:7px 13px 3px;background:var(--paper);border-bottom:1px solid var(--hair2)}
.sugg a.sk .st b{font-family:var(--serif);font-weight:600}
/* 標的卡三個圓點＝籌碼／技術／基本面燈號（stock-index.json 的 q 欄，site_glance 規則） */
.sugg .sq{display:inline-flex;gap:3px;margin:0 6px;vertical-align:1px}.sugg .sq i{width:9px;height:9px;border-radius:50%;display:inline-block}
.sugg .sq .qU{background:var(--up)}.sugg .sq .qN{background:var(--warn,#c98a11)}.sugg .sq .qD{background:var(--dn)}
.sugg .cd{font-family:var(--ui);font-variant-numeric:tabular-nums;color:var(--mute);font-size:var(--fs-12)}
.sugg .tg{font-family:var(--ui);font-size:var(--fs-12);color:var(--acc);border:1px solid var(--hair);border-radius:var(--r);padding:0 5px;margin-left:6px;vertical-align:1px}
@media (max-width:960px){.navsearch input{width:108px}}
/* search page */
.srch{margin:26px 0 12px}
.srch input{width:100%;font-family:var(--ui);font-size:var(--fs-18);padding:12px 16px;border:1px solid var(--hair);border-radius:var(--r);background:var(--card);color:var(--ink)}
.srch input:focus{border-color:var(--acc);outline:none}
.rescount{font-family:var(--ui);font-size:var(--fs-14);color:var(--mute);margin:14px 0 4px}
.reslist{list-style:none;margin:0;padding:0}
.reslist li{padding:14px 0;border-bottom:1px solid var(--hair2)}
.reslist .t{font-family:var(--serif);font-weight:600;font-size:var(--fs-18);line-height:var(--lh-c);display:block;margin-bottom:4px}
.reslist .d{font-size:var(--fs-14);color:var(--ink2);line-height:1.55;margin:0 0 6px}
.reslist mark{background:transparent;color:var(--acc);font-weight:600;padding:0;border-radius:0}
/* 搜尋頁的標的卡：打代號或名稱時置於文章清單上方 */
#stk:empty{display:none}
.sklabel{font-family:var(--ui);font-size:var(--fs-12);letter-spacing:.1em;color:var(--mute);margin:20px 0 8px;display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline}
.sklabel span{letter-spacing:0;font-size:var(--fs-12)}
.skgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:12px;margin-bottom:8px}
.skc{border:0;border-radius:0;padding:16px 20px 10px;background:var(--card);min-width:0}
.skc .h{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.skc .nm{font-family:var(--serif);font-weight:600;font-size:var(--fs-18);color:var(--ink);text-decoration:none}
a.nm:hover{color:var(--acc)}
.skc .cd{font-family:var(--ui);font-variant-numeric:tabular-nums;color:var(--mute)}
.skc .tg{font-family:var(--ui);font-size:var(--fs-12);color:var(--mute)}
.skc dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 12px;margin:11px 0 10px}
.skc dt{font-family:var(--ui);font-size:var(--fs-12);color:var(--mute)}
.skc dd{margin:0;font-family:var(--ui);font-variant-numeric:tabular-nums;font-weight:600;font-size:var(--fs-14);white-space:nowrap}
.skc .br{font-size:var(--fs-14);color:var(--ink2);line-height:1.6;margin:0 0 8px}
.skc .ln{display:flex;gap:6px 18px;flex-wrap:wrap;font-family:var(--ui);font-size:var(--fs-14);border-top:1px solid var(--hair2);padding-top:4px}
.skc .ln a{color:var(--acc);font-weight:600;text-decoration:none;min-height:38px;display:inline-flex;align-items:center}
.skc .ln .na{color:var(--mute);min-height:38px;display:inline-flex;align-items:center}
@media (max-width:560px){.skc dl{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* charts（純 SVG·建站時產出·無 JS） */
.chart{margin:24px 0 28px;max-width:none}
.chart svg{overflow:visible;display:block}
.chart svg.cm{display:none}
.chart figcaption{font-family:var(--ui);font-size:var(--fs-12);color:var(--mute);margin-top:10px;line-height:1.55;max-width:66ch}
.chart.diverge,.chart.stack,.chart.hbar{margin:16px 0 24px}
.body .chart{max-width:66ch}
/* daily headline menu（首頁：每日頭條選單，依日期由新到舊）*/
.daily{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}
.daily li{position:relative;display:grid;grid-template-columns:104px 1fr auto;gap:20px;align-items:center;padding:16px 0;border-bottom:1px solid var(--hair2);transition:background .12s}
/* 標題連結拉伸覆蓋整列＝整列可點（含手機版隱藏箭頭時）；其餘內容維持在下層不擋點擊 */
.daily .h:after{content:"";position:absolute;inset:0;z-index:1}
.daily li:hover .h{color:var(--acc)}
.daily .go{position:relative;z-index:0;white-space:nowrap}
.daily li:hover{background:var(--card)}
.daily li:first-child{padding:22px 0}
.daily li:first-child .h{font-size:var(--fs-22)}
.daily .d{font-family:var(--mono);font-size:var(--fs-12);color:var(--mute);display:flex;flex-direction:column;gap:2px}
.daily .d .dow{font-family:var(--ui);font-size:var(--fs-12);letter-spacing:.06em;color:var(--mute)}
.daily .main{min-width:0}
.daily .h{font-family:var(--serif);font-weight:600;font-size:var(--fs-18);line-height:var(--lh-c);display:block;margin:0 0 2px}
.daily a.h:hover{color:var(--acc)}
.daily .dk{font-size:var(--fs-14);color:var(--ink2);margin:0;max-width:64ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.daily .go{font-family:var(--ui);font-size:var(--fs-12);color:var(--acc);white-space:nowrap}
@media (max-width:720px){.daily li{grid-template-columns:1fr;gap:4px}.daily .go{display:none}.daily .dk{white-space:normal}}
/* archive */
.arch{list-style:none;margin:0;padding:0}
.arch li{display:grid;grid-template-columns:110px 1fr auto;gap:18px;align-items:baseline;padding:12px 0;border-bottom:1px solid var(--hair2)}
.arch li .d{font-family:var(--mono);font-size:var(--fs-12);color:var(--mute)}
.arch li a{font-family:var(--zh);font-weight:600}
.arch li .tags{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.arch li .tags .tag{white-space:nowrap}
.upsell{margin:10px 0 0;padding:8px 0 8px 14px;border:0;border-left:3px solid var(--acc);background:var(--card);border-radius:0;font-family:var(--ui);font-size:var(--fs-14)}
.upsell a{font-weight:700;color:var(--acc);margin-left:6px}
.tag{font-family:var(--ui);font-size:var(--fs-12);letter-spacing:.06em;border:1px solid var(--hair);border-radius:999px;padding:2px 9px;color:var(--mute);white-space:nowrap}
/* 發布理由標籤（2026-09-22）：一種長相、四個位置；顏色依類型固定，走 tone 六色，深色模式自動跟著換 */
.trg{display:inline-flex;align-items:center;gap:5px;font:600 var(--fs-12)/1.3 var(--ui);letter-spacing:.03em;padding:1px 8px;border-radius:4px;
  background:color-mix(in srgb,var(--tn,var(--mute)) 12%,transparent);color:var(--tn,var(--ink2));white-space:nowrap;vertical-align:middle}
.trg::before{content:"";width:6px;height:6px;border-radius:999px;background:var(--tn,var(--mute));flex:0 0 auto}
.trg .nt{font-weight:400;color:var(--ink2);opacity:.85}
.trg-rev{--tn:var(--tone-1)}.trg-fs{--tn:var(--tone-2)}.trg-rating{--tn:var(--tone-3)}.trg-broker{--tn:var(--tone-3)}
.trg-conf{--tn:var(--tone-2)}.trg-filing{--tn:var(--tone-0)}.trg-macro{--tn:var(--tone-0)}.trg-mkt{--tn:var(--tone-4)}
.trg-news{--tn:var(--mute)}.trg-deep{--tn:var(--mute)}
.eyebrow .trg,.na-eyebrow .trg{margin-left:8px;text-transform:none;letter-spacing:.03em}
.meta .trg{align-self:center}
.tags{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-family:var(--ui);font-size:var(--fs-12);color:var(--mute)}
.tags .mono{font-size:var(--fs-12)}
/* subscribe */
.subs{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:24px;margin:64px 0 24px;align-items:stretch}
.subs .intro h2{font-family:var(--serif);font-weight:700;font-size:var(--fs-28);letter-spacing:-.01em;margin:0 0 10px;line-height:var(--lh-h)}
.subs .intro p{color:var(--ink2);max-width:40ch}
.tier{background:var(--card);border:0;border-radius:0;box-shadow:none;padding:24px;display:flex;flex-direction:column;gap:10px}
.tier.pro{background:var(--band);color:var(--bandink);border-color:var(--band)}
.tier.pro .price{color:var(--bandink)}.tier.pro ul{color:var(--bandink)}
.tier h3{font-family:var(--ui);font-size:var(--fs-12);letter-spacing:.16em;text-transform:uppercase;margin:0;color:var(--mute)}
.tier.pro h3{color:var(--bandmute)}
.tier .price{font-family:var(--mono);font-size:var(--fs-28);font-weight:500;letter-spacing:-.01em;margin:2px 0 4px;font-variant-numeric:tabular-nums}
.tier ul{margin:0;padding-left:18px;font-size:var(--fs-14);line-height:1.7;flex:1}
form.sub{display:flex;gap:8px}
form.sub input{flex:1;font-family:var(--ui);padding:8px 12px;min-height:36px;border:1px solid var(--hair);border-radius:var(--r);background:var(--card);color:var(--ink);font-size:var(--fs-14)}
form.sub input:focus{border-color:var(--acc);outline:none}
/* footer */
.foot{border-top:1px solid var(--ink);margin-top:64px;padding:24px 0 44px;font-family:var(--ui);font-size:var(--fs-12);color:var(--mute);line-height:1.7;display:grid;grid-template-columns:1fr 2fr;gap:30px}
.foot .brand2{font-family:var(--brandserif);font-weight:700;font-size:var(--fs-22);color:var(--ink);letter-spacing:-.01em}
/* tabs (artifact / topic filter) */
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0 4px}
.tabs button{font-family:var(--ui);font-size:var(--fs-12);font-weight:500;background:var(--card);border:1px solid var(--hair);border-radius:999px;color:var(--ink2);padding:7px 14px;cursor:pointer;transition:background .15s,color .15s}
.tabs button[aria-selected="true"]{background:var(--accsoft);color:var(--ink);border-color:var(--acc);font-weight:600}
@media (max-width:560px){.tabs{gap:8px}.tabs button{min-height:38px;padding:9px 15px}}
.pane[hidden]{display:none}
/* reveal */
.rv{transform:translateY(6px);transition:transform .35s ease}
.rv.in{transform:none}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}}
@media (max-width:960px){.hero{grid-template-columns:minmax(0,1fr);gap:28px}.tagline{display:none}.band .wrap{grid-template-columns:1fr}.grid2,.grid3,.subs,.bb,.foot{grid-template-columns:1fr}.arch li{grid-template-columns:1fr;gap:4px}.wrap{padding:0 20px}}
/* 導覽：≤960px 收成「選單」下拉（兩欄面板）——不再橫向捲動、不隨捲動收放 */
@media (max-width:960px){
  nav.main{gap:10px;overflow:visible;flex-wrap:nowrap}
  nav.main .spacer{display:none}
  .navtog{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:1 1 auto;min-width:0;
          min-height:42px;padding:0 14px;border:1px solid var(--hair);border-radius:var(--rb);background:var(--card);
          color:var(--ink);font-family:var(--ui);font-size:var(--fs-14);font-weight:600;cursor:pointer;
          -webkit-tap-highlight-color:transparent}
  .navtog .navcur{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .navtog .navlbl{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;font-weight:500;font-size:var(--fs-12);color:var(--mute)}
  .navtog svg{transition:transform .18s ease}
  nav.main.open .navtog{border-color:var(--ink2)}
  nav.main.open .navtog svg{transform:rotate(180deg)}
  .navlist{display:none;position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:40;
           grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:8px;
           background:var(--paper);border:1px solid var(--hair);border-radius:var(--r);box-shadow:var(--sh)}
  nav.main.open .navlist{display:grid}
  nav.main .navlist a{display:flex;align-items:center;min-height:46px;padding:0 14px;border-radius:0;
                      white-space:nowrap;font-size:var(--fs-16);color:var(--ink2)}
  nav.main .navlist a:after{display:none}
  nav.main .navlist a.on{background:transparent;color:var(--ink);font-weight:600;box-shadow:inset 0 -2px 0 var(--acc)}
  nav.main .navlist a:active{background:var(--card)}
}
/* ── 手機版（≤560px）：以「單手讀報」為前提調版 ─────────────────
   問題來源：nav 與頂端工具列都是 flex，項目在窄畫面被壓縮寬度後，
   中文字沒有斷字規則就一個字一行（「市場快訊」變成直排）。
   解法：所有導覽項目 white-space:nowrap + flex 不收縮，容器改水平捲動。 */
@media (max-width:560px){
  .wrap{padding:0 16px}
  /* 頂端工具列：日期一行、控制項一行，按鈕維持 40px 高的可點區 */
  .util{flex-wrap:wrap;gap:8px 12px;padding:10px 0;font-size:var(--fs-12)}
  .util>span:first-child{flex:1 1 100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .util .r{width:100%;justify-content:flex-start;gap:8px;flex-wrap:wrap}
  .util .r>*{flex:0 0 auto;white-space:nowrap;min-height:36px;display:inline-flex;align-items:center}
  .chip{padding:8px 13px;font-size:var(--fs-12)}
  /* 主導覽：「選單」按鈕＋搜尋圖示一列（下拉面板見 ≤960px 區塊）；不橫捲、不隨捲動收放 */
  nav.main{gap:8px;padding:8px 0}
  h1,h2,h3{scroll-margin-top:72px}   /* 錨點跳轉時標題不要躲在選單後面 */
  /* 搜尋在窄畫面另起一行、佔滿寬度，避免把導覽擠出畫面 */
  .navsearch{display:none}
  nav.main a.navsearchlink{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;
                 width:42px;height:42px;padding:0;color:var(--ink2);
                 border:1px solid var(--hair);border-radius:var(--rb);background:var(--card)}
  nav.main a.navsearchlink:after{display:none}
  /* 報頭與正文：行長、字級、留白重新配比 */
  .masthead{gap:10px}
  .brand{font-size:var(--fs-22)}
  h1.head{font-size:var(--fs-28);line-height:var(--lh-h)}
  .masthead.inner .brand{font-size:var(--fs-22)}
  .kn{grid-template-columns:repeat(2,minmax(0,1fr))}.kn>div:nth-child(2n){border-right:0}.kn .v{font-size:var(--fs-22)}
  h2{font-size:var(--fs-22)}
  .deck{font-size:var(--fs-16)}
  .body p{font-size:var(--fs-16);line-height:var(--lh-b)}
  .body{max-width:none}
  .meta{gap:6px 10px;flex-wrap:wrap;font-size:var(--fs-12)}
  /* 資料密集區塊：表格與圖表各自可橫向捲動，頁面本身永遠不橫捲 */
  .grid2,.grid3{gap:14px}
  table.snap{font-size:var(--fs-14)}
  /* 圖表：文字要維持可讀，所以不縮圖、改成容器內橫捲；右緣加陰影讓「還有內容」看得出來
     （background-attachment:local/scroll 的經典作法：捲到底陰影自然消失，零 JS）。 */
  .chart{margin:18px 0 22px;overflow-x:auto;-webkit-overflow-scrolling:touch;
         background:linear-gradient(to right,var(--paper) 30%,transparent),
                    linear-gradient(to right,transparent,var(--paper) 70%) 100% 0,
                    radial-gradient(farthest-side at 0 50%,rgba(0,0,0,.14),transparent),
                    radial-gradient(farthest-side at 100% 50%,rgba(0,0,0,.14),transparent) 100% 0;
         background-repeat:no-repeat;background-size:34px 100%,34px 100%,13px 100%,13px 100%;
         background-attachment:local,local,scroll,scroll}
  .chart>svg:only-of-type{min-width:520px}   /* 只有桌機版的舊圖才橫捲；成對的圖改顯示手機版 */
  .chart svg.cd{display:none}.chart svg.cm{display:block}
  /* 品牌標語在手機上佔掉近 60px 的首屏：回訪讀者不需要，讓標題與內容早一點出現 */
  .tagline{display:none}
  .blk{padding:14px 16px}
  .lights a,.lights span{min-height:34px}
  /* 可點區：連結與按鈕在觸控下至少 40px 高 */
  .btn{padding:11px 18px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
  .btn.sm{min-height:38px;padding:9px 14px}
  .arch li a,.daily li a{padding:6px 0;display:inline-block}
  .foot{gap:18px;font-size:var(--fs-14)}
  /* 觸控目標：清單／卡片／區塊標題裡的連結在手機上把整列變成可點區（38px 起） */
  .foot a,.sec>a,.sec h2 a,.blk h4 a,p.ui a{min-height:38px;display:inline-flex;align-items:center}
  .newsfeed li{padding:8px 0}
  .newsfeed a{display:block;padding:6px 0}
  .card .foot a,.card h3 a{min-height:36px;display:inline-flex;align-items:center}
}
/* 首頁新聞整理清單 */
.newsfeed{list-style:none;margin:0 0 10px;padding:0;border-top:1px solid var(--hair2)}
.newsfeed li{display:grid;grid-template-columns:46px 84px 1fr;gap:12px;align-items:baseline;
             padding:11px 0;border-bottom:1px solid var(--hair2)}
.newsfeed .t{font-family:var(--mono);font-size:var(--fs-12);color:var(--mute)}
.newsfeed .c{font-family:var(--ui);font-size:var(--fs-12);color:var(--acc);letter-spacing:.04em;
             white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.newsfeed a{color:var(--ink);font-size:var(--fs-16);line-height:1.55}
.newsfeed a:hover{color:var(--acc)}
.newsmore{font-size:var(--fs-14);margin:0 0 26px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.newsmore .free{font-family:var(--ui);font-size:var(--fs-12);color:var(--acc);border:1px solid var(--acc);
                border-radius:999px;padding:2px 9px}
@media (max-width:560px){
  .newsfeed li{grid-template-columns:44px 1fr;gap:4px 10px}
  .newsfeed .c{grid-column:2;font-size:var(--fs-12)}
  .newsfeed a{grid-column:1 / -1;font-size:var(--fs-16)}
}

/* 訂閱提示浮層（免費層文章讀到一半才出現） */
.nudge{position:fixed;right:18px;bottom:18px;z-index:55;display:none;width:min(340px,calc(100vw - 32px));
       background:var(--card);border:1px solid var(--hair);border-radius:var(--r);padding:16px 18px 15px;
       box-shadow:var(--sh);font-family:var(--ui)}
.nudge.show{display:block}
.nudge .x{position:absolute;top:8px;right:9px;background:none;border:0;color:var(--mute);font-size:var(--fs-18);
          cursor:pointer;padding:5px 8px;line-height:1}
.nudge .hd{font-family:var(--serif);font-weight:600;font-size:var(--fs-18);line-height:var(--lh-c);color:var(--ink);margin-bottom:6px}
.nudge .ln{font-size:var(--fs-14);line-height:1.6;color:var(--ink2);margin:0 0 8px}
.nudge .pr{font-size:var(--fs-12);color:var(--mute);margin:0 0 12px}
.nudge .row{display:flex;gap:8px;flex-wrap:wrap}
.nudge .btn.ghost{background:transparent;color:var(--ink2);border:1px solid var(--hair)}
@media (max-width:560px){.nudge{left:12px;right:12px;bottom:12px;width:auto;padding:14px 16px 13px}}

/* 加入主畫面提示條 */
.a2hs{position:fixed;left:12px;right:12px;bottom:12px;z-index:60;display:none;gap:12px;align-items:center;
      background:var(--card);border:1px solid var(--hair);border-radius:var(--r);padding:12px 14px;
      box-shadow:var(--sh);font-family:var(--ui)}
.a2hs.show{display:flex}
.a2hs img{width:36px;height:36px;border-radius:var(--r);flex:0 0 auto}
.a2hs .t{flex:1;min-width:0;font-size:var(--fs-12);line-height:1.45;color:var(--ink2)}
.a2hs .t b{display:block;color:var(--ink);font-size:var(--fs-14);margin-bottom:2px;text-wrap:balance}
.a2hs .x{flex:0 0 auto;background:none;border:0;color:var(--mute);font-size:var(--fs-18);cursor:pointer;
         padding:6px 8px;line-height:1}
.a2hs .go{flex:0 0 auto;min-height:38px;padding:8px 14px}
@media (min-width:561px){.a2hs{left:auto;right:20px;max-width:400px}}
.a2hs .hw{color:var(--acc);font-weight:600;white-space:nowrap}
/* 左右晃動：頁面本身不可橫捲（表格與圖表各自在框內捲），也不讓橫向回彈把整頁拖動 */
html,body{overscroll-behavior-x:none}
body{overflow-x:hidden}
@supports (overflow:clip){body{overflow-x:clip}}
.chart,div[style*="overflow-x"]{overscroll-behavior-x:contain}
/* 方案清單（2026-09-11·tier_lists）：粗體小標＋說明；訂閱層多一行「免費層全部內容，另加」 */
.tier li{margin:0 0 7px}
.tier li b{font-weight:700;color:var(--ink)}
.tier.pro li b{color:var(--bandink)}
.tier .plus{font-family:var(--ui);font-size:var(--fs-12);color:var(--bandmute);margin:0 0 2px}
.tiers2{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin:18px 0 22px}
.tiers2 .tier ul{font-size:var(--fs-14)}
/* 手機版高資訊量表格（2026-09-11 使用者「手機取消左右滑動、重點簡化，讀者只需要下拉」）：
   TCARD_JS 在 ≤640px 把欄數多或寬過畫面的表格標成 table.tc，這裡把每一列排成一張卡——
   第一行＝名次／代號／名稱，其後兩欄一排「欄名＋數值」；前 4 欄以外收在「＋ 其餘 N 欄」（點卡片展開），
   列數多時先顯示 20 列＋「顯示更多」。內容一個不少、只換排法；桌機版完全不變。 */
.tc-more{display:none}
@media (max-width:640px){
  table.tc{display:block;width:100%;border:0;min-width:0!important}
  table.tc thead,table.tc tr.tc-hd{display:none}
  table.tc tbody{display:block}
  table.tc tr{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline;padding:12px 0;margin:0;
              border:0;border-bottom:1px solid var(--hair2);border-radius:0;background:transparent}
  table.tc tr.tc-h,table.tc tr[hidden]{display:none}
  table.tc td,table.tc tbody th{display:block;flex:0 0 calc(50% - 6px);min-width:0;border:0!important;padding:0!important;
              text-align:left!important;white-space:normal!important;overflow-wrap:anywhere;font-size:var(--fs-14);line-height:1.45;background:none!important}
  table.tc td::before,table.tc tbody th::before{content:attr(data-l);display:block;font-family:var(--ui);font-size:var(--fs-12);
              color:var(--mute);letter-spacing:.03em;line-height:1.35;margin-bottom:1px;font-weight:400}
  table.tc td[data-l=""]::before{display:none}
  table.tc .tc-t{flex:0 0 auto;font-weight:700;font-size:var(--fs-16)}
  table.tc .tc-t::before{display:none}
  table.tc .tc-tl{flex:1 1 0;min-width:45%}
  table.tc tr:not(.tc-open) .tc-x{display:none}
  table.tc tr[data-more]{cursor:pointer}
  table.tc tr[data-more]::after{content:"＋ " attr(data-more);flex:1 1 100%;font-family:var(--ui);font-size:var(--fs-12);color:var(--acc);
              padding-top:5px;border-top:1px dashed var(--hair2)}
  table.tc tr.tc-open[data-more]::after{content:"－ 收合"}
  /* 專題表（tbl2·2026-09-25）：一格一行、欄名靠左、數值靠右，讀起來像清單；第一格仍是卡片標題 */
  table.tbl2.tc tr{gap:0}
  table.tbl2.tc td{flex:1 1 100%;display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:4px 0!important;
              border-bottom:1px dotted var(--hair2)!important}
  table.tbl2.tc td:last-child{border-bottom:0!important}
  table.tbl2.tc td::before{display:inline;flex:0 1 auto;margin:0;padding-right:8px}
  table.tbl2.tc td.mono{text-align:right!important;white-space:nowrap!important;font-variant-numeric:tabular-nums}
  table.tbl2.tc td.tn{display:block}
  table.tbl2.tc td.tn::before{display:block}
  table.tbl2.tc .tc-t{display:block;padding-bottom:6px!important;border-bottom:0!important}
  table.tbl2.tc td.tc-t.tc-tl{display:flex;padding-bottom:4px!important;border-bottom:1px dotted var(--hair2)!important}
  table.tbl2.tc td.tc-t.tc-tl::before{display:inline}
  table.tbl2.tc td{flex-wrap:wrap}table.tbl2.tc td details.cf-rm{flex:1 1 100%;margin-top:2px}
  .tc-w{max-height:none!important;overflow:visible!important}
  .tc-more{display:flex;align-items:center;justify-content:center;width:100%;min-height:44px;margin:0 0 18px;
           border:1px solid var(--hair);border-radius:var(--rb);background:var(--card);color:var(--ink2);font-family:var(--ui);font-size:var(--fs-14);cursor:pointer}
  .tc-more[hidden]{display:none!important}
  /* 只有桌機版的舊圖：縮到畫面寬、不再橫捲（成對的圖照舊顯示手機版 svg.cm） */
  .chart{overflow-x:visible;background:none}
  .chart>svg:only-of-type{min-width:0;width:100%;height:auto}
}
/* 深度專題：標題下方的關鍵數字條（縮小版，數字仍有滾動動畫） */
.kn.knstrip{grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:0;margin:14px 0 24px}
.kn.knstrip>div{padding:10px 14px}
.kn.knstrip .v{font-size:var(--fs-22);margin:4px 0 0}
.kn.knstrip .n{display:none}
@media (max-width:560px){.kn.knstrip{grid-template-columns:repeat(2,minmax(0,1fr))}}
.hero.solo{grid-template-columns:minmax(0,1fr)}
.hero.solo>div:first-child{max-width:780px}
/* 主題／產業等篩選：收成下拉（details），選到的值顯示在摘要列 */
.tdrow{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 8px;align-items:flex-start}
.tdrow>.tabdrop{flex:1 1 240px;min-width:0;margin:0}
.tabdrop{margin:12px 0 6px}
.tabdrop>summary{list-style:none;display:flex;align-items:center;gap:10px;min-height:44px;padding:0 14px;
  border:1px solid var(--hair);border-radius:var(--r);background:var(--card);cursor:pointer;font-family:var(--ui);
  font-size:var(--fs-14);color:var(--ink2);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}
.tabdrop>summary::-webkit-details-marker{display:none}
.tabdrop>summary::marker{content:""}
.tabdrop>summary .k{color:var(--mute);font-size:var(--fs-12);letter-spacing:.12em;flex:0 0 auto}
.tabdrop>summary .v{flex:1;min-width:0;color:var(--ink);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tabdrop>summary .car{width:8px;height:8px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;
  transform:translateY(-2px) rotate(45deg);transition:transform .18s ease;flex:0 0 auto}
.tabdrop[open]>summary{border-color:var(--ink2);border-radius:var(--r) var(--r) 0 0}
.tabdrop[open]>summary .car{transform:translateY(2px) rotate(225deg)}
.tabdrop.set>summary{border-color:var(--acc)}
.tabdrop.set>summary .v{color:var(--acc)}
.tabdrop>.tabs{margin:0;padding:10px;border:1px solid var(--ink2);border-top:0;border-radius:0 0 var(--r) var(--r);box-shadow:var(--sh);
  background:var(--card);max-height:min(52vh,420px);overflow:auto;overscroll-behavior:contain}
/* 2026-09-15：下拉改成浮出式（蓋在內容上、不把下方卡片往下推）；排序下拉縮成一格 */
.tabdrop{position:relative}
.tabdrop[open]{z-index:40}
.tabdrop>.tabs{position:absolute;left:0;right:0;top:100%}
.tabdrop.sortdrop{display:inline-block;min-width:210px;max-width:100%;vertical-align:top}
.tabdrop.sortdrop>.tabs{display:flex;flex-direction:column;align-items:stretch;gap:4px}
.tabdrop.sortdrop>.tabs button{text-align:left}
/* 深度專題右欄：本文提及標的 */
.mlist{list-style:none;margin:0;padding:0}
.mlist li{border-top:1px solid var(--hair2)}
.mlist li:first-child{border-top:0}
.mlist a{display:flex;align-items:center;gap:8px;min-height:40px;font-size:var(--fs-14)}
.mlist .mono{color:var(--mute);font-size:var(--fs-12)}

/* 2026-09-16：閱讀進度條移到 site_modern 的 .md-prog 單一實作（它還帶「剩約 N 分鐘」且只掛在文章頁）。
   這裡原本每一頁都再畫一條 2px 的，文章頁上兩條固定元素重疊。 */
.count{font-variant-numeric:tabular-nums}
.ticker .track{will-change:transform}

/* 訂閱生效者不再看到推銷（2026-09-12 使用者「已訂閱就不再呈現」）：文末「閱讀訂閱版」註腳、頁尾訂閱區、
   付費牆說明框、今日數字區的訂閱格與按鈕、鎖定卡的「訂閱後閱讀全文」。data-member 由 NAV_JS 設定，
   並記在 localStorage（ahi-mem），下次開頁在 <head> 就先套上，避免推銷區先閃一下 */
html[data-member="1"] .more,html[data-member="1"] #subscribe,html[data-member="1"] .ns-wall,
html[data-member="1"] .md-tile.cta,html[data-member="1"] .md-tzcta,html[data-member="1"] #subnudge,
html[data-member="1"] .vs-cta{display:none!important}
/* ① 選單列：捲動後半透明＋毛玻璃；捲動中再淡；滑鼠移上／聚焦恢復 */
nav.main{transition:background-color .2s ease,opacity .2s ease,box-shadow .2s ease}
nav.main.md-scrolled{background:color-mix(in srgb,var(--paper) 72%,transparent);-webkit-backdrop-filter:saturate(1.5) blur(12px);backdrop-filter:saturate(1.5) blur(12px);box-shadow:none}
nav.main.md-moving{opacity:.5}
nav.main.md-moving:hover,nav.main:focus-within,nav.main.md-moving:has(.navtog[aria-expanded="true"]){opacity:1}
.navlist a .md-ic{vertical-align:-2px;margin-right:6px;width:14px;height:14px;color:var(--mute);opacity:1}
.navlist a.on .md-ic{color:var(--mute)}
@media (max-width:960px){.navlist a .md-ic{margin-right:8px}}
/* ② 市場狀態燈 */
.md-mkt{display:inline-flex;align-items:center;gap:6px;margin-left:10px;padding:2px 9px;border:1px solid var(--hair);border-radius:999px;font-family:var(--ui);font-size:var(--fs-12);color:var(--ink2);white-space:nowrap}
.md-mkt i{width:7px;height:7px;border-radius:999px;background:var(--mute);display:inline-block}
.md-mkt.open i{background:var(--dn)}
.md-mkt.pre i{background:var(--warn)}
.md-upd{margin-left:8px;font-family:var(--mono);font-size:var(--fs-12);color:var(--mute);white-space:nowrap}
@keyframes mdPulse{0%{box-shadow:0 0 0 0 rgba(31,157,85,.55)}70%{box-shadow:0 0 0 7px rgba(31,157,85,0)}100%{box-shadow:0 0 0 0 rgba(31,157,85,0)}}
/* ③ 快捷搜尋 */
.md-pal{position:fixed;inset:0;z-index:90;background:rgba(8,12,18,.45);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 16px}
.md-pal[hidden]{display:none!important}
.md-palbox{width:min(640px,100%);background:var(--card);border:1px solid var(--hair);border-radius:var(--r);box-shadow:var(--sh);padding:14px 16px 12px;animation:mdIn .16s ease}
.md-palbox form.navsearch{display:flex!important;width:100%;max-width:none;margin:0}
.md-palbox form.navsearch input{font-size:var(--fs-16);padding:12px 12px 12px 36px;width:100%}
.md-palhint{display:flex;justify-content:space-between;margin-top:8px;font-family:var(--ui);font-size:var(--fs-12);color:var(--mute)}
.md-kbd{font-family:var(--mono);font-size:var(--fs-12);border:1px solid var(--hair);border-bottom-width:2px;border-radius:4px;padding:0 5px;color:var(--mute);margin-left:6px}
@keyframes mdIn{from{opacity:0;transform:translateY(-6px) scale(.99)}to{opacity:1;transform:none}}
/* ④ 閱讀進度 */
.md-prog{position:fixed;left:0;top:0;height:3px;width:0;background:var(--acc);z-index:95;transition:width .08s linear}
.md-left{position:fixed;right:14px;top:10px;z-index:95;font-family:var(--mono);font-size:var(--fs-12);color:var(--mute);background:var(--paper);padding:2px 8px;border-radius:999px;border:1px solid var(--hair2);opacity:0;transition:opacity .2s}
.md-left.on{opacity:1}
/* ⑤ 手機底部導覽列 */
.md-bnav{display:none}
@media (max-width:760px){
 .md-bnav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:60;height:calc(58px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);
  background:color-mix(in srgb,var(--paper) 86%,transparent);-webkit-backdrop-filter:saturate(1.5) blur(14px);backdrop-filter:saturate(1.5) blur(14px);border-top:1px solid var(--hair2)}
 .md-bnav a,.md-bnav button{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font:500 11px/1 var(--ui);color:var(--mute);background:none;border:0;padding:0 2px;min-height:48px;cursor:pointer;text-decoration:none;white-space:nowrap}
 .md-bnav .on{color:var(--acc)}
 .md-bnav .on .md-ic{stroke-width:2.2}
 body.md-hasb{padding-bottom:calc(64px + env(safe-area-inset-bottom))}
 body.md-hasb .nudge,body.md-hasb .a2hs{bottom:calc(70px + env(safe-area-inset-bottom))!important}
 /* 訂閱提示在手機改精簡條：一行標題＋按鈕，不再蓋住半個畫面 */
 .nudge .ln,.nudge .pr{display:none}
 .nudge{padding:10px 40px 10px 14px!important}
 .nudge .hd{font-size:var(--fs-16);margin:0 0 8px}
 .nudge .row .btn{min-height:36px}
 .md-left{top:auto;bottom:calc(66px + env(safe-area-inset-bottom))}
}
/* ⑥ 迷你走勢線、首頁格狀數字區 */
.md-spark{display:inline-flex;align-items:center;gap:6px;color:var(--mute);font-family:var(--mono);font-size:var(--fs-12);vertical-align:middle}
.md-spark b.sg-up{color:var(--up)}.md-spark b.sg-dn{color:var(--dn)}
.md-spark svg{display:block;overflow:visible}
/* P9：格狀數字區的格子＝白底無框無陰影零圓角（tonal 分層），格間 24 */
.md-bento{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin:24px 0}
.md-tile{display:flex;flex-direction:column;justify-content:space-between;min-width:0;padding:16px 20px;border:0;border-radius:0;box-shadow:none;background:var(--card);color:var(--ink);text-decoration:none}
.md-tile.big{grid-row:span 2}
.md-tile .k{font-family:var(--ui);font-size:var(--fs-12);line-height:var(--lh-ui);letter-spacing:0;color:var(--mute);text-transform:none}
.md-tile .n{font-family:var(--mono);font-weight:500;font-size:var(--fs-28);line-height:1.1;margin:6px 0 2px;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.md-tile .n.sm{font-size:var(--fs-22)}
.md-tile.big .n{font-size:var(--fs-36)}
.md-tile .c{font-family:var(--mono);font-size:var(--fs-14);color:var(--ink2)}
.md-tile .l{font-family:var(--ui);font-size:var(--fs-12);color:var(--mute)}
.md-tile .up,.md-tile .c.up{color:var(--up)}.md-tile .dn,.md-tile .c.dn{color:var(--dn)}
.md-tile .md-spark{margin-top:10px}
.md-tile.cta{background:var(--acc);border-color:var(--acc);color:#fff}
.md-tile.cta .k,.md-tile.cta .l{color:rgba(255,255,255,.85)}
@media (max-width:900px){.md-bento{grid-template-columns:repeat(2,minmax(0,1fr))}.md-tile.big{grid-column:span 2;grid-row:auto}}
/* 2026-09-13 D11：不浮起、不縮放；2026-09-14 v2 卡片已無框，hover 不變色 */
.btn{transition:transform .12s ease,filter .12s ease,background-color .15s ease}
.btn:active{filter:brightness(.92)}
/* 骨架載入 */
.skel{display:block;height:.9em;margin:.5em 0;border-radius:4px;background:linear-gradient(90deg,var(--hair2) 25%,color-mix(in srgb,var(--hair2) 40%,var(--card)) 50%,var(--hair2) 75%);background-size:200% 100%;animation:mdSk 1.2s infinite linear}
.skel.w60{width:60%}.skel.w80{width:80%}.skel.w40{width:40%}
@keyframes mdSk{from{background-position:200% 0}to{background-position:-200% 0}}
/* 等寬數字 */
table,.kn,.num,.stat,.md-tile .n,td{font-variant-numeric:tabular-nums}
/* 2026-09-13 D12：深色模式回到 site_theme 的同一套配色（拿掉「終端機」深藍底與數字光暈） */
@media (prefers-reduced-motion:reduce){nav.main,.md-tile,.btn,.card,.icov{transition:none!important}.md-mkt.open i,.skel,.md-palbox{animation:none!important}.card:hover,.icov:hover,.md-tile:hover{transform:none!important}}

html[data-member="1"] .bintro{display:none}
.md-foryou{margin:4px 0 26px;padding:18px 18px 8px;border:1px solid var(--hair2);border-radius:12px;background:var(--card)}
.md-foryou>h2{font-family:var(--ui);font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--acc);margin:0 0 10px;display:flex;justify-content:space-between;align-items:baseline}
.md-foryou>h2 a{font-size:.78rem;letter-spacing:0;text-transform:none;color:var(--mute)}
.md-fy-sec{margin:0 0 14px}
.md-fy-sec h3{font-family:var(--ui);font-size:.86rem;margin:0 0 6px;color:var(--ink)}
.md-fy-list{list-style:none;margin:0;padding:0}
.md-fy-list li{display:flex;gap:10px;align-items:baseline;padding:7px 0;border-top:1px solid var(--hair2);font-size:.92rem;line-height:1.45;min-width:0;flex-wrap:wrap}
.md-fy-list li:first-child{border-top:0}
.md-fy-list a{color:var(--ink);min-width:0;flex:1 1 14em}
.md-fy-list .m{font-family:var(--mono);font-size:.74rem;color:var(--mute);white-space:nowrap}
.md-fy-list .tg{font-family:var(--ui);font-size:.7rem;color:var(--acc);white-space:nowrap}
.md-note{font-family:var(--ui);font-size:.84rem;color:var(--ink2);margin:0 0 10px}
.md-recap{position:relative;padding:12px 40px 12px 14px;border-radius:10px;background:color-mix(in srgb,var(--acc) 9%,var(--card));border:1px solid color-mix(in srgb,var(--acc) 30%,transparent);font-size:.9rem;line-height:1.6;margin:0 0 14px}
.md-recap .x,.md-toast .x{position:absolute;right:8px;top:6px;border:0;background:none;font-size:1.1rem;color:inherit;opacity:.7;cursor:pointer;min-width:32px;min-height:32px}
.md-new{display:inline-block;margin-right:6px;padding:0 6px;border-radius:4px;background:var(--acc);color:var(--onacc);font:600 .66rem/1.6 var(--ui);vertical-align:2px}
.md-act{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:10px 0 14px;font-family:var(--ui)}
.md-act button,.md-act a{display:inline-flex;align-items:center;gap:5px;min-height:34px;padding:0 11px;border:1px solid var(--hair);border-radius:999px;background:var(--card);color:var(--ink2);font:500 .8rem/1 var(--ui);cursor:pointer;text-decoration:none}
.md-act button[aria-pressed="true"]{color:var(--acc);border-color:var(--acc)}
.md-act .sep{flex:0 0 1px;height:20px;background:var(--hair);margin:0 2px}
.md-toc{margin:12px 0 18px;border:1px solid var(--hair2);border-radius:10px;background:var(--card);font-family:var(--ui);font-size:.86rem}
.md-toc summary{cursor:pointer;padding:10px 14px;font-weight:600;min-height:24px}
.md-toc ol{margin:0;padding:0 14px 10px 32px}
.md-toc li{padding:3px 0}
.md-toc a{color:var(--ink2)}
.md-toc a.on{color:var(--acc);font-weight:600}
.md-toast{position:fixed;left:50%;transform:translateX(-50%);bottom:24px;z-index:70;max-width:calc(100vw - 32px);padding:10px 44px 10px 14px;border-radius:10px;background:var(--ink);color:var(--paper);font:500 .86rem/1.4 var(--ui);box-shadow:0 12px 28px -12px rgba(0,0,0,.5)}
.md-toast button.go{margin-left:10px;border:0;border-radius:6px;background:var(--acc);color:var(--onacc);padding:5px 10px;font:600 .8rem var(--ui);cursor:pointer}
body.md-hasb .md-toast{bottom:calc(76px + env(safe-area-inset-bottom))}
.md-off{position:fixed;left:0;right:0;top:0;z-index:96;text-align:center;padding:5px 10px;background:#b35900;color:#fff;font:500 .78rem var(--ui)}
.md-my section{margin:0 0 26px}
.md-my h3{font-family:var(--ui);font-size:.95rem;margin:0 0 8px}
.md-chips{display:flex;flex-wrap:wrap;gap:6px}
.md-chips button{min-height:32px;padding:0 12px;border:1px solid var(--hair);border-radius:999px;background:var(--card);color:var(--ink2);font:500 .8rem var(--ui);cursor:pointer}
.md-chips button[aria-pressed="true"]{background:var(--acc);border-color:var(--acc);color:var(--onacc)}
.md-keybox{margin:12px 0 16px;padding:12px 14px;border-left:4px solid var(--acc);background:var(--card);border-radius:0 8px 8px 0;font-size:.95rem;line-height:1.7}
.md-keybox b{display:block;font-family:var(--ui);font-size:.74rem;letter-spacing:.1em;color:var(--acc);margin-bottom:2px}
@media print{.md-act,.md-toc,.md-toast,.md-bnav,.md-prog,.md-left,.md-foryou{display:none!important}}

[data-lbl]:not(:empty)::before{content:attr(data-lbl);display:block;font:600 .68rem/1 var(--ui);letter-spacing:.12em;color:var(--acc);margin:0 0 6px;text-transform:uppercase}
[data-lbl]:empty{display:none}
.md-layers{display:inline-flex;gap:4px;margin:8px 0 12px;padding:3px;border:1px solid var(--hair);border-radius:999px;background:var(--card);font-family:var(--ui)}
.md-layers button{border:0;background:none;padding:6px 12px;border-radius:999px;font:500 .8rem var(--ui);color:var(--ink2);cursor:pointer;min-height:32px}
.md-layers button[aria-pressed="true"]{background:var(--acc);color:var(--onacc)}
.md-cut{display:none}
[data-layer].md-hide{display:none!important}
.body.md-l2>p:nth-of-type(n+3),.body.md-l2>h3:nth-of-type(n+2),.body.md-l2>figure,.body.md-l2>.pq,.body.md-l2>div{display:none}
.md-cut.on{display:block;margin:6px 0 18px;font-family:var(--ui);font-size:.84rem;color:var(--mute)}
.md-cut button{border:1px solid var(--hair);background:var(--card);border-radius:999px;padding:5px 12px;font:500 .8rem var(--ui);cursor:pointer;color:var(--ink2)}
.md-recap2{margin:10px 0 16px;padding:12px 14px;border:1px dashed var(--hair);border-radius:10px;background:var(--card);font-size:.9rem;line-height:1.6}
.md-recap2>b{display:block;font:600 .68rem/1 var(--ui);letter-spacing:.12em;color:var(--acc);margin-bottom:6px}
details.md-recap2{padding:0}
details.md-recap2>summary{list-style:none;display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;font-family:var(--ui);color:var(--ink2);-webkit-tap-highlight-color:transparent}
details.md-recap2>summary::-webkit-details-marker{display:none}
details.md-recap2>summary::marker{content:""}
details.md-recap2>summary b{font:600 .72rem/1 var(--ui);letter-spacing:.12em;color:var(--acc);flex:0 0 auto}
details.md-recap2>summary .r0{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
details.md-recap2>summary .car{width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .18s;flex:0 0 auto}
details.md-recap2[open]>summary .car{transform:translateY(2px) rotate(225deg)}
details.md-recap2>div{padding:0 14px}
details.md-recap2>div:last-child{padding-bottom:12px}
.md-recap2 .r1{color:var(--ink2);margin-bottom:4px}
.md-recap2 .r2{margin-top:4px}
.md-recap2 .lb{display:inline-block;font:600 .72rem var(--ui);color:var(--ink);background:var(--hair2);border-radius:4px;padding:1px 6px;margin-right:6px}
.md-recap2 .tg{font:500 .7rem var(--ui);color:var(--acc);margin-left:6px}
.md-brcs{margin:8px 0 14px;display:grid;gap:8px}
.md-brc{padding:10px 12px;border-left:3px solid var(--hair);background:var(--card);border-radius:0 8px 8px 0;font-size:.88rem;line-height:1.6}
.md-brc .h{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;margin-bottom:2px}
.md-brc .lb{font:600 .66rem/1 var(--ui);letter-spacing:.1em;color:var(--acc)}
.md-brc .sd{font:500 .72rem var(--ui);padding:1px 7px;border-radius:999px;border:1px solid var(--hair);color:var(--mute)}
.md-brc .sd.up{color:#d33a3a;border-color:#d33a3a}.md-brc .sd.dn{color:#1f9d55;border-color:#1f9d55}
.md-brc .w{font:500 .74rem var(--ui);color:var(--mute)}
.md-brc p{margin:4px 0 0;color:var(--ink2)}
.md-two{margin:0 0 22px}
.md-cons .md-bar{display:flex;height:10px;border-radius:999px;overflow:hidden;background:var(--hair2);margin:6px 0}
.md-cons .md-bar i{display:block;height:100%}.md-cons .md-bar .up{background:#d33a3a}.md-cons .md-bar .md{background:var(--mute)}.md-cons .md-bar .dn{background:#1f9d55}
.md-legend{display:flex;gap:14px;font:500 .76rem var(--ui);color:var(--ink2);margin-bottom:8px}.md-legend .up{color:#d33a3a}.md-legend .dn{color:#1f9d55}
.md-cons-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.md-cons-two>*{min-width:0}
.md-cons-col h3{margin:6px 0 4px;font:600 .8rem var(--ui);letter-spacing:.08em}.md-cons-col h3.up{color:#d33a3a}.md-cons-col h3.dn{color:#1f9d55}
@media (max-width:640px){.md-cons-two{grid-template-columns:minmax(0,1fr)}}
.md-fy-list .tg.up{color:#d33a3a}.md-fy-list .tg.dn{color:#1f9d55}
.md-scn{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.md-scn div{padding:10px 8px;border:1px solid var(--hair2);border-radius:8px;text-align:center;font:500 .74rem var(--ui);color:var(--mute)}
.md-scn b{display:block;font:600 1.4rem/1.1 var(--mono);color:var(--ink);margin-bottom:3px}
.md-tl li{display:block}.md-tl .one{font-size:.86rem;color:var(--ink2);margin-top:2px}.md-tl .m{margin-right:8px}.md-tl .tg{margin-right:8px}
.md-rec{margin:22px 0 0}
.md-bento.tp{grid-template-columns:repeat(4,minmax(0,1fr))}
.md-tile.tp .n.sm{font-family:var(--zh),var(--ui);font-weight:600;font-size:1.05rem;line-height:1.3}
@media (max-width:900px){.md-bento.tp{grid-template-columns:repeat(2,minmax(0,1fr))}.md-scn{grid-template-columns:repeat(2,minmax(0,1fr))}}
.md-gl dt{font-weight:600;margin-top:14px}.md-gl dd{margin:2px 0 0;color:var(--ink2);line-height:1.7}
abbr.md-gt{text-decoration:underline dashed var(--acc);text-decoration-thickness:1px;text-underline-offset:4px;cursor:help}
abbr.md-gt:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.md-tip{position:fixed;z-index:80;max-width:min(360px,calc(100vw - 24px));padding:12px 14px;border-radius:8px;background:var(--ink);color:var(--paper);font:400 var(--fs-16,1rem)/1.6 var(--ui);box-shadow:0 10px 30px -12px rgba(0,0,0,.5)}
.md-tip b{display:block;margin-bottom:4px;font-size:var(--fs-18,1.1rem)}.md-tip a{color:inherit;opacity:.85;font-size:var(--fs-14,.875rem)}
.md-tipa{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;margin-top:8px}
.md-known{border:1px solid currentColor;background:transparent;color:inherit;border-radius:999px;padding:6px 12px;font:600 var(--fs-14,.875rem)/1 var(--ui);cursor:pointer;min-height:36px}
.md-sup{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:18px}
.md-sup .cl ul{list-style:none;margin:8px 0 0;padding:0;max-height:70vh;overflow:auto;border:1px solid var(--hair2);border-radius:8px}
.md-sup .cl li button{display:flex;width:100%;gap:8px;align-items:baseline;text-align:left;border:0;border-bottom:1px solid var(--hair2);background:none;padding:9px 12px;font:400 .9rem var(--ui);color:var(--ink);cursor:pointer;min-height:40px}
.md-sup .cl li button[aria-pressed="true"]{background:var(--card);color:var(--acc)}
.md-sup .cl li button .m{margin-left:auto;font-family:var(--mono);font-size:.74rem;color:var(--mute)}
.md-sup input{width:100%;padding:9px 12px;border:1px solid var(--hair);border-radius:8px;font:inherit}
.md-sup .det{padding:14px 16px;border:1px solid var(--hair2);border-radius:10px;background:var(--card);min-height:200px}
@media (max-width:760px){.md-sup{grid-template-columns:minmax(0,1fr)}.md-sup .cl ul{max-height:40vh}}
.md-plans{display:grid;gap:8px;margin:0 0 12px}
.md-plan{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--hair);border-radius:10px;cursor:pointer}
.md-plan:has(input:checked){border-color:var(--acc);background:color-mix(in srgb,var(--acc) 6%,var(--card))}
.md-plan input{margin-top:4px}.md-plan small{display:block;color:var(--mute);font-size:.8rem;margin-top:2px}
.md-onb{position:fixed;inset:0;z-index:92;background:rgba(8,12,18,.55);display:flex;align-items:center;justify-content:center;padding:16px}
.md-onb .bx{width:min(560px,100%);max-height:90vh;overflow:auto;background:var(--card);border-radius:12px;padding:20px 20px 16px;box-shadow:0 24px 60px -20px rgba(0,0,0,.5)}
.md-onb h3{margin:0 0 4px}.md-onb .q{font:600 .9rem var(--ui);margin:14px 0 6px}
.md-onb .row{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.md-onb .md-chips button{min-height:34px}

.cf-lockbox{background:var(--card);border:0;border-top:2px solid var(--ink);border-radius:0;padding:14px 18px 12px;margin:24px 0 16px;font-size:var(--fs-14);line-height:var(--lh-b)}
.cf-lockbox h4{font-family:var(--ui);font-size:var(--fs-12);letter-spacing:.08em;color:var(--acc);margin:0 0 6px;font-weight:700}
.cf-lockbox ul{margin:0 0 10px;padding-left:1.2em}.cf-lockbox li{margin:0 0 4px;max-width:72ch}
.cf-lockbox .btns{display:flex;flex-wrap:wrap;gap:8px}
th.ux-th{cursor:pointer;user-select:none;white-space:nowrap}th.ux-th:hover{color:var(--acc)}
/* 2026-09-16：排序方向要看得見（原本只有 aria-sort，讀者不知道可以點、也不知道現在依哪一欄排） */
th.ux-th::after{content:"\2195";margin-left:4px;color:var(--hair);font-size:.85em}
th.ux-th[aria-sort="ascending"]::after{content:"\2191";color:var(--acc)}
th.ux-th[aria-sort="descending"]::after{content:"\2193";color:var(--acc)}
/* 長表格：限高並讓表頭吸頂（捲動後還看得到欄名）。只在桌機做——手機 ≤640px 由 TCARD_JS 轉成卡片，
   限高會和卡片模式打架（.tc-w 本來就會取消外層的高度上限）。 */
@media (min-width:641px){
  .tblwrap.ux-tall{max-height:72vh;overflow:auto}
  .tblwrap.ux-tall table.mini th{position:sticky;top:0;z-index:2;background:var(--paper);box-shadow:0 1px 0 var(--hair2)}
}
th[aria-sort="descending"]::after{content:" ▼";font-size:var(--fs-12);color:var(--acc)}th[aria-sort="ascending"]::after{content:" ▲";font-size:var(--fs-12);color:var(--acc)}
.ux-star{border:0;background:none;cursor:pointer;color:var(--mute);font-size:var(--fs-16);line-height:1;padding:0 4px;vertical-align:middle;min-height:0}
.ux-star.on{color:var(--acc)}.ux-star:hover{color:var(--acc)}
.ux-bstar{border:1px solid var(--hair);background:var(--card);border-radius:var(--rb);min-height:36px;padding:6px 14px;font:500 var(--fs-14)/var(--lh-ui) var(--ui);cursor:pointer;color:var(--ink2)}
.ux-bstar.on{border-color:var(--acc);color:var(--acc);background:var(--card)}
.ux-pb{display:inline-block;width:56px;height:8px;border-radius:4px;background:var(--hair2);vertical-align:middle;margin-right:6px;overflow:hidden}
.ux-pb i{display:block;height:100%;background:var(--acc)}
.ux-pbv{font-family:var(--mono);font-size:var(--fs-14)}
.ux-top3{margin:10px 0 24px;padding:12px 0;border:0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);border-radius:0;background:transparent;display:grid;gap:8px}
.ux-top3 .r{display:grid;grid-template-columns:5.2em 1fr;gap:10px;align-items:baseline;font-size:var(--fs-14);line-height:1.55}
.ux-top3 .k{font:600 var(--fs-12)/1.4 var(--ui);letter-spacing:.1em;color:var(--acc);text-transform:uppercase}
.ux-top3 .r a{color:var(--ink)}.ux-top3 .m{color:var(--mute);font-size:var(--fs-12);margin-left:6px;font-family:var(--ui)}
/* P6（2026-09-14）四格狀態列：無框無底、格間 1px 髮線、標籤 12 灰、數字 28 mono、註記 12；漲跌只染數字。只作用在直接子元素（descendant 會變卡中卡） */
.ux-quad{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:8px 0 24px;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.ux-quad>div{padding:14px 16px;border:0;border-right:1px solid var(--hair2);border-radius:0;background:transparent;min-width:0}
.ux-quad>div:last-child{border-right:0}
.ux-quad .l{font:500 var(--fs-12)/var(--lh-ui) var(--ui);letter-spacing:0;color:var(--mute);text-transform:none}
.ux-quad .v{font:500 var(--fs-28)/1.1 var(--mono);color:var(--ink);margin:6px 0 4px;letter-spacing:-.01em;font-variant-numeric:tabular-nums}.ux-quad .v.up{color:var(--up)}.ux-quad .v.dn{color:var(--dn)}
.ux-quad .n{font-size:var(--fs-12);line-height:var(--lh-ui);color:var(--mute);font-family:var(--ui)}
@media (max-width:640px){.ux-quad{grid-template-columns:repeat(2,minmax(0,1fr))}.ux-quad>div:nth-child(2n){border-right:0}.ux-quad>div:nth-child(-n+2){border-bottom:1px solid var(--hair2)}.ux-quad .v{font-size:var(--fs-22)}.ux-top3 .r{grid-template-columns:4.4em 1fr}}
.ux-tabs{margin:12px 0 4px}
.ux-tb{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:10px 0 8px;font-family:var(--ui)}
.ux-tb .lb{font:600 var(--fs-12)/1 var(--ui);letter-spacing:.1em;color:var(--mute);margin-right:4px}
.ux-tb button{border:1px solid var(--hair);background:var(--card);border-radius:999px;padding:6px 12px;font:500 var(--fs-12)/var(--lh-ui) var(--ui);color:var(--ink2);cursor:pointer;min-height:32px}
.ux-tb button[aria-selected="true"],.ux-tb button[aria-pressed="true"]{background:var(--accsoft);color:var(--ink);border-color:var(--acc);font-weight:600}
.ux-tb .sep{width:1px;height:20px;background:var(--hair);margin:0 4px}.ux-tb .ux-n{font-family:var(--mono);font-size:var(--fs-12);color:var(--mute);margin-left:auto}
.ux-fh{display:none!important}
.ux-mine{margin:24px 0;padding:12px 0;border:0;border-top:1px solid var(--hair);border-radius:0;background:transparent}
.ux-mine h3{margin:0 0 6px;font-size:var(--fs-16)}.ux-mine h3 .m{font:500 var(--fs-12) var(--ui);color:var(--mute);margin-left:8px}
.ux-mine .md-fy-list .up{color:var(--up)}.ux-mine .md-fy-list .dn{color:var(--dn)}
.ux-bcard{padding:10px 0;border-top:1px solid var(--hair2)}.ux-bcard h4{margin:0 0 4px;font-size:var(--fs-16)}.ux-bcard h4 .m{font:500 var(--fs-12) var(--ui);color:var(--mute);margin-left:8px}
.ux-bcard .row{font-size:var(--fs-14);color:var(--ink2);line-height:1.6}.ux-bcard .row b{color:var(--mute);font-weight:500;margin-right:6px;font-family:var(--ui);font-size:var(--fs-12)}
.ux-locklist{grid-column:1/-1}.ux-locklist ul{margin:6px 0 0;padding:0 0 0 1.1em;columns:2;column-gap:24px;font-size:var(--fs-14);line-height:1.7}
.ux-locklist li{break-inside:avoid}@media (max-width:640px){.ux-locklist ul{columns:1}}
.ux-dash{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:6px 0 24px;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.ux-dash>div{padding:14px 16px;border:0;border-right:1px solid var(--hair2);border-radius:0;background:transparent;min-width:0}
.ux-dash>div:last-child{border-right:0}
.ux-dash .l{font:500 var(--fs-12)/var(--lh-ui) var(--ui);letter-spacing:0;color:var(--mute);text-transform:none}
.ux-dash .v{font:500 var(--fs-28)/1.1 var(--mono);color:var(--ink);margin:6px 0 4px;letter-spacing:-.01em;font-variant-numeric:tabular-nums}.ux-dash .n{font-size:var(--fs-12);line-height:var(--lh-ui);color:var(--mute);font-family:var(--ui)}
@media (max-width:640px){.ux-dash{grid-template-columns:repeat(2,minmax(0,1fr))}.ux-dash>div:nth-child(2n){border-right:0}.ux-dash>div:nth-child(-n+2){border-bottom:1px solid var(--hair2)}.ux-dash .v{font-size:var(--fs-22)}}
.ux-delta{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:8px 0 14px}.ux-delta h4{margin:0 0 4px;font-size:var(--fs-14)}
.ux-delta ul{margin:0;padding:0;list-style:none}.ux-delta li{display:flex;gap:8px;align-items:baseline;padding:4px 0;border-bottom:1px solid var(--hair2);font-size:var(--fs-14)}
.ux-delta li .m{margin-left:auto;font-family:var(--mono);font-size:var(--fs-12);color:var(--mute);white-space:nowrap}
@media (max-width:640px){.ux-delta{grid-template-columns:1fr}}
.ux-tl{width:100%;height:auto;display:block;margin:6px 0 2px}.ux-tll{display:flex;flex-wrap:wrap;gap:10px 16px;font:500 var(--fs-12) var(--ui);color:var(--ink2);margin:4px 0 12px}
.ux-tll i{display:inline-block;width:10px;height:10px;border-radius:999px;margin-right:4px;vertical-align:-1px}
details.ux-more{margin:16px 0}details.ux-more>summary{cursor:pointer;font:600 var(--fs-14) var(--ui);color:var(--acc);padding:10px 0;list-style:none}
details.ux-more>summary::before{content:"＋ ";}details.ux-more[open]>summary::before{content:"－ "}
.ux-tlist{list-style:none;margin:6px 0 0;padding:0}.ux-tlist li{display:grid;grid-template-columns:5.6em 1fr;gap:10px;padding:7px 0;border-bottom:1px solid var(--hair2);font-size:var(--fs-14);line-height:1.55}
.ux-tlist .d{font-family:var(--mono);font-size:var(--fs-12);color:var(--mute)}.ux-tlist .tg{font:500 var(--fs-12) var(--ui);color:var(--acc);margin-left:6px;border:1px solid var(--hair);border-radius:999px;padding:0 6px}
.ux-tlist .tg.lk{color:var(--mute)}
.ms{display:grid;grid-template-columns:auto 1fr;gap:8px 12px;align-items:baseline;margin:0 0 18px;max-width:680px}.ms .ms-k{grid-column:1/-1;font:600 var(--fs-12)/1.4 var(--ui);letter-spacing:.1em;color:var(--mute)}.ms-t{--ms-c:var(--mute);display:inline-flex;align-items:center;gap:6px;justify-self:start;padding:2px 10px;border-radius:999px;border:1px solid color-mix(in srgb,var(--ms-c) 55%,transparent);background:color-mix(in srgb,var(--ms-c) 10%,transparent);font:600 var(--fs-14)/1.5 var(--ui);color:var(--ink);white-space:nowrap}.ms-t i{font-style:normal;font-weight:500;font-size:var(--fs-12);color:var(--mute)}.ms-t::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--ms-c)}.ms-t.cf::before{display:none}.ms-t.bull{--ms-c:var(--up)}.ms-t.bear{--ms-c:var(--dn)}.ms-t.cau{--ms-c:var(--warn)}.ms-t.neu{--ms-c:var(--mute)}.ms-t.cf{--ms-c:var(--acc)}.ms-d{display:inline-flex;gap:2px}.ms-d span{width:6px;height:6px;border-radius:50%;background:color-mix(in srgb,var(--ms-c) 22%,transparent)}.ms-d span.on{background:var(--ms-c)}.ms-x{font:400 var(--fs-16)/var(--lh-b) var(--ui);color:var(--ink2);min-width:0}.ms-l{justify-self:start;font:600 var(--fs-12)/1.8 var(--ui);letter-spacing:.06em;color:var(--mute);padding:0 2px}.ms-row{display:contents}.ms .ms-x.all{grid-column:1/-1}.ms.stack{display:block}.ms.stack .ms-x{font-size:var(--fs-14)}.band .ms{margin:10px 0 0}.band .ms .ms-k,.band .ms-t i,.band .ms-l{color:var(--bandmute)}.band .ms-t{color:var(--bandink)}.band .ms-x{color:var(--bandink)}.ms-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0}.ms-chips .ms-t{font-size:var(--fs-12)}.ms.stack .ms-k{margin-bottom:6px}.ms.stack .ms-row{display:block;margin:0 0 8px}.ms.stack .ms-row .ms-t,.ms.stack .ms-row .ms-l{display:inline-flex;vertical-align:1px;margin-right:6px}.ms.stack .ms-row .ms-x{display:inline}@media (max-width:480px){.ms{display:block}.ms .ms-k{margin-bottom:6px}.ms-row{display:block;margin:0 0 10px}.ms-row .ms-t,.ms-row .ms-l{display:inline-flex;vertical-align:1px;margin-right:6px}.ms-row .ms-x{display:inline}}.md-crumb{display:flex;flex-wrap:wrap;align-items:center;gap:2px 6px;margin:10px 0 2px;font:500 var(--fs-12)/1.6 var(--ui);color:var(--mute)}.md-crumb a{color:var(--ink2);text-decoration:none}.md-crumb a:hover{color:var(--acc);text-decoration:underline}.md-crumb .sep{color:var(--hair)}.md-crumb .cur{color:var(--mute);max-width:14em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.md-crumb .bk{display:none}.md-bkf{display:none}@media (max-width:640px){.md-crumb .bk{display:inline-flex;align-items:center;min-height:36px;padding:0 12px 0 8px;margin-right:4px;border:1px solid var(--hair);border-radius:999px;background:var(--card);color:var(--ink);font:600 var(--fs-14)/1 var(--ui);text-decoration:none}.md-crumb .cur{display:none}.md-bkf{display:flex;position:fixed;left:12px;top:calc(10px + env(safe-area-inset-top));z-index:55;width:40px;height:40px;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--hair);background:var(--card);color:var(--ink);font:600 var(--fs-22)/1 var(--ui);box-shadow:var(--sh);opacity:0;transform:translateY(-8px);pointer-events:none;transition:opacity .18s,transform .18s}.md-bkf.on{opacity:1;transform:none;pointer-events:auto}}html.md-app .md-crumb .bk{display:inline-flex;align-items:center;min-height:36px;padding:0 12px 0 8px;margin-right:4px;border:1px solid var(--hair);border-radius:999px;background:var(--card);color:var(--ink);font:600 var(--fs-14)/1 var(--ui);text-decoration:none}@media print{.md-crumb,.md-bkf{display:none!important}}@media (prefers-reduced-motion:reduce){.md-bkf{transition:none}}
html body .tchart{margin:28px 0 8px}
html body .tchart .tc-asof{font-size:var(--fs-note);color:var(--mute);margin-top:-4px}
html body .tchart .tc-sum{margin:10px 0 8px;padding:10px 12px;background:var(--tint);border-radius:var(--rb)}
html body .tchart .tc-sum .ln{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:var(--fs-14)}
html body .tchart .tc-px{font-variant-numeric:tabular-nums;font-weight:600}
html body .tchart .tc-up{color:var(--up)}html body .tchart .tc-dn{color:var(--dn)}
html body .tchart .tc-pill{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:1px 10px;font-weight:700;font-size:var(--fs-12);white-space:nowrap}
html body .tchart .tc-pill.sg-up{background:color-mix(in srgb,var(--up) 13%,transparent);color:var(--up)}
html body .tchart .tc-pill.sg-dn{background:color-mix(in srgb,var(--dn) 13%,transparent);color:var(--dn)}
html body .tchart .tc-pill.sg-nt{background:color-mix(in srgb,var(--mute) 16%,transparent);color:var(--ink2)}
html body .tchart .tc-tbh{display:flex;align-items:center;gap:6px;margin:12px 0 6px;font-size:var(--fs-14);color:var(--ink)}
html body .tchart .tc-tw,html body .tchart .tc-lw{overflow-x:auto}
html body .tchart .tc-tbl,html body .tchart .tc-ltbl{width:100%;border-collapse:collapse;font-size:var(--fs-note);line-height:1.5;color:var(--ink)}
html body .tchart .tc-tbl th,html body .tchart .tc-tbl td{padding:7px 8px;border-bottom:1px solid var(--hair2);vertical-align:top;text-align:left}
html body .tchart .tc-tbl thead th,html body .tchart .tc-ltbl thead th{font-weight:600;color:var(--mute);border-bottom:1px solid var(--hair);white-space:nowrap;text-align:left}
html body .tchart .tc-tbl tbody th{font-weight:400;white-space:nowrap}
html body .tchart .tc-tbl tbody th b{display:block;font-weight:700}
html body .tchart .tc-tbl tbody th span{display:block;color:var(--mute);font-size:calc(var(--fs-note) * .92)}
html body .tchart .tc-tbl td.rd{font-variant-numeric:tabular-nums;color:var(--ink2);min-width:11em}
html body .tchart .tc-tbl td.no{color:var(--mute)}
html body .tchart .tc-st{font-weight:700;color:var(--ink2)}
html body .tchart .tc-st.sg-up{color:var(--up)}html body .tchart .tc-st.sg-dn{color:var(--dn)}
html body .tchart .tc-one{margin:10px 0 2px;font-size:var(--fs-12);line-height:1.65;color:var(--ink)}
html body .tchart .tc-one b{margin-right:8px;color:var(--acc)}
html body .tchart .tc-tabs{display:flex;gap:4px;margin:10px 0 6px;flex-wrap:wrap}
html body .tchart .tc-tabs button{font:inherit;font-size:var(--fs-note);border:1px solid var(--hair);background:var(--card);color:var(--ink2);border-radius:999px;padding:3px 12px;cursor:pointer;display:inline-flex;align-items:center}
html body .tchart .tc-tabs button[aria-selected="true"]{background:var(--ink);border-color:var(--ink);color:var(--paper)}
html body .tchart .tc-tabs button[hidden]{display:none}
html body .tchart .tc-tabs button .navvip{margin-left:5px}
html body .tchart .tc-tools{display:flex;gap:6px;margin:0 0 4px}
html body .tchart .tc-tog{font:inherit;font-size:var(--fs-note);border:1px dashed var(--hair);background:var(--card);color:var(--ink2);border-radius:999px;padding:2px 10px;cursor:pointer}
html body .tchart .tc-tog[aria-pressed="true"]{border-style:solid;border-color:var(--link);color:var(--link)}
html body .tchart .tc-tog[disabled]{opacity:.45;cursor:default}
html body .tchart .tc-legend{display:flex;gap:10px;flex-wrap:wrap;font-size:calc(var(--fs-note) * .92);color:var(--ink2);font-variant-numeric:tabular-nums;min-height:1.3em}
html body .tchart .tc-legend i{display:inline-block;width:14px;height:0;border-top:2px solid var(--brass);vertical-align:middle;margin-right:4px}
html body .tchart .tc-legend i.m60{border-top-color:var(--ink2)}html body .tchart .tc-legend i.m240{border-top:2px dashed var(--mute)}
html body .tchart .tc-legend i.bbk{border-top:1px dashed var(--link)}
html body .tchart .tc-main,html body .tchart .tc-sub{position:relative;margin-top:4px;touch-action:pan-y;outline:none}
html body .tchart .tc-main:focus-visible{outline:2px solid var(--brass);outline-offset:2px}
html body .tchart svg{display:block;width:100%;overflow:visible}
html body .tchart .tc-tip{position:absolute;top:6px;background:var(--card);border:1px solid var(--hair);border-radius:var(--rb);box-shadow:var(--sh);padding:6px 8px;font-size:calc(var(--fs-note) * .92);line-height:1.5;font-variant-numeric:tabular-nums;pointer-events:none;min-width:128px;z-index:2;color:var(--ink)}
html body .tchart .tc-evcap,html body .tchart .tc-subread{font-size:calc(var(--fs-note) * .92);color:var(--ink2);line-height:1.5;margin-top:2px;min-height:1.3em;font-variant-numeric:tabular-nums}
html body .tchart .tc-evcap b.sg-up{color:var(--up)}html body .tchart .tc-evcap b.sg-dn{color:var(--dn)}
html body .tchart .tc-note{font-size:var(--fs-note);color:var(--mute);margin:8px 0}
html body .tchart .tc-lock{margin:8px 0;padding:10px 12px;border:1px solid var(--brass);border-radius:var(--rb);font-size:var(--fs-note);color:var(--ink)}
html body .tchart .tc-lock a{color:var(--acc);font-weight:600}
html body .tchart .tc-lad{margin-top:14px}
html body .tchart .tc-ltbl th,html body .tchart .tc-ltbl td{padding:5px 8px;border-bottom:1px solid var(--hair2);text-align:left;vertical-align:top}
html body .tchart .tc-ltbl .n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
html body .tchart .tc-ltbl thead th.n{text-align:right}
html body .tchart .tc-ltbl .d{white-space:nowrap;color:var(--mute);font-variant-numeric:tabular-nums}
html body .tchart .tc-ltbl tr.cur td{font-weight:700;background:var(--tint)}
html body .tchart .tc-how{margin-top:14px;border-top:1px solid var(--hair2);padding-top:8px}
html body .tchart .tc-how>summary{cursor:pointer;font-size:var(--fs-12);font-weight:600;color:var(--acc);padding:4px 0}
html body .tchart .tc-cards{display:grid;gap:8px;margin-top:10px;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
html body .tchart .tc-card{border:1px solid var(--hair);border-radius:var(--rb);padding:10px 34px 10px 12px;position:relative;cursor:pointer;background:var(--card)}
html body .tchart .tc-card:hover{border-color:var(--ink2)}
html body .tchart .tc-card:focus-visible{outline:2px solid var(--brass);outline-offset:2px}
html body .tchart .tc-card[aria-pressed="true"]{border-color:var(--brass);box-shadow:inset 3px 0 0 var(--brass)}
html body .tchart .tc-card::after{content:"";position:absolute;right:12px;top:50%;width:8px;height:8px;border-right:2px solid var(--mute);border-top:2px solid var(--mute);transform:translateY(-50%) rotate(45deg)}
html body .tchart .tc-card .h{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
html body .tchart .tc-card .nm{font-weight:700}
html body .tchart .tc-card .rd{font-size:var(--fs-note);color:var(--ink2);font-variant-numeric:tabular-nums;margin-top:2px}
html body .tchart .tc-card .plain{margin:6px 0 0;font-size:var(--fs-12);line-height:1.6}
html body .tchart .tc-card .not{margin:4px 0 0;font-size:var(--fs-note);color:var(--mute);line-height:1.55}
html body .tchart .tc-card .not::before{content:"這不代表：";color:var(--ink2);font-weight:600}
html body .tchart .tc-ask{margin-top:10px;width:100%;font:inherit;font-size:var(--fs-12);font-weight:600;border:1px solid var(--brass);color:var(--acc);background:var(--card);border-radius:var(--rb);padding:9px;cursor:pointer}
html body .tchart .tc-ask:hover{background:var(--brass);color:var(--onbrass)}
html body .tchart .tc-foot{font-size:calc(var(--fs-note) * .92);color:var(--mute);line-height:1.55;margin-top:10px}
html body .tchart .g-grid{stroke:var(--hair2);stroke-width:1}
html body .tchart .g-ax{fill:var(--mute);font-size:calc(var(--fs-note) * .85);font-family:var(--ui);font-variant-numeric:tabular-nums}
html body .tchart .c-up{fill:var(--up);stroke:var(--up)}html body .tchart .c-dn{fill:var(--dn);stroke:var(--dn)}
html body .tchart .v-up{fill:var(--up);opacity:.35}html body .tchart .v-dn{fill:var(--dn);opacity:.35}
html body .tchart .m20{fill:none;stroke:var(--brass);stroke-width:1.6}
html body .tchart .m60{fill:none;stroke:var(--ink2);stroke-width:1.3}
html body .tchart .m240{fill:none;stroke:var(--mute);stroke-width:1.3;stroke-dasharray:4 3}
html body .tchart .bbf{fill:color-mix(in srgb,var(--link) 8%,transparent);stroke:none}
html body .tchart .bbl{fill:none;stroke:var(--link);stroke-width:1;stroke-dasharray:3 2}
html body .tchart .ref{stroke:var(--mute);stroke-width:1;stroke-dasharray:1 3}
html body .tchart .ref-t{fill:var(--mute);font-size:calc(var(--fs-note) * .78);font-family:var(--ui);paint-order:stroke;stroke:var(--card);stroke-width:3px;stroke-linejoin:round}
html body .tchart .lastpx{font-size:calc(var(--fs-note) * .85);font-weight:600;font-family:var(--ui);fill:var(--bandink)}
html body .tchart .lastbg.sg-up{fill:var(--up)}html body .tchart .lastbg.sg-dn{fill:var(--dn)}
html body .tchart .lastbg.sg-nt{fill:var(--ink)}html body .tchart .lastbg.sg-nt+.lastpx{fill:var(--paper)}
html body .tchart .mk-up{fill:var(--up)}html body .tchart .mk-dn{fill:var(--dn)}
html body .tchart .hlb{fill:color-mix(in srgb,var(--brass) 22%,transparent)}
html body .tchart .xh{stroke:var(--ink2);stroke-width:1;stroke-dasharray:3 3}
html body .tchart .zone{fill:var(--tint)}
html body .tchart .lk{fill:none;stroke:var(--ink);stroke-width:1.4}
html body .tchart .ld{fill:none;stroke:var(--brass);stroke-width:1.4}
html body .tchart .ladx{fill:none;stroke:var(--ink);stroke-width:1.6}
html body .tchart .lpdi{fill:none;stroke:var(--up);stroke-width:1.2}
html body .tchart .lmdi{fill:none;stroke:var(--dn);stroke-width:1.2}
html body .tchart .lobv{fill:none;stroke:var(--ink);stroke-width:1.4}
html body .tchart .lrs{fill:none;stroke:var(--acc);stroke-width:1.6}
html body .tchart .zero{stroke:var(--mute);stroke-width:1}
@media (max-width:640px){
 html body .tchart .tc-tbl thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
 html body .tchart .tc-tbl,html body .tchart .tc-tbl tbody,html body .tchart .tc-tbl tr,html body .tchart .tc-tbl tbody th,html body .tchart .tc-tbl td{display:block;width:auto}
 html body .tchart .tc-tbl tr{border:1px solid var(--hair);border-radius:var(--rb);background:var(--card);padding:8px 10px;margin:0 0 8px}
 html body .tchart .tc-tbl tbody th,html body .tchart .tc-tbl td{border:0;padding:2px 0;min-width:0}
 html body .tchart .tc-tbl tbody th{display:flex;gap:6px;align-items:baseline;white-space:normal}
 html body .tchart .tc-tbl tbody th b,html body .tchart .tc-tbl tbody th span{display:inline}
 html body .tchart .tc-tbl td.rd{min-width:0}
 html body .tchart .tc-tbl td[data-th]::before{content:attr(data-th) "：";color:var(--mute);font-weight:600}
 html body .tchart .tc-ltbl th,html body .tchart .tc-ltbl td{padding:5px 4px}
}
@media (prefers-reduced-motion:reduce){html body .tchart *{transition:none!important}}

html body .tchart .tc-main{min-height:calc(19.8rem + 12px);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
html body .tchart .tc-sub{min-height:calc(6.6rem + 8px)}
html body .tchart .tc-main.tc-ld{background:var(--tint);border-radius:var(--rb)}
html body .tchart .tc-main.tc-ld .tc-note{margin:0;padding:12px}
html body .tchart .lastbg{fill:var(--ink)}html body .tchart .lastpx{fill:var(--paper)}
html body .tchart .lvl{stroke:var(--ink2);stroke-width:1;stroke-dasharray:2 3}
html body .tchart .lvlb{fill:color-mix(in srgb,var(--mute) 14%,transparent)}
html body .tchart .lvl-k{stroke:var(--ink2);stroke-width:1.5}
html body .tchart .lvl-t{fill:var(--ink2);font-size:calc(var(--fs-note) * .85);font-family:var(--ui);font-variant-numeric:tabular-nums;paint-order:stroke;stroke:var(--card);stroke-width:3px;stroke-linejoin:round}
html body .tchart .tc-lx{margin-top:4px}
html body .tchart .tc-lx>summary{cursor:pointer;font-size:var(--fs-12);font-weight:600;color:var(--acc);padding:4px 0}

html body .tchart .tc-sum{margin:10px 0 10px;padding:14px 16px 12px;background:var(--card);border:1px solid var(--hair);border-radius:var(--rb)}
html body .tchart .tc-q{display:block;font:700 var(--fs-18)/1.35 var(--ui);color:var(--ink);margin:0 0 8px}
html body .tchart p.tc-as{max-width:none;margin:8px 0 0;font:400 var(--fs-14)/1.55 var(--ui);color:var(--ink2)}
html body .tchart p.tc-as em{font-style:normal;font-weight:600}
html body .tchart .tc-tabs{gap:6px}
html body .tchart .tc-tabs button{min-height:32px;padding:0 14px;font:600 var(--fs-12)/1 var(--ui)}
html body .tchart .tc-tools{gap:6px;margin:0 0 6px}
html body .tchart .tc-tog{min-height:30px;padding:0 12px;font:500 var(--fs-12)/1 var(--ui)}
html body .tchart .tc-legend{font-size:var(--fs-note)}
html body .tchart .g-ax{font-size:calc(var(--fs-note) * .92)}
html body .tchart .lvl{stroke:var(--mute);stroke-width:1;stroke-dasharray:2 3}
html body .tchart .lvl-t{font-size:calc(var(--fs-note) * .92);fill:var(--ink2);stroke-width:0}
html body .tchart .lvl-t .lvn{fill:var(--mute)}
html body .tchart .m20{stroke-width:2}html body .tchart .m60{stroke-width:1.6}
html body .tchart .tc-adv,html body .tchart .tc-how{margin:10px 0 0;padding-top:0;border-top:1px solid var(--hair2)}
html body .tchart .tc-adv>summary,html body .tchart .tc-how>summary{cursor:pointer;min-height:42px;display:flex;align-items:center;gap:0 8px;padding:4px 0;font:600 var(--fs-14)/1.4 var(--ui);color:var(--ink);list-style:none}
html body .tchart .tc-adv>summary::-webkit-details-marker,html body .tchart .tc-how>summary::-webkit-details-marker{display:none}
html body .tchart .tc-adv>summary::before,html body .tchart .tc-how>summary::before{content:"";width:9px;height:9px;border-right:2px solid var(--mute);border-bottom:2px solid var(--mute);transform:rotate(-45deg);margin:0 4px 0 2px;transition:transform .15s}
html body .tchart .tc-adv[open]>summary::before,html body .tchart .tc-how[open]>summary::before{transform:rotate(45deg)}
html body .tchart .tc-adv>summary small{font-weight:400;color:var(--mute);font-size:var(--fs-note)}
html body .tchart .tc-num{margin:10px 0 0}
@media (max-width:640px){
 html body .tchart .tc-main{min-height:calc(17.8rem + 12px)}
 html body .tchart .tc-q{font-size:var(--fs-16)}
}
.vc{margin:0 0 20px;padding:12px 14px;border:1px solid var(--hair);border-radius:var(--r);background:var(--card);max-width:680px}.vc-h{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:0 0 8px}.vc-k{font:600 var(--fs-12)/1.4 var(--ui);letter-spacing:.1em;color:var(--mute)}.vc-t{font:700 var(--fs-16)/1.4 var(--ui);color:var(--ink)}.vc-t.sg-up{color:var(--up)}.vc-t.sg-dn{color:var(--dn)}.vc-dl{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;margin:0;font:400 var(--fs-14)/1.6 var(--ui);color:var(--ink2)}.vc-dl dt{font-weight:600;color:var(--mute);white-space:nowrap}.vc-dl dd{margin:0;min-width:0}.vc-dl b{font-family:var(--mono);font-weight:600;color:var(--ink)}.vc-n{margin:8px 0 0;font:500 var(--fs-12)/1.5 var(--ui);color:var(--mute)}.vc-ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}.vc-ul li{margin:0}.vc-l{display:inline-block;margin:0 8px 0 0;font-weight:600;color:var(--ink)}@media (max-width:480px){.vc-dl{grid-template-columns:1fr;gap:2px}.vc-dl dd{margin-bottom:6px}}.vh{list-style:none;margin:6px 0 0;padding:0;max-width:680px}.vh li{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding:8px 0;border-bottom:1px solid var(--hair2);font:400 var(--fs-14)/1.6 var(--ui);color:var(--ink2)}.vh li:last-child{border-bottom:0}.vh .d{font-family:var(--mono);color:var(--mute);min-width:3.2em}.vh .c{color:var(--ink2)}.vh .vh-m{font-weight:700;color:var(--ink)}.vh .vh-m.sg-up{color:var(--up)}.vh .vh-m.sg-dn{color:var(--dn)}.vh .e{flex:1 1 100%;padding-left:calc(3.2em + 10px)}.vh b{font-family:var(--mono);font-weight:600;color:var(--ink)}@media (max-width:480px){.vh .e{padding-left:0}}.pc{margin:4px 0 22px;padding:12px 14px 10px;border:1px solid var(--hair2);border-radius:var(--r);background:var(--card);max-width:620px}.pc .pc-t{font:600 var(--fs-12)/1.4 var(--ui);color:var(--mute);letter-spacing:.04em;margin:0 0 8px}.pc-r{display:grid;grid-template-columns:minmax(64px,34%) 1fr auto;gap:10px;align-items:center;margin:0 0 6px;font:500 var(--fs-14)/1.3 var(--ui)}.pc-r .l{color:var(--ink2);overflow-wrap:anywhere}.pc-r .v{font-family:var(--mono);color:var(--ink);white-space:nowrap;text-align:right}.pc-r .b{display:block;height:10px;border-radius:5px;background:var(--hair2);overflow:hidden}.pc-r .b i{display:block;height:100%;border-radius:5px;background:var(--acc)}.pc-r .b2{display:grid;gap:3px}.pc-r .b2 .b i.s{background:var(--tone-1,var(--warn))}.pc-r .v2{display:grid;gap:3px;font-family:var(--mono);text-align:right}.pc .lg{display:flex;flex-wrap:wrap;gap:4px 14px;margin:2px 0 8px;font:500 var(--fs-12)/1.4 var(--ui);color:var(--ink2)}.pc .lg i{display:inline-block;width:10px;height:6px;border-radius:3px;margin-right:5px;background:var(--acc);vertical-align:middle}.pc .lg i.s{background:var(--tone-1,var(--warn))}.pc svg{display:block;width:100%;height:auto;max-width:560px;overflow:visible}.pc .ax{stroke:var(--hair2);stroke-width:1}.pc .rg{stroke:var(--acc);stroke-width:6;stroke-linecap:round;opacity:.35}.pc .md{fill:var(--ink)}.pc .dt{fill:var(--card);stroke:var(--mute);stroke-width:2}.pc .dn2{fill:var(--acc)}.pc .ar{stroke-width:2.5;stroke-linecap:round}.pc .ar.up{stroke:var(--up)}.pc .ar.dn{stroke:var(--dn)}.pc .dn2.up{fill:var(--up)}.pc .dn2.dn{fill:var(--dn)}.pc .tx{font:500 var(--fs-12) var(--ui);fill:var(--ink2)}.pc .tv{font:600 var(--fs-12) var(--mono);fill:var(--ink)}.pc figcaption{margin-top:6px;font:500 var(--fs-12)/1.4 var(--ui);color:var(--mute)}.pc-r .rb{position:relative;display:block;height:16px}.pc-r .rb::before{content:'';position:absolute;left:0;right:0;top:7.5px;height:1px;background:var(--hair2)}.pc-r .rb i{position:absolute;display:block}.pc-r .rb .rg{top:5px;height:6px;border-radius:3px;background:var(--acc);opacity:.35}.pc-r .rb .mk{top:1px;width:3px;height:14px;margin-left:-1.5px;border-radius:1px;background:var(--ink)}.pc-r .rb .ln{top:6.5px;height:3px;border-radius:2px;background:var(--mute)}.pc-r .rb .ln.up{background:var(--up)}.pc-r .rb .ln.dn{background:var(--dn)}.pc-r .rb .d0,.pc-r .rb .d1{top:3.5px;width:9px;height:9px;margin-left:-4.5px;border-radius:50%}.pc-r .rb .d0{background:var(--card);border:2px solid var(--mute);box-sizing:border-box}.pc-r .rb .d1{background:var(--acc)}.pc-r .rb .d1.up{background:var(--up)}.pc-r .rb .d1.dn{background:var(--dn)}@media (max-width:480px){.pc-r{grid-template-columns:minmax(56px,30%) 1fr auto;gap:8px}}