:root{--dark:#0B1F33;--blue:#005BAA;--green:#20A46B;--orange:#E08A00;--grey:#647386;--red:#E53935;--border:#CBD7E5;--tb:#EAF5FF;--tg:#EAF8F1;--to:#FFF4E0;--tgr:#F3F5F8;--tr:#FDECEA}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{background:#F3F5F8;color:var(--dark);font:15px/1.55 Tahoma,'Segoe UI',sans-serif;display:flex;flex-direction:column}
header{background:var(--dark);color:#fff;padding:10px 22px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
header .no{background:var(--green);border-radius:6px;padding:3px 10px;font-weight:700;font-size:13px;white-space:nowrap}
header h1{font-size:20px;margin:0;font-weight:700;flex:1;min-width:240px}
header a{color:#9FD9BD;text-decoration:none;font-size:13px;white-space:nowrap}
header a:hover{text-decoration:underline}
main{flex:1;display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:14px;padding:14px 18px;min-height:0}
.stage{background:#fff;border:1px solid var(--border);border-radius:10px;position:relative;min-height:420px;display:flex;flex-direction:column;overflow:hidden}
.stage canvas{flex:1;width:100%;height:100%;display:block}
.side{display:flex;flex-direction:column;gap:12px;min-width:0}
.card{background:#fff;border:1px solid var(--border);border-radius:10px;padding:12px 14px}
.card h3{margin:0 0 8px;font-size:14px;color:var(--blue)}
.eqbox{background:var(--dark);color:#fff;border-radius:10px;padding:12px 14px;text-align:center}
.eqbox math{font-size:1.3em}
.eqbox .v{font-size:12px;color:#A9BCCF;text-align:left;margin-top:8px;line-height:1.5}
.ctl{margin:8px 0}
.ctl label{display:flex;justify-content:space-between;font-size:13px;font-weight:600}
.ctl label b{color:var(--blue);font-weight:700}
.ctl input[type=range]{width:100%;accent-color:var(--green)}
.row{display:flex;gap:6px;flex-wrap:wrap}
button{font:inherit;font-size:13px;border:1px solid var(--border);background:#fff;border-radius:6px;padding:6px 10px;cursor:pointer;color:var(--dark)}
button:hover{border-color:var(--blue)}
button.on{background:var(--blue);border-color:var(--blue);color:#fff}
button.pri{background:var(--dark);color:#fff;border-color:var(--dark)}
.read{display:grid;grid-template-columns:1fr auto;gap:3px 10px;font-size:13.5px}
.read span:nth-child(even){font-weight:700;text-align:right;font-variant-numeric:tabular-nums}
.pts{margin:0;padding-left:18px;font-size:13.5px}
.pts li{margin:3px 0}
.tag{display:inline-block;border-radius:5px;padding:2px 8px;font-weight:700;font-size:12.5px}
.foot{font-size:11px;color:var(--grey);padding:0 18px 8px}
@media (max-width:900px){main{grid-template-columns:1fr}.stage{min-height:360px}}
