
:root {
  --bg: #0f172a; --panel: #1e293b; --panel2: #334155; --border: #3b4a63;
  --text: #e2e8f0; --muted: #94a3b8; --accent: #38bdf8; --up: #34d399;
  --down: #f87171; --new: #c084fc; --exit: #fbbf24;
  --header-grad: linear-gradient(135deg,#0c4a6e,#1e3a8a); --header-text:#fff;
  --hover-bg: #263449; --toast-bg:#0c4a6e;
  --chart-text:#e2e8f0; --chart-box:#1e293b; --chart-border:#0f172a; --chart-axis:#888;
  --chart-val:#fff; --chart-desc-bg:rgba(30,41,59,.7);
}
* { margin:0; padding:0; box-sizing:border-box; }
body { background:var(--bg); color:var(--text); font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif; }
.header { background:#00458F; padding:14px 28px; display:flex; align-items:center; gap:16px; border-bottom:1px solid var(--border); position:sticky; top:0; z-index:100; will-change:transform; -webkit-transform:translateZ(0); }
#listView { max-width:1400px; margin:0 auto; padding:0 16px; box-sizing:border-box; }
.header h1 { font-size:20px; font-weight:700; }
.logo-img { height:56px; cursor:pointer; transition:opacity .15s; flex-shrink:0; }
.logo-img:hover { opacity:.85; }
.bookmark-btn { background:transparent; border:1px solid rgba(251,191,36,.4); color:#fbbf24; padding:8px 16px; border-radius:8px; cursor:pointer; font-size:13px; font-weight:600; flex-shrink:0; transition:background .15s; }
.bookmark-btn:hover { background:rgba(251,191,36,.15); }
.lang-btn { background:rgba(56,189,248,.12); border:1px solid rgba(56,189,248,.4); color:#38bdf8; padding:8px 16px; border-radius:8px; cursor:pointer; font-size:13px; font-weight:600; flex-shrink:0; transition:background .15s; }
.lang-btn:hover { background:rgba(56,189,248,.22); }
.header .sub { color:var(--muted); font-size:13px; margin-top:2px; }
.btn-back { background:var(--panel2); border:1px solid var(--border); color:var(--text); padding:8px 16px; border-radius:8px; cursor:pointer; font-size:14px; display:none; }
.btn-back:hover { background:#475569; }

/* List view */
.search-wrap { padding:20px 28px 0; }
.stock-search-wrap { padding-top:28px; }
.stock-center .search-box { display:block; }
.inst-search-inline { padding:6px 14px; font-size:13px; border-radius:16px; }
.inst-search-inline:focus { border-color:var(--accent); }
.stock-suggest { position:absolute; top:calc(100% + 4px); left:0; right:0; background:var(--panel); border:1px solid var(--border); border-radius:10px; max-height:320px; overflow-y:auto; display:none; z-index:200; box-shadow:0 8px 24px rgba(0,0,0,.4); }
.stock-suggest.show { display:block; }
.stock-suggest .sg-item { padding:10px 16px; cursor:pointer; border-bottom:1px solid var(--border); display:flex; align-items:center; gap:10px; }
.stock-suggest .sg-item:last-child { border-bottom:none; }
.stock-suggest .sg-item:hover { background:var(--hover-bg); }
.stock-suggest .sg-item.sg-hl { background:rgba(56,189,248,.15); }
.stock-suggest .sg-zh { font-size:14px; font-weight:600; }
.stock-suggest .sg-en { font-size:11px; color:var(--muted); }
.stock-suggest .sg-tick { font-size:11px; color:var(--accent); font-weight:700; margin-left:auto; }
.stock-suggest .sg-empty { padding:14px 16px; color:var(--muted); font-size:13px; }
.sg-high { color:var(--accent); }
.search-box { width:100%; max-width:520px; padding:12px 18px; border-radius:10px; border:1px solid var(--border); background:var(--panel); color:var(--text); font-size:15px; outline:none; }
.search-box:focus { border-color:var(--accent); }
.sort-tabs { display:flex; gap:8px; padding:14px 0; flex-wrap:wrap; align-items:center; }
.sort-tab { padding:7px 14px; border-radius:20px; border:1px solid var(--border); background:var(--panel); color:var(--muted); cursor:pointer; font-size:13px; }
.sort-tab.active { background:var(--accent); color:#0c4a6e; font-weight:600; border-color:var(--accent); }
.fav-toggle-tab { padding:7px 14px; border-radius:20px; border:1px solid var(--border); background:var(--panel); color:var(--muted); cursor:pointer; font-size:13px; }
.fav-toggle-tab:hover { border-color:#fbbf24; color:#fbbf24; }
.fav-toggle-tab.active { background:rgba(251,191,36,.15); color:#fbbf24; border-color:#fbbf24; font-weight:600; }
.scope-tab { padding:7px 14px; border-radius:20px; border:1px solid var(--border); background:var(--panel); color:var(--muted); cursor:pointer; font-size:13px; }
.scope-tab:hover { border-color:var(--accent); color:var(--text); }
.scope-tab.active { background:var(--accent); color:#0c4a6e; font-weight:600; border-color:var(--accent); }
.list-count { color:var(--muted); font-size:13px; margin-left:auto; }

.inst-grid { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:16px; padding:6px 0 30px; }
/* 搜索框内嵌类型选择器 */
.search-box-wrap { display:flex; align-items:stretch; background:var(--panel); border:1px solid var(--border); border-radius:12px; overflow:hidden; transition:border-color .15s, box-shadow .15s; }
.search-box-wrap:focus-within { border-color:var(--accent); box-shadow:0 0 0 3px rgba(56,189,248,.15); }
.search-type-select { display:flex; align-items:center; gap:2px; padding:5px 4px 5px 6px; border-right:1px solid var(--border); background:var(--panel2); }
.search-type-btn { border:none; background:transparent; color:var(--muted); border-radius:7px; padding:5px 12px; font-size:12.5px; cursor:pointer; transition:all .15s; white-space:nowrap; }
.search-type-btn.active { background:var(--accent); color:#fff; font-weight:600; }
.search-box-wrap .search-box { border:none; background:transparent; flex:1; outline:none; }
/* 机构卡片新设计 */
.inst-card { background:linear-gradient(160deg, var(--panel) 0%, var(--panel2) 100%); border:1px solid var(--border); border-radius:14px; padding:14px 18px 12px; cursor:pointer; transition:transform .15s, border-color .15s, box-shadow .15s; position:relative; display:flex; flex-direction:column; height:250px; box-sizing:border-box; }
.inst-card:hover { transform:translateY(-3px); border-color:var(--accent); box-shadow:0 8px 24px rgba(0,0,0,.3); }
.inst-card-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; }
.inst-rank { font-size:11px; font-weight:600; color:var(--muted); background:var(--panel2); border:1px solid var(--border); border-radius:6px; padding:1px 8px; letter-spacing:.5px; }
.inst-stale { font-size:10.5px; font-weight:600; color:#f59e0b; background:rgba(245,158,11,.12); border:1px solid rgba(245,158,11,.35); border-radius:6px; padding:1px 7px; letter-spacing:.3px; }
/* 机构页页头"数据截至"标签（与首页 inst-stale 同款） */
.asof-tag { font-size:11px; font-weight:600; color:#f59e0b; background:rgba(245,158,11,.12); border:1px solid rgba(245,158,11,.35); border-radius:6px; padding:2px 8px; letter-spacing:.3px; white-space:nowrap; }
.page-head .asof-tag { align-self:center; }
.inst-zh { font-size:16px; font-weight:800; margin-bottom:6px; padding-right:0; letter-spacing:.2px; }
.inst-en { font-size:11.5px; color:var(--muted); letter-spacing:.3px; text-transform:uppercase; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.inst-meta { display:flex; align-items:baseline; gap:8px; margin-top:10px; padding-top:10px; border-top:1px dashed var(--border); flex-wrap:wrap; }
.inst-aum-lbl { font-size:10.5px; color:var(--muted); }
.inst-aum { font-size:16px; font-weight:800; color:var(--text); }
.inst-aum.up { color:var(--up,#1d9e6c); }
.inst-aum.down { color:var(--down,#e0533d); }
.inst-chg { font-size:12.5px; font-weight:700; margin-left:auto; }
.inst-chg.up { color:var(--up,#1d9e6c); }
.inst-chg.down { color:var(--down,#e0533d); }
.inst-chg.flat { color:var(--muted); }
.inst-tags { display:flex; gap:5px; flex-wrap:wrap; margin-top:8px; }
.inst-tag { background:rgba(59,130,246,.1); color:var(--accent); border:1px solid rgba(59,130,246,.22); border-radius:20px; padding:2px 10px; font-size:10.5px; }
.inst-intro { margin-top:auto; padding-top:8px; font-size:11px; color:var(--muted); line-height:1.55; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }

/* 收藏 */
.fav-btn { background:var(--panel2); border:1px solid var(--border); color:var(--muted); width:24px; height:24px; border-radius:50%; cursor:pointer; font-size:12px; display:flex; align-items:center; justify-content:center; transition:all .15s; flex-shrink:0; }
.fav-btn:hover { transform:scale(1.1); }
.fav-btn.on { color:#fbbf24; border-color:#fbbf24; background:rgba(251,191,36,.12); }

/* 大佬持仓快捷入口 */
.vip-bar { padding:14px 0 4px; }
.vip-bar .vip-title { font-size:13px; color:var(--muted); margin-bottom:8px; }
.vip-bar .vip-title b { color:var(--accent); }
.vip-chips { display:flex; gap:8px; flex-wrap:wrap; }
.vip-chip { display:flex; align-items:center; gap:8px; background:var(--panel); border:1px solid var(--border); border-radius:20px; padding:7px 14px; cursor:pointer; font-size:13px; transition:border-color .12s, transform .12s; }
.vip-chip:hover { border-color:var(--accent); transform:translateY(-1px); }
.vip-chip .star { color:#fbbf24; }
.vip-chip .vip-zh { font-weight:600; }
.vip-chip .vip-en { font-size:10px; color:var(--muted); }
/* 股票小图标 (热门股票chips/收藏chips/搜索建议): logo 优先, 首字母兜底 */
.chip-logo, .sg-logo { width:16px; height:16px; border-radius:4px; object-fit:contain; flex-shrink:0; }
.chip-letter, .sg-letter { width:16px; height:16px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; font-size:10px; font-weight:700; color:#fff; flex-shrink:0; line-height:1; }
.sg-letter { font-size:10px; }
/* 机构页持仓表 + 首页详情持仓表: 股票 logo */
.tbl-logo, .tbl-letter { vertical-align:middle; margin-right:10px; }
.tbl-logo { width:34px; height:34px; border-radius:7px; object-fit:contain; flex-shrink:0; }
.tbl-letter { width:34px; height:34px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; font-size:16px; font-weight:700; color:#fff; line-height:1; flex-shrink:0; }
.pos-issuer .chip-logo, .pos-issuer .chip-letter { vertical-align:-2px; margin-right:6px; }
.pos-issuer .tick-link { border-bottom:none; }
/* 机构持仓表: logo 垂直居中 + 名称行(白粗)上行 / 代码行(灰)下行 */
.tick-cell { display:flex; align-items:center; }
.tick-cell .tick-link { flex:1; min-width:0; line-height:1.3; text-decoration:none !important; border-bottom:none !important; }
.tick-cell .tick-link:hover { text-decoration:none !important; border-bottom:none !important; }
.tick-cell .tick-name { display:block; font-size:13px; color:#fff; font-weight:700; }
.tick-cell .tick-code { display:block; font-size:12px; color:var(--muted,#94a3b8); font-weight:400; margin-top:2px; }
/* 首页"收藏股票"栏 logo 稍大（热门栏保持 16px） */
#stockFavChips .chip-logo, #stockFavChips .chip-letter { width:20px; height:20px; }
/* 股票页标题 logo */
.stock-head-logo { width:30px; height:30px; border-radius:7px; object-fit:contain; vertical-align:-3px; margin-right:0; align-self:center; }
.stock-head-letter { width:30px; height:30px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; font-size:15px; font-weight:700; color:#fff; vertical-align:-3px; margin-right:0; line-height:1; align-self:center; }




/* Detail view */
.detail { display:none; padding:24px 28px 40px; }
.detail-head { background:var(--panel); border:1px solid var(--border); border-radius:14px; padding:22px 24px; margin-bottom:18px; }
.detail-head h2 { font-size:24px; }
.detail-head .en { color:var(--muted); font-size:14px; margin-top:4px; }
.detail-stats { display:flex; gap:30px; margin-top:16px; flex-wrap:wrap; }
.detail-stats .stat .label { font-size:12px; color:var(--muted); }
.detail-stats .stat .val { font-size:20px; font-weight:700; margin-top:2px; }
.detail-stats .stat .val.small { font-size:15px; }
.stat-btn { cursor:pointer; padding:6px 14px; border-radius:10px; border:1px solid transparent; transition:background .12s, border-color .12s; }
.stat-btn:hover { background:var(--panel2); border-color:var(--border); }
.stat-btn.active { border-color:var(--accent); background:rgba(56,189,248,.1); }
.stat-btn .val { font-size:20px; font-weight:700; margin-top:2px; }
.filter-hint { font-size:11px; color:var(--muted); margin-top:2px; }

.legend { display:flex; gap:16px; margin:14px 0; font-size:12px; color:var(--muted); flex-wrap:wrap; }
.legend span { display:flex; align-items:center; gap:5px; }
.dot { width:10px; height:10px; border-radius:3px; display:inline-block; }

.table-wrap { background:var(--panel); border:1px solid var(--border); border-radius:14px; overflow:hidden; }
table { width:100%; border-collapse:collapse; font-size:13px; }
thead th { background:var(--panel2); color:var(--muted); font-weight:600; text-align:right; padding:11px 14px; white-space:nowrap; }
thead th:first-child, td:first-child { text-align:left; }
tbody td { padding:9px 14px; border-top:1px solid var(--border); text-align:right; white-space:nowrap; }
tbody tr:hover { background:var(--hover-bg); }
td .tick { font-size:12px; color:var(--muted); font-weight:400; }
.chg-new { color:var(--new); font-weight:700; }
.chg-exit { color:var(--exit); font-weight:700; }
.chg-up { color:var(--up); font-weight:700; }
.chg-down { color:var(--down); font-weight:700; }
.chg-none { color:var(--muted); }
.pos-issuer { font-weight:600; }
.badge { display:inline-block; font-size:10px; padding:2px 7px; border-radius:8px; margin-left:6px; vertical-align:1px; }
.badge-new { background:rgba(192,132,252,.18); color:var(--new); }
.badge-exit { background:rgba(251,191,36,.15); color:var(--exit); }
.view-toggle { display:flex; gap:6px; margin:16px 0 12px; }
.view-btn { padding:7px 16px; border-radius:8px; border:1px solid var(--border); background:var(--panel); color:var(--muted); cursor:pointer; font-size:13px; }
.view-btn.active { background:var(--accent); color:#0c4a6e; font-weight:600; }
.loading { padding:60px; text-align:center; color:var(--muted); }
#toast { position:fixed; bottom:24px; left:50%; transform:translateX(-50%); background:var(--toast-bg); color:#fff; padding:10px 22px; border-radius:10px; font-size:14px; display:none; z-index:999; }

/* Chart modal */
.chart-overlay { position:fixed; inset:0; background:rgba(0,0,0,.7); z-index:1000; display:none; align-items:center; justify-content:center; padding:20px; }
.chart-overlay.show { display:flex; }
.chart-box { background:var(--panel); border:1px solid var(--border); border-radius:14px; width:100%; max-width:1080px; max-height:94vh; display:flex; flex-direction:column; }
.chart-head { padding:14px 20px; border-bottom:1px solid var(--border); display:flex; align-items:flex-start; gap:14px; }
.chart-tabs { display:flex; gap:6px; padding:10px 20px 0; border-bottom:1px solid var(--border); }
.chart-tab { padding:8px 18px; border-radius:8px 8px 0 0; border:1px solid transparent; border-bottom:none; background:transparent; color:var(--muted); cursor:pointer; font-size:13px; font-weight:600; }
.chart-tab.active { background:var(--panel); color:var(--accent); border-color:var(--border); }
.chart-tab .cnt { font-size:11px; color:var(--muted); margin-left:4px; }
.chart-head h3 { font-size:17px; }
.chart-head .fav-btn { position:static; width:26px; height:26px; font-size:13px; flex-shrink:0; }
.chart-head .sub { font-size:12px; color:var(--muted); margin-top:3px; }
.chart-action { font-size:12px; padding:3px 10px; border-radius:8px; font-weight:600; }
.act-new { background:rgba(192,132,252,.18); color:var(--new); }
.act-up { background:rgba(52,211,153,.15); color:var(--up); }
.act-down { background:rgba(248,113,113,.15); color:var(--down); }
.act-exit { background:rgba(251,191,36,.15); color:var(--exit); }
.act-none { background:var(--panel2); color:var(--muted); }
.chart-close { margin-left:auto; background:var(--panel2); border:1px solid var(--border); color:var(--text); width:30px; height:30px; border-radius:8px; cursor:pointer; font-size:15px; flex-shrink:0; }
.chart-close:hover { background:#475569; }
.chart-body { padding:14px 20px 20px; overflow:auto; }
.chart-body svg { width:100%; height:auto; display:block; }
.chart-legend { display:flex; gap:16px; margin-top:10px; font-size:12px; color:var(--muted); flex-wrap:wrap; }
.chart-legend i { display:inline-block; width:14px; height:3px; border-radius:2px; margin-right:4px; vertical-align:middle; }
.chart-loading { padding:60px; text-align:center; color:var(--muted); }
.chart-err { padding:40px; text-align:center; color:var(--exit); }
.tick-link { cursor:pointer; border-bottom:1px dashed var(--muted); }
.tick-link:hover { color:var(--accent); border-bottom-color:var(--accent); }

/* All-holders block */
.holders-block { margin-top:16px; border-top:1px solid var(--border); padding-top:12px; }
.holders-block.standalone { margin-top:0; border-top:none; padding-top:14px; }
.holders-title { font-size:13px; font-weight:600; color:var(--accent); margin-bottom:8px; }
.holders-toolbar { display:flex; align-items:center; gap:8px; margin:10px 0 8px; flex-wrap:wrap; }
.holders-toolbar .lbl { font-size:12px; color:var(--muted); }
.sort-btn { padding:5px 12px; border-radius:14px; border:1px solid var(--border); background:var(--panel2); color:var(--muted); cursor:pointer; font-size:12px; }
.sort-btn:hover { color:var(--text); }
.sort-btn.active { background:var(--accent); color:#0c4a6e; font-weight:600; border-color:var(--accent); }
.sort-btn .arr { font-size:10px; margin-left:3px; }
.range-btn { padding:4px 12px; border-radius:12px; border:1px solid var(--border); background:var(--panel2); color:var(--muted); cursor:pointer; font-size:11px; }
.range-btn.active { background:var(--accent); color:#0c4a6e; font-weight:600; border-color:var(--accent); }
.range-bar { display:flex; gap:6px; margin:4px 0 10px; align-items:center; }
.range-bar .lbl { font-size:11px; color:var(--muted); margin-right:4px; }
.holders-scroll { max-height:calc(94vh - 280px); overflow-y:auto; overflow-x:auto; border:1px solid var(--border); border-radius:10px; }
.holders-scroll.standalone { max-height:calc(94vh - 230px); }
.holders-scroll table { font-size:12px; table-layout:fixed; width:100%; }
.holders-scroll thead th { position:sticky; top:0; background:var(--panel2); padding:8px 12px; z-index:1; }
.holders-scroll thead th:first-child { text-align:left; }
.holders-scroll tbody td { padding:7px 12px; }
.holders-scroll tbody td:first-child { text-align:left; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.holders-scroll .tick { font-size:10px; }
.holders-scroll .holder-row { cursor:pointer; }
.holders-scroll .holder-row:hover td { background:var(--hover-bg); }
.holders-scroll .holder-row.holder-active td { background:rgba(56,189,248,.12); box-shadow:inset 3px 0 0 var(--accent); }

/* 资金流汇总卡片 */
.flow-summary { display:flex; gap:14px; margin:10px 0 12px; flex-wrap:wrap; }
.flow-card { background:var(--panel2); border:1px solid var(--border); border-radius:10px; padding:10px 16px; min-width:120px; }
.flow-card .lbl { font-size:11px; color:var(--muted); }
.flow-card .val { font-size:17px; font-weight:700; margin-top:2px; }
.flow-card .sub { font-size:10px; color:var(--muted); margin-top:1px; }
.flow-in .val { color:var(--up); }
.flow-out .val { color:var(--down); }
.flow-net .val { color:var(--accent); }
.flow-net.pos .val { color:var(--up); }
.flow-net.neg .val { color:var(--down); }
/* logo .APP 后缀 */
/* 底部横幅 */
.footer-banner {
  background: rgba(148,163,184,.08);
  border: 1px solid var(--border);
  border-radius: 12px;
  margin: 48px 28px 28px;
  padding: 20px 24px 22px;
  text-align: center;
}
.footer-banner .foot-disclaim { font-size: 12.5px; color: var(--muted); line-height: 1.8; }
.footer-banner .foot-contact { margin-top: 14px; font-size: 13px; color: var(--text); font-weight: 600; }
/* 全局 scope 切换按钮 */
.scope-btn { border:1px solid var(--border); background:var(--panel2); color:var(--text); border-radius:8px; padding:5px 12px; font-size:12.5px; cursor:pointer; white-space:nowrap; }
.scope-btn:hover { border-color:var(--accent); }
.scope-btn.active { background:var(--accent); color:#fff; border-color:var(--accent); }

/* ── 语言下拉菜单（首页 + 全站） ── */
.lang-wrap{position:relative;display:inline-block}
.lang-menu{position:absolute;right:0;top:100%;margin-top:6px;background:var(--panel,#1e293b);border:1px solid var(--border,#334155);border-radius:10px;padding:6px;z-index:99;min-width:150px;box-shadow:0 8px 24px rgba(0,0,0,.35)}
.lang-menu a{display:block;padding:7px 12px;border-radius:7px;color:var(--text,#e2e8f0);text-decoration:none;font-size:13px;white-space:nowrap}
.lang-menu a:hover{background:var(--panel2,#263449)}
.lang-menu a.cur{font-weight:700;color:var(--accent,#3b82f6)}

/* ── RTL（阿拉伯语）适配 ── */
html[dir="rtl"] .stock-suggest .sg-tick,
html[dir="rtl"] .list-count,
html[dir="rtl"] .chart-close,
html[dir="rtl"] #stockFavBtn,
html[dir="rtl"] #aggViewBtn{margin-left:0!important;margin-right:auto!important}
html[dir="rtl"] thead th:first-child,
html[dir="rtl"] td:first-child,
html[dir="rtl"] .holders-scroll thead th:first-child,
html[dir="rtl"] .holders-scroll tbody td:first-child{text-align:right}
html[dir="rtl"] .chart-tab .cnt{margin-left:0;margin-right:4px}
html[dir="rtl"] .range-bar .lbl{margin-right:0;margin-left:4px}
html[dir="rtl"] .sort-btn .arr{margin-left:0;margin-right:3px}
html[dir="rtl"] .inst-zh{padding-right:0;padding-left:40px}

.calc-btn{background:transparent;border:1px solid rgba(251,191,36,.4);color:#fff;padding:8px 16px;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;flex-shrink:0;text-decoration:none;display:inline-block;transition:background .15s}
.calc-btn:hover{background:rgba(251,191,36,.15)}

/* ── 头部导航下拉（机构增长排行榜 ⌄ → 机构回测 / 板块资金流） ── */
.nav-dd{position:relative;display:inline-block;flex-shrink:0}
.nav-dd-main{display:inline-flex;align-items:center}
.nav-dd-arrow{display:inline-block;width:8px;height:8px;margin-left:7px;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(45deg);cursor:pointer;transition:transform .15s}
.nav-dd.open .nav-dd-arrow{transform:rotate(-135deg)}
.nav-dd-menu{display:flex;visibility:hidden;opacity:0;position:absolute;top:calc(100% + 8px);right:0;min-width:180px;background:var(--panel,#0f172a);border:1px solid var(--border,#334155);border-radius:10px;padding:6px;box-shadow:0 12px 32px rgba(0,0,0,.35);z-index:120;flex-direction:column;gap:2px;pointer-events:none;transition:opacity .15s, visibility 0s linear .15s}
.nav-dd-menu::before{content:'';position:absolute;top:-8px;left:0;right:0;height:8px}
.nav-dd:hover .nav-dd-menu,.nav-dd.open .nav-dd-menu{visibility:visible;opacity:1;pointer-events:auto;transition:opacity .15s}
.nav-dd-item{display:block;width:100%;text-align:left;background:transparent;border:none;color:var(--text,#e2e8f0);padding:9px 14px;border-radius:7px;font-size:13px;font-weight:600;cursor:pointer;text-decoration:none;white-space:nowrap}
.nav-dd-item:hover{background:rgba(56,189,248,.12);color:var(--accent,#38bdf8)}

/* ── 板块资金流热力图面板（全站） ── */
.sf-overlay{position:fixed;inset:0;background:rgba(2,6,23,.72);z-index:998;display:none;align-items:center;justify-content:center;padding:16px}
.sf-panel{background:#0f172a;border:1px solid #334155;border-radius:14px;max-width:1180px;width:100%;max-height:88vh;overflow:auto;padding:18px 20px;box-shadow:0 24px 60px rgba(0,0,0,.5)}
.sf-panel::-webkit-scrollbar{height:12px;width:12px}
.sf-panel::-webkit-scrollbar-thumb{background:#64748b;border-radius:6px;border:2px solid #0f172a}
.sf-panel::-webkit-scrollbar-track{background:#1e293b;border-radius:6px}
.sf-head{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.sf-head h2{margin:0;font-size:18px;flex:1}
.sf-close{cursor:pointer;border:1px solid #334155;background:#1e293b;color:#e2e8f0;border-radius:8px;padding:4px 12px;font-size:14px}
.sf-mode{display:flex;gap:6px}
.sf-mode button{border:1px solid #334155;background:#1e293b;color:#e2e8f0;border-radius:8px;padding:5px 12px;font-size:12.5px;cursor:pointer}
.sf-mode button.active{background:#3b82f6;border-color:#3b82f6;color:#fff}
.sf-wrap{overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;cursor:grab;user-select:none;-webkit-user-select:none}
.sf-wrap.dragging{cursor:grabbing}
.sf-scrollbar{display:flex;align-items:center;gap:10px;margin-top:10px;padding-top:8px;border-top:1px solid #1e293b}
.sf-scrollbar-track{flex:1;height:10px;background:#1e293b;border-radius:5px;position:relative;cursor:pointer}
.sf-scrollbar-thumb{position:absolute;top:0;left:0;height:100%;background:#64748b;border-radius:5px;min-width:40px;cursor:grab;box-shadow:0 0 0 1px rgba(0,0,0,.3)}
.sf-scrollbar-thumb:active{cursor:grabbing;background:#94a3b8}
.sf-scroll-hint{font-size:11px;color:#94a3b8;white-space:nowrap;flex-shrink:0}
.sf-table{border-collapse:separate;border-spacing:3px;width:max-content;min-width:100%}
.sf-table th:first-child{position:sticky;left:0;z-index:3;background:#0f172a}
.sf-table td.sec{position:sticky;left:0;z-index:2;background:#0f172a}
.sf-table th{font-size:10.5px;color:#94a3b8;padding:2px 4px;text-align:center;font-weight:600;position:sticky;top:0;background:#0f172a}
.sf-table td.sec{font-size:12px;color:#e2e8f0;font-weight:700;white-space:nowrap;text-align:right;padding-right:8px}
.sf-cell{text-align:center;border-radius:4px;font-size:11px;color:#0f172a;font-weight:700;cursor:default;min-width:74px;padding:7px 4px}
.sf-cell .sub{display:block;font-size:9px;font-weight:600;opacity:.75}
.sf-legend{display:flex;align-items:center;gap:8px;justify-content:flex-end;margin-top:10px;font-size:12px;color:#94a3b8}
.sf-legend .bar{display:inline-block;width:60px;height:8px;border-radius:4px;background:linear-gradient(90deg,#e0533d,#9e9e6c,#1d9e6c)}
.sf-note{font-size:11px;color:#64748b;margin-top:8px;line-height:1.5}
.sf-loading,.sf-err{text-align:center;padding:40px;color:#94a3b8}
.sf-btn{background:transparent;border:1px solid rgba(251,191,36,.4);color:#fff;padding:8px 16px;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;flex-shrink:0;text-decoration:none;display:inline-block;transition:background .15s}
.sf-btn:hover{background:rgba(251,191,36,.15)}

/* ═══════════════ 白天模式 (data-theme="light") ═══════════════ */
[data-theme="light"] {
  --bg: #f4f6f9; --panel: #ffffff; --panel2: #e8edf3; --border: #d4dbe5;
  --text: #1a2634; --muted: #64748b; --accent: #0284c7;
  --up: #059669; --down: #dc2626; --new: #9333ea; --exit: #d97706;
  --header-grad: linear-gradient(135deg,#0c4a6e,#1e3a8a);
  --header-text: #fff;
  --hover-bg: #eef2f7;
  --toast-bg: #0c4a6e;
  --chart-text:#111827; --chart-box:rgba(255,255,255,.92); --chart-border:#64748b; --chart-axis:#475569;
  --chart-val:#111827; --chart-desc-bg:transparent;
}
[data-theme="light"] .header h1,
[data-theme="light"] .header .sub { color:var(--header-text); }
[data-theme="light"] .sf-panel { background:#ffffff; border:1px solid #d4dbe5; box-shadow:0 24px 60px rgba(15,23,42,.12); }
[data-theme="light"] .sf-panel::-webkit-scrollbar-track { background:#e8edf3; }
[data-theme="light"] .sf-close,
[data-theme="light"] .sf-mode button { border-color:#d4dbe5; background:#f4f6f9; color:#1a2634; }
[data-theme="light"] .sf-scrollbar { border-top-color:#e8edf3; }
[data-theme="light"] .sf-scrollbar-track { background:#e8edf3; }
[data-theme="light"] .sf-table th:first-child,
[data-theme="light"] .sf-table td.sec,
[data-theme="light"] .sf-table th { background:#ffffff; }
[data-theme="light"] .sf-table td.sec { color:#111827; }
[data-theme="light"] .sf-table th { color:#475569; }

/* ═══════════════ 主题切换按钮 ═══════════════ */
.theme-btn { background:rgba(56,189,248,.12); border:1px solid rgba(56,189,248,.4); color:#38bdf8; padding:8px 14px; border-radius:8px; cursor:pointer; font-size:14px; flex-shrink:0; transition:background .15s; }
.theme-btn:hover { background:rgba(56,189,248,.22); }
[data-theme="light"] .theme-btn { color:#38bdf8; border-color:rgba(56,189,248,.4); }

/* 白天模式: 修正白底白字/浅底白字 */
[data-theme="light"] .tick-cell .tick-name { color:#1a2634 !important; }
[data-theme="light"] #top500Badge { color:#111827 !important; }
[data-theme="light"] .inst-view-banner .ivb-title { color:#1a2634 !important; }
[data-theme="light"] .inst-view-banner { background:linear-gradient(90deg,rgba(2,132,199,.12),rgba(2,132,199,.04)); }

/* 操作×涨跌判定图标+文字: 第二行加粗; 正确=绿, 错误=红 */
.verdict { display:block; margin-top:3px; font-size:11px; white-space:nowrap; }
.verdict b { font-weight:700; }
.verdict.v-good b { color:#1d9e6c; }
.verdict.v-bad b { color:#e0533d; }
/* Q1 模式列变动: 增=绿 减=红 持平/清仓/持股不变=灰, 不加粗 */
.qdelta { display:block; margin-top:2px; font-size:10.5px; font-weight:400; }
.qd-up { color:#1d9e6c; }
.qd-down { color:#e0533d; }
.qd-flat { color:#9ca3af; }

/* ═══════════════ 特别关注标记（2026-09-08，独立于收藏 ☆/⭐，勿用星形）═══════════════ */
/* 样式：黄底白字、加粗；仅作为名称旁的展示标（设置/取消在分组弹窗里做） */
.sp-badge{display:inline-flex;align-items:center;vertical-align:baseline;margin-left:8px;padding:0 7px;border-radius:999px;font-size:11px;line-height:1.7;font-weight:800;white-space:nowrap;border:1px solid #fbbf24;background:#fbbf24;color:#fff;font-family:inherit;cursor:default;user-select:none;letter-spacing:.2px}
/* 已收藏星标：持仓列表中标识“已收藏（非特别关注）”的机构行；特别关注机构只显示黄标不重复星 */
.fav-badge{display:inline-flex;align-items:center;vertical-align:baseline;margin-left:8px;font-size:12px;line-height:1;cursor:default;user-select:none}
/* 行首无前缀空间时用于纯展示场合，可去掉左侧 margin */
.sp-badge.nomg{margin-left:0}
/* 机构页页头：特别关注标与右侧徽章(如 No.4804)按同一基线/尺寸对齐 */
.page-head .sp-badge{font-size:13px;line-height:1.25;padding:2px 9px;margin-left:0}
/* 股票页持仓机构列表：机构名是跳转链接，去掉 tick-link 全局虚线/下划线 */
#holderTbody a.tick-link{text-decoration:none;border-bottom:none !important}
#holderTbody a.tick-link:hover{text-decoration:none;border-bottom:none !important}


