/* =========================================================
   Nutricion 2026 · responsive UI layer
   Capa exclusivamente visual, cargada despues del estilo v4.53.
   ========================================================= */

:root{
  --ui-page-x:clamp(10px, 1.25vw, 24px);
  --ui-page-y:clamp(10px, 1.15vw, 20px);
  --ui-gap:clamp(8px, .8vw, 14px);
  --ui-control-h:clamp(38px, 3vw, 42px);
}

html,
body{
  width:100%;
  max-width:100%;
  overflow-x:hidden !important;
}

*,
*::before,
*::after{
  box-sizing:border-box;
}

img,
svg,
canvas{
  max-width:100%;
}

.site-main{
  width:100%;
  max-width:1920px;
  min-width:0;
  padding:var(--ui-page-y) var(--ui-page-x) clamp(22px, 2vw, 34px);
}

.site-main > *,
.page-shell,
.page-shell > *,
.dash-center,
.dash-center > *,
.home-page,
.home-page > *,
.acum-page,
.acum-page > *,
.admin-users-page,
.admin-users-page > *,
.row > *,
.card,
.card-body{
  min-width:0;
  max-width:100%;
}

.home-page,
.dash-center,
.acum-page,
.admin-users-page{
  width:100%;
  max-width:none;
}

/* Cabecera: una sola fila real en desktop. */
.sien-nav .container-fluid{
  width:100%;
  max-width:1920px;
  min-width:0;
  margin-inline:auto;
  padding:clamp(5px, .55vw, 9px) var(--ui-page-x);
  gap:clamp(6px, .7vw, 12px);
}

.sien-nav{
  --bs-navbar-padding-y:0;
  padding-block:0 !important;
}

.sien-nav .navbar-brand,
.sien-nav .navbar-collapse,
.sien-nav .navbar-nav,
.sien-nav .nav-auth-actions{
  min-width:0;
}

.sien-nav .navbar-brand{
  margin:0;
}

.sien-nav .nav-link,
.sien-nav .user-chip,
.sien-nav .nav-auth-btn{
  white-space:nowrap;
}

@media (min-width:1200px){
  .sien-nav .container-fluid{
    flex-wrap:nowrap;
  }

  .sien-nav .navbar-brand{
    flex:0 0 auto;
    min-width:0 !important;
    max-width:clamp(158px, 14vw, 260px);
    padding:clamp(.18rem, .3vw, .3rem) clamp(.4rem, .7vw, .8rem) clamp(.18rem, .3vw, .3rem) 0 !important;
    gap:clamp(.3rem, .55vw, .6rem) !important;
  }

  .sien-nav .brand-logo{
    flex:0 0 auto;
    width:clamp(40px, 3.25vw, 52px) !important;
    height:clamp(40px, 3.25vw, 52px) !important;
  }

  .sien-nav .navbar-collapse{
    display:flex !important;
    flex:1 1 auto;
    flex-wrap:nowrap;
    align-items:center;
    gap:clamp(4px, .45vw, 9px);
  }

  .sien-nav .navbar-nav{
    flex:1 1 auto;
    flex-direction:row;
    flex-wrap:nowrap !important;
    align-items:center !important;
    gap:clamp(2px, .25vw, 5px) !important;
    margin:0 !important;
  }

  .sien-nav .nav-item{
    flex:0 1 auto;
    min-width:0;
  }

  .sien-nav .nav-link,
  .sien-nav .nav-link-acum{
    min-height:clamp(38px, 3.2vw, 46px) !important;
    padding:clamp(.42rem, .5vw, .65rem) clamp(.38rem, .58vw, .72rem) !important;
    border-radius:clamp(10px, .85vw, 14px) !important;
    gap:clamp(.15rem, .24vw, .28rem);
    font-size:clamp(.71rem, .27vw + .55rem, .88rem) !important;
    line-height:1 !important;
  }

  .sien-nav .nav-auth-actions{
    flex:0 0 auto;
    width:auto !important;
    margin:0 !important;
    flex-wrap:nowrap !important;
    gap:clamp(4px, .35vw, 7px) !important;
  }

  .sien-nav .user-chip,
  .sien-nav .nav-auth-btn{
    width:auto !important;
    min-height:clamp(38px, 3.2vw, 44px) !important;
    padding:clamp(.42rem, .5vw, .62rem) clamp(.48rem, .65vw, .82rem) !important;
    border-radius:clamp(10px, .85vw, 14px) !important;
    font-size:clamp(.7rem, .25vw + .54rem, .84rem) !important;
  }
}

/* Desktop compacto: conserva toda la navegacion en una fila. */
@media (min-width:1200px) and (max-width:1439.98px){
  .sien-nav .brand-subtitle,
  .sien-nav .version-pill,
  .sien-nav .brand-dot{
    display:none !important;
  }

  .sien-nav .navbar-brand{
    max-width:172px;
    border-right:1px solid #e4edf8 !important;
  }

  .sien-nav .brand-title-main{
    font-size:clamp(.94rem, 1.2vw, 1.08rem) !important;
  }
}

/* 992–1199: fila compacta con desplazamiento solo dentro del menu. */
@media (min-width:992px) and (max-width:1199.98px){
  .sien-nav .container-fluid{
    flex-wrap:nowrap;
  }

  .sien-nav .navbar-brand{
    flex:0 0 auto;
    min-width:0 !important;
    padding:.2rem .35rem .2rem 0 !important;
    border-right:0 !important;
  }

  .sien-nav .brand-stack,
  .sien-nav .brand-dot,
  .sien-nav .version-pill{
    display:none !important;
  }

  .sien-nav .brand-logo{
    width:42px !important;
    height:42px !important;
  }

  .sien-nav .navbar-collapse{
    display:flex !important;
    flex:1 1 auto;
    flex-wrap:nowrap;
    align-items:center;
    width:auto !important;
    min-width:0;
    margin:0;
    padding:0;
    background:transparent;
    backdrop-filter:none;
    gap:6px;
  }

  .sien-nav .navbar-nav{
    flex:1 1 auto;
    min-width:0;
    width:auto !important;
    margin:0 !important;
    padding-bottom:3px;
    flex-direction:row;
    flex-wrap:nowrap !important;
    align-items:center !important;
    gap:3px !important;
    overflow-x:auto;
    overflow-y:hidden;
    scrollbar-width:thin;
    overscroll-behavior-inline:contain;
  }

  .sien-nav .nav-link,
  .sien-nav .nav-link-acum{
    width:auto !important;
    min-height:38px !important;
    padding:.46rem .48rem !important;
    justify-content:center !important;
    border-radius:10px !important;
    font-size:.7rem !important;
  }

  .sien-nav .nav-link i{
    display:none;
  }

  .sien-nav .nav-auth-actions{
    flex:0 0 auto;
    width:auto !important;
    margin:0 !important;
    flex-wrap:nowrap !important;
  }

  .sien-nav .user-chip,
  .sien-nav .nav-auth-btn{
    width:auto !important;
    min-height:38px !important;
    padding:.44rem .55rem !important;
    justify-content:center !important;
    border-radius:10px !important;
    font-size:.7rem !important;
  }

  .sien-nav .user-chip .badge{
    display:none;
  }
}

/* Menu compacto sin superposiciones en tablet vertical y movil. */
@media (max-width:991.98px){
  .sien-nav .container-fluid{
    align-items:center;
  }

  .sien-nav .navbar-brand{
    max-width:calc(100% - 64px);
    padding:.2rem 0 !important;
    border-right:0 !important;
  }

  .sien-nav .brand-logo{
    width:clamp(38px, 8vw, 44px) !important;
    height:clamp(38px, 8vw, 44px) !important;
  }

  .sien-nav .brand-title-main{
    font-size:clamp(.92rem, 3.4vw, 1.05rem) !important;
  }

  .sien-nav .brand-subtitle{
    max-width:min(48vw, 230px);
    font-size:clamp(.6rem, 2.2vw, .7rem) !important;
  }

  .sien-nav .version-pill{
    display:none !important;
  }

  .sien-nav .navbar-toggler{
    flex:0 0 auto;
    margin-left:auto;
  }

  .sien-nav .navbar-collapse{
    flex-basis:100%;
    max-width:100%;
    max-height:calc(100vh - 82px);
    margin-top:.5rem;
    padding:.6rem;
    overflow-y:auto;
    border-radius:14px;
  }

  .sien-nav .navbar-nav{
    gap:4px !important;
    margin:0 !important;
  }

  .sien-nav .nav-link,
  .sien-nav .nav-link-acum{
    min-height:40px !important;
    padding:.55rem .7rem !important;
    justify-content:flex-start !important;
    border-radius:10px !important;
    font-size:.78rem !important;
  }

  .sien-nav .nav-auth-actions{
    margin:.45rem 0 0 !important;
    gap:.4rem !important;
  }

  .sien-nav .user-chip,
  .sien-nav .nav-auth-btn{
    min-height:40px !important;
    padding:.52rem .7rem !important;
    justify-content:center !important;
    border-radius:10px !important;
  }
}

@media (max-width:479.98px){
  .sien-nav .brand-subtitle,
  .sien-nav .brand-dot{
    display:none !important;
  }
}

/* Ritmo vertical y superficies compartidas. */
.home-topbar-v3,
.home-entry-band-v4,
.home-page-v4 .home-section-v4,
.acum-titlebar,
.acum-filter-card--ordered,
.acum-kpi-strip,
.row.g-3{
  margin-bottom:clamp(10px, 1vw, 16px) !important;
}

.home-entry-strip-v4,
.home-modules-grid-v4,
.summary-kpi-grid-v3,
.summary-bottom-grid-v3,
.admin-kpi-grid{
  gap:var(--ui-gap) !important;
}

.home-entry-strip-v4{
  grid-template-columns:repeat(auto-fit, minmax(min(220px, 100%), 1fr));
}

.home-modules-grid-v4{
  grid-template-columns:repeat(auto-fit, minmax(min(520px, 100%), 1fr));
}

.summary-kpi-grid-v3,
.admin-kpi-grid{
  grid-auto-rows:1fr;
}

.summary-kpi-card-v3,
.admin-kpi,
.kpi-card,
.acum-metric{
  height:100%;
}

.kpi-card .card-body{
  min-height:clamp(104px, 8vw, 126px) !important;
  padding:clamp(.75rem, 1vw, 1rem) !important;
}

.kpi-card .kpi-value{
  font-size:clamp(1.55rem, 1.3vw + 1rem, 2.25rem);
}

/* Filtros fluidos: auto-fit en escritorio, 3 columnas en tablet, 1 en movil. */
.acum-filter-grid--ordered,
.monthly-filter-card-final .filter-main-grid{
  display:grid !important;
  grid-template-columns:repeat(auto-fit, minmax(124px, 1fr)) !important;
  align-items:end !important;
  gap:clamp(7px, .65vw, 11px) !important;
  width:100%;
  max-width:100%;
  min-width:0;
}

.acum-filter-grid--ordered > *,
.monthly-filter-card-final .filter-main-grid > *{
  grid-column:auto !important;
  width:100%;
  max-width:100%;
  min-width:0 !important;
  margin:0 !important;
}

.acum-filter-grid--ordered .acum-field,
.monthly-filter-card-final .filter-main-grid .acum-field{
  display:flex;
  flex-direction:column;
  gap:.3rem;
}

.acum-filter-grid--ordered .acum-field--wide,
.monthly-filter-card-final .fi-eess{
  grid-column:span 2 !important;
}

.acum-filter-actions--ordered,
.monthly-filter-card-final .fi-actions{
  grid-column:span 2 !important;
  align-self:end;
  display:flex !important;
  justify-content:flex-end !important;
  gap:.45rem !important;
  width:100%;
}

.acum-filter-actions--ordered .btn,
.monthly-filter-card-final .fi-actions .btn{
  min-height:var(--ui-control-h) !important;
  height:var(--ui-control-h) !important;
  flex:1 1 0 !important;
  justify-content:center;
}

.monthly-filter-footer-final{
  gap:clamp(7px, .7vw, 12px);
  padding-top:clamp(7px, .7vw, 11px);
}

.monthly-filter-tools-final{
  gap:clamp(5px, .45vw, 8px);
}

.monthly-filter-tools-final .btn{
  min-height:38px;
}

@media (min-width:1200px){
  .acum-filter-card--ordered,
  .monthly-filter-card-final{
    grid-template-columns:clamp(54px, 5vw, 72px) minmax(0, 1fr) !important;
  }
}

@media (min-width:768px) and (max-width:1199.98px){
  .acum-filter-card--ordered,
  .monthly-filter-card-final{
    grid-template-columns:1fr !important;
  }

  .acum-filter-title-compact,
  .monthly-filter-card-final .acum-filter-title-compact{
    display:none !important;
  }

  .acum-filter-grid--ordered,
  .monthly-filter-card-final .filter-main-grid{
    grid-column:1 !important;
    grid-row:1 !important;
    grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
  }

  .acum-filter-actions--ordered,
  .monthly-filter-card-final .fi-actions{
    grid-column:span 3 !important;
  }
}

@media (max-width:767.98px){
  .acum-filter-card--ordered,
  .monthly-filter-card-final{
    grid-template-columns:1fr !important;
    padding:.75rem !important;
  }

  .acum-filter-title-compact,
  .monthly-filter-card-final .acum-filter-title-compact{
    display:none !important;
  }

  .acum-filter-grid--ordered,
  .monthly-filter-card-final .filter-main-grid{
    grid-column:1 !important;
    grid-row:1 !important;
    grid-template-columns:1fr !important;
  }

  .acum-filter-grid--ordered > *,
  .monthly-filter-card-final .filter-main-grid > *,
  .acum-filter-grid--ordered .acum-field--wide,
  .monthly-filter-card-final .fi-eess,
  .acum-filter-actions--ordered,
  .monthly-filter-card-final .fi-actions{
    grid-column:1 !important;
  }

  .acum-filter-actions--ordered,
  .monthly-filter-card-final .fi-actions{
    justify-content:stretch !important;
  }

  .monthly-filter-footer-final{
    align-items:stretch;
  }

  .monthly-filter-tools-final{
    display:grid;
    grid-template-columns:1fr;
    width:100%;
  }

  .monthly-filter-tools-final .btn{
    width:100%;
  }
}

/* =========================================================
   CIERRE GERENCIAL 2026
   Misma geometría visible para los cuatro módulos en escritorio.
   ========================================================= */
@media (min-width:1200px){
  body.dashboard-compact .site-main{
    padding-top:4px !important;
    padding-bottom:8px !important;
  }

  body.dashboard-compact .acum-titlebar{
    min-height:30px !important;
    padding:0 !important;
    margin-bottom:4px !important;
  }

  body.dashboard-compact .acum-titlebar-icon{
    width:28px !important;
    height:28px !important;
    flex-basis:28px !important;
    font-size:.8rem !important;
  }

  body.dashboard-compact .acum-titlebar h1{
    font-size:1.24rem !important;
    line-height:1 !important;
  }

  body.dashboard-compact .acum-titlebar-period,
  body.dashboard-compact .acum-titlebar-back{
    min-height:27px !important;
    height:27px !important;
    padding:.22rem .46rem !important;
    font-size:.6rem !important;
  }

  body.dashboard-compact .monthly-filter-card-final,
  body.dashboard-compact .acum-filter-card--ordered{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:4px !important;
    padding:5px 7px !important;
    margin-bottom:6px !important;
    border-radius:11px !important;
  }

  body.dashboard-compact .monthly-filter-card-final .filter-main-grid,
  body.dashboard-compact .acum-filter-card--ordered .acum-filter-grid--ordered{
    display:grid !important;
    grid-template-columns:repeat(12, minmax(0, 1fr)) !important;
    gap:4px 6px !important;
    width:100% !important;
    align-items:end !important;
  }

  body.dashboard-compact .monthly-filter-card-final .filter-main-grid > *,
  body.dashboard-compact .acum-filter-card--ordered .acum-filter-grid--ordered > *{
    grid-column:span 1 !important;
    min-width:0 !important;
    width:auto !important;
  }

  body.dashboard-compact .monthly-filter-card-final .fi-eess,
  body.dashboard-compact .acum-filter-card--ordered .acum-field--wide{
    grid-column:span 2 !important;
  }

  body.dashboard-compact .monthly-filter-card-final .fi-criterio,
  body.dashboard-compact .acum-filter-card--ordered .acum-field--altura{
    grid-column:span 1 !important;
  }

  body.dashboard-compact .monthly-filter-card-final .fi-actions,
  body.dashboard-compact .acum-filter-card--ordered .acum-filter-actions--ordered{
    grid-column:span 2 !important;
    display:grid !important;
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
    align-items:end !important;
    gap:4px !important;
    margin:0 !important;
  }

  body.dashboard-compact .monthly-filter-card-final .acum-field,
  body.dashboard-compact .acum-filter-card--ordered .acum-field{
    gap:2px !important;
    font-size:.56rem !important;
    line-height:1 !important;
  }

  body.dashboard-compact .monthly-filter-card-final .form-control,
  body.dashboard-compact .monthly-filter-card-final .form-select,
  body.dashboard-compact .monthly-filter-card-final .btn-acum-multi,
  body.dashboard-compact .monthly-filter-card-final .monthly-criterion-fixed,
  body.dashboard-compact .monthly-filter-card-final .fi-actions .btn,
  body.dashboard-compact .acum-filter-card--ordered .form-control,
  body.dashboard-compact .acum-filter-card--ordered .form-select,
  body.dashboard-compact .acum-filter-card--ordered .btn-acum-multi,
  body.dashboard-compact .acum-filter-card--ordered .acum-switch-ordered,
  body.dashboard-compact .acum-filter-card--ordered .acum-filter-actions--ordered .btn{
    height:30px !important;
    min-height:30px !important;
    padding:.24rem .38rem !important;
    border-radius:7px !important;
    font-size:.59rem !important;
    min-width:0 !important;
  }

  body.dashboard-compact .monthly-filter-card-final .monthly-criterion-fixed,
  body.dashboard-compact .acum-filter-card--ordered .acum-switch-ordered{
    gap:.3rem !important;
    white-space:nowrap !important;
  }

  body.dashboard-compact .monthly-filter-footer-final{
    min-height:26px !important;
    padding-top:3px !important;
    gap:5px !important;
  }

  body.dashboard-compact .monthly-filter-note-final{
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
    font-size:.58rem !important;
  }

  body.dashboard-compact .monthly-filter-tools-final{
    flex-wrap:nowrap !important;
    gap:4px !important;
  }

  body.dashboard-compact .monthly-filter-tools-final .btn,
  body.dashboard-compact .monthly-filter-footer-final .selected-badge{
    min-height:26px !important;
    height:26px !important;
    padding:.2rem .4rem !important;
    font-size:.57rem !important;
  }

  body.dashboard-compact .monthly-page-final > .row.g-3.mb-3{
    --bs-gutter-x:8px;
    margin-bottom:6px !important;
  }

  body.dashboard-compact .acum-kpi-strip{
    margin-bottom:6px !important;
  }

  body.dashboard-compact .kpi-card .card-body,
  body.dashboard-compact .acum-metric{
    height:80px !important;
    min-height:80px !important;
    padding:.38rem .52rem !important;
  }

  body.dashboard-compact .kpi-card .kpi-ico,
  body.dashboard-compact .acum-metric-icon{
    width:34px !important;
    height:34px !important;
    flex:0 0 34px !important;
    font-size:.86rem !important;
  }

  body.dashboard-compact .kpi-card .kpi-title,
  body.dashboard-compact .acum-metric-body > span{
    margin-bottom:0 !important;
    font-size:.58rem !important;
    line-height:1.05 !important;
  }

  body.dashboard-compact .kpi-card .kpi-value,
  body.dashboard-compact .acum-metric-body strong,
  body.dashboard-compact .acum-metric--pct .acum-metric-body strong{
    margin:.05rem 0 !important;
    font-size:1.36rem !important;
    line-height:1 !important;
  }

  body.dashboard-compact .kpi-card .kpi-foot,
  body.dashboard-compact .acum-metric-body small{
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
    font-size:.54rem !important;
    line-height:1.05 !important;
  }

  body.dashboard-compact #kpi_extra.kpi-severity-grid{
    gap:4px !important;
    margin-top:.1rem !important;
  }

  body.dashboard-compact .kpi-sev-item{
    min-width:0 !important;
    padding:.18rem .1rem !important;
    border-radius:7px !important;
  }

  body.dashboard-compact .kpi-sev-item strong{
    font-size:.76rem !important;
    line-height:1 !important;
  }

  body.dashboard-compact .kpi-sev-item span{
    font-size:.46rem !important;
    line-height:1 !important;
  }

  body.dashboard-compact .panel-card .card-header,
  body.dashboard-compact .acum-panel .acum-panel-head,
  body.dashboard-compact .acum-panel--ordered .acum-panel-head--ordered{
    min-height:34px !important;
    margin-bottom:2px !important;
    padding:.3rem .48rem !important;
    gap:4px !important;
  }

  body.dashboard-compact .panel-card .card-body,
  body.dashboard-compact .acum-panel,
  body.dashboard-compact .acum-panel--ordered{
    padding:.42rem .52rem !important;
  }

  body.dashboard-compact .chart-main-wrap,
  body.dashboard-compact .acum-page--ordered .acum-chart-wrap--wide{
    height:clamp(310px, 38dvh, 400px) !important;
    min-height:310px !important;
    max-height:400px !important;
  }
}

@media (min-width:1200px) and (max-height:820px){
  body.dashboard-compact .kpi-card .card-body,
  body.dashboard-compact .acum-metric{
    height:72px !important;
    min-height:72px !important;
  }

  body.dashboard-compact .chart-main-wrap,
  body.dashboard-compact .acum-page--ordered .acum-chart-wrap--wide{
    height:300px !important;
    min-height:300px !important;
    max-height:300px !important;
  }
}

/* =========================================================
   Acumulados ultra compactos: Anemia y DCI.
   Misma densidad de los mensuales, sin retirar controles.
   ========================================================= */
@media (min-width:1200px){
  body:has(.acum-page--ordered) .site-main{
    padding-top:clamp(6px, .5vw, 9px);
  }

  body:has(.acum-page--ordered) .sien-nav .container-fluid{
    padding-block:4px;
  }

  body:has(.acum-page--ordered) .sien-nav .brand-logo{
    width:42px !important;
    height:42px !important;
  }

  body:has(.acum-page--ordered) .sien-nav .brand-title-main{
    font-size:1rem !important;
  }

  body:has(.acum-page--ordered) .sien-nav .brand-subtitle{
    font-size:.65rem !important;
    line-height:1.05;
  }

  body:has(.acum-page--ordered) .sien-nav .version-pill{
    padding:.28rem .46rem !important;
    font-size:.66rem;
  }

  body:has(.acum-page--ordered) .sien-nav .nav-link,
  body:has(.acum-page--ordered) .sien-nav .nav-link-acum,
  body:has(.acum-page--ordered) .sien-nav .user-chip,
  body:has(.acum-page--ordered) .sien-nav .nav-auth-btn{
    min-height:38px !important;
    height:38px !important;
    padding:.42rem .56rem !important;
    border-radius:10px !important;
    font-size:.72rem !important;
  }

  body:has(.acum-page--ordered) .acum-page--ordered .acum-titlebar{
    min-height:32px;
    margin-bottom:6px !important;
  }

  body:has(.acum-page--ordered) .acum-page--ordered .acum-titlebar-icon{
    width:28px;
    height:28px;
    flex-basis:28px;
    border-radius:7px;
    font-size:.82rem;
  }

  body:has(.acum-page--ordered) .acum-page--ordered .acum-titlebar h1{
    font-size:1.28rem;
    letter-spacing:-.025em;
  }

  body:has(.acum-page--ordered) .acum-page--ordered .acum-titlebar-period,
  body:has(.acum-page--ordered) .acum-page--ordered .acum-titlebar-back{
    min-height:28px;
    height:28px;
    padding:.25rem .48rem;
    font-size:.62rem;
  }

  body:has(.acum-page--ordered) .acum-filter-card--ordered{
    padding:6px 8px !important;
    gap:4px !important;
    border-radius:12px !important;
    margin-bottom:8px !important;
  }

  body:has(.acum-page--ordered) .acum-filter-grid--ordered{
    grid-template-columns:repeat(auto-fit, minmax(94px, 1fr)) !important;
    gap:5px 7px !important;
  }

  body:has(.acum-page--ordered) .acum-filter-grid--ordered .acum-field{
    gap:2px;
    font-size:.55rem !important;
    line-height:1;
  }

  body:has(.acum-page--ordered) .acum-filter-grid--ordered .form-control,
  body:has(.acum-page--ordered) .acum-filter-grid--ordered .form-select,
  body:has(.acum-page--ordered) .acum-filter-grid--ordered .btn-acum-multi,
  body:has(.acum-page--ordered) .acum-filter-grid--ordered .acum-switch-ordered,
  body:has(.acum-page--ordered) .acum-filter-actions--ordered .btn{
    height:32px !important;
    min-height:32px !important;
    padding:.28rem .46rem !important;
    border-radius:7px !important;
    font-size:.62rem !important;
  }

  body:has(.acum-page--ordered) .acum-filter-actions--ordered{
    gap:5px !important;
  }

  body:has(.acum-page--ordered) .acum-kpi-strip{
    grid-template-columns:repeat(5, minmax(0, 1fr)) !important;
    margin-bottom:8px !important;
    border-radius:12px;
  }

  body:has(.acum-page--ordered) .acum-metric{
    min-height:74px;
    height:74px;
    gap:.45rem;
    padding:.45rem .58rem;
    border-top:0 !important;
  }

  body:has(.acum-page--ordered) .acum-metric::after{
    display:block !important;
  }

  body:has(.acum-page--ordered) .acum-metric:last-child::after{
    display:none !important;
  }

  body:has(.acum-page--ordered) .acum-metric-icon{
    width:36px;
    height:36px;
    flex-basis:36px;
    font-size:.9rem;
  }

  body:has(.acum-page--ordered) .acum-metric-body > span{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:.58rem;
  }

  body:has(.acum-page--ordered) .acum-metric-body strong,
  body:has(.acum-page--ordered) .acum-metric--pct .acum-metric-body strong{
    font-size:1.34rem;
    line-height:1;
  }

  body:has(.acum-page--ordered) .acum-metric-body small{
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:.55rem;
    line-height:1;
  }

  body:has(.acum-page--ordered) .acum-panel--ordered{
    padding:.55rem .65rem !important;
  }

  body:has(.acum-page--ordered) .acum-panel-head--ordered{
    min-height:36px;
    margin-bottom:.25rem !important;
    padding:.3rem .45rem;
  }

  body:has(.acum-page--ordered) .acum-chart-heading-icon{
    width:30px;
    height:30px;
    flex-basis:30px;
    border-radius:7px;
    font-size:.8rem;
  }

  body:has(.acum-page--ordered) .acum-chart-heading strong{
    font-size:.72rem !important;
  }

  body:has(.acum-page--ordered) .acum-chart-heading small{
    font-size:.58rem !important;
  }

  body:has(.acum-page--ordered) .acum-head-actions .btn,
  body:has(.acum-page--ordered) .acum-inline-control,
  body:has(.acum-page--ordered) .acum-inline-control .form-select{
    min-height:28px !important;
    height:28px !important;
    padding:.22rem .4rem !important;
    border-radius:7px !important;
    font-size:.58rem !important;
  }
}

@media (min-width:1440px){
  body:has(.acum-page--ordered) .sien-nav .brand-subtitle{
    display:none !important;
  }

  body:has(.acum-page--ordered) .sien-nav .navbar-brand{
    max-width:190px;
  }
}

/* =========================================================
   Mensuales ultra compactos: Anemia al mes y DCI al mes.
   Mantiene controles y contenido; reduce solo densidad visual.
   ========================================================= */
@media (min-width:1200px){
  body.page-mensual .site-main{
    padding-top:clamp(6px, .5vw, 9px);
  }

  body.page-mensual .sien-nav .container-fluid{
    padding-block:4px;
  }

  body.page-mensual .sien-nav .brand-logo{
    width:42px !important;
    height:42px !important;
  }

  body.page-mensual .sien-nav .brand-title-main{
    font-size:1rem !important;
  }

  body.page-mensual .sien-nav .brand-subtitle{
    font-size:.65rem !important;
    line-height:1.05;
  }

  body.page-mensual .sien-nav .version-pill{
    padding:.28rem .46rem !important;
    font-size:.66rem;
  }

  body.page-mensual .sien-nav .nav-link,
  body.page-mensual .sien-nav .nav-link-acum,
  body.page-mensual .sien-nav .user-chip,
  body.page-mensual .sien-nav .nav-auth-btn{
    min-height:38px !important;
    height:38px !important;
    padding:.42rem .56rem !important;
    border-radius:10px !important;
    font-size:.72rem !important;
  }

  body.page-mensual .monthly-page-final .acum-titlebar{
    min-height:32px;
    margin-bottom:6px !important;
  }

  body.page-mensual .monthly-page-final .acum-titlebar-icon{
    width:28px;
    height:28px;
    flex-basis:28px;
    border-radius:7px;
    font-size:.82rem;
  }

  body.page-mensual .monthly-page-final .acum-titlebar h1{
    font-size:1.28rem;
    letter-spacing:-.025em;
  }

  body.page-mensual .monthly-page-final .acum-titlebar-period,
  body.page-mensual .monthly-page-final .acum-titlebar-back{
    min-height:28px;
    height:28px;
    padding:.25rem .48rem;
    font-size:.62rem;
  }

  body.page-mensual .monthly-filter-card-final{
    padding:6px 8px !important;
    gap:4px !important;
    border-radius:12px !important;
    margin-bottom:8px !important;
  }

  body.page-mensual .monthly-filter-card-final .filter-main-grid{
    grid-template-columns:repeat(auto-fit, minmax(98px, 1fr)) !important;
    gap:5px 7px !important;
  }

  body.page-mensual .monthly-filter-card-final .filter-main-grid .acum-field{
    gap:2px;
    font-size:.55rem !important;
    line-height:1;
  }

  body.page-mensual .monthly-filter-card-final .form-control,
  body.page-mensual .monthly-filter-card-final .form-select,
  body.page-mensual .monthly-filter-card-final .btn-acum-multi,
  body.page-mensual .monthly-filter-card-final .monthly-criterion-fixed,
  body.page-mensual .monthly-filter-card-final .fi-actions .btn{
    height:32px !important;
    min-height:32px !important;
    padding:.28rem .46rem !important;
    border-radius:7px !important;
    font-size:.62rem !important;
  }

  body.page-mensual .monthly-filter-card-final .fi-actions{
    gap:5px !important;
  }

  body.page-mensual .monthly-filter-footer-final{
    min-height:28px;
    padding-top:4px;
    gap:6px;
  }

  body.page-mensual .monthly-filter-note-final{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:.59rem;
  }

  body.page-mensual .monthly-filter-tools-final{
    flex-wrap:nowrap;
    gap:5px;
  }

  body.page-mensual .monthly-filter-tools-final .btn,
  body.page-mensual .monthly-filter-footer-final .selected-badge{
    min-height:28px !important;
    height:28px !important;
    padding:.24rem .44rem !important;
    border-radius:7px !important;
    font-size:.58rem !important;
  }

  body.page-mensual .monthly-page-final > .row.g-3.mb-3{
    --bs-gutter-x:10px;
    margin-bottom:8px !important;
  }

  body.page-mensual .kpi-card .card-body{
    min-height:74px !important;
    height:74px;
    padding:.48rem .62rem !important;
  }

  body.page-mensual .kpi-card .kpi-title{
    font-size:.59rem !important;
    line-height:1.05;
  }

  body.page-mensual .kpi-card .kpi-value{
    margin:.08rem 0 !important;
    font-size:1.52rem !important;
  }

  body.page-mensual .kpi-card .kpi-foot{
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:.56rem !important;
    line-height:1.05;
  }

  body.page-mensual .kpi-card .kpi-ico{
    width:38px !important;
    height:38px !important;
    flex-basis:38px !important;
    border-radius:11px !important;
    font-size:.95rem !important;
  }

  body.page-mensual .kpi-card-extra .kpi-main-copy{
    min-width:0;
  }
}

@media (min-width:1440px){
  body.page-mensual .sien-nav .brand-subtitle{
    display:none !important;
  }

  body.page-mensual .sien-nav .navbar-brand{
    max-width:190px;
  }
}

/* Densidad final de modulos: mas informacion visible antes del primer scroll. */
.monthly-page-final,
.acum-page--ordered{
  padding-top:0;
}

.monthly-page-final .acum-titlebar,
.acum-page--ordered .acum-titlebar{
  min-height:0;
  gap:.5rem;
  padding:.05rem 0;
  margin-bottom:clamp(7px, .65vw, 10px) !important;
}

.monthly-page-final .acum-titlebar-main,
.acum-page--ordered .acum-titlebar-main{
  gap:.5rem;
}

.monthly-page-final .acum-titlebar-icon,
.acum-page--ordered .acum-titlebar-icon{
  width:36px;
  height:36px;
  flex-basis:36px;
  border-radius:9px;
  font-size:1rem;
}

.monthly-page-final .acum-titlebar h1,
.acum-page--ordered .acum-titlebar h1{
  font-size:clamp(1.2rem, .75vw + .95rem, 1.6rem);
}

.monthly-page-final .acum-titlebar-period,
.monthly-page-final .acum-titlebar-back,
.acum-page--ordered .acum-titlebar-period,
.acum-page--ordered .acum-titlebar-back{
  min-height:34px;
  padding:.35rem .58rem;
  border-radius:8px;
  font-size:.69rem;
}

.monthly-filter-card-final,
.acum-filter-card--ordered{
  gap:.5rem !important;
  padding:clamp(.58rem, .65vw, .78rem) !important;
  border-radius:14px !important;
}

.acum-filter-grid--ordered,
.monthly-filter-card-final .filter-main-grid{
  grid-template-columns:repeat(auto-fit, minmax(108px, 1fr)) !important;
  gap:clamp(5px, .45vw, 8px) !important;
}

.acum-filter-grid--ordered .acum-field,
.monthly-filter-card-final .filter-main-grid .acum-field{
  gap:.22rem;
  font-size:.61rem !important;
  line-height:1.1;
}

.acum-filter-grid--ordered .form-control,
.acum-filter-grid--ordered .form-select,
.acum-filter-grid--ordered .btn-acum-multi,
.acum-switch-ordered,
.monthly-filter-card-final .form-control,
.monthly-filter-card-final .form-select,
.monthly-filter-card-final .btn-acum-multi,
.monthly-criterion-fixed{
  height:36px !important;
  min-height:36px !important;
  padding:.35rem .55rem !important;
  border-radius:8px !important;
  font-size:.69rem !important;
}

.acum-filter-actions--ordered .btn,
.monthly-filter-card-final .fi-actions .btn{
  height:36px !important;
  min-height:36px !important;
  padding:.35rem .52rem !important;
  border-radius:8px !important;
  font-size:.68rem !important;
}

.monthly-filter-footer-final{
  min-height:34px;
  padding-top:.48rem;
  gap:.5rem;
}

.monthly-filter-note-final{
  font-size:.67rem;
  line-height:1.2;
}

.monthly-filter-tools-final .btn,
.selected-badge{
  min-height:32px !important;
  height:32px !important;
  padding:.3rem .52rem !important;
  border-radius:8px !important;
  font-size:.65rem !important;
}

.kpi-card .card-body{
  min-height:92px !important;
  padding:.65rem .75rem !important;
}

.kpi-card .kpi-title{
  font-size:.68rem !important;
  line-height:1.15;
}

.kpi-card .kpi-value{
  margin:.12rem 0 !important;
  font-size:clamp(1.42rem, 1.05vw + .95rem, 1.92rem) !important;
  line-height:1 !important;
}

.kpi-card .kpi-foot{
  font-size:.65rem !important;
  line-height:1.2;
}

.kpi-card .kpi-ico{
  width:48px !important;
  height:48px !important;
  flex:0 0 48px !important;
  border-radius:14px !important;
  font-size:1.18rem !important;
}

.acum-metric{
  min-height:88px;
  gap:.55rem;
  padding:.62rem .7rem;
}

.acum-metric-icon{
  width:38px;
  height:38px;
  flex-basis:38px;
  font-size:1rem;
}

.acum-metric-body > span{
  font-size:.63rem;
}

.acum-metric-body strong,
.acum-metric--pct .acum-metric-body strong{
  font-size:1.42rem;
}

.acum-metric-body small{
  font-size:.61rem;
  line-height:1.15;
}

.panel-card .card-header,
.acum-panel .acum-panel-head,
.acum-panel--ordered .acum-panel-head--ordered{
  min-height:44px;
  margin-bottom:.35rem !important;
  padding:.48rem .68rem;
  gap:.4rem;
}

.panel-card .card-body,
.acum-panel,
.acum-panel--ordered{
  padding:.65rem .72rem !important;
}

.panel-card .card-header .fw-semibold,
.acum-chart-heading strong,
.acum-panel-head strong{
  font-size:.78rem !important;
}

.panel-card .card-header .btn,
.panel-card .card-header .form-select,
.panel-card .card-header .badge,
.chart-pill,
.acum-head-actions .btn,
.acum-inline-control,
.acum-inline-control .form-select{
  min-height:30px !important;
  height:30px !important;
  padding:.25rem .45rem !important;
  border-radius:8px !important;
  font-size:.63rem !important;
}

@media (min-width:1200px){
  .acum-filter-card--ordered,
  .monthly-filter-card-final{
    grid-template-columns:1fr !important;
  }

  .acum-filter-title-compact,
  .monthly-filter-card-final .acum-filter-title-compact{
    display:none !important;
  }

  .acum-filter-grid--ordered,
  .monthly-filter-card-final .filter-main-grid{
    grid-column:1 !important;
    grid-row:1 !important;
  }

  .acum-filter-actions--ordered,
  .monthly-filter-card-final .fi-actions{
    grid-column:span 2 !important;
  }
}

@media (max-width:767.98px){
  .monthly-page-final .acum-titlebar,
  .acum-page--ordered .acum-titlebar{
    align-items:stretch;
  }

  .monthly-page-final .acum-titlebar-back,
  .acum-page--ordered .acum-titlebar-back{
    width:100%;
  }

  .kpi-card .card-body,
  .acum-metric{
    min-height:86px !important;
  }
}

/* KPI: distribucion uniforme y apilado estricto bajo 768 px. */
.acum-kpi-strip{
  grid-template-columns:repeat(auto-fit, minmax(210px, 1fr));
  align-items:stretch;
}

.acum-metric{
  min-height:104px;
  padding:clamp(.72rem, .9vw, .95rem);
}

@media (min-width:1440px){
  .acum-kpi-strip{
    grid-template-columns:repeat(5, minmax(0, 1fr));
  }
}

@media (min-width:768px) and (max-width:1199.98px){
  .acum-kpi-strip{
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }

  .admin-kpi-grid{
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }
}

@media (max-width:767.98px){
  .acum-kpi-strip,
  .admin-kpi-grid,
  .summary-kpi-grid-v3,
  .summary-bottom-grid-v3,
  .home-modules-grid-v4{
    grid-template-columns:1fr !important;
  }

  .acum-metric{
    min-height:92px;
  }

  .acum-metric::after{
    display:none !important;
  }

  .acum-metric + .acum-metric{
    border-top:1px solid #e3ebf5;
  }
}

/* Medidas compartidas entre las cuatro pantallas de indicadores. */
@media (min-width:1200px){
  body.page-mensual:has(.acum-page--ordered) .sien-nav .container-fluid{
    padding-block:3px !important;
  }
  body.page-mensual:has(.acum-page--ordered) .sien-nav .brand-logo{
    width:36px !important;
    height:36px !important;
  }
  body.page-mensual:has(.acum-page--ordered) .sien-nav .brand-title-main{
    font-size:clamp(.88rem,.8vw,1rem) !important;
  }
  body.page-mensual:has(.acum-page--ordered) .sien-nav .brand-subtitle{
    display:none !important;
  }
  body.page-mensual:has(.acum-page--ordered) .sien-nav .nav-link,
  body.page-mensual:has(.acum-page--ordered) .sien-nav .nav-link-acum,
  body.page-mensual:has(.acum-page--ordered) .sien-nav .user-chip,
  body.page-mensual:has(.acum-page--ordered) .sien-nav .nav-auth-btn{
    min-height:34px !important;
    height:34px !important;
    padding:.35rem clamp(.4rem,.5vw,.6rem) !important;
    font-size:clamp(.72rem,.68vw,.82rem) !important;
  }
}

@media (min-width:768px) and (max-width:1199.98px){
  body:has(.acum-page--ordered) .acum-metric{
    min-height:92px !important;
    padding:clamp(.52rem,.7vw,.65rem) !important;
  }
}

/* Graficos: lienzo responsive, altura por viewport y scroll solo en el componente. */
.chart-main-wrap,
.chart-trend-wrap,
.chart-secondary-wrap,
.acum-chart-wrap{
  position:relative;
  width:100%;
  max-width:100%;
  min-width:0;
  overflow-x:auto !important;
  overflow-y:hidden !important;
  overscroll-behavior-inline:contain;
  scrollbar-width:thin;
}

.chart-main-wrap canvas,
.chart-trend-wrap canvas,
.chart-secondary-wrap canvas,
.acum-chart-wrap canvas{
  display:block;
  height:100% !important;
}

.chart-scroll-inner{
  height:100%;
  min-width:100%;
  max-width:none;
}

.chart-scroll-inner canvas,
.acum-chart-wrap--wide canvas{
  max-width:none;
}

.chart-main-wrap{
  height:clamp(390px, 30vw, 470px) !important;
  min-height:390px !important;
  max-height:470px !important;
}

.chart-trend-wrap,
.chart-secondary-wrap{
  height:clamp(270px, 20vw, 330px) !important;
  min-height:270px !important;
  max-height:330px !important;
}

.acum-page--ordered .acum-chart-wrap--wide{
  height:clamp(390px, 29vw, 460px) !important;
  min-height:390px !important;
  max-height:460px !important;
}

.acum-chart-wrap--trend-full{
  height:clamp(270px, 20vw, 320px) !important;
  min-height:270px !important;
  max-height:320px !important;
}

@media (min-width:768px) and (max-width:1199.98px){
  .chart-main-wrap,
  .acum-page--ordered .acum-chart-wrap--wide{
    height:clamp(350px, 39vw, 420px) !important;
    min-height:350px !important;
    max-height:420px !important;
  }

  .chart-trend-wrap,
  .chart-secondary-wrap,
  .acum-chart-wrap--trend-full{
    height:clamp(250px, 29vw, 300px) !important;
    min-height:250px !important;
    max-height:300px !important;
  }
}

@media (max-width:767.98px){
  .site-main{
    padding-inline:clamp(8px, 3vw, 14px);
  }

  .chart-main-wrap,
  .acum-page--ordered .acum-chart-wrap--wide{
    height:clamp(320px, 88vw, 390px) !important;
    min-height:320px !important;
    max-height:390px !important;
  }

  .chart-trend-wrap,
  .chart-secondary-wrap,
  .acum-chart-wrap--trend-full{
    height:clamp(240px, 68vw, 290px) !important;
    min-height:240px !important;
    max-height:290px !important;
  }

  .card-header,
  .acum-panel-head,
  .acum-panel-head--ordered{
    align-items:flex-start !important;
    flex-direction:column;
  }

  .acum-head-actions{
    display:grid;
    grid-template-columns:1fr;
    width:100%;
  }

  .acum-head-actions .btn,
  .acum-inline-control{
    width:100%;
  }
}

/* Scroll horizontal reservado a tablas y graficos extensos. */
.table-responsive,
.table-shell,
.nominal-wrap{
  max-width:100%;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
}

/* Nominal ejecutivo: lectura rápida por defecto, trazabilidad bajo demanda. */
.nominal-view-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:clamp(.45rem,1vw,.85rem);
  margin:0 0 .55rem;
  padding:.45rem .6rem;
  border:1px solid #dbe8f5;
  border-radius:.65rem;
  background:#f7fbff;
  color:#49627d;
  font-size:clamp(.72rem,.7vw,.82rem);
  font-weight:650;
}

.nominal-view-toolbar .btn{
  flex:0 0 auto;
  min-height:32px;
  padding:.3rem .65rem;
  font-size:.75rem;
  white-space:nowrap;
}

#tblNominal.nominal-compact{
  width:100%!important;
  min-width:clamp(980px,78vw,1320px)!important;
  table-layout:auto;
}

#tblNominal.nominal-compact th,
#tblNominal.nominal-compact td{
  padding:.38rem .5rem!important;
  font-size:clamp(.7rem,.67vw,.78rem)!important;
  line-height:1.18!important;
  vertical-align:middle!important;
  white-space:nowrap;
}

#tblNominal.nominal-compact th{
  height:34px;
}

@media (max-width:767.98px){
  .nominal-view-toolbar{align-items:stretch;flex-direction:column;}
  .nominal-view-toolbar .btn{width:100%;}
  #tblNominal.nominal-compact{min-width:900px!important;}
}

/* Inicio ejecutivo: elimina repeticion visual y prioriza los 4 paneles. */
.home-page-v4 .home-topbar-v3{
  min-height:0;
  align-items:center;
  margin-bottom:clamp(6px, .55vw, 9px) !important;
}

.home-page-v4 .home-kicker-row-v3{
  display:none;
}

.home-page-v4 .home-main-title-v3{
  font-size:clamp(1.2rem, .8vw + .9rem, 1.55rem);
  line-height:1.05;
}

.home-page-v4 .home-topbar-actions-v3{
  gap:.4rem;
}

.home-page-v4 .home-global-pill-v3,
.home-page-v4 .home-topbar-btn-v3{
  min-height:32px;
  padding:.35rem .65rem;
  font-size:.69rem;
}

.home-page-v4 .home-entry-band-v4{
  gap:0;
  margin-bottom:clamp(7px, .65vw, 10px) !important;
}

.home-page-v4 .home-entry-strip-v4{
  gap:clamp(6px, .55vw, 9px) !important;
}

.home-page-v4 .home-entry-btn-v3{
  min-height:44px;
  gap:.55rem;
  padding:.42rem .62rem;
  border-radius:12px;
}

.home-page-v4 .home-entry-btn-v3 i{
  width:30px;
  height:30px;
  flex:0 0 30px;
  border-radius:9px;
  font-size:.82rem;
}

.home-page-v4 .home-entry-btn-v3 strong{
  font-size:.78rem;
}

.home-page-v4 .home-entry-btn-v3 small{
  display:none;
}

.home-page-v4 .home-entry-meta-row-v4,
.home-page-v4 .home-section-compact-v4{
  display:none !important;
}

.home-page-v4 .summary-card-v3{
  padding:clamp(.66rem, .65vw, .82rem);
  border-radius:16px;
}

.home-page-v4 .summary-card-head-v3{
  gap:.45rem;
  margin-bottom:.5rem;
}

.home-page-v4 .summary-chip-row-v4{
  gap:.3rem;
}

.home-page-v4 .summary-chip-v3,
.home-page-v4 .summary-source-badge-v4{
  padding:.25rem .45rem;
  font-size:.6rem;
}

.home-page-v4 .summary-title-v3{
  margin-top:.35rem !important;
  font-size:.93rem;
}

.home-page-v4 .summary-copy-v3{
  min-height:2.25em;
  font-size:.69rem;
  line-height:1.2;
}

.home-page-v4 .summary-head-actions-v3{
  gap:.3rem;
}

.home-page-v4 .summary-period-v3,
.home-page-v4 .summary-open-btn-v3{
  min-height:28px;
  padding:.3rem .48rem;
  font-size:.62rem;
}

.home-page-v4 .summary-main-band-v3{
  grid-template-columns:minmax(105px, .8fr) minmax(0, 1.2fr);
  gap:.45rem;
  padding:.52rem .58rem;
  border-radius:12px;
}

.home-page-v4 .summary-label-v3,
.home-page-v4 .summary-main-bar-v3 small{
  font-size:.59rem;
}

.home-page-v4 .summary-main-value-v3{
  font-size:clamp(1.35rem, 1.25vw, 1.65rem);
}

.home-page-v4 .summary-main-meta-v3{
  gap:.25rem;
  font-size:.65rem;
}

.home-page-v4 .summary-kpi-grid-v3{
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:.4rem !important;
}

.home-page-v4 .summary-kpi-card-v3{
  min-height:54px;
  padding:.45rem .5rem;
  border-radius:11px;
}

.home-page-v4 .summary-kpi-card-v3 span{
  font-size:.59rem;
}

.home-page-v4 .summary-kpi-card-v3 strong{
  font-size:1rem;
}

.home-page-v4 .summary-bottom-grid-v3{
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:.45rem !important;
}

.home-page-v4 .summary-detail-card-v3{
  min-width:0;
  padding:.52rem;
  border-radius:12px;
}

.home-page-v4 .summary-mini-label-v3{
  font-size:.55rem;
}

.home-page-v4 .summary-detail-title-v3{
  font-size:.67rem;
  line-height:1.15;
}

.home-page-v4 .summary-detail-total-v3{
  font-size:.6rem;
}

.home-page-v4 .summary-breakdown-v3{
  grid-template-columns:76px minmax(0, 1fr);
  gap:.42rem;
}

.home-page-v4 .summary-ring-v3{
  width:76px;
  height:76px;
}

.home-page-v4 .summary-ring-center-v3 small{
  font-size:.48rem;
}

.home-page-v4 .summary-ring-center-v3 strong{
  font-size:.84rem;
}

.home-page-v4 .summary-legend-item-v3{
  gap:.2rem;
  padding:.24rem .3rem;
}

.home-page-v4 .summary-legend-item-v3 span,
.home-page-v4 .summary-legend-item-v3 strong,
.home-page-v4 .summary-trend-foot-v3{
  font-size:.57rem;
}

.home-page-v4 .summary-spark-wrap-v3{
  min-height:62px;
  height:62px;
}

/* Densidad compartida de los cuatro módulos. El selector de contenido
   también reconoce los acumulados con una plantilla base anterior. */
@media (min-width:1200px){
  body:is(.dashboard-compact, :has(.acum-page--ordered)) .sien-nav .container-fluid{
    padding-block:3px;
  }
  body:is(.dashboard-compact, :has(.acum-page--ordered)) .sien-nav .navbar-brand{
    padding-block:0 !important;
    max-width:205px;
  }
  body:is(.dashboard-compact, :has(.acum-page--ordered)) .sien-nav .brand-logo{
    width:36px !important;
    height:36px !important;
  }
  body:is(.dashboard-compact, :has(.acum-page--ordered)) .sien-nav .brand-title-main{
    font-size:clamp(.88rem, .8vw, 1rem) !important;
  }
  body:is(.dashboard-compact, :has(.acum-page--ordered)) .sien-nav .brand-subtitle{
    display:none !important;
  }
  body:is(.dashboard-compact, :has(.acum-page--ordered)) .sien-nav .nav-link,
  body:is(.dashboard-compact, :has(.acum-page--ordered)) .sien-nav .user-chip,
  body:is(.dashboard-compact, :has(.acum-page--ordered)) .sien-nav .nav-auth-btn{
    height:34px !important;
    min-height:34px !important;
    padding:.35rem clamp(.4rem, .5vw, .6rem) !important;
    font-size:clamp(.72rem, .68vw, .82rem) !important;
  }
  body:is(.dashboard-compact, :has(.acum-page--ordered)) .site-main{
    padding-top:6px;
  }
  body:is(.dashboard-compact, :has(.acum-page--ordered)) .acum-filter-grid--ordered > .acum-field--altura{
    grid-column:span 2 !important;
  }
  body:is(.dashboard-compact, :has(.acum-page--ordered)) .acum-switch-ordered,
  body:is(.dashboard-compact, :has(.acum-page--ordered)) .monthly-criterion-fixed{
    font-size:.68rem !important;
    white-space:normal;
    line-height:1.1;
  }
  body:is(.dashboard-compact, :has(.acum-page--ordered)) .acum-metric{
    height:auto;
    min-height:74px;
    padding:.48rem .62rem;
    gap:7px;
  }
  body:is(.dashboard-compact, :has(.acum-page--ordered)) .acum-metric-icon{
    width:38px;
    height:38px;
    flex-basis:38px;
    font-size:.95rem;
  }

  /* Los acumulados también heredan dashboard-compact. Esta regla explícita
     evita que la variante anterior de 34 px gane por el shorthand flex. */
  body.dashboard-compact:has(.acum-page--ordered) .acum-metric-icon{
    width:38px !important;
    height:38px !important;
    flex:0 0 38px !important;
    font-size:.95rem !important;
  }
  body.dashboard-compact:has(.acum-page--ordered) .acum-metric-body strong,
  body.dashboard-compact:has(.acum-page--ordered) .acum-metric--pct .acum-metric-body strong{
    margin:.08rem 0 !important;
    font-size:1.52rem !important;
    line-height:1 !important;
  }
  body:is(.dashboard-compact, :has(.acum-page--ordered)) .acum-metric-body > span,
  body:is(.dashboard-compact, :has(.acum-page--ordered)) .acum-metric-body small{
    overflow:visible;
    white-space:normal;
    font-size:clamp(.63rem, .58vw, .72rem);
    line-height:1.15;
  }
  body:is(.dashboard-compact, :has(.acum-page--ordered)) .acum-metric-body strong,
  body:is(.dashboard-compact, :has(.acum-page--ordered)) .acum-metric--pct .acum-metric-body strong{
    font-size:1.52rem;
    line-height:1.05;
  }
  body:is(.dashboard-compact, :has(.acum-page--ordered)) .kpi-card .card-body{
    height:auto;
    min-height:74px !important;
  }
  body:is(.dashboard-compact, :has(.acum-page--ordered)) .kpi-card .kpi-foot{
    overflow:visible;
    white-space:normal;
    font-size:.65rem !important;
  }
  body:is(.dashboard-compact, :has(.acum-page--ordered)) .acum-filter-grid--ordered .acum-field,
  body:is(.dashboard-compact, :has(.acum-page--ordered)) .monthly-filter-card-final .filter-main-grid .acum-field{
    font-size:.67rem !important;
    line-height:1.15;
  }
  body:is(.dashboard-compact, :has(.acum-page--ordered)) .acum-filter-grid--ordered .form-control,
  body:is(.dashboard-compact, :has(.acum-page--ordered)) .acum-filter-grid--ordered .form-select,
  body:is(.dashboard-compact, :has(.acum-page--ordered)) .acum-filter-grid--ordered .btn-acum-multi,
  body:is(.dashboard-compact, :has(.acum-page--ordered)) .monthly-filter-card-final .form-control,
  body:is(.dashboard-compact, :has(.acum-page--ordered)) .monthly-filter-card-final .form-select,
  body:is(.dashboard-compact, :has(.acum-page--ordered)) .monthly-filter-card-final .btn-acum-multi{
    font-size:.72rem !important;
  }
}

/* 1600/1920: los cuatro modulos quedan en una sola vision. */
@media (min-width:1600px){
  .home-page-v4{
    display:grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    align-items:start;
    gap:var(--ui-gap);
  }

  .home-page-v4 > .home-topbar-v3,
  .home-page-v4 > .home-entry-band-v4{
    grid-column:1 / -1;
  }

  .home-page-v4 > .home-section-v4,
  .home-page-v4 > .home-section-v4 > .home-modules-grid-v4{
    display:contents;
  }

  .home-page-v4 .home-module-card{
    grid-column:span 1;
  }
}

/* 1200–1599: lectura 2x2 sin desperdiciar ancho. */
@media (min-width:1200px) and (max-width:1599.98px){
  .home-page-v4 .home-modules-grid-v4{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media (min-width:768px) and (max-width:1199.98px){
  .home-page-v4 .home-modules-grid-v4{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width:1199.98px){
  .home-page-v4 .summary-main-band-v3{
    grid-template-columns:1fr;
  }
}

@media (max-width:767.98px){
  .home-page-v4 .home-topbar-actions-v3,
  .home-page-v4 .home-global-pill-v3,
  .home-page-v4 .home-topbar-btn-v3{
    width:100%;
  }

  .home-page-v4 .summary-kpi-grid-v3,
  .home-page-v4 .summary-bottom-grid-v3{
    grid-template-columns:1fr !important;
  }

  .home-page-v4 .summary-copy-v3{
    min-height:0;
  }
}

/* Cierre final: misma altura útil en Anemia/DCI mensual y acumulado. */
@media (min-width:1200px){
  body.dashboard-compact .site-main{padding-top:4px !important;padding-bottom:8px !important}
  body.dashboard-compact .acum-titlebar{min-height:30px !important;padding:0 !important;margin-bottom:4px !important}
  body.dashboard-compact .monthly-filter-card-final,
  body.dashboard-compact .acum-filter-card--ordered{grid-template-columns:1fr !important;gap:4px !important;padding:5px 7px !important;margin-bottom:6px !important}
  body.dashboard-compact .monthly-filter-card-final .filter-main-grid,
  body.dashboard-compact .acum-filter-card--ordered .acum-filter-grid--ordered{grid-template-columns:repeat(12,minmax(0,1fr)) !important;gap:4px 6px !important;align-items:end !important}
  body.dashboard-compact .monthly-filter-card-final .filter-main-grid>* ,
  body.dashboard-compact .acum-filter-card--ordered .acum-filter-grid--ordered>*{grid-column:span 1 !important;min-width:0 !important;width:auto !important}
  body.dashboard-compact .monthly-filter-card-final .fi-eess,
  body.dashboard-compact .acum-filter-card--ordered .acum-field--wide{grid-column:span 2 !important}
  body.dashboard-compact .monthly-filter-card-final .fi-actions,
  body.dashboard-compact .acum-filter-card--ordered .acum-filter-actions--ordered{grid-column:span 2 !important;display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:4px !important;margin:0 !important}
  body.dashboard-compact .monthly-filter-card-final .form-control,
  body.dashboard-compact .monthly-filter-card-final .form-select,
  body.dashboard-compact .monthly-filter-card-final .btn-acum-multi,
  body.dashboard-compact .monthly-filter-card-final .monthly-criterion-fixed,
  body.dashboard-compact .monthly-filter-card-final .fi-actions .btn,
  body.dashboard-compact .acum-filter-card--ordered .form-control,
  body.dashboard-compact .acum-filter-card--ordered .form-select,
  body.dashboard-compact .acum-filter-card--ordered .btn-acum-multi,
  body.dashboard-compact .acum-filter-card--ordered .acum-switch-ordered,
  body.dashboard-compact .acum-filter-card--ordered .acum-filter-actions--ordered .btn{height:30px !important;min-height:30px !important;padding:.24rem .38rem !important;font-size:.59rem !important;min-width:0 !important}
  body.dashboard-compact .monthly-filter-footer-final{min-height:26px !important;padding-top:3px !important}
  body.dashboard-compact .monthly-page-final>.row.g-3.mb-3,
  body.dashboard-compact .acum-kpi-strip{margin-bottom:6px !important}
  body.dashboard-compact .kpi-card .card-body,
  body.dashboard-compact .acum-metric{height:80px !important;min-height:80px !important;padding:.38rem .52rem !important}
  body.dashboard-compact .panel-card .card-header,
  body.dashboard-compact .acum-panel .acum-panel-head,
  body.dashboard-compact .acum-panel--ordered .acum-panel-head--ordered{min-height:34px !important;margin-bottom:2px !important;padding:.3rem .48rem !important}
  body.dashboard-compact .chart-main-wrap,
  body.dashboard-compact .acum-page--ordered .acum-chart-wrap--wide{height:clamp(390px,calc(100dvh - 330px),480px) !important;min-height:390px !important;max-height:480px !important}
}

/* El detalle territorial se muestra en tooltip/tabla; sin tarjeta vacía. */
body.dashboard-compact .chart-section-divider{
  margin:clamp(6px, .7vw, 10px) 0 !important;
  border-color:#dbe5ef !important;
  opacity:.85;
}

/* Tablas territoriales compactas: mensual y acumulado. */
body.dashboard-compact .resumen-card > .card-header{
  min-height:34px !important;
  padding:4px 8px !important;
  flex-wrap:nowrap !important;
}

body.dashboard-compact .resumen-card > .card-header > .ms-auto{
  width:auto !important;
  margin-left:auto !important;
  flex-wrap:nowrap !important;
  gap:5px !important;
}

body.dashboard-compact .detail-toggle-btn,
body.dashboard-compact .table-search-control,
body.dashboard-compact .table-search-control .form-control,
body.dashboard-compact .table-search-control .input-group-text{
  height:30px !important;
  min-height:30px !important;
  font-size:.68rem !important;
}

body.dashboard-compact .detail-toggle-btn{
  padding:.2rem .5rem !important;
  border-radius:8px !important;
}

body.dashboard-compact .resumen-card .table-search-control{
  width:clamp(190px, 22vw, 300px) !important;
  flex:0 1 300px !important;
}

body.dashboard-compact .resumen-card > .card-body{
  padding:4px 8px 7px !important;
}

body.dashboard-compact .tabla-resumen-wrap,
body.dashboard-compact .acum-table-panel .table-shell{
  max-height:clamp(320px, 55dvh, 520px) !important;
  border-radius:9px !important;
  scrollbar-width:thin;
}

body.dashboard-compact #tbl thead th,
body.dashboard-compact #tbl tbody td,
body.dashboard-compact #tbl tfoot th,
body.dashboard-compact #tblAcum thead th,
body.dashboard-compact #tblAcum tbody td,
body.dashboard-compact #tblAcum tfoot th{
  height:30px !important;
  min-height:30px !important;
  padding:4px 7px !important;
  font-size:.7rem !important;
  line-height:1.05 !important;
  vertical-align:middle !important;
}

body.dashboard-compact #tbl thead th,
body.dashboard-compact #tblAcum thead th{
  height:32px !important;
  min-height:32px !important;
  font-size:.68rem !important;
  letter-spacing:.01em !important;
}

body.dashboard-compact .acum-table-panel{
  padding:5px 7px 7px !important;
}

body.dashboard-compact .acum-table-panel .acum-panel-head{
  min-height:34px !important;
  margin-bottom:4px !important;
  padding:0 !important;
  align-items:center !important;
  gap:6px !important;
}

body.dashboard-compact .acum-table-panel .acum-panel-head strong{
  font-size:.72rem !important;
}

body.dashboard-compact .acum-table-panel .acum-panel-head small{
  font-size:.58rem !important;
  line-height:1.1 !important;
}

body.dashboard-compact .acum-table-panel .table-search-control{
  width:clamp(180px, 20vw, 280px) !important;
  flex:0 1 280px !important;
  border-radius:8px !important;
}

@media (max-width:767.98px){
  body.dashboard-compact .resumen-card > .card-header,
  body.dashboard-compact .resumen-card > .card-header > .ms-auto,
  body.dashboard-compact .acum-table-panel .acum-panel-head{
    flex-wrap:wrap !important;
  }

  body.dashboard-compact .resumen-card > .card-header > .ms-auto,
  body.dashboard-compact .resumen-card .table-search-control,
  body.dashboard-compact .acum-table-panel .table-search-control{
    width:100% !important;
    flex:1 1 100% !important;
  }

  body.dashboard-compact #tbl thead th,
  body.dashboard-compact #tbl tbody td,
  body.dashboard-compact #tblAcum thead th,
  body.dashboard-compact #tblAcum tbody td,
  body.dashboard-compact #tblAcum tfoot th{
    height:34px !important;
    min-height:34px !important;
    padding:5px 7px !important;
    font-size:.68rem !important;
  }
}

@media (min-width:1200px) and (max-height:820px){
  body.dashboard-compact .kpi-card .card-body,
  body.dashboard-compact .acum-metric{height:72px !important;min-height:72px !important}
  body.dashboard-compact .chart-main-wrap,
  body.dashboard-compact .acum-page--ordered .acum-chart-wrap--wide{height:clamp(390px,calc(100dvh - 330px),480px) !important;min-height:390px !important;max-height:480px !important}
}
