/* ===========================================================================
   分析師運動量化 — 設計系統 v3(碳黑量化終端:深空底 + 極光束 + 精密機械邊 + 角標鎖定)
   2026-07-09 全站視覺翻新:所有 class / CSS 變數名 = 21 頁共用 API,只換視覺不換介面(紅線:深藍黑
   #070b16 底 + 翡翠綠/青 accent、不做淺色)。頁面專屬樣式放各頁 <style>(在本檔之後,可覆寫)。
   主題:<html class="theme-admin">(紫)/<html class="theme-nba">(琥珀)換 accent 全套。
   v3 視覺語言:更深的底 + 斜向極光束、圓角收利(18→14)、1px 亮邊+內高光「機械切邊」、
   KPI/英雄卡改「角標鎖定」(左上/右下 bracket)、分頁籤改下劃線式、表頭大寫微標籤。
   =========================================================================== */

/* ---- Design tokens ---- */
:root{
  --bg0:#02040a; --bg:#070b16; --bg2:#0a1020; --surface:#0d1528; --surface2:#131e37; --raised:#192848;
  --glass:rgba(9,15,30,.68); --glass-brd:rgba(118,146,206,.17); --glass-brd2:rgba(142,172,228,.38);
  --line:#1d2946; --line2:#2b3b64;
  /* --dim 承載真資訊(場次/水位/開賽時間/設定說明)非裝飾 → 需過 WCAG AA 4.5:1。
     #55648c=3.36(第十波前);#6b7ba6 只在最深頁底過(4.69),在 .tbl/.surface/.surface2 上仍 4.38/4.34/3.95 不及格;
     #7385b0 在四種實際底色全過(page 5.34 / tbl 4.99 / surface 4.94 / surface2 4.50)。第十一波實算更正。 */
  --text:#eef3fe; --muted:#8fa0c6; --dim:#7385b0;
  --accent:#34d399; --accent2:#22c5e8; --accent-ink:#03211a;
  --gold:#fcc23c; --red:#ff6b85; --green:#34d399; --blue:#6da5ff; --purple:#a78bfa;
  --glow1:rgba(34,197,232,.11); --glow2:rgba(52,211,153,.10);
  --r-sm:8px; --r:11px; --r-lg:14px; --r-xl:20px;
  --edge:inset 0 1px 0 rgba(255,255,255,.055);              /* 機械切邊:面板頂 1px 內高光 */
  --sh-1:0 1px 2px rgba(0,0,0,.4),0 8px 26px -18px rgba(0,0,0,.7);
  --sh-2:0 18px 50px -20px rgba(0,0,0,.72);
  --sh-glow:0 0 0 2px color-mix(in srgb,var(--accent) 30%,transparent);
  /* 等寬字族單一事實源(2026-07-12):原 .mono("SF Mono"開頭)與 .mono2(ui-monospace 開頭)兩套並存,
     Apple 上 ui-monospace 本來就=SF Mono → 行為收斂、宣告統一;要改等寬只動這裡。 */
  --font-mono:ui-monospace,"Cascadia Mono",Consolas,Menlo,monospace;
  --grad-accent:linear-gradient(135deg,var(--accent),var(--accent2));
  --grad-surface:linear-gradient(180deg,rgba(255,255,255,.038),rgba(255,255,255,.008) 46%);
  /* 殼層(頂欄/側欄/側軌)底:從 --bg0/--bg2 衍生 → 各佈景主題自動帶自己的色調(不再寫死藍黑;2026-07-12 深檢)*/
  --shell:linear-gradient(180deg,color-mix(in srgb,var(--bg0) 92%,transparent),color-mix(in srgb,var(--bg2) 84%,transparent));
  --ease:cubic-bezier(.4,0,.2,1);
  color-scheme:dark; /* 原生控件(select/checkbox/捲軸)走深色 */
}
.theme-admin{--accent:#a78bfa;--accent2:#c4b5fd;--accent-ink:#1e1233;--glow1:rgba(167,139,250,.13);--glow2:rgba(109,165,255,.08)}
.theme-nba{--accent:#f59e0b;--accent2:#fbbf24;--accent-ink:#3a1a02;--glow1:rgba(245,158,11,.11);--glow2:rgba(52,211,153,.05)}

/* ---- 會員佈景主題(2026-07-12;個人頁切換、localStorage 持久、app.js 開頭套 data-theme 無閃色)----
   機制:html[data-theme=…] 覆蓋 :root token 全套 → 21 頁 + botnav/siderail 零改頁面自動換裝。
   規約:①盈虧語意色(--green/--red/--gold)不許被主題吃掉 ②效果層(掃描線/光暈)只上殼層背景、
   透明度 ≤5% 不碰資料區可讀性 ③後台(/admin*)不套會員佈景(app.js 路徑守衛,保留 theme-admin 紫識別)。 */
/* H|全息作戰室 HOLO —— 青色全息投影:深黑青底、半透明面板+青邊光、頂部體積光、底部投影網格地板 */
:root[data-theme="holo"]{
  --bg0:#010608; --bg:#030b11; --bg2:#051520; --surface:#071c28; --surface2:#0a2836; --raised:#0e3446;
  --glass:rgba(4,18,25,.64); --glass-brd:rgba(47,216,232,.20); --glass-brd2:rgba(47,216,232,.42);
  --line:#0d3140; --line2:#16506a;
  --text:#eafbff; --muted:#93c6d8; --dim:#7aa9bd;
  --accent:#2fd8e8; --accent2:#8ceeff; --accent-ink:#03242c;
  --glow1:rgba(47,216,232,.17); --glow2:rgba(52,211,153,.05);
  --sh-1:0 1px 2px rgba(0,0,0,.5),0 10px 30px -18px rgba(0,20,28,.9);
}
/* 頂部體積光 + 全息地平線(取代預設斜向極光束) */
:root[data-theme="holo"] body::before{
  background:radial-gradient(1100px 560px at 50% -14%,var(--glow1),transparent 62%),
             radial-gradient(700px 300px at 50% 104%,rgba(47,216,232,.10),transparent 60%),
             linear-gradient(180deg,transparent 96.5%,rgba(47,216,232,.14) 97%,transparent 98%)}
/* 投影地板:格線改錨底部(由下往上淡出)+ 3.5% 掃描線疊層(投影閃爍感的靜態化) */
:root[data-theme="holo"] body::after{
  background-image:repeating-linear-gradient(0deg,transparent 0 3px,rgba(140,238,255,.035) 3px 4px),
                   linear-gradient(rgba(47,216,232,.05) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(47,216,232,.05) 1px,transparent 1px);
  background-size:auto,34px 34px,34px 34px;
  -webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.35) 0%,rgba(0,0,0,.2) 40%,rgba(0,0,0,.95) 100%);
          mask-image:linear-gradient(180deg,rgba(0,0,0,.35) 0%,rgba(0,0,0,.2) 40%,rgba(0,0,0,.95) 100%)}
/* 面板=全息投影板:青邊光暈(輕,只在卡層) */
:root[data-theme="holo"] .card,:root[data-theme="holo"] .tkg{
  box-shadow:var(--edge),0 0 0 1px rgba(47,216,232,.06),0 0 26px -14px rgba(47,216,232,.45)}
/* holo 殼層底不再單獨覆蓋:改由 --shell(從各主題 --bg0/--bg2 衍生)自動上色,全主題一致 */

/* G|夜城終端 NIGHTCITY —— 2077 招牌黃×青:暖黑底、琥珀髮絲邊、掃描線 */
:root[data-theme="nightcity"]{
  --bg0:#070502; --bg:#0a0804; --bg2:#120e06; --surface:#161006; --surface2:#1d1608; --raised:#241b0a;
  --glass:rgba(16,12,4,.66); --glass-brd:rgba(245,197,24,.20); --glass-brd2:rgba(245,197,24,.44);
  --line:#2e2410; --line2:#463815;
  --text:#f7edd2; --muted:#c8b382; --dim:#a8946a;
  --accent:#f5c518; --accent2:#24d6e0; --accent-ink:#181203;
  --glow1:rgba(245,197,24,.13); --glow2:rgba(36,214,224,.07);
}
:root[data-theme="nightcity"] body::after{
  background-image:repeating-linear-gradient(0deg,transparent 0 3px,rgba(245,197,24,.03) 3px 4px),
                   linear-gradient(rgba(245,197,24,.04) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(245,197,24,.04) 1px,transparent 1px);
  background-size:auto,30px 30px,30px 30px}

/* E|霓虹夜雨 NEONRAIN —— 品紅×紫羅蘭、濕玻璃暗紫底(⚠ pnl 紅 #ff6b85 偏粉與 accent 桃紅有區辨,表內以綠側輔助) */
:root[data-theme="neonrain"]{
  --bg0:#050208; --bg:#0a0511; --bg2:#120823; --surface:#170b2b; --surface2:#1f1038; --raised:#2a164a;
  --glass:rgba(16,8,32,.66); --glass-brd:rgba(255,46,136,.18); --glass-brd2:rgba(122,92,255,.45);
  --line:#2a1745; --line2:#3d2266;
  --text:#f5ecff; --muted:#c3a8e2; --dim:#a78cce;
  --accent:#ff2e88; --accent2:#7a5cff; --accent-ink:#2a0417;
  --glow1:rgba(255,46,136,.14); --glow2:rgba(122,92,255,.12);
}
:root[data-theme="neonrain"] .card,:root[data-theme="neonrain"] .tkg{
  box-shadow:var(--edge),0 0 24px -14px rgba(255,46,136,.5)}

/* N|霓虹雙色 DUOTONE —— 嚴格品紅×青、純黑、霓虹管邊光 */
:root[data-theme="duotone"]{
  --bg0:#000; --bg:#050508; --bg2:#0a0a10; --surface:#0d0d14; --surface2:#12121b; --raised:#191926;
  --glass:rgba(8,8,14,.7); --glass-brd:rgba(255,46,136,.22); --glass-brd2:rgba(34,216,255,.45);
  --line:#221527; --line2:#332040;
  --text:#f4f0f6; --muted:#c9a0bd; --dim:#a882a0;
  --accent:#ff2e88; --accent2:#22d8ff; --accent-ink:#2a0417;
  --glow1:rgba(255,46,136,.13); --glow2:rgba(34,216,255,.13);
}
:root[data-theme="duotone"] .card,:root[data-theme="duotone"] .tkg{
  box-shadow:var(--edge),0 0 0 1px rgba(255,46,136,.08),0 0 22px -12px rgba(34,216,255,.5)}

/* I|記憶回放 BRAINDANCE —— 紅琥珀資料流、暖黑紅底(accent=琥珀,pnl 紅仍偏粉可辨) */
:root[data-theme="braindance"]{
  --bg0:#080302; --bg:#0d0503; --bg2:#160806; --surface:#1a0a07; --surface2:#220d09; --raised:#2b110b;
  --glass:rgba(20,8,5,.66); --glass-brd:rgba(255,160,40,.20); --glass-brd2:rgba(255,61,46,.40);
  --line:#32180e; --line2:#4a2214;
  --text:#ffe9d8; --muted:#d3a184; --dim:#b58a6a;
  --accent:#ffa028; --accent2:#ff5d3d; --accent-ink:#221000;
  --glow1:rgba(255,61,46,.12); --glow2:rgba(255,160,40,.10);
}

/* J|雨夜緋紅 ARASAKA —— 黑玻璃+銀字+緋紅 accent、頂部冷聚光 */
:root[data-theme="arasaka"]{
  --bg0:#010102; --bg:#050507; --bg2:#0a0a0d; --surface:#0e0e12; --surface2:#131318; --raised:#1a1a21;
  --glass:rgba(8,8,10,.72); --glass-brd:rgba(200,210,225,.14); --glass-brd2:rgba(229,39,61,.45);
  --line:#1d1d24; --line2:#2c2c36;
  --text:#f2f4f8; --muted:#9aa2b2; --dim:#828a9a;
  --accent:#e5273d; --accent2:#c9d2e0; --accent-ink:#fff3f4;
  --glow1:rgba(229,39,61,.10); --glow2:rgba(235,240,248,.05);
}
:root[data-theme="arasaka"] body::before{
  background:radial-gradient(900px 460px at 50% -12%,rgba(235,240,248,.07),transparent 60%),
             radial-gradient(700px 380px at 88% 108%,rgba(229,39,61,.10),transparent 58%)}

/* F|企業冷冽 CORPORATE —— 石墨黑+銀白 accent、緋紅只做次標記、髮絲線密 */
:root[data-theme="corporate"]{
  --bg0:#050608; --bg:#090b0e; --bg2:#0e1116; --surface:#12151b; --surface2:#171b22; --raised:#1f242d;
  --glass:rgba(12,14,18,.7); --glass-brd:rgba(190,200,215,.16); --glass-brd2:rgba(210,220,235,.4);
  --line:#20242c; --line2:#303743;
  --text:#eef1f6; --muted:#9ba4b2; --dim:#828c9a;
  --accent:#c9d4e2; --accent2:#e5273d; --accent-ink:#0c0f14;
  --glow1:rgba(190,200,215,.06); --glow2:rgba(229,39,61,.05);
}

/* K|鉻金冰藍 CHROME-ICE —— 槍鐵藍灰面+冰藍光、橙色危險次標、金屬頂高光 */
:root[data-theme="chromeice"]{
  --bg0:#04070a; --bg:#080d13; --bg2:#0d141c; --surface:#111a24; --surface2:#16202c; --raised:#1d2a3a;
  --glass:rgba(10,16,24,.68); --glass-brd:rgba(127,216,255,.20); --glass-brd2:rgba(200,225,245,.5);
  --line:#1c2a38; --line2:#2b3f52;
  --text:#eaf4fc; --muted:#95b4c9; --dim:#7fa0b5;
  --accent:#7fd8ff; --accent2:#ffb020; --accent-ink:#06222f;
  --glow1:rgba(127,216,255,.13); --glow2:rgba(255,176,32,.05);
  --edge:inset 0 1px 0 rgba(255,255,255,.12);
}

/* L|故障終端 GLITCH —— 純黑白反裝飾、零圓角零光暈;唯一色彩=active 的 RGB 分離殘影 */
:root[data-theme="glitch"]{
  --bg0:#000; --bg:#000; --bg2:#070707; --surface:#0a0a0a; --surface2:#101010; --raised:#161616;
  --glass:rgba(5,5,5,.82); --glass-brd:rgba(255,255,255,.18); --glass-brd2:rgba(255,255,255,.46);
  --line:#1c1c1c; --line2:#2e2e2e;
  --text:#f5f5f5; --muted:#9c9c9c; --dim:#828282;
  --accent:#f5f5f5; --accent2:#cfcfcf; --accent-ink:#000;
  --glow1:transparent; --glow2:transparent;
  --r-sm:0; --r:0; --r-lg:0; --r-xl:0;
}
:root[data-theme="glitch"] body::before{background:none}
:root[data-theme="glitch"] body::after{background:none}
:root[data-theme="glitch"] .side a.on,:root[data-theme="glitch"] .siderail .srl-nav a.on,
:root[data-theme="glitch"] .botnav a.on,:root[data-theme="glitch"] .nav a.on{
  text-shadow:1px 0 rgba(255,0,60,.55),-1px 0 rgba(0,229,255,.55)}

/* ---- Reset / base ---- */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
/* 表單控件不繼承字體是 UA 預設 → Windows 全站 <button> 漏成 Arial(2026-07-12 全站稽核;
   posts/chat/profile 三頁早已各自補 inherit=同一問題的分散修法,升級到共用層)。只補 family
   不用 font 縮寫:size/weight 各頁已自設,縮寫會把 UA 預設尺寸一併打掉、爆炸半徑大。 */
button,input,select,textarea{font-family:inherit}
body{margin:0;color:var(--text);font:14px/1.6 -apple-system,"Segoe UI","Noto Sans TC",system-ui,sans-serif;
  background:linear-gradient(180deg,var(--bg0) 0%,var(--bg) 30%,var(--bg) 100%);
  min-height:100vh;-webkit-font-smoothing:antialiased;accent-color:var(--accent)}
/* 背景層 1:主題光暈 + 兩道斜向極光束(v3 簽名;fixed 疊層,iOS 也穩) */
body::before{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;
  background:radial-gradient(1000px 520px at 85% -12%,var(--glow1),transparent 60%),
             radial-gradient(820px 460px at -8% -8%,var(--glow2),transparent 54%),
             linear-gradient(112deg,transparent 40%,color-mix(in srgb,var(--accent2) 5%,transparent) 47%,transparent 54%),
             linear-gradient(112deg,transparent 58%,color-mix(in srgb,var(--accent) 4%,transparent) 65%,transparent 72%)}
/* 背景層 2:上緣淡出的細格線(終端座標紙;v3 收密 30px、更淡) */
body::after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background-image:linear-gradient(rgba(148,163,197,.042) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(148,163,197,.042) 1px,transparent 1px);
  background-size:30px 30px;
  -webkit-mask-image:radial-gradient(1100px 620px at 50% -12%,rgba(0,0,0,.95),transparent 74%);
          mask-image:radial-gradient(1100px 620px at 50% -12%,rgba(0,0,0,.95),transparent 74%)}
a{color:inherit;text-decoration:none}
b{font-weight:700}
::selection{background:color-mix(in srgb,var(--accent) 30%,transparent)}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-thumb{background:var(--line2);border-radius:8px;border:2px solid transparent;background-clip:content-box}
::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--accent) 45%,var(--line2));background-clip:content-box}
a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent2);outline-offset:2px;border-radius:6px}

/* ---- 頂欄(子頁) ---- */
.topbar{display:flex;align-items:center;gap:12px;padding:11px 18px;position:sticky;top:0;z-index:30;
  background:var(--shell);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);
  border-bottom:1px solid var(--line);box-shadow:0 1px 0 color-mix(in srgb,var(--accent) 9%,transparent)}
.topbar .back{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:13px;padding:5px 9px;border-radius:8px;transition:.18s var(--ease)}
.topbar .back:hover{color:var(--text);background:rgba(255,255,255,.05)}
/* 複製本頁連結鈕(cpLink;2026-07-16 每處可分享)— 終端風小 chip,沿用變數不寫死色 */
.cplk{flex:none;padding:3px 11px;border-radius:14px;border:1px solid var(--line);background:var(--surface);color:var(--muted);font-size:11px;cursor:pointer;font-family:inherit;transition:.15s}
.cplk:hover{border-color:var(--line2);color:var(--text)}
.cplk:disabled{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,var(--line));cursor:default}
.topbar .brand{display:flex;align-items:center;gap:9px;font-weight:800;font-size:15px;letter-spacing:.3px}
.topbar h1{font-size:15px;margin:0;font-weight:700;letter-spacing:.2px}
.logo{width:30px;height:30px;display:inline-grid;place-items:center;border-radius:9px;background:var(--grad-accent);color:var(--accent-ink);font-size:15px;flex:none;
  box-shadow:0 0 0 1px rgba(255,255,255,.12) inset,0 4px 16px -6px color-mix(in srgb,var(--accent) 80%,transparent)}
.sp{flex:1}
.pill{font-size:12px;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:4px 12px;cursor:pointer;transition:.18s var(--ease);background:rgba(10,16,32,.6)}
.pill:hover{border-color:var(--accent);color:var(--accent);box-shadow:0 0 14px -6px color-mix(in srgb,var(--accent) 70%,transparent)}

/* ---- 嵌入殼層時(?embed=1)藏頂欄 ---- */
html.embed .topbar{display:none}
html.embed .wrap{padding-top:8px}

/* ---- App 殼層(儀表板 / 後台:側欄 + 內容) ---- */
.app{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100vh}
.side{background:var(--shell);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);
  border-right:1px solid var(--line);display:flex;flex-direction:column;padding:16px 12px;position:sticky;top:0;height:100vh}
.side .brand{display:flex;align-items:center;gap:10px;padding:4px 8px 14px;border-bottom:1px solid var(--line);margin-bottom:10px}
.side .brand b{font-size:14.5px;display:block;line-height:1.2;letter-spacing:.3px}
.side .brand span{font-size:10px;color:var(--muted);letter-spacing:.12em}
.nav{display:flex;flex-direction:column;gap:2px}
.nav a{position:relative;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:9px;color:var(--muted);font-size:13px;cursor:pointer;transition:.15s var(--ease)}
/* 導覽圖示(NAVIC 單一事實源,app.js 注入;botnav 的 svg 樣式在其自身區塊):線性、隨文字色 */
.nav a svg,.siderail .srl-nav a svg{width:17px;height:17px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;opacity:.9}
.nav a.on svg,.siderail .srl-nav a.on svg{opacity:1}
.nav a:hover{background:rgba(255,255,255,.045);color:var(--text)}
.nav a.on{background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 13%,transparent),transparent 70%);color:var(--text)}
.nav a.on::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:3px;background:var(--grad-accent);
  box-shadow:0 0 12px color-mix(in srgb,var(--accent) 80%,transparent)}
.prof{margin-top:auto;border-top:1px solid var(--line);padding-top:13px}
.prof .upd{display:block;font-size:11px;color:var(--muted);margin-bottom:8px}
.prof .who{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.prof .av{width:34px;height:34px;border-radius:10px;background:var(--surface2);display:grid;place-items:center;box-shadow:var(--edge)}
.prof .who b{font-size:13px}
.prof .who span{font-size:10px;color:var(--muted)}
.bal{background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 7%,transparent),transparent),rgba(10,16,32,.6);
  border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line));border-radius:11px;padding:10px 12px;font-size:11px;color:var(--muted);box-shadow:var(--edge)}
.bal .big{font-size:18px;color:var(--accent);font-weight:800;margin:2px 0;font-variant-numeric:tabular-nums;letter-spacing:-.3px}
.prof button,.logout{margin-top:10px;width:100%;background:rgba(10,16,32,.6);border:1px solid var(--line);color:var(--muted);border-radius:9px;padding:9px;cursor:pointer;font-size:12.5px;transition:.15s var(--ease)}
.prof button:hover,.logout:hover{border-color:var(--accent);color:var(--text)}
/* 內容頂欄(殼層內) */
.vtop{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;padding:12px 22px;
  background:var(--shell);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);
  border-bottom:1px solid var(--line);box-shadow:0 1px 0 color-mix(in srgb,var(--accent) 9%,transparent)}
.vtop h1{font-size:16px;margin:0;font-weight:800;letter-spacing:.2px}
.vtop .tag{font-size:10.5px;font-weight:700;color:var(--accent2);background:color-mix(in srgb,var(--accent) 13%,transparent);
  border:1px solid color-mix(in srgb,var(--accent) 34%,transparent);padding:3px 9px;border-radius:999px;letter-spacing:.06em}

/* ---- 容器 ---- */
.wrap{max-width:780px;margin:0 auto;padding:18px 14px 90px;animation:fadeUp .4s var(--ease) both}

/* ---- 區塊標題(v3:發光點 + 微標籤字距) ---- */
.sec{display:flex;align-items:center;gap:9px;font-size:12px;color:#aebede;font-weight:800;letter-spacing:.1em;margin:22px 2px 10px}
.sec::before{content:"";width:7px;height:7px;border-radius:2px;background:var(--grad-accent);flex:none;transform:rotate(45deg);
  box-shadow:0 0 10px color-mix(in srgb,var(--accent) 75%,transparent)}
.sec::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--line2),transparent)}

/* ---- 卡片(碳玻璃 + 機械切邊) ---- */
.card{position:relative;background:var(--grad-surface),var(--glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border:1px solid var(--glass-brd);border-radius:var(--r-lg);padding:16px;box-shadow:var(--edge),var(--sh-1);transition:border-color .2s var(--ease),transform .2s var(--ease)}
.card::before{content:"";position:absolute;inset:0 14% auto;height:1px;border-radius:inherit;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.16),transparent)}
.card:hover{border-color:var(--glass-brd2);box-shadow:var(--edge),var(--sh-1),0 16px 40px -24px rgba(0,0,0,.8)}

/* ---- KPI 卡(v3 簽名:角標鎖定 bracket) ---- */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:14px}
.grid-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin-bottom:14px}
.kpi{position:relative;overflow:hidden;background:var(--grad-surface),var(--glass);border:1px solid var(--glass-brd);border-radius:var(--r-lg);padding:15px 16px;box-shadow:var(--edge),var(--sh-1);transition:transform .2s var(--ease),border-color .2s var(--ease)}
.kpi::before{content:"";position:absolute;top:0;left:0;width:20px;height:20px;border-top:2px solid var(--accent);border-left:2px solid var(--accent);
  border-top-left-radius:10px;opacity:.85;pointer-events:none}
.kpi::after{content:"";position:absolute;bottom:0;right:0;width:20px;height:20px;border-bottom:2px solid var(--accent2);border-right:2px solid var(--accent2);
  border-bottom-right-radius:10px;opacity:.35;pointer-events:none}
.kpi:hover{transform:translateY(-2px);border-color:var(--glass-brd2)}
.kpi .kpi-k{font-size:11.5px;color:var(--muted);letter-spacing:.06em}
.kpi .kpi-v{font-size:27px;font-weight:800;margin:3px 0 1px;font-variant-numeric:tabular-nums;letter-spacing:-.5px}
.kpi .kpi-s{font-size:11px;color:var(--muted)}

/* ---- 資訊卡 / 警示 / 說明 ---- */
.lead{background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 7%,transparent),transparent),rgba(10,16,32,.42);
  border:1px solid color-mix(in srgb,var(--accent) 25%,transparent);border-radius:var(--r-lg);padding:13px 15px;font-size:12.5px;color:#b9c6df;line-height:1.8;margin-bottom:10px;box-shadow:var(--edge)}
.lead b{color:var(--blue)} .lead .hl{color:#7ee9c6;font-weight:700}
.warn{background:linear-gradient(180deg,rgba(252,194,60,.09),transparent),rgba(10,16,32,.42);border:1px solid rgba(252,194,60,.32);
  border-radius:var(--r);padding:12px 14px;font-size:12.5px;color:#eccd8f;line-height:1.75;margin-bottom:12px;box-shadow:var(--edge)}
.warn b{color:var(--gold)}
.note{background:linear-gradient(180deg,rgba(109,165,255,.08),transparent),rgba(10,16,32,.42);border:1px solid var(--line);
  border-radius:var(--r);padding:12px 14px;font-size:12.5px;color:var(--muted);line-height:1.75;margin:10px 0;box-shadow:var(--edge)}
.note b{color:var(--blue)}

/* ---- 英雄數據(大數字;同 KPI 角標語言) ---- */
.hero{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:10px}
/* .stat 角標卡已於第三刀全站換裝 .tkg>.tkc,20 頁零引用 → 刪除(第八波死碼清理)。.hero 仍由 rules/results/all 使用,保留。 */

/* ---- 列表列 ---- */
.row{display:flex;align-items:center;gap:12px;background:rgba(12,19,36,.58);border:1px solid var(--line);border-radius:var(--r);
  padding:12px 14px;margin-bottom:8px;transition:.18s var(--ease);box-shadow:var(--edge),var(--sh-1)}
a.row:hover{border-color:var(--accent);transform:translateY(-1px);box-shadow:var(--edge),0 12px 30px -14px color-mix(in srgb,var(--accent) 45%,transparent)}
.row .main{flex:1;min-width:0}
.row .t{font-size:14px;font-weight:700}
.row .s{font-size:12px;color:var(--muted);margin-top:2px}
.row .s b{color:#7ee9c6}
.row .num{flex:none;text-align:center;min-width:60px}
.row .num b{font-size:20px;font-weight:800;display:block;font-variant-numeric:tabular-nums;line-height:1.1}
.row .num span{font-size:10px;color:var(--dim)}
.row.feat{border-color:color-mix(in srgb,var(--accent) 48%,transparent);background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 11%,transparent),color-mix(in srgb,var(--accent2) 5%,transparent))}

/* ---- 五階燈號(2026-07-13 E 合成版):分析師分級的全站狀態語言 ----
   金主推 / 青觀察 / 灰放過 / 紅走地 / 綠已結。盈虧語意不挪用:綠只給「已結(贏向)」、紅只給走地/輸,
   與 --green/--red 鐵律相容。列級分級用 .trow-* 左色條(桌面密度優先),章用 .bulb(手機磚頂/行內)。 */
.bulb{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.1em;border-radius:5px;padding:2.5px 8px;border:1px solid transparent;vertical-align:1px}
.bulb.gd{color:#241a02;background:var(--gold);box-shadow:0 0 14px -3px rgba(252,194,60,.7)}
.bulb.cy{color:var(--accent2);border-color:color-mix(in srgb,var(--accent2) 45%,transparent);background:color-mix(in srgb,var(--accent2) 8%,transparent)}
.bulb.dm{color:var(--dim);border-color:var(--line2)}
.bulb.lv{color:#fff;background:var(--red);box-shadow:0 0 12px -3px color-mix(in srgb,var(--red) 80%,transparent)}
.bulb.wn{color:#052e1f;background:var(--green);box-shadow:0 0 12px -3px rgba(52,211,153,.7)}
.trow-pick{box-shadow:inset 3px 0 0 var(--gold)}
.trow-watch{box-shadow:inset 3px 0 0 color-mix(in srgb,var(--accent2) 60%,transparent)}
.trow-pass{opacity:.72}
.trow-live{box-shadow:inset 3px 0 0 var(--red)}

/* ---- 標籤 / 徽章(v3:同色細邊,更利) ---- */
.chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;border:1px solid var(--line);border-radius:999px;padding:3px 10px;color:var(--muted);background:rgba(8,13,26,.7)}
.badge{font-size:10.5px;font-weight:700;border-radius:6px;padding:2.5px 8px;border:1px solid transparent}
.b-accent{background:rgba(52,211,153,.13);color:#6ee7b7;border-color:rgba(52,211,153,.3)} .b-blue{background:rgba(109,165,255,.13);color:#9cc2ff;border-color:rgba(109,165,255,.3)}
.b-red{background:rgba(255,107,133,.13);color:#ffa3b3;border-color:rgba(255,107,133,.3)}
.b-purple{background:rgba(167,139,250,.13);color:#c4b5fd;border-color:rgba(167,139,250,.3)} .b-dim{background:rgba(8,13,26,.8);color:var(--muted);border-color:var(--line)}

/* ---- 按鈕 ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);background:rgba(12,19,36,.68);color:var(--text);
  border-radius:var(--r-sm);padding:10px 14px;font-size:14px;font-weight:600;cursor:pointer;transition:.18s var(--ease);box-shadow:var(--edge)}
.btn:hover{border-color:var(--line2);background:rgba(19,30,55,.85)}
.btn-primary{background:var(--grad-accent);color:var(--accent-ink);border:1px solid rgba(0,0,0,.28);font-weight:800;letter-spacing:.02em;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 10px 24px -10px color-mix(in srgb,var(--accent) 65%,transparent)}
.btn-primary:hover{filter:brightness(1.08);background:var(--grad-accent)}
.btn-sm{padding:8px 13px;font-size:13px} /* 官方小尺寸階(2026-07-12 收斂):dashboard main button 同規格;新小按鈕一律 .btn.btn-sm,別再頁內硬編 */
.btn-block{width:100%}
.btn:active:not(:disabled){transform:translateY(1px)}
.btn:disabled{opacity:.55;cursor:default}

/* ---- 表單 ---- */
.field{margin-top:14px} .field label{display:block;font-size:12px;color:var(--muted);margin-bottom:5px;letter-spacing:.04em}
input,select{width:100%;background:rgba(7,12,24,.8);border:1px solid var(--line);color:var(--text);border-radius:var(--r-sm);padding:11px 12px;font-size:16px;transition:.18s var(--ease);box-shadow:var(--edge)} /* 16px:iOS Safari 聚焦 <16px 會整頁放大且不回彈(登入/註冊首當其衝;深檢R1) */
input:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:var(--sh-glow)}
input::placeholder{color:var(--dim)}

/* ---- 開關(toggle) ---- */
.sw{position:relative;width:48px;height:27px;flex:none;display:inline-block}
/* 原 display:none 會把 input 移出 tab 序 → 鍵盤永遠到不了「真實下注」開關(第十波 P2)。
   改視覺隱藏但保留可聚焦;.sw 用 <label> 包住 → 點開關圖形本身也能切換(原本只有點旁邊文字才有反應)。 */
.sw input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:1}
.sw input:focus-visible+span{outline:2px solid var(--accent2);outline-offset:2px}
.sw span{position:absolute;inset:0;background:var(--raised);border:1px solid var(--line2);border-radius:20px;transition:.2s var(--ease);cursor:pointer;box-shadow:var(--edge)}
.sw span:before{content:"";position:absolute;width:20px;height:20px;left:3px;top:2.5px;background:#fff;border-radius:50%;transition:.2s var(--ease);box-shadow:0 2px 6px rgba(0,0,0,.45)}
.sw input:checked+span{background:var(--grad-accent);border-color:transparent;box-shadow:0 0 16px -4px color-mix(in srgb,var(--accent) 70%,transparent)}
.sw input:checked+span:before{transform:translateX(21px)}

/* ---- 分頁籤(v3:下劃線式 segmented) ---- */
.tabrow{display:flex;flex-wrap:wrap;gap:2px;margin-bottom:10px;align-items:center;border-bottom:1px solid var(--line)}
.tab{background:transparent;color:var(--muted);border:1px solid transparent;border-radius:8px 8px 0 0;padding:9px 14px;font-size:13px;font-weight:700;cursor:pointer;transition:.15s var(--ease);position:relative}
.tab:hover{color:var(--text);background:rgba(255,255,255,.035);border-color:transparent} /* 明示 transparent:防頁面泛用 button:hover 邊框(dashboard main button)滲入 */
.tab.on{color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent);border-color:transparent;
  box-shadow:inset 0 -2px 0 var(--accent),0 6px 18px -12px color-mix(in srgb,var(--accent) 60%,transparent)}

/* ---- 表格面板(v3:透明大寫表頭 + 細線) ---- */
.tbl{background:rgba(12,19,36,.5);border:1px solid var(--glass-brd);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--edge)}
.tbl.scroll{overflow-x:auto}
.tbl table{width:100%;border-collapse:collapse;font-size:13px}
.tbl th{text-align:left;font-weight:700;color:var(--dim);font-size:10.5px;letter-spacing:.08em;padding:10px 13px;
  background:rgba(255,255,255,.022);white-space:nowrap;border-bottom:1px solid var(--line2)} /* 不 uppercase:會員表頭全中文無感,admin 的 gid/Pin/istar 等英文欄名會失真(PIN 有誤讀空間) */
.tbl td{padding:10px 13px;border-top:1px solid color-mix(in srgb,var(--line) 72%,transparent);font-variant-numeric:tabular-nums;vertical-align:top}
.tbl tr:hover td{background:rgba(255,255,255,.028)}
.tbl.zebra tr:nth-child(2n) td{background:rgba(255,255,255,.016)} /* 長資料表斑馬紋(opt-in),偶數資料列微背景助掃讀 */
.tbl.zebra tr:hover td{background:rgba(255,255,255,.045)}
.tbl .num{text-align:right}

/* ---- 底部下注單(bottom sheet) ---- */
.slip{position:fixed;left:0;right:0;bottom:0;z-index:40;display:none;
  background:rgba(7,12,24,.94);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);
  border-top:1px solid color-mix(in srgb,var(--accent) 65%,var(--line));box-shadow:0 -2px 0 color-mix(in srgb,var(--accent) 18%,transparent),0 -14px 50px rgba(0,0,0,.6);
  padding:14px 20px calc(14px + env(safe-area-inset-bottom))}

/* ---- 載入 / 空狀態 ---- */
.spin{width:30px;height:30px;margin:0 auto 14px;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .75s linear infinite}
.loading{padding:54px 0;text-align:center;color:var(--muted)}
.empty{padding:34px 16px;text-align:center;color:var(--dim);font-size:13px}
.err{color:var(--red);text-align:center;padding:40px}

/* ---- 認證頁 ---- */
.auth{min-height:100vh;display:grid;place-items:center;padding:20px}
/* min-width:0:grid item 預設 min-width:auto,會被固定寬內容(register 的 Turnstile 300px)撐爆出視口
   (2026-07-13 視覺體檢 375px 實錘 3px 頁面溢位);窄屏收 padding 讓 300px widget 剛好放下(335-32=303)。 */
.auth .card{width:100%;max-width:398px;min-width:0;padding:30px 28px;box-shadow:var(--edge),var(--sh-2),0 0 110px -42px color-mix(in srgb,var(--accent) 50%,transparent);animation:fadeUp .4s var(--ease) both}
@media(max-width:400px){.auth .card{padding:26px 16px}}
.auth h1{font-size:21px;margin:0 0 4px;display:flex;align-items:center;gap:9px;letter-spacing:.2px}
.auth .sub{color:var(--muted);font-size:13px;margin:0 0 6px}
.auth .foot{margin-top:18px;font-size:13px;color:var(--muted);text-align:center}
.auth .foot a{color:var(--accent);font-weight:600}
.msg{margin-top:14px;font-size:13px;min-height:18px} .msg.bad{color:var(--red)} .msg.ok{color:var(--green)} .msg.warn{color:var(--gold)}

/* ---- 文字工具 ---- */
.muted{color:var(--muted)} .dim{color:var(--dim)} .tnum{font-variant-numeric:tabular-nums}
.pos{color:var(--green)} .neg{color:var(--red)} .flat{color:var(--dim)}
.center{text-align:center}
.mono{font-family:var(--font-mono);font-size:12px}
.r-win,.rwin{color:var(--green)} .r-lose,.rlose{color:var(--red)} .r-push,.rpush{color:var(--muted)}

/* ---- 終端元件(「今日總覽」概念 → 全站共用;2026-07-10 第三刀)----
   行情帶 .tick / KPI 格 .tkg>.tkc(.c2/.c3 欄數變體)/ 量條 .meterw / 雙欄格 .duo>.tcell / 等寬 .mono2 / 行情表列 .pickstbl+.hotr。
   規約:只「加」共用 API 不動既有 class;各頁把 hero/stat/卡格換成這套 = 版面向總覽對齊。.tcell 刻意不叫 .cell(board/aboard 已有自己的 .cell)。 */
.mono2,.tkc .v,.tick,.bal .big{font-family:var(--font-mono)}
.tick{display:flex;flex-wrap:wrap;align-items:center;font-size:12px;color:var(--dim);border:1px solid var(--line);border-radius:10px;padding:7px 12px;margin-bottom:12px;background:rgba(8,13,26,.55)}
.tick i{font-style:normal;color:var(--line2);margin:0 9px}
.tick b{color:var(--muted);font-weight:600}
.tkg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--glass-brd);border-radius:12px;overflow:hidden;background:rgba(10,16,32,.5);box-shadow:var(--edge);margin-bottom:14px}
.tkg.c2{grid-template-columns:repeat(2,minmax(0,1fr))}
.tkg.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.tkc{padding:12px 14px;border-left:1px solid var(--line)}
.tkc:first-child{border-left:0}
.tkc .k{font-size:11px;color:var(--muted);letter-spacing:.08em}
.tkc .v{font-size:22px;font-weight:800;margin:2px 0;letter-spacing:-.3px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere} /* anywhere:七位數餘額/損益在 320px 兩欄格(內寬~120px)原會被 .tkg 的 overflow:hidden 硬裁尾數 */
.tkc .s{font-size:11px;color:var(--dim)}
/* 交易員卡擴充列(2026-07-11 個人頁/公開頁同構):.x2=勝率/連勝敗行、.x3=圖說、.sparkb=近30日每日損益長條
   ⚠ 類名刻意用 .sparkb 不用 .spark:auto.html 已有頁內 .spark(累積折線 wrapper),共用層撞名會壓壞其版面 */
.tkc .x2{margin-top:4px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.tkc .x3{margin-top:8px;font-size:10.5px;color:var(--dim)}
.sparkb{display:block;width:100%;height:30px;margin-top:3px}
/* 個人頁統計四格(貼文/留言/跟隨者/跟隨中) */
.stat4{display:grid;grid-template-columns:repeat(4,1fr);margin-top:12px;border-top:1px solid var(--line);padding-top:10px}
.stat4 a{display:block;text-align:center;color:inherit;text-decoration:none}
.stat4 a+a{border-left:1px solid var(--line)}
.stat4 b{display:block;font-size:18px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.2}
.stat4 span{font-size:11px;color:var(--muted)}
.pickstbl tr[onclick]{cursor:pointer}
.pickstbl .hotr td{background:rgba(252,194,60,.05)}
.meterw{display:inline-block;width:52px;height:3px;background:var(--line);border-radius:2px;position:relative;overflow:hidden;vertical-align:middle}
.meterw i{position:absolute;left:0;top:0;bottom:0;background:var(--accent)}
.meterw.hot i{background:var(--gold)}
.duo{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin:0 0 14px}
.tcell{border:1px solid var(--glass-brd);border-radius:12px;background:rgba(10,16,32,.5);box-shadow:var(--edge);padding:13px 15px}
/* 折列補線(第八波 P3):格數超過欄數時,每列第一格去左線、第二列起補頂線。逐變體寫,4n+1 不可套 c3(會誤刪第5格左線)。 */
.tkg:not(.c2):not(.c3) .tkc:nth-child(4n+1){border-left:0}
.tkg:not(.c2):not(.c3) .tkc:nth-child(n+5){border-top:1px solid var(--line)}
.tkg.c3 .tkc:nth-child(3n+1){border-left:0}
.tkg.c3 .tkc:nth-child(n+4){border-top:1px solid var(--line)}
.tkg.c2 .tkc:nth-child(2n+1){border-left:0}
.tkg.c2 .tkc:nth-child(n+3){border-top:1px solid var(--line)}
.tkg:empty{display:none}                 /* 載入前的空容器不顯孤框線(aboard #cards) */
.tkg .tkc:only-child{grid-column:1/-1}   /* 「載入中/讀取失敗」單格撐滿整列,不縮成 1/4 窄格 */

/* ---- 動效 ---- */
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ---- 手機 ---- */
@media(max-width:800px){
  .wrap{padding:14px 11px 84px}
  .row .num b{font-size:18px}
  .topbar{padding:10px 12px;gap:8px}
  /* 頂欄手機版:子元素不換行(免「返/回」「分析/師」單字垂直斷行);標題可縮+省略;連結/籤 nowrap */
  .topbar .back{white-space:nowrap;padding:5px 7px;flex:none}
  .topbar .brand{font-size:14px;min-width:0;flex-shrink:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .topbar h1{white-space:nowrap;font-size:14px;overflow:hidden;text-overflow:ellipsis;min-width:0}
  .topbar .chip,.topbar .pill,.topbar a{white-space:nowrap;flex:none}
  /* 殼層:側欄改上方橫列;導覽橫向捲動;餘額/登出保留(橫排) */
  .app{grid-template-columns:minmax(0,1fr)}
  .side{position:static;height:auto;min-width:0;padding:12px}
  .side .brand{padding:2px 4px 10px}
  .nav{flex-direction:row;flex-wrap:nowrap;overflow-x:auto;gap:4px;padding-bottom:4px;scrollbar-width:thin}
  .nav a{flex:none;white-space:nowrap;padding:8px 11px}
  .nav a.on::before{top:auto;left:10px;right:10px;bottom:2px;width:auto;height:3px} /* 橫向導覽:on 指示改底線 */
  .prof{display:flex;align-items:center;gap:10px;margin-top:10px;padding-top:12px}
  .prof .upd{display:none}
  .prof .who{margin-bottom:0;flex:none}
  .bal{flex:1;padding:8px 10px}
  .bal .big{display:inline;font-size:15px;margin:0 0 0 6px}
  .prof button,.logout{margin-top:0;width:auto;flex:none;padding:9px 12px}
  .vtop{padding:12px 14px}
}
@media(max-width:800px){
  .tkg,.tkg.c3{grid-template-columns:repeat(2,minmax(0,1fr))}
  /* 手機一律 2 欄:先清掉桌面各變體的折列線,再按 2 欄重畫(順序不可換) */
  .tkg .tkc:nth-child(n){border-top:0}
  .tkg .tkc:nth-child(odd){border-left:0}
  .tkg .tkc:nth-child(even){border-left:1px solid var(--line)}
  .tkg .tkc:nth-child(n+3){border-top:1px solid var(--line)}
}
@media(prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}

/* ---- App 式底部導覽列(2026-07-11)——全站主區塊 tab bar,巴哈/iOS 底欄慣例 ----
   app.js 依 pathname 注入 DOM + 高亮 + 給 body 掛 .has-botnav;僅 ≤800px 顯示(桌面走側欄/頂欄,不注入視覺)。
   認證頁/後台(/login /register /admin*)不注入 → body 不掛 class → 無底欄、無底 padding。
   疊層:.slip(走地下注單 z-40)高於本列(z-35)→ 下注時下注單蓋其上,符 bottom-sheet 慣例。
   icon 為線性 SVG(非 emoji,契合終端風);safe-area-inset 撐開 iPhone home indicator。 */
.botnav{position:fixed;left:0;right:0;bottom:0;z-index:35;display:none;
  grid-template-columns:repeat(5,1fr);
  background:rgba(6,10,22,.93);backdrop-filter:blur(20px) saturate(150%);-webkit-backdrop-filter:blur(20px) saturate(150%);
  border-top:1px solid var(--line);
  box-shadow:0 -1px 0 color-mix(in srgb,var(--accent) 11%,transparent),0 -14px 38px -24px rgba(0,0,0,.92);
  padding-bottom:env(safe-area-inset-bottom)}
.botnav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  padding:7px 2px 6px;min-height:52px;color:var(--dim);font-size:10px;font-weight:600;letter-spacing:.02em;
  position:relative;transition:color .16s var(--ease);-webkit-tap-highlight-color:transparent}
.botnav a svg{width:23px;height:23px;stroke:currentColor;stroke-width:1.7;fill:none;
  stroke-linecap:round;stroke-linejoin:round;transition:transform .16s var(--ease)}
.botnav a:active{color:var(--muted)}
.botnav a:active svg{transform:scale(.88)}
.botnav a.on{color:var(--accent)}
.botnav a.on svg{filter:drop-shadow(0 0 6px color-mix(in srgb,var(--accent) 65%,transparent))}
.botnav a.on::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:24px;height:2.5px;border-radius:0 0 3px 3px;background:var(--grad-accent);
  box-shadow:0 0 10px color-mix(in srgb,var(--accent) 75%,transparent)}
@media(max-width:800px){
  .botnav{display:grid}
  body.has-botnav{padding-bottom:calc(56px + env(safe-area-inset-bottom))}
  body.has-botnav .wrap{padding-bottom:24px}
  body.kb-open .botnav{display:none} /* Android 鍵盤開啟:藏底欄免緊貼送出鈕誤觸(app.js focusin 掛 class) */
}
/* ---- 桌面左側導覽軌(2026-07-11)——社群/會員獨立頁桌面版持久左導覽,與 botnav(手機)對稱同組 destinations。
   修「進討論串/社群頁左側消失」;僅 >800px 顯示(手機走 botnav);儀表板有自己的 .side 不注入本軌。
   視覺對齊 .side(同底色/blur/nav item 樣式)。body 左推 236px → sticky 頂欄與 .wrap 一併讓開,軌填左槽。 */
.siderail{position:fixed;left:0;top:0;bottom:0;width:236px;z-index:31;display:none;flex-direction:column;
  padding:14px 12px;overflow-y:auto;
  background:var(--shell);
  backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);
  border-right:1px solid var(--line)}
.siderail .srl-brand{display:flex;align-items:center;gap:11px;padding:6px 8px 14px;margin-bottom:8px;
  text-decoration:none;border-bottom:1px solid var(--line);flex:none}
.siderail .srl-logo{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex:none;
  background:var(--grad-accent);color:var(--accent-ink,#06231b);font-weight:900;font-size:18px}
.siderail .srl-bt{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.siderail .srl-bt b{color:var(--text);font-weight:800;font-size:15px}
.siderail .srl-bt i{color:var(--dim);font-size:11px;font-style:normal}
.siderail .srl-nav{display:flex;flex-direction:column;gap:2px}
.siderail .srl-nav a{position:relative;display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:9px;
  color:var(--muted);font-size:13px;font-weight:600;text-decoration:none;transition:.15s var(--ease)} /* gap:圖示與標籤間距(2026-07-12 圖示統一) */
.siderail .srl-nav a:hover{background:rgba(255,255,255,.045);color:var(--text)}
.siderail .srl-nav a.on{background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 13%,transparent),transparent 70%);color:var(--text)}
.siderail .srl-nav a.on::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:3px;background:var(--grad-accent)}
@media(min-width:801px){
  .siderail{display:flex}
  body.has-siderail{padding-left:236px} /* sticky .topbar 與置中 .wrap 皆隨 body padding 右移,軌填左 236px 槽 */
}

/* ── 足球單場統計共用件(aboard 展開卡 + ahistory 歷史回看;JS=app.js ms* 函式)────── */
.pitchsvg{width:100%;max-width:330px;display:block;margin:2px auto 6px}
.evrow{display:flex;gap:8px;align-items:baseline;font-size:12px;padding:3px 0;border-bottom:1px dashed color-mix(in srgb,var(--line) 45%,transparent)}
.evrow:last-child{border-bottom:0}
.evrow .t{color:var(--dim);font-variant-numeric:tabular-nums;min-width:34px;text-align:right;flex:none}
.evrow .b{flex:none;font-size:10px;font-weight:700;padding:1px 6px;border-radius:3px;border:1px solid var(--line2);color:var(--muted)}
.evrow .b.g{color:var(--accent-ink);background:var(--accent);border-color:transparent}
.evrow .b.y{color:#241b0a;background:var(--gold);border-color:transparent}
.evrow .b.r{color:#fff;background:var(--red);border-color:transparent}
.evrow .x{color:var(--text);min-width:0}
.evrow .x .aw{color:var(--muted)}
.evrow .x .hl{color:var(--accent)}
.trendsvg{width:100%;display:block;margin:4px 0 2px}
.mshist{padding:4px 0 2px}
.mshist .ph{font-size:11px;color:var(--dim);margin:8px 0 7px;font-weight:700;letter-spacing:.4px}
