/*
 * Oikosbook UI Kit — unidad gráfica global
 * Capa visual centralizada para encabezados, botones, cards, tablas, formularios y modales.
 * No cambia lógica ni endpoints.
 */
:root{
    --okb-bg:#f5f9ff;
    --okb-bg-soft:#eef5fc;
    --okb-surface:#ffffff;
    --okb-surface-2:#f8fbff;
    --okb-ink:#0b1630;
    --okb-ink-2:#1e293b;
    --okb-muted:#64748b;
    --okb-border:#dbe7f4;
    --okb-border-2:#e6eef8;
    --okb-primary:#2563eb;
    --okb-primary-2:#0ea5e9;
    --okb-success:#16a34a;
    --okb-warning:#f59e0b;
    --okb-danger:#dc2626;
    --okb-radius-sm:12px;
    --okb-radius:16px;
    --okb-radius-lg:22px;
    --okb-radius-xl:28px;
    --okb-shadow-sm:0 8px 20px rgba(15,23,42,.055);
    --okb-shadow:0 14px 36px rgba(15,23,42,.075);
    --okb-shadow-lg:0 22px 60px rgba(15,23,42,.11);
}

html{scroll-behavior:smooth;}
body{
    color:var(--okb-ink);
    background:
        radial-gradient(circle at 15% 0%, rgba(37,99,235,.065), transparent 28%),
        radial-gradient(circle at 85% 8%, rgba(14,165,233,.06), transparent 24%),
        linear-gradient(180deg,#f8fbff 0%,#f3f7fc 100%) !important;
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
}

/* Layout base */
.app-content{padding:1.45rem !important;}
@media (max-width:575.98px){.app-content{padding:1rem .86rem !important;}}
.content-wrapper{background:transparent;}
.topbar{
    background:rgba(255,255,255,.88) !important;
    border-bottom:1px solid rgba(219,231,244,.95);
    box-shadow:0 8px 28px rgba(15,23,42,.045);
    backdrop-filter:blur(14px);
}
.sidebar{
    background:linear-gradient(180deg,#07111f 0%,#0a2444 62%,#0f766e 140%) !important;
}
.sidebar-inner{padding:1rem .88rem !important;}
.sidebar-nav-link{
    border-radius:14px !important;
    margin-bottom:7px !important;
    font-weight:780;
    letter-spacing:-.01em;
}
.sidebar-nav-link:hover{background:rgba(255,255,255,.105) !important;}
.sidebar-nav-link.is-active{background:linear-gradient(90deg,rgba(37,99,235,.38),rgba(14,165,233,.24)) !important;box-shadow:inset 3px 0 0 rgba(255,255,255,.8);}
.sidebar-toggle-btn{border-radius:14px !important;box-shadow:var(--okb-shadow-sm);}
.account-trigger{border-color:var(--okb-border) !important;box-shadow:var(--okb-shadow-sm);}
.brand-oikos,.brand-logo,.dash-logo-img{display:block;}

/* Encabezados estandarizados */
.section-title,
.members-title,
.treasury-title,
.dashboard-title,
.page-title,
.panel-title,
.card-title,
.hero h1,
.cc-brand,
.modal-title{
    color:var(--okb-ink);
    letter-spacing:-.035em;
    font-weight:950 !important;
}
.section-title,.members-title,.treasury-title,.dashboard-title,.page-title{
    font-size:clamp(1.45rem,2vw,2rem) !important;
    line-height:1.13;
    margin-bottom:.35rem !important;
}
.section-subtitle,.section-sub,.members-subtitle,.treasury-subtitle,.text-muted,.form-text{
    color:var(--okb-muted) !important;
}
.oikos-page-head,
.page-header,
.module-header,
.members-header,
.treasury-header,
.dashboard-header{
    background:linear-gradient(135deg,#ffffff 0%,#f6fbff 100%);
    border:1px solid var(--okb-border);
    border-radius:var(--okb-radius-xl);
    box-shadow:var(--okb-shadow);
    padding:1.15rem 1.25rem;
    margin-bottom:1rem;
}

/* Cards / paneles */
.card,
.top-card,
.panel,
.metric,
.feature-card,
.price-card,
.trust-card,
.problem-card,
.solution-card,
.members-card,
.members-table-card,
.members-filter-card,
.treasury-card,
.treasury-panel,
.dashboard-card,
.summary-card,
.stat-card,
.kpi-card,
.report-card,
.audit-card,
.oikos-card{
    border:1px solid var(--okb-border) !important;
    border-radius:var(--okb-radius-lg) !important;
    background:rgba(255,255,255,.96) !important;
    box-shadow:var(--okb-shadow) !important;
}
.card-header,
.panel-header,
.modal-header{
    border-bottom:1px solid var(--okb-border-2) !important;
}
.card-header,
.panel-header{
    background:linear-gradient(180deg,#fff,#f8fbff) !important;
    border-radius:var(--okb-radius-lg) var(--okb-radius-lg) 0 0 !important;
}
.card-body,.panel-body{padding:1.15rem;}

/* Botones */
.btn{
    border-radius:14px !important;
    font-weight:850 !important;
    letter-spacing:-.012em;
    min-height:40px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.45rem;
    transition:transform .16s ease, box-shadow .16s ease, background .16s ease, border-color .16s ease;
}
.btn:hover{transform:translateY(-1px);}
.btn-sm{border-radius:11px !important;min-height:34px;font-weight:820 !important;}
.btn-lg{border-radius:17px !important;min-height:50px;}
.btn-primary,.btn-gradient,.btn-main{
    border-color:transparent !important;
    background:linear-gradient(90deg,var(--okb-primary),var(--okb-primary-2)) !important;
    color:#fff !important;
    box-shadow:0 12px 26px rgba(37,99,235,.20) !important;
}
.btn-primary:hover,.btn-gradient:hover,.btn-main:hover{filter:brightness(.985);color:#fff !important;}
.btn-outline-primary{
    border-color:#bdd6ff !important;
    color:#1d4ed8 !important;
    background:#fff !important;
}
.btn-outline-primary:hover{background:#eff6ff !important;color:#1d4ed8 !important;box-shadow:var(--okb-shadow-sm);}
.btn-secondary,.btn-outline-secondary,.btn-soft{
    border-color:var(--okb-border) !important;
    color:#1f2937 !important;
    background:#fff !important;
}
.btn-secondary:hover,.btn-outline-secondary:hover,.btn-soft:hover{background:#f8fbff !important;color:#0f172a !important;box-shadow:var(--okb-shadow-sm);}
.btn-danger{background:linear-gradient(90deg,#dc2626,#f97316) !important;border-color:transparent !important;color:#fff !important;}
.btn-success{background:linear-gradient(90deg,#16a34a,#0f766e) !important;border-color:transparent !important;color:#fff !important;}
.btn-warning{background:linear-gradient(90deg,#f59e0b,#f97316) !important;border-color:transparent !important;color:#111827 !important;}

/* Formularios */
.form-label{font-size:.84rem;font-weight:900;color:#334155;letter-spacing:.015em;margin-bottom:.38rem;}
.form-control,.form-select,.form-check-input,
.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select{
    border-color:var(--okb-border) !important;
    border-radius:14px !important;
}
.form-control,.form-select{
    min-height:42px;
    background-color:#fff;
    box-shadow:0 1px 0 rgba(15,23,42,.015);
}
.form-control:focus,.form-select:focus{
    border-color:#93c5fd !important;
    box-shadow:0 0 0 .22rem rgba(37,99,235,.12) !important;
}
.input-group-text{border-color:var(--okb-border);border-radius:14px;background:#f8fbff;color:#475569;font-weight:850;}
textarea.form-control{min-height:96px;}

/* Tablas y DataTables */
.table-responsive{
    border-radius:var(--okb-radius);
}
.table{--bs-table-bg:transparent;margin-bottom:0;vertical-align:middle;}
.table thead th{
    background:#f8fbff !important;
    color:#475569 !important;
    font-size:.78rem;
    text-transform:uppercase;
    letter-spacing:.045em;
    font-weight:950 !important;
    border-bottom:1px solid var(--okb-border) !important;
    white-space:nowrap;
}
.table tbody td{border-color:#edf3fa !important;color:#1f2937;}
.table-hover tbody tr:hover{background:#f8fbff !important;}
.dataTables_wrapper .row{row-gap:.75rem;}
.dataTables_wrapper .dataTables_info{color:var(--okb-muted) !important;font-weight:750;font-size:.9rem;}
.page-link{border-color:var(--okb-border);color:#2563eb;font-weight:850;border-radius:10px !important;margin:0 2px;}
.page-item.active .page-link{background:linear-gradient(90deg,var(--okb-primary),var(--okb-primary-2));border-color:transparent;}
.page-item.disabled .page-link{color:#94a3b8;background:#f8fbff;}
.dt-buttons .btn{margin-right:.35rem;margin-bottom:.35rem;}

/* Modales, alertas, badges */
.modal-content{
    border:1px solid var(--okb-border) !important;
    border-radius:24px !important;
    box-shadow:var(--okb-shadow-lg) !important;
    overflow:hidden;
}
.modal-header{
    background:linear-gradient(135deg,#0b1630,#0a2444) !important;
    color:#fff !important;
    padding:1rem 1.15rem;
}
.modal-header .modal-title{color:#fff !important;letter-spacing:-.02em;}
.modal-body{padding:1.15rem;}
.modal-footer{border-top:1px solid var(--okb-border-2);background:#fbfdff;}
.modal-header .btn-close,.modal-header .btn-close-white{filter:invert(1) grayscale(100%) brightness(200%);opacity:.9;}
.alert,.oikos-broadcast-banner,.oikos-impersonation-banner{
    border-radius:var(--okb-radius) !important;
    border:1px solid var(--okb-border) !important;
    box-shadow:var(--okb-shadow-sm);
}
.badge{
    border-radius:999px !important;
    font-weight:850 !important;
    letter-spacing:.01em;
    padding:.45em .72em;
}

/* Píldoras, métricas y utilidades visuales */
.metric small,.stat-card small,.kpi-card small{
    text-transform:uppercase;
    letter-spacing:.08em;
    font-weight:950;
    color:var(--okb-muted);
}
.metric strong,.stat-card strong,.kpi-card strong{
    font-weight:950;
    letter-spacing:-.04em;
    color:var(--okb-ink);
}
.oikos-pill,.tag,.pricing-top-note{
    border-radius:999px !important;
    font-weight:900 !important;
    background:#eef6ff !important;
    border:1px solid #d7e7ff !important;
    color:#1d4ed8 !important;
}

/* Superadmin / OikosControl */
.cc-shell .panel,.cc-shell .metric{border-radius:var(--okb-radius-lg) !important;}
.cc-topbar{box-shadow:0 8px 28px rgba(15,23,42,.055);}
.cc-nav .nav-link{border-radius:14px !important;}
.cc-nav .nav-link.active,.cc-nav .nav-link:hover{background:linear-gradient(90deg,rgba(37,99,235,.35),rgba(14,165,233,.20)) !important;}

/* Landing pública: corrige márgenes y navegación móvil sin recargar estilos principales */
body:not(.mode-auth) .site-header .container,
body.promo-page .site-header .container{padding-left:max(1rem, env(safe-area-inset-left));padding-right:max(1rem, env(safe-area-inset-right));}
body:not(.mode-auth) .brand-logo{margin-left:0;}
@media (max-width:575.98px){
    .brand-logo{max-width:190px !important;width:auto !important;}
    .hero-title{font-weight:900 !important;letter-spacing:-.035em !important;line-height:1.12 !important;}
}

/* Responsive global */
@media (max-width:991.98px){
    .card,.top-card,.panel,.metric,.feature-card,.price-card,.trust-card,.problem-card,.solution-card,.members-card,.members-table-card,.members-filter-card,.treasury-card,.treasury-panel,.dashboard-card,.summary-card,.stat-card,.kpi-card,.report-card,.audit-card{border-radius:20px !important;}
    .table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch;}
    .modal-dialog{margin:.75rem;}
    .btn{width:auto;}
}
@media (max-width:575.98px){
    .section-title,.members-title,.treasury-title,.dashboard-title,.page-title{font-size:1.35rem !important;line-height:1.17;}
    .card-body,.panel-body,.modal-body{padding:1rem;}
    .btn{min-height:42px;}
    .btn.w-100,.hero-actions .btn,.promo-actions .btn{width:100% !important;}
    .dataTables_wrapper .dataTables_filter,
    .dataTables_wrapper .dataTables_length{text-align:left !important;}
    .dataTables_wrapper .dataTables_filter input{width:100%;margin-left:0 !important;margin-top:.35rem;}
    .table thead th{font-size:.72rem;}
    .table tbody td{font-size:.88rem;}
}

/* Ajustes de unidad gráfica: encabezados, acciones y cards */
.oikos-card{
  padding: 1.15rem !important;
}

.oikos-card > .d-flex:first-child,
.oikos-card .table-responsive{
  margin-left: 0;
  margin-right: 0;
}

.oikos-card .table-responsive{
  margin-top: .65rem;
}

.oikos-info-managed-header{
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 1rem !important;
  flex-wrap: wrap !important;
  width: 100%;
  margin-bottom: 1rem;
}

.oikos-info-managed-header .oikos-heading-copy,
.oikos-info-managed-header > div:first-child:not(.header-actions):not(.members-actions):not(.actas-actions):not(.treasury-actions):not(.no-print){
  min-width: 0;
  flex: 1 1 360px;
}

.oikos-info-managed-header .header-actions,
.oikos-info-managed-header .members-actions,
.oikos-info-managed-header .actas-actions,
.oikos-info-managed-header .treasury-actions,
.oikos-info-managed-header .no-print{
  margin-left: auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: .6rem !important;
  flex-wrap: wrap !important;
}

.oikos-info-button,
.oikos-info-button.btn-sm{
  min-height: 42px !important;
  padding: .62rem 1.05rem !important;
  border-radius: 13px !important;
  font-size: .94rem !important;
  font-weight: 900 !important;
  line-height: 1.1 !important;
}

.oikos-info-button .oikos-info-mark{
  flex: 0 0 auto;
}

@media (max-width: 768px){
  .oikos-info-managed-header{
    align-items: stretch !important;
  }

  .oikos-info-managed-header .header-actions,
  .oikos-info-managed-header .members-actions,
  .oikos-info-managed-header .actas-actions,
  .oikos-info-managed-header .treasury-actions,
  .oikos-info-managed-header .no-print{
    width: 100%;
    justify-content: flex-start !important;
    margin-left: 0 !important;
  }
}

/* =========================================================
   Oikosbook - ajuste fino de unidad gráfica
   2026-05-11: encabezados sin tarjeta + modal con aire
   ========================================================= */

/* Más aire vertical en la franja superior de modales propios y Bootstrap */
.modal .modal-header,
.oikos-modal .modal-header,
.modal .modal-header.modal-oikos-header,
.modal .modal-header[class*="bg-"] {
    padding-top: 1.35rem !important;
    padding-bottom: 1.45rem !important;
    padding-left: 1.55rem !important;
    padding-right: 1.55rem !important;
    align-items: flex-start !important;
    min-height: 92px;
}

.modal .modal-header .modal-title,
.oikos-modal .modal-header .modal-title {
    margin-bottom: .35rem !important;
    line-height: 1.12 !important;
}

.modal .modal-header .text-muted,
.modal .modal-header small,
.oikos-modal .modal-header .text-muted,
.oikos-modal .modal-header small {
    display: block;
    line-height: 1.35 !important;
    margin-top: .25rem !important;
}

.modal .modal-header .btn-close,
.oikos-modal .modal-header .btn-close {
    margin-top: .1rem !important;
}

/* Encabezados de módulo: sin tarjeta, todos como encabezado limpio */
.members-toolbar,
.module-header,
.page-header,
.page-head,
.module-head,
.view-header,
.header-card,
.section-header,
.oikos-page-header,
.oikos-module-header,
.oikos-info-managed-header,
.treasury-header,
.treasury-hero,
.dashboard-header,
.admin-header,
.report-header,
.actas-header,
.provider-header,
.proveedores-header,
.catalogo-header,
.mayor-header,
.libro-mayor-header {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
}

/* Excepción visual: Mi Iglesia ya no debe parecer una tarjeta pesada; queda como banda institucional limpia. */
.church-hero {
    box-shadow: none !important;
    margin-top: 0 !important;
}

/* Encabezado administrado por el botón de información: título a la izquierda, acciones a la derecha. */
.oikos-info-managed-header {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 1rem !important;
    width: 100% !important;
}

.oikos-heading-copy {
    min-width: 0 !important;
    flex: 1 1 auto !important;
}

.oikos-info-actions,
.header-actions,
.members-actions,
.actas-actions,
.proveedores-actions,
.provider-actions,
.mob-header-actions,
.report-actions,
.mayor-actions,
.libro-mayor-actions,
.module-actions,
.page-actions {
    margin-left: auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: .55rem !important;
    flex-wrap: wrap !important;
}

.oikos-info-btn,
button.oikos-info-btn,
a.oikos-info-btn {
    min-height: 44px !important;
    padding: .68rem 1.05rem !important;
    border-radius: 13px !important;
    font-size: .95rem !important;
    font-weight: 850 !important;
    line-height: 1 !important;
}

.oikos-info-btn .oikos-info-icon,
.oikos-info-icon {
    width: 22px !important;
    height: 22px !important;
    flex: 0 0 22px !important;
    font-size: .82rem !important;
}

/* Proveedores: el contenido no debe pegarse al borde de los cards. */
[data-oikos-view="proveedores"] .oikos-card,
[data-oikos-view="proveedores"] .top-card,
body:has(#tablaProveedores) .oikos-card,
body:has(#tablaProveedores) .top-card,
body:has(#tablaProveedores) .card.top-card {
    padding: 1.15rem 1.25rem !important;
}

body:has(#tablaProveedores) .card.top-card .card-body,
body:has(#tablaProveedores) .oikos-card .card-body {
    padding: 1.15rem 1.25rem !important;
}

body:has(#tablaProveedores) .oikos-metric,
body:has(#tablaProveedores) .metric-card,
body:has(#tablaProveedores) .stat-card,
body:has(#tablaProveedores) .kpi-card {
    padding: 1.15rem 1.25rem !important;
}

/* Tablas dentro de cards: conservar aire sin deformar DataTables. */
body:has(#tablaProveedores) .table-responsive,
body:has(#tablaProveedores) .dataTables_wrapper {
    padding-inline: .25rem !important;
}

@media (max-width: 767.98px) {
    .oikos-info-managed-header {
        flex-direction: column !important;
        align-items: stretch !important;
    }

    .oikos-info-actions,
    .header-actions,
    .members-actions,
    .actas-actions,
    .proveedores-actions,
    .provider-actions,
    .mob-header-actions,
    .report-actions,
    .mayor-actions,
    .libro-mayor-actions,
    .module-actions,
    .page-actions {
        width: 100% !important;
        margin-left: 0 !important;
        justify-content: flex-start !important;
    }

    .modal .modal-header,
    .oikos-modal .modal-header {
        padding: 1.15rem 1.1rem 1.35rem !important;
        min-height: 82px;
    }
}



/* Ajuste final de unidad gráfica: encabezados de módulo sin tarjeta pesada. */
.dashboard-header,
.audit-header,
.actas-toolbar,
.oikos-info-managed-header,
.module-heading-card,
.oikos-module-header,
.oikos-page-header,
.page-heading,
.section-heading,
.module-header-card,
.report-header,
.mayor-header,
.libro-mayor-header,
.provider-header,
.proveedores-header,
.catalogo-header,
.members-header,
.mob-header {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
}

.dashboard-header,
.audit-header,
.actas-toolbar,
.oikos-info-managed-header,
.oikos-module-header,
.oikos-page-header,
.module-heading-card,
.page-heading,
.section-heading,
.report-header,
.mayor-header,
.libro-mayor-header,
.provider-header,
.proveedores-header,
.catalogo-header,
.members-header,
.mob-header {
    padding: 0 !important;
    margin-bottom: 1.35rem !important;
}

.oikos-page-title,
.oikos-module-title,
.page-title,
.module-title,
.dashboard-header h2,
.audit-header h2,
.actas-title h2,
.report-header h1,
.report-header h2,
.mayor-header h1,
.mayor-header h2,
.libro-mayor-header h1,
.libro-mayor-header h2 {
    font-size: 2.05rem !important;
    line-height: 1.05 !important;
    letter-spacing: -.055em !important;
    font-weight: 900 !important;
    color: #0f172a !important;
}

/* Modal: la barra superior azul debe respirar debajo del subtítulo. */
.modal .modal-header,
.oikos-modal .modal-header,
.acta-modal .modal-header {
    padding-top: 1.25rem !important;
    padding-bottom: 1.45rem !important;
    min-height: 82px !important;
}

.modal .modal-header .modal-title,
.oikos-modal .modal-header .modal-title,
.acta-modal .modal-header .modal-title {
    line-height: 1.15 !important;
}

/* Botón Información: tamaño estable en todos los módulos. */
.oikos-info-btn,
button.oikos-info-btn,
a.oikos-info-btn {
    min-height: 44px !important;
    height: 44px !important;
    padding: 0 .95rem !important;
    border-radius: 13px !important;
    font-size: .95rem !important;
    font-weight: 850 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: .45rem !important;
}

@media (max-width: 767.98px) {
    .oikos-page-title,
    .oikos-module-title,
    .page-title,
    .module-title,
    .dashboard-header h2,
    .audit-header h2,
    .actas-title h2,
    .report-header h1,
    .report-header h2,
    .mayor-header h1,
    .mayor-header h2,
    .libro-mayor-header h1,
    .libro-mayor-header h2 {
        font-size: 1.65rem !important;
        line-height: 1.08 !important;
    }
}

/* Encabezado manual con la misma regla de alineación que los administrados. */
.oikos-module-header {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 1rem !important;
    width: 100% !important;
}
.oikos-module-heading {
    min-width: 0 !important;
    flex: 1 1 auto !important;
}
.oikos-module-actions {
    margin-left: auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: .55rem !important;
    flex-wrap: wrap !important;
}
@media (max-width: 767.98px) {
    .oikos-module-header {
        flex-direction: column !important;
    }
    .oikos-module-actions {
        width: 100% !important;
        justify-content: stretch !important;
    }
    .oikos-module-actions > * {
        width: 100% !important;
    }
}

/* =========================================================
   FIX MÓVIL 2026-05-14 — encabezados sin espacio muerto
   Corrige módulos donde el botón Información/acciones quedaba
   muy abajo en pantallas de teléfono.
   ========================================================= */

@media (max-width: 767.98px) {
    /* Encabezado principal de cada módulo */
    body #main-content > .oikos-info-managed-header,
    body #main-content > .oikos-module-header,
    body #main-content > .d-flex.justify-content-between,
    body #main-content > section.d-flex.justify-content-between,
    body #main-content .treasury-page > .oikos-info-managed-header,
    body #main-content .treasury-page > .d-flex.justify-content-between,
    body #main-content [data-oikos-view] > .oikos-info-managed-header,
    body #main-content [data-oikos-view] > section.d-flex.justify-content-between,
    body #main-content [data-oikos-view] > .d-flex.justify-content-between {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        justify-content: flex-start !important;
        align-content: flex-start !important;
        gap: .85rem !important;
        row-gap: .85rem !important;
        min-height: 0 !important;
        height: auto !important;
        max-height: none !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        margin-top: 0 !important;
        margin-bottom: 1rem !important;
    }

    /* Bloque del título/subtítulo */
    body #main-content .oikos-info-managed-header > .oikos-heading-copy,
    body #main-content .oikos-info-managed-header > div:first-child,
    body #main-content .oikos-module-header > .oikos-module-heading,
    body #main-content .oikos-module-header > div:first-child,
    body #main-content > .d-flex.justify-content-between > div:first-child,
    body #main-content > section.d-flex.justify-content-between > div:first-child,
    body #main-content .treasury-page > .d-flex.justify-content-between > div:first-child,
    body #main-content [data-oikos-view] > section.d-flex.justify-content-between > div:first-child,
    body #main-content [data-oikos-view] > .d-flex.justify-content-between > div:first-child {
        flex: 0 1 auto !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        min-height: 0 !important;
        height: auto !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* Bloque de acciones: Excel, PDF, Imprimir, Información, Nuevo... */
    body #main-content .oikos-info-managed-header > .header-actions,
    body #main-content .oikos-info-managed-header > .oikos-info-actions,
    body #main-content .oikos-info-managed-header > .members-actions,
    body #main-content .oikos-info-managed-header > .actas-actions,
    body #main-content .oikos-info-managed-header > .treasury-actions,
    body #main-content .oikos-info-managed-header > .mayor-actions,
    body #main-content .oikos-info-managed-header > .report-actions,
    body #main-content .oikos-info-managed-header > .libro-mayor-actions,
    body #main-content .oikos-info-managed-header > .proveedores-actions,
    body #main-content .oikos-info-managed-header > .provider-actions,
    body #main-content .oikos-info-managed-header > .mob-header-actions,
    body #main-content .oikos-module-header > .oikos-module-actions,
    body #main-content .oikos-module-header > .module-actions,
    body #main-content > .d-flex.justify-content-between > div:last-child,
    body #main-content > section.d-flex.justify-content-between > div:last-child,
    body #main-content .treasury-page > .d-flex.justify-content-between > div:last-child,
    body #main-content [data-oikos-view] > section.d-flex.justify-content-between > div:last-child,
    body #main-content [data-oikos-view] > .d-flex.justify-content-between > div:last-child {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        flex: 0 1 auto !important;
        display: flex !important;
        flex-wrap: wrap !important;
        align-items: center !important;
        justify-content: flex-start !important;
        align-content: flex-start !important;
        gap: .55rem !important;
        row-gap: .55rem !important;
        min-height: 0 !important;
        height: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        transform: none !important;
    }

    /* Que Bootstrap no vuelva a estirar los botones */
    body #main-content .oikos-info-managed-header .btn,
    body #main-content .oikos-module-header .btn,
    body #main-content > .d-flex.justify-content-between .btn,
    body #main-content > section.d-flex.justify-content-between .btn,
    body #main-content .treasury-page > .d-flex.justify-content-between .btn,
    body #main-content [data-oikos-view] > section.d-flex.justify-content-between .btn,
    body #main-content [data-oikos-view] > .d-flex.justify-content-between .btn {
        width: auto !important;
        max-width: 100% !important;
        flex: 0 0 auto !important;
        margin-top: 0 !important;
    }

    /* Botones principales largos: permiten bajar a segunda línea sin empujar todo */
    body #main-content .oikos-info-managed-header .btn-primary,
    body #main-content .oikos-module-header .btn-primary,
    body #main-content .treasury-page > .d-flex.justify-content-between .btn-primary,
    body #main-content [data-oikos-view] > section.d-flex.justify-content-between .btn-primary {
        flex: 0 1 auto !important;
        white-space: normal !important;
    }

    /* Evita que encabezados antiguos de Bootstrap con align-items-center generen aire vertical */
    body #main-content .align-items-center.oikos-info-managed-header,
    body #main-content .align-items-start.oikos-info-managed-header {
        align-items: stretch !important;
    }
}
