/* Verificador de señales (static/js/senales.js). Usa las variables de iron.css: tema claro y oscuro solos.
   La capa usa .esc-capa (escaner.css) para el fondo y el botón Atrás del teléfono. */
.sen-capa{padding:24px}
.sen-caja{width:100%;max-width:980px;display:flex;flex-direction:column;min-height:0;background:var(--panel);border:1px solid var(--linea);border-radius:18px;box-shadow:var(--sombra);overflow:hidden;color:var(--texto);font-size:14px}
.sen-caja .ic{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
.sen-caja h2,.sen-caja h3,.sen-caja p,.sen-caja figure{margin:0}
.sen-caja :focus-visible{outline:2px solid var(--acento);outline-offset:2px}
.sen-caja .bt{height:38px;border-radius:10px}
.sen-caja .bt.ic-solo{width:38px;justify-content:center;padding:0}
.sen-caja .bt[disabled]{opacity:.5;cursor:default}
.sen-sec{border:1px solid var(--linea2);color:var(--texto)!important}

.sen-cab{display:flex;align-items:center;gap:14px;padding:18px 20px 12px}
.sen-logo{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;flex:none;background:color-mix(in srgb,var(--acento) 14%,transparent);color:var(--acento)}
.sen-logo .ic{width:22px;height:22px}
.sen-tit{flex:1;min-width:0}
.sen-tit h2{font-size:19px;font-weight:700;letter-spacing:-.2px}
.sen-tit p{color:var(--suave);font-size:13px;margin-top:2px}

.sen-pest{display:flex;gap:4px;margin:0 20px;padding:3px;border-radius:12px;background:var(--bg2);border:1px solid var(--linea);align-self:flex-start}
.sen-pest button{height:34px;padding:0 16px;border-radius:9px;font-weight:600;color:var(--suave)}
.sen-pest button.on{background:var(--panel);color:var(--texto);box-shadow:0 0 0 1px var(--linea2)}

.sen-cuerpo{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px 20px 28px;display:flex;flex-direction:column;gap:18px}
.sen-lbl{display:block;font-weight:600;margin-bottom:8px}
.sen-pegar textarea{width:100%;box-sizing:border-box;min-height:132px;resize:vertical;border-radius:12px;border:1px solid var(--linea);background:var(--bg2);color:var(--texto);padding:12px;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}
.sen-pegar textarea:focus{border-color:var(--acento);outline:0}
.sen-fila-ctl{display:flex;align-items:flex-end;gap:10px;margin-top:10px;flex-wrap:wrap}
.sen-fecha{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--suave);font-weight:600;min-width:0}
.sen-in{height:38px;box-sizing:border-box;border-radius:10px;border:1px solid var(--linea);background:var(--bg2);color:var(--texto);padding:0 10px;font-size:14px;min-width:0;width:100%}
.sen-in:focus,.sen-fecha input:focus{border-color:var(--acento);outline:0}
.sen-fecha input{height:38px;border-radius:10px;border:1px solid var(--linea);background:var(--bg2);color:var(--texto);padding:0 10px;font-size:14px;color-scheme:light dark;max-width:100%}
.sen-nota-p{color:var(--tenue);font-size:12.5px;line-height:1.5}
.sen-h{font-size:16px;font-weight:700;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin-bottom:10px!important}
.sen-h small{font-size:12.5px;font-weight:500;color:var(--suave)}
.sen-acc{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.sen-aviso{padding:10px 12px;border-radius:10px;background:var(--bg2);color:var(--suave);font-size:13px;margin-bottom:10px!important}

/* vista previa */
.sen-errores{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:6px}
.sen-errores li{padding:10px 12px;border-radius:10px;border:1px solid color-mix(in srgb,var(--rojo) 40%,transparent);background:color-mix(in srgb,var(--rojo) 7%,transparent);display:flex;flex-direction:column;gap:3px}
.sen-errores small{color:var(--suave);white-space:pre-wrap;overflow-wrap:anywhere}
.sen-tarjetas{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}
.sen-tj{border:1px solid var(--linea);border-radius:14px;padding:12px;background:var(--bg2);display:flex;flex-direction:column;gap:10px;min-width:0}
.sen-tj.mal{border-color:var(--rojo)}
.sen-tj-cab{display:flex;align-items:center;gap:8px}
.sen-merc{font-weight:700;flex:1}
.sen-lado{display:flex;border:1px solid var(--linea);border-radius:10px;overflow:hidden;flex:none}
.sen-lado button{height:36px;padding:0 10px;font-weight:600;font-size:13px;color:var(--suave);background:var(--panel)}
.sen-lado button.on[data-lado="largo"]{background:color-mix(in srgb,var(--verde) 18%,var(--panel));color:var(--verde)}
.sen-lado button.on[data-lado="corto"]{background:color-mix(in srgb,var(--rojo) 18%,var(--panel));color:var(--rojo)}
.sen-campos{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.sen-campos label{display:flex;flex-direction:column;gap:4px;font-size:11.5px;color:var(--suave);font-weight:600;min-width:0}
.sen-campos input[type="datetime-local"]{color-scheme:light dark;padding:0 6px;font-size:13px}
.sen-av-mini{margin:0;padding-left:18px;color:var(--suave);font-size:12px;display:flex;flex-direction:column;gap:2px}
.sen-orig summary{cursor:pointer;color:var(--tenue);font-size:12px}
.sen-orig pre{margin:6px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;color:var(--suave);max-height:160px;overflow:auto}

/* ficha */
.sen-ficha{display:flex;flex-direction:column;gap:14px}
.sen-nota-caja{display:flex;align-items:center;gap:14px}
.sen-nota-caja b{display:block;font-size:15px}
.sen-nota-caja small{color:var(--suave);font-size:12.5px}
.sen-nota{width:58px;height:58px;border-radius:16px;display:grid;place-items:center;font-size:30px;font-weight:800;flex:none;border:2px solid currentColor;color:var(--tenue)}
.sen-nota.mini{width:40px;height:40px;border-radius:12px;font-size:19px}
.sen-nota.n-A,.sen-nota.n-B{color:var(--verde)}
.sen-nota.n-C{color:var(--acento)}
.sen-nota.n-D,.sen-nota.n-F{color:var(--rojo)}
.sen-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.sen-kpi{padding:10px 12px;border-radius:12px;background:var(--bg2);border:1px solid var(--linea);display:flex;flex-direction:column;gap:2px;min-width:0}
.sen-kpi span{font-size:11.5px;color:var(--suave);font-weight:600}
.sen-kpi b{font-size:18px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sen-kpi small{font-size:11.5px;color:var(--tenue);overflow:hidden;text-overflow:ellipsis}
.sen-caja .pos{color:var(--verde)}
.sen-caja .neg{color:var(--rojo)}
.sen-curva{display:flex;flex-direction:column;gap:6px}
.sen-curva figcaption{font-size:12px;color:var(--suave)}
.sen-curva svg{width:100%;height:110px;border-radius:12px;background:var(--bg2);border:1px solid var(--linea)}
.sen-curva path{fill:none;stroke-width:2}
.sen-curva path.pos{stroke:var(--verde)}
.sen-curva path.neg{stroke:var(--rojo)}
.sen-curva .cero{stroke:var(--linea2);stroke-dasharray:4 4;stroke-width:1}
.sen-avisos{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.sen-avisos li{padding:10px 12px 10px 30px;border-radius:10px;background:var(--bg2);position:relative;font-size:13px;line-height:1.45}
.sen-avisos li::before{content:"";position:absolute;left:12px;top:15px;width:8px;height:8px;border-radius:50%;background:var(--tenue)}
.sen-avisos li.malo::before{background:var(--rojo)}
.sen-avisos li.medio::before{background:var(--acento)}
.sen-avisos li.bueno::before{background:var(--verde)}

/* lista de señales */
.sen-lista{display:flex;flex-direction:column;gap:6px}
.sen-f{display:flex;align-items:stretch;gap:4px;min-width:0}
.sen-f-main{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;border:1px solid var(--linea);background:var(--bg2);text-align:left;color:var(--texto)}
.sen-f-main:hover{border-color:var(--linea2)}
.sen-f-x{align-self:center}
.sen-f-lado{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;font-weight:800;font-size:12px;flex:none}
.sen-f-lado.largo{background:color-mix(in srgb,var(--verde) 16%,transparent);color:var(--verde)}
.sen-f-lado.corto{background:color-mix(in srgb,var(--rojo) 16%,transparent);color:var(--rojo)}
.sen-f-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.sen-f-txt b{font-size:14px}
.sen-f-txt small{font-size:12px;color:var(--suave);overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.sen-f-res{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex:none;text-align:right}
.sen-f-res b{font-variant-numeric:tabular-nums}
.sen-f-res small{font-size:11.5px;color:var(--tenue)}
.sen-directo{font-style:normal;font-size:10.5px;font-weight:700;margin-left:6px;padding:1px 6px;border-radius:6px;border:1px solid var(--linea2);color:var(--suave);vertical-align:1px}
.est{font-style:normal;font-size:11.5px;font-weight:700;padding:2px 7px;border-radius:6px;white-space:nowrap}
.est.bien{background:color-mix(in srgb,var(--verde) 15%,transparent);color:var(--verde)}
.est.medio{background:color-mix(in srgb,var(--acento) 15%,transparent);color:var(--acento)}
.est.mal{background:color-mix(in srgb,var(--rojo) 15%,transparent);color:var(--rojo)}
.est.neutro{background:var(--panel2);color:var(--suave)}
.est.vivo{background:color-mix(in srgb,var(--azul,#4f8cff) 15%,transparent);color:var(--azul,#4f8cff)}

/* canales */
.sen-canales{display:flex;flex-direction:column;gap:8px}
.sen-uso{font-size:12.5px;color:var(--suave)}
.sen-canal{display:flex;align-items:center;gap:12px;padding:12px;border-radius:14px;border:1px solid var(--linea);background:var(--bg2);text-align:left;color:var(--texto);width:100%}
.sen-canal:hover{border-color:var(--linea2)}
.sen-canal-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.sen-canal-t b,.sen-canal-t h3{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sen-canal-t small{font-size:12px;color:var(--suave)}
.sen-comp-on{font-style:normal;font-size:11px;color:var(--suave);border:1px solid var(--linea2);border-radius:6px;padding:1px 6px}
.sen-nuevo{display:grid;grid-template-columns:1.4fr 1fr auto;gap:8px;margin-top:6px}
.sen-canal-cab{display:flex;align-items:center;gap:6px}
.sen-add{border:1px solid var(--linea);border-radius:14px;padding:12px}
.sen-add>summary{cursor:pointer;font-weight:700;display:flex;align-items:center;gap:6px;list-style:none}
.sen-add>summary::-webkit-details-marker{display:none}
.sen-add[open]>summary{margin-bottom:12px}
.sen-add .sen-previa{margin-top:16px}
.sen-vacio{padding:18px;border:1px dashed var(--linea2);border-radius:14px;display:flex;flex-direction:column;gap:8px}
.sen-vacio p{color:var(--suave);line-height:1.5}
.sen-cargando{padding:30px;text-align:center;color:var(--suave)}
.sen-pub-cab{display:flex;flex-direction:column;gap:4px}
.sen-pub-cab small{color:var(--acento);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.4px}
.sen-pub-cab h3{font-size:22px}
.sen-pub-cab p{color:var(--suave)}
.sen-rueda{width:14px;height:14px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:sen-gira .8s linear infinite;flex:none}
@keyframes sen-gira{to{transform:rotate(360deg)}}

/* barra sobre el gráfico con la señal marcada */
#senBarra{position:absolute;left:50%;bottom:44px;transform:translateX(-50%);z-index:9;display:flex;align-items:center;gap:10px;padding:8px 8px 8px 10px;border-radius:14px;background:var(--panel);border:1px solid var(--linea2);box-shadow:var(--sombra);max-width:calc(100% - 32px);box-sizing:border-box;font-size:13px;color:var(--texto)}
#senBarra .ic{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
#senBarra .bt{height:34px}
#senBarra .bt.ic-solo{width:34px;justify-content:center;padding:0}
.sen-b-t{min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:2px 6px}
.sen-b-t small{width:100%;color:var(--suave);font-size:11.5px}
#senBarra .pos{color:var(--verde)}
#senBarra .neg{color:var(--rojo)}

@media (max-width:760px){
  .sen-capa{padding:0}
  .sen-caja{border-radius:0;border:0;max-width:none;height:100%}
  .sen-cab{padding:calc(12px + env(safe-area-inset-top)) 16px 10px}
  .sen-tit p{font-size:12.5px}
  .sen-pest{margin:0 16px;align-self:stretch}
  .sen-pest button{flex:1}
  .sen-cuerpo{padding:14px 16px calc(28px + env(safe-area-inset-bottom))}
  .sen-tarjetas{grid-template-columns:minmax(0,1fr)}
  .sen-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sen-nuevo{grid-template-columns:minmax(0,1fr)}
  .sen-fila-ctl .bt.prim{flex:1;justify-content:center}
  .sen-fecha{flex:1 1 100%}
  .sen-fecha input{width:100%;box-sizing:border-box}
  .sen-acc .bt{flex:1 1 auto;justify-content:center}
  .sen-canal-cab .bt:not(.ic-solo) span{display:none}
  .sen-canal-cab .bt:not(.ic-solo){width:38px;padding:0;justify-content:center}
  .sen-f-main{padding:10px}
  .sen-f-txt small{font-size:11.5px}
  #senBarra{bottom:64px;left:8px;right:8px;transform:none;max-width:none}
}
