:root{--r:#e5484d;--g:#30a46c;--y:#f5a524;--bg:#111113;--fg:#eceeed;--mut:#a7a9a9;--acc:#3e63dd}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font:14px/1.5 system-ui,sans-serif;padding:12px;max-width:720px;margin-inline:auto}
nav{display:flex;gap:12px;margin-bottom:12px}nav a{color:var(--fg);text-decoration:none;padding:6px 10px;border:1px solid #333;border-radius:8px}nav a.on{background:#222}
.card{border:1px solid #333;border-radius:12px;padding:12px;margin-bottom:12px}
.badge{display:inline-block;min-width:2.2em;text-align:center;border-radius:6px;padding:2px 8px;font-weight:700}
.R{background:var(--r);color:#fff}.G{background:var(--g);color:#fff}.Y{background:var(--y);color:#111}
table{width:100%;border-collapse:collapse}td,th{padding:6px 4px;border-bottom:1px solid #222;text-align:left;font-variant-numeric:tabular-nums}
.mut{color:var(--mut)}.big{font-size:1.6em;font-weight:800}
.bar{height:8px;background:#222;border-radius:4px;overflow:hidden;margin-top:4px}.bar>i{display:block;height:100%;background:var(--acc)}
.ok{color:var(--g);font-weight:700}.bad{color:var(--r);font-weight:700}
button{padding:8px 16px;background:#222;color:var(--fg);border:1px solid #333;border-radius:8px}
button:disabled{opacity:.5}
select,input[type=date]{background:#222;color:var(--fg);border:1px solid #333;border-radius:8px;padding:6px}
.dot{display:inline-block;width:.9em;height:.9em;border-radius:50%;margin-right:2px}
.pill{display:inline-block;border-radius:6px;padding:2px 8px;font-size:.8em;font-weight:700}
.wait{background:#3a3a3a}.done{background:var(--g);color:#fff}
details{border:1px solid #333;border-radius:8px;padding:8px;margin-top:8px}
summary{cursor:pointer;font-weight:700}
/* Terminal-trading identity: hero prediksi, grid stat, komposisi, skeleton */
.hero{border-left:4px solid var(--acc);background:linear-gradient(180deg,#17171a,#111113)}
.hero-r{border-left-color:var(--r)}.hero-g{border-left-color:var(--g)}
.hero-side{font-size:2.2em;font-weight:800;letter-spacing:.02em}
.hero-rec{margin-top:4px;font-weight:700}
.small{font-size:.85em}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.grid2 .card{margin-bottom:0}
.stat-label{color:var(--mut)}.stat-val{font-size:1.5em;font-weight:800;font-variant-numeric:tabular-nums}
.num{font-variant-numeric:tabular-nums}
.mixbar{display:flex;height:10px;border-radius:5px;overflow:hidden;background:#222;margin:6px 0 10px}
.mixbar i{display:block;height:100%}
.seg-r{background:var(--r)}.seg-g{background:var(--g)}.seg-y{background:var(--y)}
.dots{margin-bottom:10px;line-height:1.9}
.warn{border-color:var(--y);color:var(--y)}
.skel{position:relative;overflow:hidden;background:#1a1a1d}
.skel::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.06),transparent);animation:sh 1.4s infinite}
@keyframes sh{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
@media (prefers-reduced-motion:reduce){.skel::after{animation:none}}
tbody tr:first-child td{border-top:1px solid #333}
tbody tr:first-child{font-weight:700}
