:root{--azul: #2563eb;--azul-oscuro: #1d4ed8;--fondo: #f3f4f6;--panel: #ffffff;--borde: #e5e7eb;--texto: #111827;--texto-suave: #6b7280;--rojo: #b91c1c}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--fondo);color:var(--texto);font-size:14px}code{font-family:ui-monospace,Consolas,Courier New,monospace;font-size:11px;color:var(--texto-suave)}.cargando-global{display:grid;place-items:center;height:100%;color:var(--texto-suave)}.btn{background:var(--panel);border:1px solid var(--borde);border-radius:8px;padding:7px 12px;font-size:13px;cursor:pointer;color:var(--texto);transition:background .15s,border-color .15s}.btn:hover:not(:disabled){background:#f9fafb;border-color:#d1d5db}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-suave{color:var(--texto-suave)}.btn-primario{background:var(--azul);border-color:var(--azul);color:#fff;font-weight:600}.btn-primario:hover:not(:disabled){background:var(--azul-oscuro);border-color:var(--azul-oscuro)}.btn-destacado{background:#f5f3ff;border-color:#c4b5fd;color:#6d28d9;font-weight:600}.ancho{width:100%}.app{display:flex;flex-direction:column;height:100%}.cabecera{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 16px;background:var(--panel);border-bottom:1px solid var(--borde);flex:none}.marca{display:flex;align-items:baseline;gap:8px}.marca .gota{font-size:18px}.marca strong{font-size:16px}.marca .sub{color:var(--texto-suave);font-size:12px}.acciones{display:flex;align-items:center;gap:10px}.usuario{background:#eff6ff;color:var(--azul-oscuro);border:1px solid #dbeafe;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600}.cuerpo{display:flex;flex:1;min-height:0}.navegador{width:360px;min-width:300px;flex:none;background:var(--panel);border-right:1px solid var(--borde);overflow-y:auto;padding:12px}.nav-tit{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--texto-suave);margin:14px 0 6px}.nav-tit:first-child{margin-top:0}.nav-cuenta{background:var(--fondo);border-radius:999px;padding:1px 7px;font-weight:600}.buscador,.select-mag{width:100%;padding:7px 9px;border:1px solid var(--borde);border-radius:8px;font-size:13px;background:#fff;margin-bottom:6px}.buscador:focus,.select-mag:focus{outline:2px solid #bfdbfe;border-color:var(--azul)}.filtros{display:flex;flex-direction:column}.lista-vistas{display:flex;flex-direction:column;gap:2px;max-height:190px;overflow-y:auto}.vista{display:flex;align-items:baseline;gap:8px;text-align:left;border:1px solid transparent;background:transparent;border-radius:7px;padding:5px 8px;cursor:pointer;font-size:13px}.vista:hover{background:var(--fondo)}.vista.activa{background:#eff6ff;border-color:#bfdbfe;color:var(--azul-oscuro);font-weight:600}.vista-cod{font-family:ui-monospace,Consolas,monospace;font-size:11px;font-weight:700;min-width:92px}.vista-desc{color:var(--texto-suave);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vista.activa .vista-desc{color:#3b82f6}.lista-inst,.lista-senales{display:flex;flex-direction:column;gap:3px;max-height:30vh;overflow-y:auto;padding-right:2px}.inst{display:flex;align-items:center;gap:8px;text-align:left;border:1px solid var(--borde);background:#fff;border-radius:8px;padding:6px 8px;cursor:pointer;font-size:13px}.inst:hover{border-color:#bfdbfe;background:#f9fbff}.inst.activa{border-color:var(--azul);background:#eff6ff}.inst-cod{font-family:ui-monospace,Consolas,monospace;font-size:11px;font-weight:700;color:var(--azul-oscuro);min-width:52px}.inst-desc{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--texto)}.inst-n{background:var(--fondo);border-radius:999px;font-size:11px;padding:1px 7px;color:var(--texto-suave)}.senal{display:flex;align-items:center;gap:8px;border:1px solid var(--borde);border-left-width:3px;border-radius:8px;padding:6px 8px;cursor:pointer;background:#fff}.senal:hover{background:#f9fbff;border-color:#bfdbfe}.senal.marcada{background:#f0f9ff;border-left-color:var(--azul)}.senal input{accent-color:var(--azul)}.senal-cuerpo{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.senal-nom{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.senal-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.badge{font-style:normal;background:#f3f4f6;border:1px solid var(--borde);color:var(--texto-suave);border-radius:5px;font-size:10px;padding:0 5px;text-transform:lowercase}.badge-cat{background:#f5f3ff;border-color:#ddd6fe;color:#6d28d9}.unidad{font-size:10px;color:var(--texto-suave);background:#fffbeb;border:1px solid #fde68a;border-radius:5px;padding:0 5px}.senal-valor{font-family:ui-monospace,Consolas,monospace;font-size:12px;font-weight:600;color:var(--texto-suave)}.pista,.sin-datos{color:var(--texto-suave);font-size:12px;background:var(--fondo);border-radius:8px;padding:8px 10px;margin:4px 0}.zona-grafica{flex:1;min-width:0;overflow-y:auto;padding:14px 16px 24px;display:flex;flex-direction:column;gap:10px}.aviso{background:#fef2f2;border:1px solid #fecaca;color:var(--rojo);border-radius:8px;padding:8px 12px;font-size:13px;cursor:pointer;margin:10px 12px 0;flex:none}.aviso-suave{background:#fffbeb;border-color:#fde68a;color:#92400e;cursor:default}.barra-superior{display:flex;align-items:center;justify-content:space-between;gap:12px}.tabs{display:flex;gap:4px;background:#e5e7eb;padding:3px;border-radius:9px}.tab{border:0;background:transparent;padding:6px 14px;border-radius:7px;cursor:pointer;font-size:13px;color:var(--texto-suave)}.tab.activa{background:#fff;color:var(--texto);font-weight:600;box-shadow:0 1px 2px #00000014}.tabs-movil{display:none}.cuenta{font-size:12px;color:var(--texto-suave)}.vacio{background:var(--panel);border:1px dashed var(--borde);border-radius:12px;padding:34px;color:var(--texto-suave);text-align:center}.vacio ol{text-align:left;display:inline-block;margin-top:12px;line-height:1.9}.grafica{background:var(--panel);border:1px solid var(--borde);border-radius:12px;padding:14px 16px 18px;display:flex;flex-direction:column;gap:8px}.leyenda{display:flex;flex-wrap:wrap;gap:8px}.leyenda-item{display:flex;align-items:center;gap:7px;border:1px solid var(--borde);border-radius:999px;padding:4px 8px 4px 10px;background:#fff;font-size:12px;max-width:420px}.punto{width:10px;height:10px;border-radius:50%;flex:none;display:inline-block}.ley-nom{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ley-inst{font-family:ui-monospace,Consolas,monospace;font-size:10px;color:var(--texto-suave);background:var(--fondo);border-radius:5px;padding:1px 5px}.ley-val{font-family:ui-monospace,Consolas,monospace;color:var(--texto);font-weight:600}.quitar{border:0;background:transparent;color:#9ca3af;font-size:15px;line-height:1;cursor:pointer;padding:0 2px}.quitar:hover{color:var(--rojo)}.rango,.cargando-linea{font-size:12px;color:var(--texto-suave)}.cargando-linea{color:var(--azul-oscuro)}.tt{background:#111827f0;color:#f9fafb;border-radius:8px;padding:8px 10px;font-size:12px;min-width:190px}.tt-hora{font-weight:700;margin-bottom:5px;color:#fff}.tt-fila{display:flex;align-items:center;gap:6px;margin-top:3px}.tt-nom{flex:1;opacity:.9}.tt-val{font-family:ui-monospace,Consolas,monospace;font-weight:700}.tabla-cont{background:var(--panel);border:1px solid var(--borde);border-radius:12px;overflow:auto;max-height:calc(100vh - 210px)}.tabla{border-collapse:collapse;width:100%;font-size:12.5px}.tabla th,.tabla td{border-bottom:1px solid var(--borde);padding:5px 10px;text-align:right;white-space:nowrap}.tabla th{position:sticky;top:0;background:#f9fafb;z-index:1;text-align:right;font-size:12px;color:var(--texto)}.tabla th .punto{margin-right:5px;vertical-align:middle}.tabla th .th-nom{font-weight:600}.tabla th em{display:block;font-style:normal;color:var(--texto-suave);font-size:10px;font-weight:400}.tabla .c-hora{text-align:left;color:var(--texto-suave);font-family:ui-monospace,Consolas,monospace;background:#fcfcfd;position:sticky;left:0}.tabla th.c-hora{z-index:2;background:#f9fafb}.tabla .num{font-family:ui-monospace,Consolas,monospace}.tabla tbody tr:hover td{background:#f9fbff}.login{display:grid;place-items:center;height:100%;background:linear-gradient(160deg,#eff6ff,#f3f4f6 60%);padding:20px}.login-caja{background:var(--panel);border:1px solid var(--borde);border-radius:16px;padding:28px 30px;width:100%;max-width:380px;box-shadow:0 10px 30px #11182714;display:flex;flex-direction:column;gap:12px}.login-logo{font-size:34px;text-align:center}.login-caja h1{margin:0;text-align:center;font-size:22px}.login-sub{margin:0 0 6px;text-align:center;color:var(--texto-suave);font-size:13px}.campo{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:600;color:var(--texto-suave)}.campo input{padding:9px 11px;border:1px solid var(--borde);border-radius:8px;font-size:14px}.campo input:focus{outline:2px solid #bfdbfe;border-color:var(--azul)}.error{background:#fef2f2;border:1px solid #fecaca;color:var(--rojo);border-radius:8px;padding:8px 10px;font-size:13px}.login-nota{font-size:11px;color:var(--texto-suave);line-height:1.5;margin:4px 0 0}.panel-alta{background:var(--panel);border-bottom:1px solid var(--borde);border-top:1px solid #ddd6fe;padding:12px 16px;flex:none;display:flex;flex-direction:column;gap:10px}.panel-alta-tit{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:14px}.alta-fila{display:flex;gap:8px;flex-wrap:wrap}.alta-mnemo{flex:1;min-width:240px;padding:9px 11px;border:1px solid var(--borde);border-radius:8px;font-family:ui-monospace,Consolas,Courier New,monospace;font-size:13px}.alta-mnemo:focus,.alta-campos input:focus{outline:2px solid #bfdbfe;border-color:var(--azul)}.alta-error{background:#fef2f2;border:1px solid #fecaca;color:var(--rojo);border-radius:8px;padding:8px 10px;font-size:13px;margin:0}.alta-resumen{border:1px solid var(--borde);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:10px;background:#fafafa}.alta-desc{margin:0;display:flex;flex-direction:column;gap:4px;font-size:13px}.alta-datos{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:6px 14px;font-size:12.5px}.alta-datos li{display:flex;gap:6px;align-items:baseline}.alta-datos span{color:var(--texto-suave)}.alta-aviso{margin:0;font-size:12.5px;color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:7px 10px}.alta-pendiente{margin:0;font-size:12.5px;color:var(--azul-oscuro)}.alta-campos{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.alta-campos label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:600;color:var(--texto-suave)}.alta-campos input{padding:8px 10px;border:1px solid var(--borde);border-radius:8px;font-size:13px;color:var(--texto);background:var(--panel)}.alta-botones{display:flex;gap:8px;flex-wrap:wrap}@media (max-width: 900px){.tabs-movil{display:flex;gap:6px;padding:8px 10px;background:var(--panel);border-bottom:1px solid var(--borde);flex:none}.tabs-movil button{flex:1;min-height:44px;border:1px solid var(--borde);background:var(--fondo);border-radius:10px;font-size:14px;font-weight:600;color:var(--texto-suave);cursor:pointer}.tabs-movil button.activa{background:var(--azul);border-color:var(--azul);color:#fff}.cuerpo{flex-direction:column;overflow:hidden}.cuerpo.en-navegar .zona-grafica,.cuerpo.en-datos .navegador{display:none}.navegador{width:100%;min-width:0;flex:1;min-height:0;border-right:0;padding:10px}.zona-grafica{flex:1;min-height:0;padding:0 10px 20px}.lista-vistas,.lista-inst,.lista-senales{max-height:none;overflow:visible}.barra-superior{position:sticky;top:0;z-index:6;background:var(--fondo);padding:10px 0 8px}.btn,.tab,.vista,.inst,.senal,.tabs-movil button{min-height:44px}.vista,.inst,.senal{padding-top:9px;padding-bottom:9px}.quitar{min-height:36px;min-width:36px}.buscador,.select-mag,.campo input,.alta-mnemo,.alta-campos input{font-size:16px;padding-top:10px;padding-bottom:10px}.tabla-cont{max-height:60vh}.tabla th,.tabla td{padding:7px 12px}}@media (max-width: 600px){.cabecera{padding:8px 10px;gap:8px}.marca .sub{display:none}.marca .gota{font-size:16px}.acciones{gap:6px}.acciones .btn{min-height:38px;padding:8px 10px;font-size:12px}.usuario{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;padding:3px 8px}.aviso{margin:8px 10px 0;font-size:12.5px}.panel-alta{padding:10px}.alta-mnemo{min-width:0;width:100%}.alta-fila .btn{width:100%}.zona-grafica{padding:0 8px 20px}.barra-superior{flex-direction:column;align-items:stretch;gap:6px}.barra-superior .tabs{align-self:center}.cuenta{text-align:center}.grafica{padding:10px;border-radius:10px}.leyenda-item{width:100%;max-width:100%}.ley-nom{white-space:normal}.vacio{padding:18px 14px;text-align:left}.tabla-cont{max-height:55vh}.login{padding:12px;background:var(--fondo)}.login-caja{padding:22px 18px;border-radius:14px;box-shadow:none}}
