  /* eventos macro clave (FOMC, NFP, IPC, PCE, PIB, paro, presidente de la Fed) */
  .evento-clave { border-radius: 12px; margin-bottom: 12px; border: 1px solid rgba(243,192,79,.65);
    background: linear-gradient(180deg, rgba(243,192,79,.20), rgba(217,120,26,.07)); box-shadow: 0 0 0 1px rgba(243,192,79,.12), 0 10px 28px -16px rgba(243,192,79,.55); }
  .evento-clave > summary { list-style: none; cursor: pointer; padding: 11px 14px; display: grid; gap: 6px; }
  .evento-clave > summary::-webkit-details-marker { display: none; }
  .evento-clave .cab-ev { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
  .evento-clave .nombre-ev { font-size: 15px; font-weight: 750; color: #ffe2ad; }
  .chip-ev { font-size: 12px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; padding: 2px 8px; border-radius: 5px; background: var(--warn-text, #f3c04f); color: #1a1205; }
  .chip-ev.manana { background: transparent; color: var(--accent-2); border: 1px solid rgba(243,192,79,.6); }
  .evento-clave .cifras-ev { display: flex; gap: 14px; flex-wrap: wrap; font-size: 12.5px; color: var(--text-secondary); }
  .evento-clave .cifras-ev b { color: var(--text-primary); font-size: 14px; }
  .evento-clave .cuerpo-ev { padding: 2px 14px 14px; display: grid; gap: 10px; border-top: 1px dashed rgba(243,192,79,.35); margin-top: 2px; padding-top: 10px; }
  .evento-clave .cuerpo-ev p { margin: 0; font-size: 12.5px; color: var(--text-secondary); line-height: 1.55; }
  .evento-clave h4 { margin: 2px 0 0; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #f3c27a; }
  .escenarios { display: grid; gap: 8px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  @media (max-width: 760px) { .escenarios { grid-template-columns: minmax(0, 1fr); } }
  .escenario { border: 1px solid var(--border-2); border-radius: 9px; padding: 8px 10px; background: rgba(0,0,0,.2); display: grid; gap: 5px; font-size: 12.5px; }
  .escenario.cumplido { border-color: var(--warn-text, #f3c04f); box-shadow: 0 0 0 1px rgba(243,192,79,.4); }
  .escenario .t { font-weight: 700; display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
  .resultado-ev { border-radius: 9px; padding: 9px 11px; background: rgba(0,0,0,.28); border: 1px solid rgba(243,192,79,.5); font-size: 12.5px; display: grid; gap: 4px; }
  .resultado-ev .t { font-weight: 750; font-size: 13.5px; display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
  .puntos-ev { margin: 2px 0 2px 18px; padding: 0; display: grid; gap: 3px; }
  .semana-anterior { margin-top: 14px; border: 1px dashed var(--border-2); border-radius: 10px; padding: 8px 12px; opacity: .9; }
  .semana-anterior > summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 13px; }
  .semana-anterior > summary::-webkit-details-marker { display: none; }
  .semana-anterior > summary .ver { margin-left: auto; font-size: 12px; color: var(--text-muted); }
  .semana-anterior .cuerpo-ant { margin-top: 10px; }
  .sesgo-card { cursor: pointer; }
  .causas-sesgo { margin-top: 8px; }
  .causas-sesgo > summary { list-style: none; cursor: pointer; font-size: 12px; }
  .causas-sesgo > summary::-webkit-details-marker { display: none; }
  .causas-sesgo > summary .ver { color: var(--text-muted); display: inline-flex; align-items: center; gap: 4px; transition: color .2s; }
  .causas-sesgo > summary .ver::after { content: "▾"; transition: transform .2s; display: inline-block; }
  .causas-sesgo[open] > summary .ver::after { transform: rotate(180deg); }
  .sesgo-card:hover .causas-sesgo > summary .ver { color: var(--accent-2); }
  .causas-sesgo ul { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 6px; cursor: auto; }
  .causas-sesgo li { display: grid; grid-template-columns: auto 1fr; gap: 8px; align-items: start; font-size: 12px; line-height: 1.4;
    padding: 6px 8px; border-radius: 8px; background: rgba(255,255,255,.03); border-left: 2px solid var(--border-2); }
  .causas-sesgo li.alcista { border-left-color: var(--good); }
  .causas-sesgo li.bajista { border-left-color: var(--critical); }
  .causas-sesgo li .factor { white-space: nowrap; }
  .decisiones-tipos { display: grid; gap: 8px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
  .decision-tipo { border: 1px solid var(--border-2); border-radius: 9px; padding: 8px 10px; font-size: 12.5px; display: grid; gap: 4px; }
  .decision-tipo.publicada { border-color: rgba(243,192,79,.55); }
  .evento-clave table { font-size: 12px; }
  .evento-clave td, .evento-clave th { padding: 5px 6px; }
  .previos { display: grid; gap: 5px; }
  .previos div { font-size: 12px; color: var(--text-secondary); }
  .fuentes-ev { font-size: 12px; color: var(--text-muted); }
  .fuentes-ev a { color: var(--accent-2); }
  .evento-semana { border-color: rgba(243,192,79,.45); background: linear-gradient(120deg, rgba(243,192,79,.10), rgba(243,192,79,0) 45%), linear-gradient(180deg, var(--panel-hi), var(--panel)); }
  .evento-semana .evento-clave:last-child { margin-bottom: 0; }

/* ---------- Calendario de la semana (único): por día, una fila por dato, estilo fuente pública ---------- */
.cs-barra { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; justify-content: space-between; margin: 4px 0 10px; font-size: 12.5px; }
.cs-dia { margin: 0 0 16px; } .cs-dia h3 { margin: 0 0 6px; } .cs-dia.pasado { opacity: .78; }
.cs-tabla { border: 1px solid var(--border); border-radius: 12px; overflow: hidden; background: var(--panel); }
.cs-fila { display: grid; grid-template-columns: 54px minmax(96px, 130px) 92px minmax(0, 1fr) minmax(104px, 160px) minmax(104px, 160px) minmax(104px, 160px); gap: 4px 12px; align-items: center; padding: 9px 12px; border-top: 1px solid var(--border);
  border-left: 3px solid transparent; font-size: 13px; }
.cs-fila:first-child { border-top: 0; }
.cs-fila[data-cal] { cursor: pointer; } .cs-fila[data-cal]:hover { background: rgba(255,255,255,.035); }
.cs-fila.rojo { border-left-color: var(--critical); } .cs-fila.amarillo { border-left-color: #f3c04f; } .cs-fila.gris { border-left-color: #6c6c72; } .cs-fila.reporte { border-left-color: var(--accent); }
.cs-fila.cs-cab { background: rgba(255,255,255,.04); border-left-color: transparent; font-size: 12px; font-weight: 600; color: var(--text-muted); padding-top: 6px; padding-bottom: 6px; }
.c-hora { font-weight: 600; } .c-pais { display: flex; align-items: center; gap: 6px; min-width: 0; }
.c-imp { white-space: nowrap; font-size: 12px; font-weight: 700; } .c-imp i { font-style: normal; letter-spacing: 1px; }
.c-imp.rojo { color: var(--critical-text, #ff6b6b); } .c-imp.amarillo { color: #f3c04f; } .c-imp.gris { color: var(--text-muted); } .c-imp.reporte { color: var(--accent-2, var(--accent)); }
.c-nombre { display: flex; align-items: center; gap: 6px; min-width: 0; } .c-nombre b { font-weight: 600; }
.cs-flecha { margin-left: auto; font-size: 14px; color: var(--text-muted); transition: transform .2s; } .cs-fila.abierta .cs-flecha { transform: rotate(225deg); }
.c-cifra { text-align: right; min-width: 0; white-space: nowrap; }
.cs-det[hidden] { display: none; }
.cs-det-in { padding: 10px 16px 12px 70px; border-top: 1px dashed var(--border); background: rgba(255,255,255,.02); display: grid; gap: 6px; line-height: 1.5; font-size: 13px; }
.cs-det-in p { margin: 0; }
@media (max-width: 900px) {
  .cs-fila.cs-cab { display: none; }
  .cs-fila { grid-template-columns: 54px minmax(0, 1fr) auto; grid-template-areas: "h p i" "n n n" "a b c"; padding: 10px 12px; }
  .c-hora { grid-area: h; } .c-pais { grid-area: p; } .c-imp { grid-area: i; } .c-nombre { grid-area: n; }
  .c-cifra { text-align: left; }
  .c-cifra::before { content: attr(data-et); display: block; font-size: 12px; color: var(--text-muted); }
  .cs-det-in { padding-left: 14px; }
}
.pestanas-cal[hidden] { display: none; }          /* Calendario y Earnings son dos secciones de la barra: las pestañas no se muestran */
.nota-reporte-earn { margin: 0 0 12px; padding: 10px 14px; border: 1px solid var(--border); border-radius: 10px; font-size: 13px; line-height: 1.5; }
.nota-reporte-earn p { margin: 4px 0 0; }


/* ---- Earnings: calendario visual de la semana (ec-*) ---- */
.ec-resumen { margin: 0 0 12px; padding: 12px 14px; border: 1px solid var(--border); border-left: 3px solid var(--accent); border-radius: 10px; font-size: 14px; line-height: 1.55; background: var(--panel); }
.ec-filtros { display: flex; flex-wrap: wrap; gap: 10px 18px; align-items: center; margin: 0 0 12px; font-size: 13px; }
.ec-filtros label { display: inline-flex; gap: 6px; align-items: center; cursor: pointer; }
.ec-seg { display: inline-flex; border: 1px solid var(--border); border-radius: 999px; overflow: hidden; }
.ec-seg button { background: transparent; color: var(--text-muted); border: 0; padding: 5px 12px; font: inherit; cursor: pointer; }
.ec-seg button.on { background: var(--accent); color: #fff; }
.ec-sem { margin: 14px 0 8px; font-size: 15px; }
.ec-semana { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; align-items: start; }
.ec-dia { border: 1px solid var(--border); border-radius: 12px; padding: 10px; background: var(--panel); min-width: 0; }
.ec-dia.hoy { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent) inset; } .ec-dia.pasado { opacity: .85; }
.ec-dia h4 { margin: 0 0 8px; font-size: 13.5px; text-transform: capitalize; }
.ec-hoy { background: var(--accent); color: #fff; border-radius: 999px; padding: 1px 7px; font-size: 12px; text-transform: none; margin-left: 4px; }
.ec-vacio { font-size: 12px; color: var(--text-muted); padding: 4px 2px; }
.ec-cab { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; }
.ec-tk { font-weight: 700; font-size: 13px; background: rgba(255,255,255,.08); border-radius: 6px; padding: 1px 7px; letter-spacing: .02em; }
.ec-ins.mega { font-size: 12px; font-weight: 700; color: #1b1400; background: #f3c04f; border-radius: 999px; padding: 1px 7px; }
.ec-nom { font-size: 12px; color: var(--text-muted); overflow-wrap: anywhere; } .ec-hora { font-size: 12px; }
.ec-cifra { display: flex; flex-wrap: wrap; gap: 2px 8px; font-size: 12px; align-items: baseline; } .ec-t { color: var(--text-muted); }
.ec-real.supera { color: var(--ok, #35c46a); } .ec-real.decepciona { color: var(--critical); } .ec-real.linea { color: var(--text-muted); }
.ec-det { padding: 8px 10px 10px; border-top: 1px dashed var(--border); font-size: 12.5px; line-height: 1.5; } .ec-det p { margin: 0 0 5px; }
.ec-chips { display: flex; flex-wrap: wrap; gap: 5px; margin: 0 0 6px; align-items: center; } .ec-card[hidden] { display: none; }
.ec-resto, .ec-franja.ec-solo-resto { display: none; } .ec-expandido .ec-resto { display: flex; } .ec-expandido .ec-franja.ec-solo-resto { display: block; }
.ec-franja { margin: 0 0 8px; padding-top: 6px; border-top: 1px dashed var(--border); } .ec-franja:first-of-type { border-top: 0; padding-top: 0; }
.ec-franja h5 { margin: 0 0 5px; font-size: 12px; letter-spacing: .03em; } .ec-f-pre h5 { color: #e8b84a; } .ec-f-post h5 { color: #8fa8ff; } .ec-f-sin h5 { color: var(--text-muted); }
.ec-hrs { font-weight: 400; color: var(--text-muted); font-size: 12px; letter-spacing: 0; }
.ec-chip { display: inline-flex; align-items: center; gap: 4px; font: inherit; font-size: 12px; font-weight: 700; color: var(--text); background: rgba(255,255,255,.06); border: 1px solid var(--border); border-radius: 7px; padding: 2px 6px; cursor: pointer; line-height: 1.4; }
.ec-chip.mega { font-size: 13.5px; padding: 4px 10px; border-color: #f3c04f; background: rgba(243,192,79,.14); order: -1; }
.ec-chip.sel { outline: 2px solid var(--accent); outline-offset: 1px; }
.ec-m { font-size: 12px; font-weight: 400; color: var(--text-muted); }
.ec-p { width: 7px; height: 7px; border-radius: 50%; background: #6c6c72; } .ec-p.supera { background: var(--ok, #35c46a); } .ec-p.decepciona { background: var(--critical); } .ec-p.linea { background: var(--warn); }
.ec-mas { background: transparent; border: 0; color: var(--accent); font: inherit; font-size: 12px; cursor: pointer; padding: 2px 0 6px; }
.ec-card { border: 1px solid var(--border); border-left: 3px solid #6c6c72; border-radius: 9px; margin: 4px 0 6px; padding: 8px 10px; background: rgba(255,255,255,.025); display: grid; gap: 3px; }
.ec-card.mega { border-left-color: #f3c04f; } .ec-card.supera { border-left-color: var(--ok, #35c46a); } .ec-card.decepciona { border-left-color: var(--critical); } .ec-card.linea { border-left-color: var(--warn); }
.ec-hora { font-size: 12px; } .ec-card.supera .ec-hora b { color: var(--ok, #35c46a); } .ec-card.decepciona .ec-hora b { color: var(--critical); }
.ec-solo-grandes .ec-chip:not(.mega), .ec-solo-grandes .ec-card:not(.mega), .ec-solo-grandes .ec-mas { display: none; }
[data-ec-estado="pub"] .ec-chip.pendiente, [data-ec-estado="pub"] .ec-card.pendiente, [data-ec-estado="pend"] .ec-chip.publicada, [data-ec-estado="pend"] .ec-card.publicada { display: none; }
.ec-tabla { margin-top: 16px; } .ec-tabla > summary { cursor: pointer; font-size: 13px; color: var(--text-muted); margin-bottom: 8px; }
@media (max-width: 1200px) { .ec-semana { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 900px) { .ec-semana { grid-template-columns: 1fr; } .ec-chip { padding: 4px 8px; } .ec-dia { padding: 8px 10px; } .ec-dia h4 { margin-bottom: 5px; } .ec-seg button { padding: 7px 12px; } }

/* Calendario: fila cerrada con el dato principal, flecha neutra frente a la previsión y desplegable con todas las cifras */
.cs-fila .c-cifra { font-size: 14px; } .c-cifra.vacia { visibility: hidden; }
.dato-dir { color: var(--accent-2, var(--accent)); } .dato-dir .dir { font-size: 12px; margin-right: 2px; }
.cs-cifras { display: grid; gap: 8px; } .cs-cifras > p { margin: 0; }
.cs-cifra { padding: 6px 0 6px 10px; border-left: 2px solid var(--border); display: grid; gap: 2px; }
.cs-c-num { display: flex; flex-wrap: wrap; gap: 2px 18px; font-size: 13px; }

/* =====================================================================
   CALENDARIO — estructura de fila clara (23/10/2026)
   Escritorio ancho: 7 columnas con ancho definido (hora · país · impacto · evento · actual · previsto · anterior); el evento es la única columna elástica y
   su nombre se ajusta (wrap) en vez de pisar nada. Por debajo de 1180 px (barra lateral incluida) la fila pasa a 3 niveles: [hora · país · impacto] / evento / [actual · previsto · anterior].
   (Antes: .c-cifra:nth-of-type(n) nunca coincidía —los spans hermanos cuentan para nth-of-type— y las tres cifras caían donde quedaba hueco.)
   ===================================================================== */
.cs-fila { grid-template-columns: 54px minmax(92px, 120px) 96px minmax(0, 1fr) repeat(3, minmax(88px, 132px)); align-items: start; }
.cs-fila > * { min-width: 0; }
.cs-fila .c-hora, .cs-fila .c-imp, .cs-fila .c-pais { align-self: center; }
.c-pais { flex-wrap: nowrap; overflow-wrap: anywhere; } .c-pais .bandera { flex: none; }
.c-nombre { align-items: baseline; }
.c-nombre b { flex: 0 1 auto; min-width: 0; overflow-wrap: anywhere; line-height: 1.35; }
.c-nombre .per { flex: 0 1 auto; min-width: 0; overflow-wrap: anywhere; } .c-nombre .cs-flecha { flex: none; align-self: center; }
.cs-fila .c-cifra { white-space: normal; overflow-wrap: anywhere; line-height: 1.3; }
.cs-fila .c-cifra .num, .cs-fila .c-cifra b { white-space: nowrap; }
.cs-dia h3 { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; overflow-wrap: anywhere; }
.cs-pasados > summary { flex-wrap: wrap; }
@media (max-width: 1180px) { .cs-fila.cs-cab { display: none; } }
/* ≤ 1180 px: flex con salto de línea (nivel 1: hora · país · impacto; nivel 2: evento a ancho completo; nivel 3: las tres cifras) */
@media (max-width: 1180px) {
  .cs-fila { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; padding: 10px 12px; }
  .cs-fila .c-hora { flex: 0 0 54px; } .cs-fila .c-pais { flex: 1 1 0; min-width: 0; } .cs-fila .c-imp { flex: 0 0 auto; margin-left: auto; }
  .cs-fila .c-nombre { flex: 1 1 100%; }
  .cs-fila .c-cifra { flex: 1 1 28%; min-width: 0; text-align: left; }
}
@media (max-width: 380px) { .cs-fila { padding: 10px 10px; } .cs-fila .c-cifra { flex-basis: 45%; } }

/* Calendario: selector «Semana actual / Semana anterior» (solo consulta) */
.cs-vista { display: inline-flex; gap: 0; margin: 4px 0 10px; border: 1px solid var(--border); border-radius: 8px; overflow: hidden; max-width: 100%; }
.cs-vista button { background: transparent; color: var(--text-secondary); border: 0; padding: 7px 14px; font: inherit; font-size: 13px; cursor: pointer; }
.cs-vista button[aria-pressed="true"] { background: var(--t-naranja, #ff7a2e); color: var(--t-sobre-marca, #1a1209); font-weight: 600; }
