.home-dashboard .home-shell, .inflacion-page .home-shell { max-width: 80rem; padding: 1.5rem 2rem 2.5rem; }
.home-dashboard .home-nav-inner, .inflacion-page .home-nav-inner { max-width: 80rem; padding-inline: 2rem; }
.home-dashboard .home-wordmark { font-size: var(--fs-lg); letter-spacing: -.02em; }
.home-dashboard .panorama-header { padding: .25rem 0 1rem; margin: 0; }
.panorama-header h1 { font: 600 var(--fs-2xl)/1.15 var(--font-serif); letter-spacing: -.02em; }
.home-dashboard a { text-underline-offset: .22em; }
.home-dashboard :is(a, button, summary):focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
.panorama-skip { position: fixed; z-index: 100; left: 1rem; top: -5rem; padding: .8rem; color: var(--ink); background: var(--paper); border: 1px solid var(--rule); }
.panorama-skip:focus { top: .5rem; }

/* Los cuatro datos comparten las mismas líneas de valor, detalle y fecha. */
.panorama-highlights { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-block: 1px solid var(--rule); }
.panorama-stat { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; color: var(--ink); text-decoration: none; }
.panorama-highlights .panorama-stat { display: grid; grid-template-rows: auto auto minmax(1.4rem, auto) auto; align-content: start; padding: 1.25rem 1.5rem; position: relative; }
.panorama-highlights .panorama-stat:first-child { padding-left: 0; }
.panorama-highlights .panorama-stat + .panorama-stat::before { position: absolute; content: ""; width: 1px; background: var(--rule); inset: 1.25rem auto 1.25rem 0; }
.stat-label { font-size: var(--fs-sm); font-weight: 600; line-height: 1.35; }
.stat-unit { font-size: var(--fs-xs); font-weight: 400; color: var(--muted-text); white-space: nowrap; margin-left: .25rem; }
.stat-value { font: 600 var(--fs-display)/1.1 var(--font-serif); letter-spacing: -.02em; margin-top: .3rem; white-space: nowrap; }
.stat-detail { font-size: var(--fs-sm); color: var(--label-color); margin-top: .2rem; }
.stat-detail strong { font-weight: 600; color: inherit; }
.stat-date { color: var(--muted-text); font-size: var(--fs-xs); line-height: 1.4; margin-top: .3rem; }
.panorama-highlights .stat-label { grid-row: 1; }
.panorama-highlights .stat-value { grid-row: 2; }
.panorama-highlights .stat-detail { grid-row: 3; }
.panorama-highlights .stat-date { grid-row: 4; }
.panorama-stat[aria-busy="true"] .stat-value { color: var(--muted-text); }

.panorama-layout { display: grid; grid-template-columns: minmax(0, 3.3fr) minmax(260px, 1fr); margin-top: 1.75rem; }
.panorama-main { min-width: 0; padding-right: 1.75rem; }
.panorama-financial { align-self: start; border-left: 1px solid var(--rule); padding-left: 1.5rem; min-width: 0; }
.panorama-charts { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); }
.panorama-inflation { min-width: 0; padding-right: 1.5rem; }
.panorama-sector { border-left: 1px solid var(--rule); min-width: 0; padding-left: 1.5rem; }
.home-dashboard :is(h2, .chart-widget-title) { font: 600 var(--fs-lg)/1.25 var(--font-serif); letter-spacing: -.015em; margin: 0; }
.home-dashboard :is(h2, .chart-widget-title) a { text-decoration: none; color: inherit; }
.home-dashboard h2 a > span { color: var(--muted-text); font: inherit; margin-left: .2rem; }
.home-dashboard :is(h2, .chart-widget-title) a:hover { color: var(--accent-text); }
.home-dashboard .chart-widget-chrome { padding-inline: 0; }
.home-dashboard .chart-widget-meta { font-size: var(--fs-xs); color: var(--muted-text); margin-top: .4rem; line-height: 1.4; }
.home-dashboard .chart-widget-toolbar:empty { display: none; }
.home-dashboard .macro-chart-wrap { background: none; border: 0; border-radius: 0; padding: 0; margin-top: .75rem; }
.home-dashboard .macro-chart { height: 320px; }
.home-dashboard .emae-bars-body .macro-chart { height: auto; }
.home-dashboard .emae-bars-labels { font-size: var(--fs-xs); }
.home-dashboard .panorama-sector .emae-bars-body { margin-top: 1rem; }
.home-dashboard .chart-range-bar { justify-content: flex-end; flex-wrap: wrap; gap: .5rem; margin-block: .75rem .25rem; }
.home-dashboard .chart-range-chip { min-width: 44px; min-height: 44px; font: 600 var(--fs-xs) var(--font-sans); }
.home-dashboard .chart-widget-meta-row button[hidden] { display: none; }
.home-dashboard .macro-chart-legend { justify-content: flex-start; gap: .5rem 1.25rem; font-size: var(--fs-xs); }
.home-dashboard .chart-source-foot { font-size: var(--fs-xs); margin-top: .4rem; padding: 0; border: 0; }
.home-dashboard .chart-source-foot-brand { display: none; }
.home-dashboard .chart-source-foot-src { overflow-wrap: anywhere; }

.panorama-credit { display: grid; grid-template-columns: minmax(0, 2.1fr) minmax(180px, 1fr); gap: 1.5rem; border-top: 1px solid var(--rule); padding-top: 1.5rem; margin-top: 1.5rem; }
.panorama-credit-chart { min-width: 0; }
.panorama-credit-stats { border-left: 1px solid var(--rule); padding-left: 1.25rem; }
.panorama-credit-stats .panorama-stat { padding-block: .75rem; }
.panorama-credit-stats .panorama-stat:first-child { padding-top: 0; }
.panorama-credit-stats .panorama-stat + .panorama-stat { border-top: 1px solid var(--rule); }
.panorama-credit-stats .stat-label { font-size: var(--fs-sm); }
.panorama-credit-stats .stat-value { font-size: var(--fs-2xl); }
.panorama-credit-stats .stat-detail { font-size: var(--fs-xs); }
.panorama-credit-stats .stat-date { margin-top: .15rem; }
.panorama-placeholder { color: var(--muted-text); padding-block: 4rem; font-size: var(--fs-sm); }
.panorama-production { display: grid; grid-template-columns: .8fr 1.3fr 1.3fr; gap: 1.25rem; align-items: start; border-block: 1px solid var(--rule); margin-top: 1.5rem; padding-block: 1.25rem; }
.panorama-production h2 { align-self: center; }
.panorama-production .panorama-stat { display: grid; grid-template-rows: minmax(2.4em, auto) auto auto auto; padding-left: 1.25rem; border-left: 1px solid var(--rule); }
.panorama-production .stat-label { font-size: var(--fs-sm); }
.panorama-production .stat-value { font-size: var(--fs-2xl); }

/* El resumen financiero es un nivel secundario, con filas compactas. */
.home-dashboard .panorama-financial h2 { font-size: var(--fs-base); letter-spacing: -.01em; margin-bottom: .5rem; }
.panorama-financial section + section { border-top: 1px solid var(--rule); margin-top: 1.25rem; padding-top: 1.25rem; }
.panorama-financial dl { margin: 0; }
.panorama-financial-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; column-gap: .75rem; padding-block: .6rem; }
.panorama-financial-row + .panorama-financial-row { border-top: 1px solid var(--rule); }
.panorama-financial-row dt { font-size: var(--fs-sm); line-height: 1.35; }
.panorama-financial-row dd { display: grid; grid-template-columns: auto auto; gap: .1rem .5rem; margin: 0; text-align: right; min-width: 0; }
.financial-value { grid-column: 1 / -1; font-weight: 600; font-size: var(--fs-sm); }
.financial-date, .financial-delta { grid-row: 2; display: block; font-size: var(--fs-xs); line-height: 1.4; margin-top: .2rem; }
.financial-date { color: var(--muted-text); text-align: left; }
.financial-delta { text-align: right; font-weight: 600; }
.home-dashboard :is(.stat-value, .stat-detail strong, .financial-delta, .panorama-data-table td).is-up { color: var(--positive); }
.home-dashboard :is(.stat-value, .stat-detail strong, .financial-delta, .panorama-data-table td).is-down { color: var(--negative); }
.home-dashboard .financial-delta.is-neutral { color: var(--text-main); }
.home-dashboard .panorama-financial-row[data-tone="bad-up"] .financial-delta.is-up { color: var(--negative); }
.home-dashboard .panorama-financial-row[data-tone="bad-up"] .financial-delta.is-down { color: var(--positive); }
.panorama-monitor-link { display: block; min-height: 44px; padding: .75rem 0 0; margin-top: 1.25rem; border-top: 1px solid var(--rule); color: var(--accent-text); text-decoration: none; font-size: var(--fs-sm); font-weight: 600; }
.panorama-feedback:not([hidden]) { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem; margin-block: .5rem; font-size: var(--fs-sm); color: var(--accent-text); }
.panorama-feedback button { min-height: 44px; text-decoration: underline; text-underline-offset: .2em; padding: .35rem; }
.panorama-sources { font-size: var(--fs-xs); color: var(--muted-text); padding-block: 1rem; }
.panorama-sources a { color: var(--label-color); }
.panorama-data-table { font-size: var(--fs-xs); color: var(--label-color); margin-top: .4rem; }
.panorama-data-table summary { cursor: pointer; min-height: 44px; align-content: center; }
.panorama-data-table table { width: 100%; border-collapse: collapse; }
.panorama-data-table caption { text-align: left; padding-bottom: .5rem; }
.panorama-data-table :is(th, td) { text-align: right; padding: .4rem .25rem; border-bottom: 1px solid var(--rule); }
.panorama-data-table :is(th, td):first-child { text-align: left; }
.home-dashboard .home-footer { margin-top: .5rem; text-align: left; }
.home-dashboard .home-footer p { margin-left: 0; }
@media (hover: hover) {
  .panorama-stat[href]:hover .stat-label { color: var(--accent-text); text-decoration: underline; text-underline-offset: .2em; }
  .panorama-monitor-link:hover { text-decoration: underline; text-underline-offset: .2em; }
}
@media (prefers-reduced-motion: no-preference) {
  .home-dashboard :is(a, button) { transition: color 130ms ease; }
}
@media (max-width: 1199px) {
  .home-dashboard .home-shell, .inflacion-page .home-shell { padding-inline: 1.5rem; }
  .panorama-layout { grid-template-columns: minmax(0, 1fr); }
  .panorama-main { padding-right: 0; }
  .panorama-financial { padding: 1.5rem 0 0; margin-top: 1.5rem; border: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 2rem; border-top: 1px solid var(--rule); }
  .panorama-financial section + section { border: 0; padding: 0; margin: 0; }
  .panorama-financial .panorama-monitor-link { grid-column: 1 / -1; }
}
@media (max-width: 899px) {
  .panorama-highlights { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .panorama-highlights .panorama-stat:nth-child(odd) { padding-left: 0; }
  .panorama-highlights .panorama-stat:nth-child(3)::before { content: none; }
  .panorama-highlights .panorama-stat:nth-child(n+3) { border-top: 1px solid var(--rule); }
  .panorama-charts { grid-template-columns: minmax(0, 1fr); }
  .panorama-inflation { padding: 0 0 1.5rem; }
  .panorama-sector { border: 0; border-top: 1px solid var(--rule); padding: 1.5rem 0 0; }
  .home-dashboard .panorama-sector .emae-bars-body { margin-top: 1rem; }
  .panorama-credit { grid-template-columns: minmax(0, 1fr); }
  .panorama-credit-stats { border: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1rem; }
  .panorama-credit-stats .panorama-stat:first-child { grid-column: 1 / -1; }
  .panorama-production { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .panorama-production h2 { grid-column: 1 / -1; }
  .panorama-production .panorama-stat { padding: 0; border: 0; }
}
@media (max-width: 639px) {
  .home-dashboard .home-shell, .inflacion-page .home-shell { padding: 1.25rem 0 2rem; }
  .home-dashboard .home-nav-inner, .inflacion-page .home-nav-inner { padding-inline: 1rem; }
  .home-dashboard .home-wordmark { font-size: var(--fs-base); }
  /* El padding base del header, cargado después de styles.css, reinicia el padding-inline a 0. */
  .home-dashboard .panorama-header { padding-inline: .75rem; }
  .panorama-header h1 { font-size: var(--fs-2xl); }
  .panorama-highlights .panorama-stat { padding: 1rem .75rem; }
  .stat-label { font-size: var(--fs-sm); }
  .stat-value { font-size: var(--fs-2xl); }
  .stat-detail { font-size: var(--fs-xs); }
  .home-dashboard .macro-chart { height: 300px; }
  .panorama-financial { gap: 1.5rem 1rem; }
  .panorama-financial-row { grid-template-columns: minmax(0, 1fr); }
  .panorama-financial-row dd { justify-content: start; text-align: left; margin-top: .25rem; }
  /* La línea de fuentes alinea su caja (no solo el texto) con el borde de contenido del header. */
  .home-dashboard .home-shell > .panorama-sources { padding-inline: 0; margin-inline: .75rem; }
}

.home-dashboard :is(.stat-value, .stat-detail strong, .financial-delta, .panorama-data-table td).is-flat { color: var(--muted); }

/* /inflacion v4: gráficos en la columna principal (protagonista + pares) y lateral de precios. */
.inflacion-layout { margin-top: 1.5rem; }
.inflacion-layout .panorama-main > * + * { margin-top: 1.5rem; }
.inflacion-chart-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; align-items: stretch; }
.inflacion-chart-pair > .card { margin: 0; min-width: 0; }
.inflacion-lateral h2 { font-size: var(--fs-base); font-weight: 600; letter-spacing: -.01em; margin-bottom: .5rem; }
.inflacion-lateral .panorama-financial-row dt { font-weight: 400; }
.inflacion-lateral .panorama-financial-row.is-lead dt { font-weight: 600; }
/* Regla 4: variaciones de precios en tinta, sin semáforo. */
.inflacion-lateral .financial-value { color: var(--ink); }
@media (min-width: 1280px) {
  .inflacion-layout .panorama-main > .card.inflacion-chart .macro-chart { height: 380px; }
  .inflacion-layout .inflacion-chart-pair .inflacion-chart .macro-chart { height: 380px; }
  .inflacion-layout .inflacion-chart-pair > .card,
  .inflacion-layout .inflacion-chart-pair > .card > div { display: flex; flex-direction: column; }
  .inflacion-layout .inflacion-chart-pair > .card > div { flex: 1; }
  .inflacion-layout .inflacion-chart-pair .chart-source-foot { margin-top: auto; }
}
@media (max-width: 899px) {
  .inflacion-chart-pair { grid-template-columns: minmax(0, 1fr); }
  .inflacion-lateral .inflacion-lateral-wide { grid-column: 1 / -1; }
  .inflacion-lateral .inflacion-lateral-wide dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.5rem; }
  .inflacion-lateral .inflacion-lateral-wide .panorama-financial-row:nth-child(2) { border-top: 0; }
}

@media (max-width: 639px) {
  #ipcComboChart .macro-chart-legend { display: flex; flex-wrap: wrap; }
  #ipcComboChart .macro-chart-legend-item { font-size: inherit; font-weight: 500; }
  #ipcComboChart .macro-chart-legend-label { font-weight: 500 !important; }
}
