/* ===== BewinQuant AI Stock Radar — Terminal Dashboard ===== */
:root{
  --bg:#080b12; --bg2:#0d121d; --bg3:#141b2a; --bg4:#1b2436;
  --border:#212c40; --border2:#2c3a54;
  --text:#e7eef7; --dim:#93a1b8; --faint:#5d6b82;
  --up:#1ecb8b; --up-bg:rgba(30,203,139,.12);
  --down:#f6465d; --down-bg:rgba(246,70,93,.12);
  --flat:#8b96a8;
  --accent:#3d8bff; --accent2:#16d0e8; --gold:#f5b423; --purple:#b072ff;
  --buy:#1ecb8b; --watch:#f5b423; --risk:#f6465d;
  --shadow:0 8px 30px rgba(0,0,0,.45);
  --mono:"SF Mono","JetBrains Mono","Cascadia Code",Consolas,"Roboto Mono",monospace;
  --sans:"Inter","Segoe UI","PingFang SC","Microsoft YaHei",system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--bg); color:var(--text); font-family:var(--sans);
  font-size:14px; line-height:1.5; -webkit-font-smoothing:antialiased;
  background-image:radial-gradient(1200px 600px at 80% -10%,rgba(61,139,255,.08),transparent 60%),
                   radial-gradient(900px 500px at -10% 10%,rgba(22,208,232,.05),transparent 55%);
  background-attachment:fixed;
}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.up{color:var(--up)} .down{color:var(--down)} .flat{color:var(--flat)}
.dim{color:var(--dim)} .faint{color:var(--faint)}
a{color:var(--accent);text-decoration:none} a:hover{text-decoration:underline}

/* ===== Header / Nav ===== */
header.top{
  position:sticky;top:0;z-index:100;
  background:rgba(8,11,18,.82);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--border);
}
.top-inner{max-width:1480px;margin:0 auto;padding:12px 24px;display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:11px}
.logo{width:34px;height:34px;border-radius:9px;background:linear-gradient(135deg,var(--accent),var(--accent2));
  display:grid;place-items:center;font-weight:800;font-size:17px;color:#04101f;box-shadow:0 0 22px rgba(61,139,255,.45)}
.brand h1{font-size:16px;font-weight:700;letter-spacing:.2px;line-height:1.1}
.brand .sub{font-size:11px;color:var(--dim);font-weight:500}
nav.tabs{display:flex;gap:4px;margin-left:auto;flex-wrap:wrap}
nav.tabs button{
  background:transparent;border:1px solid transparent;color:var(--dim);
  padding:8px 15px;border-radius:9px;cursor:pointer;font-size:13.5px;font-weight:600;
  font-family:var(--sans);transition:.16s;display:flex;align-items:center;gap:7px;
}
nav.tabs button:hover{color:var(--text);background:var(--bg3)}
nav.tabs button.active{color:#fff;background:linear-gradient(135deg,rgba(61,139,255,.22),rgba(22,208,232,.14));border-color:var(--border2)}
nav.tabs button .ico{font-size:14px}
.datepill{font-family:var(--mono);font-size:12px;color:var(--dim);background:var(--bg3);
  border:1px solid var(--border);padding:6px 11px;border-radius:8px;white-space:nowrap}

/* ===== Layout ===== */
main{max-width:1480px;margin:0 auto;padding:22px 24px 90px}
.view{display:none;animation:fade .3s ease}
.view.active{display:block}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
section{margin-bottom:26px}
.sec-head{display:flex;align-items:center;gap:10px;margin-bottom:13px}
.sec-head h2{font-size:15px;font-weight:700;letter-spacing:.3px}
.sec-head .bar{width:3px;height:16px;border-radius:2px;background:linear-gradient(var(--accent),var(--accent2))}
.sec-head .note{font-size:11.5px;color:var(--faint);margin-left:auto;font-weight:500}
.grid{display:grid;gap:14px}

/* ===== Cards ===== */
.card{background:linear-gradient(180deg,var(--bg2),var(--bg2));border:1px solid var(--border);
  border-radius:14px;padding:16px 17px;position:relative;overflow:hidden}
.card.glow::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(61,139,255,.06),transparent 50%);pointer-events:none}
.card h3{font-size:13px;font-weight:700;color:var(--text);margin-bottom:11px;display:flex;align-items:center;gap:8px}
.card h3 .tag{font-size:10px;font-weight:600;color:var(--dim);background:var(--bg3);padding:2px 7px;border-radius:5px;margin-left:auto}

/* hero */
.hero{background:linear-gradient(135deg,rgba(61,139,255,.10),rgba(22,208,232,.04));
  border:1px solid var(--border2);border-radius:16px;padding:20px 22px;margin-bottom:22px}
.hero .row1{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.hero .ttl{font-size:19px;font-weight:800;letter-spacing:.3px}
.badge{font-size:11.5px;font-weight:700;padding:4px 11px;border-radius:20px;white-space:nowrap}
.badge.phase{background:rgba(176,114,255,.18);color:var(--purple);border:1px solid rgba(176,114,255,.35)}
.badge.stance{background:rgba(245,180,35,.16);color:var(--gold);border:1px solid rgba(245,180,35,.32)}
.tags{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:13px}
.tags .t{font-size:11.5px;font-weight:600;color:var(--accent2);background:rgba(22,208,232,.10);
  border:1px solid rgba(22,208,232,.24);padding:3px 10px;border-radius:7px}
.hero p.oneliner{font-size:13.5px;color:var(--dim);line-height:1.65;max-width:1100px}

/* ===== index cards ===== */
.idx-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:11px}
.idx{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:13px 14px;transition:.16s}
.idx:hover{border-color:var(--border2);transform:translateY(-2px)}
.idx .nm{font-size:12px;color:var(--dim);font-weight:600;margin-bottom:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.idx .px{font-family:var(--mono);font-size:18px;font-weight:700;letter-spacing:-.3px}
.idx .ch{font-family:var(--mono);font-size:13px;font-weight:700;margin-top:3px}
.idx .st{font-size:10.5px;color:var(--faint);margin-top:6px}

/* ===== tables ===== */
.tbl-wrap{overflow-x:auto;border-radius:12px;border:1px solid var(--border)}
table{width:100%;border-collapse:collapse;font-size:13px}
thead th{background:var(--bg3);color:var(--dim);font-weight:600;text-align:left;padding:10px 12px;
  position:sticky;top:0;white-space:nowrap;font-size:11.5px;letter-spacing:.3px;border-bottom:1px solid var(--border)}
thead th.sortable{cursor:pointer;user-select:none} thead th.sortable:hover{color:var(--text)}
thead th .arr{opacity:.4;margin-left:3px;font-size:9px}
thead th.sorted .arr{opacity:1;color:var(--accent2)}
tbody td{padding:9px 12px;border-bottom:1px solid rgba(33,44,64,.55);white-space:nowrap}
tbody tr:last-child td{border-bottom:none}
tbody tr:hover{background:var(--bg3)}
td.num,th.num{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums}
.tk{font-weight:700;color:var(--text)} .tk .nm2{font-weight:400;color:var(--faint);font-size:11px;margin-left:6px}

/* pills / chips */
.pill{font-size:11px;font-weight:700;padding:2px 9px;border-radius:6px;display:inline-block;white-space:nowrap}
.pill.buy{background:var(--up-bg);color:var(--up)}
.pill.watch{background:rgba(245,180,35,.14);color:var(--gold)}
.pill.risk{background:var(--down-bg);color:var(--down)}
.pill.neutral{background:var(--bg4);color:var(--dim)}
.lvl{font-size:11px;font-weight:700;padding:2px 9px;border-radius:6px}
.lvl.gao,.lvl.中高{background:var(--down-bg);color:var(--down)}
.lvl.中{background:rgba(245,180,35,.14);color:var(--gold)}

/* heat chips (stocks by group) */
.heat-tabs{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}
.heat-tabs button{background:var(--bg3);border:1px solid var(--border);color:var(--dim);padding:6px 13px;
  border-radius:8px;cursor:pointer;font-size:12.5px;font-weight:600;font-family:var(--sans);transition:.15s}
.heat-tabs button.active{background:var(--accent);color:#fff;border-color:var(--accent)}
.heat{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px}
.chip{border-radius:10px;padding:11px 10px;border:1px solid transparent;cursor:default;transition:.15s;position:relative}
.chip:hover{transform:translateY(-2px);z-index:2}
.chip .s{font-weight:800;font-size:14px;font-family:var(--mono)}
.chip .c{font-family:var(--mono);font-size:13px;font-weight:700;margin-top:2px}
.chip .n{font-size:10px;color:rgba(255,255,255,.62);margin-top:5px;line-height:1.35;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* macro mini-cards */
.mini-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.mini{background:var(--bg2);border:1px solid var(--border);border-radius:11px;padding:12px 13px}
.mini .k{font-size:11.5px;color:var(--dim);font-weight:600;margin-bottom:5px}
.mini .v{font-family:var(--mono);font-size:16px;font-weight:700}
.mini .d{font-family:var(--mono);font-size:12px;font-weight:600;margin-top:2px}
.mini .nt{font-size:10.5px;color:var(--faint);margin-top:6px;line-height:1.4}

/* two-col & three-col */
.cols-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cols-3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:980px){.cols-2,.cols-3{grid-template-columns:1fr}}

/* chart box */
.chart-box{position:relative;height:260px}
.chart-box.sm{height:210px}
.chart-box.lg{height:340px}

/* ===== Stock deep-dive ===== */
.stk-pills{display:flex;gap:9px;margin-bottom:18px;flex-wrap:wrap}
.stk-pills button{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:11px 17px;
  cursor:pointer;color:var(--dim);font-family:var(--sans);transition:.16s;text-align:left;min-width:150px}
.stk-pills button .t{font-weight:800;font-size:16px;color:var(--text);font-family:var(--mono)}
.stk-pills button .n{font-size:11.5px;display:block;margin-top:1px}
.stk-pills button .c{font-family:var(--mono);font-size:12.5px;font-weight:700;margin-top:3px}
.stk-pills button.active{border-color:var(--accent);background:linear-gradient(135deg,rgba(61,139,255,.16),transparent)}

.stk-head{display:flex;align-items:flex-start;gap:18px;flex-wrap:wrap;margin-bottom:6px}
.stk-head .px{font-family:var(--mono);font-size:34px;font-weight:800;letter-spacing:-1px;line-height:1}
.stk-head .meta h3{font-size:21px;font-weight:800}
.stk-head .meta .sub{font-size:12.5px;color:var(--dim);margin-top:3px}
.stk-head .meta .role{font-size:12px;color:var(--accent2);margin-top:5px}
.stk-head .right{margin-left:auto;text-align:right}

/* valuation band */
.vband{margin:10px 0 4px}
.vband .track{position:relative;height:34px;border-radius:9px;overflow:hidden;display:flex;
  border:1px solid var(--border)}
.vband .seg{display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#04101f}
.vband .seg.buy{background:linear-gradient(var(--up),#13a877)}
.vband .seg.watch{background:linear-gradient(var(--gold),#d99a0a)}
.vband .seg.risk{background:linear-gradient(var(--risk),#cf3344)}
.vband .marker{position:absolute;top:-5px;bottom:-5px;width:3px;background:#fff;box-shadow:0 0 10px rgba(255,255,255,.9)}
.vband .marker::after{content:attr(data-px);position:absolute;top:-21px;left:50%;transform:translateX(-50%);
  background:#fff;color:#04101f;font-family:var(--mono);font-size:11px;font-weight:800;padding:1px 6px;border-radius:5px;white-space:nowrap}
.vband .labels{display:flex;justify-content:space-between;font-size:10.5px;color:var(--faint);font-family:var(--mono);margin-top:7px}

/* metric grid */
.mtx{display:grid;grid-template-columns:repeat(auto-fit,minmax(108px,1fr));gap:1px;background:var(--border);border-radius:11px;overflow:hidden}
.mtx .m{background:var(--bg2);padding:11px 12px}
.mtx .m .k{font-size:10.5px;color:var(--dim);font-weight:600;margin-bottom:4px}
.mtx .m .v{font-family:var(--mono);font-size:15px;font-weight:700}

/* perf bars */
.perf{display:grid;grid-template-columns:repeat(6,1fr);gap:9px}
.perf .p{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:10px;text-align:center}
.perf .p .k{font-size:11px;color:var(--dim);font-weight:600}
.perf .p .v{font-family:var(--mono);font-size:15px;font-weight:700;margin-top:4px}
@media(max-width:680px){.perf{grid-template-columns:repeat(3,1fr)}}

/* AI product cards */
.aip{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:14px}
.aip .nm{font-weight:800;font-size:14.5px}
.aip .tg{font-size:11px;color:var(--accent2);background:rgba(22,208,232,.1);padding:2px 8px;border-radius:6px;display:inline-block;margin:6px 0 9px}
.aip .ln{font-size:12px;margin-bottom:7px;line-height:1.5}
.aip .ln b{color:var(--dim);font-weight:600}
.aip .rivals{font-size:11px;color:var(--faint);border-top:1px solid var(--border);padding-top:8px;margin-top:8px;line-height:1.5}

/* bullets */
.bl{list-style:none;display:flex;flex-direction:column;gap:10px}
.bl li{font-size:12.5px;line-height:1.6;color:var(--dim);padding-left:18px;position:relative}
.bl li::before{content:"▸";position:absolute;left:0;color:var(--accent2);font-weight:800}
.bl.risk li::before{content:"⚠";color:var(--gold)}

/* highlight strip */
.hl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:11px}
.hl{background:linear-gradient(135deg,rgba(61,139,255,.08),var(--bg2));border:1px solid var(--border);border-radius:11px;padding:12px 13px}
.hl .k{font-size:11px;color:var(--dim);font-weight:600}
.hl .v{font-family:var(--mono);font-size:17px;font-weight:800;margin:4px 0 3px;color:var(--accent2)}
.hl .n{font-size:10.5px;color:var(--faint);line-height:1.4}

/* thesis box */
.thesis{display:grid;grid-template-columns:1fr 1fr;gap:13px}
@media(max-width:860px){.thesis{grid-template-columns:1fr}}
.tbox{border-radius:12px;padding:14px;border:1px solid var(--border);background:var(--bg2)}
.tbox.bull{border-left:3px solid var(--up)} .tbox.bear{border-left:3px solid var(--down)}
.tbox.cat{border-left:3px solid var(--gold)} .tbox.watch{border-left:3px solid var(--accent)}
.tbox .lab{font-size:11px;font-weight:800;letter-spacing:.5px;margin-bottom:7px}
.tbox.bull .lab{color:var(--up)} .tbox.bear .lab{color:var(--down)}
.tbox.cat .lab{color:var(--gold)} .tbox.watch .lab{color:var(--accent)}
.tbox p{font-size:12.5px;line-height:1.6;color:var(--dim)}

/* filters */
.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
.filters select,.filters input{background:var(--bg2);border:1px solid var(--border);color:var(--text);
  padding:8px 12px;border-radius:9px;font-family:var(--sans);font-size:13px;outline:none}
.filters input{min-width:170px}
.filters select:focus,.filters input:focus{border-color:var(--accent)}
.filters .cnt{margin-left:auto;font-size:12px;color:var(--dim);font-family:var(--mono)}

/* stat row */
.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:11px;margin-bottom:16px}
.stat{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:13px 15px}
.stat .v{font-family:var(--mono);font-size:22px;font-weight:800}
.stat .k{font-size:11.5px;color:var(--dim);margin-top:3px}

/* score mini badge */
.sb{display:inline-flex;align-items:center;justify-content:center;min-width:30px;padding:2px 7px;border-radius:6px;
  font-family:var(--mono);font-weight:700;font-size:12px}

/* nvidia tier badges */
.tier{font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:6px}
.tier.core{background:rgba(61,139,255,.18);color:var(--accent)}
.tier.watchlist{background:rgba(245,180,35,.14);color:var(--gold)}
.tier.universe{background:rgba(176,114,255,.15);color:var(--purple)}
.tier.parking_lot{background:var(--bg4);color:var(--faint)}

footer{text-align:center;color:var(--faint);font-size:11.5px;padding:24px;border-top:1px solid var(--border);margin-top:30px;line-height:1.7}

::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--border2);border-radius:5px}
::-webkit-scrollbar-thumb:hover{background:#3a4a68}
