@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root{--sidebar-bg: #0F1C2E;--sidebar-text: rgba(255,255,255,.62);--sidebar-border: rgba(255,255,255,.08);--bg: #F5F6F8;--card: #FFFFFF;--borde: #E8EAED;--titulo: #0D1117;--texto: #374151;--label: #6B7280;--hint: #9CA3AF;--azul: #1D4ED8;--azul-bg: #EEF3FF;--ok: #15803D;--ok-bg: #F0FDF4;--ok-borde: #BBF7D0;--error: #B91C1C;--error-bg: #FEF2F2;--error-borde: #FECACA;--alerta: #92400E;--alerta-bg: #FFFBEB;--alerta-borde: #FDE68A;--gris-bg: #F3F4F6;--btn: #0F1C2E;--sans: "Inter", -apple-system, "Segoe UI", sans-serif;--mono: "JetBrains Mono", Consolas, monospace;--radio: 10px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--sans);background:var(--bg);color:var(--texto);font-size:14px;-webkit-font-smoothing:antialiased}h1,h2,h3{color:var(--titulo);margin:0}button{font-family:inherit}input,select,textarea{font-family:inherit;font-size:14px}.app{display:flex;min-height:100%}.sidebar{width:248px;background:var(--sidebar-bg);color:#fff;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;z-index:30;transition:transform .2s}.sidebar-logo{padding:20px 20px 14px;border-bottom:1px solid var(--sidebar-border)}.sidebar-logo img{height:26px;filter:brightness(0) invert(1)}.sidebar-logo .producto{font-size:12px;color:var(--sidebar-text);margin-top:8px;letter-spacing:.02em}.sidebar-logo .producto b{color:#fff;font-weight:600}.nav{flex:1;overflow-y:auto;padding:10px}.nav-sec{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:#ffffff59;padding:14px 10px 6px}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;color:var(--sidebar-text);cursor:pointer;font-size:13.5px;border:0;background:none;width:100%;text-align:left}.nav-item:hover{color:#fff;background:#ffffff0f}.nav-item.activo{color:#fff;background:#ffffff1c;font-weight:500}.nav-item .cuenta{margin-left:auto;background:#ef4444;color:#fff;font-size:11px;border-radius:10px;padding:1px 7px;font-weight:600}.sidebar-pie{padding:14px 20px;border-top:1px solid var(--sidebar-border);font-size:11.5px;color:#fff6}.main{flex:1;margin-left:248px;min-width:0;display:flex;flex-direction:column}.topbar{height:60px;background:var(--card);border-bottom:1px solid var(--borde);display:flex;align-items:center;gap:12px;padding:0 24px;position:sticky;top:0;z-index:20}.topbar .planta{font-weight:600;color:var(--titulo)}.topbar .fecha{color:var(--label);font-size:13px}.topbar .espacio{flex:1}.menu-btn{display:none}.contenido{padding:24px;max-width:1400px;width:100%}.encabezado{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.encabezado h1{font-size:22px;font-weight:700}.encabezado p{margin:4px 0 0;color:var(--label)}.encabezado-acciones{display:flex;gap:8px;flex-wrap:wrap}.card{background:var(--card);border:1px solid var(--borde);border-radius:var(--radio);padding:18px;min-width:0}.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.card-head h3{font-size:14.5px;font-weight:600}.card-extra{display:flex;gap:8px;align-items:center;font-size:12.5px;color:var(--label)}.grid{display:grid;gap:16px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g-2-1{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}.mb{margin-bottom:16px}.kpi{background:var(--card);border:1px solid var(--borde);border-radius:var(--radio);padding:16px;border-left:4px solid var(--borde)}.kpi-ok{border-left-color:#22c55e}.kpi-alerta{border-left-color:#f59e0b}.kpi-error{border-left-color:#ef4444}.kpi-azul{border-left-color:var(--azul)}.kpi-top{display:flex;justify-content:space-between;align-items:center}.kpi-label{font-size:12.5px;color:var(--label);font-weight:500}.kpi-icon{color:var(--hint);display:flex}.kpi-valor{font-size:26px;font-weight:700;color:var(--titulo);margin-top:6px;font-variant-numeric:tabular-nums}.kpi-detalle{font-size:12px;color:var(--label);margin-top:4px}.badge{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:600;padding:2px 8px;border-radius:999px;white-space:nowrap;border:1px solid transparent}.badge-ok{color:var(--ok);background:var(--ok-bg);border-color:var(--ok-borde)}.badge-error{color:var(--error);background:var(--error-bg);border-color:var(--error-borde)}.badge-alerta{color:var(--alerta);background:var(--alerta-bg);border-color:var(--alerta-borde)}.badge-gris{color:var(--label);background:var(--gris-bg);border-color:var(--borde)}.badge-azul{color:var(--azul);background:var(--azul-bg);border-color:#c7d7fe}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:8px;border:1px solid var(--btn);background:var(--btn);color:#fff;font-weight:500;font-size:13.5px;cursor:pointer;white-space:nowrap}.btn:hover{opacity:.9}.btn-sec{background:#fff;color:var(--titulo);border-color:var(--borde)}.btn-sec:hover{background:var(--gris-bg);opacity:1}.btn-peligro{background:#fff;color:var(--error);border-color:var(--error-borde)}.btn-chico{padding:5px 10px;font-size:12.5px}.btn-icon{border:0;background:none;cursor:pointer;color:var(--label);padding:6px;border-radius:6px;display:inline-flex}.btn-icon:hover{background:var(--gris-bg);color:var(--titulo)}.link{color:var(--azul);cursor:pointer;background:none;border:0;padding:0;font-size:inherit}.tabla-wrap{overflow-x:auto;margin:0 -18px;padding:0 18px}table.tabla{width:100%;border-collapse:collapse;font-size:13px}.tabla th{text-align:left;font-weight:600;color:var(--label);font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;padding:8px 10px;border-bottom:1px solid var(--borde);white-space:nowrap;background:#fafafb}.tabla td{padding:10px;border-bottom:1px solid #F0F1F3;vertical-align:top}.tabla tr.clic{cursor:pointer}.tabla tr.clic:hover td{background:#f8faff}.tabla .num{text-align:right;font-variant-numeric:tabular-nums}.mono{font-family:var(--mono);font-size:12px}.sub{color:var(--label);font-size:12px}.filtros{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;align-items:center}.filtros input,.filtros select,.campo input,.campo select,.campo textarea{border:1px solid var(--borde);border-radius:8px;padding:8px 10px;background:#fff;color:var(--titulo);min-width:0}.filtros input:focus,.campo input:focus,.campo select:focus,.campo textarea:focus{outline:2px solid #C7D7FE;border-color:var(--azul)}.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}.campo{display:flex;flex-direction:column;gap:5px;font-size:12.5px;color:var(--label);font-weight:500}.campo-full{grid-column:1 / -1}.campo textarea{resize:vertical;min-height:64px}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{border:1px solid var(--borde);background:#fff;border-radius:999px;padding:5px 12px;font-size:12.5px;cursor:pointer;color:var(--texto)}.chip.activo{background:var(--btn);color:#fff;border-color:var(--btn)}.modal-fondo{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f1c2e73;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;z-index:50;overflow-y:auto}.modal{background:#fff;border-radius:12px;width:100%;box-shadow:0 20px 50px #0003}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--borde)}.modal-head h2{font-size:17px}.modal-body{padding:20px}.modal-pie{padding:14px 20px;border-top:1px solid var(--borde);display:flex;justify-content:flex-end;gap:8px}.vacio{padding:28px;text-align:center;color:var(--hint)}.switch{width:40px;height:22px;border-radius:999px;border:0;background:#d1d5db;position:relative;cursor:pointer;flex-shrink:0;transition:background .15s;padding:0}.switch span{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:left .15s;box-shadow:0 1px 2px #0003}.switch.on{background:#22c55e}.switch.on span{left:21px}.barra{height:8px;background:var(--gris-bg);border-radius:999px;overflow:hidden}.barra-fill{height:100%;border-radius:999px}.barra-ok{background:#22c55e}.barra-alerta{background:#f59e0b}.barra-error{background:#ef4444}.barra-azul{background:var(--azul)}.lista{display:flex;flex-direction:column}.lista-item{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-bottom:1px solid #F0F1F3}.lista-item:last-child{border-bottom:0}.punto{width:8px;height:8px;border-radius:50%;margin-top:6px;flex-shrink:0}.punto-critico{background:#ef4444}.punto-alerta{background:#f59e0b}.punto-info{background:var(--azul)}.aviso-demo{background:var(--azul-bg);color:var(--azul);border:1px solid #C7D7FE;border-radius:8px;padding:10px 14px;font-size:13px;margin-bottom:16px;display:flex;gap:8px;align-items:center}.pill-num{font-variant-numeric:tabular-nums;font-weight:600}.recharts-text{font-size:11.5px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--borde);margin-bottom:16px;overflow-x:auto}.tab{padding:9px 14px;border:0;background:none;cursor:pointer;color:var(--label);font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}.filtros .tabs{overflow:visible}.tab.activo{color:var(--titulo);border-bottom-color:var(--titulo)}.campana{position:relative}.campana .cuenta{position:absolute;top:0;right:0;background:#ef4444;color:#fff;font-size:10px;border-radius:8px;padding:0 5px;font-weight:700}.popover{position:absolute;right:0;top:44px;width:420px;max-width:calc(100vw - 32px);background:#fff;border:1px solid var(--borde);border-radius:12px;box-shadow:0 12px 32px #0000001f;padding:6px 16px;max-height:70vh;overflow-y:auto;z-index:40}.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--borde);border-left:1px solid var(--borde)}.cal-dow{font-size:11px;text-transform:uppercase;color:var(--label);padding:6px 8px;border-right:1px solid var(--borde);border-bottom:1px solid var(--borde);background:#fafafb;font-weight:600}.cal-dia{min-height:104px;border-right:1px solid var(--borde);border-bottom:1px solid var(--borde);padding:6px;font-size:12px;min-width:0}.cal-dia.fuera{background:#fafafb;color:var(--hint)}.cal-dia.hoy{background:#f8faff}.cal-num{font-weight:600;margin-bottom:4px}.cal-dia.hoy .cal-num{color:#fff;background:var(--azul);border-radius:50%;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center}.cal-ev{font-size:11px;padding:2px 6px;border-radius:4px;margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:default}.ev-cumplimiento{background:#eef3ff;color:#1e3a8a}.ev-capacitacion{background:#f0fdf4;color:#166534}.ev-hallazgos{background:#fffbeb;color:#92400e}.ev-incidentes{background:#fef2f2;color:#991b1b}.ev-recorrido{background:#f3e8ff;color:#6b21a8}.ev-vencido{outline:1px solid #EF4444}.matriz td.celda{text-align:center;padding:6px 4px}.celda-dot{display:inline-block;width:14px;height:14px;border-radius:4px}.dot-vigente{background:#22c55e}.dot-por_vencer{background:#f59e0b}.dot-vencido{background:#ef4444}.dot-sin_registro{background:#fff;border:1.5px dashed #EF4444}.dot-na{background:#f3f4f6}.matriz th.vert{writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;height:150px;vertical-align:bottom;text-transform:none;letter-spacing:0;font-size:11.5px;padding:8px 4px}.sensor{position:relative}.sensor-valor{font-size:30px;font-weight:700;color:var(--titulo);font-variant-numeric:tabular-nums}.vivo{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ok);font-weight:600}.vivo:before{content:"";width:8px;height:8px;border-radius:50%;background:#22c55e;animation:pulso 1.4s infinite}@keyframes pulso{0%,to{opacity:1}50%{opacity:.3}}.reco{border:1px solid var(--borde);border-radius:var(--radio);padding:16px;background:#fff;border-left:4px solid var(--azul)}.reco.p-Alta{border-left-color:#ef4444}.reco.p-Media{border-left-color:#f59e0b}.reco.p-Baja{border-left-color:#22c55e}.reco h4{margin:6px 0 8px;font-size:15px;color:var(--titulo)}.reco ul{margin:0 0 10px;padding-left:18px;color:var(--texto)}.reco li{margin-bottom:3px}.reco .accion{background:#f8faff;border-radius:8px;padding:10px 12px;font-size:13px}.reco .impacto{font-size:12px;color:var(--label);margin-top:8px}.config-fila{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid #F0F1F3}.config-fila:last-child{border-bottom:0}.config-fila b{color:var(--titulo);font-weight:600}@media (max-width: 1100px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g3,.g-2-1{grid-template-columns:minmax(0,1fr)}}@media (max-width: 860px){.sidebar{transform:translate(-100%)}.sidebar.abierto{transform:none;box-shadow:0 0 40px #0000004d}.main{margin-left:0}.menu-btn{display:inline-flex}.topbar{padding:0 16px}.topbar .fecha{display:none}.contenido{padding:16px}.g2,.form{grid-template-columns:minmax(0,1fr)}.cal-dia{min-height:70px;padding:3px}.cal-ev{font-size:9.5px;padding:1px 3px}.velo{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:25}}@media (max-width: 520px){.g4{grid-template-columns:minmax(0,1fr)}.kpi-valor{font-size:22px}}@media print{.sidebar,.topbar,.encabezado-acciones{display:none!important}.main{margin-left:0}}.chat{display:flex;flex-direction:column;min-height:calc(100vh - 220px)}.chat-mensajes{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:14px;padding-bottom:8px;max-height:calc(100vh - 330px);min-height:280px}.chat-vacio{text-align:center;margin:auto;max-width:760px;display:flex;flex-direction:column;align-items:center;gap:4px}.chat-vacio p{margin:4px 0}.burbuja{display:flex;gap:10px;align-items:flex-start;max-width:860px}.burbuja.usuario{align-self:flex-end}.burbuja.usuario .burbuja-texto{background:var(--btn);color:#fff;border-radius:14px 14px 4px;white-space:pre-wrap}.burbuja.asistente .burbuja-texto{background:#f8faff;border:1px solid #E0E7FF;border-radius:4px 14px 14px}.burbuja-texto{padding:10px 14px;line-height:1.5;min-width:0}.avatar{width:28px;height:28px;border-radius:50%;background:var(--azul);color:#fff;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.chat-entrada{display:flex;gap:8px;align-items:flex-end;border-top:1px solid var(--borde);padding-top:12px}.chat-entrada textarea{flex:1;border:1px solid var(--borde);border-radius:10px;padding:10px 12px;resize:none;color:var(--titulo)}.chat-entrada textarea:focus{outline:2px solid #C7D7FE;border-color:var(--azul)}.texto-ia p{margin:0 0 8px}.texto-ia ul{margin:0 0 8px;padding-left:18px}.texto-ia li{margin-bottom:3px}.texto-ia>:last-child{margin-bottom:0}.escribiendo{display:inline-flex;gap:3px;margin-right:6px;vertical-align:middle}.escribiendo i{width:6px;height:6px;border-radius:50%;background:var(--azul);animation:pulso 1s infinite}.escribiendo i:nth-child(2){animation-delay:.2s}.escribiendo i:nth-child(3){animation-delay:.4s}@media (max-width: 860px){.chat-mensajes{max-height:none}.chat{min-height:0}}
