/* Login del panel (Ronda 22 · B1). Hoja propia y no inline: la CSP del server sirve
   `script-src 'self'` sin 'unsafe-inline', y el login es la única página que ve alguien
   sin sesión — tiene que cargar sí o sí. */
:root{
  color-scheme:light;
  --bg:oklch(0.964 0.023 88); --surface:oklch(0.995 0.006 88);
  --border:oklch(0.88 0.018 82); --ink:oklch(0.31 0.072 264); --muted:oklch(0.44 0.058 264);
  --faint:oklch(0.51 0.042 264); --accent:oklch(0.36 0.10 264); --accent-ink:oklch(0.985 0.02 88);
  --danger:oklch(0.50 0.20 27); --danger-dim:oklch(0.52 0.20 27 / .12);
  --ok:oklch(0.48 0.14 150); --ok-dim:oklch(0.52 0.14 150 / .13);
  --gold:oklch(0.66 0.10 84); --gold-border:oklch(0.60 0.10 84 / .42);
  --font-sans:'Albert Sans',-apple-system,system-ui,"Segoe UI",Roboto,sans-serif;
  --font-serif:'Newsreader',Georgia,'Times New Roman',serif;
  --shadow-md:0 8px 24px oklch(0.31 0.07 264 / .12);
}
*{box-sizing:border-box}
body{margin:0;min-height:100dvh;display:grid;place-items:center;padding:24px;
     background:var(--bg);color:var(--ink);font:14px/1.5 var(--font-sans)}
.card{width:min(100%,380px);background:var(--surface);border:1px solid var(--border);
      border-radius:16px;padding:28px;box-shadow:var(--shadow-md)}
.brand{display:flex;align-items:center;gap:10px;margin-bottom:4px}
.glyph{width:34px;height:34px;border-radius:9px;background:var(--accent);color:var(--accent-ink);
       display:grid;place-items:center;font-weight:800;font-size:13px;letter-spacing:.04em}
h1{font:600 19px/1.2 var(--font-serif);margin:0}
.sub{color:var(--faint);font-size:11.5px;margin:2px 0 20px 44px}
label{display:block;font-size:12px;color:var(--muted);margin:0 0 12px;font-weight:600}
input,textarea{display:block;width:100%;margin-top:5px;padding:9px 10px;font:13.5px var(--font-sans);
       color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:9px}
input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
button{width:100%;padding:10px;font:600 13px var(--font-sans);border-radius:9px;cursor:pointer;
       background:var(--accent);color:var(--accent-ink);border:1px solid var(--accent)}
button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
button[disabled]{opacity:.55;cursor:progress}
.link{background:none;border:0;color:var(--accent);font-weight:600;font-size:12px;
      text-decoration:underline;padding:8px;margin-top:10px;width:auto;display:block;margin-inline:auto}
.msg{margin:0 0 14px;padding:9px 11px;border-radius:9px;font-size:12.5px;display:none}
.msg.err{display:block;background:var(--danger-dim);color:var(--danger)}
.msg.ok{display:block;background:var(--ok-dim);color:var(--ok)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.pie{margin-top:18px;padding-top:14px;border-top:1px solid var(--border);color:var(--faint);font-size:11px;text-align:center}
[hidden]{display:none !important}
