  /* pestañas principales */
  .tabs .sep { width: 1px; background: var(--border-2); margin: 4px 4px; }
  .tabs button.secundaria { color: var(--text-muted); }
  .vista-cab { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
  .vista-cab h1 { margin: 0; font-size: 20px; font-weight: 700; letter-spacing: -.015em; }
  .vista-cab p { margin: 0; color: var(--text-muted); font-size: 13px; }
  .vista-cab .chip { font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; padding: 3px 9px; border-radius: 999px; border: 1px solid; }
  .chip.hoy { color: var(--accent-2); border-color: rgba(243,192,79,.35); background: rgba(243,192,79,.08); }
  .chip.semana { color: #9fc3ff; border-color: rgba(57,135,229,.4); background: rgba(57,135,229,.1); }
  #vista-semanal .panel-cab .icono { --c: #3987e5; }

  /* datos macro */
  .ev { border: 1px solid var(--border); border-radius: 12px; padding: 12px 14px; background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.005)); }
  .ev + .ev { margin-top: 10px; }
  .ev.compacto { padding: 7px 12px; }
  .ev.compacto + .ev, .ev + .ev.compacto { margin-top: 6px; }
  .ev.compacto[open] { padding-bottom: 10px; }
  .ev-cab { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
  .ev-cab .nombre { font-weight: 650; }
  .ev-cab .hora { color: var(--text-muted); font-size: 12px; }
  .pais { font-size: 12px; font-weight: 600; padding: 1px 7px; border-radius: 6px; background: rgba(255,255,255,.06); border: 1px solid var(--border-2); color: var(--text-secondary); white-space: nowrap; }
  .ev-cifras { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 10px 0 8px; }
  .ev-cifras div { background: rgba(0,0,0,.18); border: 1px solid var(--border); border-radius: 8px; padding: 6px 9px; }
  .ev-cifras .et { font-size: 12px; color: var(--text-muted); }
  .ev-cifras .v { font-size: 15px; font-weight: 600; }
  .ev-cifras .v.act { font-size: 17px; }
  .ev p { margin: 4px 0 0; font-size: 12.5px; color: var(--text-secondary); line-height: 1.5; }
  .ev p b { color: var(--text-primary); font-weight: 600; }
  .contexto { font-size: 12px; color: var(--text-secondary); padding: 8px 11px; border-radius: 8px; background: rgba(57,135,229,.08); border: 1px solid rgba(57,135,229,.25); margin-bottom: 4px; }

  /* noticias */
  .filtros { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 10px; }
  .filtros button { font-size: 12px; padding: 4px 10px; border-radius: 999px; color: var(--text-secondary); background: rgba(255,255,255,.03); }
  .filtros button[aria-pressed="true"] { color: var(--text-primary); background: #2c2f36; border-color: rgba(255,255,255,.22); }
  .filtros button .n { color: var(--text-muted); margin-left: 2px; }
  .noticias { list-style: none; margin: 0; padding: 0; max-height: 560px; overflow-y: auto; }
  .noticias li { display: grid; grid-template-columns: 74px minmax(0, 1fr); gap: 2px 10px; padding: 8px 2px; border-bottom: 1px solid var(--border); font-size: 13px; }
  .noticias li:last-child { border-bottom: 0; }
  .noticias .h { color: var(--text-muted); font-size: 12px; padding-top: 1px; }
  .noticias .f { grid-column: 2; color: var(--text-muted); font-size: 12px; }
  .noticias .k { color: var(--accent-2); font-size: 12px; font-weight: 600; margin-right: 6px; text-transform: uppercase; letter-spacing: .05em; }
  .chip-vivo { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 700; letter-spacing: .06em; color: #ffd27a;
    border: 1px solid rgba(243,192,79,.55); background: rgba(243,192,79,.12); border-radius: 5px; padding: 0 5px; vertical-align: 1px; }
  .chip-vivo::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--warn-text, #f3c04f); animation: latido 1.6s ease-in-out infinite; }
  .alto-impacto.vivo { border-color: var(--warn-text, #f3c04f); }
  .impactos-noticia { grid-column: 2; display: flex; flex-wrap: wrap; gap: 4px; margin-top: 3px; }
  .imp { font-size: 12px; padding: 0 6px; border-radius: 5px; border: 1px solid var(--border-2); color: var(--text-muted); white-space: nowrap; }
  .imp.alcista { color: var(--good-text); border-color: rgba(12,163,12,.45); background: rgba(12,163,12,.08); }
  .imp.bajista { color: var(--critical-text); border-color: rgba(208,59,59,.45); background: rgba(208,59,59,.08); }
  .alto-impacto .imp { color: #ffd0d0; } .alto-impacto .imp.alcista { color: #9ff0a9; } .alto-impacto .imp.bajista { color: #ffb0b0; }
  .chip-trump { font-size: 12px; font-weight: 800; letter-spacing: .06em; color: #fff; background: #7a2e6e; border-radius: 4px; padding: 0 5px; vertical-align: 1px; }
  .trump-cab { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 14px 0 4px; }
  .trump-cab .que { font-weight: 400; font-size: 12px; }
  .noticias.trump li { border-left: 2px solid rgba(199,125,186,.55); padding-left: 8px; }
  /* bancos centrales: selector y agenda */
  .selector-bancos { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 12px; }
  .selector-bancos button { font-size: 12px; padding: 4px 11px; border-radius: 999px; color: var(--text-secondary); background: rgba(255,255,255,.03); }
  .selector-bancos button[aria-selected="true"] { color: var(--text-primary); background: #3a2323; border-color: rgba(208,107,107,.6); }
  .selector-bancos button .n { color: var(--text-muted); margin-left: 5px; font-size: 12px; }
  .chip-nueva { font-size: 12px; font-weight: 700; letter-spacing: .06em; color: #0b1a0b; background: #3ccf3c; border-radius: 5px; padding: 1px 6px; }
  .chip-abierta { font-size: 12px; color: var(--text-secondary); border: 1px solid var(--border-2); border-radius: 5px; padding: 0 6px; }
  .seg-fx { font-size: 12.5px; margin: 6px 0 2px; color: var(--text-secondary); }
  .zona-cierre { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 12.5px; margin: 6px 0; padding: 6px 9px; border-radius: 8px; background: rgba(255,255,255,.03); }
  .zona-cierre .tp { color: var(--good-text); } .zona-cierre .sl { color: var(--critical-text); }
  .resultados-op { font-size: 12.5px; margin: 6px 0; color: var(--text-secondary); }
  .resultados-op.alerta { border: 1px solid rgba(208,59,59,.5); border-radius: 8px; padding: 6px 9px; background: rgba(208,59,59,.07); }
  .resultados-op b { color: var(--text-primary); }
  .seg-fx.pendiente { border: 1px dashed rgba(243,192,79,.5); border-radius: 8px; padding: 6px 9px; }
  .niveles-fx { display: flex; flex-wrap: wrap; gap: 6px 12px; font-size: 12px; margin: 4px 0; }
  .niveles-fx .sl { color: var(--critical-text); } .niveles-fx .tp { color: var(--good-text); }
  .descartadas-fx { margin-top: 10px; font-size: 12px; color: var(--text-muted); }
  .conv-stats { display: grid; gap: 8px; }
  .fila-conv { display: grid; grid-template-columns: 70px minmax(0, 1fr) 120px; gap: 10px; align-items: center; font-size: 13px; }
  .barra-conv { height: 10px; border-radius: 4px; background: rgba(255,255,255,.06); overflow: hidden; }
  .barra-conv i { display: block; height: 100%; border-radius: 0 4px 4px 0; background: var(--accent); transition: width .5s ease; }
  .agenda-bc { display: grid; gap: 6px; }
  .agenda-bc .ag { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; padding: 7px 10px; border-radius: 9px; border: 1px solid var(--border); font-size: 12.5px; }
  .agenda-bc .ag.importante { border-color: rgba(208,59,59,.5); background: rgba(208,59,59,.07); }
  .agenda-bc .ag.pasado { opacity: .78; }
  .agenda-bc .ag.hoy, .agenda-bc .ag.en-curso { border-color: rgba(243,192,79,.55); }
  .agenda-bc .f { color: var(--text-muted); font-size: 12px; min-width: 112px; }
  .agenda-bc .ev-ag { font-weight: 650; color: var(--text-primary); }
  .agenda-bc .est { color: var(--text-muted); font-size: 12px; }
  .agenda-bc .dicho { flex-basis: 100%; color: var(--text-secondary); font-size: 12px; }
  /* precio en vivo de ES y NQ */
  .vivo-precio { margin-top: 4px; display: flex; align-items: center; gap: 5px; flex-wrap: wrap; }
  .vivo-precio:empty { display: none; }
  .pulso { width: 7px; height: 7px; border-radius: 50%; background: var(--good); box-shadow: 0 0 0 0 rgba(12,163,12,.6); animation: latido 1.6s ease-in-out infinite; }
  @keyframes latido { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
  .dist.desde-ahora { color: var(--accent-2); }
  tr.cerca > td:first-child { box-shadow: inset 3px 0 0 var(--accent); }
  tr.tocando > td { background: rgba(243,192,79,.10); }
  tr.tocando > td:first-child { box-shadow: inset 3px 0 0 var(--warn-text, #f3c04f); }

  /* vista semanal */
  .tarjetas { display: grid; gap: 12px; }
  .tarjeta { border: 1px solid var(--border); border-radius: 12px; padding: 14px; background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.005)); min-width: 0; }
  .tarjeta .cab { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; }
  .tarjeta .tk { font-size: 17px; font-weight: 700; letter-spacing: -.01em; }
  .tarjeta ul { margin: 6px 0 0; padding-left: 18px; color: var(--text-secondary); font-size: 13px; display: grid; gap: 5px; }
  .tarjeta p { margin: 0; color: var(--text-secondary); font-size: 13px; line-height: 1.55; }
  .tarjeta p + p { margin-top: 6px; }
  .conviccion { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--text-secondary); }
  .conviccion .seg { display: inline-flex; gap: 2px; }
  .conviccion .seg i { width: 14px; height: 6px; border-radius: 2px; background: rgba(255,255,255,.1); }
  .conviccion .seg i.on { background: var(--accent); }
  .invalida { margin-top: 12px; padding: 10px 13px; border-radius: 10px; border: 1px solid rgba(208,59,59,.35); background: rgba(208,59,59,.07); color: var(--text-secondary); font-size: 13px; }
  .invalida b { color: var(--critical-text); }
  .cot-fila { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 4px 12px; padding: 10px 0; border-top: 1px solid var(--border); align-items: center; }
  .cot-fila:first-of-type { border-top: 0; }
  .cot-fila .ind { font-weight: 650; }
  .cot-fila .det { grid-column: 1 / -1; font-size: 12.5px; color: var(--text-secondary); }
  .eventos-sem { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
  .eventos-sem li { display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 2px 12px; padding: 9px 0; border-bottom: 1px solid var(--border); }
  .eventos-sem li:last-child { border-bottom: 0; }
  .eventos-sem .ev-dia { font-weight: 600; font-size: 12.5px; }
  .eventos-sem .ev-t { font-size: 13px; }
  .eventos-sem .ev-p { grid-column: 2; font-size: 12.5px; color: var(--text-secondary); }
  .texto-reporte { white-space: pre-wrap; font: 12.5px/1.6 var(--sans); color: var(--text-secondary); margin: 0; }
  details.panel > summary { cursor: pointer; list-style: none; }
  details.panel > summary::-webkit-details-marker { display: none; }
  details.panel > summary .panel-cab { margin-bottom: 0; }
  details.panel[open] > summary .panel-cab { margin-bottom: 14px; }

  /* cruce con datos macro y bancos centrales */
  .cruce { margin-top: 10px; padding: 10px 13px; border-radius: 10px; background: linear-gradient(90deg, rgba(57,135,229,.10), rgba(255,255,255,.02)); border: 1px solid rgba(57,135,229,.28); color: var(--text-secondary); font-size: 13px; }
  .cruce b { color: #9fc3ff; font-weight: 600; }
  .cruce p { margin: 0; } .cruce p + p { margin-top: 5px; }
  .seccion-cab { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin: 6px 0 -6px; }
  .seccion-cab h2 { margin: 0; font-size: 16px; font-weight: 700; letter-spacing: -.01em; }
  .seccion-cab p { margin: 0; color: var(--text-muted); font-size: 12.5px; }

  /* bancos centrales */
  .tonos { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
  .tono-banco { display: flex; align-items: center; gap: 8px; padding: 6px 10px; border-radius: 10px; border: 1px solid var(--border); background: rgba(255,255,255,.025); font-size: 12px; }
  .tono-banco b { font-size: 13px; }
  .badge.hawk { background: rgba(208,59,59,.14); color: var(--critical-text); border: 1px solid rgba(208,59,59,.45); }
  .badge.dove { background: rgba(57,135,229,.14); color: #9fc3ff; border: 1px solid rgba(57,135,229,.45); }
  .cb { border: 1px solid var(--border); border-radius: 12px; padding: 11px 13px; background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.005)); }
  .cb + .cb { margin-top: 8px; }
  .cb.alto { border-color: rgba(208,59,59,.55); background: linear-gradient(180deg, rgba(208,59,59,.14), rgba(208,59,59,.04)); }
  .cb.alto.dove { border-color: rgba(12,163,12,.55); background: linear-gradient(180deg, rgba(12,163,12,.14), rgba(12,163,12,.04)); }
  .rojo-chip.verde-chip { background: #138a13; }
  .mas-cb { margin-top: 8px; } .mas-cb > summary { list-style: none; cursor: pointer; font-size: 12px; margin-bottom: 8px; }
  .mas-cb > summary::-webkit-details-marker { display: none; }
  .cb .cab { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
  .cb .quien { font-weight: 650; }
  .cb .res { margin: 6px 0 0; font-size: 13px; color: var(--text-primary); }
  .impactos, .impacto-neto { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; margin-top: 7px; }
  .impacto-neto { margin: 0 0 12px; }
  .cb .mot { margin: 3px 0 0; font-size: 12px; color: var(--text-secondary); }
  .cb details { margin-top: 6px; font-size: 12px; color: var(--text-muted); }
  .cb details summary { cursor: pointer; }
  .cb details ul { margin: 4px 0 0; padding-left: 16px; }
  .rojo-chip { font-size: 12px; font-weight: 700; letter-spacing: .06em; color: #fff; background: #c93030; border-radius: 5px; padding: 1px 6px; }
  .estrellas { color: var(--accent); letter-spacing: 1px; font-size: 12px; white-space: nowrap; }
  .estrellas.dos { color: var(--text-secondary); }

  /* noticias: alto impacto */
  .alto-impacto { border-radius: 12px; padding: 12px 14px; margin-bottom: 14px; background: linear-gradient(180deg, #4a1212, #2e0b0b); border: 1px solid #a12b2b; box-shadow: 0 0 0 1px rgba(208,59,59,.15), 0 10px 30px -14px rgba(208,59,59,.6); }
  .alto-impacto h3 { margin: 0 0 8px; color: #ffb0b0; display: flex; align-items: center; gap: 8px; }
  .alto-impacto ul { list-style: none; margin: 0; padding: 0; }
  .alto-impacto li { display: grid; grid-template-columns: 74px minmax(0, 1fr); gap: 2px 10px; padding: 7px 0; border-top: 1px solid rgba(255,120,120,.18); font-size: 13.5px; color: #ffe9e9; }
  .alto-impacto li:first-child { border-top: 0; }
  .alto-impacto .h { color: #ff9c9c; font-size: 12px; }
  .alto-impacto .f { grid-column: 2; color: #d99a9a; font-size: 12px; }

  /* desplegables de la vista semanal */
  details.desp > summary { list-style: none; cursor: pointer; }
  details.desp > summary::-webkit-details-marker { display: none; }
  details.desp > summary .ver { margin-left: auto; font-size: 12px; color: var(--text-muted); display: inline-flex; align-items: center; gap: 4px; transition: color .2s; }
  details.desp > summary .ver::after { content: "▾"; transition: transform .2s; display: inline-block; }
  details.desp[open] > summary .ver::after { transform: rotate(180deg); }
  details.desp:hover > summary .ver { color: var(--accent-2); }
  details.desp[open] { border-color: rgba(243,192,79,.35); }
  .desp-cuerpo { margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--border-2); }
  .desp-cuerpo p { margin: 0 0 8px; color: var(--text-secondary); font-size: 13px; line-height: 1.6; }
  .fechas-op { display: flex; gap: 8px; flex-wrap: wrap; margin: 4px 0 10px; }
  .fechas-op > div { border: 1px solid var(--border-2); border-radius: 8px; padding: 6px 10px; background: rgba(0,0,0,.2); }
  .fechas-op .et { font-size: 12px; color: var(--text-muted); }
  .fechas-op .v { font-size: 14px; font-weight: 650; }
  .fechas-op .limite { border-color: rgba(243,192,79,.55); background: rgba(243,192,79,.08); }
  .fechas-op .limite .v { color: var(--accent-2); }
  .analisis { margin-top: 10px; border: 1px solid rgba(240,138,93,.35); border-radius: 10px; padding: 10px 12px; background: rgba(240,138,93,.06); font-size: 13px; }
  .analisis .tit { font-weight: 650; color: #f3b08f; display: flex; align-items: center; gap: 6px; margin-bottom: 6px; }
  .analisis .kpis { margin-bottom: 8px; }
  .analisis .kpi .v { font-size: 15px; }
  .analisis .msg { padding: 0; background: none; border: 0; }
  .cot-explica { grid-column: 1 / -1; font-size: 12.5px; color: var(--text-primary); background: rgba(255,255,255,.035); border-left: 3px solid var(--accent); padding: 6px 10px; border-radius: 0 6px 6px 0; }

  /* eventos de la semana por día y país */
  .dias { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
  .dia-ev { border: 1px solid var(--border); border-radius: 12px; padding: 12px; background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.005)); }
  .dia-ev.hoy { border-color: rgba(243,192,79,.55); box-shadow: 0 0 0 1px rgba(243,192,79,.15); }
  .dia-ev.pasado { opacity: .72; }
  .dia-ev > .cab { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; font-weight: 700; text-transform: capitalize; }
  .pais-ev { margin-top: 8px; }
  .pais-ev > .p { font-size: 12px; font-weight: 600; color: var(--text-secondary); display: flex; align-items: center; gap: 6px; margin-bottom: 4px; }
  .pais-ev .bandera { font-size: 15px; line-height: 1; }
  .item-ev { padding: 6px 8px; border-radius: 8px; font-size: 12.5px; color: var(--text-secondary); display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 1px 8px; }
  .item-ev .hora { color: var(--text-muted); font-size: 12px; }
  .item-ev .n { color: var(--text-primary); }
  .item-ev .x { grid-column: 2; font-size: 12px; color: var(--text-muted); }
  .item-ev.destacado { background: rgba(243,192,79,.08); border-left: 3px solid var(--accent); }
  .item-ev.destacado .n { font-weight: 650; }


/* IPC: cifra principal (a/a) y secundaria (m/m), cada una con su etiqueta (calendario completo y calendario del Informe) */
.per { margin-left: 3px; font-size: 12px; font-weight: 600; letter-spacing: .03em; color: var(--text-muted); text-transform: none; }
.per-cifra { display: block; white-space: nowrap; }
.per-cifra.sec { font-size: .86em; color: var(--text-muted); }
.sec { color: var(--text-muted); }
.cifras-per { display: grid; gap: 3px; }
.per-linea { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; }
.per-linea .per { min-width: 34px; margin-left: 0; font-size: 12px; color: var(--accent-2); }
.per-linea.sec { opacity: .78; }

/* Dato real frente a la previsión (calendario y Pre-mercado): verde = por encima de la previsión, rojo = por debajo, gris = igual */
.dato-verde { color: var(--good-text) !important; }
.dato-rojo { color: var(--critical-text) !important; }
.dato-neutro { color: var(--neutral) !important; }

/* Todas las cifras de un evento (IPC, empleo, PIB…) una por línea */
.fam-lista { display: grid; gap: 3px; }
.fam-lista .fam-l { display: block; font-size: 12px; line-height: 1.45; color: var(--text-secondary); }
.fam-lista .fam-l b { color: var(--text-primary); }
.fam-lista .fam-l b.dato-verde { color: var(--good-text); } .fam-lista .fam-l b.dato-rojo { color: var(--critical-text); } .fam-lista .fam-l b.dato-neutro { color: var(--neutral); }
