/* ESCALA ÚNICA DE z-index (23/10/2026): toda capa de la web usa una de estas variables; no se escriben números sueltos (salvo 0/1 locales dentro de un mismo componente). */
:root {
  --z-fondo: -1; --z-local: 2;
  --z-nav: 15; --z-alertas: 15;                 /* barra lateral y alertas móviles */
  --z-pulso: 18; --z-progreso: 19;              /* pulso del mercado y barra de lectura */
  --z-cabecera: 20;                             /* cabecera pegada, pills «hoy» */
  --z-subir: 35;                                /* botón volver arriba */
  --z-barra-inferior: 40;                       /* barra flotante inferior (móvil) */
  --z-panel-fondo: 50; --z-panel: 60;           /* panel «Más», panel lateral y su velo */
  --z-tour: 70; --z-modal: 80;                  /* tour, buscador, atajos, hojas inferiores */
  --z-tooltip: 90; --z-lector: 200;             /* tooltips y lector a pantalla completa */
}
  :root {
    color-scheme: dark;
    --bg: #090a0c;
    --bg-2: #0e1013;
    --panel: #15161a;
    --panel-hi: #1a1c21;
    --panel-2: #1c1e23;
    --border: rgba(255,255,255,.07);
    --border-2: rgba(255,255,255,.12);
    --grid: #2b2d32;
    --text-primary: #eeede8;
    --text-secondary: #a9a8a0;
    --text-muted: #6f6e68;
    --accent: var(--t-naranja, #ff7a2e);
    --accent-2: #ffcb6b;
    /* tipos de nivel */
    --t-iman: #9085e9;
    --t-res: #e66767;
    --t-sop: #199e70;
    --t-fron: #eda100;
    --t-acel: #d95926;
    /* divergente Fed */
    --d-cut: #3987e5;
    --d-hold: #5c5c57;
    --d-hike: #e66767;
    /* estado (fijo) */
    --good: #0ca30c;
    --critical: #d03b3b;
    --neutral: #8a8a83;
    --good-text: #4fcf6b;
    --critical-text: #ff7a7a;
    --warn-text: #f3c04f;
    --sombra: 0 1px 0 rgba(255,255,255,.04) inset, 0 12px 32px -14px rgba(0,0,0,.75), 0 2px 6px -2px rgba(0,0,0,.4);
    --sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    --mono: ui-monospace, "SF Mono", Menlo, monospace;
  }
  * { box-sizing: border-box; }
  html, body { margin: 0; }
  body {
    background: radial-gradient(1200px 600px at 15% -10%, #16202e 0%, transparent 60%), radial-gradient(900px 500px at 100% 0%, #1d1a12 0%, transparent 55%), var(--bg);
    background-attachment: fixed;
    color: var(--text-primary); font: 14px/1.5 var(--sans); -webkit-font-smoothing: antialiased;
  }
  .num { font-variant-numeric: tabular-nums; font-feature-settings: "tnum"; }
  .oculto { display: none !important; }
  .sr { position: absolute; left: -9999px; }
  .ico { width: 16px; height: 16px; flex: none; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; vertical-align: -3px; }

  /* ---------- barra superior ---------- */
  header {
    position: sticky; top: 0; z-index: var(--z-cabecera);
    display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
    padding: 10px 24px;
    background: linear-gradient(180deg, rgba(18,19,23,.92), rgba(12,13,16,.88));
    border-bottom: 1px solid var(--border);
    box-shadow: 0 8px 24px -16px rgba(0,0,0,.8);
  }
  .marca { display: flex; align-items: center; gap: 10px; font-weight: 700; letter-spacing: .01em; font-size: 15px; }
  .marca .logo { width: 28px; height: 28px; border-radius: 8px; display: grid; place-items: center; background: linear-gradient(135deg, var(--t-naranja-2, #ff9a5c), var(--t-naranja-3, #e8601a)); color: var(--t-sobre-marca, #1a0c02); box-shadow: 0 4px 14px -4px rgba(255,122,46,.55); }
  .marca .logo .ico { stroke-width: 2.2; }
  .led { width: 7px; height: 7px; border-radius: 50%; background: var(--good); box-shadow: 0 0 0 3px rgba(12,163,12,.18); }
  .led.off { background: var(--critical); box-shadow: 0 0 0 3px rgba(208,59,59,.2); }
  .relojes { display: flex; gap: 12px; color: var(--text-secondary); font-size: 12px; }
  .relojes b { color: var(--text-primary); font-weight: 600; }
  .vix-chip { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; padding: 4px 10px; border-radius: 999px;
    border: 1px solid var(--border-2); color: var(--text-secondary); background: rgba(255,255,255,.03); white-space: nowrap; }
  .vix-chip b { color: var(--text-primary); }
  .vix-chip .msg { font-size: 12px; font-weight: 600; }
  .vix-chip .var { color: var(--text-muted); font-size: 12px; }
  .vix-chip.verde { border-color: rgba(12,163,12,.6); background: rgba(12,163,12,.12); } .vix-chip.verde .msg { color: #7ee08a; }
  .vix-chip.amarillo { border-color: rgba(243,192,79,.6); background: rgba(243,192,79,.10); } .vix-chip.amarillo .msg { color: #f3c04f; }
  .vix-chip.naranja { border-color: rgba(240,138,60,.65); background: rgba(240,138,60,.12); } .vix-chip.naranja .msg { color: #f0a060; }
  .vix-chip.rojo { border-color: rgba(208,59,59,.7); background: rgba(208,59,59,.16); } .vix-chip.rojo .msg { color: #ffb0b0; }
  @media (max-width: 900px) { .vix-chip .msg { display: none; } }
  @media (max-width: 900px) { #btn-ejecutar { display: none; } }      /* acción de operador: fuera en móvil (en amigos ya no existe) */
  @media (max-width: 1560px) { #meta-ejecucion { display: none; } }   /* la ejecución también figura bajo el título de la vista */
  .tabs { display: flex; gap: 2px; background: rgba(255,255,255,.04); border: 1px solid var(--border); border-radius: 10px; padding: 3px; }
  .tabs button { border: 0; background: transparent; color: var(--text-secondary); padding: 6px 14px; border-radius: 7px; display: inline-flex; align-items: center; gap: 7px; font-weight: 500; transition: background .2s, color .2s; }
  .tabs button[aria-selected="true"] { background: linear-gradient(180deg, #2c2f36, #24262c); color: var(--text-primary); box-shadow: 0 1px 0 rgba(255,255,255,.06) inset, 0 2px 6px rgba(0,0,0,.35); }
  .espacio { flex: 1; }
  .meta { color: var(--text-secondary); font-size: 12px; }
  select, button, textarea { font: inherit; color: var(--text-primary); background: var(--panel-2); border: 1px solid var(--border-2); border-radius: 8px; }
  select { padding: 6px 8px; }
  button { padding: 6px 12px; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; transition: background .2s, border-color .2s, transform .1s; }
  button:hover:not(:disabled) { background: #24262c; border-color: rgba(255,255,255,.18); }
  button:active:not(:disabled) { transform: translateY(1px); }
  .tabs button:hover:not(:disabled) { background: rgba(255,255,255,.05); }
  button:disabled { opacity: .5; cursor: default; }
  button.primario { background: linear-gradient(180deg, var(--t-naranja-2, #ff9a5c), var(--t-naranja, #ff7a2e)); color: var(--t-sobre-marca, #1a0c02); border-color: transparent; font-weight: 600; box-shadow: 0 4px 14px -6px rgba(255,122,46,.6); }
  button.primario:hover:not(:disabled) { background: linear-gradient(180deg, #ffab75, var(--t-naranja-2, #ff9a5c)); }
  :focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

  .aviso { margin: 14px 24px 0; padding: 10px 14px; border-radius: 10px; background: linear-gradient(180deg, #2c1f0c, #24190a); border: 1px solid #5a3d10; color: #ffd38a; font-size: 13px; }
  .aviso.error { background: linear-gradient(180deg, #2d1111, #250d0d); border-color: #5a1d1d; color: #ffb4b4; }

  .vista { padding: 18px 24px 32px; display: grid; gap: 18px; animation: aparecer .35s ease-out; }
  @keyframes aparecer { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
  .fila-2 { display: grid; gap: 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fila-3 { display: grid; gap: 18px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  /* los apartados se reparten según el ancho REAL del contenido (cambia al abrir o plegar la barra lateral), no el de la ventana */
  .vista { container-type: inline-size; container-name: vista; }
  @container vista (max-width: 1350px) { .fila-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .fila-3 > :last-child:nth-child(odd) { grid-column: 1 / -1; } }
  @container vista (max-width: 1000px) { .fila-2, .fila-3 { grid-template-columns: minmax(0, 1fr); } }
  /* Macro + Cartera: la tabla de la cartera necesita ~700 px; por debajo, cada apartado ocupa todo el ancho */
  @container vista (max-width: 1460px) { .fila-2.ancha { grid-template-columns: minmax(0, 1fr); } }
  @media (max-width: 600px) { header, .vista { padding-left: 16px; padding-right: 16px; } .aviso { margin-left: 16px; margin-right: 16px; } }

  .panel {
    background: linear-gradient(180deg, var(--panel-hi) 0%, var(--panel) 120px);
    border: 1px solid var(--border); border-radius: 14px; padding: 18px; min-width: 0;
    box-shadow: var(--sombra);
  }
  .panel-cab { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; flex-wrap: wrap; }
  .panel-cab .icono { width: 30px; height: 30px; border-radius: 9px; display: grid; place-items: center; color: var(--c, var(--accent)); background: color-mix(in srgb, var(--c, var(--accent)) 14%, transparent); border: 1px solid color-mix(in srgb, var(--c, var(--accent)) 30%, transparent); }
  .panel-cab h2 { margin: 0; font-size: 14px; font-weight: 650; letter-spacing: .01em; }
  .panel-cab .sub { color: var(--text-muted); font-size: 12px; }
  .panel h3 { margin: 20px 0 8px; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); }

  /* conclusión del día */
  .dia { position: relative; overflow: hidden; background: linear-gradient(120deg, rgba(255,122,46,.10) 0%, rgba(255,122,46,0) 45%), linear-gradient(180deg, var(--panel-hi), var(--panel)); }
  .dia::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 3px; background: linear-gradient(180deg, var(--accent), var(--t-naranja-3, #e8601a)); }
  .dia .titular { font-size: 18px; font-weight: 650; margin: 0 0 12px; letter-spacing: -.01em; }
  .dia ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 7px; color: var(--text-secondary); }
  .dia li { display: flex; gap: 10px; align-items: flex-start; }
  .dia li .ico { color: var(--accent); margin-top: 3px; }
  .dia li b { color: var(--text-primary); font-weight: 600; }
  .dia .nota { margin-top: 12px; font-size: 12px; color: var(--text-muted); }

  /* KPIs */
  .kpis { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }
  .kpi { background: linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.01)); border: 1px solid var(--border); border-radius: 10px; padding: 10px 13px; min-width: 100px; flex: 1; }
  .kpi .et { font-size: 12px; color: var(--text-muted); font-weight: 500; }
  .kpi .v { font-size: 20px; font-weight: 600; margin-top: 2px; white-space: nowrap; letter-spacing: -.01em; }
  .kpi .v.grande { font-size: 30px; line-height: 1.15; letter-spacing: -.02em; }
  .kpi .d { font-size: 12px; color: var(--text-secondary); margin-top: 2px; }
  .sube { color: var(--good-text); }
  .baja { color: var(--critical-text); }
  .badge { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; }
  .badge.pos { background: rgba(12,163,12,.14); color: var(--good-text); border: 1px solid rgba(12,163,12,.4); }
  .badge.neg { background: rgba(208,59,59,.14); color: var(--critical-text); border: 1px solid rgba(208,59,59,.45); }
  .badge.neu { background: rgba(243,192,79,.12); color: var(--warn-text); border: 1px solid rgba(243,192,79,.4); }

  .conclusion { margin-top: 14px; padding: 11px 13px; border-radius: 10px; background: linear-gradient(90deg, rgba(255,122,46,.08), rgba(255,255,255,.02)); border: 1px solid rgba(255,122,46,.2); color: var(--text-secondary); font-size: 13px; }
  .conclusion b { color: var(--text-primary); }
  .errores { margin-top: 10px; color: var(--critical-text); font-size: 13px; }
  .vacio { color: var(--text-muted); font-size: 13px; padding: 8px 0; }

  /* tablas */
  table { width: 100%; border-collapse: collapse; font-size: 13px; }
  th { text-align: left; font-weight: 500; color: var(--text-muted); font-size: 12px; padding: 7px 8px; border-bottom: 1px solid var(--border-2); white-space: nowrap; }
  td { padding: 8px; border-bottom: 1px solid var(--border); }
  tbody tr { transition: background .15s; }
  tbody tr:hover { background: rgba(255,255,255,.025); }
  tr:last-child td { border-bottom: 0; }
  td.r, th.r { text-align: right; }
  tr.grupo td { padding-top: 14px; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); border-bottom: 1px solid var(--border-2); }
  tr.grupo:hover { background: none; }
  .tabla-scroll { overflow-x: auto; }
  .tipo { display: inline-flex; align-items: center; gap: 6px; padding: 2px 8px; border-radius: 6px; font-size: 12px; font-weight: 600; white-space: nowrap; border: 1px solid; }
  .tipo::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
  .que { color: var(--text-secondary); font-size: 12px; }
  .prob { display: flex; align-items: center; gap: 8px; justify-content: flex-end; white-space: nowrap; }
  .prob .fl { width: 14px; height: 14px; }
  .prob .barra { width: 56px; height: 6px; background: rgba(255,255,255,.07); border-radius: 3px; overflow: hidden; }
  .prob .barra i { display: block; height: 100%; background: linear-gradient(90deg, #6f6e68, #b5b4ab); border-radius: 0 3px 3px 0; }
  .nombre-nivel { font-weight: 600; white-space: nowrap; }

  /* valoración */
  .val-grid { display: grid; gap: 14px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  @media (max-width: 1200px) { .val-grid { grid-template-columns: minmax(0, 1fr); } }
  .val-card { border: 1px solid var(--border); border-radius: 12px; padding: 14px; background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.005)); }
  .val-card .cab { display: flex; align-items: center; gap: 10px; margin-bottom: 4px; }
  .val-card .tk { font-size: 18px; font-weight: 700; letter-spacing: -.01em; }
  .val-card .sec { color: var(--text-muted); font-size: 12px; margin-bottom: 10px; }
  .val-fila { display: grid; grid-template-columns: 1fr auto; gap: 2px 10px; padding: 8px 0; border-top: 1px solid var(--border); }
  .val-fila .m { font-size: 12.5px; font-weight: 500; }
  .val-fila .vs { font-size: 12.5px; text-align: right; color: var(--text-secondary); }
  .val-fila .vs b { color: var(--text-primary); font-weight: 600; }
  .val-fila .barra-vs { grid-column: 1 / -1; position: relative; height: 6px; border-radius: 3px; background: rgba(255,255,255,.06); }
  .val-fila .barra-vs::after { content: ""; position: absolute; left: 50%; top: -3px; bottom: -3px; width: 1px; background: var(--text-muted); }
  .val-fila .barra-vs i { position: absolute; top: 0; bottom: 0; border-radius: 3px; }
  .val-fila .lect { font-size: 12px; }
  .val-comp { margin-top: 8px; font-size: 12px; color: var(--text-muted); }

  /* gráficos */
  svg.graf { display: block; width: 100%; overflow: visible; }
  svg.graf text { font-family: var(--sans); }
  .leyenda { display: flex; gap: 14px; flex-wrap: wrap; font-size: 12px; color: var(--text-secondary); margin: 6px 0; }
  .leyenda span { display: inline-flex; align-items: center; gap: 6px; }
  .leyenda i { width: 10px; height: 10px; border-radius: 3px; display: inline-block; }
  #tooltip { position: fixed; pointer-events: none; z-index: var(--z-tooltip); display: none; background: rgba(16,17,20,.96); backdrop-filter: blur(6px); border: 1px solid var(--border-2); border-radius: 8px; padding: 8px 11px; font-size: 12px; color: var(--text-primary); box-shadow: 0 10px 30px rgba(0,0,0,.55); max-width: 280px; }
  #tooltip .t { color: var(--text-muted); font-size: 12px; margin-bottom: 2px; }

