:root{--tinta:#1E2A32;--marca:#2F7DE1;--marca-osc:#1F62BA;--marca-clara:#EAF2FD;--gris:#5D7487;--borde:#D5DEE6;
--fondo:#F5F7F9;--blanco:#fff;--ok:#1F7A50;--ok-f:#E6F4EC;--aviso:#9A6200;--aviso-f:#FFF4DC;--error:#B3261E;--error-f:#FCE9E7;
--radio:10px;--sombra:0 1px 2px rgba(30,42,50,.06),0 4px 14px rgba(30,42,50,.05)}
*{box-sizing:border-box}
html{font-size:16px}
body{margin:0;font-family:"Space Grotesk",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--tinta);background:var(--fondo);line-height:1.55}
a{color:var(--marca-osc);text-decoration:none}a:hover{text-decoration:underline}
h1{font-size:1.55rem;margin:0 0 .25rem;letter-spacing:-.01em}h2{font-size:1.12rem;margin:0 0 .75rem}h3{font-size:1rem;margin:0 0 .5rem}
p{margin:.4rem 0}.suave{color:var(--gris)}.peq{font-size:.875rem}.mono{font-family:"JetBrains Mono",ui-monospace,Menlo,monospace;font-size:.85rem}
.oculto{display:none!important}

/* estructura */
.app{display:grid;grid-template-columns:248px 1fr;min-height:100vh}
.lateral{background:var(--tinta);color:#C0CDD6;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}
.marca{display:flex;align-items:center;gap:.6rem;padding:1.1rem 1.2rem;color:#fff;font-weight:700;font-size:1.15rem;letter-spacing:.04em}
.marca small{display:block;font-weight:400;font-size:.72rem;letter-spacing:.02em;color:#9DB4C8}
.nav{padding:.4rem .6rem;display:flex;flex-direction:column;gap:2px}
.nav a{color:#C0CDD6;padding:.55rem .75rem;border-radius:8px;display:block}
.nav a:hover{background:rgba(255,255,255,.07);text-decoration:none;color:#fff}
.nav a.activo{background:var(--marca);color:#fff}
.nav .titulo{font-size:.7rem;text-transform:uppercase;letter-spacing:.09em;color:#7f97aa;padding:1rem .75rem .3rem}
.pie-lateral{margin-top:auto;padding:1rem 1.2rem;font-size:.82rem;border-top:1px solid rgba(255,255,255,.09)}
.pie-lateral .version{color:#7f97aa;font-size:.75rem;margin-top:.5rem}
.pie-lateral button{background:none;border:0;color:#9DB4C8;padding:0;cursor:pointer;font:inherit}
.pie-lateral button:hover{color:#fff}
.principal{min-width:0;padding:1.4rem 2rem 3rem}
.cabecera{display:flex;gap:1rem;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;margin-bottom:1.2rem}
.buscador{display:flex;gap:.5rem;margin-bottom:1.4rem}
.buscador input{flex:1;font-size:1.02rem;padding:.75rem 1rem}
.movil-barra,.menu-check,.velo{display:none}

/* piezas */
.tarjeta{background:var(--blanco);border:1px solid var(--borde);border-radius:var(--radio);padding:1.1rem 1.25rem;box-shadow:var(--sombra);margin-bottom:1.1rem}
.rejilla{display:grid;gap:1.1rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.dos{display:grid;gap:1.1rem;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr)}
.cifra{font-size:1.9rem;font-weight:700;line-height:1.1}
.fila{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}
.entre{justify-content:space-between}
.boton,button.boton{display:inline-flex;align-items:center;gap:.4rem;background:var(--marca);color:#fff;border:1px solid var(--marca);border-radius:8px;padding:.55rem .95rem;font:inherit;font-weight:600;cursor:pointer;text-decoration:none}
.boton:hover{background:var(--marca-osc);border-color:var(--marca-osc);text-decoration:none}
.boton.sec{background:#fff;color:var(--tinta);border-color:var(--borde)}.boton.sec:hover{background:var(--fondo)}
.boton.peligro{background:#fff;color:var(--error);border-color:#e6b8b4}.boton.peligro:hover{background:var(--error-f)}
.boton.mini{padding:.3rem .6rem;font-size:.85rem;font-weight:500}
.boton:disabled{opacity:.5;cursor:not-allowed}
input,select,textarea{font:inherit;color:inherit;border:1px solid var(--borde);border-radius:8px;padding:.5rem .7rem;background:#fff;max-width:100%}
input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:3px solid rgba(47,125,225,.35);outline-offset:1px;border-color:var(--marca)}
textarea{width:100%;min-height:5rem;resize:vertical}
label{display:block;font-size:.875rem;font-weight:600;margin-bottom:.25rem}
.campo{margin-bottom:.85rem}.campo input:not([type=checkbox]):not([type=radio]),.campo select{width:100%}
.campos{display:grid;gap:.85rem;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));align-items:end}
.ayuda{font-size:.82rem;color:var(--gris);margin-top:.2rem;font-weight:400}
.filtros{display:flex;gap:.5rem;flex-wrap:wrap;align-items:end;margin-bottom:1rem}
.filtros>div{min-width:130px}.filtros label{font-size:.75rem;color:var(--gris)}
.tabla-caja{overflow-x:auto;border:1px solid var(--borde);border-radius:var(--radio);background:#fff}
table{border-collapse:collapse;width:100%;font-size:.93rem}
th{text-align:left;background:#EEF2F5;font-size:.76rem;text-transform:uppercase;letter-spacing:.05em;color:var(--gris);padding:.6rem .8rem;white-space:nowrap}
td{padding:.65rem .8rem;border-top:1px solid #E7ECF0;vertical-align:top}
tbody tr:nth-child(even) td{background:#FAFBFC}
.etq{display:inline-block;font-size:.76rem;font-weight:600;padding:.12rem .55rem;border-radius:999px;background:#EEF2F5;color:var(--gris);white-space:nowrap}
.etq.internal{background:#E8EEF3;color:#3d5265}.etq.confidential{background:var(--aviso-f);color:var(--aviso)}.etq.restricted{background:var(--error-f);color:var(--error)}
.etq.INDEXED,.etq.ok,.etq.DONE{background:var(--ok-f);color:var(--ok)}
.etq.PENDING,.etq.PROCESSING,.etq.QUEUED,.etq.RUNNING{background:var(--marca-clara);color:var(--marca-osc)}
.etq.FAILED,.etq.FAILED_RETRYABLE,.etq.mal{background:var(--error-f);color:var(--error)}
.etq.ia{background:#F0E9FB;color:#5b3aa6}.etq.confirmado{background:var(--ok-f);color:var(--ok)}
.aviso{border-radius:8px;padding:.7rem 1rem;margin-bottom:1rem;border:1px solid}
.aviso.ok{background:var(--ok-f);border-color:#bfe0cd;color:#14563a}
.aviso.error{background:var(--error-f);border-color:#efc4c0;color:#8a1c16}
.aviso.info{background:var(--marca-clara);border-color:#c5dbf7;color:#17477f}
.aviso.atencion{background:var(--aviso-f);border-color:#f0d9a3;color:#6b4500}
.vacio{text-align:center;color:var(--gris);padding:2.2rem 1rem}
.lista{list-style:none;margin:0;padding:0}.lista li{padding:.6rem 0;border-top:1px solid #E7ECF0}.lista li:first-child{border-top:0}
.barra{height:10px;background:#E7ECF0;border-radius:999px;overflow:hidden;min-width:120px}
.barra>span{display:block;height:100%;background:var(--marca)}.barra.alta>span{background:#D08A00}.barra.tope>span{background:var(--error)}
details.tarjeta>summary{cursor:pointer;font-weight:600}details.tarjeta[open]>summary{margin-bottom:.8rem}
.pestanas{display:flex;gap:.3rem;border-bottom:1px solid var(--borde);margin-bottom:1.1rem;overflow-x:auto}
.pestanas a{padding:.55rem .9rem;color:var(--gris);border-bottom:2px solid transparent;white-space:nowrap}
.pestanas a.activo{color:var(--tinta);border-color:var(--marca);font-weight:600}
.visor{width:100%;height:72vh;border:1px solid var(--borde);border-radius:var(--radio);background:#fff}
.visor-img{max-width:100%;border:1px solid var(--borde);border-radius:var(--radio)}
.pasaje{border-left:3px solid var(--borde);padding:.1rem 0 .1rem .8rem;margin:.45rem 0;font-size:.92rem;color:#3a4b58}
.cita{display:inline-block;min-width:1.35rem;text-align:center;font-size:.72rem;font-weight:700;background:var(--marca-clara);color:var(--marca-osc);border-radius:6px;padding:0 .3rem;margin:0 .1rem;vertical-align:baseline}
.cita:hover{background:var(--marca);color:#fff;text-decoration:none}

/* subida */
.soltar{border:2px dashed #b7c6d3;border-radius:var(--radio);background:#fff;padding:2.2rem 1rem;text-align:center;cursor:pointer;transition:.15s}
.soltar.encima{border-color:var(--marca);background:var(--marca-clara)}
.subida-item{display:grid;grid-template-columns:1fr auto;gap:.3rem .8rem;padding:.7rem 0;border-top:1px solid #E7ECF0;align-items:center}
.subida-item progress{width:100%;grid-column:1/-1;height:6px}

/* chat */
.chat{display:grid;grid-template-columns:230px 1fr;gap:1.1rem;align-items:start}
.hilo{min-height:320px}
.msj{padding:.75rem 1rem;border-radius:12px;margin-bottom:.8rem;max-width:880px}
.msj.user{background:var(--marca);color:#fff;margin-left:auto;width:fit-content;max-width:85%}
.msj.assistant{background:#fff;border:1px solid var(--borde)}
.msj.assistant p:first-child{margin-top:0}.msj table{margin:.5rem 0}
.fuentes{margin-top:.6rem;padding-top:.5rem;border-top:1px dashed var(--borde);font-size:.85rem}
.redactar{display:flex;gap:.5rem;position:sticky;bottom:0;background:var(--fondo);padding:.8rem 0}
.redactar textarea{min-height:3rem;height:3rem}

/* acceso */
.acceso{min-height:100vh;display:grid;place-items:center;padding:1rem;background:linear-gradient(160deg,#1E2A32 0%,#22384a 100%)}
.acceso .tarjeta{width:100%;max-width:410px;padding:1.8rem}
.acceso .marca{color:var(--tinta);padding:0 0 1rem}.acceso .marca small{color:var(--gris)}
.qr svg{width:210px;height:210px;display:block;margin:.5rem auto}

@media (max-width:900px){
.app{grid-template-columns:1fr}
.lateral{position:fixed;inset:0 auto 0 0;width:270px;transform:translateX(-100%);transition:transform .2s;z-index:30}
.menu-check:checked~.lateral{transform:none}
.movil-barra{display:flex;align-items:center;justify-content:space-between;background:var(--tinta);color:#fff;padding:.7rem 1rem;position:sticky;top:0;z-index:20}
.movil-barra label{margin:0;font-size:1.4rem;cursor:pointer;padding:0 .4rem;color:#fff}
.menu-check:checked~.velo{display:block;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:25}
.principal{padding:1rem .9rem 3rem}
.dos,.chat{grid-template-columns:1fr}
h1{font-size:1.3rem}
.visor{height:60vh}
}
@media print{.lateral,.movil-barra,.boton,.redactar{display:none!important}.app{display:block}.principal{padding:0}}
