:root { --bg:#0f1115; --card:#181b21; --line:#2a2f38; --text:#e8eaed; --muted:#8e96a3;
        --accent:#25f4ee; --ok:#3ddc84; --warn:#ffb020; --danger:#fe2c55; }
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--text); font:15px/1.45 system-ui, -apple-system, Segoe UI, sans-serif; }
header { display:flex; align-items:center; justify-content:space-between; padding:14px 16px; border-bottom:1px solid var(--line); }
header h1 { margin:0; font-size:18px; }
main { max-width:900px; margin:0 auto; padding:16px; display:grid; gap:16px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:16px; }
.card h2 { margin:0 0 12px; font-size:13px; text-transform:uppercase; letter-spacing:1px; color:var(--muted); }
.estado { display:grid; grid-template-columns:repeat(auto-fit, minmax(160px, 1fr)); gap:12px; }
.dato span { display:block; font-size:12px; color:var(--muted); }
.dato b { font-size:17px; }
.ok { color:var(--ok); } .warn { color:var(--warn); } .mal { color:var(--danger); }
.botones { display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
button { padding:10px 14px; border-radius:8px; border:1px solid var(--line); background:#232833; color:var(--text); font:600 14px system-ui; cursor:pointer; }
button.primario { background:var(--accent); color:#000; border-color:var(--accent); }
button.peligro { color:var(--danger); }
button:disabled { opacity:.5; cursor:wait; }
input { width:100%; padding:12px; border-radius:8px; border:1px solid var(--line); background:#0b0d10; color:var(--text); font:14px ui-monospace, monospace; }
ol { margin:0 0 12px; padding-left:20px; color:var(--muted); font-size:14px; }
code { color:var(--text); }
#msg { min-height:20px; margin-top:10px; font-size:14px; }
pre { margin:0; max-height:420px; overflow:auto; background:#0b0d10; border-radius:8px; padding:12px;
      font:12px/1.5 ui-monospace, Consolas, monospace; white-space:pre-wrap; word-break:break-word; }
/* Acceso */
body.acceso { min-height:100vh; display:grid; place-items:center; padding:16px; }
.acceso form { width:100%; max-width:340px; background:var(--card); border:1px solid var(--line); border-radius:14px; padding:24px; }
.acceso h1 { margin:0 0 4px; font-size:22px; }
.acceso p { margin:0 0 20px; color:var(--muted); font-size:14px; }
.acceso input { font:16px system-ui; }
.acceso button { width:100%; margin-top:12px; padding:12px; background:var(--accent); color:#000; border:0; font-size:16px; }
#error { color:var(--danger); font-size:14px; min-height:20px; margin-top:10px; }
