body.admin{background:var(--ink)}
.admin .stage{padding-block:40px 64px}
.adm-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:28px}
.adm-head h1{font-family:var(--font-display);font-style:italic;font-weight:600;font-size:clamp(40px,7vw,60px);color:var(--gold);margin:6px 0 0}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:10px}
.kpi{border:1px solid var(--line);padding:16px 18px;background:var(--ink-2);border-radius:14px}
.kpi b{display:block;font-family:var(--font-body);font-weight:500;font-size:36px;line-height:1;color:var(--gold-hi);font-variant-numeric:tabular-nums}
.kpi span{display:block;margin-top:6px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.kpis.small .kpi b{font-size:26px}
.kpis.small{margin-bottom:28px}
.tools{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-bottom:16px}
.tools input[type=search]{flex:1 1 260px;background:transparent;color:var(--champagne);border:1px solid var(--line-2);border-radius:10px;padding:12px 14px;font:inherit;font-size:15px}
.tools input[type=search]:focus{outline:0;border-color:var(--gold)}
.tools .opt span{min-height:40px;font-size:14px}
.tw{border-radius:14px;overflow:auto;max-height:65vh;border:1px solid var(--line)}
.admin table{border-collapse:collapse;width:100%;min-width:860px;font-size:14px}
.admin th{text-align:left;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:500;padding:10px 12px;
  border-bottom:1px solid var(--gold-dim);position:sticky;top:0;background:var(--ink-2)}
.admin td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top;font-weight:400}
.admin td small{display:block;color:var(--muted);font-size:12.5px}
.admin tr:hover td{background:rgba(210,173,99,.05)}
.pill{display:inline-block;padding:2px 10px;font-size:12px;font-weight:500;border:1px solid;border-radius:100px}
.pill.si{color:var(--ink);background:var(--gold);border-color:var(--gold)}
.pill.no{color:var(--muted);border-color:var(--gold-dim)}
.note{margin:14px 0 0;font-size:13px;color:var(--muted)}

/* ---------- cabecera, usuario y pestañas ---------- */
.who{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:14px;color:var(--muted)}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:24px;overflow-x:auto}
.tab{background:none;border:0;border-bottom:2px solid transparent;color:var(--muted);font:inherit;font-size:12px;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;padding:12px 16px;cursor:pointer;margin-bottom:-1px;white-space:nowrap}
.tab:hover{color:var(--champagne)}
.tab[aria-selected=true]{color:var(--gold-hi);border-bottom-color:var(--gold)}

/* ---------- botones chicos ---------- */
.btn.sm{min-height:38px;padding:0 16px;font-size:11px}
.btn.danger{background:transparent;border-color:rgba(240,165,165,.35);color:var(--error)}
.btn.danger:hover{border-color:var(--error)}
.acts-cell{white-space:nowrap;text-align:right}
.acts-cell .btn+.btn{margin-left:6px}
.row.end{justify-content:flex-end}
.row.nowrap{flex-wrap:nowrap;align-items:center}
.grow{flex:1 1 300px;margin:0}

/* ---------- estadísticas por empresa ---------- */
.emp{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:28px}
.emp-card{border:1px solid var(--line);border-radius:14px;padding:14px 18px;background:var(--ink-2)}
.emp-card p{margin:6px 0 0;color:var(--muted);font-size:14px}
.emp-card b{font-size:24px;font-weight:500;color:var(--gold-hi);font-variant-numeric:tabular-nums}

/* ---------- tablas ---------- */
.admin table.compact{min-width:640px}

/* ---------- formularios del panel ---------- */
input[type=password],input[type=search],select{width:100%;background:var(--ink);color:var(--champagne);border:1px solid var(--line-2);
  border-radius:10px;padding:12px 14px;font:inherit;font-size:16px}
select{appearance:auto}
input[type=password]:focus,select:focus{outline:0;border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}
input:disabled{opacity:.6}
fieldset:disabled{opacity:.45}
.check{display:flex;align-items:center;gap:10px;font-size:15px;cursor:pointer}
.check input{width:18px;height:18px;accent-color:var(--gold)}

/* ---------- diálogos ---------- */
dialog{width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:auto;padding:0;border:1px solid var(--line-2);
  border-radius:20px;background:var(--ink-2);color:var(--champagne)}
dialog::backdrop{background:rgba(5,6,6,.72);backdrop-filter:blur(2px)}
dialog form{display:grid;gap:16px;padding:clamp(20px,4vw,32px)}
dialog h2{font-size:clamp(28px,5vw,36px);margin:0}
dialog .msg{margin:0}

/* ---------- login ---------- */
.login-wrap{min-height:100vh;display:grid;place-content:center;gap:16px;padding:32px 0;width:min(420px,100%);margin:0 auto}
.login-card h1{font-family:var(--font-display);font-weight:400;font-size:clamp(40px,8vw,52px);margin:6px 0 20px;color:var(--champagne)}
.login-card form{display:grid;gap:18px}
.login-card .btn{width:100%}
.back{color:var(--muted);font-size:13px;text-decoration:none}
.back:hover{color:var(--gold-hi)}

@media (max-width:760px){
  .adm-head{align-items:flex-start}
  .tools .row{width:100%}
}

/* ---------- Compensaciones de la escala general (--zoom en styles.css) ----------
   Van acá porque este archivo se carga después y pisaría las de styles.css. */
.login-wrap{min-height:calc(100vh / var(--zoom))}
dialog{max-height:calc((100vh - 32px) / var(--zoom));width:min(560px,calc((100vw - 32px) / var(--zoom)))}
@media (max-width:760px){
  input[type=text],input[type=email],input[type=password],input[type=search],textarea,select{font-size:calc(16px / var(--zoom))}
}
