:root{--fondo:#f5f5f2;--tarjeta:#fff;--texto:#1d1d1b;--sutil:#6b6b66;--borde:#e2e2dc;--acento:#1f5fbf;--ok:#1d7a3e;--aviso:#a66300;--error:#b42318;--chip:#eef0f4}
@media (prefers-color-scheme:dark){:root{--fondo:#151514;--tarjeta:#1f1f1d;--texto:#ececea;--sutil:#a0a09a;--borde:#33332f;--acento:#6ea0ff;--ok:#5cc985;--aviso:#e5a542;--error:#ff7a6e;--chip:#2a2c31}}
*{box-sizing:border-box}
body{margin:0;background:var(--fondo);color:var(--texto);font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}
a{color:var(--acento)}
main{max-width:860px;margin:0 auto;padding:16px}
.barra{display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--tarjeta);border-bottom:1px solid var(--borde)}
.barra .logo{font-weight:700;text-decoration:none;color:var(--texto);margin-right:auto}
.marca-admin{font-size:12px;background:var(--chip);border-radius:6px;padding:1px 6px}
.tarjeta{background:var(--tarjeta);border:1px solid var(--borde);border-radius:12px;padding:16px;margin-bottom:16px}
h1,h2{margin:0 0 12px}h2{font-size:18px}
.sutil{color:var(--sutil);font-size:14px}
.error{color:var(--error)}
label{display:block;font-size:14px;color:var(--sutil);margin:8px 0}
input,select,textarea{width:100%;font:inherit;color:var(--texto);background:var(--fondo);border:1px solid var(--borde);border-radius:8px;padding:8px}
textarea{resize:vertical}
input[type=checkbox]{width:auto}
input[type=file]{padding:6px;background:transparent}
.fila{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
@media (max-width:600px){.fila{grid-template-columns:1fr}}
button{font:inherit;background:var(--acento);color:#fff;border:0;border-radius:8px;padding:8px 16px;cursor:pointer;margin-top:8px}
button.secundario{background:var(--chip);color:var(--texto)}
button.peligro{background:transparent;color:var(--error);border:1px solid var(--error)}
button.enlace{background:none;color:var(--acento);padding:0;margin:0}
button:disabled{opacity:.5}
.centro{display:flex;min-height:90vh;align-items:center;justify-content:center}
.login{width:100%;max-width:360px}
.titulo-seccion{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}
#admin{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.lista{list-style:none;margin:0;padding:0}
.lista li{border-top:1px solid var(--borde);padding:10px 0}
.lista li a{text-decoration:none;color:var(--texto);display:block}
.lista .t{font-weight:600;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.estado{display:inline-block;font-size:12px;border-radius:999px;padding:1px 8px;background:var(--chip);margin-right:6px}
.estado.terminado{color:var(--ok)}.estado.error,.estado.cancelado{color:var(--error)}.estado.pregunta,.estado.en-espera{color:var(--aviso)}.estado.en-curso{color:var(--acento)}
.eventos{list-style:none;margin:0;padding:0}
.eventos li{display:grid;grid-template-columns:72px 1fr;gap:8px;padding:6px 0;border-top:1px solid var(--borde)}
.eventos .h{font-variant-numeric:tabular-nums;color:var(--sutil);font-size:14px}
.eventos .pregunta,.eventos .aviso{color:var(--aviso)}.eventos .error{color:var(--error)}.eventos .fin{color:var(--ok);font-weight:600}
.eventos .respuesta,.eventos .seguimiento{font-style:italic}
.peticion{white-space:pre-wrap;background:var(--fondo);border-radius:8px;padding:10px}
.archivos a{display:inline-block;margin:4px 8px 4px 0}
.archivos img{max-width:100%;border-radius:8px;border:1px solid var(--borde);margin-top:8px}

.respuesta{background:var(--fondo);border-radius:8px;padding:10px 14px;overflow-x:auto}
.respuesta table{border-collapse:collapse;margin:8px 0;font-size:.95em}
.respuesta th,.respuesta td{border:1px solid rgba(128,128,128,.35);padding:4px 8px;text-align:left;vertical-align:top}
.respuesta h3{margin:14px 0 6px}
.respuesta code{font-size:.9em}

.semaforo{display:flex;flex-wrap:wrap;gap:6px 14px;padding:6px 16px;background:var(--tarjeta);border-bottom:1px solid var(--borde);font-size:13px;color:var(--sutil);position:relative}
.semaforo .pieza{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.semaforo .pieza i{width:9px;height:9px;border-radius:50%;background:var(--sutil);display:inline-block}
.semaforo .pieza.ok i{background:var(--ok)}
.semaforo .pieza.aviso i{background:var(--aviso)}
.semaforo .pieza.error i{background:var(--error)}
.semaforo .pieza.error{color:var(--error)}
.semaforo.admin{cursor:pointer}
.semaforo .detalle-tecnico{display:none;flex-basis:100%;font-size:12px;line-height:1.5;padding-top:4px}
.semaforo.abierto .detalle-tecnico{display:block}
.permiso-avisos{padding:8px 16px;font-size:14px;background:var(--chip);color:var(--texto)}
.permiso-avisos button{width:auto;padding:4px 10px;margin:0 0 0 4px}
.permiso-avisos button.enlace{padding:0}
.eventos .incidencia{color:var(--aviso)}

.candidatas{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.candidata{border:1px solid rgba(128,128,128,.3);border-radius:10px;padding:10px 12px}
.candidata.recomendada{border-color:var(--acento,#1f5fbf)}
.candidata.encargada,.candidata.descartada{opacity:.7}
.cand-cabeza{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.cand-cabeza .marca{font-size:.8em;padding:1px 6px;border-radius:6px;background:rgba(31,95,191,.12)}
.candidata p{margin:6px 0}
.candidata .avisos{margin:6px 0;padding-left:18px;color:#a35a00}
.cand-acciones{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:8px}
.cand-acciones input.cand-notas{flex:1;min-width:140px}
.cand-estado{font-weight:600}
.lote{margin-top:12px}
.aviso-breve{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);background:#222;color:#fff;padding:10px 16px;border-radius:8px;z-index:20}
details summary{cursor:pointer;margin:8px 0}
