:root{--bg:#0e1623;--card:#142033;--muted:#8aa0bf;--txt:#eaf2ff;--dash:#2b3b55;--ok:#2f966e;--warn:#cfa24f}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--txt);font-family:Tahoma,Segoe UI,Arial}
.wrap{max-width:1050px;margin:20px auto;padding:0 14px}h1{font-size:22px;margin:8px 0 14px}
input,select,textarea,button{border-radius:10px;border:1px solid var(--dash);background:#0f1a2a;color:var(--txt);padding:10px 12px;font-size:14px}
button{background:#2c6fff;border:none;cursor:pointer}button.secondary{background:#213149}button.ok{background:#0b6c52}button.warn{background:#5d3d0e}
.card{background:var(--card);border:1px dashed var(--dash);border-radius:16px;padding:14px;margin:12px 0}
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.cell{background:#0f1b2d;border:1px dashed #31415f;border-radius:12px;padding:10px 12px;min-height:56px}
.cell .ttl{color:#8aa0bf;font-size:12px;margin-bottom:6px}
.badge{background:#2a364a;padding:6px 10px;border-radius:12px}
.num{direction:ltr;text-align:left;font-variant-numeric:tabular-nums;letter-spacing:.3px;background:#0c1524;border:1px solid #2a3a56;border-radius:8px;padding:8px 10px}
.toast{margin:10px 0;border-radius:10px;padding:10px 14px;display:none}.toast.show{display:block}.okmsg{background:#0f352b;color:#9fe9c9;border:1px solid #1d6b56}.errmsg{background:#3a1316;color:#ffb6c1;border:1px solid #6d2a32}
.thread{background:#0f1b2d;border:1px dashed #31415f;border-radius:12px;padding:10px 12px;margin-top:8px}
a.link{color:#8fb6ff}
@media(max-width:560px){.grid{grid-template-columns:1fr}}
