:root{--bg:#0f1318;--card:#171d24;--line:#26303b;--fg:#e6edf3;--mu:#8b98a5;--up:#1fbf75;--dn:#f0475b;--pri:#f0b90b;--warn:#ff9f1a}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--fg);font:14px/1.45 -apple-system,"PingFang SC","Microsoft YaHei",sans-serif}
.hidden{display:none!important}.muted{color:var(--mu)}.up{color:var(--up)}.dn{color:var(--dn)}.err{color:var(--dn);margin-top:6px;min-height:1em}
header{position:sticky;top:0;z-index:5;display:flex;gap:8px;align-items:center;padding:10px 12px;background:#0b0f13;border-bottom:1px solid var(--line)}
.sp{flex:1}.tag{font-size:12px;padding:1px 6px;border-radius:4px}.tag.paper{background:#2b3a1f;color:#a6e36a}.tag.live{background:#5a1f1f;color:#ffb3b3}
.tag.auto{background:#1f3550;color:#8cc4ff}.tag.man{background:#333;color:#ccc}
main{padding:10px 10px 80px}
nav{position:fixed;bottom:0;left:0;right:0;display:flex;background:#0b0f13;border-top:1px solid var(--line);z-index:6;padding-bottom:env(safe-area-inset-bottom)}
nav a{flex:1;text-align:center;padding:7px 0;color:var(--mu);cursor:pointer;font-size:18px}nav a span{display:block;font-size:11px}nav a.on{color:var(--pri)}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px;margin-bottom:10px}
.card h3{margin:0 0 8px;font-size:15px}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.row>*{flex:1}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.grid div{background:#11161c;border-radius:6px;padding:6px}.grid b{display:block;font-size:13px}.grid small{color:var(--mu);font-size:11px}
input,select,textarea{width:100%;background:#0d1116;color:var(--fg);border:1px solid var(--line);border-radius:6px;padding:8px;font-size:14px}
label{font-size:12px;color:var(--mu)}
.btn{border:0;border-radius:6px;padding:9px 12px;font-size:14px;cursor:pointer;background:#2a333d;color:var(--fg)}
.btn.pri{background:var(--pri);color:#111;font-weight:600}.btn.long{background:var(--up);color:#fff;font-weight:600}.btn.short{background:var(--dn);color:#fff;font-weight:600}
.btn.sm{padding:5px 8px;font-size:12px}.btn.warn{background:var(--warn);color:#111}
.seg{display:flex;border:1px solid var(--line);border-radius:6px;overflow:hidden}.seg button{flex:1;background:transparent;border:0;color:var(--mu);padding:8px;cursor:pointer}
.seg button.on{background:#2a333d;color:var(--fg)}.seg.side button.on.l{background:var(--up);color:#fff}.seg.side button.on.s{background:var(--dn);color:#fff}
.symbar{display:flex;gap:6px;overflow-x:auto;padding-bottom:6px}.symbar button{flex:0 0 auto;background:#1b222a;border:1px solid var(--line);color:var(--fg);border-radius:14px;padding:4px 10px;cursor:pointer;font-size:12px}
.symbar button.on{border-color:var(--pri);color:var(--pri)}
.price{font-size:26px;font-weight:700}canvas{width:100%;height:110px;display:block}
table{width:100%;border-collapse:collapse;font-size:12px}td,th{padding:5px 4px;border-bottom:1px solid var(--line);text-align:left}th{color:var(--mu);font-weight:400}
.login{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:16px}.lg{width:100%;max-width:360px}.lg input{margin:6px 0}.lg .btn{width:100%;margin-top:6px}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:flex-end;justify-content:center;z-index:20}
.mbox{width:100%;max-width:520px;max-height:90vh;overflow:auto;border-radius:12px 12px 0 0;margin:0}
.toast{position:fixed;left:50%;bottom:80px;transform:translateX(-50%);background:#333;padding:8px 14px;border-radius:6px;z-index:30;max-width:90%}
.banner{background:#4a3500;color:#ffd666;padding:8px 12px;font-size:13px}.banner.red{background:#4d1418;color:#ffb3b3}
.kv{display:flex;justify-content:space-between;padding:3px 0;border-bottom:1px dashed var(--line)}.kv span:first-child{color:var(--mu)}
.chip{display:inline-block;border:1px solid var(--line);border-radius:12px;padding:2px 8px;margin:2px;font-size:12px;cursor:pointer}.chip.on{border-color:var(--pri);color:var(--pri)}
.warnbox{background:#3d2a00;border:1px solid var(--warn);color:#ffd28a;border-radius:6px;padding:8px;margin:6px 0}
.bar{height:6px;background:#26303b;border-radius:3px;overflow:hidden}.bar i{display:block;height:100%;background:var(--pri)}
@media(min-width:900px){
 nav{top:49px;bottom:0;right:auto;width:84px;flex-direction:column;border-top:0;border-right:1px solid var(--line);justify-content:flex-start}
 nav a{flex:0;padding:14px 0}main{margin-left:84px;padding:14px 18px 20px;max-width:1300px}
 #banner{margin-left:84px}
 .cols{display:grid;grid-template-columns:1.2fr 1fr;gap:12px;align-items:start}
 .modal{align-items:center}.mbox{border-radius:12px}
}
header b{white-space:nowrap}@media(max-width:600px){#hdrUser{display:none}#hdrEq{font-size:12px}}
.lat{font-size:11px;white-space:nowrap}.warn{color:var(--warn)}
@media(max-width:600px){header{flex-wrap:wrap}.lat{order:9;width:100%;font-size:10.5px}}
