:root{--fondo: #f6f8f9;--superficie: #ffffff;--superficie-2: #eef1f4;--tinta: #1c2434;--tinta-suave: #5a6577;--linea: #dbe0e8;--marca: #273f66;--marca-oscura: #1b2d4a;--marca-tenue: #e9eef7;--menta: #69e2c2;--menta-tenue: #e4faf3;--sobre-marca: #ffffff;--ok: #1e7d4f;--ok-fondo: #e3f2ea;--alerta: #9a5b00;--alerta-fondo: #f7ecd8;--peligro: #a02c2c;--peligro-fondo: #f7e4e4;--neutro-fondo: #e9ecef;--radio: 10px;--sombra: 0 1px 3px rgba(20, 30, 40, .08);--sombra-alta: 0 8px 30px rgba(20, 30, 40, .16);--fuente-titulo: "Archivo", "Arial Narrow", sans-serif;--fuente-texto: "Public Sans", "Segoe UI", system-ui, sans-serif;--fuente-mono: "IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body,#raiz{margin:0;min-height:100vh}body{background:var(--fondo);color:var(--tinta);font-family:var(--fuente-texto);font-size:15px;line-height:1.55}a{color:var(--marca)}h1,h2,h3{font-family:var(--fuente-titulo);line-height:1.15;margin:0}.cascaron{min-height:100vh;display:flex;flex-direction:column}.barra-superior{position:sticky;top:0;z-index:40;background:var(--superficie);color:var(--tinta);display:flex;align-items:center;gap:20px;padding:0 22px;height:64px;border-bottom:3px solid var(--menta);box-shadow:var(--sombra)}.marca{display:flex;align-items:center;color:inherit;text-decoration:none}.marca img{height:46px;display:block}.fuentes{display:flex;gap:6px;margin-left:18px}.fuente-pill{border:1px solid var(--linea);border-radius:99px;padding:4px 13px;font-size:.78rem;color:var(--tinta-suave);background:transparent;cursor:pointer;font-family:inherit}.fuente-pill.activa{background:var(--marca);border-color:var(--marca);color:var(--sobre-marca);font-weight:600}.fuente-pill:disabled{opacity:.5;cursor:not-allowed}.boton-clave{margin-left:auto;background:transparent;color:var(--marca);border:1px solid var(--linea);border-radius:8px;padding:6px 12px;font-size:.78rem;cursor:pointer;font-family:inherit}.boton-clave:hover{background:var(--marca-tenue)}.contenido{flex:1;width:100%;max-width:1060px;margin:0 auto;padding:28px 22px 80px}.tarjeta{background:var(--superficie);border:1px solid var(--linea);border-radius:var(--radio);box-shadow:var(--sombra)}.tarjeta.acolchada{padding:20px 22px}.boton{display:inline-flex;align-items:center;gap:8px;background:var(--marca);color:var(--sobre-marca);border:1px solid var(--marca);border-radius:8px;padding:9px 18px;font-size:.9rem;font-weight:600;cursor:pointer;font-family:inherit;text-decoration:none}.boton:hover{background:var(--marca-oscura)}.boton:disabled{opacity:.5;cursor:not-allowed}.boton.secundario{background:transparent;color:var(--marca)}.boton.secundario:hover{background:var(--marca-tenue)}.boton.fantasma{background:transparent;border-color:transparent;color:var(--marca);padding:6px 10px}.boton.peligro-suave{background:transparent;border-color:var(--peligro);color:var(--peligro)}.campo{width:100%;border:1.5px solid var(--linea);border-radius:8px;padding:9px 13px;font-size:.95rem;font-family:inherit;color:var(--tinta);background:var(--superficie)}.campo:focus{outline:2px solid var(--marca);outline-offset:1px;border-color:var(--marca)}select.campo{appearance:none;-webkit-appearance:none;padding-right:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' stroke='%235a6577' stroke-width='1.8' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 13px center;background-size:12px 8px;cursor:pointer}.segmentado{display:inline-flex;border:1.5px solid var(--linea);border-radius:8px;overflow:hidden}.segmentado button{border:none;background:var(--superficie);color:var(--tinta-suave);padding:9px 16px;font-size:.88rem;cursor:pointer;font-family:inherit}.segmentado button.activo{background:var(--marca-tenue);color:var(--marca);font-weight:700}.chip{display:inline-flex;align-items:center;gap:5px;border-radius:99px;padding:2px 11px;font-size:.76rem;font-weight:600;white-space:nowrap}.chip.ok{background:var(--ok-fondo);color:var(--ok)}.chip.curso{background:var(--marca-tenue);color:var(--marca)}.chip.espera{background:var(--neutro-fondo);color:var(--tinta-suave)}.chip.alerta{background:var(--alerta-fondo);color:var(--alerta)}.chip.error{background:var(--peligro-fondo);color:var(--peligro)}.ticker{font-family:var(--fuente-mono);font-size:.76rem;color:var(--tinta-suave);background:var(--superficie-2);border-left:3px solid var(--marca);border-radius:6px;padding:7px 11px;overflow-x:auto;white-space:nowrap}.aviso{border:1px solid var(--linea);border-left:4px solid var(--marca);background:var(--marca-tenue);border-radius:8px;padding:11px 15px;font-size:.88rem}.aviso.advertencia{border-left-color:var(--alerta);background:var(--alerta-fondo)}.aviso.fallo{border-left-color:var(--peligro);background:var(--peligro-fondo)}.marco-tabla{overflow-x:auto}table.datos{width:100%;border-collapse:collapse;font-size:.87rem}table.datos th{text-align:left;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--tinta-suave);padding:10px 12px;border-bottom:2px solid var(--linea)}table.datos td{padding:10px 12px;border-bottom:1px solid var(--linea);vertical-align:top}table.datos tr.clicable{cursor:pointer}table.datos tr.clicable:hover td{background:var(--superficie-2)}table.tabla-historial td,table.tabla-lote td{vertical-align:middle}.mono{font-family:var(--fuente-mono);font-size:.8rem}.suave{color:var(--tinta-suave)}.pequeno{font-size:.8rem}.fases{list-style:none;margin:0;padding:0}.fases li{display:flex;gap:13px;padding:9px 0;align-items:flex-start}.fases .punto{flex:none;width:24px;height:24px;border-radius:50%;margin-top:1px;display:grid;place-items:center;font-size:.7rem;font-weight:700;font-family:var(--fuente-mono)}.fases .hecha .punto{background:var(--ok-fondo);color:var(--ok)}.fases .actual .punto{background:var(--marca);color:var(--sobre-marca)}.fases .futura .punto{background:var(--neutro-fondo);color:var(--tinta-suave)}.fases .futura{opacity:.6}.fases small{display:block;color:var(--tinta-suave);font-size:.78rem}@keyframes pulso{0%,to{opacity:1}50%{opacity:.55}}.pulsante{animation:pulso 1.6s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.pulsante{animation:none}}.progreso{height:10px;border-radius:99px;background:var(--neutro-fondo);overflow:hidden}.progreso i{display:block;height:100%;background:var(--marca);border-radius:99px;transition:width .6s ease}.dropzone{border:2px dashed var(--linea);border-radius:var(--radio);padding:22px;text-align:center;color:var(--tinta-suave);font-size:.9rem;cursor:pointer;background:var(--superficie)}.dropzone:hover,.dropzone.encima{border-color:var(--marca);color:var(--marca);background:var(--marca-tenue)}.galeria{display:flex;flex-wrap:wrap;gap:10px}.galeria button{border:1px solid var(--linea);border-radius:8px;padding:0;overflow:hidden;cursor:zoom-in;background:var(--superficie-2)}.galeria img{display:block;width:150px;height:104px;object-fit:cover;object-position:top}.galeria figcaption{font-size:.68rem;color:var(--tinta-suave);padding:4px 7px;text-align:left}.visor{position:fixed;inset:0;background:#0c1219e0;z-index:50;display:flex;flex-direction:column}.visor header{display:flex;align-items:center;gap:12px;color:#fff;padding:12px 18px;font-size:.85rem}.visor header button{margin-left:auto}.visor .lamina{flex:1;overflow:auto;display:flex;justify-content:center;padding:0 18px 18px}.visor img{max-width:100%;height:fit-content;border-radius:6px;background:#fff}.visor .nav{background:#ffffff1f;color:#fff;border:none;border-radius:8px;padding:8px 14px;cursor:pointer;font-family:inherit}.velo{position:fixed;inset:0;background:#0c121980;z-index:40;display:grid;place-items:center;padding:20px}.modal{width:100%;max-width:460px;background:var(--superficie);border-radius:var(--radio);box-shadow:var(--sombra-alta);padding:24px}.cabecera-seccion{display:flex;align-items:baseline;gap:12px;margin:26px 0 12px}.cabecera-seccion h2{font-size:1.15rem}.controles-historial{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px}.controles-historial .grupo-derecha{display:flex;gap:10px;margin-left:auto;flex-wrap:wrap}.lista-errores{max-height:55vh;overflow-y:auto;border:1px solid var(--linea);border-radius:8px;margin:12px 0}.lista-errores>div{padding:8px 12px;border-bottom:1px solid var(--linea);font-size:.84rem}.lista-errores>div:last-child{border-bottom:none}.lista-errores .fila-num{font-family:var(--fuente-mono);color:var(--tinta-suave);margin-right:8px}.fila-flex{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.rejilla-lanzar{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:760px){.rejilla-lanzar{grid-template-columns:1fr}}.tabs{display:inline-flex;gap:4px;background:var(--superficie-2);border-radius:9px;padding:3px}.tabs button{border:none;background:transparent;border-radius:7px;padding:5px 14px;font-size:.82rem;color:var(--tinta-suave);cursor:pointer;font-family:inherit}.tabs button.activa{background:var(--superficie);color:var(--marca);font-weight:700;box-shadow:var(--sombra)}.acciones-fila{display:flex;gap:4px;justify-content:flex-end;opacity:0;transition:opacity .15s}tr:hover .acciones-fila,.acciones-fila:focus-within{opacity:1}.accion-mini{border:1px solid var(--linea);background:var(--superficie);color:var(--tinta-suave);border-radius:7px;padding:3px 10px;font-size:.74rem;cursor:pointer;font-family:inherit;white-space:nowrap}.accion-mini:hover{border-color:var(--marca);color:var(--marca)}.accion-mini.quitar:hover{border-color:var(--peligro);color:var(--peligro)}.paginacion{display:flex;align-items:center;gap:12px;justify-content:flex-end;padding:10px 14px;border-top:1px solid var(--linea);font-size:.82rem;color:var(--tinta-suave)}.paginacion button{border:1px solid var(--linea);background:var(--superficie);border-radius:7px;padding:4px 12px;cursor:pointer;font-family:inherit;color:var(--tinta)}.paginacion button:disabled{opacity:.4;cursor:not-allowed}@keyframes brillo{0%{background-position:-200px 0}to{background-position:200px 0}}.esqueleto{border-radius:6px;color:transparent!important;-webkit-user-select:none;user-select:none;background:linear-gradient(90deg,var(--superficie-2) 25%,var(--linea) 50%,var(--superficie-2) 75%);background-size:400px 100%;animation:brillo 1.2s infinite linear}@media(prefers-reduced-motion:reduce){.esqueleto{animation:none}}.atenuada{opacity:.55;transition:opacity .2s;pointer-events:none}@keyframes giro{to{transform:rotate(360deg)}}.girando{display:inline-block;width:12px;height:12px;border:2px solid var(--marca-tenue);border-top-color:var(--marca);border-radius:50%;animation:giro .7s linear infinite}.icono-tipo{flex:none;width:34px;height:34px;border-radius:8px;background:var(--menta-tenue);color:var(--marca);display:grid;place-items:center;font-weight:700;font-size:.8rem;font-family:var(--fuente-titulo)}@media(hover:none){.acciones-fila{opacity:1}}@media(max-width:720px){.contenido{padding:16px 12px 60px}.barra-superior{height:auto;flex-wrap:wrap;align-items:center;row-gap:12px;column-gap:12px;padding:14px 16px 12px}.marca{align-self:center}.marca img{height:38px}.boton-clave{margin-left:auto;padding:8px 14px;font-size:.8rem}.fuentes{margin:0 -6px;order:3;width:100%;overflow-x:auto;padding:2px 6px 4px;gap:8px;scrollbar-width:none}.fuentes::-webkit-scrollbar{display:none}.fuente-pill{flex:none;padding:7px 16px;font-size:.8rem}.tarjeta.acolchada{padding:15px 14px}.cabecera-seccion{flex-wrap:wrap;gap:10px}.controles-historial .campo{max-width:none!important;width:100%;margin-left:0!important}.controles-historial .grupo-derecha{margin-left:0;width:100%}.accion-mini{padding:8px 14px;font-size:.8rem}.paginacion{justify-content:space-between}.paginacion button{padding:9px 16px}.boton{padding:11px 18px}table.plegable thead{display:none}table.plegable,table.plegable tbody,table.plegable tr,table.plegable td{display:block;width:100%;box-sizing:border-box}table.plegable tr{padding:13px 14px;border-bottom:1px solid var(--linea)}table.plegable td{border:none;padding:3px 0}table.plegable td:empty{display:none}table.plegable td[data-campo]:before{content:attr(data-campo);display:inline-block;min-width:90px;font-size:.64rem;text-transform:uppercase;letter-spacing:.08em;color:var(--tinta-suave);font-weight:700}table.tabla-historial,table.tabla-historial tbody{display:block;width:100%}table.tabla-historial tr.fila-historial{display:grid;grid-template-columns:44px 1fr auto;gap:2px 12px;padding:12px 14px;border-bottom:1px solid var(--linea);width:100%;box-sizing:border-box}table.tabla-historial .fila-historial td{display:block;border:none;padding:0;width:auto!important}table.tabla-historial .fila-historial .td-icono{grid-row:1 / span 2}table.tabla-historial .fila-historial .td-chip{grid-column:3;grid-row:1;text-align:right!important}table.tabla-historial .fila-historial .td-cuando{grid-column:2 / -1;margin-top:2px}table.tabla-historial .fila-historial .td-acciones{grid-column:1 / -1;margin-top:8px}table.tabla-historial .fila-historial .acciones-fila{justify-content:flex-start}.galeria button{flex:1 1 45%}.galeria img{width:100%;height:130px}.visor header{flex-wrap:wrap;gap:8px}.visor .lamina{padding:0 8px 10px}}.indicador-estado{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--linea);border-radius:99px;padding:5px 12px;font-size:.76rem;color:var(--tinta-suave);background:transparent;cursor:pointer;font-family:inherit;white-space:nowrap}.indicador-estado .punto{width:9px;height:9px;border-radius:50%;background:var(--ok)}.indicador-estado.neutro .punto{background:var(--linea)}.indicador-estado.alerta{border-color:var(--alerta);color:var(--alerta);font-weight:600}.indicador-estado.alerta .punto{background:var(--alerta);animation:pulso 1.6s ease-in-out infinite}.indicador-estado.mal{border-color:var(--peligro);color:var(--peligro);font-weight:600}.indicador-estado.mal .punto{background:var(--peligro);animation:pulso 1.2s ease-in-out infinite}.fila-servicio{display:flex;align-items:center;gap:12px;padding:12px 2px;border-bottom:1px solid var(--linea)}.fila-servicio:last-child{border-bottom:none}.fila-servicio .punto{width:10px;height:10px;border-radius:50%;flex:none}.subheader{position:sticky;top:64px;z-index:25;background:var(--fondo);padding:10px 0;margin-bottom:14px;border-bottom:1px solid var(--linea)}.subheader .fila-flex{margin-bottom:0!important}.subheader h1{font-size:1.25rem!important}@media(max-width:720px){.subheader{position:static;border-bottom:none;padding:0}.indicador-estado span{display:none}.indicador-estado{padding:7px 9px}}
