:root{
  --bg:#EFF1F3;
  --surface:#FFFFFF;
  --surface-2:#F5F6F8;
  --line:#DCE0E5;
  --line-soft:#E7EAEE;
  --ink:#131820;
  --ink-2:#3D4854;
  --muted:#6B7784;
  --faint:#98A3AF;
  --brass:#9C7118;
  --brass-soft:#F0E3C6;
  --red:#CE342C;
  --green:#0B8A5F;
  --tag-anchor:#9C7118;
  --tag-chain:#2F6F8C;
  --tag-temp:#75589E;
  --tag-event:#B14F24;
  --shadow:0 1px 2px rgba(19,24,32,.06), 0 6px 18px -10px rgba(19,24,32,.22);
  --up:var(--red);
  --down:var(--green);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0E1216;
    --surface:#161B21;
    --surface-2:#1C232A;
    --line:#28313A;
    --line-soft:#212932;
    --ink:#E7EBEF;
    --ink-2:#BAC4CE;
    --muted:#8593A1;
    --faint:#657282;
    --brass:#E0A73C;
    --brass-soft:#2E2716;
    --red:#FF6B62;
    --green:#2FD69C;
    --tag-anchor:#E0A73C;
    --tag-chain:#5FB4D6;
    --tag-temp:#B294E0;
    --tag-event:#F0864F;
    --shadow:0 1px 2px rgba(0,0,0,.4), 0 8px 24px -14px rgba(0,0,0,.8);
  }
}
:root[data-theme="dark"]{
  --bg:#0E1216;
  --surface:#161B21;
  --surface-2:#1C232A;
  --line:#28313A;
  --line-soft:#212932;
  --ink:#E7EBEF;
  --ink-2:#BAC4CE;
  --muted:#8593A1;
  --faint:#657282;
  --brass:#E0A73C;
  --brass-soft:#2E2716;
  --red:#FF6B62;
  --green:#2FD69C;
  --tag-anchor:#E0A73C;
  --tag-chain:#5FB4D6;
  --tag-temp:#B294E0;
  --tag-event:#F0864F;
  --shadow:0 1px 2px rgba(0,0,0,.4), 0 8px 24px -14px rgba(0,0,0,.8);
}

*{box-sizing:border-box;}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:"Noto Sans TC","Archivo",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:15px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
#app{
  max-width:520px;
  margin:0 auto;
  min-height:100vh;
  background:var(--bg);
  padding-bottom:calc(78px + env(safe-area-inset-bottom));
  position:relative;
}
#app[data-conv="west"]{--up:var(--green);--down:var(--red);}

.num{font-family:"IBM Plex Mono",ui-monospace,monospace;font-variant-numeric:tabular-nums;}
.up{color:var(--up);}
.down{color:var(--down);}
.flat{color:var(--muted);}

/* ---------- header ---------- */
.hdr{
  position:sticky;top:0;z-index:40;
  background:color-mix(in srgb, var(--bg) 88%, transparent);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line-soft);
  padding:calc(10px + env(safe-area-inset-top)) 16px 0;
}
.hdr-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px;}
.brand{
  font-family:"Archivo","Noto Sans TC",sans-serif;font-weight:700;font-size:19px;
  letter-spacing:-.02em;margin:0;display:flex;align-items:baseline;gap:7px;
}
.brand span{
  font-family:"IBM Plex Mono",monospace;font-size:9.5px;font-weight:500;
  letter-spacing:.16em;color:var(--brass);text-transform:uppercase;
  border:1px solid var(--brass);border-radius:3px;padding:1px 4px;
  position:relative;top:-2px;
}
.clock{
  font-family:"IBM Plex Mono",monospace;font-variant-numeric:tabular-nums;
  font-size:13px;font-weight:500;color:var(--ink-2);
}
.clock em{font-style:normal;color:var(--faint);font-size:10px;letter-spacing:.08em;margin-right:5px;}

/* market dial rail */
.rail{display:flex;gap:6px;padding:11px 0 10px;overflow-x:auto;scrollbar-width:none;}
.rail::-webkit-scrollbar{display:none;}
.dial{
  flex:1 0 auto;min-width:60px;
  border:1px solid var(--line);border-radius:8px;
  background:var(--surface);padding:6px 8px 7px;
  display:flex;flex-direction:column;gap:3px;cursor:pointer;
  transition:border-color .2s, transform .12s;
}
.dial:active{transform:scale(.97);}
.dial.is-open{border-color:var(--brass);}
.dial-t{display:flex;align-items:center;gap:5px;}
.pip{width:6px;height:6px;border-radius:50%;background:var(--faint);flex:none;}
.dial.is-open .pip{background:var(--brass);box-shadow:0 0 0 3px var(--brass-soft);animation:pulse 2.6s ease-in-out infinite;}
.dial.is-edge .pip{background:var(--brass);opacity:.55;}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.42}}
.dial-n{font-size:11.5px;font-weight:700;letter-spacing:.02em;}
.dial-s{font-family:"IBM Plex Mono",monospace;font-size:9.5px;color:var(--muted);letter-spacing:.01em;}

/* ---------- generic ---------- */
.view{padding:14px 16px 8px;display:none;}
.view.on{display:block;animation:rise .34s cubic-bezier(.2,.7,.3,1);}
@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

.eyebrow{
  font-family:"IBM Plex Mono",monospace;font-size:10px;font-weight:500;
  letter-spacing:.15em;text-transform:uppercase;color:var(--faint);
  display:flex;align-items:center;gap:9px;margin:22px 0 9px;
}
.eyebrow:first-child{margin-top:2px;}
.eyebrow::after{content:"";flex:1;height:1px;background:var(--line);}
.eyebrow b{color:var(--brass);font-weight:500;}

.note{font-size:11.5px;color:var(--faint);line-height:1.5;margin:8px 2px 0;}

/* ---------- risk strip ---------- */
.strip{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:0 16px 2px;}
.strip::-webkit-scrollbar{display:none;}
.risk{
  flex:0 0 auto;background:var(--surface);border:1px solid var(--line);
  border-radius:9px;padding:8px 11px;min-width:96px;
}
.risk-l{font-size:10.5px;color:var(--muted);letter-spacing:.02em;}
.risk-v{font-family:"IBM Plex Mono",monospace;font-variant-numeric:tabular-nums;font-size:15px;font-weight:600;margin-top:1px;letter-spacing:-.01em;}
.risk-d{font-family:"IBM Plex Mono",monospace;font-size:10.5px;font-weight:500;}

/* ---------- market card ---------- */
.mkt{
  background:var(--surface);border:1px solid var(--line);border-radius:13px;
  box-shadow:var(--shadow);margin-bottom:11px;overflow:hidden;
}
.mkt.is-open{border-color:color-mix(in srgb, var(--brass) 45%, var(--line));}
.mkt-head{padding:13px 14px 0;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;}
.mkt-id{display:flex;flex-direction:column;gap:2px;min-width:0;}
.mkt-name{font-size:16px;font-weight:700;letter-spacing:.01em;display:flex;align-items:center;gap:7px;}
.mkt-name i{font-style:normal;font-size:15px;line-height:1;}
.mkt-idx{font-family:"IBM Plex Mono",monospace;font-size:10.5px;color:var(--faint);letter-spacing:.04em;}
.status{
  flex:none;font-family:"IBM Plex Mono",monospace;font-size:9.5px;font-weight:600;
  letter-spacing:.09em;text-transform:uppercase;padding:3px 7px;border-radius:5px;
  border:1px solid var(--line);color:var(--muted);background:var(--surface-2);white-space:nowrap;
}
.status.s-open{color:var(--brass);border-color:var(--brass);background:var(--brass-soft);}
.status.s-edge{color:var(--brass);border-color:color-mix(in srgb,var(--brass) 40%,transparent);background:transparent;}

.mkt-body{padding:8px 14px 0;display:flex;align-items:flex-end;justify-content:space-between;gap:12px;}
.big{font-family:"IBM Plex Mono",monospace;font-variant-numeric:tabular-nums;font-size:30px;font-weight:600;letter-spacing:-.025em;line-height:1.05;}
.delta{display:flex;flex-direction:column;align-items:flex-end;gap:1px;font-family:"IBM Plex Mono",monospace;font-variant-numeric:tabular-nums;}
.delta-p{font-size:17px;font-weight:600;letter-spacing:-.01em;}
.delta-a{font-size:11.5px;font-weight:500;opacity:.8;}

.spark{display:block;width:100%;height:46px;margin:6px 0 0;}

/* session progress */
.sess{padding:2px 14px 12px;}
.sess-bar{height:3px;border-radius:2px;background:var(--line-soft);position:relative;overflow:hidden;}
.sess-fill{position:absolute;inset:0 auto 0 0;background:var(--brass);border-radius:2px;width:0;transition:width .9s cubic-bezier(.3,.8,.4,1);}
.sess-fill.dim{background:var(--line);}
.sess-meta{display:flex;justify-content:space-between;gap:8px;margin-top:5px;font-family:"IBM Plex Mono",monospace;font-size:10px;color:var(--faint);letter-spacing:.02em;}

/* 圖表切換器 — 點哪一個，上面的大圖就換成哪一個指數 */
.picks{display:flex;gap:1px;border-top:1px solid var(--line-soft);background:var(--line-soft);}
.pick{
  flex:1 1 0;min-width:0;background:var(--surface-2);border:0;cursor:pointer;
  font-family:inherit;padding:8px 5px 9px;position:relative;
  display:flex;flex-direction:column;align-items:center;gap:2px;
  transition:background .18s;-webkit-tap-highlight-color:transparent;
}
.pick-n{font-size:10.5px;color:var(--muted);max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .18s;}
.pick-v{font-family:"IBM Plex Mono",monospace;font-variant-numeric:tabular-nums;font-size:11.5px;font-weight:600;letter-spacing:-.01em;}
.pick.is-on{background:var(--surface);}
.pick.is-on::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--brass);}
.pick.is-on .pick-n{color:var(--ink);font-weight:500;}
.pick:hover:not(.is-on){background:color-mix(in srgb, var(--surface) 55%, var(--surface-2));}

.stats{
  display:flex;flex-wrap:wrap;gap:4px 14px;padding:7px 14px 9px;
  border-top:1px solid var(--line-soft);background:var(--surface-2);
  font-family:"IBM Plex Mono",monospace;font-variant-numeric:tabular-nums;
  font-size:10px;color:var(--faint);letter-spacing:.02em;
}
.stats b{font-weight:500;color:var(--muted);}

/* 切換指數時，大圖與數字做一次輕微的換頁 */
.mkt[data-swap] .mkt-body,
.mkt[data-swap] .spark,
.mkt[data-swap] .mkt-idx{animation:swap .3s cubic-bezier(.2,.7,.3,1);}
@keyframes swap{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

/* ---------- watchlist ---------- */
.chips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:0 -16px 2px;padding:0 16px 4px;}
.chips::-webkit-scrollbar{display:none;}
.chip{
  flex:0 0 auto;font-size:12px;font-weight:500;padding:5px 11px;border-radius:999px;
  border:1px solid var(--line);background:var(--surface);color:var(--ink-2);
  cursor:pointer;display:flex;align-items:center;gap:6px;transition:.16s;
  font-family:inherit;
}
.chip:hover{border-color:var(--faint);}
.chip[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink);}
.chip[aria-pressed="true"] .dot{box-shadow:0 0 0 2px color-mix(in srgb,var(--bg) 60%,transparent);}
.dot{width:6px;height:6px;border-radius:50%;flex:none;}
.d-anchor{background:var(--tag-anchor);} .d-chain{background:var(--tag-chain);}
.d-temp{background:var(--tag-temp);}    .d-event{background:var(--tag-event);}

.stock{
  display:flex;align-items:center;gap:11px;
  background:var(--surface);border:1px solid var(--line);border-radius:11px;
  padding:10px 12px;margin-bottom:7px;position:relative;overflow:hidden;
}
.stock::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2.5px;background:var(--flag,var(--line));}
.st-id{min-width:0;flex:1;}
.st-top{display:flex;align-items:baseline;gap:7px;}
.st-code{font-family:"IBM Plex Mono",monospace;font-size:10.5px;font-weight:500;color:var(--faint);letter-spacing:.03em;}
.st-name{font-size:14.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.st-why{font-size:11.5px;color:var(--muted);line-height:1.45;margin-top:1px;display:flex;align-items:center;gap:6px;}
.st-why .dot{position:relative;top:0;}
.st-spark{flex:none;width:56px;height:26px;opacity:.9;}
.st-px{text-align:right;flex:none;font-family:"IBM Plex Mono",monospace;font-variant-numeric:tabular-nums;}
.st-v{font-size:14px;font-weight:600;letter-spacing:-.01em;}
.st-d{font-size:11.5px;font-weight:500;}

/* 主場標記 */
.home{
  font-style:normal;font-family:"IBM Plex Mono",monospace;font-size:9px;font-weight:600;
  letter-spacing:.1em;color:var(--brass);border:1px solid var(--brass);
  border-radius:3px;padding:0 4px;line-height:1.5;
}

/* 指定追蹤 — 別人指派的，視覺上刻意與核心區分開 */
.stock.assigned::before{background:repeating-linear-gradient(180deg,var(--flag) 0 5px,transparent 5px 9px);}
.by{
  display:inline-flex;align-items:center;gap:4px;flex:none;
  font-family:"IBM Plex Mono",monospace;font-size:9.5px;font-weight:500;letter-spacing:.04em;
  color:var(--muted);background:var(--surface-2);border:1px solid var(--line);
  border-radius:4px;padding:1px 5px;
}
.by::before{content:"";width:4px;height:4px;border-radius:50%;background:var(--muted);}
.since{font-family:"IBM Plex Mono",monospace;font-size:9.5px;color:var(--faint);letter-spacing:.03em;}

.empty{
  border:1px dashed var(--line);border-radius:11px;padding:14px 14px 13px;background:var(--surface);
}
.empty-t{font-size:14px;font-weight:700;margin-bottom:5px;}
.empty p{margin:0 0 12px;font-size:12.5px;line-height:1.65;color:var(--muted);max-width:52ch;}
.fmt{background:var(--surface-2);border:1px solid var(--line-soft);border-radius:8px;padding:9px 10px;}
.fmt-h{
  font-family:"IBM Plex Mono",monospace;font-size:9.5px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--brass);margin-bottom:6px;
}
.fmt code{
  display:block;font-family:"IBM Plex Mono",monospace;font-size:11px;line-height:1.75;
  color:var(--ink-2);white-space:pre;overflow-x:auto;
}
.fmt code + code{color:var(--faint);}

/* event cards */
.evt{
  background:var(--surface);border:1px solid var(--line);border-radius:11px;
  padding:11px 12px;margin-bottom:7px;display:flex;align-items:center;gap:12px;
}
.cd{
  flex:none;width:46px;height:46px;border-radius:9px;background:var(--surface-2);
  border:1px solid var(--line);display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:0;
}
.cd b{font-family:"IBM Plex Mono",monospace;font-size:17px;font-weight:600;line-height:1.05;color:var(--tag-event);letter-spacing:-.02em;}
.cd i{font-style:normal;font-size:9px;color:var(--faint);letter-spacing:.06em;}
.evt-b{min-width:0;flex:1;}
.evt-t{font-size:14px;font-weight:700;display:flex;align-items:baseline;gap:7px;}
.evt-s{font-size:11.5px;color:var(--muted);margin-top:1px;}
.evt-x{font-family:"IBM Plex Mono",monospace;font-size:10px;color:var(--faint);letter-spacing:.02em;margin-top:3px;}

/* cross-market signals */
.sig{background:var(--surface);border:1px solid var(--line);border-radius:11px;overflow:hidden;}
.sig-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid var(--line-soft);}
.sig-row:last-child{border-bottom:0;}
.sig-l{min-width:0;}
.sig-n{font-size:13.5px;font-weight:500;}
.sig-d{font-size:11px;color:var(--faint);margin-top:1px;}
.sig-v{font-family:"IBM Plex Mono",monospace;font-variant-numeric:tabular-nums;font-size:15px;font-weight:600;flex:none;letter-spacing:-.01em;}

/* ---------- method / logic view ---------- */
.doc h2{
  font-family:"Archivo","Noto Sans TC",sans-serif;font-size:19px;font-weight:700;letter-spacing:-.02em;
  margin:26px 0 7px;text-wrap:balance;
}
.doc h2:first-of-type{margin-top:4px;}
.doc p{margin:0 0 11px;color:var(--ink-2);font-size:14px;line-height:1.72;max-width:62ch;}
.doc strong{color:var(--ink);font-weight:700;}
.role{
  background:var(--surface);border:1px solid var(--line);border-radius:11px;
  padding:12px 13px;margin-bottom:8px;border-left:2.5px solid var(--rc,var(--line));
}
.role-h{display:flex;align-items:center;gap:8px;font-size:14.5px;font-weight:700;}
.role-h span{
  margin-left:auto;font-family:"IBM Plex Mono",monospace;font-size:10px;
  color:var(--faint);letter-spacing:.06em;font-weight:500;
}
.role p{margin:5px 0 0;font-size:13px;line-height:1.65;color:var(--ink-2);}
.role code{
  font-family:"IBM Plex Mono",monospace;font-size:11.5px;background:var(--surface-2);
  border:1px solid var(--line-soft);border-radius:4px;padding:1px 5px;color:var(--ink-2);
  white-space:nowrap;
}
.chain{
  background:var(--surface);border:1px solid var(--line);border-radius:11px;
  padding:13px;overflow-x:auto;
}
.rhythm{display:flex;flex-direction:column;gap:0;background:var(--surface);border:1px solid var(--line);border-radius:11px;overflow:hidden;}
.rh{display:flex;gap:12px;padding:11px 13px;border-bottom:1px solid var(--line-soft);}
.rh:last-child{border-bottom:0;}
.rh b{
  flex:none;width:58px;font-family:"IBM Plex Mono",monospace;font-size:10.5px;
  font-weight:600;letter-spacing:.06em;color:var(--brass);padding-top:3px;
}
.rh div{font-size:13px;line-height:1.6;color:var(--ink-2);}
.rule{display:flex;gap:10px;font-size:13.5px;line-height:1.65;color:var(--ink-2);margin-bottom:9px;}
.rule b{flex:none;font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--brass);padding-top:3px;letter-spacing:.05em;}

/* ---------- tab bar ---------- */
.tabs{
  position:fixed;bottom:0;left:0;right:0;z-index:50;
  display:flex;justify-content:center;gap:2px;
  background:color-mix(in srgb, var(--bg) 92%, transparent);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border-top:1px solid var(--line);
  padding:7px 12px calc(7px + env(safe-area-inset-bottom));
}
.tabs-in{display:flex;width:100%;max-width:520px;gap:2px;}
.tab{
  flex:1;background:none;border:0;cursor:pointer;font-family:inherit;
  padding:5px 4px 4px;border-radius:9px;color:var(--faint);
  display:flex;flex-direction:column;align-items:center;gap:3px;transition:color .18s;
}
.tab svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.tab b{font-size:10.5px;font-weight:500;letter-spacing:.03em;}
.tab[aria-selected="true"]{color:var(--brass);}
.tab:focus-visible,.chip:focus-visible,.dial:focus-visible{outline:2px solid var(--brass);outline-offset:2px;}

.toggle{
  display:flex;border:1px solid var(--line);border-radius:7px;overflow:hidden;background:var(--surface);
}
.toggle button{
  font-family:inherit;font-size:11px;font-weight:500;padding:3px 8px;border:0;
  background:none;color:var(--muted);cursor:pointer;transition:.15s;
}
.toggle button[aria-pressed="true"]{background:var(--ink);color:var(--bg);}
.settings{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;background:var(--surface);border:1px solid var(--line);border-radius:11px;margin-bottom:8px;}
.settings-l{font-size:13.5px;font-weight:500;}
.settings-l em{display:block;font-style:normal;font-size:11.5px;color:var(--faint);font-weight:400;margin-top:1px;}

.demo{
  display:flex;gap:9px;align-items:flex-start;
  background:var(--brass-soft);border:1px solid color-mix(in srgb,var(--brass) 32%,transparent);
  border-radius:10px;padding:10px 12px;margin-bottom:14px;
  font-size:12px;line-height:1.55;color:var(--ink-2);
}
.demo b{color:var(--brass);font-family:"IBM Plex Mono",monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;flex:none;padding-top:1px;}

@media (prefers-reduced-motion: reduce){
  *{animation:none !important;transition:none !important;}
}

/* =========================================================================
   即時版新增
   ========================================================================= */

/* 報價新舊 — 顯示在盤中進度條下方中央 */
.sess-meta{align-items:center;}
.fresh{
  font-family:"IBM Plex Mono",monospace;font-size:9.5px;letter-spacing:.02em;
  padding:1px 5px;border-radius:4px;border:1px solid transparent;white-space:nowrap;
}
.fresh.f-live{color:var(--brass);border-color:color-mix(in srgb,var(--brass) 38%,transparent);background:var(--brass-soft);}
.fresh.f-lag {color:var(--faint);border-color:var(--line-soft);}
.fresh.f-bad {color:var(--down);border-color:color-mix(in srgb,var(--down) 32%,transparent);}

/* 沒有走勢資料時的佔位 — 明確留白，不畫假線 */
.nodata{
  background:repeating-linear-gradient(90deg,var(--line-soft) 0 6px,transparent 6px 12px);
  opacity:.5;border-radius:2px;
}
.spark.nodata{height:46px;margin-top:6px;}
.st-spark.nodata{width:56px;height:26px;flex:none;}

/* 頂部資料狀態列 */
.dstate{
  font-family:"IBM Plex Mono",monospace;font-size:9.5px;letter-spacing:.03em;
  padding:1px 6px;border-radius:4px;border:1px solid var(--line);
  color:var(--faint);background:var(--surface);white-space:nowrap;
}
.dstate.ok   {color:var(--brass);border-color:color-mix(in srgb,var(--brass) 34%,transparent);}
.dstate.stale{color:var(--tag-event);border-color:color-mix(in srgb,var(--tag-event) 38%,transparent);}
.dstate.bad  {color:var(--down);border-color:color-mix(in srgb,var(--down) 34%,transparent);}
.clock-wrap{display:flex;align-items:center;gap:7px;}

/* 供應鏈圖 */
.chain-row{display:flex;align-items:stretch;min-width:430px;}
.chain-cell{flex:1;display:flex;align-items:center;}
.chain-node{flex:1;text-align:center;}
.chain-t{font-family:"IBM Plex Mono",monospace;font-size:11.5px;font-weight:600;color:var(--ink);}
.chain-s{font-size:10px;color:var(--muted);margin-top:2px;}
.chain-p{font-family:"IBM Plex Mono",monospace;font-size:11px;font-weight:600;margin-top:3px;}
.chain-bar{height:3px;border-radius:2px;opacity:.75;margin:6px 8px 0;}
.chain-arrow{flex:none;color:var(--brass);font-family:"IBM Plex Mono",monospace;font-size:12px;padding-bottom:22px;}
.chain-note{font-size:10.5px;color:var(--faint);margin-top:9px;letter-spacing:.01em;}

/* 事件卡加上報價欄後的排版微調 */
.evt .st-px{margin-left:auto;}

/* 基金淨值日期 — 提醒這不是盤中報價 */
.nav-date{
  font-family:"IBM Plex Mono",monospace;font-size:9px;color:var(--faint);
  letter-spacing:.03em;margin-top:1px;white-space:nowrap;
}
/* 沒有走勢資料時，說清楚而不是留一條看起來像壞掉的虛線 */
.spark.nodata{
  position:relative;
}
.spark.nodata::after{
  content:"此指數無分時資料";
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-size:10.5px;color:var(--faint);letter-spacing:.04em;
}
