/**
 * site.css
 * 2026-09 改版（對齊 0923 設計稿）子頁面共用樣式：自選清單／選股篩選器／
 * 類股分析／完整財報下載這幾頁共用的色票 token、頂部標題列、頁尾、卡片、
 * 按鈕、表格。色票跟頂列/頁尾的規則是從 index.html 複製過來的同一套
 * （首頁本身仍用自己的內嵌樣式，還沒改成引用這份檔案——兩邊修改要同步）。
 * 日間「Modern Financial Analytics」／夜間「Terminal Obsidian」兩套色票，
 * 結構跟 index.html 一樣：bare :root 是日間、prefers-color-scheme 跟
 * [data-theme="dark"] 各覆寫一次夜間。
 */
:root{
  /* color-scheme 是修「下拉選單在夜間模式看不清楚」的關鍵：這個屬性
     沒宣告的話，瀏覽器原生 UI（<select> 展開的選項清單、捲軸等）一律
     用系統的淺色樣式渲染，跟頁面本身的深色 CSS 完全無關——選單本身
     （收合狀態）因為有自己的 background/color 樣式看起來還好，但點開
     選項清單時，瀏覽器會用「淺色底 + 我們設的淺色文字」渲染，文字
     跟背景幾乎同色，這才是使用者反映的真正原因。宣告這個屬性後，
     瀏覽器原生 UI 會自動換成對應色階，不用自己刻一套下拉選單樣式。 */
  color-scheme: light;
  /* 2026-09 改版：「Modern Financial Analytics」藍色系現代金融
     dashboard（跟使用者一起討論、參考 Google Stitch 生成的設計稿定案），
     取代原本帳本紙配色——沿用同一套變數名稱（--brass 等）只是為了不用
     改動全站上百處引用這些變數的元件規則，語意上 --brass 現在代表的是
     這套新設計裡的青藍強調色，不是真的黃銅色，變數名稱本身先不改，
     避免這次改版牽動範圍過大。 */
  --bg: #f8fafc;
  --panel: #ffffff;
  --panel-2: #f1f5f9;
  --hairline: #e2e8f0;
  --bone: #0f172a;
  --bone-dim: #334155;
  --faint: #64748b;
  --brass: #0284c7;
  --brass-dim: #026aa3;
  --brass-hover: #0ea5e9;
  --accent-ink: #ffffff;
  --up: #dc2626;     /* 台股慣例：紅漲 */
  --down: #16a34a;   /* 台股慣例：綠跌 */
  --body-bg: var(--bg);

  /* 字級比例尺（modular type scale）：全站共用同一套字級，彼此間
     維持大致 1.08～1.27 倍的漸進比例——小字級之間差距刻意壓得小
     （財報表格要在很小的空間裡同時分辨標籤／次要資訊／內文三種
     層級），到標題級距之後才跳得比較開，層級感才明顯。這套比例尺
     是回頭盤點全站所有 font-size 後訂出來的：長期下來每個元件各自
     微調，變成 10 / 10.5 / 11 / 11.5 / 12 / 12.5 / 13 / 13.5 / 14 /
     14.5 / 15 這種每 0.5px 一階的雜訊，肉眼幾乎分不出差異、也看不
     出誰比誰重要，這裡收斂回 9 個有語意的級距，之後新增元件直接挑
     對應語意的字級用即可，不要再手動微調出介於兩級之間的新數字。
     字級（小／中／大）切換是用 body{zoom} 整頁縮放（見 fontSize.js），
     跟這裡的比例尺是兩件獨立的事——這裡訂的是「中」字級下彼此的
     相對關係，切換大小級距時全部級距等比例一起縮放，相對關係不變。 */
  --fs-2xs: 10px;   /* 最小徽章／角標，例如自選清單縮圖代號 */
  --fs-xs: 11px;    /* eyebrow、表格欄位標籤、大寫小標籤 */
  --fs-sm: 12px;    /* 次要說明文字、提示文字、小按鈕 */
  --fs-base: 13px;  /* 預設內文／表格資料，全站最常用的字級 */
  --fs-md: 14px;    /* 稍微強調的段落、分頁按鈕文字 */
  --fs-lg: 16px;    /* 中標題、代號等強調文字——同時也是 <input>／
                       <select> 不能再小的下限：手機 Safari 對小於
                       16px 的表單欄位對焦時會自動放大整個頁面
                       （iOS 已知行為），這裡的 16px 剛好兩種用途
                       都吃得到，不用另外開一個一樣數值的變數。 */
  --fs-xl: 18px;    /* 卡片／面板標題 */
  --fs-2xl: 20px;   /* 分頁區塊主標題（h2） */
  --fs-3xl: 22px;   /* 大數字磚（股價／市值等） */
  --fs-4xl: 28px;   /* 公司代號等大型等寬數字 */
  --fs-display: clamp(28px, 5vw, 44px); /* 首頁主標題 h1 */
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme: dark;
    /* 「Terminal Obsidian」——跟新的日間配色同一次改版定案的獨立夜間
       設計（不是日間配色直接反色），仿專業金融終端機的深色 OLED 介面，
       青藍強調色跟日間同一個色相家族但提亮，見上面日間色票旁的說明。 */
    --bg: #0b0f19;
    --panel: #111827;
    --panel-2: #1e293b;
    --hairline: #1e293b;
    --bone: #f8fafc;
    --bone-dim: #94a3b8;
    --faint: #64748b;
    --brass: #38bdf8;
    --brass-dim: #0369a1;
    --brass-hover: #7dd3fc;
    --accent-ink: #0b0f19;
    --up: #ef4444;
    --down: #10b981;
    --body-bg: var(--bg);
  }
}
:root[data-theme="dark"]{
  color-scheme: dark;
  --bg: #0b0f19;
  --panel: #111827;
  --panel-2: #1e293b;
  --hairline: #1e293b;
  --bone: #f8fafc;
  --bone-dim: #94a3b8;
  --faint: #64748b;
  --brass: #38bdf8;
  --brass-dim: #0369a1;
  --brass-hover: #7dd3fc;
  --accent-ink: #0b0f19;
  --up: #ef4444;
  --down: #10b981;
  --body-bg: var(--bg);
}
*{box-sizing:border-box;}
html{overflow-x:hidden;} /* 保險：搭配下面 body 的 overflow-x:hidden，字級「特大」用 zoom 縮放時 fixed 定位元件（例如手機版底部導覽列）不會被 body 的 overflow 夾住，要在 html 這層也擋一次才能真正防止整頁橫向捲動 */
body{
  margin:0;
  overflow-x:hidden; /* 字級「特大」用 zoom 縮放時，個別元件的定位在極少數情況會多出幾 px，這裡當保險，不讓整頁出現橫向滾動（見 industryCompare 等元件仍靠自己的 overflow-x:auto 正常橫向捲動，不受影響）*/
  background: var(--body-bg);
  color:var(--bone);
  font-family:'Inter', 'Noto Sans TC', sans-serif;
  min-height:100vh;
  /* 頁尾貼底：內容不滿一整個畫面時（例如還沒查詢任何股票），頁尾
     不要浮在畫面中間，用 flex 直欄＋頁尾 margin-top:auto 推到最下面。 */
  display:flex;
  flex-direction:column;
  transition:background-color .2s ease, color .2s ease;
}
body > .wrap{width:100%;box-sizing:border-box;}
@media (prefers-reduced-motion: reduce){
  body{transition:none;}
}
/* 2026-09 改版（對齊 0923 設計稿）：原本置中的大標題 hero 換成頂部
   固定的精簡標題列（品牌＋字級／日夜間／會員在同一排，導覽列在第二
   排），版面寬度從 960px 放寬到設計稿的 dashboard 寬度，左邊自選清單
   側欄、右邊內容欄，搜尋列移進內容欄最上面的卡片。 */
.wrap{max-width:1400px;margin:0 auto;padding:24px 32px 80px;}
.topbar{
  position:sticky;top:0;z-index:60;
  background:color-mix(in srgb, var(--panel) 92%, transparent);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--hairline);
  box-shadow:0 1px 8px rgba(15,23,42,.04);
}
.topbar-inner{max-width:1400px;margin:0 auto;padding:12px 32px 10px;}
.topbar-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.topbar-row + .topbar-row{margin-top:10px;}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--bone);min-width:0;}
.brand-mark{
  flex:none;width:32px;height:32px;border-radius:8px;
  background:none;overflow:hidden;
  display:flex;align-items:center;justify-content:center;
}
  .brand-mark img{width:100%;height:100%;display:block;}
.brand-mark .material-symbols-outlined{font-size:20px;color:#34d399;}
.brand-name{font-family:'Space Grotesk', 'Noto Sans TC', sans-serif;font-size:var(--fs-xl);font-weight:700;}
.brand-en{font-family:'Inter', sans-serif;font-size:var(--fs-xs);font-weight:700;letter-spacing:.08em;color:var(--brass);}
.brand-tagline{font-size:var(--fs-sm);color:var(--bone-dim);padding-left:12px;border-left:1px solid var(--hairline);white-space:nowrap;}
.topbar-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end;}
/* 頂層導覽列：跟設計稿一樣做成一排藥丸按鈕，目前頁面實心強調色（由
   siteNav.js 標 .active，見該檔說明）。 */
.site-nav{display:flex;flex-wrap:wrap;align-items:center;gap:6px;}
.site-nav a{
  color:var(--bone-dim);text-decoration:none;white-space:nowrap;
  font-size:var(--fs-md);font-weight:500;
  padding:7px 16px;border-radius:8px;
}
.site-nav a:hover{color:var(--bone);background:var(--panel-2);}
.site-nav a.active{background:var(--brass);color:var(--accent-ink);font-weight:700;cursor:default;}
/* 日間／夜間：兩顆按鈕的分段選擇器（設計稿樣式），行為見 theme.js 的
   #themeSegment 分支。 */
.theme-segment{display:flex;gap:2px;padding:3px;border-radius:10px;background:var(--panel-2);}
.theme-segment button{
  display:flex;align-items:center;gap:4px;
  background:none;border:none;color:var(--bone-dim);
  font-size:var(--fs-sm);font-weight:600;letter-spacing:0;
  padding:5px 10px;border-radius:8px;
}
.theme-segment button .material-symbols-outlined{font-size:16px;}
.theme-segment button:hover{background:none;color:var(--bone);}
.theme-segment button.active{background:var(--panel);color:var(--bone);box-shadow:0 1px 3px rgba(15,23,42,.08);}
@media (max-width:680px){
  .wrap{padding:16px 16px 60px;}
  .topbar-inner{padding:10px 16px;}
  .brand-tagline{display:none;}
}
.auth-widget{
  font-family:'JetBrains Mono', monospace;
  font-size:var(--fs-sm);
  color:var(--bone-dim);
  display:none; /* 預設隱藏，auth.js 有東西可顯示（登入按鈕或登入狀態）才會切成 flex，避免沒內容時仍留一個空的懸浮方塊 */
  align-items:center;
  gap:8px;
  background:var(--panel);
  border:1px solid var(--hairline);
  border-radius:6px;
  padding:5px 10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.auth-info{color:var(--bone);}
/* 2026-09 改版（對齊 0923 設計稿）：頂列右上角改成「圓形頭像＋身份 / 登入」
   的樣式，拿掉外框。auth.js 自己會注入一份 .auth-login-btn 樣式（見
   injectLoginModalStyle()，比這份樣式表晚載入），這裡用 .topbar 前綴
   提高權重覆蓋，不動其他頁面共用的 auth.js。 */
.topbar .auth-widget{
  background:transparent;border:none;padding:0;gap:6px;
  font-family:'Inter', 'Noto Sans TC', sans-serif;font-size:var(--fs-sm);
}
.topbar .auth-widget::before{
  content:"person";
  font-family:'Material Symbols Outlined';font-size:18px;line-height:1;
  -webkit-font-feature-settings:'liga';
  width:30px;height:30px;border-radius:50%;flex:none;
  display:flex;align-items:center;justify-content:center;
  background:var(--brass);color:var(--accent-ink);margin-right:2px;
}
.topbar .auth-info{font-weight:600;text-decoration:none;}
.topbar .auth-widget{cursor:pointer;}
.topbar a.auth-info:hover{color:var(--brass);}
.topbar .auth-login-btn,
.topbar .auth-logout-btn{
  background:transparent;border:none;padding:0;border-radius:0;
  color:var(--bone-dim);font-size:var(--fs-sm);font-weight:600;letter-spacing:0;
}
.topbar .auth-login-btn::before,
.topbar .auth-logout-btn::before{content:"/";color:var(--faint);margin-right:6px;font-weight:400;}
/* 登入視窗（auth.js／passwordAuth.js 注入，其他頁面也共用）：首頁已經
   不載入 Noto Serif TC／Roboto Mono，這裡用較高權重的選擇器把字體改成
   首頁同一套，不動共用檔案本身（其他頁面還沒改版，仍用舊字體）。 */
body .login-panel h3, body .pwauth-panel h3{font-family:'Space Grotesk', 'Noto Sans TC', sans-serif;}
body .login-panel, body .pwauth-panel, body .pwauth-tab, body .pwauth-actions button,
body .login-email-btn, body .pwauth-field input{font-family:'Inter', 'Noto Sans TC', sans-serif;letter-spacing:0;}
body .login-panel, body .pwauth-panel{border-radius:12px;}
body .pwauth-field input, body .pwauth-actions button, body .login-email-btn{border-radius:8px;}
.topbar .auth-login-btn:hover,
.topbar .auth-logout-btn:hover{background:transparent;color:var(--brass);}
.auth-logout-btn{
  background:transparent;
  border:1px solid var(--hairline);
  color:var(--bone-dim);
  border-radius:4px;
  padding:3px 10px;
  font-size:var(--fs-sm);
  cursor:pointer;
}
.auth-logout-btn:hover{border-color:var(--brass-dim);color:var(--bone);}
select option{background:var(--panel);color:var(--bone);}
.material-symbols-outlined{
  font-family:'Material Symbols Outlined';
  font-weight:normal;font-style:normal;
  font-size:20px;line-height:1;
  display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;
  -webkit-font-feature-settings:'liga';-webkit-font-smoothing:antialiased;
}
.site-footer{
  background:var(--panel-2);
  border-top:1px solid var(--hairline);
  margin-top:auto; /* 貼底，見 body 的說明；.wrap 本身底部已有 80px 留白 */
  color:var(--bone-dim);
  font-size:var(--fs-sm);
  line-height:1.8;
}
.site-footer-inner{max-width:1400px;margin:0 auto;padding:32px 32px 28px;}
.site-footer-top{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px;}
.site-footer-links{display:flex;gap:24px;flex-wrap:wrap;}
.site-footer-links a{color:var(--bone-dim);text-decoration:none;}
.site-footer-links a:hover{color:var(--brass);}
.site-footer-source{margin:0 0 4px;}
.site-footer-disclaimer{margin:0;color:var(--up);}
.site-footer-bottom{
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  margin-top:24px;font-size:var(--fs-xs);color:var(--faint);
}
.site-footer-bottom span:last-child{font-weight:700;color:var(--bone-dim);}
:root[data-font-size="small"] body{zoom:.875;}
:root[data-font-size="large"] body{zoom:1.125;}
:root[data-font-size="xlarge"] body{zoom:1.3;}

.font-size-toggle{
  display:flex;
  border:1px solid var(--hairline);
  border-radius:999px;
  background:var(--panel-2);
  padding:2px;
  gap:2px;
  flex:none;
}
.font-size-toggle button{
  font-family:'Inter', 'Noto Sans TC', sans-serif;
  font-size:var(--fs-xs);
  line-height:1;
  padding:5px 9px;
  border-radius:999px;
  border:none;
  background:none;
  color:var(--bone-dim);
  cursor:pointer;
}
.font-size-toggle button.active{background:var(--brass);color:var(--accent-ink, #1a1405);font-weight:700;}

/* ============================================================
   以下是子頁面共用元件（2026-09 改版，對齊 stitch_yeefinance_ui_ux_redesign
   2～5 設計稿）。首頁沒有用到這些 class。
   ============================================================ */
.num{font-family:'JetBrains Mono', monospace;font-variant-numeric:tabular-nums;}
.up{color:var(--up);}
.down{color:var(--down);}
.muted{color:var(--faint);}
.small{font-size:var(--fs-xs);}

/* 全站搜尋列（設計稿每一頁頂端都有）：輸入代號後直接帶到首頁查詢
   （首頁本來就支援 ?code=，見 app.js autoSearchFromQueryString()）。 */
.global-search{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  background:var(--panel);border:1px solid var(--hairline);border-radius:12px;
  box-shadow:0 1px 3px rgba(15,23,42,.06);padding:10px 12px;margin-bottom:20px;
}
.global-search form{display:flex;align-items:center;gap:8px;flex:1 1 360px;min-width:0;}
.global-search .gs-field{position:relative;flex:1;min-width:0;}
.global-search .gs-field .material-symbols-outlined{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:20px;color:var(--faint);pointer-events:none;}
.global-search input{
  width:100%;background:var(--panel-2);border:1px solid transparent;border-radius:8px;
  color:var(--bone);font-family:'Inter', 'Noto Sans TC', sans-serif;font-size:var(--fs-lg);
  padding:9px 12px 9px 40px;
}
.global-search input:focus{outline:none;border-color:var(--brass);}
.gs-hot{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:var(--fs-xs);color:var(--faint);}
.gs-hot a{
  color:var(--bone);text-decoration:none;font-weight:600;background:var(--panel-2);
  padding:4px 10px;border-radius:999px;
}
.gs-hot a:hover{color:var(--brass);}

/* 按鈕 */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  font-family:'Inter', 'Noto Sans TC', sans-serif;font-size:var(--fs-sm);font-weight:700;letter-spacing:0;
  border-radius:8px;padding:8px 14px;cursor:pointer;text-decoration:none;white-space:nowrap;
  border:1px solid var(--hairline);background:var(--panel);color:var(--bone);
}
.btn .material-symbols-outlined{font-size:18px;}
.btn:hover{border-color:var(--brass);color:var(--brass);}
.btn:disabled{opacity:.5;cursor:default;}
.btn-primary{background:var(--brass);border-color:var(--brass);color:var(--accent-ink);}
.btn-primary:hover{background:var(--brass-hover);border-color:var(--brass-hover);color:var(--accent-ink);}
.btn-ghost{background:var(--panel-2);border-color:transparent;}
.btn-sm{padding:6px 11px;font-size:var(--fs-sm);}
.btn-lg{font-size:var(--fs-md);padding:11px 18px;}
.btn-block{width:100%;}
.icon-btn{
  display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;
  border-radius:8px;border:none;background:transparent;color:var(--faint);cursor:pointer;
}
.icon-btn:hover{background:var(--panel-2);color:var(--brass);}
.icon-btn .material-symbols-outlined{font-size:18px;}

/* 頁首：圖示＋大標題＋徽章，下方一行說明，右側放動作或統計 */
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px;}
.page-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0;}
.page-title h1{margin:0;font-family:'Space Grotesk', 'Noto Sans TC', sans-serif;font-size:var(--fs-display);font-weight:700;letter-spacing:-.01em;line-height:1.1;}
.page-title > .material-symbols-outlined{font-size:32px;color:var(--brass);}
.page-sub{margin:6px 0 0;color:var(--bone-dim);font-size:var(--fs-md);line-height:1.6;max-width:760px;}
.page-actions{display:flex;gap:8px;flex-wrap:wrap;}

/* 徽章 */
.badge{
  display:inline-flex;align-items:center;gap:4px;white-space:nowrap;
  font-size:var(--fs-xs);font-weight:700;letter-spacing:0;
  padding:3px 8px;border-radius:6px;
  background:color-mix(in srgb, var(--brass) 12%, transparent);color:var(--brass);
}
.badge .material-symbols-outlined{font-size:14px;}
.badge-good{background:color-mix(in srgb, var(--down) 14%, transparent);color:var(--down);}
.badge-bad{background:color-mix(in srgb, var(--up) 14%, transparent);color:var(--up);}
.badge-warn{background:color-mix(in srgb, #d97706 16%, transparent);color:#d97706;}
.badge-muted{background:var(--panel-2);color:var(--faint);}

/* 卡片 */
.card{
  background:var(--panel);border:1px solid var(--hairline);border-radius:12px;
  box-shadow:0 1px 3px rgba(15,23,42,.06);padding:18px 20px;min-width:0;
}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:14px;}
.card-title{display:flex;align-items:center;gap:8px;margin:0;font-family:'Space Grotesk', 'Noto Sans TC', sans-serif;font-size:var(--fs-xl);font-weight:700;color:var(--bone);}
.card-title .material-symbols-outlined{font-size:22px;color:var(--brass);}
.card-sub{margin:-8px 0 14px;font-size:var(--fs-sm);color:var(--faint);line-height:1.6;}
.card-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-top:14px;padding-top:10px;border-top:1px solid var(--hairline);font-size:var(--fs-xs);color:var(--faint);}

/* KPI 小卡：標題＋大數字＋一行補充，一排 2～4 張 */
.kpi-row{display:grid;grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));gap:12px;margin-bottom:20px;}
.kpi{
  background:var(--panel);border:1px solid var(--hairline);border-radius:12px;
  box-shadow:0 1px 3px rgba(15,23,42,.06);padding:16px 18px;min-width:0;
}
.kpi-label{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:var(--fs-xs);font-weight:700;color:var(--faint);}
.kpi-label .material-symbols-outlined{font-size:18px;color:var(--brass);}
.kpi-value{margin-top:8px;font-family:'Space Grotesk', 'JetBrains Mono', monospace;font-size:30px;font-weight:700;line-height:1.1;color:var(--bone);}
.kpi-value .unit{font-family:'Inter', 'Noto Sans TC', sans-serif;font-size:var(--fs-sm);font-weight:600;color:var(--bone-dim);margin-left:4px;}
.kpi-sub{margin-top:6px;display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:var(--fs-xs);color:var(--faint);}

/* 分頁藥丸（底線式/實心式） */
.pill-tabs{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.pill-tab{
  display:inline-flex;align-items:center;gap:6px;
  background:transparent;border:1px solid transparent;color:var(--bone-dim);
  font-family:'Inter', 'Noto Sans TC', sans-serif;font-size:var(--fs-md);font-weight:600;letter-spacing:0;
  padding:7px 14px;border-radius:8px;cursor:pointer;text-decoration:none;
}
.pill-tab:hover{background:var(--panel-2);color:var(--bone);}
.pill-tab.active{background:var(--brass);color:var(--accent-ink);}
.pill-tab .count{font-size:var(--fs-xs);font-weight:700;padding:0 6px;border-radius:999px;background:color-mix(in srgb, currentColor 16%, transparent);}
.seg{display:inline-flex;gap:2px;padding:3px;background:var(--panel-2);border-radius:8px;}
.seg button{
  background:transparent;border:none;color:var(--bone-dim);font-family:inherit;
  font-size:var(--fs-xs);font-weight:600;letter-spacing:0;padding:5px 12px;border-radius:6px;cursor:pointer;
}
.seg button:hover{color:var(--bone);background:transparent;}
.seg button.active{background:var(--panel);color:var(--brass);font-weight:700;box-shadow:0 1px 2px rgba(15,23,42,.12);}

/* 資料表 */
.table-wrap{overflow-x:auto;border:1px solid var(--hairline);border-radius:10px;background:var(--panel);-webkit-overflow-scrolling:touch;}
table.data-table{width:100%;border-collapse:collapse;font-size:var(--fs-base);font-variant-numeric:tabular-nums;}
table.data-table th, table.data-table td{padding:11px 12px;border-bottom:1px solid var(--hairline);text-align:right;white-space:nowrap;vertical-align:middle;}
table.data-table th:first-child, table.data-table td:first-child{text-align:left;}
table.data-table thead th{
  font-size:var(--fs-xs);font-weight:700;color:var(--faint);
  background:color-mix(in srgb, var(--brass) 6%, var(--panel));
}
table.data-table tbody tr:last-child td{border-bottom:none;}
table.data-table tbody tr:hover{background:color-mix(in srgb, var(--brass) 4%, var(--panel));}
table.data-table .cell-left{text-align:left;}
.stock-cell{display:flex;align-items:center;gap:10px;min-width:0;}
.stock-cell .sc-code{font-family:'JetBrains Mono', monospace;font-weight:700;color:var(--bone);text-decoration:none;}
.stock-cell a.sc-code:hover{color:var(--brass);}
.stock-cell .sc-name{font-weight:700;color:var(--bone);}
.stock-cell .zh-name{display:block;font-size:var(--fs-xs);color:var(--faint);font-weight:500;line-height:1.4;margin-top:2px;}
.stock-cell .sc-sub{display:block;font-size:var(--fs-xs);color:var(--faint);font-weight:500;margin-top:2px;}
.price-cell .p{font-family:'JetBrains Mono', monospace;font-weight:700;font-size:var(--fs-md);}
.price-cell .c{display:block;font-family:'JetBrains Mono', monospace;font-size:var(--fs-xs);margin-top:2px;}

.empty{padding:40px 20px;text-align:center;color:var(--faint);font-size:var(--fs-md);}
.empty a{color:var(--brass);}
.note-line{font-size:var(--fs-xs);color:var(--faint);line-height:1.6;}

/* 橫條（分布/位階） */
.bar{height:6px;border-radius:999px;background:var(--panel-2);overflow:hidden;display:flex;}
.bar > span{display:block;height:100%;}
input[type=number]::-webkit-inner-spin-button{opacity:1;}

/* 全站廣播條（public/announcement.js，管理者在後台設定，最多 5 條疊放） */
.site-announce-stack{display:flex;flex-direction:column;}
.site-announce{display:flex;align-items:center;gap:10px;padding:9px 16px;font-size:var(--fs-base);font-weight:600;line-height:1.5;border-bottom:1px solid var(--hairline);background:color-mix(in srgb, var(--brass) 10%, var(--panel));color:var(--bone);}
.site-announce.warning{background:color-mix(in srgb, #d97706 14%, var(--panel));}
.site-announce.critical{background:color-mix(in srgb, var(--up) 14%, var(--panel));}
.site-announce > .material-symbols-outlined{font-size:20px;flex:none;color:var(--brass);}
.site-announce.warning > .material-symbols-outlined{color:#d97706;}
.site-announce.critical > .material-symbols-outlined{color:var(--up);}
.site-announce-text{flex:1;min-width:0;}
.site-announce a{color:var(--brass);font-weight:700;white-space:nowrap;}
.site-announce-close{flex:none;display:inline-flex;border:0;background:transparent;color:var(--faint);cursor:pointer;padding:2px;border-radius:6px;}
.site-announce-close:hover{color:var(--bone);background:var(--panel-2);}
.site-announce-close .material-symbols-outlined{font-size:18px;}

/* 美股中文公司名稱（有收錄才顯示，顯示在英文名稱下面，見 lib/us/chineseNames.js） */
.zh-name{display:block;font-size:var(--fs-xs);color:var(--faint);font-weight:500;line-height:1.4;margin-top:2px;}
