:root{--fondo: #F4F2EC;--superficie: #FFFFFF;--tinta: #15171C;--tenue: #5A5F6B;--suave: #3F434C;--linea: #E2DED4;--linea-2: #EEEBE3;--borde-campo: #C9C4B8;--acento: #C2410C;--acento-oscuro: #9A3412;--azul: #1E40AF;--azul-claro: #E0E7FF;--azul-texto: #1E3A8A;--naranja-claro: #FFEDD5;--naranja-borde: #FDBA74;--naranja-texto: #7C2D12;--rojo-claro: #FEE2E2;--rojo-texto: #991B1B;--verde-claro: #DCFCE7;--verde-texto: #14532D;--display: "Archivo", system-ui, sans-serif;--texto: "IBM Plex Sans", system-ui, sans-serif;--mono: "IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:var(--fondo);color:var(--tinta);font-family:var(--texto);font-size:15px;-webkit-font-smoothing:antialiased}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}a{color:var(--acento)}a:hover{color:var(--acento-oscuro)}h1,h2,h3{font-family:var(--display);margin:0;letter-spacing:-.4px}.mono{font-family:var(--mono)}.tenue{color:var(--tenue)}.btn{height:48px;padding:0 18px;border-radius:12px;border:1px solid transparent;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primario{background:var(--acento);color:#fff}.btn-primario:hover:not(:disabled){background:var(--acento-oscuro);color:#fff}.btn-oscuro{background:var(--tinta);color:#fff}.btn-borde{background:var(--superficie);border-color:var(--borde-campo);color:var(--tinta)}.btn-grande{height:56px;font-family:var(--display);font-size:17px;font-weight:700;border-radius:14px;width:100%}.btn-icono{width:44px;height:44px;padding:0;border-radius:12px}.campo{display:flex;flex-direction:column;gap:6px}.campo label{font-size:13px;font-weight:600}.campo input,.campo select,.campo textarea{min-width:0;width:100%;min-height:50px;border-radius:12px;border:1px solid var(--borde-campo);background:var(--superficie);padding:12px 14px}.campo textarea{min-height:90px;resize:vertical}.campo input:focus,.campo select:focus,.campo textarea:focus{outline:2px solid var(--tinta);outline-offset:1px}.error{background:var(--rojo-claro);color:var(--rojo-texto);border-radius:10px;padding:10px 12px;font-size:14px}.aviso{background:var(--naranja-claro);color:var(--naranja-texto);border:1px solid var(--naranja-borde);border-radius:12px;padding:12px 14px;font-size:14px}.tarjeta{background:var(--superficie);border:1px solid var(--linea);border-radius:14px}.pill{font-size:12px;font-weight:600;padding:3px 9px;border-radius:99px;white-space:nowrap}.pill-activo{background:var(--azul-claro);color:var(--azul-texto)}.pill-alerta{background:var(--naranja-claro);color:var(--naranja-texto)}.pill-peligro{background:var(--rojo-claro);color:var(--rojo-texto)}.pill-ok{background:var(--verde-claro);color:var(--verde-texto)}.pill-neutro{background:#f1efe9;color:var(--suave)}.insignia{width:44px;height:44px;border-radius:10px;color:#fff;font-family:var(--mono);font-weight:600;font-size:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.insignia-chica{width:38px;height:26px;border-radius:6px;font-size:11px}.campo-app{max-width:480px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;background:var(--fondo)}.cabecera-oscura{background:var(--tinta);color:#fff;padding:20px 20px 22px;display:flex;flex-direction:column;gap:16px}.cabecera-blanca{background:var(--superficie);border-bottom:1px solid var(--linea);padding:16px 20px 14px;display:flex;flex-direction:column;gap:12px;position:sticky;top:0;z-index:5}.logo{display:flex;align-items:center;gap:10px}.logo-marca{width:34px;height:34px;border-radius:9px;background:var(--acento);display:flex;align-items:center;justify-content:center}.logo-nombre{font-family:var(--display);font-weight:800;font-size:17px}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.stat{border:1px solid #3A3E48;background:#1e2128;border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}.stat b{font-family:var(--mono);font-size:24px;font-weight:600}.stat span{font-size:12px;color:#b8bcc6}.stat-alerta{border-color:var(--acento-oscuro);background:#2a1d17}.stat-alerta b{color:var(--naranja-borde)}.stat-alerta span{color:#fed7aa}.seccion{padding:20px 20px 0;display:flex;flex-direction:column;gap:10px}.seccion-titulo{display:flex;justify-content:space-between;align-items:baseline}.seccion-titulo h2{font-size:18px}.permiso-fila{display:flex;align-items:center;gap:12px;padding:12px 14px;text-decoration:none;color:inherit}.permiso-fila:hover{color:inherit;border-color:var(--borde-campo)}.pie-accion{position:sticky;bottom:0;padding:14px 20px calc(14px + env(safe-area-inset-bottom));background:var(--superficie);border-top:1px solid var(--linea);margin-top:auto}.progreso{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px}.progreso div{height:5px;border-radius:3px;background:var(--linea)}.progreso div.hecho{background:var(--acento)}.opcion{text-align:left;background:var(--superficie);border:1px solid var(--linea);border-radius:14px;padding:14px;display:flex;align-items:center;gap:12px;cursor:pointer;width:100%}.opcion[aria-pressed=true]{border:2px solid var(--tinta);padding:13px}.radio{width:24px;height:24px;border-radius:12px;border:2px solid var(--borde-campo);flex-shrink:0;display:flex;align-items:center;justify-content:center}.opcion[aria-pressed=true] .radio{background:var(--tinta);border-color:var(--tinta)}.vacio{text-align:center;padding:32px 16px;color:var(--tenue)}.panel{display:flex;min-height:100vh}.lateral{width:248px;flex-shrink:0;background:var(--tinta);color:#fff;padding:24px 16px;display:flex;flex-direction:column;gap:24px;position:sticky;top:0;height:100vh}.lateral nav{display:flex;flex-direction:column;gap:2px}.lateral nav a{height:42px;border-radius:10px;color:#c9ccd3;text-decoration:none;font-size:14px;display:flex;align-items:center;padding:0 12px}.lateral nav a.activo{background:#2a2d35;color:#fff;font-weight:600}.lateral nav a.proximo{color:#7b808c;pointer-events:none}.principal{flex:1;padding:28px 32px;display:flex;flex-direction:column;gap:20px;min-width:0}.kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.kpi{padding:16px 18px;display:flex;flex-direction:column;gap:4px}.kpi b{font-family:var(--mono);font-size:34px;font-weight:600;letter-spacing:-1px}.tabla{width:100%;border-collapse:collapse;font-size:14px}.tabla th{text-align:left;font-size:12px;letter-spacing:.4px;color:var(--tenue);background:#f7f5f0;padding:10px 16px;border-bottom:1px solid var(--linea-2)}.tabla td{padding:12px 16px;border-bottom:1px solid var(--linea-2)}.tabla tr:hover td{background:#fbfaf7}.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px}.login-caja{width:100%;max-width:400px;display:flex;flex-direction:column;gap:18px}@media (max-width: 900px){.panel{flex-direction:column}.lateral{width:100%;height:auto;position:static}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.principal{padding:20px 16px}}.modal-fondo{position:fixed;top:0;right:0;bottom:0;left:0;background:#15171c8c;z-index:50;display:flex;align-items:flex-end;justify-content:center}.modal{background:var(--superficie);width:100%;max-width:520px;border-radius:18px 18px 0 0;padding:20px 20px calc(20px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:14px;max-height:94vh;overflow-y:auto}@media (min-width: 700px){.modal-fondo{align-items:center}.modal{border-radius:18px}}.lienzo-firma{width:100%;height:190px;border:1.5px dashed var(--borde-campo);border-radius:12px;background:#fdfcfa;touch-action:none;cursor:crosshair}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{min-height:36px;min-width:36px;padding:0 10px;border-radius:99px;border:1px solid var(--borde-campo);background:var(--superficie);font-weight:600;font-size:13px;cursor:pointer}.chip[aria-pressed=true]{background:var(--tinta);color:#fff;border-color:var(--tinta)}.seccion-fila{display:flex;align-items:center;gap:12px;padding:14px;text-decoration:none;color:inherit}.seccion-fila:hover{color:inherit;border-color:var(--borde-campo)}.marca{width:28px;height:28px;border-radius:14px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border:2px solid var(--borde-campo)}.marca-ok{background:#15803d;border-color:#15803d}.check-fila{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border-bottom:1px solid var(--linea-2)}.check-fila:last-child{border-bottom:none}.segmento{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:6px}.segmento button{height:40px;border-radius:10px;border:1px solid var(--borde-campo);background:var(--superficie);font-weight:600;cursor:pointer}.segmento button[aria-pressed=true].si{background:#15803d;border-color:#15803d;color:#fff}.segmento button[aria-pressed=true].no{background:var(--rojo-texto);border-color:var(--rojo-texto);color:#fff}.segmento button[aria-pressed=true].na{background:var(--suave);border-color:var(--suave);color:#fff}.fotos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.fotos img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;border:1px solid var(--linea);background:#eee}.fila-dato{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--linea-2)}.fila-dato:last-child{border-bottom:none}.ok-caja{background:var(--verde-claro);color:var(--verde-texto);border-radius:12px;padding:12px 14px;font-size:14px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.etiqueta-sec{font-size:12px;font-weight:600;color:var(--tenue);letter-spacing:.6px;text-transform:uppercase}.btn-chico{height:38px;padding:0 12px;font-size:14px;border-radius:10px}.btn-peligro{background:var(--superficie);border-color:#fca5a5;color:var(--rojo-texto)}.alerta-vencido{background:#b91c1c;color:#fff;border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:4px;animation:latido 1.6s ease-in-out infinite}.alerta-vencido b{font-family:var(--display);font-size:17px;letter-spacing:.3px}.alerta-vencido span{font-size:14px}@keyframes latido{0%,to{box-shadow:0 0 #b91c1c8c}50%{box-shadow:0 0 0 8px #b91c1c00}}@media (prefers-reduced-motion: reduce){.alerta-vencido{animation:none}}.fila-vencida td{background:#fef2f2!important}.fila-vencida td:first-child{box-shadow:inset 4px 0 #b91c1c}
