/* Bitácora de Acetatores — estilos de la aplicación.
   Tokens y componentes tomados de frontend/pantallas.html (sistema de diseño Provisa Bitácoras). */
:root{
  --papel:#f1f2ef;--panel:#fff;--tinta:#14181b;--tinta2:#4a5257;--tinta3:#6b757c;--linea:#dcdfd9;--linea2:#e9ebe6;
  --acento:#1f5f5b;--acento-suave:#e3edeb;--sobre-acento:#fff;--marca:#e1232b;
  --critico:#9b2c2c;--critico-suave:#f6e5e4;--aviso:#8a5a10;--aviso-suave:#f7eedd;--bien:#2f6b3c;--bien-suave:#e4efe5;--neutro-suave:#eaece8;
  --s2:#b4732b;--s3:#4e5a8c;--s4:#5c7a3f;--s5:#7a6098;
  --pz-fondo:#121414;--pz-celda:#050606;--pz-marco:#9aa0a0;--pz-texto:#eceee9;--pz-tipo:#c9cdc6;--pz-carga:#f3d38a;--pz-pie:#9fe0d6;--pz-ahora:#1f5f5b;--pz-detenido:#8f2323;--pz-falla:#ff8a80;
  --f-display:Archivo,"IBM Plex Sans",sans-serif;--f-sans:"IBM Plex Sans",system-ui,sans-serif;--f-mono:"IBM Plex Mono",ui-monospace,monospace;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --papel:#101315;--panel:#171b1e;--tinta:#e8ebe7;--tinta2:#a9b2b5;--tinta3:#8a959a;--linea:#2a3034;--linea2:#21262a;
  --acento:#6fbdb4;--acento-suave:#1b2c2c;--sobre-acento:#0e1a19;--marca:#f0605f;
  --critico:#e8918c;--critico-suave:#2e1e1e;--aviso:#ddae60;--aviso-suave:#2c2418;--bien:#8dc79a;--bien-suave:#1b2a1e;--neutro-suave:#22272a;
  --s2:#d3a164;--s3:#93a0d8;--s4:#9bbe74;--s5:#b7a2d4;color-scheme:dark}}
:root[data-theme="dark"]{
  --papel:#101315;--panel:#171b1e;--tinta:#e8ebe7;--tinta2:#a9b2b5;--tinta3:#8a959a;--linea:#2a3034;--linea2:#21262a;
  --acento:#6fbdb4;--acento-suave:#1b2c2c;--sobre-acento:#0e1a19;--marca:#f0605f;
  --critico:#e8918c;--critico-suave:#2e1e1e;--aviso:#ddae60;--aviso-suave:#2c2418;--bien:#8dc79a;--bien-suave:#1b2a1e;--neutro-suave:#22272a;
  --s2:#d3a164;--s3:#93a0d8;--s4:#9bbe74;--s5:#b7a2d4;color-scheme:dark}
*{box-sizing:border-box}
html,body{margin:0;background:var(--papel);color:var(--tinta);font:14px/1.5 var(--f-sans);-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--f-display);margin:0}
.mono{font-family:var(--f-mono)}
a{color:var(--acento)}
button{font:inherit;cursor:pointer}
[hidden]{display:none!important}

/* ---------- cabecera y navegación ---------- */
.app-cab{background:var(--panel);border-bottom:1px solid var(--linea);position:sticky;top:0;z-index:20}
.app-cab .sup{display:flex;align-items:center;gap:14px;padding:10px 18px}
.logo{width:44px;height:44px;border-radius:8px;background:var(--marca);color:#fff;display:grid;place-items:center;font:700 13px var(--f-display);letter-spacing:.02em;flex:none}
.app-cab .tit{font:600 17px var(--f-display)}
.app-cab .sub{font-size:12px;color:var(--tinta3)}
.app-cab .usr{margin-left:auto;font-size:12.5px;color:var(--tinta2);text-align:right;display:flex;gap:12px;align-items:center}
nav.pest{display:flex;gap:2px;padding:0 12px;overflow-x:auto}
nav.pest a{padding:10px 11px;color:var(--tinta2);font-weight:500;font-size:13.5px;white-space:nowrap;border-bottom:2px solid transparent;text-decoration:none}
nav.pest a.act{color:var(--acento);border-bottom-color:var(--acento)}
nav.pest .exp{margin-left:auto;border:1px solid var(--linea);border-radius:6px;margin-block:5px;padding:5px 12px;color:var(--acento);font-weight:600;background:var(--panel)}
main.cuerpo{padding:16px 18px 40px;max-width:1500px;margin:0 auto}

/* ---------- bloques ---------- */
.panel{background:var(--panel);border:1px solid var(--linea);border-radius:6px}
.pad{padding:14px 16px}
.bloque-t{font:600 15px var(--f-display);margin:18px 0 8px}
.bloque-t small{font:400 12.5px var(--f-sans);color:var(--tinta3)}
.nota-app{font-size:12px;color:var(--tinta3);margin:8px 2px 0}
.cifras{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.cifra{background:var(--panel);border:1px solid var(--linea);border-radius:6px;padding:10px 12px}
.cifra .et{font-size:11.5px;color:var(--tinta2);text-transform:uppercase;letter-spacing:.04em;font-weight:600}
.cifra .v{font:600 22px var(--f-mono)}
.cifra .pie{font-size:11.5px;color:var(--tinta3)}
.cifra.crit{border-color:var(--critico);background:var(--critico-suave)}
.cifra.crit .v{color:var(--critico)}
.vacio{padding:28px;text-align:center;color:var(--tinta3)}
.cargando{padding:28px;text-align:center;color:var(--tinta3)}

/* ---------- tablas ---------- */
.tabla-env{overflow-x:auto}
table.t{width:100%;border-collapse:collapse;font-size:13px}
table.t th{text-align:left;font-weight:600;font-size:12px;color:var(--tinta2);padding:8px 10px;border-bottom:1px solid var(--linea);white-space:nowrap;background:var(--panel)}
table.t th small{display:block;font-weight:400;color:var(--tinta3)}
table.t th.ord{cursor:pointer;user-select:none}
table.t td{padding:7px 10px;border-bottom:1px solid var(--linea2);white-space:nowrap}
table.t td.n,table.t th.n{text-align:right;font-family:var(--f-mono)}
table.t td.c,table.t th.c{text-align:center}
table.t tfoot td{font-weight:600;border-top:1px solid var(--linea);border-bottom:0}
table.t tbody tr.clic{cursor:pointer}
table.t tbody tr.clic:hover td{background:var(--neutro-suave)}
.etq{display:inline-block;padding:1px 8px;border-radius:3px;font-size:12px;font-weight:600;background:var(--neutro-suave);color:var(--tinta2)}
.etq.bien{background:var(--bien-suave);color:var(--bien)}
.etq.alta{background:var(--critico-suave);color:var(--critico)}
.etq.extra{background:var(--aviso-suave);color:var(--aviso)}
.etq.info{background:var(--acento-suave);color:var(--acento)}
.numac{font:700 14px var(--f-mono)}
.numac.det{background:var(--critico);color:var(--panel);border-radius:4px;padding:1px 8px}
.txt-crit{color:var(--critico);font-weight:600}
.txt-avi{color:var(--aviso);font-weight:600}
.sub{color:var(--tinta3);font-size:12px}

/* ---------- controles ---------- */
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.chip{border:1px solid var(--linea);background:var(--panel);border-radius:6px;padding:4px 12px;text-align:center;min-width:64px;font-size:11px;color:var(--tinta3);line-height:1.3;text-decoration:none;display:block}
.chip b{display:block;font:700 16px var(--f-mono);color:var(--tinta)}
.chip.act{border-color:var(--acento);background:var(--acento-suave)}
.chip.act b{color:var(--acento)}
.chip.det{border-color:var(--critico)}
.chip.det b{color:var(--critico)}
.bt{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--acento);background:var(--acento);color:var(--sobre-acento);border-radius:6px;padding:7px 14px;font:600 13px var(--f-sans);min-height:36px;text-decoration:none}
.bt.sec{background:var(--panel);color:var(--acento);border-color:var(--linea)}
.bt.pel{background:var(--panel);color:var(--critico);border-color:var(--critico)}
.bt.pel.conf{background:var(--critico);color:var(--panel)}
.bt.mini{padding:3px 10px;min-height:30px;font-size:12.5px}
.bt:disabled{opacity:.5;cursor:default}
.ctrl{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px;font-size:13px}
.ctrl label{display:inline-flex;gap:6px;align-items:center;color:var(--tinta2)}
.inp{border:1px solid var(--linea);background:var(--panel);border-radius:5px;padding:5px 9px;font:14px var(--f-sans);color:var(--tinta);min-height:34px}
.inp:focus{outline:2px solid var(--acento);outline-offset:-1px;border-color:var(--acento)}
.inp.num{font-family:var(--f-mono);text-align:right}
.inp:disabled{opacity:.45}
select.inp{padding-right:6px}
textarea.inp{width:100%;min-height:52px;resize:vertical}
.caja{border-radius:6px;padding:9px 12px;font-size:13px;margin-bottom:10px}
.caja.crit{background:var(--critico-suave);color:var(--critico);border:1px solid var(--critico)}
.caja.avi{background:var(--aviso-suave);color:var(--aviso);border:1px solid var(--aviso)}
.caja.bien{background:var(--bien-suave);color:var(--bien);border:1px solid var(--bien)}
.caja ul{margin:4px 0 0;padding-left:18px}

/* ---------- hoja de registro ---------- */
.formato-cab{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--linea)}
.acno{border:2px solid var(--tinta);border-radius:6px;padding:4px 12px;text-align:center;font:700 26px var(--f-mono);min-width:76px}
.acno small{display:block;font:600 10px var(--f-sans);text-transform:uppercase;letter-spacing:.06em;color:var(--tinta3)}
.meta-f{display:grid;grid-template-columns:auto auto;gap:0 10px;font-size:12px;color:var(--tinta2)}
.meta-f b{font-family:var(--f-mono);font-weight:500}
.estado-ac{display:flex;gap:10px;align-items:center;padding:9px 16px;border-bottom:1px solid var(--linea);font-size:13px;color:var(--tinta2);flex-wrap:wrap}
.turnos{display:grid;grid-template-columns:3fr 1fr;gap:14px;padding:12px 16px;border-bottom:1px solid var(--linea)}
.turnos fieldset{border:0;margin:0;padding:0}
.turnos legend{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--tinta3);font-weight:600;padding:0;margin-bottom:4px}
.tres{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.tres label,.uno label{font-size:11.5px;color:var(--tinta2);display:grid;gap:2px}
table.hoja{border-collapse:collapse;font-size:12.5px;min-width:100%}
table.hoja th.et{text-align:left;font-weight:600;padding:4px 10px;border:1px solid var(--linea);background:var(--neutro-suave);white-space:nowrap;position:sticky;left:0;z-index:1}
table.hoja th.et small{font-weight:400;color:var(--tinta3)}
table.hoja td{border:1px solid var(--linea);padding:4px 8px;text-align:center;font-family:var(--f-mono);min-width:70px;background:var(--panel);white-space:nowrap}
table.hoja td.calc{color:var(--tinta2);background:var(--neutro-suave)}
table.hoja td.fuera{background:var(--aviso-suave);color:var(--aviso);font-weight:600}
table.hoja td.crit{background:var(--critico-suave);color:var(--critico);font-weight:600}
table.hoja td.nueva{background:var(--bien-suave);min-width:130px;padding:3px}
table.hoja td.nueva .inp{width:100%;min-height:30px;padding:2px 6px;font-size:13px}
table.hoja tr.sec td{background:var(--tinta);color:var(--papel);font:600 11px var(--f-sans);letter-spacing:.08em;text-align:left}
table.hoja th.nuevacab{background:var(--bien);color:#fff;font-size:12px;padding:4px 8px;border:1px solid var(--bien)}
table.hoja a.hr{font-weight:600}
.mov{display:inline-block;font-weight:700;padding:0 6px;border-radius:3px}
.mov.D{background:var(--critico-suave);color:var(--critico)}
.mov.C{background:var(--acento-suave);color:var(--acento)}
.barra-g{display:flex;gap:10px;align-items:center;padding:10px 16px;border-top:1px solid var(--linea);background:var(--panel);flex-wrap:wrap}
.barra-g .msj{flex:1 1 300px;font-size:13px;color:var(--tinta2)}
.barra-g .msj.avi{color:var(--aviso)}
.barra-g .msj.crit{color:var(--critico)}
.barra-g .msj.bien{color:var(--bien)}
.pie-h{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;padding:12px 16px;border-top:1px solid var(--linea)}
.pie-h label{font-size:12px;color:var(--tinta2);display:grid;gap:3px}
.pie-h .ancho{grid-column:1/-1}
.pcch{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;padding:10px 16px;border-top:1px solid var(--linea);font-size:12.5px;color:var(--tinta2)}
.pcch label{display:inline-flex;gap:6px;align-items:center;font-size:14px}
.pcch input{width:20px;height:20px}
.claves{padding:8px 16px;border-top:1px solid var(--linea);font-size:12px;color:var(--tinta3)}
.guardado{font-size:11.5px;color:var(--bien)}

/* ---------- pizarrón ---------- */
.pizarra-env{background:var(--pz-fondo);border-radius:8px;padding:14px;border:6px solid #3b3f40;overflow-x:auto}
table.pz{border-collapse:collapse;color:var(--pz-texto);font:600 17px var(--f-mono);min-width:100%}
table.pz th,table.pz td{border:1px solid var(--pz-marco);padding:5px 10px;text-align:center;background:var(--pz-celda)}
table.pz thead th{font-size:18px;color:#fff;background:#1b1e1f;cursor:pointer}
table.pz thead th.det{background:var(--pz-detenido)}
table.pz th.hr{color:var(--pz-tipo);font-size:14px;background:#1b1e1f;cursor:default}
table.pz tr.tipo td{font-size:11.5px;color:var(--pz-tipo);font-weight:500}
table.pz tr.ahora th.hr{background:var(--pz-ahora);color:#fff}
table.pz tr.ahora td{outline:1px solid var(--pz-ahora)}
table.pz td.carga{color:var(--pz-carga);font-size:13px}
table.pz td.falla{color:var(--pz-falla);font-size:13px}
table.pz tfoot td,table.pz tfoot th{color:var(--pz-pie);font-size:14px}
body.tv .app-cab{display:none}
body.tv main.cuerpo{max-width:none;padding:10px}
body.tv .pizarra-env{min-height:calc(100vh - 70px)}
body.tv table.pz{font-size:clamp(17px,2.2vw,34px)}
body.tv table.pz thead th{font-size:clamp(18px,2.4vw,38px)}
body.tv table.pz th.hr{font-size:clamp(14px,1.6vw,26px)}

/* ---------- gráficas ---------- */
.graf{background:var(--panel);border:1px solid var(--linea);border-radius:6px;padding:10px 12px}
.graf-t{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;font-weight:600;color:var(--tinta2);margin-bottom:4px}
.graf-t span{font-weight:400;color:var(--tinta3);font-family:var(--f-mono)}
.rej2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.rej3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
svg{display:block;width:100%;height:auto}
svg .barra{cursor:pointer}
svg .barra:hover{opacity:.75}

/* ---------- diálogos ---------- */
.telon{position:fixed;inset:0;background:rgba(10,14,16,.45);display:grid;place-items:center;padding:20px;z-index:50;overflow:auto}
.dlg{background:var(--panel);border-radius:10px;box-shadow:0 12px 40px rgba(0,0,0,.25);width:min(620px,100%);max-height:calc(100vh - 40px);display:flex;flex-direction:column}
.dlg.ancho{width:min(860px,100%)}
.dlg-cab{display:flex;justify-content:space-between;align-items:start;gap:12px;padding:14px 18px;border-bottom:1px solid var(--linea)}
.dlg-cab h3{font-size:17px}
.dlg-cuerpo{padding:14px 18px;overflow:auto}
.dlg-pie{display:flex;gap:8px;justify-content:flex-end;padding:12px 18px;border-top:1px solid var(--linea);flex-wrap:wrap}
.form-v{display:grid;grid-template-columns:minmax(160px,auto) 1fr;gap:6px 12px;align-items:center;font-size:13px}
.form-v label{color:var(--tinta2);font-size:12.5px}
.form-v .sep{grid-column:1/-1;font-size:11px;font-weight:600;letter-spacing:.1em;color:var(--tinta3);border-top:1px solid var(--linea);padding-top:8px;margin-top:4px}
.res{display:grid;grid-template-columns:auto auto;gap:4px 14px;margin-top:12px;justify-content:start}
.res b{font-family:var(--f-mono);text-align:right}
.pares{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;font-size:12px}
.pares div{background:var(--neutro-suave);border-radius:5px;padding:6px 8px}
.aviso-flot{position:fixed;right:16px;bottom:16px;z-index:60;display:grid;gap:8px;max-width:min(420px,calc(100vw - 32px))}
.aviso-flot .caja{box-shadow:0 6px 20px rgba(0,0,0,.18);margin:0}

/* ---------- inicio de sesión ---------- */
.login{display:grid;place-items:center;min-height:100vh;padding:20px}
.login .panel{width:min(380px,100%);padding:24px}
.login label{display:grid;gap:4px;font-size:12.5px;color:var(--tinta2);margin-top:12px}
.login .inp{width:100%}

@media (max-width:1100px){.cifras{grid-template-columns:repeat(2,1fr)}.rej3{grid-template-columns:1fr}.pares{grid-template-columns:repeat(2,1fr)}}
@media (max-width:760px){main.cuerpo{padding:12px 16px 40px}.rej2{grid-template-columns:1fr}.turnos{grid-template-columns:1fr}.tres{grid-template-columns:1fr}.pie-h{grid-template-columns:1fr}.formato-cab{grid-template-columns:auto 1fr}.formato-cab .meta-f{display:none}.form-v{grid-template-columns:1fr}.app-cab .tit{font-size:15px}}
