
/* IEICII HUB v257 · Ritmo visual y distribución global
   Capa final de espaciado para administración y Mi IEICII.
   No cambia estructura ni lógica; normaliza separación entre encabezados,
   acciones, KPI, bloques, formularios y botones. */

:root{
  --v257-space-1:6px;
  --v257-space-2:10px;
  --v257-space-3:14px;
  --v257-space-4:18px;
  --v257-space-5:24px;
  --v257-space-6:30px;
  --v257-radius:18px;
}

/* =========================
   CONTENEDOR / RITMO GENERAL
   ========================= */
body.admin-body main,
body.admin-body .main-content,
body.user-body main,
body.user-body .main-content{
  min-width:0;
}

body.admin-body .page-head,
body.user-body .page-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:var(--v257-space-5);
  margin-bottom:var(--v257-space-5)!important;
}

body.admin-body .page-head>div:first-child,
body.user-body .page-head>div:first-child{
  min-width:0;
  max-width:900px;
}

body.admin-body .page-head h1,
body.user-body .page-head h1{
  margin-top:10px!important;
  margin-bottom:10px!important;
  line-height:1.08;
}

body.admin-body .page-head p,
body.user-body .page-head p{
  margin:0!important;
  max-width:860px;
  line-height:1.55;
}

/* Acciones de cabecera */
body.admin-body .page-head>.actions,
body.admin-body .page-head>.admin-actions,
body.user-body .page-head>.actions,
body.user-body .page-head>.admin-actions,
body.admin-body .gov-top-actions-v252{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:10px!important;
  margin:0!important;
}

/* =========================
   BOTONES
   ========================= */
body.ie-shell .btn,
body.ie-shell button.btn{
  min-height:42px;
  padding:9px 14px!important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  line-height:1.15;
}

body.ie-shell .actions,
body.ie-shell .admin-actions,
body.ie-shell .row-actions{
  gap:10px!important;
}

body.ie-shell form>.btn:last-child{
  margin-top:2px;
}

/* Evita botones pegados inmediatamente a bloques siguientes */
body.admin-body .page-head + .gov-kpis-v252,
body.admin-body .page-head + .admin-dashboard-v187,
body.admin-body .page-head + .card,
body.admin-body .page-head + .table-wrap,
body.user-body .page-head + .card{
  margin-top:4px!important;
}

/* =========================
   KPI / MÉTRICAS
   ========================= */
body.admin-body .gov-kpis-v252,
body.admin-body .stats-grid,
body.admin-body .metrics-grid,
body.admin-body .admin-dashboard-stats-v187,
body.admin-body .admin-dashboard-metrics-v187{
  gap:16px!important;
  margin-bottom:var(--v257-space-5)!important;
}

body.admin-body .gov-kpis-v252>div,
body.admin-body .stats-grid>*,
body.admin-body .metric-card,
body.admin-body .summary-card,
body.admin-body .counter-card,
body.admin-body .kpi-card{
  min-height:104px;
  padding:20px!important;
  border-radius:var(--v257-radius)!important;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:6px;
}

/* =========================
   CARDS Y BLOQUES
   ========================= */
body.admin-body .card,
body.user-body .card{
  border-radius:var(--v257-radius)!important;
}

body.admin-body main>.card,
body.admin-body .main-content>.card,
body.user-body main>.card,
body.user-body .main-content>.card{
  margin-bottom:var(--v257-space-4);
}

body.admin-body .card + .card,
body.user-body .card + .card{
  margin-top:var(--v257-space-4);
}

body.admin-body .section-head,
body.admin-body .section-head-v21,
body.user-body .section-head,
body.user-body .section-head-v21{
  margin-bottom:var(--v257-space-4)!important;
}

body.admin-body .card>h2:first-child,
body.admin-body .card>h3:first-child,
body.user-body .card>h2:first-child,
body.user-body .card>h3:first-child{
  margin-top:0;
  margin-bottom:10px;
}

/* Bloques complejos de gobernanza */
.gov-anchor-nav-v253{
  gap:10px!important;
  margin:0 0 var(--v257-space-5)!important;
}

.gov-anchor-nav-v253 a{
  padding:9px 13px!important;
}

.gov-block-v252{
  margin-bottom:var(--v257-space-5)!important;
}

.gov-block-v252>summary{
  padding:20px 22px!important;
  gap:6px!important;
}

.gov-grid-v252,
.gov-grid-3-v252{
  gap:18px!important;
  padding:0 22px 22px!important;
}

.gov-form-v252{
  gap:14px!important;
  padding:20px!important;
  border-radius:16px!important;
}

.gov-form-v252 h3{
  margin:0 0 2px!important;
}

.gov-form-v252 label{
  gap:7px!important;
}

.gov-form-v252 .grid.two{
  gap:14px!important;
}

.gov-checks-v252{
  gap:12px 18px!important;
  padding-top:2px;
}

.gov-chart-cta-v253{
  margin:0 22px 22px!important;
  padding:18px 20px!important;
}

/* Organigrama vacío y vistas de lectura */
.org-chart-v252 + .card,
.page-head + .org-chart-v252{
  margin-top:6px;
}

/* =========================
   DASHBOARD ADMIN
   ========================= */
.admin-dashboard-v187{
  gap:28px!important;
}

.admin-dashboard-v187 .admin-dashboard-head-v187{
  gap:22px!important;
  margin-bottom:2px;
}

.admin-dashboard-v187 .admin-dashboard-head-v187 .admin-actions{
  gap:10px!important;
}

.admin-dashboard-v187 .admin-dashboard-module-v187,
.admin-dashboard-v187 .card{
  border-radius:18px!important;
}

.admin-dashboard-v187 .admin-dashboard-module-v187{
  padding:20px!important;
}

/* Grids de módulos y resúmenes */
.admin-dashboard-v187 [class*="grid"],
body.admin-body .dashboard-grid,
body.admin-body .module-grid{
  gap:16px;
}

/* Control operativo de la captura */
.admin-dashboard-v187 .final-health-v248,
.admin-dashboard-v187 .system-health-card,
body.admin-body .final-health-v248{
  padding:20px!important;
  margin-top:2px!important;
}

/* =========================
   FORMULARIOS GENERALES
   ========================= */
body.admin-body .form,
body.user-body .form{
  gap:14px!important;
}

body.admin-body .form label,
body.user-body .form label{
  gap:7px!important;
}

body.admin-body input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="range"]),
body.admin-body select,
body.admin-body textarea,
body.user-body input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="range"]),
body.user-body select,
body.user-body textarea{
  min-height:42px;
}

body.admin-body textarea,
body.user-body textarea{
  min-height:92px;
  padding-top:10px!important;
  padding-bottom:10px!important;
}

/* Dos/tres columnas con respiración uniforme */
body.ie-shell .grid.two{
  gap:14px!important;
}

body.ie-shell .grid.three{
  gap:16px!important;
}

/* =========================
   TABLAS Y FILTROS
   ========================= */
body.admin-body .table-wrap,
body.user-body .table-wrap{
  border-radius:16px!important;
  overflow:auto;
}

body.admin-body .table-wrap + .card,
body.admin-body .card + .table-wrap{
  margin-top:var(--v257-space-4);
}

body.admin-body .toolbar,
body.admin-body .filter-bar,
body.admin-body .admin-toolbar-v158,
body.user-body .toolbar{
  gap:12px!important;
  margin-bottom:var(--v257-space-4)!important;
}

/* =========================
   DETAILS / ACCORDIONS
   ========================= */
body.admin-body details.card>summary,
body.user-body details.card>summary{
  min-height:56px;
}

body.admin-body details.card[open]>summary,
body.user-body details.card[open]>summary{
  margin-bottom:2px;
}

/* =========================
   EMPTY STATES
   ========================= */
body.admin-body .empty,
body.admin-body .empty-state,
body.admin-body .final-empty-v248,
body.user-body .empty,
body.user-body .empty-state{
  padding:26px!important;
  min-height:126px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:8px;
}

/* =========================
   LIGHT / DARK
   ========================= */
html[data-theme="dark"] body.admin-body .gov-form-v252,
html[data-theme="dark"] body.admin-body .gov-chart-cta-v253{
  border-color:var(--ui-line,#263b55)!important;
}

/* =========================
   RESPONSIVE
   ========================= */
@media(max-width:1100px){
  body.admin-body .page-head,
  body.user-body .page-head{
    flex-direction:column;
    gap:16px;
  }

  body.admin-body .page-head>.actions,
  body.admin-body .page-head>.admin-actions,
  body.user-body .page-head>.actions,
  body.user-body .page-head>.admin-actions,
  body.admin-body .gov-top-actions-v252{
    width:100%;
    justify-content:flex-start;
  }

  .gov-grid-3-v252{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

@media(max-width:760px){
  :root{
    --v257-space-4:16px;
    --v257-space-5:20px;
    --v257-space-6:24px;
  }

  body.admin-body .page-head,
  body.user-body .page-head{
    margin-bottom:20px!important;
  }

  body.admin-body .page-head>.actions,
  body.admin-body .page-head>.admin-actions,
  body.user-body .page-head>.actions,
  body.user-body .page-head>.admin-actions,
  body.admin-body .gov-top-actions-v252{
    display:grid;
    grid-template-columns:1fr;
    width:100%;
  }

  body.admin-body .page-head .btn,
  body.user-body .page-head .btn,
  body.admin-body .gov-top-actions-v252 .btn{
    width:100%;
  }

  body.admin-body .gov-kpis-v252,
  body.admin-body .stats-grid,
  body.admin-body .metrics-grid{
    grid-template-columns:1fr 1fr!important;
    gap:12px!important;
  }

  body.admin-body .gov-kpis-v252>div,
  body.admin-body .stats-grid>*,
  body.admin-body .metric-card,
  body.admin-body .summary-card,
  body.admin-body .counter-card,
  body.admin-body .kpi-card{
    min-height:92px;
    padding:16px!important;
  }

  .gov-grid-v252,
  .gov-grid-3-v252{
    grid-template-columns:1fr!important;
    padding:0 16px 16px!important;
    gap:14px!important;
  }

  .gov-block-v252>summary{
    padding:17px 16px!important;
  }

  .gov-form-v252{
    padding:16px!important;
  }

  .gov-chart-cta-v253{
    margin:0 16px 16px!important;
  }

  .gov-anchor-nav-v253{
    flex-wrap:nowrap!important;
    overflow-x:auto;
    padding-bottom:4px;
    scrollbar-width:thin;
  }

  .gov-anchor-nav-v253 a{
    white-space:nowrap;
    flex:0 0 auto;
  }

  body.ie-shell .actions,
  body.ie-shell .admin-actions,
  body.ie-shell .row-actions{
    flex-wrap:wrap!important;
  }
}

@media(max-width:480px){
  body.admin-body .gov-kpis-v252,
  body.admin-body .stats-grid,
  body.admin-body .metrics-grid{
    grid-template-columns:1fr!important;
  }

  body.ie-shell .btn,
  body.ie-shell button.btn{
    min-height:44px;
  }
}
