h2{font-size:19px;margin:0 0 8px}
.card{margin:14px 0}
.pbadge{display:inline-block;font:800 13px var(--sans);color:#1a0f0a;background:var(--si);padding:6px 12px;border-radius:999px;margin:0 0 12px}
.cshare{display:grid;gap:8px;max-width:480px;margin:14px 0}
.status{margin:6px 0}
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:12px 0}
.kpi{background:rgba(255,248,232,.05);border:1px solid rgba(255,248,232,.1);border-radius:16px;padding:12px 14px}
.kpi b{display:block;font:900 22px var(--serif);color:var(--cream)}.kpi span{font-size:12px;color:var(--muted)}
.kpi.main{grid-column:span 2;border-color:rgba(245,197,66,.5)}.kpi.main b{font-size:30px;color:var(--gold)}
.up{color:var(--good)!important}.down{color:var(--bad)!important}
.ch{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.seg{display:inline-flex;border:1px solid rgba(245,197,66,.45);border-radius:999px;overflow:hidden}
.seg button{background:transparent;border:0;color:var(--cream2);font:700 12px var(--sans);padding:6px 11px;cursor:pointer}.seg button.on{background:var(--gold);color:#1a0f0a}
#chart{width:100%;display:block;margin-top:8px}
.legend{display:flex;gap:14px;font-size:12.5px;margin-top:6px}.lg::before{content:'';display:inline-block;width:14px;height:3px;border-radius:2px;margin-right:6px;vertical-align:middle}
.lg.si::before{background:var(--gold)}.lg.hold::before{background:var(--si)}
.tbl{width:100%;border-collapse:collapse;font-size:13px}
.tbl th{text-align:left;color:var(--muted);font-weight:700;font-size:11.5px;padding:6px 6px;border-bottom:1px solid rgba(255,255,255,.1)}
.tbl td{padding:8px 6px;border-bottom:1px solid rgba(255,255,255,.06);vertical-align:top}
.tbl td.n{font-family:var(--mono);font-size:12px;white-space:nowrap}
.tblw{overflow-x:auto;-webkit-overflow-scrolling:touch}
.log{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}
.log li{background:rgba(0,0,0,.22);border-radius:12px;padding:9px 12px;font-size:13px;line-height:1.5}
.log .lk{font-weight:800}.log .lk.enter{color:var(--good)}.log .lk.exit{color:var(--warn)}.log .lk.no_trade{color:var(--bad)}.log .lk.season_start{color:var(--si)}
.log .lh{font:11px var(--mono);color:var(--muted);word-break:break-all}
.log details{margin-top:4px}.log summary{cursor:pointer;color:var(--gold);font-size:12px}
.log .rj{font-size:12px;color:var(--cream2);margin:3px 0}
.vres{font-weight:800;margin:8px 0 0}.vres.ok{color:var(--good)}.vres.bad{color:var(--bad)}
.rules ul{margin:0;padding-left:18px;line-height:1.7;font-size:14px}.rules li{margin:4px 0}
.vsc{border-color:rgba(255,138,92,.45)}
select{background:rgba(0,0,0,.35);color:var(--cream);border:1px solid rgba(255,255,255,.2);border-radius:8px;padding:5px 8px;font:600 13px var(--sans)}

.chero .row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.board{display:grid;gap:8px;margin-top:8px}
.lrow{display:grid;grid-template-columns:1fr auto;gap:4px 10px;align-items:center;background:rgba(0,0,0,.22);border-radius:14px;padding:10px 12px;border-left:4px solid var(--c,#888)}
.lrow .nm{font-weight:800;color:var(--cream);font-size:14px;min-width:0;overflow-wrap:anywhere}.lrow .nm small{display:block;font-weight:600;color:var(--muted);font-size:11.5px}
.lrow .eqv{font:900 18px var(--serif);text-align:right;white-space:nowrap}
.lrow .st{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px;color:var(--cream2)}
.lrow .st b{color:var(--cream)}
.legend{flex-wrap:wrap;gap:6px 12px}.lg2::before{content:'';display:inline-block;width:14px;height:3px;border-radius:2px;margin-right:6px;vertical-align:middle;background:var(--c)}
.gate{display:grid;gap:8px;margin-top:8px}
.grow{background:rgba(0,0,0,.22);border-radius:14px;padding:10px 12px;font-size:12.5px}.grow b{display:block;margin-bottom:4px;color:var(--cream)}
.chk{display:flex;flex-wrap:wrap;gap:4px 10px}.chk span{white-space:nowrap}.chk .ok{color:var(--good)}.chk .no{color:var(--muted)}
.trow{background:rgba(0,0,0,.22);border-radius:12px;padding:9px 12px;margin:6px 0;font-size:13px;line-height:1.55;overflow-wrap:anywhere}
.trow .h{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-weight:800;color:var(--cream)}
.mono{font:11.5px var(--mono);color:var(--muted);word-break:break-all}
.vbtn{background:transparent;border:1px solid rgba(245,197,66,.5);color:var(--gold);border-radius:999px;font:700 12px var(--sans);padding:4px 10px;cursor:pointer;margin-top:4px}
.rbl{margin:6px 0;padding-left:18px;font-size:13.5px;line-height:1.6}.rbl li{margin:3px 0}
/* v3.1 first screen: "what SI holds now" swap-box card + family */
.chero-s .big{font-size:clamp(30px,8vw,44px);margin:4px 0 8px}.chero-s .lead{display:none}
.nowcard{border:1px solid rgba(94,224,255,.45);background:linear-gradient(180deg,rgba(94,224,255,.08),rgba(255,248,232,.03));border-radius:24px;padding:16px;box-shadow:0 10px 30px rgba(0,0,0,.35)}
.nowtop{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}.nowtop h2{margin:0}
.holds{display:grid;gap:10px;margin:12px 0}
.hold{border:1px solid rgba(255,248,232,.12);border-left:4px solid var(--c);border-radius:16px;padding:12px;background:rgba(0,0,0,.25);min-width:0}
.hold .hh{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.hold .who{font:800 15px var(--sans);color:var(--c);min-width:0;overflow-wrap:anywhere}.hold .who small{color:var(--muted);font-weight:600}
.hold .pp{font:900 24px var(--serif);white-space:nowrap}
.hold .tk{font:700 14.5px var(--sans);margin:4px 0;overflow-wrap:anywhere}.hold .wy{font-size:13.5px;color:var(--cream2);line-height:1.5;overflow-wrap:anywhere}
.hold .cm{margin-top:6px;font:12px var(--mono);overflow-wrap:anywhere}.hold .cm a{color:var(--si)}
.pnlh{font:700 12.5px var(--sans);color:var(--muted);margin:8px 0 6px}
.pnlg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.pc{background:rgba(255,248,232,.05);border:1px solid rgba(255,248,232,.1);border-radius:14px;padding:10px;min-width:0}
.pc span{display:block;font-size:11.5px;color:var(--muted)}.pc b{display:block;font:900 20px var(--serif);color:var(--cream);margin:2px 0}.pc small{display:block;font-size:11px;color:var(--muted);overflow-wrap:anywhere}
.nowbtns{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.nowbtns .btn.hot{flex:1 1 auto}
.fam{display:grid;gap:8px;margin-top:10px;position:relative;padding-left:16px}
.fam::before{content:'';position:absolute;left:5px;top:28px;bottom:14px;width:2px;background:rgba(94,224,255,.35)}
.froot{font:900 16px var(--sans);color:var(--si);margin-left:-16px}
.fkid{position:relative;border:1px solid rgba(255,248,232,.12);border-left:4px solid var(--c);border-radius:14px;padding:10px 12px;margin-left:calc((var(--g) - 1) * 16px);background:rgba(0,0,0,.2);min-width:0}
.fkid::before{content:'';position:absolute;left:-15px;top:18px;width:11px;height:2px;background:rgba(94,224,255,.35)}
.fkid.dead{opacity:.55;filter:grayscale(.7)}.fkid.ctrl{border-style:dashed}
.fkid .fh{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}.fkid .fh b{color:var(--c);font-size:15px}
.fkid .fs{display:flex;gap:12px;flex-wrap:wrap;font-size:12.5px;margin-top:4px}
.flash{outline:2px solid var(--si);outline-offset:3px;border-radius:10px}
.sharerow{margin:14px 0}
@media (max-width:380px){.pnlg{grid-template-columns:1fr 1fr}.hold .pp{font-size:21px}}
.holds .more>summary{cursor:pointer;font:700 13px var(--sans);color:var(--si);padding:6px 2px}.holds .more[open]{display:grid;gap:10px}
.nowcard .pnlh{margin-top:10px}
