
*{box-sizing:border-box;margin:0;padding:0}
/* Proteksi konten: cegah drag/select gambar & media */
img,video,iframe{-webkit-user-drag:none;-webkit-user-select:none;user-select:none;}
:root{
  --bg:#0a0e14;--panel:#111722;--panel2:#161e2b;--border:#212c3d;
  --txt:#e6edf6;--muted:#8a98ab;--green:#16c784;--red:#ea3943;
  --blue:#2f81f7;--yellow:#f5b301;
  --bid:#16c784;--accent:#f5b301;
  --sw:220px;--bnh:60px;--topbar:56px;
}
html,body{height:100%;background:var(--bg);color:var(--txt);
  font-family:"Segoe UI",system-ui,sans-serif;}

/* ===========================
   HALAMAN LOGIN
   =========================== */
.login-page{
  min-height:100vh;display:flex;align-items:center;justify-content:center;
  padding:20px;
  background:radial-gradient(800px 500px at 70% 30%,rgba(22,199,132,.07),transparent),var(--bg);
}
.login-card{
  background:var(--panel);border:1px solid var(--border);border-radius:20px;
  padding:44px 36px;max-width:420px;width:100%;text-align:center;
}
.login-logo{font-size:48px;margin-bottom:10px}
.login-brand{font-size:22px;font-weight:800;letter-spacing:.5px}
.login-sub{color:var(--muted);font-size:13px;margin:6px 0 32px}
.login-label{font-size:12px;color:var(--muted);font-weight:700;text-align:left;margin-bottom:8px;letter-spacing:.5px;text-transform:uppercase}
.login-input{
  width:100%;background:#0d1520;border:1px solid var(--border);border-radius:12px;
  padding:16px;color:var(--txt);font-size:20px;font-family:monospace;
  letter-spacing:4px;text-align:center;text-transform:uppercase;outline:none;
  transition:border-color .2s;
}
.login-input:focus{border-color:var(--green)}
.login-input::placeholder{color:#2a3a4e;letter-spacing:1px;font-size:13px}
.login-btn{
  width:100%;margin-top:16px;padding:15px;border:none;border-radius:12px;
  background:linear-gradient(135deg,var(--green),#0fa56e);color:#06210f;
  font-size:16px;font-weight:800;cursor:pointer;transition:opacity .2s;
}
.login-btn:hover{opacity:.9}
.login-err{
  background:rgba(234,57,67,.1);border:1px solid rgba(234,57,67,.3);color:var(--red);
  border-radius:8px;padding:10px 14px;font-size:13px;margin-bottom:16px;
}
.login-help{margin-top:22px;font-size:12px;color:var(--muted);line-height:1.8}
.login-help a{color:var(--green);text-decoration:none}
.login-divider{margin:20px 0;border:none;border-top:1px solid var(--border)}
.login-back{font-size:13px;color:var(--muted)}
.rec-link{color:var(--yellow) !important;font-weight:700;cursor:pointer}
.rec-found{background:rgba(22,199,132,.08);border:1px solid rgba(22,199,132,.3);border-radius:12px;padding:16px;margin-bottom:12px;text-align:center}
.rec-found-lbl{font-size:12px;color:var(--green);font-weight:700;margin-bottom:8px}
.rec-code{font-family:'Consolas',monospace;font-size:22px;font-weight:900;letter-spacing:3px;color:var(--txt);word-break:break-all}
.rec-meta{font-size:11.5px;color:var(--muted);margin-top:8px}
.login-back a{color:var(--green);text-decoration:none}

/* ===========================
   LAYOUT DASHBOARD
   =========================== */
#dashboard{display:flex;min-height:100vh}

/* Sidebar desktop */
#sidebar{
  width:var(--sw);flex-shrink:0;position:fixed;top:0;left:0;bottom:0;
  background:var(--panel);border-right:1px solid var(--border);
  display:flex;flex-direction:column;z-index:40;overflow-y:auto;
}
.sb-brand{
  padding:20px 18px 16px;border-bottom:1px solid var(--border);
  font-weight:800;font-size:15px;display:flex;align-items:center;gap:10px;
}
.sb-brand small{display:block;font-size:11px;font-weight:400;color:var(--muted)}
.sb-dot{width:10px;height:10px;border-radius:50%;background:var(--green);box-shadow:0 0 8px var(--green);flex-shrink:0}
.sb-nav{padding:10px 0;flex:1}
.sb-section-label{
  padding:10px 18px 4px;font-size:10px;font-weight:700;
  color:var(--muted);letter-spacing:1.5px;text-transform:uppercase;
}
.sb-link{
  display:flex;align-items:center;gap:10px;padding:10px 18px;
  color:var(--muted);text-decoration:none;font-size:14px;font-weight:500;
  transition:all .15s;border-left:3px solid transparent;cursor:pointer;
  border:none;background:none;width:100%;text-align:left;
}
.sb-link:hover{background:rgba(255,255,255,.04);color:var(--txt)}
.sb-link.active{background:rgba(22,199,132,.08);color:var(--green);border-left-color:var(--green)}
.sb-link .icon{font-size:17px;width:22px;text-align:center}
.sb-link .badge{margin-left:auto;background:rgba(22,199,132,.2);color:var(--green);font-size:10px;font-weight:800;padding:1px 7px;border-radius:999px}
.sb-link .badge-soon{margin-left:auto;background:rgba(245,179,1,.15);color:var(--yellow);font-size:10px;font-weight:800;padding:1px 7px;border-radius:999px}
.sb-footer{padding:14px 16px;border-top:1px solid var(--border)}
.sb-user{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.sb-avatar{
  width:34px;height:34px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,var(--blue),var(--green));
  display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:14px;color:#fff;
}
.sb-username{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sb-expiry{font-size:11px;color:var(--muted)}
.sb-logout{
  width:100%;padding:8px;background:none;border:1px solid var(--border);
  color:var(--muted);border-radius:8px;cursor:pointer;font-size:13px;
  transition:all .15s;font-family:inherit;
}
.sb-logout:hover{border-color:var(--red);color:var(--red)}

/* Main content */
#portal-main{
  margin-left:var(--sw);flex:1;min-height:100vh;
  display:flex;flex-direction:column;
}
.portal-topbar{
  position:sticky;top:0;z-index:30;height:var(--topbar);
  background:rgba(10,14,20,.95);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--border);
  display:none;/* desktop hidden, shown on mobile */
  align-items:center;padding:0 16px;gap:12px;
}
.ptb-brand{font-weight:800;font-size:15px;flex:1}
.ptb-user{font-size:13px;color:var(--muted)}
.section-content{
  display:none;padding:28px;flex:1;
  animation:fadeIn .2s ease;
}
.section-content.active{display:block}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.sec-title{font-size:22px;font-weight:800;margin-bottom:6px}
.sec-sub{color:var(--muted);font-size:14px;margin-bottom:28px}

/* ===========================
   BERANDA
   =========================== */
.welcome-banner{
  background:linear-gradient(135deg,rgba(22,199,132,.12),rgba(47,129,247,.08));
  border:1px solid rgba(22,199,132,.2);border-radius:16px;
  padding:24px 28px;margin-bottom:28px;display:flex;align-items:center;gap:18px;
}
.wb-avatar{
  width:56px;height:56px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,var(--green),var(--blue));
  display:flex;align-items:center;justify-content:center;
  font-weight:900;font-size:22px;color:#fff;
}
.wb-title{font-size:20px;font-weight:800}
.wb-sub{color:var(--muted);font-size:13px;margin-top:4px}
.expiry-badge{
  display:inline-flex;align-items:center;gap:6px;margin-top:8px;
  font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;
}
.expiry-ok{background:rgba(22,199,132,.1);color:var(--green)}
.expiry-warn{background:rgba(245,179,1,.1);color:var(--yellow)}

.home-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin-bottom:28px}
.home-card{
  background:var(--panel);border:1px solid var(--border);border-radius:14px;
  padding:22px 18px;cursor:pointer;transition:all .2s;text-align:left;position:relative;overflow:hidden;
  display:flex;flex-direction:column;gap:8px;
}
.home-card:hover{border-color:rgba(22,199,132,.35);transform:translateY(-2px);box-shadow:0 8px 30px rgba(0,0,0,.3)}
.home-card.coming{cursor:default;opacity:.75}
.home-card.coming:hover{transform:none;border-color:var(--border)}
.hc-badge{
  position:absolute;top:12px;right:12px;
  font-size:10px;font-weight:800;padding:2px 8px;border-radius:999px;
}
.hc-badge-soon{background:rgba(245,179,1,.15);color:var(--yellow)}
.hc-badge-new{background:rgba(22,199,132,.15);color:var(--green)}
.hc-icon{font-size:32px}
.hc-title{font-size:15px;font-weight:800}
.hc-desc{font-size:13px;color:var(--muted);line-height:1.5}
.hc-action{font-size:12px;color:var(--green);font-weight:700;margin-top:4px}

.news-card{
  background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:22px;
}
.news-title{font-size:14px;font-weight:700;margin-bottom:14px;color:var(--muted);letter-spacing:.5px;text-transform:uppercase}
.news-item{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}
.news-item:last-child{border-bottom:none;padding-bottom:0}
.news-dot{width:8px;height:8px;border-radius:50%;background:var(--green);margin-top:5px;flex-shrink:0}
.news-text{font-size:13px;line-height:1.6}
.news-date{font-size:11px;color:var(--muted);margin-top:2px}

/* ===========================
   TERMINAL BERITA REALTIME
   =========================== */
.beranda-news-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px;align-items:stretch}
.beranda-news-grid.single{grid-template-columns:1fr}
.news-terminal{
  background:var(--panel);border:1px solid var(--border);border-radius:16px;
  overflow:hidden;display:flex;flex-direction:column;min-height:460px;
}
.nt-header{
  display:flex;align-items:center;gap:8px;padding:11px 14px;
  background:rgba(234,57,67,.07);border-bottom:1px solid var(--border);
  font-size:12px;font-weight:800;letter-spacing:.6px;color:var(--txt);text-transform:uppercase;
}
.live-dot{width:8px;height:8px;border-radius:50%;background:#ea3943;flex-shrink:0;
  box-shadow:0 0 0 0 rgba(234,57,67,.6);animation:livePulse 1.6s infinite}
@keyframes livePulse{0%{box-shadow:0 0 0 0 rgba(234,57,67,.5)}70%{box-shadow:0 0 0 7px rgba(234,57,67,0)}100%{box-shadow:0 0 0 0 rgba(234,57,67,0)}}
.nt-tabs{display:flex;border-bottom:1px solid var(--border);background:rgba(255,255,255,.02)}
.nt-tab{
  flex:1;background:none;border:none;border-bottom:2px solid transparent;
  color:var(--muted);font-size:12px;font-weight:700;padding:9px 6px;cursor:pointer;
  font-family:inherit;transition:all .15s;margin-bottom:-1px;
}
.nt-tab.active{color:var(--green);border-bottom-color:var(--green)}
.nt-panel{flex:1;min-height:400px}
.nt-panel[hidden]{display:none}
.nt-panel iframe{display:block;width:100%!important}
/* GEX terminal */
.gex-body{flex:1;padding:14px 16px;font-family:'Consolas','Menlo',monospace}
.gex-msg{color:var(--muted);text-align:center;padding:40px 10px;font-size:13px}
.gex-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:14px}
.gex-stat{background:rgba(255,255,255,.03);border:1px solid var(--border);border-radius:9px;padding:9px 11px}
.gex-stat .lbl{font-size:10px;color:var(--muted);letter-spacing:.5px;text-transform:uppercase;margin-bottom:3px}
.gex-stat .val{font-size:16px;font-weight:800;color:var(--txt)}
.gex-ladder{display:flex;flex-direction:column;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:9px;overflow:hidden}
.gex-row{display:flex;align-items:center;gap:10px;padding:9px 12px;background:var(--panel)}
.gex-row.spot{background:rgba(47,129,247,.12)}
.gex-row .gr-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.gex-row .gr-label{flex:1;font-size:12px;font-weight:700;color:var(--txt)}
.gex-row .gr-tag{font-size:10px;color:var(--muted);font-weight:600}
.gex-row .gr-val{font-size:15px;font-weight:800;font-variant-numeric:tabular-nums}
.gex-foot{padding:9px 16px;border-top:1px solid var(--border);font-size:11px;color:var(--muted);display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px;font-family:'Consolas',monospace}
/* Ringkasan GEX di beranda */
.gex-mini{padding:12px 14px;font-family:'Consolas',monospace}
.gex-mini .gm-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid var(--border);font-size:13px}
.gex-mini .gm-row:last-child{border-bottom:none}
.gex-mini .gm-lbl{color:var(--muted);font-size:12px}
.gex-mini .gm-val{font-weight:800}
.gex-open-btn{display:block;margin:6px 14px 14px;text-align:center;background:rgba(47,129,247,.12);border:1px solid var(--blue);color:var(--blue);border-radius:9px;padding:10px;font-size:12px;font-weight:700;text-decoration:none;transition:background .2s}
.gex-open-btn:hover{background:rgba(47,129,247,.2)}
/* ===== GEX TERMINAL FULL ===== */
#sec-gex{font-family:'Consolas','Menlo',monospace}
.gexf-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.gexf-syms{display:flex;gap:6px;flex-wrap:wrap}
.gexf-sym{background:var(--panel);border:1px solid var(--border);color:var(--muted);border-radius:8px;padding:7px 16px;font-size:13px;font-weight:800;cursor:pointer;font-family:inherit;transition:all .15s}
.gexf-sym.active{background:rgba(139,92,246,.15);border-color:#8b5cf6;color:#a855f7}
.gexf-futs{background:var(--panel);border:1px solid var(--border);color:var(--txt);border-radius:8px;padding:7px 14px;font-size:13px;font-weight:800;cursor:pointer;font-family:inherit;margin-left:auto}
.gexf-futs.on{background:rgba(245,179,1,.15);border-color:var(--yellow);color:var(--yellow)}
.gexf-status{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--green);font-weight:700}
.gexf-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:16px}
.gexf-stat{background:var(--panel);border:1px solid var(--border);border-radius:11px;padding:12px 14px}
.gexf-stat .lbl{font-size:10px;color:var(--muted);letter-spacing:.6px;text-transform:uppercase;margin-bottom:5px}
.gexf-stat .val{font-size:19px;font-weight:900}
.gexf-regime{border-radius:14px;padding:18px;margin-bottom:16px;border:1px solid var(--border)}
.gexf-regime.pos{background:rgba(22,199,132,.06);border-color:rgba(22,199,132,.3)}
.gexf-regime.neg{background:rgba(234,57,67,.06);border-color:rgba(234,57,67,.3)}
.gexf-regime .rg-title{font-size:20px;font-weight:900;margin-bottom:6px}
.gexf-regime .rg-desc{font-size:13px;color:var(--muted);line-height:1.6;margin-bottom:14px}
.gexf-regime .rg-metrics{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}
.gexf-regime .rg-m{background:rgba(0,0,0,.2);border:1px solid var(--border);border-radius:9px;padding:8px 11px}
.gexf-regime .rg-m .l{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:3px}
.gexf-regime .rg-m .v{font-size:15px;font-weight:800}
.gexf-levels{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:18px}
.gexf-lvl{background:var(--panel);border:1px solid var(--border);border-radius:11px;padding:12px 14px;border-top:3px solid var(--border)}
.gexf-lvl .l{font-size:10px;color:var(--muted);letter-spacing:.5px;text-transform:uppercase;margin-bottom:5px}
.gexf-lvl .v{font-size:20px;font-weight:900}
.gexf-lvl .s{font-size:11px;color:var(--muted);margin-top:3px}
.gexf-ladder-box{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:16px;overflow:hidden}
.gexf-ladder-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.gexf-strikes{display:flex;align-items:center;gap:5px}
.gexf-str{background:var(--panel2);border:1px solid var(--border);color:var(--muted);border-radius:6px;padding:3px 10px;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit}
.gexf-str.active{background:rgba(139,92,246,.15);border-color:#8b5cf6;color:#a855f7}
.gexf-ladder-cols{display:flex;align-items:center;gap:8px;font-size:10px;color:var(--muted);letter-spacing:.5px;padding:0 4px 6px;border-bottom:1px solid var(--border)}
.gexf-ladder-cols span{width:62px;text-align:right}
.gexf-ladder-cols span:first-child{width:56px;text-align:left}
.gexf-lrow{display:flex;align-items:center;gap:8px;padding:5px 4px;font-size:12px;border-bottom:1px solid rgba(255,255,255,.03)}
.gexf-lrow.spot{background:rgba(139,92,246,.12);border-radius:6px}
.gexf-lrow .lr-strike{width:56px;font-weight:700;color:var(--txt)}
.gexf-lrow .lr-bar{flex:1;height:16px;position:relative;display:flex;align-items:center}
.gexf-lrow .lr-bar i{height:14px;border-radius:3px;display:block}
.gexf-lrow .lr-num{width:62px;text-align:right;font-variant-numeric:tabular-nums;color:var(--muted)}
.gexf-lrow .lr-gex{color:var(--txt);font-weight:700}
/* Hero + kontrol khas Arus Labs */
.rb-gex-hero{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:linear-gradient(120deg,rgba(139,92,246,.14),rgba(22,199,132,.06));border:1px solid rgba(139,92,246,.3);border-radius:16px;padding:16px 20px;margin-bottom:16px}
.rb-gex-brand{display:flex;align-items:center;gap:12px}
.rb-gex-logo{width:40px;height:40px;border-radius:11px;background:linear-gradient(135deg,#8b5cf6,#16c784);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:15px;letter-spacing:.5px;font-family:system-ui}
.rb-gex-ttl{font-size:18px;font-weight:900;font-family:system-ui}
.rb-gex-sub{font-size:12px;color:var(--muted);font-family:system-ui}
.gexf-exps{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:14px}
.gexf-exp{background:var(--panel);border:1px solid var(--border);color:var(--muted);border-radius:7px;padding:5px 11px;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit}
.gexf-exp.active{background:rgba(245,179,1,.14);border-color:var(--yellow);color:var(--yellow)}
.gexf-views{display:flex;gap:6px;margin-bottom:16px;border-bottom:1px solid var(--border)}
.gexf-view{background:none;border:none;border-bottom:2px solid transparent;color:var(--muted);font-size:14px;font-weight:800;padding:9px 16px;cursor:pointer;font-family:inherit;margin-bottom:-1px}
.gexf-view.active{color:#a855f7;border-bottom-color:#8b5cf6}
.gexf-vpanel[hidden]{display:none}
.gexf-chart-box{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:16px}
.gexf-chart-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:8px}
.gexf-ivs,.gexf-strikes{display:flex;align-items:center;gap:5px}
.gexf-iv{background:var(--panel2);border:1px solid var(--border);color:var(--muted);border-radius:6px;padding:3px 10px;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit}
.gexf-iv.active{background:rgba(139,92,246,.15);border-color:#8b5cf6;color:#a855f7}
.gexf-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;color:var(--muted);margin-bottom:10px}
.gexf-legend .lg,.flow-drift-lg .lg{display:inline-flex;align-items:center;gap:5px}
.gexf-legend .lg i,.flow-drift-lg .lg i{width:14px;height:3px;border-radius:2px;display:inline-block}
.flow-drift-lg{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;color:var(--muted);margin:2px 0 8px;font-variant-numeric:tabular-nums}
.flow-drift-wrap{position:relative;width:100%;height:260px}
.flow-drift-wrap canvas{width:100%;height:100%;display:block}
.gexf-canvas-wrap{position:relative;width:100%;height:420px}
#gexf-canvas{width:100%;height:100%;display:block;cursor:grab;touch-action:none}
#gexf-canvas:active{cursor:grabbing}
/* ===== GEX WORKSPACE (layout 2 kolom, dirombak) ===== */
#sec-gex{font-family:'Consolas','Menlo',monospace}
.gx2-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#0c1017;border:1px solid var(--border);border-radius:12px;padding:10px 14px;margin-bottom:12px}
.gx2-brand{display:flex;align-items:center;gap:8px;font-size:13px;letter-spacing:1px;color:var(--muted);font-family:system-ui}
.gx2-brand b{color:var(--txt)}
.gx2-logo{width:26px;height:26px;border-radius:8px;background:linear-gradient(135deg,#a855f7,#16c784);display:flex;align-items:center;justify-content:center;color:#fff;font-size:15px}
.gx2-syms{display:flex;gap:5px;flex-wrap:wrap}
.gx2-sym{background:#141a24;border:1px solid var(--border);color:var(--muted);border-radius:7px;padding:6px 13px;font-size:13px;font-weight:800;cursor:pointer;font-family:inherit;transition:all .15s}
.gx2-sym.active{background:#a855f7;border-color:#a855f7;color:#fff}
.gx2-rf{margin-left:auto;background:#141a24;border:1px solid var(--border);color:var(--txt);border-radius:7px;padding:6px 11px;font-size:15px;cursor:pointer;font-family:inherit;line-height:1;display:flex;align-items:center}
.gx2-rf:hover{border-color:#a855f7;color:#c084fc}
.gx2-rf span{display:inline-block}
.gx2-rf.spinning span{animation:gxspin .7s linear infinite}
@keyframes gxspin{to{transform:rotate(360deg)}}
.gx2-futs{background:#141a24;border:1px solid var(--border);color:var(--txt);border-radius:7px;padding:6px 13px;font-size:13px;font-weight:800;cursor:pointer;font-family:inherit}
.gx2-futs.on{background:rgba(245,179,1,.15);border-color:var(--yellow);color:var(--yellow)}
.gx2-cd{font-size:11.5px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums;background:#141a24;border:1px solid var(--border);border-radius:7px;padding:5px 9px;min-width:52px;text-align:center}
.gx2-status{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--green);font-weight:700}
.gex-retry{margin-top:10px;background:rgba(168,85,247,.15);border:1px solid #a855f7;color:#c084fc;border-radius:8px;padding:7px 16px;font-size:12px;font-weight:800;cursor:pointer;font-family:inherit}
.gex-retry:hover{background:rgba(168,85,247,.28)}
.gx2-exps{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:14px}
.gx2-exps .gexf-exp{background:#141a24;border:1px solid var(--border);color:var(--muted);border-radius:6px;padding:5px 10px;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:5px}
.gx2-exps .gexf-exp.active{background:rgba(245,179,1,.14);border-color:var(--yellow);color:var(--yellow)}
.exp-dte{font-size:9px;font-weight:800;padding:1px 5px;border-radius:4px;background:rgba(255,255,255,.06);color:var(--muted);letter-spacing:.3px}
.exp-dte.d0{background:rgba(234,57,67,.18);color:#ff6b74}
.exp-dte.d1{background:rgba(245,179,1,.16);color:var(--yellow)}
.gx2-exps .gexf-auto{border-color:#a855f7;color:#c084fc}
.gx2-exps .gexf-auto.active{background:rgba(168,85,247,.18);border-color:#a855f7;color:#c084fc}
.gx2-exps .gexf-exp.near{border-color:rgba(245,179,1,.5);color:var(--txt)}
.gx2-grid{display:grid;grid-template-columns:300px 1fr;gap:14px;align-items:start}
.gx2-side{display:flex;flex-direction:column;gap:12px}
.gx2-hero{background:linear-gradient(160deg,#12161f,#0c1017);border:1px solid var(--border);border-radius:14px;padding:16px}
.gx2-hero .h-sym{font-size:13px;color:var(--muted);letter-spacing:1px;font-weight:800}
.gx2-hero .h-spot{font-size:34px;font-weight:900;color:#fff;line-height:1.1;margin:2px 0 8px}
.gx2-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:800;padding:4px 11px;border-radius:999px}
.gx2-chip.pos{background:rgba(22,199,132,.14);color:#16c784;border:1px solid rgba(22,199,132,.35)}
.gx2-chip.neg{background:rgba(168,85,247,.16);color:#c084fc;border:1px solid rgba(168,85,247,.4)}
.gx2-rail{margin-top:14px;display:flex;flex-direction:column;gap:1px}
.gx2-rl{display:flex;align-items:center;justify-content:space-between;padding:7px 10px;border-radius:7px;font-size:12px;background:#0e131b}
.gx2-rl.spot{background:rgba(245,179,1,.1);outline:1px solid rgba(245,179,1,.3)}
.gx2-rl .rl-name{font-weight:700;display:flex;align-items:center;gap:7px}
.gx2-rl .rl-name i{width:8px;height:8px;border-radius:2px}
.gx2-rl .rl-price{font-weight:800;font-variant-numeric:tabular-nums}
.gx2-kpis{background:#0c1017;border:1px solid var(--border);border-radius:14px;padding:12px;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.gx2-kpi .k{font-size:9px;color:var(--muted);letter-spacing:.5px;text-transform:uppercase}
.gx2-kpi .v{font-size:15px;font-weight:800}
.gx2-main{background:#0c1017;border:1px solid var(--border);border-radius:14px;padding:14px;min-width:0}
.gx2-edu{margin-top:16px;background:linear-gradient(180deg,#0d1119,#0a0d14);border:1px solid var(--border);border-radius:16px;padding:18px}
.gx2-edu-head{display:flex;align-items:center;gap:10px;margin-bottom:6px;flex-wrap:wrap}
.gx2-edu-head strong{font-size:15px;color:var(--txt)}
.gx2-edu-badge{font-size:10px;font-weight:800;letter-spacing:.5px;color:#c084fc;background:rgba(168,85,247,.14);border:1px solid rgba(168,85,247,.35);padding:3px 9px;border-radius:6px}
.gx2-edu-intro{margin:0 0 14px;color:var(--muted);font-size:12.5px;line-height:1.55;max-width:760px}
.gx2-edu-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.gx2-edu-card{background:#0b0f16;border:1px solid var(--border);border-radius:12px;padding:14px}
.gx2-edu-t{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:800;color:var(--txt);margin-bottom:6px}
.gx2-edu-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.gx2-edu-dot.cw{background:#16c784}.gx2-edu-dot.pw{background:#ff6b74}.gx2-edu-dot.gf{background:#c084fc}.gx2-edu-dot.vt{background:#5aa2ff}.gx2-edu-dot.mp{background:#f5b301}
.gx2-edu-sub{font-size:10px;font-weight:600;color:var(--muted)}
.gx2-edu-card.wide{grid-column:1/-1}
.gx2-edu-d{font-size:12px;color:var(--muted);line-height:1.5;margin-bottom:9px}
.gx2-edu-list{margin:0;padding-left:16px;display:flex;flex-direction:column;gap:7px}
.gx2-edu-list li{font-size:12px;color:#c9d3e0;line-height:1.55}
.gx2-edu-list li b{color:var(--txt)}
.gx2-edu-list .pos{color:#16c784}.gx2-edu-list .neg{color:#ff6b74}
.gx2-edu-foot{margin-top:14px;font-size:11.5px;color:var(--muted);line-height:1.5;background:rgba(245,179,1,.06);border:1px solid rgba(245,179,1,.18);border-radius:9px;padding:10px 12px}
.gx2-glos{margin-top:14px;background:#0b0f16;border:1px solid var(--border);border-radius:12px;padding:14px 16px}
.gx2-glos-title{font-size:13px;font-weight:800;color:var(--txt);margin-bottom:10px}
.gx2-glos-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 18px}
.gx2-glos-item{font-size:12px;color:var(--muted);line-height:1.5}
.gx2-glos-item b{color:#c084fc;font-weight:800}
@media(max-width:640px){.gx2-glos-grid{grid-template-columns:1fr}}
@media(max-width:640px){.gx2-edu-grid{grid-template-columns:1fr}.gx2-edu{padding:14px}}
.gx2-vtabs{display:flex;gap:6px;margin-bottom:12px}
.gx2-vtab{background:#141a24;border:1px solid var(--border);color:var(--muted);border-radius:8px;padding:8px 16px;font-size:13px;font-weight:800;cursor:pointer;font-family:inherit}
.gx2-vtab.active{background:rgba(168,85,247,.15);border-color:#a855f7;color:#c084fc}
/* ---- STAT CARDS ---- */
.gx2-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}
/* Panel Market Regime (kondisi + prediksi + aksi) */
.gx2-regime{border:1px solid var(--border);border-radius:14px;padding:14px 16px;margin-bottom:14px}
.gx2-regime.pos{background:linear-gradient(180deg,rgba(22,199,132,.07),rgba(22,199,132,.02));border-color:rgba(22,199,132,.3)}
.gx2-regime.neg{background:linear-gradient(180deg,rgba(234,57,67,.07),rgba(234,57,67,.02));border-color:rgba(234,57,67,.3)}
.gx2-regime .rg-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.gx2-regime .rg-lbl{font-size:10px;font-weight:700;letter-spacing:1px;color:var(--muted)}
.gx2-regime .rg-name{font-size:17px;font-weight:900}
.gx2-regime.pos .rg-name{color:#16c784}.gx2-regime.neg .rg-name{color:#ff6b74}
.gx2-regime .rg-row{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;color:#c9d3e0;line-height:1.55;margin-top:7px}
.gx2-regime .rg-row b{color:var(--txt)}
.gx2-regime .rg-tag{flex-shrink:0;width:78px;font-size:9.5px;font-weight:800;letter-spacing:.4px;color:var(--muted);background:rgba(255,255,255,.05);border:1px solid var(--border);border-radius:5px;padding:3px 6px;text-align:center;margin-top:1px}
.gx2-regime .rg-row.act{margin-top:9px;padding-top:9px;border-top:1px solid rgba(255,255,255,.06)}
.gx2-regime.pos .rg-row.act .rg-tag{color:#16c784}.gx2-regime.neg .rg-row.act .rg-tag{color:#ff6b74}
@media(max-width:640px){.gx2-regime .rg-tag{width:62px;font-size:9px}}
.gx2-stat{background:#0c1017;border:1px solid var(--border);border-radius:12px;padding:12px 14px;min-width:0}
.gx2-stat .st-lbl{font-size:10px;font-weight:700;letter-spacing:.6px;color:var(--muted);margin-bottom:7px;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gx2-stat .st-v{font-size:17px;font-weight:800;color:var(--txt);font-variant-numeric:tabular-nums}
.gx2-stat .st-sub{font-size:11px;font-weight:700;margin-top:2px;font-variant-numeric:tabular-nums}
.gx2-stat .st-hp{font-size:22px;font-weight:900;line-height:1;margin-bottom:8px}
.gx2-stat .st-hp small{font-size:12px;color:var(--muted);font-weight:600}
.gx2-stat .st-gauge{height:5px;border-radius:3px;background:rgba(255,255,255,.08);overflow:hidden}
.gx2-stat .st-gauge span{display:block;height:100%;border-radius:3px;transition:width .4s}
@media(max-width:760px){.gx2-stats{grid-template-columns:repeat(2,1fr)}}
/* ---- FLOW ---- */
.flow-sent{background:#0b0f16;border:1px solid var(--border);border-radius:12px;padding:14px 16px;margin-bottom:14px}
.flow-sent-top{display:flex;justify-content:space-between;font-size:13px;font-weight:800;margin-bottom:8px}
.flow-sent-top .pos{color:#16c784}.flow-sent-top .neg{color:#ff6b74}
.flow-bar{display:flex;height:16px;border-radius:6px;overflow:hidden;background:#141a24}
.flow-bar .b-bull{background:linear-gradient(90deg,#0f9d63,#16c784)}
.flow-bar .b-bear{background:linear-gradient(90deg,#ff6b74,#c22e37)}
.flow-sent-sub{margin-top:9px;font-size:12px;color:var(--muted)}
.flow-sent-sub .pos{color:#16c784}.flow-sent-sub .neg{color:#ff6b74}
.flow-kpis{margin-bottom:6px}
.flow-sec{display:flex;justify-content:space-between;align-items:center;margin:18px 0 9px;font-size:13px;font-weight:800;color:var(--txt)}
.flow-sec em{color:var(--muted);font-weight:600;font-style:normal;font-size:11px}
.flow-rf{background:#141a24;border:1px solid var(--border);color:var(--muted);border-radius:7px;padding:4px 10px;font-size:13px;cursor:pointer;font-family:inherit}
.flow-rf:hover{border-color:#a855f7;color:#c084fc}
.tape-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:10px}
.tape-tbl{width:100%;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums}
.tape-tbl th{text-align:right;padding:8px 12px;color:var(--muted);font-weight:700;font-size:10.5px;letter-spacing:.4px;text-transform:uppercase;border-bottom:1px solid var(--border)}
.tape-tbl th:first-child,.tape-tbl td:first-child{text-align:left}
.tape-tbl td{text-align:right;padding:7px 12px;color:var(--txt);border-bottom:1px solid rgba(255,255,255,.04)}
.tape-tbl tr:last-child td{border-bottom:none}
.tape-tbl .side-buy{color:#16c784;font-weight:700;text-transform:uppercase;font-size:11px}
.tape-tbl .side-sell{color:#ff6b74;font-weight:700;text-transform:uppercase;font-size:11px}
.flow-strikes{display:flex;flex-direction:column;gap:3px}
.fst-row{display:flex;align-items:center;gap:9px;font-size:12px}
.fst-k{width:52px;text-align:right;font-weight:700;font-variant-numeric:tabular-nums;flex-shrink:0}
.fst-track{flex:1;height:12px;background:rgba(255,255,255,.03);border-radius:3px;min-width:0}
.fst-bar{display:block;height:100%;border-radius:3px;min-width:2px}
.fst-bar.up{background:#16c784}.fst-bar.dn{background:#ff6b74}
.fst-v{width:70px;text-align:right;font-variant-numeric:tabular-nums;flex-shrink:0}
.fst-v.pos{color:#16c784}.fst-v.neg{color:#ff6b74}
/* ---- CHAIN ---- */
.chn-bias{background:#0b0f16;border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin-bottom:12px}
.chn-bias-top{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px;font-size:12px;color:var(--muted);margin-bottom:8px}
.chn-bias-top b.pos{color:#16c784}.chn-bias-top b.neg{color:#ff6b74}
.chn-dag{font-variant-numeric:tabular-nums}
.chn-dag b.pos{color:#16c784}.chn-dag b.neg{color:#ff6b74}
.chn-q{background:linear-gradient(180deg,rgba(22,199,132,.05),#0b0f16)}
.chn-q-row{display:flex;align-items:center;gap:12px}
.chn-q-val{font-size:22px;font-weight:900;line-height:1;flex-shrink:0;min-width:78px;font-variant-numeric:tabular-nums}
.chn-q-val.pos{color:#16c784}.chn-q-val.neg{color:#ff6b74}
.chn-q-val small{font-size:11px;color:var(--muted);font-weight:600}
.chn-bias-bar{display:flex;height:14px;border-radius:6px;overflow:hidden;background:#141a24}
.chn-bias-bar .b-bull{background:linear-gradient(90deg,#0f9d63,#16c784)}
.chn-bias-bar .b-bear{background:linear-gradient(90deg,#c22e37,#ff6b74)}
.chn-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:10px}
.chn-tbl{border-collapse:collapse;font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap;min-width:100%}
.chn-tbl th{padding:6px 9px;color:var(--muted);font-weight:700;font-size:9.5px;letter-spacing:.3px;text-transform:uppercase;text-align:right;border-bottom:1px solid var(--border)}
.chn-tbl th.side-h{text-align:center;font-size:11px;padding:7px}
.chn-tbl th.side-h.call{color:#16c784}.chn-tbl th.side-h.put{color:#ff6b74}
.chn-tbl th.strike-h{color:#c084fc;text-align:center}
.chn-tbl td{padding:5px 9px;text-align:right;color:#c9d3e0;border-bottom:1px solid rgba(255,255,255,.03)}
.chn-tbl td.neg{color:#ff6b74}
.chn-tbl td.chn-k{text-align:center;font-weight:800;color:#c084fc;background:rgba(192,132,252,.06);position:sticky;left:0}
.chn-tbl tr.chn-spot{background:rgba(245,179,1,.07)}
.chn-tbl tr.chn-spot .chn-k{color:#f5b301;background:rgba(245,179,1,.12)}
.chn-tbl tbody tr:hover{background:rgba(255,255,255,.03)}
.gx2-lhead,.gx2-chead{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:10px;font-size:12px;color:var(--muted)}
.gx2-lhead .pos{color:#16c784;font-weight:700}.gx2-lhead .neg{color:#c084fc;font-weight:700}
.gx2-hint{font-size:11px;color:var(--muted)}
/* Ladder diverging */
.gx2-ladder{display:flex;flex-direction:column;gap:1px}
.gx2-lrow{position:relative;display:flex;align-items:center;gap:8px;padding:1px 2px;font-size:12px}
.gx2-lrow.spot{background:rgba(245,179,1,.08);border-radius:5px}
.gx2-lrow .lk{width:52px;text-align:right;font-weight:700;color:var(--txt);flex-shrink:0;font-variant-numeric:tabular-nums}
.gx2-lrow .ltrack{flex:1;display:flex;height:19px;min-width:0;background:rgba(255,255,255,.022);border-radius:4px}
.gx2-lrow .lhalf{width:50%;height:100%;display:flex;align-items:center}
.gx2-lrow .lhalf.left{justify-content:flex-end;border-right:2px solid rgba(255,255,255,.16)}
.gx2-lrow .lhalf.right{justify-content:flex-start}
.gx2-lrow .lbar{height:100%;border-radius:3px;min-width:2px}
.gx2-lrow .ltag{position:absolute;right:90px;top:50%;transform:translateY(-50%);font-size:9px;font-weight:800;padding:1px 6px;border-radius:4px;z-index:2;pointer-events:none;white-space:nowrap;background:#0a0e15;border:1px solid;box-shadow:0 0 0 2px #0a0e15}
.gx2-lrow .lval{position:relative;width:76px;display:flex;align-items:center;justify-content:flex-end;flex-shrink:0;overflow:hidden;border-radius:3px;height:19px}
.gx2-lrow .lvbar{position:absolute;right:0;top:3px;bottom:3px;opacity:.16;border-radius:3px}
.gx2-lrow .lvnum{position:relative;z-index:1;font-size:11px;font-weight:600;font-variant-numeric:tabular-nums;padding-right:3px}

/* ===========================
   EBOOK
   =========================== */
.ebook-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}
.ebook-card{
  background:var(--panel);border:1px solid var(--border);border-radius:16px;
  overflow:hidden;transition:border-color .2s;
}
.ebook-card:hover{border-color:rgba(22,199,132,.3)}
.ebook-cover{
  height:160px;
  background:linear-gradient(135deg,#0d1520 0%,#1a2a40 50%,#0d1520 100%);
  position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;
}
.ebook-cover-chart{opacity:.25;position:absolute;inset:0;
  background:repeating-linear-gradient(90deg,transparent,transparent 20px,rgba(22,199,132,.15) 20px,rgba(22,199,132,.15) 21px)}
.ebook-cover-label{font-size:32px;position:relative;z-index:1}
.ebook-cover-title{position:absolute;bottom:10px;left:12px;right:12px;font-size:12px;font-weight:700;color:rgba(255,255,255,.7);z-index:1}
.ebook-body{padding:18px}
.ebook-title{font-size:16px;font-weight:800;margin-bottom:6px}
.ebook-meta{display:flex;gap:16px;margin-bottom:16px}
.ebook-meta span{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:4px}
.ebook-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}
.ebook-tag{font-size:11px;padding:3px 8px;border-radius:5px;background:rgba(47,129,247,.1);color:var(--blue);font-weight:600}
.btn-read{
  display:flex;align-items:center;justify-content:center;gap:8px;
  width:100%;padding:12px;border:none;border-radius:10px;
  background:linear-gradient(135deg,var(--green),#0fa56e);color:#06210f;
  font-size:14px;font-weight:800;cursor:pointer;transition:opacity .2s;
  text-decoration:none;
}
.btn-read:hover{opacity:.9}
.btn-read-dis{
  display:flex;align-items:center;justify-content:center;gap:8px;
  width:100%;padding:12px;border:1px solid var(--border);border-radius:10px;
  background:none;color:var(--muted);font-size:14px;cursor:not-allowed;
}
.btn-download{
  display:flex;align-items:center;justify-content:center;gap:8px;
  width:100%;padding:11px;margin-top:10px;border:1px solid var(--blue);border-radius:10px;
  background:rgba(47,129,247,.1);color:var(--blue);font-size:13px;font-weight:700;
  cursor:pointer;text-decoration:none;transition:background .2s;
}
.btn-download:hover{background:rgba(47,129,247,.18)}
.dl-note{
  margin-top:8px;text-align:center;font-size:12px;color:var(--muted);
}
.dl-note strong{color:var(--yellow);letter-spacing:1px;font-family:monospace}

/* ===========================
   VIDEO GRID & MODAL
   =========================== */
.video-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px;
}
.video-card{
  background:var(--panel);border:1px solid var(--border);border-radius:14px;
  overflow:hidden;cursor:pointer;transition:transform .18s,box-shadow .18s;
}
.video-card:hover{transform:translateY(-3px);box-shadow:0 8px 30px rgba(0,0,0,.35)}
.vc-thumb{position:relative;aspect-ratio:16/9;background:var(--bg-2);overflow:hidden}
.vc-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.vc-thumb-placeholder{
  width:100%;height:100%;display:flex;align-items:center;justify-content:center;
  font-size:48px;
}
.vc-play-btn{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-size:36px;color:#fff;background:rgba(0,0,0,.35);
  opacity:0;transition:opacity .18s;
}
.video-card:hover .vc-play-btn{opacity:1}
.vc-info{padding:14px 16px 16px}
.vc-title{font-size:14px;font-weight:700;margin-bottom:5px;line-height:1.4}
.vc-desc{font-size:12px;color:var(--muted);margin-bottom:8px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.vc-meta{font-size:11px;color:var(--muted);opacity:.7}
/* Modal */
.vid-modal{
  display:none;position:fixed;inset:0;background:rgba(0,0,0,.85);z-index:2000;
  align-items:center;justify-content:center;padding:16px;
}
.vid-modal.open{display:flex}
.vid-modal-inner{
  background:var(--panel);border:1px solid var(--border);border-radius:16px;
  width:100%;max-width:860px;overflow:hidden;
}
.vid-modal-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:12px;
  padding:16px 20px 10px;
}
.vid-modal-title{font-size:16px;font-weight:800;line-height:1.4}
.vid-modal-close{
  background:rgba(255,255,255,.06);border:1px solid var(--border);border-radius:8px;
  color:var(--muted);padding:5px 12px;font-size:13px;cursor:pointer;white-space:nowrap;flex-shrink:0;
}
.vid-modal-close:hover{background:rgba(255,255,255,.12);color:var(--txt)}
.vid-modal-desc{font-size:13px;color:var(--muted);padding:0 20px 12px;line-height:1.6}
.vid-player-wrap{background:#000;width:100%}
.vid-player-wrap video{width:100%;display:block;max-height:70vh}

/* ===========================
   COMING SOON
   =========================== */
.coming-soon-wrap{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:60px 20px;text-align:center;
}
.cs-icon{font-size:64px;margin-bottom:20px;filter:grayscale(30%)}
.cs-title{font-size:24px;font-weight:800;margin-bottom:10px}
.cs-sub{color:var(--muted);font-size:15px;max-width:380px;line-height:1.7;margin-bottom:28px}
.cs-badge{
  display:inline-block;background:rgba(245,179,1,.12);color:var(--yellow);
  border:1px solid rgba(245,179,1,.3);padding:8px 20px;border-radius:999px;
  font-size:13px;font-weight:800;letter-spacing:.5px;
}
.feature-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;width:100%;max-width:600px;margin-top:28px}
.feature-item{
  background:var(--panel);border:1px solid var(--border);border-radius:10px;
  padding:14px;text-align:left;opacity:.6;
}
.feature-item .fi-icon{font-size:20px;margin-bottom:6px}
.feature-item .fi-label{font-size:13px;font-weight:600;color:var(--muted)}

/* ===========================
   BANTUAN
   =========================== */
.help-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;margin-bottom:28px}
.help-card{
  background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:24px;
  display:flex;flex-direction:column;gap:10px;
}
.help-card-icon{font-size:36px}
.help-card-title{font-size:16px;font-weight:800}
.help-card-desc{font-size:13px;color:var(--muted);line-height:1.65}
.btn-wa{
  display:inline-flex;align-items:center;gap:8px;padding:12px 20px;
  background:linear-gradient(135deg,#25d366,#128c7e);color:#fff;
  border:none;border-radius:10px;font-size:14px;font-weight:700;
  cursor:pointer;text-decoration:none;transition:opacity .2s;width:100%;justify-content:center;
}
.btn-wa:hover{opacity:.9}
.faq-list{display:flex;flex-direction:column;gap:10px}
.faq-item{
  background:var(--panel);border:1px solid var(--border);border-radius:12px;overflow:hidden;
}
.faq-q{
  padding:16px 18px;font-size:14px;font-weight:600;cursor:pointer;
  display:flex;align-items:center;justify-content:space-between;
  transition:background .15s;
}
.faq-q:hover{background:rgba(255,255,255,.04)}
.faq-q span.arr{transition:transform .2s;font-size:12px;color:var(--muted)}
.faq-a{
  display:none;padding:0 18px 16px;font-size:13px;color:var(--muted);line-height:1.7;
  border-top:1px solid var(--border);padding-top:12px;
}
.faq-item.open .faq-a{display:block}
.faq-item.open .arr{transform:rotate(180deg)}

/* ===========================
   PROFIL
   =========================== */
.profil-grid{display:grid;grid-template-columns:320px 1fr;gap:20px;align-items:start}
.profil-avatar-card{
  background:var(--panel);border:1px solid var(--border);border-radius:16px;
  padding:28px;text-align:center;
}
.profil-avatar{
  width:80px;height:80px;border-radius:50%;margin:0 auto 14px;
  background:linear-gradient(135deg,var(--blue),var(--green));
  display:flex;align-items:center;justify-content:center;
  font-weight:900;font-size:32px;color:#fff;
}
.profil-name{font-size:18px;font-weight:800;margin-bottom:4px}
.profil-email{font-size:13px;color:var(--muted)}
.profil-badge{
  margin-top:12px;display:inline-block;
  background:rgba(22,199,132,.1);color:var(--green);border:1px solid rgba(22,199,132,.25);
  font-size:12px;font-weight:700;padding:4px 14px;border-radius:999px;
}
.profil-info-card{
  background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:24px;
}
.info-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:12px 0;border-bottom:1px solid rgba(33,44,61,.6);gap:12px;
}
.info-row:last-child{border-bottom:none;padding-bottom:0}
.info-label{font-size:13px;color:var(--muted);flex-shrink:0}
.info-val{font-size:14px;font-weight:600;text-align:right;word-break:break-all}
.token-display{
  font-family:monospace;letter-spacing:3px;font-size:15px;color:var(--green);font-weight:800;
}
.btn-copy{
  background:none;border:1px solid var(--border);color:var(--muted);
  padding:4px 10px;border-radius:6px;cursor:pointer;font-size:12px;
  transition:all .15s;white-space:nowrap;
}
.btn-copy:hover{border-color:var(--green);color:var(--green)}

/* ===========================
   LOCKED STATE
   =========================== */
.sb-link.locked{opacity:.45;cursor:not-allowed}
.sb-link.locked:hover{background:none;color:var(--muted)}
.badge-lock{margin-left:auto;font-size:12px}
.hc-badge-lock{background:rgba(234,57,67,.12);color:var(--red)}
.home-card.locked{cursor:not-allowed;opacity:.55}
.home-card.locked:hover{transform:none;border-color:var(--border);box-shadow:none}
.locked-wall{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:60px 20px;text-align:center;
}
.lw-icon{font-size:64px;margin-bottom:16px;opacity:.5}
.lw-title{font-size:20px;font-weight:800;margin-bottom:8px;color:var(--red)}
.lw-desc{color:var(--muted);font-size:14px;max-width:340px;line-height:1.7;margin-bottom:24px}
.lw-badges{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-bottom:24px}
.lw-badge{
  font-size:12px;padding:5px 12px;border-radius:999px;font-weight:700;
  background:rgba(234,57,67,.1);color:var(--red);border:1px solid rgba(234,57,67,.25);
}

/* ===========================
   BOTTOM NAV (mobile)
   =========================== */
#bottom-nav{
  display:none;position:fixed;bottom:0;left:0;right:0;
  height:var(--bnh);background:var(--panel);border-top:1px solid var(--border);
  z-index:40;justify-content:space-around;align-items:stretch;
}
.bnav-item{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:3px;cursor:pointer;color:var(--muted);font-size:10px;font-weight:600;
  border:none;background:none;padding:4px 2px;transition:color .15s;
}
.bnav-item .bi-icon{font-size:20px}
.bnav-item.active{color:var(--green)}

/* ===========================
   RESPONSIVE
   =========================== */
@media(max-width:900px){
  .profil-grid{grid-template-columns:1fr}
}
@media(max-width:768px){
  #dashboard{display:block}
  #sidebar{display:none}
  #portal-main{margin-left:0;padding-bottom:calc(var(--bnh) + 8px);width:100%}
  .portal-topbar{display:flex}
  #bottom-nav{display:flex}
  .section-content{padding:16px}
  .welcome-banner{flex-direction:column;text-align:center;gap:14px}
  .home-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .home-card{padding:16px 12px}
  .hc-icon{font-size:26px}
  .ebook-grid{grid-template-columns:1fr}
  .help-grid{grid-template-columns:1fr}
  .sec-title{font-size:18px}
  .kursus-2col{grid-template-columns:1fr !important}
  .beranda-news-grid{grid-template-columns:1fr}
  .gx2-grid{grid-template-columns:1fr}
}
@media(max-width:360px){
  .home-grid{grid-template-columns:1fr 1fr}
  .login-card{padding:28px 20px}
}
/* Language switcher */
.lang-sw{display:flex;gap:4px;align-items:center}
.lang-btn{
  font-size:11px;font-weight:700;padding:3px 9px;border-radius:5px;
  text-decoration:none;border:1px solid var(--border);color:var(--muted);
  transition:all .15s;background:none;
}
.lang-btn.active,.lang-btn:hover{border-color:var(--green);color:var(--green);background:rgba(22,199,132,.08)}
.sb-lang{padding:10px 18px 6px;display:flex;align-items:center;gap:8px}
.sb-lang-label{font-size:10px;color:var(--muted);font-weight:700;letter-spacing:1px;text-transform:uppercase}
