/* ══════════════════════════════════════════════════════════════════════════
   RisetSaham — tema GELAP v2 (upgrade 15 Sep 2026)
   Prinsip: semua kelas lama TETAP (template lain tidak diubah kelasnya);
   v2 hanya memperkaya tampilan — gradien halus, nav blur, kartu hidup,
   chip/badge lebih rapi, toast utk pesan, gaya baru utk .hero/.bars/.bcode.
   ══════════════════════════════════════════════════════════════════════════ */
:root{
  --bg:#0b1220; --card:#111c2e; --card2:#0f1a2d; --line:#1e2a3f;
  --txt:#e6edf3; --mut:#8fa3b8; --top:rgba(12,21,36,.86);
  --acc:#38bdf8; --acc2:#818cf8; --up:#34d399; --down:#f87171; --warn:#fbbf24;
  --chipbg:#0f1a2d; --chiptxt:#b6c7da; --grid:#1c2940; --label:#7f93a9;
  --radius:16px; --radius-sm:12px;
  --shadow:0 1px 2px rgba(0,0,0,.4), 0 12px 28px -22px rgba(0,0,0,.7);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; color:var(--txt); font-size:15px; line-height:1.5;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Inter,Arial,sans-serif;
  background:
    radial-gradient(1100px 380px at 16% -10%, rgba(56,189,248,.10), transparent 60%),
    radial-gradient(900px 360px at 94% -12%, rgba(129,140,248,.09), transparent 60%),
    var(--bg);
  min-height:100vh;
}
a{color:inherit; text-decoration:none}
h1,h2,h3{margin:0 0 10px; line-height:1.25}
h1{font-size:1.35rem} h2{font-size:1.05rem} h3{font-size:1rem; margin-top:0}
.mut{color:var(--mut)} .small{font-size:.78rem}
.big{font-size:1.5rem; font-weight:800; letter-spacing:-.02em}
.num{text-align:right; font-variant-numeric:tabular-nums}
.good{color:var(--up)} .bad{color:var(--down)}
.rowspace{display:flex; align-items:baseline; justify-content:space-between; margin:16px 0 8px}

/* ── top bar ─────────────────────────────────────────────────────────── */
.top{
  background:var(--top); color:var(--txt); display:flex; align-items:center; gap:10px;
  padding:10px 16px; position:sticky; top:0; z-index:20; border-bottom:1px solid var(--line);
  -webkit-backdrop-filter:saturate(1.5) blur(12px); backdrop-filter:saturate(1.5) blur(12px);
  padding-top:calc(10px + env(safe-area-inset-top));
}
.brand{font-weight:800; font-size:1.05rem; white-space:nowrap}
.brand span{background:linear-gradient(90deg,var(--acc),var(--acc2));
  -webkit-background-clip:text; background-clip:text; color:transparent}
.top nav{margin-left:auto; display:flex; align-items:center; gap:2px; font-size:.85rem;
  overflow-x:auto; max-width:100%; scrollbar-width:none}
.top nav::-webkit-scrollbar{display:none}
.lnk{padding:5px 9px; border-radius:9px; white-space:nowrap; opacity:.88; transition:background .12s}
.lnk:hover{background:#16233a; opacity:1}
.lnk.on{background:#132743; color:var(--acc); opacity:1; font-weight:700}
.mkt{font-size:.7rem; padding:3px 8px; border-radius:999px; font-weight:700; white-space:nowrap}
.mkt.open{background:#064e3b; color:#a7f3d0; box-shadow:0 0 0 1px #065f46 inset}
.mkt.closed{background:#233047; color:#c3d1e2}

.wrap{max-width:960px; margin:0 auto; padding:14px}
.foot{max-width:960px; margin:8px auto 32px; padding:0 16px; font-size:.74rem; color:var(--mut)}
.foot a{text-decoration:underline}

/* ── toast / flash ───────────────────────────────────────────────────── */
.flash{padding:11px 14px; border-radius:12px; margin-bottom:12px; font-size:.88rem;
  border:1px solid; cursor:pointer; animation:toastIn .25s ease; box-shadow:var(--shadow)}
.flash.out{opacity:0; transform:translateY(-6px); transition:all .4s}
.flash.ok{background:#062e21; border-color:#14532d; color:#a7f3d0}
.flash.err{background:#3b0d14; border-color:#7f1d1d; color:#fecaca}
@keyframes toastIn{from{opacity:0; transform:translateY(-8px)}to{opacity:1; transform:none}}

/* ── cards ───────────────────────────────────────────────────────────── */
.card{
  background:linear-gradient(180deg, rgba(255,255,255,.015), transparent 60%), var(--card);
  border:1px solid var(--line); border-radius:var(--radius);
  padding:14px 16px; box-shadow:var(--shadow); margin-bottom:12px;
}

/* ── panduan belajar mandiri ─────────────────────────────────────────── */
.learnintro{border-left:3px solid var(--acc)}
.learnsteps{margin:6px 0 0; padding-left:22px; line-height:1.7}
.learnsteps li{margin:4px 0}
.learnsteps a{color:var(--acc); text-decoration:underline}
.glossary{display:grid; grid-template-columns:minmax(125px,.35fr) 1fr; gap:7px 14px; margin:10px 0 4px}
.glossary dt{font-weight:800; color:#dbeafe}
.glossary dd{margin:0; color:#c3d1e2}
.learnexample{margin:10px 0 2px; padding:9px 11px; border-left:3px solid #818cf8; background:#101d33; color:#cbd5e1; border-radius:8px}
.learnwarning{border-left:3px solid var(--warn)}
@media(max-width:560px){.glossary{display:block}.glossary dt{margin-top:10px}.glossary dd{margin-top:2px}}

.grid{display:grid; grid-template-columns:1fr; gap:12px; margin-bottom:12px}
@media(min-width:640px){.grid{grid-template-columns:1fr 1fr}}
@media(min-width:900px){.grid{grid-template-columns:1fr 1fr 1fr}}
.stock{display:block; transition:transform .1s ease, border-color .15s}
.stock:hover{border-color:#2b3d5c}
.stock:active{transform:scale(.99)}
.shead{display:flex; justify-content:space-between; align-items:baseline; gap:8px; margin-bottom:6px}
.shead b{font-size:1.02rem}
.nama{margin-left:6px; font-size:.76rem; font-weight:400}
.label{font-size:.75rem; color:var(--mut); white-space:nowrap}
.pxline{display:flex; align-items:baseline; gap:8px; flex-wrap:wrap}
.chg{font-weight:700; font-size:.9rem}
.live{font-size:.72rem; font-weight:700; color:#7dd3fc; background:#0c2440;
  border:1px solid #1e3a5f; padding:2px 8px; border-radius:999px; white-space:nowrap}
.sparkwrap{margin:8px 0 6px; height:38px}
.sparkwrap svg{width:100%; height:38px; display:block}
.sparkwrap.wide{margin:0}
.chips{display:flex; gap:6px; flex-wrap:wrap; margin-bottom:6px}
.chip{font-size:.7rem; background:var(--chipbg); border:1px solid var(--line);
  padding:2px 8px; border-radius:999px; color:var(--chiptxt); white-space:nowrap}
.chip.up{color:var(--up); border-color:#134e3a}
.chip.down{color:var(--down); border-color:#5f1e1e}
.badges{display:flex; gap:6px; flex-wrap:wrap}
.badge{font-size:.7rem; padding:3px 9px; border-radius:999px;
  background:#102440; border:1px solid #1e3a5f; color:#7dd3fc}
.badge.oversold,.badge.jump{background:#052e24; border-color:#065f46; color:#6ee7b7}
.badge.overbought,.badge.drop{background:#3b0d14; border-color:#7f1d1d; color:#fca5a5}
.badge.breakout{background:#052e24; border-color:#065f46; color:#6ee7b7}
.badge.breakdown{background:#3a1a05; border-color:#7c2d12; color:#fdba74}
.badge.volume{background:#362b05; border-color:#854d0e; color:#fde68a}
.badge.trend{background:#0c2440; border-color:#1e3a5f; color:#7dd3fc}

/* ── hero / index banner ─────────────────────────────────────────────── */
.hero,.idxcard{display:flex; align-items:center; gap:14px; justify-content:space-between; flex-wrap:wrap}
.hero{border-top:2px solid transparent;
  background:linear-gradient(var(--card),var(--card)) padding-box,
             linear-gradient(90deg, rgba(56,189,248,.55), rgba(129,140,248,.45), transparent) border-box;
  background-clip:padding-box, border-box}
.hero-meta{display:flex; flex-direction:column; align-items:flex-end; gap:4px}
.pill{font-size:.7rem; font-weight:800; padding:3px 10px; border-radius:999px; white-space:nowrap}
.pill.open{background:#064e3b; color:#a7f3d0}
.pill.closed{background:#233047; color:#c3d1e2}
.idxmain .lbl{font-size:.72rem; color:var(--mut); text-transform:uppercase; letter-spacing:.04em}
.idxcard .sparkwrap{width:38%; min-width:120px}
.hero .sparkwrap{flex:1; min-width:120px}

/* notice strip (mis. sesi Stockbit mati) */
.notice{border-left:3px solid var(--warn)}
.notice.warn{background:#2a1f05; border-color:#854d0e; color:#fde68a}
.notice.warn .mut{color:#e8c98a}

/* ── detail ──────────────────────────────────────────────────────────── */
.dhead{margin:4px 0 12px}
.back{font-size:.82rem; color:var(--mut); display:inline-block; margin-bottom:6px}
.chartwrap svg.chart{width:100%; height:auto; display:block; border-radius:8px}
.cols{display:grid; grid-template-columns:1fr; gap:0}
@media(min-width:760px){.cols{grid-template-columns:1fr 1fr; gap:12px; align-items:start}}
.scorecard .scorehead{display:flex; justify-content:space-between; align-items:center; margin-bottom:6px}
.labelbig{font-size:1.05rem; font-weight:800}
.scorenum{font-size:1.6rem; font-weight:800}
.scorenum small{font-size:.78rem; color:var(--mut); font-weight:600}
.narasi{margin:4px 0 8px; font-size:.92rem; line-height:1.6}
details summary{cursor:pointer; font-size:.84rem; color:var(--mut); padding:4px 0}
details summary:hover{color:var(--acc)}

/* aliran asing (bar chart mini) */
.barswrap{margin:6px 0 2px; height:48px}
.barswrap svg.bars{width:100%; height:48px; display:block}

/* kode broker (matriks) */
.bcode{display:inline-block; font-weight:800; font-size:.78rem; letter-spacing:.02em;
  background:#0c2440; border:1px solid #1e3a5f; color:#7dd3fc;
  padding:1px 7px; border-radius:6px}

/* ── tables ──────────────────────────────────────────────────────────── */
.tbl{width:100%; border-collapse:collapse; font-size:.86rem}
.tbl td{padding:7px 4px; border-top:1px solid var(--line); vertical-align:top}
.tbl tr:first-child td{border-top:0}
.tbl tbody tr:hover td{background:rgba(255,255,255,.015)}

/* ── news ────────────────────────────────────────────────────────────── */
.newslist{display:flex; flex-direction:column}
.newsitem{display:block; padding:9px 0; border-top:1px solid var(--line)}
.newsitem:first-child{border-top:0}
.newsitem:hover .ntitle{color:var(--acc)}
.ntitle{font-size:.9rem; font-weight:600; line-height:1.4; transition:color .12s}
.nmeta{font-size:.72rem; color:var(--mut); margin-top:2px}
.nmeta .sym{color:#7dd3fc; font-weight:700}

/* label sentimen + emiten terdampak (deteksi kata kunci judul) */
.newsitem{padding:10px 10px 10px 12px; border-left:3px solid transparent}
.newsitem.s-baik{border-left-color:rgba(74,222,128,.5)}
.newsitem.s-buruk{border-left-color:rgba(248,113,113,.5)}
.newsitem.s-netral{border-left-color:rgba(139,148,158,.2)}
.newsitem.s-campuran{border-left-color:rgba(251,191,36,.45)}
.nimp{margin-top:5px; display:flex; flex-wrap:wrap; gap:4px 9px; align-items:center;
  font-size:.74rem}
.nsenti{display:inline-block; font-size:.68rem; font-weight:700; padding:1px 8px;
  border-radius:999px; border:1px solid var(--line); color:var(--mut)}
.nsenti.s-baik{color:#4ade80; border-color:rgba(74,222,128,.35)}
.nsenti.s-buruk{color:#f87171; border-color:rgba(248,113,113,.35)}
.nsenti.s-campuran{color:#fbbf24; border-color:rgba(251,191,36,.4)}
.nimp .lbl{color:var(--mut); font-size:.68rem}
.nimp .schip{font-size:.68rem; font-weight:700; padding:1px 8px; border-radius:999px;
  border:1px solid var(--line)}
.nimp .schip.up{color:#4ade80; border-color:rgba(74,222,128,.35)}
.nimp .schip.dn{color:#f87171; border-color:rgba(248,113,113,.35)}
.nimp .etk.up{color:#4ade80; border-color:rgba(74,222,128,.4)}
.nimp .etk.dn{color:#f87171; border-color:rgba(248,113,113,.4)}
.nimp .etk.nt{color:var(--mut)}
.nimp .etk{font-size:.7rem; font-weight:800; color:#e6edf3; background:rgba(255,255,255,.09);
  border:1px solid rgba(255,255,255,.16); border-radius:999px; padding:1px 9px}

/* ── forms & buttons ─────────────────────────────────────────────────── */
input,textarea{
  width:100%; padding:10px 12px; border:1px solid var(--line); border-radius:var(--radius-sm);
  font:inherit; background:#0d1729; color:var(--txt); margin:4px 0;
}
input::placeholder,textarea::placeholder{color:#5c7188}
input:focus,textarea:focus{outline:2px solid #1e3a5f; border-color:#38bdf8}
.btn{
  display:inline-block; border:0; border-radius:var(--radius-sm);
  background:linear-gradient(135deg,var(--acc),#4fb7f0); color:#08131f;
  padding:10px 16px; font-weight:800; font-size:.88rem; cursor:pointer; margin:4px 0;
  box-shadow:0 6px 18px -10px rgba(56,189,248,.7);
}
.btn:hover{filter:brightness(1.06)}
.btn:active{opacity:.85}
.btn.wide{width:100%}
.btn.tiny{padding:4px 10px; font-size:.74rem; margin:0; box-shadow:none}
.btn.danger{background:linear-gradient(135deg,#ef4444,#b91c1c); color:#fff; box-shadow:none}
.addform{display:flex; gap:8px; flex-wrap:wrap; align-items:flex-start}
.addform input{flex:1; min-width:140px; margin:0}
.addform .btn{margin:0; white-space:nowrap}
.delrow{display:flex; align-items:center; justify-content:space-between; gap:8px; padding:6px 0; border-top:1px solid var(--line); font-size:.85rem}
.loginbox{max-width:380px; margin:8vh auto}
.loginbox h1{margin-bottom:2px}
.loginbox label{display:block; font-size:.8rem; color:var(--mut); margin-top:10px}

/* ── notes ───────────────────────────────────────────────────────────── */
.note{border-top:1px solid var(--line); padding:10px 0}
.notebody{white-space:pre-wrap; margin:4px 0 6px}

/* tombol lonceng notifikasi */
.bell{background:none; border:1px solid transparent; font-size:17px; line-height:1;
  cursor:pointer; padding:3px 6px; border-radius:8px; color:var(--txt)}
.bell:hover{background:#16233a; border-color:var(--line)}

/* tambah saham: tombol cepat + autocomplete */
.quick{display:flex; gap:6px; flex-wrap:wrap; margin:2px 0 10px}
.chipadd{font-size:.74rem; background:var(--chipbg); border:1px solid var(--line);
  color:var(--chiptxt); border-radius:999px; padding:4px 10px; cursor:pointer; font-weight:600}
.chipadd:hover{border-color:var(--acc); color:var(--acc)}
.addwrap{position:relative; flex:1; min-width:180px}
.addwrap input{width:100%; margin:0}
.sug{position:absolute; top:calc(100% + 2px); left:0; right:0; z-index:30;
  background:var(--card); border:1px solid var(--line); border-radius:10px;
  box-shadow:0 8px 24px rgba(0,0,0,.45); max-height:250px; overflow:auto}
.sugitem{padding:9px 12px; cursor:pointer; font-size:.85rem; border-top:1px solid var(--line)}
.sugitem:first-child{border-top:0}
.sugitem:hover{background:#16233a}

/* ── portofolio ──────────────────────────────────────────────────────── */
.sumgrid{display:flex; gap:22px; flex-wrap:wrap}
.sumitem .lbl{font-size:.7rem; color:var(--mut); text-transform:uppercase; letter-spacing:.04em; margin-bottom:2px}
.sumgrid .big{font-size:1.15rem}
select{width:100%; padding:10px 12px; border:1px solid var(--line); border-radius:var(--radius-sm);
  font:inherit; background:#0d1729; color:var(--txt); margin:4px 0}
.addform select{flex:1; min-width:130px; margin:0}

/* ── pola teknikal 🎯 ────────────────────────────────────────────────── */
.stagebadge{display:inline-block; font-size:.72rem; font-weight:800; padding:3px 10px; border-radius:999px; border:1px solid; white-space:nowrap}
.stagebadge.hampir{background:#362b05; border-color:#854d0e; color:#fde68a}
.stagebadge.konfirmasi{background:#052e24; border-color:#065f46; color:#6ee7b7}
.stagebadge.terbentuk{background:#0c2440; border-color:#1e3a5f; color:#7dd3fc}
.legendbox{padding:10px 16px}
.legend{display:flex; align-items:center; gap:10px; padding:4px 0; flex-wrap:wrap}
.legend .small{font-size:.76rem}
.polacard .polahead{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:4px}
.polasym{font-size:1.08rem; font-weight:800; color:var(--acc)}
.polasym:hover{text-decoration:underline}
.polaspark{width:110px; margin-left:auto}
.polacard .pola{border-top:1px solid var(--line); padding:10px 0 4px}
.polacard .pola:first-of-type{border-top:0; padding-top:4px}
.polatitle{display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:4px}
.polatitle .pe{font-size:1.05rem}
.polaringkas{margin:2px 0 8px; font-size:.9rem; line-height:1.55}
.polalvl{margin-bottom:6px}
.polalvl td{border-top:0; padding:2px 10px 4px 0}
.why{list-style:none; margin:6px 0 2px; padding:0; font-size:.82rem; line-height:1.7}
.why .ok{color:#86efac}
.why .no{color:var(--mut)}
.polawaktu{margin-top:4px}
.stats .tbl td{padding:6px 4px}

/* ── akun & register ─────────────────────────────────────────────────── */
.centerline{text-align:center; margin-top:12px; font-size:.88rem}
.centerline a{color:var(--acc); font-weight:700}
.kodebox{background:#0d1729; border:1px dashed var(--line); border-radius:10px;
  padding:12px 14px; margin:8px 0; font-size:1.15rem; text-align:center}
.kodebox code{color:var(--acc); font-weight:800; letter-spacing:.08em}
.formcard label{display:block; font-size:.8rem; color:var(--mut); margin-top:10px}

/* ── monitor owner ───────────────────────────────────────────────────── */
.mstat{display:flex; gap:20px; flex-wrap:wrap}
.mitem .lbl{display:block; font-size:.68rem; color:var(--mut); text-transform:uppercase; letter-spacing:.05em; margin-bottom:3px}
.mitem .val{font-weight:800; font-size:1rem}
.tbl.mon th{font-size:.7rem; color:var(--mut); text-align:left; font-weight:600; padding:5px 4px; border-bottom:1px solid var(--line)}
.tbl.mon th.num{text-align:right}

/* ── scrollbar halus (desktop) ───────────────────────────────────────── */
@media(min-width:900px){
  *::-webkit-scrollbar{width:10px; height:10px}
  *::-webkit-scrollbar-thumb{background:#1e2a3f; border-radius:8px; border:2px solid var(--bg)}
  *::-webkit-scrollbar-track{background:transparent}
}

/* ── kartu sinyal V7 (halaman /screener, sumber program V7 Alpha) ────── */
.v7grid{display:grid; grid-template-columns:1fr; gap:12px; margin-top:8px}
@media(min-width:720px){.v7grid{grid-template-columns:1fr 1fr}}
.v7card{background:var(--card2); border:1px solid var(--line); border-radius:var(--radius-sm);
  padding:10px 12px}
.v7head{display:flex; align-items:center; gap:8px; font-size:1.02rem; flex-wrap:wrap}
.v7skor{margin-left:auto; font-weight:800; font-size:1.05rem; color:var(--acc)}
.scorebar{height:5px; background:#0a1526; border-radius:999px; margin:6px 0 8px;
  overflow:hidden; border:1px solid var(--line)}
.scorebar i{display:block; height:100%; background:linear-gradient(90deg,var(--acc),var(--acc2))}
.v7chartbox{margin:2px 0 8px}
.v7chart{width:100%; height:auto; display:block}
.v7stats{display:flex; gap:10px; flex-wrap:wrap; font-size:.82rem}
.v7ideal{font-size:.82rem; color:#cbd5e1; margin:-2px 0 6px}
.v7ideal b{color:#e8f0fb}
.v7bandar{font-size:.82rem; color:#cbd5e1; margin:-2px 0 6px}
.v7bandar b{color:#7dd3fc}
.v7berita{font-size:.82rem; color:#cbd5e1; margin:-2px 0 6px}
.v7berita b{color:#7dd3fc}
.v7foot{display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:8px}

/* ── screening mandiri (panel scan on-demand di /screener) ──────────── */
.scanbox{margin-top:10px; border:1px solid var(--line); border-radius:var(--radius-sm);
  padding:10px 12px; background:var(--card2)}
.scanrow{margin-bottom:6px}
.scanbar{height:6px; background:#0a1526; border-radius:999px; overflow:hidden; border:1px solid var(--line)}
.scanbar i{display:block; height:100%; background:linear-gradient(90deg,var(--acc),var(--acc2)); transition:width .4s}
.scanlog{max-height:110px; overflow:auto; margin:8px 0 0; white-space:pre-wrap; font-size:.75rem}

/* ── hapus cepat dari watchlist (16 Sep 2026) ─────────────────────────── */
.card.stock{position:relative}
.stretched{position:absolute; inset:0; z-index:1; border-radius:inherit}
.carddel{position:absolute; right:8px; bottom:8px; z-index:2; margin:0}
.carddel button, .poladel button{background:rgba(13,20,35,.9); border:1px solid var(--line);
  color:var(--mut); width:28px; height:28px; border-radius:8px; cursor:pointer;
  font-size:.85rem; line-height:1; padding:0}
.carddel button:hover, .poladel button:hover{color:#fff; border-color:var(--down);
  background:rgba(248,113,113,.14)}
.poladel{margin-left:4px; display:flex; align-items:center}

/* ── 🪨 Radar Pegas (17 Sep 2026) ─────────────────────────────────────── */
.pghead{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:4px}
.pgsym{font-size:1.08rem; font-weight:800; color:var(--acc)}
.pgsym:hover{text-decoration:underline}
.pgskor{margin-left:auto; font-weight:800; font-size:1.05rem; color:var(--acc)}
.pgmeta{font-size:.86rem; margin:6px 0 2px; line-height:1.85}
.pgmeta .lbl2{color:var(--mut)}
.pgtag{display:inline-block; font-size:.72rem; font-weight:800; padding:3px 10px;
  border-radius:999px; border:1px solid; white-space:nowrap}
.pgtag.t95{background:#3b0d14; border-color:#7f1d1d; color:#fca5a5}
.pgtag.t85{background:#362b05; border-color:#854d0e; color:#fde68a}
.pgtag.t70{background:#0c2440; border-color:#1e3a5f; color:#7dd3fc}
.pgalist{list-style:none; margin:6px 0 0; padding:0}
.pgalist li{padding:6px 0; border-top:1px solid var(--line); font-size:.85rem;
  display:flex; gap:10px; flex-wrap:wrap; align-items:baseline}
.pgalist li:first-child{border-top:0}

/* ── Klaster berita + filter arah (18 Okt 2026) ─────────────────────────── */
.nfilt{display:flex; flex-wrap:wrap; gap:8px; margin:10px 0 4px}
.nfilt .chip{display:inline-block; font-size:.75rem; font-weight:700; padding:3px 11px;
  border-radius:999px; border:1px solid var(--line); color:var(--mut); text-decoration:none;
  transition:border-color .12s, color .12s}
.nfilt .chip:hover{color:#e6edf3}
.nfilt .chip.on{color:#e6edf3; border-color:var(--acc)}
.nfilt .chip.s-baik.on{border-color:rgba(74,222,128,.6); color:#4ade80}
.nfilt .chip.s-buruk.on{border-color:rgba(248,113,113,.6); color:#f87171}
.nfilt .chip.s-campuran.on{border-color:rgba(251,191,36,.6); color:#fbbf24}
.kbadge{display:inline-block; font-size:.68rem; font-weight:700; padding:1px 8px;
  border-radius:999px; border:1px dashed rgba(125,211,252,.5); color:#7dd3fc}
.ksumber{margin-top:6px}
.ksumber summary{cursor:pointer; font-size:.72rem; color:#8fa3b8; list-style:none}
.ksumber summary::-webkit-details-marker{display:none}
.ksumber summary:before{content:"▸ "; color:var(--acc)}
.ksumber[open] summary:before{content:"▾ "}
.ksumber ul{margin:6px 0 2px; padding-left:16px}
.ksumber li{font-size:.78rem; color:#b9c7d6; margin:4px 0; line-height:1.45}
.ksumber li a{color:#cfe0f5; text-decoration:none}
.ksumber li a:hover{text-decoration:underline}
.hdesc{margin:-4px 0 10px; line-height:1.55; max-width:720px}

/* ── 🧭 Ringkasan teknikal + pivot (18 Okt 2026) ─────────────────────── */
.techhead{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:2px 0 6px}
.techbadge{display:inline-block; font-size:.78rem; font-weight:800; padding:4px 12px;
  border-radius:999px; border:1px solid; white-space:nowrap}
.techbadge.beli_kuat{background:#052e24; border-color:#065f46; color:#6ee7b7}
.techbadge.beli{background:#062e21; border-color:#14532d; color:#86efac}
.techbadge.netral{background:#0c2440; border-color:#1e3a5f; color:#7dd3fc}
.techbadge.jual{background:#3a1a05; border-color:#7c2d12; color:#fdba74}
.techbadge.jual_kuat{background:#3b0d14; border-color:#7f1d1d; color:#fca5a5}
.pivotbl td{border-top:0; padding:4px 6px 4px 0; font-size:.84rem}

/* ── 📌 Poin penting filing + 🌡️ Termometer Pasar (18 Okt 2026) ──────── */
.pofiling{margin:5px 0 2px}
.pofiling summary{font-size:.76rem; color:#8fa3b8}
.pofiling ul{margin:6px 0 2px; padding-left:16px}
.pofiling li{font-size:.82rem; color:#cbd5e1; margin:3px 0; line-height:1.45}
.tmbar{height:10px; border-radius:999px; position:relative; margin:10px 0 6px;
  background:linear-gradient(90deg,#7f1d1d,#854d0e 35%,#1e3a5f 50%,#14532d 70%,#065f46)}
.tmbar i{position:absolute; top:-4px; width:6px; height:18px; background:#e6edf3;
  border-radius:3px; transform:translateX(-50%); box-shadow:0 0 0 2px rgba(11,18,32,.8)}

/* Chip data belum sesi terakhir (net asing) — jangan tampak seperti data baru */
.chip.stale{opacity:.62; border-style:dashed}

/* ═══════════════════════════════════════════════════════════════════
   v3 — KETERBACAAN (20 Okt 2026)
   Skala tipe 12/12.5/13.5/15/20/26/34 · kontras lebih tinggi ·
   baris tabel lebih lega · target sentuh ≥38px · grid anti-overflow.
   ═══════════════════════════════════════════════════════════════════ */
:root{
  --fs-2xs:12px; --fs-xs:12.5px; --fs-sm:13.5px; --fs-md:15px;
  --fs-lg:20px; --fs-xl:26px; --fs-2xl:34px;
  --mut:#9db0c5; --label:#9db0c5; --chiptxt:#c9d7e7;
}
html{-webkit-text-size-adjust:100%}
body{font-size:15px; line-height:1.55; overflow-x:clip; font-variant-numeric:tabular-nums}

/* tipe dasar */
h1{font-size:1.5rem; letter-spacing:-.02em}
h2{font-size:1.2rem; letter-spacing:-.01em; margin:0 0 10px}
h3{font-size:1.06rem; letter-spacing:-.005em; margin:0 0 8px}
p{line-height:1.65; max-width:76ch}
.small{font-size:var(--fs-sm)}
.mut.small{font-size:var(--fs-sm)}
.big{font-size:2rem; letter-spacing:-.03em}
.num,.tbl .num,.chg,.big{font-variant-numeric:tabular-nums}

/* kartu & grid */
.card{padding:18px 20px; border-radius:16px}
.grid{grid-template-columns:repeat(auto-fit, minmax(min(100%, 300px), 1fr)) !important; gap:14px}
.grid > *{min-width:0}
@media(max-width:520px){ .card{padding:16px 15px} }

/* navigasi */
.top nav{font-size:14px; gap:4px}
.lnk{min-height:38px; display:inline-flex; align-items:center; padding:8px 11px; font-size:14px}
.brand{font-size:1.1rem; min-height:38px; display:inline-flex; align-items:center}
.mkt{font-size:12px; padding:4px 9px}

/* dropdown "Lainnya" */
.nav-more{position:relative}
.nav-more > summary{list-style:none; cursor:pointer}
.nav-more > summary::-webkit-details-marker{display:none}
.nav-more .menu{position:absolute; right:0; top:calc(100% + 6px); z-index:60;
  background:var(--card); border:1px solid var(--line); border-radius:12px;
  padding:6px; min-width:196px; box-shadow:0 18px 40px -18px rgba(0,0,0,.8)}
.nav-more .menu a{display:flex; align-items:center; gap:6px; padding:10px 11px;
  border-radius:9px; font-size:14px; white-space:nowrap}
.nav-more .menu a:hover{background:#16233a}
.nav-more .menu .sep{height:1px; background:var(--line); margin:5px 4px}

/* chip, badge, label — minimum 12px */
.chip{font-size:var(--fs-xs); padding:4px 10px; line-height:1.35}
.badge{font-size:var(--fs-xs); padding:4px 10px; line-height:1.35}
.pill{font-size:var(--fs-2xs); padding:4px 10px}
.live{font-size:var(--fs-2xs); padding:3px 9px}
.label,.lbl{font-size:var(--fs-xs); white-space:nowrap}
.idxmain .lbl{font-size:var(--fs-2xs)}
.nama{font-size:var(--fs-sm)}
.back{font-size:var(--fs-sm)}
.bcode{font-size:var(--fs-sm)}
.scorenum small{font-size:var(--fs-sm)}
.nmeta{font-size:var(--fs-xs); margin-top:3px}
.nsenti,.nimp .lbl,.nimp .schip,.nimp .etk{font-size:var(--fs-2xs)}
.nimp{font-size:var(--fs-xs)}
.narasi{font-size:.98rem; line-height:1.7}
details summary{font-size:var(--fs-sm); padding:6px 0}

/* tabel: lebih lega + zebra */
.tbl{font-size:14px}
.tbl td{padding:10px 8px; line-height:1.45; vertical-align:middle}
.tbl th{font-size:var(--fs-xs); text-transform:uppercase; letter-spacing:.03em;
  color:var(--mut); font-weight:700; padding:8px; border-bottom:1px solid var(--line)}
.tbl tbody tr:nth-child(even) td{background:rgba(255,255,255,.022)}
.tbl.mon th{font-size:var(--fs-xs); padding:8px}

/* tombol & target sentuh */
.btn{min-height:40px; font-size:14px}
.btn.tiny{min-height:34px; font-size:var(--fs-xs)}
input,textarea{font-size:15px; min-height:42px}

/* hero detail: ticker besar, nama kecil (pola TradingView) */
.dhead .ticker{font-size:1.55rem; margin:0 0 2px; letter-spacing:-.02em}
.dhead .cname{color:var(--mut); font-size:14px; margin-bottom:8px}
.dhead .big{font-size:2.3rem}
.dhead .chg{font-size:1.05rem}

/* angka penting tidak pecah baris */
.chip,.badge,.pill,.live{white-space:nowrap}

/* v3.1 — sisa target kecil */
.chipadd{font-size:var(--fs-xs); min-height:30px; padding:5px 10px}
.bell{min-width:34px; min-height:34px}
.carddel button,.carddel{min-width:34px; min-height:34px}
.mkt{min-height:26px; display:inline-flex; align-items:center}

/* v3.2 — menu & footer */
.foot{font-size:12.5px; line-height:1.6}
@media(max-width:760px){
  .nav-more .menu{position:fixed; left:10px; right:10px; top:52px; min-width:0; max-height:70vh; overflow:auto}
}

/* v3.3 — aksesibilitas & tabel lebih lega */
:focus-visible{outline:2px solid var(--acc); outline-offset:2px; border-radius:6px}
.tbl td{padding:11px 8px}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* v3.4 — label kecil tersisa */
.kbadge,.pgtag,.stagebadge,.nsenti,.nimp .lbl,.nimp .schip,.nimp .etk{font-size:var(--fs-xs)}
.chart text, svg.chart text, .sparkwrap text{font-size:12px}
.foot{font-size:12.5px}

/* v3.5 — tabel bisa digeser di layar sempit */
.tblwrap{overflow-x:auto; -webkit-overflow-scrolling:touch; max-width:100%}
.tblwrap > .tbl{min-width:max-content}
@media(max-width:760px){ .top nav{min-width:0} }
.ksumber summary{font-size:var(--fs-xs)}
.pofiling summary{font-size:var(--fs-sm)}
