:root{--bg:#07131f;--card:#0d1d2c;--line:#213a50;--fg:#e8f0f7;--muted:#9cb1c3;--acc:#13a39a;--err:#ff8e8e;--ok:#7de3a7;--warn:#ffd479}
*{box-sizing:border-box}
body{font-family:"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--fg);margin:0;min-height:100vh}
.wrap{max-width:520px;margin:0 auto;padding:48px 16px}
.brand{display:flex;gap:14px;align-items:center;margin-bottom:22px}
.logo{width:52px;height:52px;border-radius:12px;background:var(--acc);display:grid;place-items:center;font-weight:800;font-size:13px;letter-spacing:.5px}
h1{font-size:20px;margin:0}h2{font-size:17px;margin:0 0 14px}
.sub{margin:3px 0 0;color:var(--muted);font-size:13px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:22px;margin:14px 0}
label{display:block;font-size:13px;color:var(--muted);margin-bottom:4px}
input{width:100%;padding:10px 11px;margin-bottom:14px;border-radius:8px;border:1px solid #2b4a64;background:#081725;color:var(--fg);font-size:15px}
input:focus{outline:2px solid var(--acc);outline-offset:1px}
button{background:var(--acc);color:#fff;border:0;border-radius:8px;padding:10px 16px;font-weight:700;cursor:pointer;font-size:14px}
button.secondary{background:#27415a}button.danger{background:#a33a3a}
button:disabled{opacity:.6;cursor:default}
.err{color:var(--err);min-height:1.2em;margin:10px 0 0;font-size:14px}
.muted{color:var(--muted);font-size:13px}
.bar{height:8px;background:#081725;border-radius:6px;overflow:hidden;border:1px solid var(--line)}
#barFill{height:100%;width:0;background:var(--acc);transition:width .2s}
.log{background:#081725;border:1px solid var(--line);border-radius:7px;padding:8px;font-size:12px;max-height:180px;overflow:auto;white-space:pre-wrap;margin:12px 0 0}
.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.hidden{display:none}
.foot{text-align:center;margin-top:18px}
