/* Finviz 风格墨蓝主题（自建，非拷贝其代码/品牌）。深色为主。 */
:root{
  --bg:#0f0f17; --panel:#1b1b26; --panel2:#22222f; --panel3:#2a2a38;
  --line:#2d2d3b; --line2:#39394a;
  --fg:#d6d6df; --muted:#8a8a9a; --faint:#6a6a7a;
  --link:#4d9fff;
  /* A股红涨绿跌：--up=涨=红，--down=跌=绿（与欧美相反，务必别做反） */
  --up:#ef4d54; --down:#22b06a;
  --accent:#3f6fd1; --accent2:#f0a63c;
  /* PASS/FAIL 是语义色（通过/未过），与涨跌无关，保持绿/红 */
  --pass:#22b06a; --fail:#ef4d54; --unknown:#6a6a7a;
  --row:#1b1b26; --row-alt:#1e1e2a; --row-hover:#2a2f42; --head:#14141d;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{background:var(--bg);color:var(--fg);
  font:13px/1.45 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",Segoe UI,Roboto,sans-serif;
  -webkit-font-smoothing:antialiased}
a{color:var(--link);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:1320px;margin:0 auto;padding:0 14px}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}

/* 顶栏 */
header.top{background:#0b0b12;border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;gap:16px;height:50px}
.brand{font-weight:800;font-size:17px;letter-spacing:.3px;color:#fff}
.brand small{color:var(--muted);font-weight:500;margin-left:8px;font-size:12px}
.grow{flex:1}
.nav{display:flex;gap:2px;margin-left:10px}
.nav a{color:var(--muted);padding:6px 13px;font-size:13.5px;font-weight:600;
  border-bottom:2px solid transparent}
.nav a:hover{color:var(--fg);text-decoration:none}
.nav a.on{color:#fff;border-bottom-color:var(--link)}
.fam{font-size:12px;color:var(--muted)}
.fam select{background:var(--panel2);color:var(--fg);border:1px solid var(--line2);
  border-radius:4px;padding:3px 6px;font-size:12px;margin-left:4px}
.fam .soon{color:var(--faint);font-size:11px;margin-left:6px}
.meta{color:var(--muted);font-size:12px}

/* 首页仪表盘 */
.dash{display:flex;flex-direction:column;gap:14px;margin:14px 0}
.dhead{display:flex;align-items:center;gap:8px;margin:2px 0}
.dhead h3{margin:0;font-size:13px;font-weight:700;color:var(--fg)}
.dhead .more{margin-left:auto;font-size:12px}
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
@media (max-width:820px){.tiles{grid-template-columns:repeat(2,1fr)}}
.tile{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:12px 14px}
.tile .n{font-size:26px;font-weight:800;color:#fff;line-height:1.1}
.tile .l{color:var(--muted);font-size:12px;margin-top:3px}
.tile .n.up{color:var(--up)} .tile .n.down{color:var(--down)}
.breadth{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:12px 14px}
.bar{display:flex;height:26px;border-radius:4px;overflow:hidden;margin-bottom:9px}
.bar span{display:flex;align-items:center;justify-content:center;font-size:11px;color:#0f0f17;font-weight:700;min-width:0}
.blegend{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--muted)}
.blegend i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:5px;vertical-align:middle}
.cols4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
@media (max-width:900px){.cols4{grid-template-columns:repeat(2,1fr)}}
.mini{background:var(--panel);border:1px solid var(--line);border-radius:6px;overflow:hidden}
.mini h4{margin:0;padding:9px 12px;font-size:12px;font-weight:700;border-bottom:1px solid var(--line);
  display:flex;align-items:center;gap:6px}
.mini h4 .d{width:8px;height:8px;border-radius:50%}
.mini table{width:100%;border-collapse:collapse;font-size:12px}
.mini td{padding:5px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
.mini tr:last-child td{border-bottom:0}
.mini tr:hover{background:var(--row-hover);cursor:pointer}
.mini .tk{color:var(--link);font-weight:700}
.mini .empty2{padding:16px 12px;color:var(--faint);font-size:12px;text-align:center}
.heat{display:flex;flex-wrap:wrap;gap:6px}
.hcell{border-radius:4px;padding:8px 11px;min-width:96px;color:#fff}
.hcell .hi{font-weight:700;font-size:13px}
.hcell .hn{font-size:11px;opacity:.85}
.famboard{display:flex;gap:10px;flex-wrap:wrap}
.famcard{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:12px 16px;min-width:150px}
.famcard.active{border-color:var(--link)}
.famcard .ft{font-weight:700;color:#fff}
.famcard .fm{font-size:12px;color:var(--muted);margin-top:3px}
.famcard.soon{border-style:dashed;color:var(--faint)}

/* 一键筛选（预置屏，借鉴 MarketSmith） */
.presets{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin:14px 0 0}
.presets .plabel{color:var(--muted);font-size:12px;font-weight:700;margin-right:2px}
.preset{border:1px solid var(--line2);background:var(--panel2);color:var(--fg);
  padding:5px 12px;border-radius:14px;cursor:pointer;font-size:12px;font-weight:600;white-space:nowrap}
.preset:hover{border-color:var(--link);color:#fff}
.preset.on{background:var(--link);border-color:var(--link);color:#fff}

/* 筛选栅格（Finviz 风） */
.filters{background:var(--panel);border:1px solid var(--line);border-radius:6px;margin:10px 0 10px}
.filter-tabs{display:flex;gap:0;border-bottom:1px solid var(--line);padding:0 6px}
.filter-tabs button{border:0;background:transparent;color:var(--muted);padding:8px 14px;
  cursor:pointer;font-size:12.5px;font-weight:600;border-bottom:2px solid transparent;margin-bottom:-1px}
.filter-tabs button.on{color:var(--link);border-bottom-color:var(--link)}
.filter-tabs .grow{flex:1}
.fsearch{align-self:center;background:var(--panel2);color:var(--fg);border:1px solid var(--line2);
  border-radius:4px;padding:4px 9px;font-size:12px;width:180px;margin:0 8px;outline:none}
.fsearch:focus{border-color:var(--link)}
.chips2{display:flex;flex-wrap:wrap;gap:6px;padding:0 14px 10px}
.chips2:empty{display:none}
.fchip{background:var(--panel2);border:1px solid var(--line2);border-radius:4px;
  padding:2px 8px;font-size:12px;color:var(--fg);cursor:pointer;white-space:nowrap}
.fchip:hover{border-color:var(--down);color:var(--down)}
.pager{display:flex;align-items:center;gap:4px;flex-wrap:wrap;padding:12px 2px 6px;font-size:12px}
.pager .prange{color:var(--muted)}
.pg{min-width:28px;height:28px;padding:0 8px;border:1px solid var(--line2);background:var(--panel);
  color:var(--fg);border-radius:4px;cursor:pointer;font-size:12px}
.pg:hover:not([disabled]):not(.on){border-color:var(--link)}
.pg.on{background:var(--link);border-color:var(--link);color:#fff;font-weight:700}
.pg[disabled]{opacity:.4;cursor:default}
.pgap{padding:0 3px;color:var(--faint)}
.filter-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px 14px;padding:12px 14px}
@media (max-width:900px){.filter-grid{grid-template-columns:repeat(2,1fr)}}
.fld{display:flex;align-items:center;gap:8px;padding:3px 0}
.fld label{color:var(--muted);font-size:12px;width:74px;text-align:right;flex:none}
.fld select,.fld input{flex:1;background:var(--panel2);color:var(--fg);border:1px solid var(--line2);
  border-radius:4px;padding:4px 7px;font-size:12px;outline:none;min-width:0}
.fld select:focus,.fld input:focus{border-color:var(--link)}
/* 自填数值筛选：价格/涨跌幅=区间(min~max)，RS/流动性=单端(≥) */
.fld .numrange{flex:1;display:flex;align-items:center;gap:6px;min-width:0}
.fld .numin{flex:1;width:100%;background:var(--panel2);color:var(--fg);border:1px solid var(--line2);
  border-radius:4px;padding:4px 7px;font-size:12px;outline:none;min-width:0}
.fld .numin:focus{border-color:var(--link)}
.fld .numin.nummin{flex:none;width:88px}
.fld .ndash{color:var(--faint);flex:none}
/* 去掉数字输入的上下微调箭头，界面更干净 */
.fld .numin::-webkit-outer-spin-button,.fld .numin::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.fld .numin[type=number]{-moz-appearance:textfield;appearance:textfield}
.filter-foot{display:flex;align-items:center;gap:12px;padding:8px 14px;border-top:1px solid var(--line);
  color:var(--muted);font-size:12px}
.filter-foot .reset{color:var(--link);cursor:pointer}
.filter-foot .cnt b{color:var(--fg)}

/* 数据表（紧凑，Finviz 风） */
.tablewrap{background:var(--panel);border:1px solid var(--line);border-radius:6px;overflow-x:auto}
table.scr{width:100%;border-collapse:collapse;font-size:12.5px}
table.scr thead th{position:sticky;top:0;background:var(--head);color:var(--muted);
  font-weight:600;text-align:left;padding:8px 10px;border-bottom:1px solid var(--line2);
  white-space:nowrap;cursor:pointer;user-select:none}
table.scr thead th:hover{color:var(--fg)}
table.scr thead th.num,table.scr td.num{text-align:right}
table.scr thead th .ar{color:var(--link);font-size:10px;margin-left:3px}
table.scr tbody td{padding:6px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
table.scr tbody tr:nth-child(even){background:var(--row-alt)}
table.scr tbody tr:hover{background:var(--row-hover);cursor:pointer}
table.scr .tk{color:var(--link);font-weight:700}
/* 代码列在横向滚动时固定，移动端不丢股票对应关系 */
table.scr th.stickycol,table.scr td.stickycol{position:sticky;left:0;z-index:3}
table.scr thead th.stickycol{background:var(--head)}
table.scr tbody td.stickycol{background:var(--row)}
table.scr tbody tr:nth-child(even) td.stickycol{background:var(--row-alt)}
table.scr tbody tr:hover td.stickycol{background:var(--row-hover)}
table.scr .nm{color:var(--fg)}
table.scr td.industry,table.scr td.theme{color:var(--muted)}
.chg.up{color:var(--up)} .chg.down{color:var(--down)}
.stagepill{display:inline-block;padding:1px 7px;border-radius:3px;font-size:11px;font-weight:600}
.rs{font-weight:700}

/* 详情页（沿用变量，换皮即可） */
.detail-head{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;margin:16px 0 12px}
.detail-head .nm{font-size:23px;font-weight:800;color:#fff}
.detail-head .cd{color:var(--muted)}
.detail-head .px{font-size:21px;font-weight:800;margin-left:auto}
.back{color:var(--muted);cursor:pointer;font-size:13px;margin-top:12px;display:inline-block}
.badge{display:inline-block;padding:2px 9px;border-radius:4px;font-size:11px;font-weight:700}
.pill{font-size:11px;color:var(--muted);border:1px solid var(--line2);border-radius:4px;padding:1px 7px}
.chart-wrap{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:10px 6px 6px}
.tf{display:flex;gap:3px;margin:0 8px 6px}
.tf button{border:1px solid var(--line2);background:transparent;color:var(--muted);
  padding:3px 12px;border-radius:4px;cursor:pointer;font-size:12px;font-weight:600}
.tf button.on{background:var(--panel3);color:#fff;border-color:var(--link)}
#chart{height:430px;width:100%}
.legend{display:flex;flex-wrap:wrap;gap:14px;padding:8px 12px 2px;font-size:12px;color:var(--muted)}
.legend .sw{display:inline-block;width:16px;height:3px;border-radius:2px;margin-right:5px;vertical-align:middle}
.grid2{display:grid;grid-template-columns:1.25fr 1fr;gap:14px;margin-top:14px}
@media (max-width:820px){.grid2{grid-template-columns:1fr}}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:14px 16px}
.panel h4{margin:0 0 10px;font-size:12px;color:var(--muted);font-weight:700;
  text-transform:uppercase;letter-spacing:.5px}
.trigger-box{display:flex;gap:20px;flex-wrap:wrap}
.trigger-box .t{font-size:12px;color:var(--muted)}
.trigger-box .t b{display:block;font-size:18px;color:var(--fg);margin-top:2px}
.trigger-box .t.tp b{color:var(--accent2)}
.screens{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:5px}
.screen{display:flex;align-items:center;gap:7px;font-size:12px;padding:3px 2px}
/* 状态标记带字形（✓/✗/?），不只靠红绿——绿色盲下也可分辨 */
.st{width:15px;height:15px;border-radius:3px;flex:none;display:inline-flex;
  align-items:center;justify-content:center;font-size:10px;font-weight:800;color:#0f0f17}
.st.PASS{background:var(--pass)} .st.FAIL{background:var(--fail)} .st.UNKNOWN{background:var(--unknown)}
.canslim{display:flex;gap:6px;flex-wrap:wrap}
.cn{position:relative;width:34px;height:34px;border-radius:6px;display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:15px;color:#0f0f17;cursor:default}
.cn sup{position:absolute;top:3px;right:5px;font-size:9px;line-height:1}
.lifecycle{list-style:none;margin:0;padding:0}
.lifecycle li{display:flex;gap:10px;padding:5px 0 5px 12px;border-left:2px solid var(--line2);
  margin-left:4px;font-size:13px}
.lifecycle .dt{color:var(--muted);font-size:12px}
table.anch{width:100%;border-collapse:collapse;font-size:12.5px}
table.anch td{padding:5px 4px;border-bottom:1px solid var(--line)}
table.anch td.k{color:var(--muted)} table.anch td.p{text-align:right}
.fan-card{border-style:dashed;text-align:center;color:var(--muted)}
.fan-card a{font-weight:600}
.empty{color:var(--muted);text-align:center;padding:60px 0}
.disclaimer{color:var(--faint);font-size:11px;margin:22px 0 40px;line-height:1.6}
.chips{display:flex;gap:6px;flex-wrap:wrap}
/* 常驻不可关闭的合规免责条：任何页面、无需滚动即可见 */
.discbar{position:fixed;left:0;right:0;bottom:0;z-index:50;background:#0b0b12;
  border-top:1px solid var(--line2);color:var(--muted);font-size:11.5px;
  text-align:center;padding:6px 14px;line-height:1.4}
body{padding-bottom:36px}
