/* ==========================================================================
   EL NÚCLEO OPERATIVO — simulador de convergencia
   ========================================================================== */

#operativo{ position:relative; }

.no{
  display:grid;
  grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:clamp(24px,4vw,64px);
  align-items:start;
}

/* ----------------------------------------------------------------- mando */
.no__mando{ display:flex; flex-direction:column; gap:26px; }

.no__presets{ display:flex; flex-direction:column; gap:8px; }
.no__preset{
  text-align:left; padding:13px 16px;
  border:var(--rule) solid var(--line-soft);
  border-radius:var(--r-sm);
  background:rgba(255,255,255,.015);
  transition:border-color .4s var(--ease-io), background .4s, transform .4s var(--ease-io);
}
.no__preset b{
  display:block; font-family:var(--font-head); font-size:14px;
  font-weight:500; letter-spacing:.06em; color:var(--text);
}
.no__preset span{
  display:block; margin-top:3px;
  font-size:12.6px; line-height:1.45; color:var(--text-3);
}
.no__preset:hover{ border-color:var(--line); background:rgba(41,235,244,.05); transform:translateX(3px); }
.no__preset.on{
  border-color:rgba(41,235,244,.5); background:rgba(41,235,244,.09);
}
.no__preset.on b{ color:var(--cyan-hi); }

/* --------------------------------------------------------------- sliders */
.no__sliders{ display:flex; flex-direction:column; gap:13px; }

.no__fila{
  padding:9px 12px; border-left:2px solid transparent;
  transition:border-color .4s, background .4s;
}
.no__fila.es-activo{ border-left-color:var(--acc); background:rgba(255,255,255,.025); }

.no__fila label{
  display:flex; align-items:center; gap:9px; margin-bottom:7px; cursor:pointer;
}
.no__punto{
  width:7px; height:7px; flex:none; transform:rotate(45deg);
  background:var(--acc); box-shadow:0 0 9px var(--acc);
}
.no__nombre{
  flex:1; font-family:var(--font-mono); font-size:9.5px;
  letter-spacing:.16em; color:var(--text-2);
}
.no__salida{ display:flex; align-items:baseline; gap:7px; }
.no__salida b{
  font-family:var(--font-head); font-size:17px; font-weight:500; color:var(--text);
  min-width:26px; text-align:right;
}
.no__salida i{
  font-style:normal; font-family:var(--font-mono); font-size:9.5px;
  letter-spacing:.06em; color:var(--text-3); min-width:40px;
}
.no__salida.es-alto i{ color:var(--acc); }

.no__fila input[type="range"]{
  -webkit-appearance:none; appearance:none; width:100%; height:2px;
  background:rgba(176,181,192,.16); outline:none; cursor:ew-resize;
}
.no__fila input[type="range"]::-webkit-slider-thumb{
  -webkit-appearance:none; width:13px; height:13px; border-radius:50%;
  background:var(--acc); box-shadow:0 0 10px var(--acc); cursor:ew-resize;
  transition:transform .2s;
}
.no__fila input[type="range"]::-webkit-slider-thumb:hover{ transform:scale(1.25); }
.no__fila input[type="range"]::-moz-range-thumb{
  width:13px; height:13px; border:0; border-radius:50%;
  background:var(--acc); box-shadow:0 0 10px var(--acc); cursor:ew-resize;
}
.no__fila input[type="range"]:focus-visible{ outline:1px solid var(--cyan); outline-offset:6px; }

.no__aviso{
  font-size:8.5px; letter-spacing:.18em; line-height:1.9;
  color:var(--text-3); padding-top:16px;
  border-top:var(--rule) solid var(--line-soft);
}

/* -------------------------------------------------------------- tablero */
.no__tablero{ display:flex; flex-direction:column; gap:22px; }

.no__lienzo{ position:relative; padding:22px 0; }
.no__lienzo svg{ width:100%; height:auto; display:block; overflow:visible; }

.no-flujo{
  animation:noFluir 2.4s linear infinite;
  transition:stroke-width .5s var(--ease-io), opacity .5s;
}
@keyframes noFluir{ to{ stroke-dashoffset:-36; } }

.no-nodo{ cursor:pointer; transition:opacity .45s var(--ease-io); }
.no-nodo circle{ transition:r .55s var(--ease-io), opacity .45s; }
.no-nodo:hover circle:nth-child(2),
.no-nodo.es-activo circle:nth-child(2){ stroke-width:2.4; }
.no-nodo:focus-visible{ outline:none; }
.no-nodo:focus-visible circle:nth-child(2){ stroke-width:2.8; }

/* Lectura central: el número que importa */
.no__centro{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  text-align:center; pointer-events:none; width:min(48%, 200px);
}
.no__fx-etq{ display:block; font-size:8.5px; letter-spacing:.3em; color:var(--text-3); }
.no__fx{
  display:block; font-family:var(--font-head);
  font-size:clamp(38px,5.4vw,64px); font-weight:300; line-height:1;
  color:var(--text); margin:4px 0 5px;
  transition:color .6s, text-shadow .6s;
}
.no__fx[data-tono="bien"]{ color:var(--cyan); text-shadow:0 0 34px rgba(41,235,244,.45); }
.no__fx[data-tono="mal"]{ color:#FF8A7D; text-shadow:0 0 26px rgba(255,90,77,.3); }
.no__fx-pie{ display:block; font-size:7.5px; letter-spacing:.2em; color:var(--text-3); line-height:1.6; }

/* --------------------------------------------------------------- índices */
.no__indices{ display:grid; gap:14px; }
.no__ind{
  display:grid; grid-template-columns:1fr auto; gap:5px 14px; align-items:center;
}
.no__ind > span{ font-size:8.5px; letter-spacing:.2em; color:var(--text-3); }
.no__ind b{
  grid-row:1 / span 2; align-self:center;
  font-family:var(--font-mono); font-size:14px; font-weight:400; color:var(--text);
  min-width:56px; text-align:right;
}
.no__barra{
  grid-column:1; height:2px; background:rgba(176,181,192,.14); overflow:hidden;
}
.no__barra i{
  display:block; height:100%; transform-origin:left; transform:scaleX(0);
  background:linear-gradient(90deg, rgba(41,235,244,.45), var(--cyan));
  transition:transform .7s var(--ease-out);
}
.no__barra--riesgo i{ background:linear-gradient(90deg, rgba(242,193,78,.45), #FF7A4D); }

/* --------------------------------------------------------------- lectura */
.no__lectura{
  padding:18px 20px; border-left:2px solid var(--line);
  background:linear-gradient(90deg, rgba(41,235,244,.05), transparent 78%);
  transition:border-color .6s, background .6s;
}
.no__lectura[data-tono="bien"]{
  border-left-color:var(--cyan);
  background:linear-gradient(90deg, rgba(41,235,244,.10), transparent 78%);
}
.no__lectura[data-tono="mal"]{
  border-left-color:#FF5A4D;
  background:linear-gradient(90deg, rgba(255,90,77,.09), transparent 78%);
}
.no__lectura[data-tono="flojo"]{ border-left-color:#F2C14E; }
.no__lectura h3{
  font-family:var(--font-head); font-size:19px; font-weight:500;
  color:var(--text); margin-bottom:8px;
}
.no__lectura p{
  font-size:14px; line-height:1.66; color:var(--text-2); margin:0;
}
.no__lectura.es-razones p{ font-size:12.6px; line-height:1.75; }
.no__lectura.es-razones b{ color:var(--cyan-hi); font-weight:400; }

/* ----------------------------------------------------------------- móvil */
@media (max-width: 1080px){
  .no{ grid-template-columns:1fr; }
  .no__tablero{ order:-1; }
}
@media (max-width: 640px){
  .no__lienzo{ margin:0 -10px; }
  .no__fila{ padding:8px 6px; }
}
