/* Páginas propias del servidor (entrar, administración). Mismo verde oscuro que la app. */
:root{--bg:#13211d;--dot:#28403a;--card:#1b302a;--ink:#eaf5f0;--mute:#a8c6ba;--center:#2f7d63;--line:#4a6e62;--ok:#2e9e6b;--warn:#e0a100;--bad:#d64545;color-scheme:dark}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%}
body{background:var(--bg);background-image:radial-gradient(var(--dot) 1px,transparent 1px),radial-gradient(ellipse 75% 65% at 50% 45%,#2e705a40 0%,transparent 72%);background-size:26px 26px,100% 100%;
  color:var(--ink);font:15px/1.45 system-ui,-apple-system,"Segoe UI",sans-serif}
body.centro{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:16px}
.tarjeta{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:24px;width:100%;max-width:380px;box-shadow:0 10px 40px #0006;display:flex;flex-direction:column;gap:12px}
.logo{font-size:40px;text-align:center;filter:drop-shadow(0 0 10px #2fd47a66)}
h1{margin:0;text-align:center;font-size:24px;color:#effff6;text-shadow:0 0 12px #2fd47a88}
.sub{margin:-6px 0 6px;text-align:center;color:var(--mute)}
label{display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--mute)}
input,select,textarea{font:inherit;font-size:16px;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:11px 12px;width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid #62c99f;outline-offset:1px}
.clave{display:flex;gap:6px}.clave button{flex:none;width:46px;border:1px solid var(--line);background:var(--bg);border-radius:10px;cursor:pointer;font-size:18px}
button{font:inherit;cursor:pointer}
.pri{background:var(--ok);color:#fff;border:0;border-radius:10px;padding:13px;font-size:16px;font-weight:700}
.pri:disabled{opacity:.6}
.msj{color:#ff9a9a;min-height:1em;font-size:14px}
.nota{color:var(--mute);font-size:12px;text-align:center;margin:4px 0 0}
/* administración */
.cab{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:12px;padding:12px 16px;background:#1d3631;border-bottom:1px solid var(--line)}
.cab h1{font-size:18px;text-align:left;text-shadow:none;flex:1;margin:0}
.cab a,.btn{font:inherit;font-size:14px;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:7px 14px;text-decoration:none;white-space:nowrap}
.btn.ok{background:var(--ok);border-color:var(--ok);color:#fff}
.btn.chico{padding:4px 10px;font-size:13px}
.cuerpo{max-width:900px;margin:0 auto;padding:16px}
.tabs{display:flex;gap:8px;margin:0 0 14px;overflow-x:auto}
.tabs button{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;padding:8px 16px;white-space:nowrap}
.tabs button.on{background:var(--center);border-color:#6cc9a2;color:#fff}
.caja{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:10px}
.fila{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.fila .crece{flex:1;min-width:160px}
.chip{display:inline-block;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:700;background:#ffffff14;border:1px solid var(--line)}
.chip.ok{background:#2e9e6b33;color:#6ddba6;border-color:#2e9e6b}
.chip.warn{background:#e0a10026;color:#ffcf5c;border-color:#e0a100}
.chip.bad{background:#d6454526;color:#ff8a8a;border-color:#d64545}
.gris{color:var(--mute);font-size:13px}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
details summary{cursor:pointer;font-weight:700;padding:4px 0}
.vacio{border:1px dashed var(--line);border-radius:12px;padding:16px;color:var(--mute);text-align:center}
#toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);background:#0d1714;border:1px solid var(--line);padding:10px 16px;border-radius:10px;display:none;z-index:20;max-width:90vw}
#toast.on{display:block}
@media (max-width:600px){.grid{grid-template-columns:1fr}.cab{padding:10px 12px}}
[hidden]{display:none!important}
