:root{--fondo: #F2F6FA;--superficie: #FFFFFF;--superficie-2: #F6F9FC;--texto: #0B1B33;--tenue: #5B6B80;--borde: #DDE6EF;--primario: #0B2A5B;--primario-2: #1478A8;--cian: #22B8D4;--degradado: linear-gradient(90deg, #0B2A5B, #22B8D4);--primario-suave: #E1F2F8;--primario-txt: #FFFFFF;--ok: #15803d;--ok-f: #dcfce7;--info: #1d4ed8;--info-f: #dbeafe;--mov: #b45309;--mov-f: #fef3c7;--mal: #b91c1c;--mal-f: #fee2e2;--aviso: #a16207;--aviso-f: #fef9c3;--nulo: #4b5563;--nulo-f: #EEF2F6;--verde: #22c55e;--rojo: #ef4444;--ambar: #f59e0b;--azul: #3b82f6;--sombra: 0 1px 2px rgba(11, 27, 51, .05), 0 8px 24px rgba(11, 27, 51, .07);--pa-muro: #CFE3EF;--pa-viga: #0B2A5B;--pa-panel: #F2F8FC;--pa-liston: #9FD6E6;--pa-interior: #0A1A33;color-scheme:light}:root[data-tema=oscuro]{--fondo: #07142B;--superficie: #0C1E3D;--superficie-2: #112748;--texto: #E6EEF7;--tenue: #93A6BF;--borde: #1C3557;--primario: #22B8D4;--primario-2: #4A9EE0;--primario-suave: #0F3352;--ok-f: #12351f;--ok: #86efac;--info-f: #172a5c;--info: #bfdbfe;--mov-f: #4a2a08;--mov: #fde68a;--mal-f: #4c1515;--mal: #fecaca;--aviso-f: #453208;--aviso: #fef08a;--nulo-f: #1A2B44;--nulo: #CBD5E1;--sombra: 0 1px 2px rgba(0, 0, 0, .3), 0 10px 28px rgba(0, 0, 0, .28);--pa-muro: #163A63;--pa-viga: #22B8D4;--pa-panel: #D6EAF3;--pa-liston: #7FC8DD;--pa-interior: #040B18;color-scheme:dark}@media(prefers-color-scheme:dark){:root:not([data-tema=claro]){--fondo: #07142B;--superficie: #0C1E3D;--superficie-2: #112748;--texto: #E6EEF7;--tenue: #93A6BF;--borde: #1C3557;--primario: #22B8D4;--primario-2: #4A9EE0;--primario-suave: #0F3352;--ok-f: #12351f;--ok: #86efac;--info-f: #172a5c;--info: #bfdbfe;--mov-f: #4a2a08;--mov: #fde68a;--mal-f: #4c1515;--mal: #fecaca;--aviso-f: #453208;--aviso: #fef08a;--nulo-f: #1A2B44;--nulo: #CBD5E1;--sombra: 0 1px 2px rgba(0, 0, 0, .3), 0 10px 28px rgba(0, 0, 0, .28);--pa-muro: #163A63;--pa-viga: #22B8D4;--pa-panel: #D6EAF3;--pa-liston: #7FC8DD;--pa-interior: #040B18;color-scheme:dark}}*{box-sizing:border-box}body{margin:0;background:var(--fondo);color:var(--texto);font:15px/1.5 Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}body.con-ventana{overflow:hidden}a{color:var(--primario)}h1{font-size:1.45rem;margin:0 0 .25rem;letter-spacing:-.01em;text-wrap:balance}h2{font-size:1.05rem;margin:0 0 .75rem}h3{font-size:1rem;margin:0 0 .5rem}p{margin:.4rem 0}.tenue{color:var(--tenue)}.error{color:var(--mal)}.pequeno{font-size:.82rem}.centro{text-align:center}.num{font-variant-numeric:tabular-nums}.mono{font-variant-numeric:tabular-nums;white-space:nowrap}.bloque{display:block}.icono{flex:none;vertical-align:-.2em}button,.boton{font:inherit;border:1px solid transparent;border-radius:10px;padding:.55rem .95rem;background:var(--primario);color:var(--primario-txt);cursor:pointer;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;text-decoration:none;transition:filter .15s,background .15s,border-color .15s,transform .05s}button:hover,.boton:hover{filter:brightness(1.08)}button:active{transform:translateY(1px)}button.sec,.boton.sec{background:var(--superficie);color:var(--texto);border-color:var(--borde)}button.sec:hover,.boton.sec:hover{border-color:var(--primario-2);filter:none}button.chico{padding:.3rem .6rem;font-size:.82rem;border-radius:8px}button:disabled{opacity:.55;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,tr:focus-visible{outline:2px solid var(--primario-2);outline-offset:2px}button.icono-btn{background:transparent;color:var(--tenue);border:1px solid var(--borde);padding:.45rem;border-radius:10px}button.icono-btn:hover{color:var(--primario);border-color:var(--primario-2);filter:none}input,select{font:inherit;width:100%;padding:.55rem .7rem;border-radius:10px;border:1px solid var(--borde);background:var(--superficie);color:var(--texto)}label{display:grid;gap:.25rem;margin-bottom:.75rem;font-weight:500}label.check{display:flex;align-items:center;gap:.5rem;font-weight:400}label.check input{width:auto}fieldset{border:1px solid var(--borde);border-radius:10px;margin:0 0 .75rem}.marco{min-height:100vh;display:grid;grid-template-columns:236px minmax(0,1fr)}.lateral{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:1rem;padding:1rem .8rem;color:#e1f2f8;background:linear-gradient(180deg,#0b2a5b,#08213f 55%,#07142b)}.lateral-marca{text-decoration:none;color:#fff;padding:.2rem .4rem .6rem}.marca{display:inline-flex;align-items:center;gap:.6rem}.marca-txt{display:grid;line-height:1.15}.marca-txt b{font-size:1.05rem;letter-spacing:-.01em}.marca-txt small{font-size:.72rem;opacity:.75}.logo{flex:none;height:auto;display:block}.logo-empresa{height:auto;display:block}.solo-tema-oscuro{display:none!important}:root[data-tema=oscuro] .solo-tema-oscuro{display:block!important}:root[data-tema=oscuro] .solo-tema-claro{display:none!important}@media(prefers-color-scheme:dark){:root:not([data-tema=claro]) .solo-tema-oscuro{display:block!important}:root:not([data-tema=claro]) .solo-tema-claro{display:none!important}}.marca-lateral{display:grid;justify-items:start;gap:.35rem}.logo-horizontal{width:196px;height:auto}.logo-compacto{display:none;width:50px;height:auto}.producto{font:800 .78rem/1 Montserrat,system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#22b8d4;padding:.25rem .5rem;border:1px solid rgba(34,184,212,.45);border-radius:999px}h1,h2,.marca-txt b,.kpi b,.heroe h1,.login-arte h2,.barra-titulo,.placa b{font-family:Montserrat,system-ui,sans-serif}h1,.heroe h1,.login-arte h2{font-weight:800}.lateral nav{display:grid;gap:.2rem;flex:1;align-content:start}.lateral nav a{display:flex;align-items:center;gap:.7rem;padding:.6rem .7rem;border-radius:10px;color:#bcd3e6;text-decoration:none;font-weight:600;transition:background .15s,color .15s}.lateral nav a:hover{background:#ffffff14;color:#fff}.lateral nav a.activo{background:#22b8d433;color:#fff;box-shadow:inset 3px 0 #22b8d4}.lateral-pie{display:grid;gap:.6rem;border-top:1px solid rgba(255,255,255,.12);padding-top:.8rem}.quien{display:flex;align-items:center;gap:.6rem;line-height:1.2;min-width:0}.quien span:last-child{display:grid;min-width:0}.quien b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quien small{opacity:.7}.avatar{flex:none;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#22b8d4;color:#07142b;font-weight:800}.lateral-pie button.sec{background:#ffffff0f;color:#e1f2f8;border-color:#ffffff29}.contenido{min-width:0;display:flex;flex-direction:column;min-height:100vh}.barra{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:1rem;padding:.7rem 1.4rem;background:color-mix(in srgb,var(--fondo) 86%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--borde)}.barra-marca{display:none;color:var(--texto);text-decoration:none}.barra-titulo{margin:0;font-size:1.2rem;flex:1}.barra-acciones{display:flex;align-items:center;gap:.5rem}.vivo{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .7rem;border-radius:999px;font-size:.82rem;font-weight:700;background:var(--superficie);border:1px solid var(--borde)}.vivo i,.conexion i,.chip-punto{width:8px;height:8px;border-radius:50%;background:currentColor;flex:none}.vivo.ok{color:var(--ok)}.vivo.ok i{background:var(--verde);animation:latir 1.6s infinite}.vivo.mal{color:var(--mal)}.solo-movil{display:none!important}main{width:100%;max-width:1320px;margin:0 auto;padding:1.2rem 1.4rem 1rem;display:grid;gap:1.1rem;align-content:start;flex:1}.pie{padding:.8rem 1.4rem 1.2rem;color:var(--tenue);font-size:.8rem;text-align:center}.inferior{display:none}.punto{display:inline-block;width:10px;height:10px;border-radius:50%}.punto.ok{background:var(--verde)}.punto.mal{background:var(--rojo)}.punto.late{animation:latir 1.6s infinite}@keyframes latir{0%{box-shadow:0 0 #22c55e8c}70%{box-shadow:0 0 0 9px #22c55e00}to{box-shadow:0 0 #22c55e00}}.tarjeta{display:block;background:var(--superficie);border:1px solid var(--borde);border-radius:16px;padding:1.1rem;color:inherit;text-decoration:none;box-shadow:var(--sombra);overflow-x:auto}.tarjeta.sin-relleno{padding:0}.tarjeta-cab{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.75rem}.tarjeta-cab h2{margin:0;display:flex;align-items:center;gap:.5rem}.chip{display:inline-flex;align-items:center;gap:.35rem;padding:.15rem .6rem;border-radius:999px;font-size:.8rem;font-weight:700;letter-spacing:.01em;white-space:nowrap}.chip-g{font-size:1rem;padding:.3rem .85rem}.chip.ok{background:var(--ok-f);color:var(--ok)}.chip.info{background:var(--info-f);color:var(--info)}.chip.mov{background:var(--mov-f);color:var(--mov)}.chip.mal{background:var(--mal-f);color:var(--mal)}.chip.aviso{background:var(--aviso-f);color:var(--aviso)}.chip.nulo{background:var(--nulo-f);color:var(--nulo)}.chip.mov .chip-punto,.chip.mal .chip-punto{animation:parpadeo 1s infinite}@keyframes parpadeo{50%{opacity:.25}}.chips{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.5rem}.acciones{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem;align-items:center}.segmento{display:inline-flex;background:var(--superficie);border:1px solid var(--borde);border-radius:12px;padding:3px;gap:2px;flex-wrap:wrap}.segmento button{background:transparent;color:var(--tenue);padding:.35rem .7rem;border-radius:9px;font-size:.88rem}.segmento button.activa{background:var(--primario);color:#fff}.segmento button:hover{filter:none;color:var(--texto)}.segmento button.activa:hover{color:#fff}.herramientas{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}.buscador{flex:1 1 220px;display:flex;align-items:center;gap:.5rem;margin:0;padding:0 .7rem;border:1px solid var(--borde);border-radius:12px;background:var(--superficie);color:var(--tenue)}.buscador input{border:0;background:transparent;padding:.55rem 0;outline:none}.aviso-flotante{position:fixed;left:50%;bottom:5.2rem;transform:translate(-50%);z-index:30;margin:0;padding:.7rem 1.1rem;border-radius:12px;background:#07142b;color:#fff;box-shadow:var(--sombra)}.aviso-linea{padding:.5rem .8rem;border-radius:10px;background:var(--primario-suave)}.migas{margin:0}.migas a{text-decoration:none;font-weight:600}.titulo-pagina{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:.8rem}.titulo-pagina .acciones{margin:0}.codigo{background:var(--superficie-2);border:1px solid var(--borde);border-radius:10px;padding:.7rem;overflow:auto;font-size:.82rem;max-height:280px}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{text-align:left;padding:.55rem .7rem;border-bottom:1px solid var(--borde);vertical-align:middle}th{color:var(--tenue);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;background:var(--superficie-2);position:sticky;top:0}tbody tr:last-child td{border-bottom:0}tr.inactivo{opacity:.5}.tabla-registros tbody tr{cursor:pointer}.tabla-registros tbody tr:hover,.tabla-puertas tbody tr:hover{background:var(--superficie-2)}.fila-critica td:first-child,.fila-falla td:first-child{box-shadow:inset 3px 0 0 var(--rojo)}.fila-leve td:first-child{box-shadow:inset 3px 0 0 var(--ambar)}.filtros{display:flex;flex-wrap:wrap;gap:.7rem;align-items:end}.filtros label{margin:0;flex:1 1 150px;font-size:.82rem;color:var(--tenue)}.filtros label.crece{flex:2 1 240px}.heroe{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.2rem;padding:1.2rem 1.4rem;border-radius:20px;color:#fff;box-shadow:var(--sombra);background:linear-gradient(120deg,#15803d,#0f766e)}.heroe.mal{background:linear-gradient(120deg,#b91c1c,#9f1239)}.heroe.aviso{background:linear-gradient(120deg,#b45309,#92400e)}.heroe h1{font-size:clamp(1.3rem,2.4vw,1.9rem);margin:0}.heroe p{margin:.2rem 0 0;opacity:.92}.heroe>div:nth-child(2){flex:1 1 260px}.heroe-pulso{flex:none;width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:#ffffff2e;animation:halo 2.2s infinite}@keyframes halo{0%{box-shadow:0 0 #ffffff73}80%,to{box-shadow:0 0 0 18px #fff0}}.heroe-vivo{display:grid;justify-items:end;grid-template-columns:auto auto;gap:0 .45rem;align-items:center;background:#00000029;padding:.5rem .8rem;border-radius:12px}.heroe-vivo small{grid-column:1 / -1;font-variant-numeric:tabular-nums;opacity:.9;font-size:1rem}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(178px,1fr));gap:.8rem}.kpi{display:flex;align-items:center;gap:.8rem;background:var(--superficie);border:1px solid var(--borde);border-radius:16px;padding:.85rem 1rem;box-shadow:var(--sombra);min-width:0}.kpi-ic{flex:none;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--primario-suave);color:var(--primario)}.kpi>div{display:grid;min-width:0}.kpi b{font-size:1.55rem;line-height:1.15;font-variant-numeric:tabular-nums}.kpi span{color:var(--tenue);font-size:.88rem}.kpi small{color:var(--tenue);font-size:.76rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kpi.mal .kpi-ic{background:var(--mal-f);color:var(--mal)}.kpi.mal b{color:var(--mal)}.kpi.ok .kpi-ic{background:var(--ok-f);color:var(--ok)}.kpi.info .kpi-ic{background:var(--info-f);color:var(--info)}.kpi.aviso .kpi-ic{background:var(--aviso-f);color:var(--aviso)}.dos-col{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:1.1rem;align-items:stretch}.feed{list-style:none;margin:0;padding:0;max-height:250px;overflow-y:auto;font-size:.88rem}.feed li{display:grid;grid-template-columns:auto auto 1fr;gap:.5rem;padding:.32rem .2rem;border-bottom:1px dashed var(--borde);animation:entra .35s ease}.feed time{color:var(--tenue);font-variant-numeric:tabular-nums}.feed b{white-space:nowrap}.feed li.critica span{color:var(--mal);font-weight:600}.feed li.leve span{color:var(--aviso)}@keyframes entra{0%{opacity:0;transform:translateY(-6px)}}.condominio .cabecera{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.7rem}.condominio .cabecera h2{margin:0;flex:1;font-size:1.15rem}.rejilla{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:.9rem}.puerta-t{display:grid;gap:.7rem;position:relative;transition:transform .15s,border-color .15s,box-shadow .15s;overflow:hidden}.puerta-t:hover{transform:translateY(-2px);border-color:var(--primario-2)}.puerta-t.falla{border-color:var(--rojo);box-shadow:0 0 0 3px color-mix(in srgb,var(--rojo) 18%,transparent),var(--sombra)}.puerta-t header{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.puerta-t h3{margin:0;font-size:1.05rem}.puerta-t footer{display:flex;flex-wrap:wrap;gap:.4rem}.puerta-t footer>*{flex:1 1 auto;padding:.45rem .6rem;font-size:.86rem}.conexion{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;font-weight:700;white-space:nowrap}.conexion.ok{color:var(--ok)}.conexion.ok i{background:var(--verde)}.conexion.mal{color:var(--mal)}button.pa-boton{background:var(--superficie-2);border:1px solid var(--borde);border-radius:14px;padding:.4rem;width:100%}button.pa-boton:hover{filter:none;border-color:var(--primario-2)}.puerta-estado{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;justify-content:space-between}.datos-puerta{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin:0}.datos-puerta div{background:var(--superficie-2);border-radius:12px;padding:.5rem .65rem;min-width:0}.datos-puerta dt{color:var(--tenue);font-size:.74rem;text-transform:uppercase;letter-spacing:.04em}.datos-puerta dd{margin:.1rem 0 0;font-weight:700;min-height:1.6rem;display:flex;align-items:center;gap:.3rem;flex-wrap:wrap}.datos-puerta dd.num{font-size:1.35rem;line-height:1.2}.ranking{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}.ranking li{display:grid;grid-template-columns:minmax(120px,1.2fr) 2fr auto;gap:.7rem;align-items:center}.ranking a{display:grid;text-decoration:none;color:inherit;line-height:1.2}.ranking small{color:var(--tenue)}.sistema{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}.sistema .parametros{flex:1 1 260px}.pa{display:block;width:100%;height:auto;max-height:150px}.pa-p{max-height:80px}.pa-g{max-height:210px;max-width:300px}.pa-muro{fill:var(--pa-muro)}.pa-viga{fill:var(--pa-viga)}.pa-fondo{fill:var(--pa-interior)}.pa-marco{fill:none;stroke:var(--pa-viga);stroke-width:3}.pa-auto path{fill:#22b8d4}.pa-auto .pa-luna{fill:#0a1a33;opacity:.75}.pa-faro{fill:#fde68a}.pa-rueda{fill:#050b16}.pa-panel{fill:var(--pa-panel)}.pa-liston{fill:var(--pa-liston)}.pa-tirador{fill:var(--pa-viga)}.pa-hoja{transform:translateY(0);transition:transform .9s cubic-bezier(.3,.7,.3,1)}.pa.ABIERTA .pa-hoja{transform:translateY(-84px)}.pa.ABRIENDO .pa-hoja{transform:translateY(-84px);transition:transform 5.5s linear}.pa.CERRANDO .pa-hoja{transform:translateY(0);transition:transform 5.5s linear}.pa.TRABADA .pa-hoja{animation:trabada .45s infinite alternate ease-in-out}@keyframes trabada{0%{transform:translateY(-34px)}to{transform:translateY(-40px)}}.pa-luz{fill:#9ca3af;stroke:#fff;stroke-width:2}.pa.CERRADA .pa-luz,.pa.REPOSO .pa-luz{fill:var(--verde)}.pa.ABIERTA .pa-luz{fill:var(--azul)}.pa.ABRIENDO .pa-luz,.pa.CERRANDO .pa-luz{fill:var(--ambar);animation:parpadeo .8s infinite}.pa.TRABADA .pa-luz{fill:var(--rojo);animation:parpadeo .5s infinite}.pa-flechas{fill:none;stroke:#fff;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;opacity:0;transform-origin:100px 24px}.pa.ABRIENDO .pa-flechas{opacity:1;animation:sube 1s infinite}.pa.CERRANDO .pa-flechas{opacity:1;transform:rotate(180deg);animation:parpadeo 1s infinite}@keyframes sube{0%{transform:translateY(3px);opacity:.3}to{transform:translateY(-3px);opacity:1}}.pa.DESCONOCIDO .pa-panel{fill:var(--nulo-f)}.pa.DESCONOCIDO .pa-liston{fill:var(--borde)}.pa-duda{fill:var(--tenue);font-size:44px;font-weight:800}.pa.TRABADA .pa-marco{stroke:var(--rojo)}.bat{display:inline-flex;align-items:center;gap:.4rem;font-variant-numeric:tabular-nums}.bat-svg{width:34px;height:16px;flex:none}.bat-caja{fill:none;stroke:currentColor;stroke-width:1.6}.bat-polo,.bat-carga{fill:currentColor}.bat.ok{color:var(--ok)}.bat.aviso{color:var(--aviso)}.bat.mal{color:var(--mal)}.bat.mal .bat-carga{animation:parpadeo 1s infinite}.bat.nulo{color:var(--tenue);font-weight:500;font-size:.88rem}.bat b{color:var(--texto)}.placa{display:inline-grid;justify-items:center;background:#fff;color:#111;border:2px solid #111;border-radius:6px;padding:0 .5rem .1rem;line-height:1.05;box-shadow:0 1px #00000040;vertical-align:middle}.placa small{font-size:.5rem;font-weight:800;letter-spacing:.28em;color:#b91c1c;margin-right:-.28em}.placa b{font:800 1.05rem/1.1 Consolas,Roboto Mono,ui-monospace,monospace;letter-spacing:.06em}.placa b,.placa small{white-space:nowrap}.placa-p b{font-size:.9rem}.placa-p{padding:0 .35rem .05rem}.placa-g b{font-size:1.5rem}.barras-info{display:flex;flex-wrap:wrap;gap:.3rem 1rem;align-items:center;min-height:1.6rem;font-size:.86rem;margin-bottom:.4rem}.barras-info span{display:inline-flex;align-items:center;gap:.35rem}.barras-info i{width:10px;height:10px;border-radius:3px}.ser-a{background:var(--primario-2)}.ser-b{background:#22b8d4}.barras-zona{display:flex;align-items:stretch;gap:3px;border-bottom:1px solid var(--borde);padding-bottom:1.3rem;position:relative}button.barra-col{flex:1 1 0;min-width:0;padding:0;background:transparent;border:0;border-radius:8px 8px 0 0;display:flex;flex-direction:column;justify-content:flex-end;position:relative;color:var(--tenue)}button.barra-col:hover,button.barra-col.sel{filter:none;background:var(--primario-suave)}.barra-par{flex:1;display:flex;align-items:flex-end;justify-content:center;gap:2px;width:100%}.barra-par i{flex:1 1 0;max-width:22px;min-height:2px;border-radius:5px 5px 0 0;transition:height .5s cubic-bezier(.3,.7,.3,1)}.barra-col small{position:absolute;top:100%;left:50%;transform:translate(-50%);font-size:.68rem;font-weight:500;white-space:nowrap;padding-top:3px}.grafico{width:100%;height:auto}.grafico .linea{fill:none;stroke:var(--primario-2);stroke-width:2.5;stroke-linejoin:round}.grafico .area{fill:var(--primario-2);opacity:.12}.grafico .dato{fill:var(--primario-2)}.grafico .umbral{stroke:var(--rojo);stroke-dasharray:6 4}.grafico .eje{fill:var(--tenue);font-size:11px}.grafico .rejilla-g{stroke:var(--borde)}.anillo{flex:none}.anillo-base{fill:none;stroke:var(--borde);stroke-width:9}.anillo-valor{fill:none;stroke-width:9;stroke-linecap:round;transition:stroke-dasharray .6s}.anillo.ok .anillo-valor{stroke:var(--verde)}.anillo.aviso .anillo-valor{stroke:var(--ambar)}.anillo.mal .anillo-valor{stroke:var(--rojo)}.anillo-num{fill:var(--texto);font-size:26px;font-weight:800}.anillo-txt{fill:var(--tenue);font-size:9px}.salud{display:flex;align-items:center;gap:.8rem;margin:.4rem 0 .8rem}.salud-valor{font-size:1.1rem;padding:.3rem .9rem}.salud-barra{flex:1;height:.6rem;border-radius:999px;background:var(--borde);overflow:hidden}.salud-barra i{display:block;height:100%;border-radius:999px;transition:width .4s}.salud-barra i.ok{background:var(--verde)}.salud-barra i.aviso{background:var(--ambar)}.salud-barra i.mal{background:var(--rojo)}.velo{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;padding:1rem;background:#040c1c99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:aparece .2s}.ventana{width:min(560px,100%);max-height:min(92vh,900px);display:flex;flex-direction:column;background:var(--superficie);border:1px solid var(--borde);border-radius:20px;box-shadow:0 30px 80px #0006;animation:sube-v .25s cubic-bezier(.3,.7,.3,1)}.ventana.ancha{width:min(820px,100%)}.ventana>header{display:flex;justify-content:space-between;align-items:start;gap:1rem;padding:1rem 1.2rem .8rem;border-bottom:1px solid var(--borde)}.ventana>header h2{margin:0;font-size:1.2rem}.ventana>header p{margin:0}.ventana-cuerpo{padding:1rem 1.2rem 1.2rem;overflow-y:auto;display:grid;gap:.9rem}.ventana-pie{margin:0}@keyframes aparece{0%{opacity:0}}@keyframes sube-v{0%{opacity:0;transform:translateY(16px) scale(.98)}}.pestanas{display:flex;gap:.2rem;border-bottom:1px solid var(--borde);overflow-x:auto}.pestanas button{background:transparent;color:var(--tenue);border-radius:10px 10px 0 0;border:0;border-bottom:3px solid transparent;padding:.55rem .85rem;white-space:nowrap}.pestanas button:hover{filter:none;color:var(--texto)}.pestanas button.activa{color:var(--primario);border-bottom-color:var(--primario)}.pestanas i{font-style:normal;font-size:.72rem;background:var(--primario-suave);color:var(--primario);border-radius:999px;padding:0 .4rem}.registro-cab{display:grid;grid-template-columns:minmax(150px,240px) 1fr;gap:1rem;align-items:center}.registro-datos{display:grid;gap:.4rem}.registro-datos>.chip{justify-self:start}.lista-vehiculos,.lista-mov{list-style:none;margin:0;padding:0;display:grid;gap:.1rem}.lista-vehiculos li,.lista-mov li{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem;padding:.5rem .2rem;border-bottom:1px solid var(--borde)}.lista-vehiculos time,.lista-mov time{margin-left:auto;color:var(--tenue);font-variant-numeric:tabular-nums}.mov-ic{width:28px;height:28px;border-radius:8px;display:grid;place-items:center}.mov-ic.apertura{background:var(--info-f);color:var(--info)}.mov-ic.cierre{background:var(--ok-f);color:var(--ok)}.encabezado-puerta{display:grid;grid-template-columns:minmax(180px,280px) 1fr auto;gap:1.2rem;align-items:center}.encabezado-info{display:grid;gap:.5rem;min-width:0}.encabezado-info .datos-puerta{grid-template-columns:repeat(4,minmax(0,1fr))}.alerta{border-color:var(--rojo)}.eventos{list-style:none;margin:0;padding:0;max-height:460px;overflow-y:auto}.eventos li{display:grid;grid-template-columns:150px 1fr;gap:.5rem;padding:.38rem 0;border-bottom:1px solid var(--borde);font-size:.9rem}.eventos li time{color:var(--tenue);font-variant-numeric:tabular-nums}.eventos li.critica span{color:var(--mal);font-weight:600}.eventos li.leve span{color:var(--aviso)}.parametros{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:.5rem;margin:0}.parametros div{background:var(--superficie-2);border-radius:12px;padding:.45rem .65rem}.parametros dt{color:var(--tenue);font-size:.78rem}.parametros dd{margin:0;font-weight:700}.formulario{max-width:520px}td.botones{white-space:nowrap}.en-linea{display:flex;flex-wrap:wrap;gap:.5rem;margin:.5rem 0 1rem}.en-linea input{flex:1 1 180px;width:auto}.editar{background:var(--superficie-2);border-radius:12px;padding:.75rem;margin:.5rem 0}.editar .parametros label{margin:0;font-size:.85rem}.token{background:var(--aviso-f);color:var(--texto);border-radius:12px;padding:.75rem;margin-top:.75rem}.token code{display:block;word-break:break-all;background:var(--superficie);padding:.5rem;border-radius:8px;margin:.5rem 0}.vista-celular{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2rem;align-items:start}.telefono{width:390px;height:800px;border:12px solid #111827;border-radius:44px;overflow:hidden;background:#000;box-shadow:0 20px 40px #00000040}.telefono iframe{width:100%;height:100%;border:0;background:var(--fondo)}.login{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}.login-arte{position:relative;overflow:hidden;display:grid;align-content:center;gap:1.5rem;padding:3rem clamp(1.5rem,5vw,4rem);color:#fff;background:radial-gradient(900px 500px at 15% 10%,#1478A8 0%,transparent 60%),linear-gradient(160deg,#0e3a6e,#07142b 70%)}.login-arte h2{font-size:clamp(1.6rem,3vw,2.5rem);line-height:1.15;margin:1rem 0 .6rem;letter-spacing:-.02em}.login-arte p{max-width:46ch;opacity:.88;font-size:1.05rem}.login-arte ul{list-style:none;padding:0;margin:1rem 0 0;display:grid;gap:.5rem}.login-arte li{display:flex;align-items:center;gap:.6rem;opacity:.95}.login-puerta{max-width:300px;padding:1rem;border-radius:20px;background:#ffffff14;border:1px solid rgba(255,255,255,.15)}.login-puerta .pa{--pa-muro: #1E4A78;--pa-viga: #22B8D4;--pa-panel: #E1F2F8;--pa-liston: #9FD6E6;--pa-interior: #040B18}.login-form{display:grid;align-content:center;justify-items:center;gap:1rem;padding:2rem 1rem}.login-form .tarjeta{width:min(400px,100%);text-align:center;padding:1.6rem}.login-form h1{margin-top:.5rem}.login label{text-align:left}.login-form form button:not(.ver-clave){width:100%;padding:.7rem}.descargar{display:grid;gap:.6rem}.descargar h2{margin:0}.descargar .boton{display:flex}.campo-clave{position:relative;display:block}.campo-clave input{padding-right:5.5rem}.login .ver-clave{position:absolute;right:.3rem;top:50%;transform:translateY(-50%);width:auto;padding:.3rem .6rem;font-size:.8rem;background:transparent;color:var(--primario);border-radius:8px}@media(max-width:1100px){.marco{grid-template-columns:72px minmax(0,1fr)}.lateral{padding:1rem .6rem;align-items:center}.lateral .marca-txt,.lateral nav a span,.lateral-pie .quien span:last-child,.lateral-pie button span{display:none}.lateral .logo-horizontal,.lateral .producto{display:none}.lateral .logo-compacto{display:block}.marca-lateral{justify-items:center}.lateral nav a{justify-content:center;padding:.7rem}.lateral-pie{justify-items:center}.dos-col{grid-template-columns:1fr}.encabezado-puerta{grid-template-columns:minmax(150px,220px) 1fr}.encabezado-salud{display:none}.encabezado-info .datos-puerta{grid-template-columns:1fr 1fr}}@media(max-width:760px){.marco{display:block}.lateral{display:none}.barra{padding:.55rem .9rem}.barra-marca{display:inline-flex}.barra-titulo{font-size:1rem;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--tenue);font-weight:600}.vivo{padding:.3rem .5rem;font-size:0;gap:0}.solo-escritorio{display:none!important}.solo-movil{display:inline-flex!important}main{padding:.9rem .9rem 5.5rem;gap:.9rem}.pie{display:none}.inferior{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;justify-content:space-around;padding:.3rem .3rem calc(.3rem + env(safe-area-inset-bottom));background:var(--superficie);border-top:1px solid var(--borde);box-shadow:0 -6px 20px #00000014}.inferior a{flex:1;display:grid;justify-items:center;gap:.1rem;padding:.35rem .2rem;border-radius:10px;color:var(--tenue);text-decoration:none;font-size:.66rem;font-weight:600;min-width:0}.inferior a span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inferior a.activo{color:var(--primario);background:var(--primario-suave)}.heroe{padding:1rem;border-radius:16px}.heroe-pulso{width:48px;height:48px}.heroe-vivo{justify-items:start}.kpis{grid-template-columns:1fr 1fr;gap:.6rem}.kpi{padding:.7rem;gap:.6rem}.kpi-ic{width:38px;height:38px}.kpi b{font-size:1.3rem}.rejilla{grid-template-columns:1fr}.condominio .cabecera h2{flex:1 1 100%}.eventos li,.feed li{grid-template-columns:1fr;gap:0}.feed li b{display:none}.registro-cab,.encabezado-puerta{grid-template-columns:1fr;justify-items:center}.registro-datos,.encabezado-info{width:100%}.velo{padding:0;place-items:end center}.ventana,.ventana.ancha{width:100%;max-height:94vh;border-radius:20px 20px 0 0}.login{grid-template-columns:1fr}.login-arte{padding:1.5rem 1.2rem;gap:1rem}.login-arte ul,.login-puerta{display:none}.login-arte h2{font-size:1.4rem;margin:.5rem 0 .2rem}.login-arte p{font-size:.95rem}.vista-celular{grid-template-columns:1fr}.telefono{width:100%;max-width:390px;height:720px}th{position:static}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.login-form .tarjeta .logo{margin:0 auto .4rem}@media(max-width:760px){.login-arte .logo-empresa{width:160px}.login-form .tarjeta .logo{width:110px}.barra-titulo{display:none}.barra-acciones{margin-left:auto}}.chips.sin-margen{margin:0;align-items:center}.chip.chico{font-size:.72rem;padding:.1rem .5rem;gap:.25rem}.salud-fila{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.55rem}.salud-aviso{margin:.35rem 0 0;font-size:.8rem;color:var(--aviso);font-weight:600}.mini-puntos{display:inline-flex;gap:3px}.mini-puntos i{width:9px;height:9px;border-radius:50%;background:var(--borde)}.mini-puntos i.ok{background:var(--verde)}.mini-puntos i.aviso{background:var(--ambar)}.mini-puntos i.mal{background:var(--rojo)}.mini-puntos i.nulo{background:var(--borde);box-shadow:inset 0 0 0 1.5px var(--tenue)}.diag-centro h2 .icono{color:var(--cian)}.diag-lista{list-style:none;margin:0 0 .6rem;padding:0;display:grid;gap:.5rem}.diag-lista li{display:grid;grid-template-columns:minmax(130px,1fr) minmax(0,2.2fr) auto;gap:.8rem;align-items:center;padding:.6rem .7rem;border-radius:12px;background:var(--superficie-2);border-left:4px solid var(--borde)}.diag-lista li.ok{border-left-color:var(--verde)}.diag-lista li.aviso{border-left-color:var(--ambar)}.diag-lista li.mal{border-left-color:var(--rojo)}.diag-lista li.nulo{border-left-color:var(--tenue)}.diag-nombre{display:grid;text-decoration:none;color:inherit;line-height:1.25}.diag-nombre small{color:var(--tenue)}.diag-medio{display:grid;gap:.3rem;min-width:0}.diag-resumen{color:var(--tenue);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.diag-der{display:grid;justify-items:end;gap:.35rem}.diag{display:grid;gap:1.1rem}.diag-cab{display:flex;flex-wrap:wrap;align-items:center;gap:1.2rem;position:relative;overflow:hidden}.diag-cab:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:var(--degradado)}.diag-cab.aviso:before{background:var(--ambar)}.diag-cab.mal:before{background:var(--rojo)}.diag-cab>div{flex:1 1 260px;display:grid;gap:.35rem;justify-items:start}.diag-frase{margin:.2rem 0 0;font-size:1.05rem;font-weight:600}.diag-avisos{list-style:none;margin:.4rem 0 0;padding:0;display:grid;gap:.45rem}.diag-avisos li{display:grid;gap:.1rem}.diag-avisos b{color:var(--mal)}.comp-rejilla{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.9rem}.comp-rejilla>.comp{grid-column:span 2}.comp-rejilla>.comp:nth-child(n+4){grid-column:span 3}@media(max-width:1100px){.comp-rejilla{grid-template-columns:1fr 1fr}.comp-rejilla>.comp,.comp-rejilla>.comp:nth-child(n+4){grid-column:auto}.comp-rejilla>.comp:last-child{grid-column:1 / -1}}.comp{background:var(--superficie);border:1px solid var(--borde);border-radius:16px;padding:1rem;box-shadow:var(--sombra);display:grid;gap:.55rem;align-content:start;border-top:4px solid var(--borde)}.comp.ok{border-top-color:var(--verde)}.comp.aviso{border-top-color:var(--ambar)}.comp.mal{border-top-color:var(--rojo)}.comp header{display:flex;align-items:center;gap:.6rem}.comp h3{margin:0;font-size:1rem;flex:1}.comp-ic{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--primario-suave);color:var(--primario-2);flex:none}.comp.aviso .comp-ic{background:var(--aviso-f);color:var(--aviso)}.comp.mal .comp-ic{background:var(--mal-f);color:var(--mal)}.comp.ok .comp-ic{background:var(--ok-f);color:var(--ok)}.comp-num{font-family:Montserrat,Inter,sans-serif;font-size:1.6rem;font-weight:800;line-height:1}.comp.ok .comp-num{color:var(--ok)}.comp.aviso .comp-num{color:var(--aviso)}.comp.mal .comp-num{color:var(--mal)}.comp.nulo .comp-num{color:var(--tenue)}.comp p{margin:0;font-size:.9rem}.comp>.chip{justify-self:start}.comp dl{margin:.2rem 0 0;display:grid;gap:.25rem;font-size:.82rem}.comp dl div{display:flex;justify-content:space-between;gap:.6rem;border-top:1px dashed var(--borde);padding-top:.25rem}.comp dt{color:var(--tenue)}.comp dd{margin:0;font-weight:600;text-align:right;font-variant-numeric:tabular-nums}.comp-uso{display:grid;gap:.25rem}.mant-form{display:grid;grid-template-columns:180px 1fr auto;gap:.5rem;margin-top:.8rem}.ventana .diag{gap:.8rem;margin-top:.6rem}.ventana .comp-rejilla{grid-template-columns:1fr 1fr}.ventana .comp-rejilla>.comp,.ventana .comp-rejilla>.comp:nth-child(n+4){grid-column:auto}.ventana .comp-rejilla>.comp:last-child{grid-column:1 / -1}@media(max-width:760px){.diag-lista li{grid-template-columns:1fr auto}.diag-medio{grid-column:1 / -1;grid-row:2}.diag-cab{justify-content:center;text-align:left}.mant-form,.comp-rejilla,.ventana .comp-rejilla{grid-template-columns:1fr}.comp-rejilla>.comp:last-child{grid-column:auto}}.pila{display:grid;gap:1.1rem}.sistema{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.8rem;padding:.9rem 1rem;border-radius:14px;border:1px solid var(--borde);background:var(--superficie-2);color:inherit;text-decoration:none;transition:transform .15s,border-color .15s}.sistema:hover{transform:translateY(-2px);border-color:var(--primario)}.sistema-icono{display:grid;place-items:center;width:46px;height:46px;border-radius:12px;background:var(--primario-suave);color:var(--primario);flex:none}.sistema-icono.chico{width:34px;height:34px;border-radius:10px}.sistema-txt{display:grid;min-width:0}.sistema-txt small{color:var(--tenue)}.sistema-datos{display:grid;justify-items:end;gap:.15rem}.sistema-datos .num{font-size:1.4rem;font-weight:800;line-height:1}.sistema-datos small{color:var(--tenue);font-size:.75rem}.equipo{display:grid;gap:.55rem;text-decoration:none;transition:transform .15s,border-color .15s}a.equipo:hover{transform:translateY(-2px);border-color:var(--primario)}.equipo-cab{display:flex;gap:.65rem;align-items:center}.equipo-cab>span:last-child{display:grid;min-width:0}.equipo .acciones{margin:0}.datos-equipo{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.5rem;margin:.4rem 0 .8rem}.datos-equipo div{background:var(--superficie-2);border-radius:12px;padding:.45rem .65rem}.datos-equipo dt{color:var(--tenue);font-size:.78rem}.datos-equipo dd{margin:0;font-weight:700;overflow-wrap:anywhere}.variables{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.7rem}.variable{display:grid;gap:.25rem;padding:.7rem .8rem;border-radius:12px;background:var(--superficie-2);border:1px solid transparent}.variable b{font-size:1.5rem}.variable b span{font-size:.9rem;color:var(--tenue);font-weight:600}.variable.fuera{border-color:var(--rojo)}.variable.fuera b{color:var(--mal)}.barra-var{display:block;height:6px;border-radius:99px;background:var(--borde);overflow:hidden}.barra-var i{display:block;height:100%;background:linear-gradient(90deg,#0b2a5b,#22b8d4);border-radius:99px}.variable.fuera .barra-var i{background:var(--rojo)}.form-orden{display:grid;gap:.7rem}.form-orden label{display:grid;gap:.3rem}.form-orden label.check{display:flex;align-items:center;gap:.55rem}.form-orden label.check input{width:auto;margin:0}.form-orden .acciones{margin:.3rem 0 0}label.con-error input,label.con-error select,label.con-error textarea{border-color:var(--rojo)}label small.error{font-size:.78rem}.en-linea.sin-margen{margin:0}.en-linea select{width:auto}.lista-sistemas{list-style:none;margin:0;padding:0;display:grid;gap:.35rem}.lista-sistemas a{display:grid;grid-template-columns:auto 1fr auto auto;gap:.6rem;align-items:center;padding:.45rem .55rem;border-radius:10px;color:inherit;text-decoration:none}.lista-sistemas a:hover{background:var(--superficie-2)}.lista-sistemas a>span:nth-child(2){display:grid}.lista-sistemas .num{font-weight:800}.admin-sistema{border:1px solid var(--borde);border-radius:12px;padding:.7rem .8rem;margin-bottom:.7rem}.admin-sistema-cab{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin-bottom:.4rem}.admin-sistema-cab .botones{margin-left:auto;display:flex;gap:.35rem;flex-wrap:wrap}button.peligro{color:var(--mal)}.tipo-equipo h3{margin:0;font-size:1rem}.tipo-equipo p{margin:.3rem 0}.tipo-equipo .chip{margin-right:.25rem}.editor-json{width:100%;font-family:ui-monospace,Consolas,monospace;font-size:.82rem;line-height:1.45;resize:vertical;min-height:280px}td.recorte{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mensaje-contacto{white-space:pre-wrap;background:var(--superficie-2);border-radius:12px;padding:.7rem .85rem;margin:0}.dos-campos{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.trampa{position:absolute!important;left:-10000px;width:1px;height:1px;overflow:hidden}.login-contacto{text-align:center;margin:.9rem 0 0;color:var(--tenue);font-size:.9rem}button.enlace{background:none;border:0;padding:0;color:var(--primario);font-weight:700;text-decoration:underline;cursor:pointer;box-shadow:none;min-height:0}@media(max-width:640px){.dos-campos{grid-template-columns:1fr}.sistema{grid-template-columns:auto 1fr}.sistema-datos{grid-column:2;display:flex;align-items:baseline;gap:.35rem}.admin-sistema-cab .botones{margin-left:0}}.form-orden textarea,.ventana textarea{font:inherit;width:100%}
