/*
 * Gestion Iglesia - Estilos de impresión
 * Vista clara para imprimir o guardar como PDF desde el navegador.
 */

@media print {
    @page { size: letter; margin: 10mm; }

    :root,
    html,
    body,
    body.light,
    body.dark {
        --bg:#ffffff !important;
        --bg-2:#ffffff !important;
        --bg-3:#ffffff !important;
        --bg-4:#ffffff !important;
        --panel:#ffffff !important;
        --panel-2:#ffffff !important;
        --panel-3:#ffffff !important;
        --panel-soft:#ffffff !important;
        --surface:#ffffff !important;
        --surface-1:#ffffff !important;
        --surface-2:#ffffff !important;
        --input-bg:#ffffff !important;
        --stroke:#b8c2d0 !important;
        --stroke-strong:#7f8ea3 !important;
        --border:#b8c2d0 !important;
        --border-color:#b8c2d0 !important;
        --text:#101827 !important;
        --text-soft:#27364a !important;
        --text-muted:#536175 !important;
        --muted:#536175 !important;
        --muted-text:#536175 !important;
        --text-primary:#101827 !important;
        --shadow-1:none !important;
        --shadow-2:none !important;
        --shadow-3:none !important;
        --ui-line:#b8c2d0 !important;
    }

    *,
    *::before,
    *::after {
        box-shadow:none !important;
        text-shadow:none !important;
        animation:none !important;
        transition:none !important;
    }

    html,
    body {
        width:100% !important;
        min-height:auto !important;
        overflow:visible !important;
        background:#fff !important;
        color:#101827 !important;
        font-size:10pt !important;
        line-height:1.32 !important;
        -webkit-print-color-adjust:exact;
        print-color-adjust:exact;
    }

    body {
        padding:0 !important;
        margin:0 !important;
        background:#fff !important;
    }

    body::before,
    body::after,
    .app-shell::before,
    .app-shell::after,
    .main-content::before,
    .main-content::after { display:none !important; content:none !important; }

    a { color:#101827 !important; text-decoration:none !important; }
    a[href]::after { content:"" !important; }

    .no-print,
    .sidebar,
    .sidebar-overlay,
    .topbar,
    .mobile-menu-btn,
    .mobile-close-btn,
    .theme-switch,
    .logout-btn,
    .topbar-print-btn,
    .ui-module-actions,
    .ui-actions,
    .ui-filter,
    .ui-filters,
    .filters,
    .filter-card,
    .pagination,
    .theme-pagination,
    .ui-pagination,
    .modal,
    .modal-backdrop,
    .ui-modal,
    .ui-modal-backdrop,
    .btn,
    input[type="button"],
    input[type="submit"],
    input[type="reset"],
    .programas-toolbar,
    .view-switch,
    .ui-view-switch,
    .tabs,
    .tab-list,
    .js-tabs,
    .toast,
    .notice,
    .leaflet-container,
    .map,
    .mapa,
    iframe,
    .screen-reader-text {
        display:none !important;
    }

    .print-only { display:block !important; }

    .app-shell,
    .main-area,
    .content,
    .main-content,
    main,
    .ui-section,
    .ui-module,
    .ui-table-card,
    .ui-card,
    .ui-content-card,
    .card,
    .panel,
    .theme-content-body {
        display:block !important;
        width:100% !important;
        max-width:none !important;
        min-width:0 !important;
        min-height:0 !important;
        height:auto !important;
        overflow:visible !important;
        margin:0 0 7mm 0 !important;
        padding:0 !important;
        background:#fff !important;
        color:#101827 !important;
        border:0 !important;
        border-radius:0 !important;
        box-shadow:none !important;
    }

    .ui-module-head,
    .ui-card-head,
    .card-head,
    .module-head,
    .ui-card-inline-head {
        display:block !important;
        margin:0 0 4mm 0 !important;
        padding:0 0 2.5mm 0 !important;
        border-bottom:1px solid #b8c2d0 !important;
        background:transparent !important;
        color:#101827 !important;
    }

    .ui-kicker,
    .ui-module-title,
    .ui-title,
    h1,h2,h3,h4,h5,h6 {
        color:#101827 !important;
        page-break-after:avoid !important;
        break-after:avoid !important;
    }

    h1,
    .ui-module-title { font-size:17pt !important; line-height:1.18 !important; margin:0 0 2mm 0 !important; }
    h2 { font-size:14pt !important; margin:5mm 0 2.5mm 0 !important; }
    h3 { font-size:12pt !important; margin:4mm 0 2mm 0 !important; }

    .ui-module-subtitle,
    .ui-subtitle,
    .text-muted,
    .muted,
    small { color:#536175 !important; }

    .ui-module-body,
    .ui-card-body,
    .card-body,
    .module-body {
        width:100% !important;
        max-width:none !important;
        overflow:visible !important;
        padding:0 !important;
        margin:0 !important;
        background:#fff !important;
        color:#101827 !important;
    }

    .ui-grid,
    .grid,
    .kpi-grid,
    .dashboard-grid,
    .cards-grid,
    .bloques-grid,
    .ui-cards-grid,
    .ui-kpi-grid,
    .rolcultos-card-grid {
        display:block !important;
    }

    .kpi-card,
    .stat-card,
    .summary-card,
    .bloque-card,
    .item-card,
    .ui-kpi-neutral,
    .ui-kpi-neutral-secondary,
    .ui-kpi-card,
    .metric-card {
        page-break-inside:avoid !important;
        break-inside:avoid !important;
        margin:0 0 4mm 0 !important;
        padding:3.5mm !important;
        border:1px solid #c7d0dc !important;
        border-radius:0 !important;
        background:#fff !important;
        color:#101827 !important;
    }

    table,
    .ui-table,
    .ui-div-table,
    .finanzas-table,
    .finanzas-report-div-table {
        display:table !important;
        width:100% !important;
        min-width:0 !important;
        max-width:none !important;
        border-collapse:collapse !important;
        border-spacing:0 !important;
        overflow:visible !important;
        background:#fff !important;
        color:#101827 !important;
        page-break-inside:auto !important;
    }

    thead,
    .ui-div-thead { display:table-header-group !important; }
    tbody,
    .ui-div-tbody { display:table-row-group !important; }
    tfoot { display:table-footer-group !important; }

    tr,
    .ui-div-row,
    .finanzas-table .ui-div-row,
    .finanzas-report-div-table .ui-div-row,
    .rolcultos-table .ui-div-row {
        display:table-row !important;
        page-break-inside:avoid !important;
        break-inside:avoid !important;
        background:#fff !important;
        color:#101827 !important;
    }

    th,
    td,
    .ui-div-cell,
    .ui-div-head,
    .ui-table th,
    .ui-table td,
    .finanzas-table .ui-div-cell,
    .finanzas-report-div-table .ui-div-cell,
    .rolcultos-table .ui-div-cell {
        display:table-cell !important;
        border:1px solid #b8c2d0 !important;
        padding:4px 5px !important;
        background:#fff !important;
        color:#101827 !important;
        vertical-align:top !important;
        font-size:8.6pt !important;
        line-height:1.2 !important;
        white-space:normal !important;
        min-width:0 !important;
        width:auto !important;
    }

    th,
    .ui-div-head,
    .ui-div-thead .ui-div-cell {
        font-weight:800 !important;
        background:#eef2f7 !important;
        color:#101827 !important;
    }

    .table-responsive,
    .ui-table-scroll,
    .ui-table-wrap,
    .table-wrap,
    .scroll-x,
    .ui-scroll-x,
    .finanzas-table-scroll,
    .rolcultos-table-scroll,
    .actividades-table-scroll {
        width:100% !important;
        max-width:none !important;
        overflow:visible !important;
        margin:0 !important;
        padding:0 !important;
    }

    .badge,
    .ui-badge,
    .status-badge,
    .rolcultos-check,
    .rolcultos-config-check,
    .finanzas-concept-badge {
        display:inline-block !important;
        border:1px solid #8e9bae !important;
        background:#fff !important;
        color:#101827 !important;
        padding:1px 4px !important;
        border-radius:3px !important;
        font-size:8pt !important;
    }

    input,
    select,
    textarea {
        border:1px solid #8e9bae !important;
        background:#fff !important;
        color:#101827 !important;
    }

    img,
    svg,
    canvas {
        max-width:100% !important;
        height:auto !important;
        page-break-inside:avoid !important;
        break-inside:avoid !important;
    }

    .ui-empty,
    .empty-state {
        border:1px dashed #b8c2d0 !important;
        background:#fff !important;
        color:#536175 !important;
        padding:6mm !important;
    }

    /* Calendarios: no ocultar los contenidos por estar hechos con botones. */
    .ui-calendar-weekdays,
    .calendar-weekdays,
    .rolcultos-calendar-weekdays {
        display:grid !important;
        grid-template-columns:repeat(7, minmax(0,1fr)) !important;
        gap:0 !important;
        margin:0 !important;
        border:1px solid #b8c2d0 !important;
        border-bottom:0 !important;
        background:#eef2f7 !important;
    }

    .ui-calendar-weekday,
    .calendar-weekday {
        display:block !important;
        padding:4px !important;
        border-right:1px solid #b8c2d0 !important;
        color:#101827 !important;
        font-size:8pt !important;
        font-weight:800 !important;
        text-align:center !important;
    }

    .ui-calendar,
    .calendar-grid,
    .actividades-calendar-grid,
    .rolcultos-calendar-grid {
        display:grid !important;
        grid-template-columns:repeat(7, minmax(0,1fr)) !important;
        gap:0 !important;
        width:100% !important;
        overflow:visible !important;
        border-left:1px solid #b8c2d0 !important;
        border-top:1px solid #b8c2d0 !important;
        background:#fff !important;
    }

    .calendar-day,
    .ui-day,
    .actividades-day,
    .rolcultos-calendar-day,
    button.calendar-day,
    button.ui-day {
        display:block !important;
        min-height:28mm !important;
        height:auto !important;
        padding:3px !important;
        margin:0 !important;
        border:0 !important;
        border-right:1px solid #b8c2d0 !important;
        border-bottom:1px solid #b8c2d0 !important;
        border-radius:0 !important;
        background:#fff !important;
        color:#101827 !important;
        overflow:visible !important;
        text-align:left !important;
        page-break-inside:avoid !important;
        break-inside:avoid !important;
    }

    .calendar-day.is-muted,
    .ui-day.is-muted,
    .rolcultos-calendar-day.is-other-month { background:#f8fafc !important; color:#6b7280 !important; opacity:1 !important; }

    .calendar-day.is-today,
    .ui-day.is-today,
    .rolcultos-calendar-day.is-today { background:#eef6ff !important; outline:1px solid #64748b !important; }

    .ui-day-head,
    .calendar-day .ui-day-head,
    .rolcultos-day-head {
        display:flex !important;
        justify-content:space-between !important;
        align-items:flex-start !important;
        gap:4px !important;
        margin:0 0 2px 0 !important;
        padding:0 !important;
        color:#101827 !important;
    }

    .ui-day-number { color:#101827 !important; font-size:9pt !important; }
    .ui-day-name,
    .calendar-dow { color:#536175 !important; font-size:7pt !important; }

    .calendar-day-tasks,
    .ui-day-events,
    .rolcultos-calendar-events {
        display:block !important;
        width:100% !important;
        overflow:visible !important;
    }

    .calendar-task,
    .ui-event,
    .rolcultos-calendar-event,
    button.rolcultos-calendar-event {
        display:block !important;
        width:100% !important;
        max-width:100% !important;
        margin:0 0 2px 0 !important;
        padding:2px 3px !important;
        border:1px solid #9aa8ba !important;
        border-radius:3px !important;
        background:#f8fafc !important;
        color:#101827 !important;
        overflow:visible !important;
        text-align:left !important;
        white-space:normal !important;
        font-size:7.2pt !important;
        line-height:1.15 !important;
    }

    .calendar-task b,
    .ui-event b,
    .rolcultos-calendar-main,
    .rolcultos-calendar-meta,
    .actividad-time,
    .actividad-owner {
        display:block !important;
        overflow:visible !important;
        text-overflow:clip !important;
        white-space:normal !important;
        color:#101827 !important;
        font-size:7.2pt !important;
        line-height:1.15 !important;
    }

    .rolcultos-calendar-meta,
    .calendar-task small,
    .ui-event small { color:#536175 !important; }

    /* Finanzas: tablas div limpias para impresión. */
    .finanzas-report-card,
    .finanzas-module .ui-table-card { page-break-inside:avoid !important; break-inside:avoid !important; margin-bottom:7mm !important; }
    .finanzas-table small { color:#536175 !important; font-size:7.8pt !important; }
    .finanzas-direction-icon { display:inline !important; width:auto !important; height:auto !important; background:transparent !important; color:#101827 !important; }
    .finanzas-table .ui-table-actions,
    .finanzas-table .ui-div-cell[data-label="Acciones"],
    .rolcultos-table .ui-table-actions,
    .rolcultos-table .ui-div-cell[data-label="Editar"] { display:none !important; }



    /* Vista de bloques: 3 tarjetas por fila en impresión. */
    .agenda-pastoral-blocks,
    .actividades-block-grid,
    .oficios-block-grid,
    .rolcultos-card-grid,
    .bosquejos-card-grid,
    .direcciones-card-grid,
    .hogares-card-grid,
    .ui-entity-grid,
    .ui-card-grid,
    .ui-cards-grid,
    .cards-grid,
    .bloques-grid {
        display:grid !important;
        grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
        gap:4mm !important;
        align-items:stretch !important;
        width:100% !important;
        max-width:none !important;
        margin:0 0 5mm 0 !important;
        padding:0 !important;
        overflow:visible !important;
        page-break-inside:auto !important;
        break-inside:auto !important;
    }

    .agenda-pastoral-blocks > *,
    .actividades-block-grid > *,
    .oficios-block-grid > *,
    .rolcultos-card-grid > *,
    .bosquejos-card-grid > *,
    .direcciones-card-grid > *,
    .hogares-card-grid > *,
    .ui-entity-grid > *,
    .ui-card-grid > *,
    .ui-cards-grid > *,
    .cards-grid > *,
    .bloques-grid > * {
        width:auto !important;
        max-width:none !important;
        min-width:0 !important;
        margin:0 !important;
        page-break-inside:avoid !important;
        break-inside:avoid !important;
    }

    .agenda-pastoral-block,
    .actividades-block,
    .oficios-block,
    .rolcultos-card,
    .bosquejos-card,
    .direccion-card,
    .hogar-card,
    .ui-entity-card,
    .bloque-card,
    .item-card {
        padding:3mm !important;
        border:1px solid #c7d0dc !important;
        border-radius:0 !important;
        background:#fff !important;
        color:#101827 !important;
        min-height:0 !important;
        overflow:visible !important;
    }

    .agenda-pastoral-block h3,
    .actividades-block h3,
    .oficios-block h3,
    .rolcultos-card h3,
    .bosquejos-card h3,
    .direccion-card h3,
    .hogar-card h3,
    .ui-entity-card h3 {
        font-size:10pt !important;
        line-height:1.2 !important;
        margin:0 0 2mm 0 !important;
    }

    .agenda-pastoral-block p,
    .actividades-block p,
    .oficios-block p,
    .rolcultos-card p,
    .bosquejos-card p,
    .direccion-card p,
    .hogar-card p,
    .ui-entity-card p,
    .agenda-pastoral-block small,
    .actividades-block small,
    .oficios-block small,
    .rolcultos-card small,
    .bosquejos-card small,
    .direccion-card small,
    .hogar-card small,
    .ui-entity-card small {
        font-size:8pt !important;
        line-height:1.2 !important;
        color:#27364a !important;
        white-space:normal !important;
        overflow:visible !important;
        text-overflow:clip !important;
    }

    /* Organigrama: forzar versión clara y visible. */
    .organigrama-panel > .organigrama-head { display:block !important; }
    .organigrama-print-area,
    .organigrama-board-print,
    .organigrama-direccion-print,
    .organigrama-columna,
    .organigrama-cards,
    .organigrama-personas-print,
    .organigrama-consejo-lista {
        display:block !important;
        width:100% !important;
        max-width:none !important;
        margin:0 0 4mm 0 !important;
        padding:0 !important;
        background:#fff !important;
        color:#101827 !important;
        overflow:visible !important;
    }

    .organigrama-print-title { color:#101827 !important; font-size:16pt !important; margin:0 0 5mm 0 !important; text-align:center !important; }

    .organigrama-card-pastor,
    .organigrama-card-adjunto,
    .organigrama-card,
    button.organigrama-card,
    button.organigrama-card-pastor,
    button.organigrama-card-adjunto {
        display:block !important;
        width:100% !important;
        min-height:0 !important;
        margin:0 0 3mm 0 !important;
        padding:3mm !important;
        border:1px solid #b8c2d0 !important;
        border-top:3px solid #64748b !important;
        border-radius:0 !important;
        background:#fff !important;
        color:#101827 !important;
        text-align:left !important;
        page-break-inside:avoid !important;
        break-inside:avoid !important;
        cursor:default !important;
    }

    .organigrama-columna-head {
        display:block !important;
        min-height:0 !important;
        margin:5mm 0 2mm 0 !important;
        padding:2mm 3mm !important;
        border:1px solid #b8c2d0 !important;
        border-radius:0 !important;
        background:#eef2f7 !important;
        color:#101827 !important;
        font-size:11pt !important;
        text-align:left !important;
    }

    .organigrama-card h3,
    .organigrama-card-pastor h3,
    .organigrama-card-adjunto h3,
    .organigrama-card-kicker,
    .organigrama-director strong,
    .organigrama-personas-print *,
    .organigrama-consejo-lista * {
        color:#101827 !important;
        background:transparent !important;
        overflow:visible !important;
        text-overflow:clip !important;
        white-space:normal !important;
    }

    .organigrama-divider { border-top:1px dashed #b8c2d0 !important; }

    .js-org-duplicates { display:none !important; }

    /* KPIs en impresión: 4 indicadores por fila para aprovechar mejor la hoja. */
    .ui-kpi-grid,
    .kpi-grid,
    .asistencia-kpi-grid,
    .dashboard-area-kpis,
    .agenda-pastoral-kpis,
    .aniversarios-kpis,
    .censo-kpis,
    .configuracion-kpis,
    .consejo-kpis,
    .cuerpo-pastoral-kpis,
    .direcciones-kpis,
    .direcciones-grupo-kpis,
    .hogares-kpis,
    .iglesias-kpis,
    .notificaciones-kpis,
    .organigrama-kpis,
    .rolcultos-kpis,
    .usuarios-kpis,
    .ui-indicator-grid {
        display:grid !important;
        grid-template-columns:repeat(4, minmax(0, 1fr)) !important;
        gap:3mm !important;
        align-items:stretch !important;
        width:100% !important;
        max-width:none !important;
        margin:0 0 5mm 0 !important;
        padding:0 !important;
        overflow:visible !important;
        page-break-inside:auto !important;
        break-inside:auto !important;
    }

    .ui-kpi-grid > *,
    .kpi-grid > *,
    .asistencia-kpi-grid > *,
    .dashboard-area-kpis > *,
    .agenda-pastoral-kpis > *,
    .aniversarios-kpis > *,
    .censo-kpis > *,
    .configuracion-kpis > *,
    .consejo-kpis > *,
    .cuerpo-pastoral-kpis > *,
    .direcciones-kpis > *,
    .direcciones-grupo-kpis > *,
    .hogares-kpis > *,
    .iglesias-kpis > *,
    .notificaciones-kpis > *,
    .organigrama-kpis > *,
    .rolcultos-kpis > *,
    .usuarios-kpis > *,
    .ui-indicator-grid > *,
    .ui-kpi,
    .ui-kpi-main,
    .ui-kpi-simple,
    .ui-kpi-neutral,
    .ui-kpi-neutral-secondary,
    .ui-kpi-card,
    .kpi-card,
    .stat-card,
    .summary-card,
    .metric-card,
    .asistencia-kpi-card,
    .ui-indicator {
        width:auto !important;
        max-width:none !important;
        min-width:0 !important;
        min-height:0 !important;
        margin:0 !important;
        padding:2.8mm !important;
        border:1px solid #c7d0dc !important;
        border-radius:0 !important;
        background:#fff !important;
        color:#101827 !important;
        box-shadow:none !important;
        page-break-inside:avoid !important;
        break-inside:avoid !important;
        overflow:visible !important;
    }

    .ui-kpi::before,
    .ui-kpi::after,
    .ui-kpi-main::before,
    .ui-kpi-main::after,
    .ui-kpi-simple::before,
    .ui-kpi-simple::after,
    .ui-kpi-neutral::before,
    .ui-kpi-neutral::after,
    .ui-kpi-neutral-secondary::before,
    .ui-kpi-neutral-secondary::after,
    .ui-indicator::before,
    .ui-indicator::after {
        display:none !important;
        content:none !important;
    }

    .ui-kpi-label,
    .ui-indicator-title {
        display:block !important;
        margin:0 0 1.4mm 0 !important;
        color:#536175 !important;
        font-size:7.5pt !important;
        line-height:1.15 !important;
        letter-spacing:.04em !important;
        text-transform:uppercase !important;
        white-space:normal !important;
    }

    .ui-kpi-value,
    .ui-indicator-value {
        display:block !important;
        margin:0 !important;
        color:#101827 !important;
        font-size:14pt !important;
        line-height:1.05 !important;
        letter-spacing:-.03em !important;
        white-space:normal !important;
    }

    .ui-kpi-note,
    .ui-indicator-note {
        display:block !important;
        max-width:none !important;
        margin:1.5mm 0 0 0 !important;
        color:#536175 !important;
        font-size:7.5pt !important;
        line-height:1.2 !important;
        white-space:normal !important;
    }

    .ui-kpi-chip {
        display:inline-flex !important;
        min-height:0 !important;
        margin:0 0 1.5mm 0 !important;
        padding:1mm 1.8mm !important;
        border:1px solid #c7d0dc !important;
        border-radius:999px !important;
        background:#eef2f7 !important;
        color:#101827 !important;
        font-size:7pt !important;
        line-height:1 !important;
        box-shadow:none !important;
    }

}

/* Ajuste específico de impresión: Organigrama en 4 columnas.
   Mantiene la estructura visual del módulo y evita que la regla global de cards
   convierta el organigrama a una sola columna. */
@media print {
    body.module-organigrama .organigrama-panel > .organigrama-head,
    .organigrama-module .organigrama-panel > .organigrama-head {
        display:none !important;
    }

    body.module-organigrama .organigrama-print-area,
    .organigrama-module .organigrama-print-area {
        display:block !important;
        width:100% !important;
        max-width:none !important;
        margin:0 auto !important;
        padding:0 !important;
        background:#fff !important;
        color:#101827 !important;
        overflow:visible !important;
    }

    body.module-organigrama .organigrama-print-title,
    .organigrama-module .organigrama-print-title {
        display:block !important;
        margin:0 0 5mm 0 !important;
        color:#101827 !important;
        font-size:18pt !important;
        line-height:1.15 !important;
        font-weight:900 !important;
        text-align:center !important;
        letter-spacing:0 !important;
    }

    body.module-organigrama .organigrama-direccion-print,
    .organigrama-module .organigrama-direccion-print {
        display:grid !important;
        grid-template-columns:28mm 48mm 28mm !important;
        justify-content:center !important;
        align-items:end !important;
        gap:4mm !important;
        width:100% !important;
        max-width:none !important;
        margin:0 auto 8mm auto !important;
        padding:0 !important;
        background:#fff !important;
        overflow:visible !important;
    }

    body.module-organigrama .organigrama-card-pastor,
    .organigrama-module .organigrama-card-pastor {
        grid-column:2 !important;
        width:48mm !important;
        min-height:20mm !important;
        margin:0 !important;
        padding:4mm !important;
        text-align:center !important;
        border-top:2mm solid #7c3aed !important;
    }

    body.module-organigrama .organigrama-card-adjunto,
    .organigrama-module .organigrama-card-adjunto {
        grid-column:3 !important;
        width:28mm !important;
        min-height:17mm !important;
        margin:0 !important;
        padding:3mm !important;
        text-align:center !important;
        border-top:2mm solid #7c3aed !important;
    }

    body.module-organigrama .organigrama-board-print,
    .organigrama-module .organigrama-board-print,
    body.module-organigrama .organigrama-board,
    .organigrama-module .organigrama-board {
        display:grid !important;
        grid-template-columns:repeat(4, minmax(0, 1fr)) !important;
        gap:4mm !important;
        align-items:start !important;
        width:100% !important;
        max-width:none !important;
        margin:0 !important;
        padding:0 !important;
        background:#fff !important;
        color:#101827 !important;
        overflow:visible !important;
        page-break-inside:auto !important;
        break-inside:auto !important;
    }

    body.module-organigrama .organigrama-columna,
    .organigrama-module .organigrama-columna {
        display:grid !important;
        grid-template-rows:auto 1fr !important;
        gap:3mm !important;
        width:auto !important;
        max-width:none !important;
        min-width:0 !important;
        margin:0 !important;
        padding:0 !important;
        background:transparent !important;
        overflow:visible !important;
        page-break-inside:auto !important;
        break-inside:auto !important;
    }

    body.module-organigrama .organigrama-cards,
    .organigrama-module .organigrama-cards,
    body.module-organigrama .organigrama-personas-print,
    .organigrama-module .organigrama-personas-print,
    body.module-organigrama .organigrama-consejo-lista,
    .organigrama-module .organigrama-consejo-lista {
        display:grid !important;
        gap:3mm !important;
        width:100% !important;
        max-width:none !important;
        margin:0 !important;
        padding:0 !important;
        background:transparent !important;
        overflow:visible !important;
    }

    body.module-organigrama .organigrama-columna-head,
    .organigrama-module .organigrama-columna-head {
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;
        min-height:12mm !important;
        margin:0 !important;
        padding:2.5mm 2mm !important;
        border:1px solid #b8c2d0 !important;
        border-radius:4mm !important;
        color:#fff !important;
        font-size:9pt !important;
        font-weight:800 !important;
        line-height:1.15 !important;
        text-align:center !important;
        background:#2563eb !important;
        page-break-inside:avoid !important;
        break-inside:avoid !important;
    }

    body.module-organigrama .organigrama-columna.is-consejo .organigrama-columna-head,
    .organigrama-module .organigrama-columna.is-consejo .organigrama-columna-head { background:#10b981 !important; }

    body.module-organigrama .organigrama-columna.is-departamentos .organigrama-columna-head,
    .organigrama-module .organigrama-columna.is-departamentos .organigrama-columna-head { background:#e11d48 !important; }

    body.module-organigrama .organigrama-columna.is-ministerios .organigrama-columna-head,
    .organigrama-module .organigrama-columna.is-ministerios .organigrama-columna-head { background:#f97316 !important; }

    body.module-organigrama .organigrama-card,
    .organigrama-module .organigrama-card,
    body.module-organigrama button.organigrama-card,
    .organigrama-module button.organigrama-card {
        display:block !important;
        width:100% !important;
        min-width:0 !important;
        min-height:0 !important;
        margin:0 !important;
        padding:3mm !important;
        border:1px solid #d7dee8 !important;
        border-top:1.4mm solid #64748b !important;
        border-radius:3mm !important;
        background:#fff !important;
        color:#101827 !important;
        text-align:left !important;
        page-break-inside:avoid !important;
        break-inside:avoid !important;
        overflow:visible !important;
        cursor:default !important;
    }

    body.module-organigrama .organigrama-card.is-consejo-card,
    .organigrama-module .organigrama-card.is-consejo-card { border-top-color:#10b981 !important; }

    body.module-organigrama .organigrama-card[class*="is-society-"],
    .organigrama-module .organigrama-card[class*="is-society-"] { border-top-color:#2563eb !important; }

    body.module-organigrama .organigrama-card[class*="is-dept-"],
    .organigrama-module .organigrama-card[class*="is-dept-"] { border-top-color:#e11d48 !important; }

    body.module-organigrama .organigrama-card[class*="is-group-"],
    .organigrama-module .organigrama-card[class*="is-group-"] { border-top-color:#f97316 !important; }

    body.module-organigrama .organigrama-card h3,
    .organigrama-module .organigrama-card h3,
    body.module-organigrama .organigrama-card-kicker,
    .organigrama-module .organigrama-card-kicker {
        display:block !important;
        margin:0 0 2.2mm 0 !important;
        padding:0 !important;
        color:#5b6474 !important;
        font-size:7.5pt !important;
        font-weight:900 !important;
        line-height:1.15 !important;
        text-transform:uppercase !important;
        letter-spacing:.08em !important;
        background:transparent !important;
        border:0 !important;
        white-space:normal !important;
        overflow:visible !important;
        text-overflow:clip !important;
    }

    body.module-organigrama .organigrama-card-pastor h3,
    .organigrama-module .organigrama-card-pastor h3,
    body.module-organigrama .organigrama-card-adjunto h3,
    .organigrama-module .organigrama-card-adjunto h3,
    body.module-organigrama .organigrama-director strong,
    .organigrama-module .organigrama-director strong {
        color:#101827 !important;
        font-size:9pt !important;
        font-weight:900 !important;
        line-height:1.22 !important;
        background:transparent !important;
        white-space:normal !important;
        overflow:visible !important;
        text-overflow:clip !important;
    }

    body.module-organigrama .organigrama-card-pastor h3,
    .organigrama-module .organigrama-card-pastor h3 { font-size:11pt !important; text-align:center !important; }

    body.module-organigrama .organigrama-card-adjunto h3,
    .organigrama-module .organigrama-card-adjunto h3 { font-size:8.5pt !important; text-align:center !important; }

    body.module-organigrama .organigrama-consejo-directores .organigrama-director,
    .organigrama-module .organigrama-consejo-directores .organigrama-director {
        display:grid !important;
        gap:1.6mm !important;
    }

    body.module-organigrama .organigrama-consejo-directores .organigrama-director strong,
    .organigrama-module .organigrama-consejo-directores .organigrama-director strong {
        padding-bottom:1.6mm !important;
        border-bottom:1px dashed #d7dee8 !important;
    }

    body.module-organigrama .organigrama-apoyos,
    .organigrama-module .organigrama-apoyos {
        display:block !important;
        margin:0 !important;
        padding-left:4mm !important;
        color:#27364a !important;
        font-size:7.5pt !important;
        line-height:1.35 !important;
        background:transparent !important;
        white-space:normal !important;
        overflow:visible !important;
    }

    body.module-organigrama .organigrama-divider,
    .organigrama-module .organigrama-divider {
        height:1px !important;
        margin:2mm 0 !important;
        border:0 !important;
        border-top:1px dashed #d7dee8 !important;
    }

    body.module-organigrama .js-org-duplicates,
    .organigrama-module .js-org-duplicates { display:none !important; }
}

/* Ajuste específico de impresión: incluir tabla de revisión de cargas después del organigrama. */
@media print {
    body.module-organigrama .js-org-duplicates,
    .organigrama-module .js-org-duplicates {
        display:block !important;
        width:100% !important;
        max-width:none !important;
        margin:0 !important;
        padding:0 !important;
        background:#fff !important;
        color:#101827 !important;
        overflow:visible !important;
        break-before:page !important;
        page-break-before:always !important;
    }

    body.module-organigrama .organigrama-duplicados-panel,
    .organigrama-module .organigrama-duplicados-panel {
        display:block !important;
        width:100% !important;
        max-width:none !important;
        margin:0 !important;
        padding:0 !important;
        border:0 !important;
        border-radius:0 !important;
        background:#fff !important;
        color:#101827 !important;
        box-shadow:none !important;
        overflow:visible !important;
    }

    body.module-organigrama .organigrama-duplicados-panel .ui-module-head,
    .organigrama-module .organigrama-duplicados-panel .ui-module-head {
        display:block !important;
        margin:0 0 5mm 0 !important;
        padding:0 0 3mm 0 !important;
        border-bottom:1px solid #b8c2d0 !important;
        background:#fff !important;
        color:#101827 !important;
    }

    body.module-organigrama .organigrama-duplicados-panel .ui-kicker,
    .organigrama-module .organigrama-duplicados-panel .ui-kicker {
        display:block !important;
        margin:0 0 1mm 0 !important;
        color:#27364a !important;
        font-size:8pt !important;
        font-weight:900 !important;
        letter-spacing:.08em !important;
        text-transform:uppercase !important;
    }

    body.module-organigrama .organigrama-duplicados-panel .ui-module-title,
    .organigrama-module .organigrama-duplicados-panel .ui-module-title {
        display:block !important;
        margin:0 0 1mm 0 !important;
        color:#101827 !important;
        font-size:16pt !important;
        line-height:1.15 !important;
        font-weight:900 !important;
    }

    body.module-organigrama .organigrama-duplicados-panel .ui-module-subtitle,
    .organigrama-module .organigrama-duplicados-panel .ui-module-subtitle {
        display:block !important;
        margin:0 !important;
        color:#27364a !important;
        font-size:9pt !important;
        line-height:1.25 !important;
    }

    body.module-organigrama .organigrama-duplicados-panel .ui-table-scroll,
    .organigrama-module .organigrama-duplicados-panel .ui-table-scroll {
        display:block !important;
        width:100% !important;
        max-width:none !important;
        margin:0 !important;
        padding:0 !important;
        overflow:visible !important;
        background:#fff !important;
    }

    body.module-organigrama .organigrama-duplicados-table,
    .organigrama-module .organigrama-duplicados-table {
        display:table !important;
        width:100% !important;
        min-width:0 !important;
        max-width:none !important;
        border-collapse:collapse !important;
        border-spacing:0 !important;
        table-layout:fixed !important;
        background:#fff !important;
        color:#101827 !important;
        border:1px solid #b8c2d0 !important;
    }

    body.module-organigrama .organigrama-duplicados-table .ui-div-row,
    .organigrama-module .organigrama-duplicados-table .ui-div-row {
        display:table-row !important;
        grid-template-columns:none !important;
        width:auto !important;
        margin:0 !important;
        padding:0 !important;
        background:#fff !important;
        color:#101827 !important;
        page-break-inside:avoid !important;
        break-inside:avoid !important;
    }

    body.module-organigrama .organigrama-duplicados-table .ui-div-cell,
    body.module-organigrama .organigrama-duplicados-table .ui-div-head,
    .organigrama-module .organigrama-duplicados-table .ui-div-cell,
    .organigrama-module .organigrama-duplicados-table .ui-div-head {
        display:table-cell !important;
        border:1px solid #b8c2d0 !important;
        padding:3mm !important;
        background:#fff !important;
        color:#101827 !important;
        vertical-align:top !important;
        font-size:9pt !important;
        line-height:1.25 !important;
        white-space:normal !important;
        overflow:visible !important;
    }

    body.module-organigrama .organigrama-duplicados-table .ui-div-head,
    .organigrama-module .organigrama-duplicados-table .ui-div-head {
        background:#eef2f7 !important;
        color:#27364a !important;
        font-weight:900 !important;
        letter-spacing:.08em !important;
        text-transform:uppercase !important;
        font-size:8pt !important;
    }

    body.module-organigrama .organigrama-duplicados-table .ui-div-cell:first-child,
    body.module-organigrama .organigrama-duplicados-table .ui-div-head:first-child,
    .organigrama-module .organigrama-duplicados-table .ui-div-cell:first-child,
    .organigrama-module .organigrama-duplicados-table .ui-div-head:first-child {
        width:35% !important;
        font-weight:800 !important;
    }

    body.module-organigrama .organigrama-duplicados-table .ui-div-cell:last-child,
    body.module-organigrama .organigrama-duplicados-table .ui-div-head:last-child,
    .organigrama-module .organigrama-duplicados-table .ui-div-cell:last-child,
    .organigrama-module .organigrama-duplicados-table .ui-div-head:last-child {
        width:65% !important;
    }

    body.module-organigrama .organigrama-duplicados-cargos,
    .organigrama-module .organigrama-duplicados-cargos {
        display:flex !important;
        flex-wrap:wrap !important;
        gap:2mm !important;
        align-items:flex-start !important;
        width:100% !important;
        max-width:none !important;
        margin:0 !important;
        padding:0 !important;
        background:transparent !important;
        overflow:visible !important;
    }

    body.module-organigrama .organigrama-duplicados-cargos .ui-status-pill,
    .organigrama-module .organigrama-duplicados-cargos .ui-status-pill {
        display:inline-block !important;
        max-width:100% !important;
        margin:0 !important;
        padding:1mm 2mm !important;
        border:1px solid #8e9bae !important;
        border-radius:999px !important;
        background:#fff !important;
        color:#101827 !important;
        font-size:8pt !important;
        font-weight:700 !important;
        line-height:1.15 !important;
        white-space:normal !important;
        text-align:left !important;
        overflow:visible !important;
    }

    body.module-organigrama .organigrama-empty-modal,
    .organigrama-module .organigrama-empty-modal {
        display:block !important;
        width:100% !important;
        padding:6mm !important;
        border:1px dashed #b8c2d0 !important;
        background:#fff !important;
        color:#536175 !important;
        text-align:center !important;
    }
}

/* Corrección impresión organigrama: limpiar etiquetas repetidas y conservar colores en cargos actuales. */
@media print {
    body.module-organigrama .organigrama-duplicados-table .ui-div-cell::before,
    body.module-organigrama .organigrama-duplicados-table .ui-div-head::before,
    .organigrama-module .organigrama-duplicados-table .ui-div-cell::before,
    .organigrama-module .organigrama-duplicados-table .ui-div-head::before {
        content:none !important;
        display:none !important;
    }

    body.module-organigrama .organigrama-duplicados-table .ui-div-thead .ui-div-cell,
    .organigrama-module .organigrama-duplicados-table .ui-div-thead .ui-div-cell {
        background:#eef2f7 !important;
        color:#27364a !important;
        font-weight:900 !important;
        letter-spacing:.08em !important;
        text-transform:uppercase !important;
        font-size:8pt !important;
    }

    body.module-organigrama .organigrama-duplicados-table .ui-div-cell,
    .organigrama-module .organigrama-duplicados-table .ui-div-cell {
        padding:2.4mm 3mm !important;
    }

    body.module-organigrama .organigrama-duplicados-cargos .ui-status-pill,
    .organigrama-module .organigrama-duplicados-cargos .ui-status-pill,
    body.module-organigrama .organigrama-duplicados-cargos .status-pill,
    .organigrama-module .organigrama-duplicados-cargos .status-pill {
        display:inline-flex !important;
        align-items:center !important;
        justify-content:center !important;
        min-height:6mm !important;
        padding:1mm 2.5mm !important;
        border-radius:999px !important;
        border:1px solid var(--print-status-border, #8e9bae) !important;
        background:var(--print-status-bg, #f8fafc) !important;
        color:var(--print-status-color, #101827) !important;
        font-size:7.5pt !important;
        font-weight:900 !important;
        line-height:1.1 !important;
        white-space:normal !important;
        text-align:left !important;
        box-shadow:none !important;
        -webkit-print-color-adjust:exact !important;
        print-color-adjust:exact !important;
    }

    body.module-organigrama .organigrama-duplicados-cargos .ui-status-pill::before,
    .organigrama-module .organigrama-duplicados-cargos .ui-status-pill::before,
    body.module-organigrama .organigrama-duplicados-cargos .status-pill::before,
    .organigrama-module .organigrama-duplicados-cargos .status-pill::before {
        content:none !important;
        display:none !important;
    }

    body.module-organigrama .organigrama-duplicados-cargos .is-blue,
    .organigrama-module .organigrama-duplicados-cargos .is-blue {
        --print-status-color:#0b67b2;
        --print-status-bg:#eaf5ff;
        --print-status-border:#83bef4;
    }

    body.module-organigrama .organigrama-duplicados-cargos .is-orange,
    .organigrama-module .organigrama-duplicados-cargos .is-orange {
        --print-status-color:#a85d00;
        --print-status-bg:#fff5e6;
        --print-status-border:#f2bd72;
    }

    body.module-organigrama .organigrama-duplicados-cargos .is-green,
    .organigrama-module .organigrama-duplicados-cargos .is-green {
        --print-status-color:#0b7a47;
        --print-status-bg:#eafaf2;
        --print-status-border:#79d2a6;
    }

    body.module-organigrama .organigrama-duplicados-cargos .is-danger,
    .organigrama-module .organigrama-duplicados-cargos .is-danger,
    body.module-organigrama .organigrama-duplicados-cargos .is-red,
    .organigrama-module .organigrama-duplicados-cargos .is-red {
        --print-status-color:#bd2f51;
        --print-status-bg:#fff0f4;
        --print-status-border:#ee9aae;
    }

    body.module-organigrama .organigrama-duplicados-cargos .is-pink,
    .organigrama-module .organigrama-duplicados-cargos .is-pink {
        --print-status-color:#b83268;
        --print-status-bg:#fff0f7;
        --print-status-border:#eca0bf;
    }

    body.module-organigrama .organigrama-duplicados-cargos .is-muted,
    .organigrama-module .organigrama-duplicados-cargos .is-muted {
        --print-status-color:#475569;
        --print-status-bg:#f1f5f9;
        --print-status-border:#cbd5e1;
    }
}

/* Corrección global de impresión para tablas responsivas tipo div.
   Mantiene los encabezados de tabla y elimina las etiquetas repetidas data-label
   que se insertan con ::before en cada celda para la vista móvil. */
@media print {
    .ui-div-table .ui-div-cell[data-label]::before,
    .ui-div-table [role="cell"][data-label]::before,
    .finanzas-table .ui-div-cell[data-label]::before,
    .finanzas-report-div-table .ui-div-cell[data-label]::before,
    .rolcultos-table .ui-div-cell[data-label]::before,
    .actividades-table .ui-div-cell[data-label]::before,
    .agenda-pastoral-table .ui-div-cell[data-label]::before,
    .oficios-table .ui-div-cell[data-label]::before,
    .censo-table .ui-div-cell[data-label]::before,
    .usuarios-table .ui-div-cell[data-label]::before,
    .iglesias-table .ui-div-cell[data-label]::before,
    .notificaciones-history-table .ui-div-cell[data-label]::before,
    .direcciones-table .ui-div-cell[data-label]::before,
    .hogares-table .ui-div-cell[data-label]::before,
    .consejo-table .ui-div-cell[data-label]::before,
    .cuerpo-pastoral-table .ui-div-cell[data-label]::before {
        content:none !important;
        display:none !important;
    }

    .ui-div-table .ui-div-cell[data-label],
    .ui-div-table [role="cell"][data-label] {
        grid-template-columns:none !important;
        gap:0 !important;
    }

    .ui-div-table .ui-div-thead,
    .ui-div-table .ui-div-head,
    .ui-div-table [role="columnheader"] {
        display:table-header-group !important;
    }

    .ui-div-table .ui-div-head .ui-div-cell,
    .ui-div-table .ui-div-thead .ui-div-cell,
    .ui-div-table [role="columnheader"],
    .ui-div-table .ui-div-head {
        background:#eef2f7 !important;
        color:#27364a !important;
        font-weight:900 !important;
        letter-spacing:.06em !important;
        text-transform:uppercase !important;
    }
}

/* Unificación final de impresión: tablas limpias, sin etiquetas repetidas,
   sin columna de acciones y conservando colores de estados. */
@media print {
    /* Apariencia uniforme para tablas HTML y tablas div. */
    table,
    .ui-table,
    .ui-div-table {
        width:100% !important;
        border-collapse:collapse !important;
        border-spacing:0 !important;
        table-layout:auto !important;
        border:1px solid #b8c2d0 !important;
        background:#fff !important;
        color:#101827 !important;
        overflow:visible !important;
    }

    .ui-div-table .ui-div-thead,
    .ui-div-table .ui-div-tbody,
    .ui-div-table .ui-div-row {
        background:#fff !important;
        color:#101827 !important;
    }

    table thead,
    .ui-div-table .ui-div-thead {
        display:table-header-group !important;
    }

    table tbody,
    .ui-div-table .ui-div-tbody {
        display:table-row-group !important;
    }

    table tr,
    .ui-div-table .ui-div-row {
        display:table-row !important;
        page-break-inside:avoid !important;
        break-inside:avoid !important;
    }

    table th,
    table td,
    .ui-div-table .ui-div-cell,
    .ui-div-table .ui-div-head {
        display:table-cell !important;
        border:1px solid #b8c2d0 !important;
        padding:4px 6px !important;
        vertical-align:top !important;
        background:#fff !important;
        color:#101827 !important;
        font-size:8.6pt !important;
        line-height:1.22 !important;
        white-space:normal !important;
        overflow:visible !important;
        text-overflow:clip !important;
    }

    table th,
    .ui-div-table .ui-div-thead .ui-div-cell,
    .ui-div-table .ui-div-head,
    .ui-div-table [role="columnheader"] {
        background:#eef2f7 !important;
        color:#27364a !important;
        font-weight:900 !important;
        letter-spacing:.06em !important;
        text-transform:uppercase !important;
        font-size:8pt !important;
    }

    /* Eliminar labels responsivos dentro de cada celda; los encabezados se conservan. */
    .ui-div-table .ui-div-cell[data-label]::before,
    .ui-div-table [role="cell"][data-label]::before,
    table td[data-label]::before {
        content:none !important;
        display:none !important;
    }

    .ui-div-table .ui-div-cell[data-label],
    .ui-div-table [role="cell"][data-label],
    table td[data-label] {
        grid-template-columns:none !important;
        gap:0 !important;
    }

    /* Omitir columna Acciones / Editar en encabezado y filas, sin tocar el HTML. */
    .ui-div-table .ui-div-cell[data-label="Acciones"],
    .ui-div-table .ui-div-cell[data-label="Editar"],
    .ui-div-table [role="cell"][data-label="Acciones"],
    .ui-div-table [role="cell"][data-label="Editar"],
    table td[data-label="Acciones"],
    table td[data-label="Editar"] {
        display:none !important;
    }

    .ui-div-table:has(.ui-div-cell[data-label="Acciones"]) .ui-div-thead .ui-div-row > .ui-div-cell:last-child,
    .ui-div-table:has(.ui-div-cell[data-label="Editar"]) .ui-div-thead .ui-div-row > .ui-div-cell:last-child,
    .ui-div-table:has([role="cell"][data-label="Acciones"]) .ui-div-thead .ui-div-row > .ui-div-cell:last-child,
    .ui-div-table:has([role="cell"][data-label="Editar"]) .ui-div-thead .ui-div-row > .ui-div-cell:last-child,
    .ui-div-table:has(.ui-table-actions) .ui-div-thead .ui-div-row > .ui-div-cell:last-child,
    .ui-div-table:has(.table-actions) .ui-div-thead .ui-div-row > .ui-div-cell:last-child,
    table:has(td[data-label="Acciones"]) thead tr > th:last-child,
    table:has(td[data-label="Editar"]) thead tr > th:last-child,
    table:has(.ui-table-actions) thead tr > th:last-child,
    table:has(.table-actions) thead tr > th:last-child {
        display:none !important;
    }

    /* Ocultar contenedores de acciones cuando aparezcan fuera de una celda dedicada. */
    .ui-div-table .ui-table-actions,
    .ui-div-table .table-actions,
    table .ui-table-actions,
    table .table-actions {
        display:none !important;
    }

    /* Estados: conservar color semántico en impresión, como en la web. */
    .ui-div-table .status-pill,
    .ui-div-table .ui-status-pill,
    .ui-div-table .badge,
    .ui-div-table .ui-badge,
    table .status-pill,
    table .ui-status-pill,
    table .badge,
    table .ui-badge {
        display:inline-flex !important;
        align-items:center !important;
        justify-content:center !important;
        max-width:100% !important;
        min-height:5.5mm !important;
        margin:0 !important;
        padding:1mm 2.2mm !important;
        border-radius:999px !important;
        border:1px solid color-mix(in srgb, var(--status-color, #64748b) 55%, #ffffff) !important;
        background:color-mix(in srgb, var(--status-color, #64748b) 14%, #ffffff) !important;
        color:color-mix(in srgb, var(--status-color, #64748b) 76%, #111827) !important;
        font-size:7.6pt !important;
        font-weight:900 !important;
        line-height:1.12 !important;
        white-space:normal !important;
        text-align:left !important;
        box-shadow:none !important;
        -webkit-print-color-adjust:exact !important;
        print-color-adjust:exact !important;
    }

    .ui-div-table .status-pill::before,
    .ui-div-table .ui-status-pill::before,
    .ui-div-table .badge::before,
    .ui-div-table .ui-badge::before,
    table .status-pill::before,
    table .ui-status-pill::before,
    table .badge::before,
    table .ui-badge::before {
        content:none !important;
        display:none !important;
    }

    /* Compatibilidad con clases de estado que no usan --status-color. */
    .status-pill.status-active,
    .status-pill.is-active,
    .status-pill.is-success,
    .ui-status-pill.is-active,
    .ui-status-pill.is-success,
    .ui-status-pill.is-yes,
    .badge-success { --status-color:#18b66a; }

    .status-pill.status-warning,
    .status-pill.status-pending,
    .status-pill.is-warning,
    .status-pill.is-inactive,
    .ui-status-pill.is-warning,
    .ui-status-pill.is-inactive,
    .ui-status-pill.is-no,
    .badge-warning { --status-color:#f59e0b; }

    .status-pill.status-danger,
    .status-pill.is-danger,
    .ui-status-pill.is-danger,
    .badge-danger { --status-color:#ef4444; }

    .status-pill.status-review,
    .badge-review,
    .status-pill.is-purple,
    .ui-status-pill.is-purple { --status-color:#8b5cf6; }

    .status-pill.status-neutral,
    .status-pill.is-muted,
    .status-pill.is-empty,
    .ui-status-pill.is-muted,
    .ui-status-pill.is-empty,
    .badge-muted { --status-color:#64748b; }

    .status-pill.is-info,
    .status-pill.is-blue,
    .ui-status-pill.is-info,
    .ui-status-pill.is-blue,
    .badge-info { --status-color:#1f8fe5; }

    .status-pill.is-pink,
    .ui-status-pill.is-pink { --status-color:#ec4899; }

    .status-pill.is-green,
    .ui-status-pill.is-green { --status-color:#18b66a; }

    .status-pill.is-orange,
    .ui-status-pill.is-orange { --status-color:#f59e0b; }
}

/* Limpieza global de impresión: ocultar buscadores y filtros en todos los módulos. */
@media print {
    .ui-table-filters,
    .ui-table-filter-grid,
    .ui-filter,
    .ui-filters,
    .filters,
    .filter-card,
    .filter-bar,
    .filter-row,
    .search-bar,
    .search-box,
    .search-wrap,
    .ui-search-icon-wrap,
    .actividades-filtros,
    .configuracion-filtros,
    .iglesias-filter-grid,
    .iglesias-filter-actions,
    [class*="-filters"],
    [class*="-filter-grid"],
    [class*="-filter-actions"],
    [class*="filtros"],
    [class*="buscador"],
    [class*="buscar"] {
        display:none !important;
    }

    input[type="search"],
    .ui-search,
    [class*="js-"][class*="filter"],
    [class*="js-"][class*="search"],
    [class*="js-"][class*="buscar"] {
        display:none !important;
    }

    .ui-field:has(input[type="search"]),
    .ui-field:has(.ui-search),
    .ui-field:has([class*="js-"][class*="filter"]),
    .ui-field:has([class*="js-"][class*="search"]),
    label:has(input[type="search"]),
    label:has(.ui-search),
    form:has(.ui-table-filters),
    form:has(input[type="search"]),
    div:has(> input[type="search"].ui-search),
    div:has(> label > input[type="search"].ui-search) {
        display:none !important;
    }

    /* Si por alguna razón queda visible algún selector impreso, se muestra limpio y compacto. */
    select,
    .ui-select,
    .selectlist,
    .select-list,
    .custom-select,
    .choices,
    .choices__inner,
    .ts-wrapper,
    .ts-control,
    .select2,
    .select2-container,
    .ss-main {
        border:0 !important;
        outline:0 !important;
        box-shadow:none !important;
        background:transparent !important;
        padding:0 2px !important;
        min-height:0 !important;
        height:auto !important;
        line-height:1.15 !important;
        color:#101827 !important;
    }
}

/* Ajustes de impresión: módulo Aniversarios y Direcciones */
@media print {
    /* Aniversarios: cumpleaños y aniversarios en dos bloques en la misma fila */
    .aniversarios-week-grid,
    .js-aniversarios-week-grid {
        display:grid !important;
        grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
        gap:5mm !important;
        align-items:start !important;
        width:100% !important;
        max-width:none !important;
        margin:0 !important;
        padding:0 !important;
        overflow:visible !important;
        page-break-inside:auto !important;
        break-inside:auto !important;
    }

    .aniversarios-week-grid > *,
    .js-aniversarios-week-grid > *,
    .aniversarios-list-card {
        display:block !important;
        width:auto !important;
        max-width:none !important;
        min-width:0 !important;
        margin:0 !important;
        padding:4mm !important;
        border:1px solid #cbd5e1 !important;
        border-radius:0 !important;
        background:#fff !important;
        color:#101827 !important;
        page-break-inside:avoid !important;
        break-inside:avoid !important;
        overflow:visible !important;
    }

    .aniversarios-event-card,
    .aniversario-event-card {
        display:block !important;
        width:100% !important;
        margin:0 0 3mm 0 !important;
        padding:3mm !important;
        border:1px solid #cbd5e1 !important;
        border-radius:0 !important;
        background:#fff !important;
        color:#101827 !important;
        page-break-inside:avoid !important;
        break-inside:avoid !important;
    }

    .aniversarios-panel .ui-module-head,
    .aniversarios-calendar-card .ui-module-head {
        display:block !important;
    }

    .aniversarios-actions,
    .aniversarios-week-nav,
    .aniversarios-month-nav,
    .js-aniversarios-week-nav,
    .js-aniversarios-month-nav,
    .aniversarios-search-results,
    .js-aniversarios-results {
        display:none !important;
    }

    /* Direcciones: quitar botones selectores de grupo y mapa en impresión */
    .direcciones-group-buttons,
    .js-direcciones-grupos,
    .ui-color-buttons.direcciones-group-buttons,
    .direcciones-map-card,
    .direcciones-mapa,
    #direccionesMapa,
    #direccionesMapaModalInner {
        display:none !important;
    }
}

/* FIX FINAL HEADS DE SECCIÓN EN IMPRESIÓN
   Censo, Hogares, Direcciones y Aniversarios usan buscadores como hijos directos
   del .ui-module-head. Algunas reglas globales con :has() ocultaban el head completo.
   Este bloque restaura el head y oculta únicamente controles internos. */
@media print {
    .censo-module .ui-table-card > .ui-module-head,
    .hogares-module .ui-table-card > .ui-module-head,
    .direcciones-module .ui-table-card > .ui-module-head,
    .aniversarios-module .ui-table-card > .ui-module-head,
    .censo-module .ui-module-head,
    .hogares-module .ui-module-head,
    .direcciones-module .ui-module-head,
    .aniversarios-module .ui-module-head {
        display:block !important;
        visibility:visible !important;
        width:100% !important;
        max-width:none !important;
        min-height:0 !important;
        height:auto !important;
        overflow:visible !important;
        margin:0 0 4mm 0 !important;
        padding:0 0 2.5mm 0 !important;
        border-bottom:1px solid #b8c2d0 !important;
        background:#fff !important;
        color:#101827 !important;
        box-shadow:none !important;
    }

    .censo-module .ui-module-head > div:has(.ui-kicker),
    .censo-module .ui-module-head > div:has(.ui-module-title),
    .censo-module .ui-module-head > div:has(.ui-module-subtitle),
    .hogares-module .ui-module-head > div:has(.ui-kicker),
    .hogares-module .ui-module-head > div:has(.ui-module-title),
    .hogares-module .ui-module-head > div:has(.ui-module-subtitle),
    .direcciones-module .ui-module-head > div:has(.ui-kicker),
    .direcciones-module .ui-module-head > div:has(.ui-module-title),
    .direcciones-module .ui-module-head > div:has(.ui-module-subtitle),
    .aniversarios-module .ui-module-head > div:has(.ui-kicker),
    .aniversarios-module .ui-module-head > div:has(.ui-module-title),
    .aniversarios-module .ui-module-head > div:has(.ui-module-subtitle) {
        display:block !important;
        visibility:visible !important;
        width:100% !important;
        max-width:none !important;
        height:auto !important;
        overflow:visible !important;
        margin:0 !important;
        padding:0 !important;
        background:transparent !important;
        color:#101827 !important;
    }

    .censo-module .ui-module-head .ui-kicker,
    .censo-module .ui-module-head .ui-module-title,
    .censo-module .ui-module-head .ui-module-subtitle,
    .hogares-module .ui-module-head .ui-kicker,
    .hogares-module .ui-module-head .ui-module-title,
    .hogares-module .ui-module-head .ui-module-subtitle,
    .direcciones-module .ui-module-head .ui-kicker,
    .direcciones-module .ui-module-head .ui-module-title,
    .direcciones-module .ui-module-head .ui-module-subtitle,
    .aniversarios-module .ui-module-head .ui-kicker,
    .aniversarios-module .ui-module-head .ui-module-title,
    .aniversarios-module .ui-module-head .ui-module-subtitle {
        display:block !important;
        visibility:visible !important;
        height:auto !important;
        overflow:visible !important;
        background:transparent !important;
    }

    .censo-module .ui-module-head .ui-kicker,
    .hogares-module .ui-module-head .ui-kicker,
    .direcciones-module .ui-module-head .ui-kicker,
    .aniversarios-module .ui-module-head .ui-kicker {
        margin:0 0 1mm 0 !important;
        color:#27364a !important;
        font-size:8pt !important;
        font-weight:900 !important;
        letter-spacing:.08em !important;
        text-transform:uppercase !important;
        line-height:1.15 !important;
    }

    .censo-module .ui-module-head .ui-module-title,
    .hogares-module .ui-module-head .ui-module-title,
    .direcciones-module .ui-module-head .ui-module-title,
    .aniversarios-module .ui-module-head .ui-module-title {
        margin:0 0 1mm 0 !important;
        color:#101827 !important;
        font-size:16pt !important;
        font-weight:900 !important;
        line-height:1.15 !important;
    }

    .censo-module .ui-module-head .ui-module-subtitle,
    .hogares-module .ui-module-head .ui-module-subtitle,
    .direcciones-module .ui-module-head .ui-module-subtitle,
    .aniversarios-module .ui-module-head .ui-module-subtitle {
        margin:0 !important;
        color:#27364a !important;
        font-size:9pt !important;
        line-height:1.25 !important;
    }

    /* Ocultar controles dentro del head, sin ocultar el contenedor ni el texto. */
    .censo-module .ui-module-head > input,
    .censo-module .ui-module-head > label,
    .censo-module .ui-module-head > form,
    .censo-module .ui-module-head > button,
    .censo-module .ui-module-head > .btn,
    .censo-module .ui-module-head > .ui-module-actions,
    .censo-module .ui-module-head > .ui-actions,
    .censo-module .ui-module-head > .ui-view-switch,
    .censo-module .ui-module-head > .ui-color-buttons,
    .censo-module .ui-module-head > .ui-table-filters,
    .hogares-module .ui-module-head > input,
    .hogares-module .ui-module-head > label,
    .hogares-module .ui-module-head > form,
    .hogares-module .ui-module-head > button,
    .hogares-module .ui-module-head > .btn,
    .hogares-module .ui-module-head > .ui-module-actions,
    .hogares-module .ui-module-head > .ui-actions,
    .hogares-module .ui-module-head > .ui-view-switch,
    .hogares-module .ui-module-head > .ui-color-buttons,
    .hogares-module .ui-module-head > .ui-table-filters,
    .direcciones-module .ui-module-head > input,
    .direcciones-module .ui-module-head > label,
    .direcciones-module .ui-module-head > form,
    .direcciones-module .ui-module-head > button,
    .direcciones-module .ui-module-head > .btn,
    .direcciones-module .ui-module-head > .ui-module-actions,
    .direcciones-module .ui-module-head > .ui-actions,
    .direcciones-module .ui-module-head > .ui-view-switch,
    .direcciones-module .ui-module-head > .ui-color-buttons,
    .direcciones-module .ui-module-head > .ui-table-filters,
    .aniversarios-module .ui-module-head > input,
    .aniversarios-module .ui-module-head > label,
    .aniversarios-module .ui-module-head > form,
    .aniversarios-module .ui-module-head > button,
    .aniversarios-module .ui-module-head > .btn,
    .aniversarios-module .ui-module-head > .ui-module-actions,
    .aniversarios-module .ui-module-head > .ui-actions,
    .aniversarios-module .ui-module-head > .ui-view-switch,
    .aniversarios-module .ui-module-head > .ui-color-buttons,
    .aniversarios-module .ui-module-head > .ui-table-filters {
        display:none !important;
        visibility:hidden !important;
        height:0 !important;
        width:0 !important;
        min-height:0 !important;
        margin:0 !important;
        padding:0 !important;
        border:0 !important;
        overflow:hidden !important;
    }
}

/* Ajuste impresión Finanzas y navegación mensual global. */
@media print {
    /* Finanzas: omitir la sección de navegación superior del módulo. */
    .finanzas-module section.ui-table-card[aria-label="Navegación de finanzas"],
    section.ui-table-card[aria-label="Navegación de finanzas"] {
        display:none !important;
    }

    /* En ninguna impresión se debe incluir el navegador de meses. */
    .ui-month-nav,
    .ui-mini-calendar-nav,
    .app-calendar-nav,
    .programas-month-nav,
    .actividades-month-nav,
    .rolcultos-month-nav,
    .aniversarios-month-nav,
    .bosquejos-month-nav,
    .js-aniversarios-month-nav,
    .ui-calendar-toolbar[aria-label="Navegador de mes"],
    .ui-calendar-toolbar[class*="month-nav"],
    .ui-module-actions[class*="month-nav"],
    [aria-label="Navegador de mes"],
    [aria-label="Navegación de mes"],
    [class*="month-nav"],
    [class*="mes-nav"] {
        display:none !important;
    }

    /* Movimientos de finanzas: conservar color del concepto. */
    .finanzas-table .finanzas-concept-badge,
    .finanzas-report-div-table .finanzas-concept-badge {
        display:inline-flex !important;
        align-items:center !important;
        gap:1.2mm !important;
        min-height:5.5mm !important;
        padding:1mm 2.2mm !important;
        border-radius:999px !important;
        font-size:7.6pt !important;
        font-weight:900 !important;
        line-height:1.12 !important;
        white-space:normal !important;
        border:1px solid #8e9bae !important;
        box-shadow:none !important;
        -webkit-print-color-adjust:exact !important;
        print-color-adjust:exact !important;
    }

    .finanzas-table .finanzas-row-entrada .finanzas-concept-badge,
    .finanzas-table .finanzas-concept-diezmo,
    .finanzas-table .finanzas-concept-ofrenda,
    .finanzas-table .finanzas-concept-venta,
    .finanzas-table .finanzas-concept-entrada,
    .finanzas-report-div-table .finanzas-row-entrada .finanzas-concept-badge,
    .finanzas-report-div-table .finanzas-concept-diezmo,
    .finanzas-report-div-table .finanzas-concept-ofrenda,
    .finanzas-report-div-table .finanzas-concept-venta,
    .finanzas-report-div-table .finanzas-concept-entrada {
        color:#0b7a47 !important;
        background:#eafaf2 !important;
        border-color:#79d2a6 !important;
    }

    .finanzas-table .finanzas-row-salida .finanzas-concept-badge,
    .finanzas-table .finanzas-concept-gasto,
    .finanzas-table .finanzas-concept-ayuda,
    .finanzas-table .finanzas-concept-mantenimiento,
    .finanzas-table .finanzas-concept-nomina,
    .finanzas-table .finanzas-concept-ministerios,
    .finanzas-table .finanzas-concept-otros,
    .finanzas-report-div-table .finanzas-row-salida .finanzas-concept-badge,
    .finanzas-report-div-table .finanzas-concept-gasto,
    .finanzas-report-div-table .finanzas-concept-ayuda,
    .finanzas-report-div-table .finanzas-concept-mantenimiento,
    .finanzas-report-div-table .finanzas-concept-nomina,
    .finanzas-report-div-table .finanzas-concept-ministerios,
    .finanzas-report-div-table .finanzas-concept-otros {
        color:#a85d00 !important;
        background:#fff5e6 !important;
        border-color:#f2bd72 !important;
    }

    .finanzas-table .finanzas-direction-icon,
    .finanzas-report-div-table .finanzas-direction-icon {
        display:inline !important;
        color:inherit !important;
        background:transparent !important;
    }
}

/* Ajuste impresión: calendarios pequeños estilo Asistencia también para Programas. */
@media print {
    .ui-mini-calendar-layout,
    .programas-body-grid,
    .asistencia-body-grid {
        display:grid !important;
        grid-template-columns:58mm minmax(0, 1fr) !important;
        gap:6mm !important;
        align-items:start !important;
        width:100% !important;
        max-width:none !important;
        margin:0 !important;
        padding:0 !important;
        overflow:visible !important;
    }

    .ui-mini-calendar-col,
    .programas-calendar-col,
    .asistencia-calendar-col {
        display:block !important;
        width:58mm !important;
        max-width:58mm !important;
        min-width:58mm !important;
        margin:0 !important;
        padding:0 !important;
        overflow:visible !important;
    }

    .ui-mini-calendar-card,
    .ui-mini-calendar-frame,
    .programas-calendar-frame {
        display:block !important;
        width:100% !important;
        max-width:100% !important;
        margin:0 !important;
        padding:3mm !important;
        border:1px solid #d7e1ee !important;
        border-radius:4mm !important;
        background:#ffffff !important;
        color:#101827 !important;
        overflow:visible !important;
        box-shadow:none !important;
        -webkit-print-color-adjust:exact !important;
        print-color-adjust:exact !important;
    }

    .ui-mini-calendar,
    .ui-mini-calendar-shell,
    .programas-month-shell,
    .asistencia-month-shell,
    .bosquejos-month-shell {
        display:block !important;
        width:100% !important;
        max-width:100% !important;
        margin:0 !important;
        padding:0 !important;
        border:0 !important;
        background:transparent !important;
        color:#101827 !important;
        overflow:visible !important;
    }

    .ui-mini-calendar-month,
    .programas-month,
    .programas-month-single,
    .asistencia-month,
    .bosquejos-month {
        display:block !important;
        width:100% !important;
        margin:0 !important;
        padding:0 !important;
        border:0 !important;
        background:transparent !important;
        overflow:visible !important;
    }

    .ui-mini-calendar-weekdays,
    .programas-weekdays {
        display:grid !important;
        grid-template-columns:repeat(7, minmax(0, 1fr)) !important;
        gap:1.2mm !important;
        width:100% !important;
        margin:0 0 1.5mm 0 !important;
        padding:0 !important;
        border:0 !important;
        background:transparent !important;
    }

    .ui-mini-calendar-weekdays span,
    .programas-weekdays span {
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;
        min-height:4.5mm !important;
        padding:0 !important;
        border:0 !important;
        background:transparent !important;
        color:#27364a !important;
        font-size:6.6pt !important;
        font-weight:900 !important;
        line-height:1 !important;
        text-align:center !important;
        text-transform:uppercase !important;
    }

    .ui-mini-calendar-days,
    .programas-days {
        display:grid !important;
        grid-template-columns:repeat(7, minmax(0, 1fr)) !important;
        gap:1.2mm !important;
        width:100% !important;
        margin:0 !important;
        padding:0 !important;
        border:0 !important;
        background:transparent !important;
        overflow:visible !important;
    }

    .ui-mini-calendar-day,
    .programas-day,
    button.ui-mini-calendar-day,
    button.programas-day {
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;
        width:100% !important;
        min-width:0 !important;
        min-height:7mm !important;
        height:7mm !important;
        margin:0 !important;
        padding:0 !important;
        border:1px solid #e5eaf2 !important;
        border-radius:2mm !important;
        background:#ffffff !important;
        color:#101827 !important;
        font-size:8.5pt !important;
        font-weight:800 !important;
        line-height:1 !important;
        text-align:center !important;
        white-space:nowrap !important;
        overflow:hidden !important;
        box-shadow:none !important;
        page-break-inside:avoid !important;
        break-inside:avoid !important;
        -webkit-print-color-adjust:exact !important;
        print-color-adjust:exact !important;
    }

    .ui-mini-calendar-day.is-empty,
    .programas-day.is-empty {
        visibility:hidden !important;
        border-color:transparent !important;
        background:transparent !important;
    }

    .ui-mini-calendar-day.has-cultos,
    .ui-mini-calendar-day.has-reuniones,
    .programas-day.has-cultos,
    .programas-day.has-reuniones {
        border-color:#7ec3f5 !important;
        background:#ffffff !important;
        color:#101827 !important;
    }

    .ui-mini-calendar-day.is-past-culto,
    .ui-mini-calendar-day.is-past-reunion,
    .programas-day.is-past-culto,
    .programas-day.is-past-reunion {
        border-color:#edf1f6 !important;
        background:#ffffff !important;
        color:#7f8ea3 !important;
    }

    .ui-mini-calendar-day.is-active,
    .ui-mini-calendar-day.is-selected,
    .programas-day.is-active,
    .programas-day.is-selected {
        border-color:#38aef0 !important;
        background:#f0f9ff !important;
        color:#101827 !important;
        outline:0 !important;
    }

    .ui-mini-calendar-day small,
    .programas-day small {
        display:none !important;
    }

    .ui-mini-calendar-main,
    .ui-mini-calendar-workspace,
    .programas-workspace,
    .asistencia-workspace {
        display:block !important;
        width:auto !important;
        max-width:none !important;
        min-width:0 !important;
        margin:0 !important;
        padding:0 !important;
        background:#fff !important;
        color:#101827 !important;
        overflow:visible !important;
    }
}

/* Calendarios grandes: impresión en una sola hoja, 7 columnas */
@media print {
    .actividades-calendar-grid,
    .rolcultos-calendar-grid,
    .programas-calendar-grid,
    .calendar-grid,
    .ui-calendar {
        display:grid !important;
        grid-template-columns:repeat(7, 1fr) !important;
        gap:1.5mm !important;
        width:100% !important;
        max-width:100% !important;
        page-break-inside:avoid !important;
        break-inside:avoid !important;
    }

    .calendar-day,
    .ui-day,
    .actividades-day,
    .rolcultos-calendar-day,
    .programas-calendar-day {
        min-height:24mm !important;
        height:24mm !important;
        padding:2mm !important;
        border:1px solid #cbd5e1 !important;
        border-radius:2mm !important;
        background:#fff !important;
        overflow:hidden !important;
        page-break-inside:avoid !important;
        break-inside:avoid !important;
    }

    .ui-calendar-weekdays,
    .calendar-weekdays,
    .actividades-calendar-weekdays,
    .rolcultos-calendar-weekdays,
    .programas-calendar-weekdays {
        display:grid !important;
        grid-template-columns:repeat(7, 1fr) !important;
        gap:1.5mm !important;
        margin-bottom:1.5mm !important;
    }

    .ui-calendar-weekday,
    .calendar-weekday {
        padding:1.5mm !important;
        border:1px solid #cbd5e1 !important;
        border-radius:2mm !important;
        background:#f8fafc !important;
        font-size:7pt !important;
        text-align:center !important;
    }

    .calendar-task,
    .ui-event,
    .rolcultos-calendar-event,
    .actividades-calendar-event,
    .programas-calendar-event {
        padding:1.2mm !important;
        margin-top:1mm !important;
        font-size:6.5pt !important;
        line-height:1.15 !important;
        border-radius:1.5mm !important;
        overflow:hidden !important;
    }

    .ui-day-number,
    .calendar-day-number {
        font-size:8pt !important;
        font-weight:900 !important;
    }
}



/* FIX impresión: calendarios grandes en 7 columnas y en una hoja */
@media print {
    .actividades-calendar-weekdays.ui-calendar-weekdays,
    .aniversarios-calendar-weekdays.ui-calendar-weekdays,
    .rolcultos-calendar-weekdays.ui-calendar-weekdays,
    .ui-calendar-weekdays.actividades-calendar-weekdays,
    .ui-calendar-weekdays.aniversarios-calendar-weekdays,
    .ui-calendar-weekdays.rolcultos-calendar-weekdays,
    .ui-calendar-weekdays.is-saturday-wide,
    .ui-calendar-weekdays.is-heavy-saturday,
    .ui-calendar-weekdays.is-heavy-sunday {
        display:grid !important;
        grid-template-columns:repeat(7, minmax(0, 1fr)) !important;
        gap:1mm !important;
        width:100% !important;
        max-width:100% !important;
        margin:0 0 1mm 0 !important;
        padding:0 !important;
        border:0 !important;
        background:transparent !important;
        overflow:visible !important;
    }

    .actividades-calendar-grid.ui-calendar,
    .aniversarios-calendar-grid.ui-calendar,
    .rolcultos-calendar-grid.ui-calendar,
    .actividades-panel[data-panel="calendario"] .actividades-calendar-grid.ui-calendar,
    .rolcultos-panel[data-panel="calendario"] .rolcultos-calendar-grid.ui-calendar,
    .aniversarios-calendar-card .aniversarios-calendar-grid.ui-calendar,
    .calendar-grid.ui-calendar,
    .ui-calendar.is-saturday-wide,
    .ui-calendar.is-heavy-saturday,
    .ui-calendar.is-heavy-sunday {
        display:grid !important;
        grid-template-columns:repeat(7, minmax(0, 1fr)) !important;
        gap:1mm !important;
        width:100% !important;
        max-width:100% !important;
        margin:0 !important;
        padding:0 !important;
        border:0 !important;
        background:transparent !important;
        overflow:visible !important;
        page-break-inside:avoid !important;
        break-inside:avoid !important;
    }

    .ui-calendar-weekday,
    .actividades-calendar-weekdays .ui-calendar-weekday,
    .aniversarios-calendar-weekdays .ui-calendar-weekday,
    .rolcultos-calendar-weekdays .ui-calendar-weekday {
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;
        min-height:6mm !important;
        padding:1mm !important;
        border:1px solid #cbd5e1 !important;
        border-radius:2mm !important;
        background:#f8fafc !important;
        color:#27364a !important;
        font-size:6.2pt !important;
        font-weight:900 !important;
        line-height:1 !important;
        letter-spacing:.06em !important;
        text-transform:uppercase !important;
        text-align:center !important;
        overflow:hidden !important;
    }

    .calendar-day.ui-day,
    .actividades-day.ui-day,
    .aniversario-calendar-day.ui-day,
    .rolcultos-calendar-day.ui-day,
    button.calendar-day.ui-day,
    article.rolcultos-calendar-day.ui-day,
    article.aniversario-calendar-day.ui-day {
        display:block !important;
        width:auto !important;
        min-width:0 !important;
        max-width:none !important;
        min-height:18mm !important;
        height:18mm !important;
        max-height:18mm !important;
        margin:0 !important;
        padding:1.2mm !important;
        border:1px solid #cbd5e1 !important;
        border-radius:2mm !important;
        background:#fff !important;
        color:#101827 !important;
        text-align:left !important;
        overflow:hidden !important;
        page-break-inside:avoid !important;
        break-inside:avoid !important;
    }

    .ui-day-head,
    .actividades-day .ui-day-head,
    .aniversario-day-head,
    .rolcultos-day-head {
        display:flex !important;
        justify-content:space-between !important;
        align-items:flex-start !important;
        gap:1mm !important;
        margin:0 0 .8mm 0 !important;
        padding:0 !important;
        line-height:1 !important;
    }

    .ui-day-number {
        font-size:7.2pt !important;
        line-height:1 !important;
        font-weight:900 !important;
        color:#101827 !important;
    }

    .ui-day-name,
    .calendar-dow {
        font-size:5.4pt !important;
        line-height:1 !important;
        font-weight:900 !important;
        color:#64748b !important;
        letter-spacing:.06em !important;
        text-transform:uppercase !important;
    }

    .calendar-day-tasks,
    .ui-day-events,
    .aniversario-calendar-events,
    .rolcultos-calendar-events,
    .actividades-calendar-grid.is-saturday-wide .actividades-day:nth-child(7n) .ui-day-events,
    .rolcultos-calendar-day.is-saturday .rolcultos-calendar-events {
        display:block !important;
        grid-template-columns:none !important;
        width:100% !important;
        max-width:100% !important;
        margin:0 !important;
        padding:0 !important;
        overflow:hidden !important;
    }

    .calendar-task.ui-event,
    .calendar-task,
    .aniversario-calendar-event,
    .rolcultos-calendar-event,
    button.rolcultos-calendar-event {
        display:block !important;
        width:100% !important;
        max-width:100% !important;
        min-height:0 !important;
        margin:0 0 .7mm 0 !important;
        padding:.8mm 1mm !important;
        border:1px solid #d7dee8 !important;
        border-radius:1.5mm !important;
        background:#f8fafc !important;
        color:#101827 !important;
        font-size:5.8pt !important;
        line-height:1.08 !important;
        text-align:left !important;
        white-space:normal !important;
        overflow:hidden !important;
        text-overflow:clip !important;
        box-shadow:none !important;
    }

    .calendar-task b,
    .ui-event b,
    .rolcultos-calendar-main,
    .rolcultos-calendar-meta,
    .actividad-time,
    .actividad-owner {
        display:block !important;
        font-size:5.8pt !important;
        line-height:1.08 !important;
        color:#101827 !important;
        white-space:normal !important;
        overflow:hidden !important;
        text-overflow:clip !important;
    }

    .calendar-task small,
    .ui-event small,
    .rolcultos-calendar-meta {
        display:block !important;
        margin-top:.5mm !important;
        font-size:5.3pt !important;
        line-height:1.05 !important;
        color:#536175 !important;
    }

    .actividades-panel[data-panel="calendario"],
    .rolcultos-panel[data-panel="calendario"],
    .aniversarios-calendar-card,
    .aniversarios-calendar-card .ui-card-body,
    .aniversarios-calendar-card .ui-module-body {
        page-break-inside:avoid !important;
        break-inside:avoid !important;
        overflow:visible !important;
    }
}

/* FIX FINAL: calendarios grandes limpios en 7 columnas para impresión.
   Aplica a Actividades, Rol de cultos y Aniversarios.
   Conserva la cabecera de días y elimina la repetición DOM/LUN/MAR dentro de cada cuadro. */
@media print {
    body.module-actividades .ui-calendar-weekdays,
    body.module-actividades .actividades-calendar-weekdays,
    body.module-aniversarios .ui-calendar-weekdays,
    body.module-aniversarios .aniversarios-calendar-weekdays,
    body.module-rolcultos .ui-calendar-weekdays,
    body.module-rolcultos .rolcultos-calendar-weekdays,
    .actividades-panel[data-panel="calendario"] .ui-calendar-weekdays,
    .aniversarios-calendar-card .ui-calendar-weekdays,
    .rolcultos-panel[data-panel="calendario"] .ui-calendar-weekdays {
        display:grid !important;
        grid-template-columns:repeat(7, minmax(0, 1fr)) !important;
        gap:1.2mm !important;
        width:100% !important;
        margin:0 0 1.2mm 0 !important;
        padding:0 !important;
        border:0 !important;
        background:transparent !important;
        overflow:visible !important;
    }

    body.module-actividades .ui-calendar-weekday,
    body.module-aniversarios .ui-calendar-weekday,
    body.module-rolcultos .ui-calendar-weekday,
    .actividades-panel[data-panel="calendario"] .ui-calendar-weekday,
    .aniversarios-calendar-card .ui-calendar-weekday,
    .rolcultos-panel[data-panel="calendario"] .ui-calendar-weekday {
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;
        min-height:6mm !important;
        padding:1mm 1.5mm !important;
        border:1px solid #cbd5e1 !important;
        border-radius:2mm !important;
        background:#ffffff !important;
        color:#475569 !important;
        font-size:7pt !important;
        font-weight:900 !important;
        line-height:1 !important;
        letter-spacing:.12em !important;
        text-transform:uppercase !important;
        text-align:center !important;
        overflow:hidden !important;
    }

    body.module-actividades .ui-calendar,
    body.module-actividades .actividades-calendar-grid,
    body.module-aniversarios .ui-calendar,
    body.module-aniversarios .aniversarios-calendar-grid,
    body.module-rolcultos .ui-calendar,
    body.module-rolcultos .rolcultos-calendar-grid,
    .actividades-panel[data-panel="calendario"] .ui-calendar,
    .actividades-panel[data-panel="calendario"] .actividades-calendar-grid,
    .aniversarios-calendar-card .ui-calendar,
    .aniversarios-calendar-card .aniversarios-calendar-grid,
    .rolcultos-panel[data-panel="calendario"] .ui-calendar,
    .rolcultos-panel[data-panel="calendario"] .rolcultos-calendar-grid {
        display:grid !important;
        grid-template-columns:repeat(7, minmax(0, 1fr)) !important;
        gap:1.2mm !important;
        width:100% !important;
        max-width:100% !important;
        margin:0 !important;
        padding:0 !important;
        border:0 !important;
        background:transparent !important;
        overflow:visible !important;
        page-break-inside:avoid !important;
        break-inside:avoid !important;
    }

    body.module-actividades .calendar-day,
    body.module-actividades .ui-day,
    body.module-actividades .actividades-day,
    body.module-aniversarios .calendar-day,
    body.module-aniversarios .ui-day,
    body.module-aniversarios .aniversario-calendar-day,
    body.module-rolcultos .calendar-day,
    body.module-rolcultos .ui-day,
    body.module-rolcultos .rolcultos-calendar-day,
    .actividades-panel[data-panel="calendario"] .calendar-day,
    .actividades-panel[data-panel="calendario"] .ui-day,
    .actividades-panel[data-panel="calendario"] .actividades-day,
    .aniversarios-calendar-card .calendar-day,
    .aniversarios-calendar-card .ui-day,
    .aniversarios-calendar-card .aniversario-calendar-day,
    .rolcultos-panel[data-panel="calendario"] .calendar-day,
    .rolcultos-panel[data-panel="calendario"] .ui-day,
    .rolcultos-panel[data-panel="calendario"] .rolcultos-calendar-day {
        display:block !important;
        width:auto !important;
        min-width:0 !important;
        max-width:none !important;
        min-height:22mm !important;
        height:22mm !important;
        max-height:22mm !important;
        margin:0 !important;
        padding:1.6mm !important;
        border:1px solid #cbd5e1 !important;
        border-radius:2mm !important;
        background:#fff !important;
        color:#101827 !important;
        text-align:left !important;
        overflow:hidden !important;
        page-break-inside:avoid !important;
        break-inside:avoid !important;
    }

    body.module-actividades .ui-day-head,
    body.module-aniversarios .ui-day-head,
    body.module-aniversarios .aniversario-day-head,
    body.module-rolcultos .ui-day-head,
    body.module-rolcultos .rolcultos-day-head,
    .actividades-panel[data-panel="calendario"] .ui-day-head,
    .aniversarios-calendar-card .ui-day-head,
    .aniversarios-calendar-card .aniversario-day-head,
    .rolcultos-panel[data-panel="calendario"] .ui-day-head,
    .rolcultos-panel[data-panel="calendario"] .rolcultos-day-head {
        display:flex !important;
        justify-content:flex-start !important;
        align-items:flex-start !important;
        gap:0 !important;
        margin:0 0 1mm 0 !important;
        padding:0 !important;
        line-height:1 !important;
    }

    body.module-actividades .ui-day-head .ui-day-name,
    body.module-actividades .ui-day-head .calendar-dow,
    body.module-aniversarios .ui-day-head .ui-day-name,
    body.module-aniversarios .ui-day-head .calendar-dow,
    body.module-aniversarios .aniversario-day-head .ui-day-name,
    body.module-aniversarios .aniversario-day-head .calendar-dow,
    body.module-rolcultos .ui-day-head .ui-day-name,
    body.module-rolcultos .ui-day-head .calendar-dow,
    body.module-rolcultos .rolcultos-day-head .ui-day-name,
    body.module-rolcultos .rolcultos-day-head .calendar-dow,
    .actividades-panel[data-panel="calendario"] .ui-day-head .ui-day-name,
    .actividades-panel[data-panel="calendario"] .ui-day-head .calendar-dow,
    .aniversarios-calendar-card .ui-day-head .ui-day-name,
    .aniversarios-calendar-card .ui-day-head .calendar-dow,
    .rolcultos-panel[data-panel="calendario"] .ui-day-head .ui-day-name,
    .rolcultos-panel[data-panel="calendario"] .ui-day-head .calendar-dow {
        display:none !important;
    }

    body.module-actividades .ui-day-number,
    body.module-aniversarios .ui-day-number,
    body.module-rolcultos .ui-day-number,
    .actividades-panel[data-panel="calendario"] .ui-day-number,
    .aniversarios-calendar-card .ui-day-number,
    .rolcultos-panel[data-panel="calendario"] .ui-day-number {
        display:block !important;
        color:#101827 !important;
        font-size:8.5pt !important;
        line-height:1 !important;
        font-weight:900 !important;
    }

    body.module-actividades .ui-day-events,
    body.module-actividades .calendar-day-tasks,
    body.module-aniversarios .ui-day-events,
    body.module-aniversarios .aniversario-calendar-events,
    body.module-rolcultos .ui-day-events,
    body.module-rolcultos .rolcultos-calendar-events,
    .actividades-panel[data-panel="calendario"] .ui-day-events,
    .actividades-panel[data-panel="calendario"] .calendar-day-tasks,
    .aniversarios-calendar-card .ui-day-events,
    .aniversarios-calendar-card .aniversario-calendar-events,
    .rolcultos-panel[data-panel="calendario"] .ui-day-events,
    .rolcultos-panel[data-panel="calendario"] .rolcultos-calendar-events {
        display:block !important;
        width:100% !important;
        max-width:100% !important;
        margin:0 !important;
        padding:0 !important;
        overflow:hidden !important;
    }

    body.module-actividades .calendar-task,
    body.module-actividades .ui-event,
    body.module-aniversarios .calendar-task,
    body.module-aniversarios .ui-event,
    body.module-aniversarios .aniversario-calendar-event,
    body.module-rolcultos .calendar-task,
    body.module-rolcultos .ui-event,
    body.module-rolcultos .rolcultos-calendar-event,
    .actividades-panel[data-panel="calendario"] .calendar-task,
    .actividades-panel[data-panel="calendario"] .ui-event,
    .aniversarios-calendar-card .calendar-task,
    .aniversarios-calendar-card .ui-event,
    .aniversarios-calendar-card .aniversario-calendar-event,
    .rolcultos-panel[data-panel="calendario"] .calendar-task,
    .rolcultos-panel[data-panel="calendario"] .ui-event,
    .rolcultos-panel[data-panel="calendario"] .rolcultos-calendar-event {
        display:block !important;
        width:100% !important;
        max-width:100% !important;
        min-height:0 !important;
        margin:0 0 .9mm 0 !important;
        padding:1mm 1.2mm !important;
        border:1px solid #d7dee8 !important;
        border-radius:1.7mm !important;
        background:#f8fafc !important;
        color:#101827 !important;
        font-size:6.2pt !important;
        line-height:1.12 !important;
        text-align:left !important;
        white-space:normal !important;
        overflow:hidden !important;
        text-overflow:clip !important;
        box-shadow:none !important;
        -webkit-print-color-adjust:exact !important;
        print-color-adjust:exact !important;
    }

    body.module-actividades .calendar-task b,
    body.module-actividades .ui-event b,
    body.module-aniversarios .calendar-task b,
    body.module-aniversarios .ui-event b,
    body.module-rolcultos .calendar-task b,
    body.module-rolcultos .ui-event b,
    body.module-rolcultos .rolcultos-calendar-main,
    body.module-rolcultos .rolcultos-calendar-meta,
    .actividades-panel[data-panel="calendario"] .calendar-task b,
    .actividades-panel[data-panel="calendario"] .ui-event b,
    .aniversarios-calendar-card .calendar-task b,
    .aniversarios-calendar-card .ui-event b,
    .rolcultos-panel[data-panel="calendario"] .rolcultos-calendar-main,
    .rolcultos-panel[data-panel="calendario"] .rolcultos-calendar-meta {
        display:block !important;
        color:#101827 !important;
        font-size:6.2pt !important;
        line-height:1.12 !important;
        white-space:normal !important;
        overflow:hidden !important;
        text-overflow:clip !important;
    }

    body.module-actividades .calendar-task small,
    body.module-actividades .ui-event small,
    body.module-aniversarios .calendar-task small,
    body.module-aniversarios .ui-event small,
    body.module-rolcultos .calendar-task small,
    body.module-rolcultos .ui-event small,
    .actividades-panel[data-panel="calendario"] .calendar-task small,
    .actividades-panel[data-panel="calendario"] .ui-event small,
    .aniversarios-calendar-card .calendar-task small,
    .aniversarios-calendar-card .ui-event small,
    .rolcultos-panel[data-panel="calendario"] .calendar-task small,
    .rolcultos-panel[data-panel="calendario"] .ui-event small {
        display:inline-block !important;
        margin-top:.7mm !important;
        padding:.4mm 1mm !important;
        border-radius:999px !important;
        background:rgba(15, 23, 42, .06) !important;
        color:#27364a !important;
        font-size:5.6pt !important;
        line-height:1 !important;
        font-weight:800 !important;
    }
}

/* FIX DEFINITIVO - Calendarios grandes en impresión.
   Actividades, Aniversarios y Rol de cultos:
   - 7 columnas reales
   - encabezado de días visible
   - sin DOM/LUN/MAR dentro de cada fecha
   - día siempre arriba a la izquierda
   - filas con altura uniforme según el día con más contenido
   - sin altura fija por celda
*/
@media print {
    body.module-actividades .actividades-calendar-weekdays.ui-calendar-weekdays,
    body.module-actividades .calendar-weekdays.ui-calendar-weekdays,
    body.module-aniversarios .aniversarios-calendar-weekdays.ui-calendar-weekdays,
    body.module-aniversarios .ui-calendar-weekdays.aniversarios-calendar-weekdays,
    body.module-rolcultos .rolcultos-calendar-weekdays.ui-calendar-weekdays,
    body.module-rolcultos .calendar-weekdays.ui-calendar-weekdays,
    .actividades-panel[data-panel="calendario"] .actividades-calendar-weekdays.ui-calendar-weekdays,
    .aniversarios-calendar-card .aniversarios-calendar-weekdays.ui-calendar-weekdays,
    .rolcultos-panel[data-panel="calendario"] .rolcultos-calendar-weekdays.ui-calendar-weekdays {
        display:grid !important;
        grid-template-columns:repeat(7, minmax(0, 1fr)) !important;
        gap:1mm !important;
        width:100% !important;
        max-width:100% !important;
        margin:0 0 1mm 0 !important;
        padding:0 !important;
        border:0 !important;
        background:transparent !important;
        overflow:visible !important;
    }

    body.module-actividades .ui-calendar-weekday,
    body.module-aniversarios .ui-calendar-weekday,
    body.module-rolcultos .ui-calendar-weekday,
    .actividades-panel[data-panel="calendario"] .ui-calendar-weekday,
    .aniversarios-calendar-card .ui-calendar-weekday,
    .rolcultos-panel[data-panel="calendario"] .ui-calendar-weekday {
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;
        height:auto !important;
        min-height:5mm !important;
        padding:.9mm 1mm !important;
        border:1px solid #cbd5e1 !important;
        border-radius:1.6mm !important;
        background:#fff !important;
        color:#475569 !important;
        font-size:6.2pt !important;
        font-weight:900 !important;
        line-height:1 !important;
        letter-spacing:.10em !important;
        text-transform:uppercase !important;
        text-align:center !important;
        box-sizing:border-box !important;
        overflow:hidden !important;
    }

    body.module-actividades .actividades-calendar-grid.ui-calendar,
    body.module-actividades .calendar-grid.ui-calendar,
    body.module-aniversarios .aniversarios-calendar-grid.ui-calendar,
    body.module-aniversarios .ui-calendar.aniversarios-calendar-grid,
    body.module-rolcultos .rolcultos-calendar-grid.ui-calendar,
    body.module-rolcultos .calendar-grid.ui-calendar,
    .actividades-panel[data-panel="calendario"] .actividades-calendar-grid.ui-calendar,
    .aniversarios-calendar-card .aniversarios-calendar-grid.ui-calendar,
    .rolcultos-panel[data-panel="calendario"] .rolcultos-calendar-grid.ui-calendar {
        display:grid !important;
        grid-template-columns:repeat(7, minmax(0, 1fr)) !important;
        grid-auto-rows:auto !important;
        align-items:stretch !important;
        gap:1mm !important;
        width:100% !important;
        max-width:100% !important;
        margin:0 !important;
        padding:0 !important;
        border:0 !important;
        background:transparent !important;
        overflow:visible !important;
        page-break-inside:avoid !important;
        break-inside:avoid !important;
    }

    body.module-actividades .actividades-calendar-grid.ui-calendar > .calendar-day.ui-day,
    body.module-actividades .actividades-calendar-grid.ui-calendar > .actividades-day.ui-day,
    body.module-aniversarios .aniversarios-calendar-grid.ui-calendar > .aniversario-calendar-day.ui-day,
    body.module-rolcultos .rolcultos-calendar-grid.ui-calendar > .rolcultos-calendar-day.ui-day,
    .actividades-panel[data-panel="calendario"] .actividades-calendar-grid.ui-calendar > .calendar-day.ui-day,
    .actividades-panel[data-panel="calendario"] .actividades-calendar-grid.ui-calendar > .actividades-day.ui-day,
    .aniversarios-calendar-card .aniversarios-calendar-grid.ui-calendar > .aniversario-calendar-day.ui-day,
    .rolcultos-panel[data-panel="calendario"] .rolcultos-calendar-grid.ui-calendar > .rolcultos-calendar-day.ui-day {
        display:flex !important;
        flex-direction:column !important;
        align-items:stretch !important;
        justify-content:flex-start !important;
        gap:0 !important;
        width:auto !important;
        min-width:0 !important;
        max-width:none !important;
        min-height:15mm !important;
        height:auto !important;
        max-height:none !important;
        margin:0 !important;
        padding:1.1mm !important;
        border:1px solid #cbd5e1 !important;
        border-radius:1.6mm !important;
        background:#fff !important;
        color:#101827 !important;
        text-align:left !important;
        box-sizing:border-box !important;
        overflow:visible !important;
        page-break-inside:avoid !important;
        break-inside:avoid !important;
    }

    body.module-actividades .actividades-calendar-grid.ui-calendar > .calendar-day.ui-day > .ui-day-head,
    body.module-actividades .actividades-calendar-grid.ui-calendar > .actividades-day.ui-day > .ui-day-head,
    body.module-aniversarios .aniversarios-calendar-grid.ui-calendar > .aniversario-calendar-day.ui-day > .ui-day-head,
    body.module-aniversarios .aniversarios-calendar-grid.ui-calendar > .aniversario-calendar-day.ui-day > .aniversario-day-head,
    body.module-rolcultos .rolcultos-calendar-grid.ui-calendar > .rolcultos-calendar-day.ui-day > .ui-day-head,
    body.module-rolcultos .rolcultos-calendar-grid.ui-calendar > .rolcultos-calendar-day.ui-day > .rolcultos-day-head,
    .actividades-panel[data-panel="calendario"] .actividades-calendar-grid.ui-calendar > .calendar-day.ui-day > .ui-day-head,
    .aniversarios-calendar-card .aniversarios-calendar-grid.ui-calendar > .aniversario-calendar-day.ui-day > .ui-day-head,
    .aniversarios-calendar-card .aniversarios-calendar-grid.ui-calendar > .aniversario-calendar-day.ui-day > .aniversario-day-head,
    .rolcultos-panel[data-panel="calendario"] .rolcultos-calendar-grid.ui-calendar > .rolcultos-calendar-day.ui-day > .ui-day-head,
    .rolcultos-panel[data-panel="calendario"] .rolcultos-calendar-grid.ui-calendar > .rolcultos-calendar-day.ui-day > .rolcultos-day-head {
        order:0 !important;
        display:block !important;
        position:static !important;
        float:none !important;
        width:100% !important;
        min-height:2.8mm !important;
        height:auto !important;
        margin:0 0 1mm 0 !important;
        padding:0 !important;
        color:#101827 !important;
        text-align:left !important;
        line-height:1 !important;
        opacity:1 !important;
        overflow:visible !important;
        box-sizing:border-box !important;
    }

    body.module-actividades .actividades-calendar-grid.ui-calendar .ui-day-number,
    body.module-aniversarios .aniversarios-calendar-grid.ui-calendar .ui-day-number,
    body.module-aniversarios .aniversarios-calendar-grid.ui-calendar .aniversario-day-head strong,
    body.module-rolcultos .rolcultos-calendar-grid.ui-calendar .ui-day-number,
    .actividades-panel[data-panel="calendario"] .actividades-calendar-grid.ui-calendar .ui-day-number,
    .aniversarios-calendar-card .aniversarios-calendar-grid.ui-calendar .ui-day-number,
    .aniversarios-calendar-card .aniversarios-calendar-grid.ui-calendar .aniversario-day-head strong,
    .rolcultos-panel[data-panel="calendario"] .rolcultos-calendar-grid.ui-calendar .ui-day-number {
        display:block !important;
        position:static !important;
        float:none !important;
        margin:0 !important;
        padding:0 !important;
        color:#101827 !important;
        font-size:7.4pt !important;
        font-weight:900 !important;
        line-height:1 !important;
        text-align:left !important;
        background:transparent !important;
        box-shadow:none !important;
        opacity:1 !important;
    }

    body.module-actividades .actividades-calendar-grid.ui-calendar .ui-day-name,
    body.module-actividades .actividades-calendar-grid.ui-calendar .calendar-dow,
    body.module-aniversarios .aniversarios-calendar-grid.ui-calendar .ui-day-name,
    body.module-aniversarios .aniversarios-calendar-grid.ui-calendar .calendar-dow,
    body.module-aniversarios .aniversarios-calendar-grid.ui-calendar .aniversario-day-head small,
    body.module-rolcultos .rolcultos-calendar-grid.ui-calendar .ui-day-name,
    body.module-rolcultos .rolcultos-calendar-grid.ui-calendar .calendar-dow,
    .actividades-panel[data-panel="calendario"] .actividades-calendar-grid.ui-calendar .ui-day-name,
    .actividades-panel[data-panel="calendario"] .actividades-calendar-grid.ui-calendar .calendar-dow,
    .aniversarios-calendar-card .aniversarios-calendar-grid.ui-calendar .ui-day-name,
    .aniversarios-calendar-card .aniversarios-calendar-grid.ui-calendar .calendar-dow,
    .aniversarios-calendar-card .aniversarios-calendar-grid.ui-calendar .aniversario-day-head small,
    .rolcultos-panel[data-panel="calendario"] .rolcultos-calendar-grid.ui-calendar .ui-day-name,
    .rolcultos-panel[data-panel="calendario"] .rolcultos-calendar-grid.ui-calendar .calendar-dow {
        display:none !important;
    }

    body.module-actividades .actividades-calendar-grid.ui-calendar > .calendar-day.ui-day > .ui-day-events,
    body.module-actividades .actividades-calendar-grid.ui-calendar > .calendar-day.ui-day > .calendar-day-tasks,
    body.module-actividades .actividades-calendar-grid.ui-calendar > .actividades-day.ui-day > .ui-day-events,
    body.module-aniversarios .aniversarios-calendar-grid.ui-calendar > .aniversario-calendar-day.ui-day > .aniversario-calendar-events,
    body.module-aniversarios .aniversarios-calendar-grid.ui-calendar > .aniversario-calendar-day.ui-day > .ui-day-events,
    body.module-rolcultos .rolcultos-calendar-grid.ui-calendar > .rolcultos-calendar-day.ui-day > .rolcultos-calendar-events,
    body.module-rolcultos .rolcultos-calendar-grid.ui-calendar > .rolcultos-calendar-day.ui-day > .ui-day-events,
    .actividades-panel[data-panel="calendario"] .actividades-calendar-grid.ui-calendar > .calendar-day.ui-day > .ui-day-events,
    .actividades-panel[data-panel="calendario"] .actividades-calendar-grid.ui-calendar > .calendar-day.ui-day > .calendar-day-tasks,
    .aniversarios-calendar-card .aniversarios-calendar-grid.ui-calendar > .aniversario-calendar-day.ui-day > .aniversario-calendar-events,
    .aniversarios-calendar-card .aniversarios-calendar-grid.ui-calendar > .aniversario-calendar-day.ui-day > .ui-day-events,
    .rolcultos-panel[data-panel="calendario"] .rolcultos-calendar-grid.ui-calendar > .rolcultos-calendar-day.ui-day > .rolcultos-calendar-events,
    .rolcultos-panel[data-panel="calendario"] .rolcultos-calendar-grid.ui-calendar > .rolcultos-calendar-day.ui-day > .ui-day-events {
        order:1 !important;
        display:flex !important;
        flex-direction:column !important;
        align-items:stretch !important;
        gap:.75mm !important;
        width:100% !important;
        max-width:100% !important;
        margin:0 !important;
        padding:0 !important;
        grid-template-columns:none !important;
        opacity:1 !important;
        overflow:visible !important;
        box-sizing:border-box !important;
    }

    body.module-actividades .actividades-calendar-grid.ui-calendar .calendar-task.ui-event,
    body.module-actividades .actividades-calendar-grid.ui-calendar .ui-event,
    body.module-aniversarios .aniversarios-calendar-grid.ui-calendar .aniversario-calendar-event,
    body.module-rolcultos .rolcultos-calendar-grid.ui-calendar .rolcultos-calendar-event,
    .actividades-panel[data-panel="calendario"] .actividades-calendar-grid.ui-calendar .calendar-task.ui-event,
    .actividades-panel[data-panel="calendario"] .actividades-calendar-grid.ui-calendar .ui-event,
    .aniversarios-calendar-card .aniversarios-calendar-grid.ui-calendar .aniversario-calendar-event,
    .rolcultos-panel[data-panel="calendario"] .rolcultos-calendar-grid.ui-calendar .rolcultos-calendar-event {
        display:block !important;
        position:static !important;
        float:none !important;
        width:100% !important;
        max-width:100% !important;
        min-height:0 !important;
        height:auto !important;
        max-height:none !important;
        margin:0 !important;
        padding:.75mm .9mm !important;
        border:1px solid #d7dee8 !important;
        border-radius:1.3mm !important;
        background:#f8fafc !important;
        color:#101827 !important;
        font-size:5.6pt !important;
        font-weight:900 !important;
        line-height:1.08 !important;
        text-align:left !important;
        white-space:normal !important;
        opacity:1 !important;
        overflow:visible !important;
        text-overflow:clip !important;
        box-sizing:border-box !important;
        -webkit-print-color-adjust:exact !important;
        print-color-adjust:exact !important;
    }

    body.module-actividades .actividades-calendar-grid.ui-calendar .calendar-task.ui-event b,
    body.module-actividades .actividades-calendar-grid.ui-calendar .ui-event b,
    body.module-rolcultos .rolcultos-calendar-grid.ui-calendar .rolcultos-calendar-main,
    body.module-rolcultos .rolcultos-calendar-grid.ui-calendar .rolcultos-calendar-meta,
    .actividades-panel[data-panel="calendario"] .actividades-calendar-grid.ui-calendar .calendar-task.ui-event b,
    .actividades-panel[data-panel="calendario"] .actividades-calendar-grid.ui-calendar .ui-event b,
    .rolcultos-panel[data-panel="calendario"] .rolcultos-calendar-grid.ui-calendar .rolcultos-calendar-main,
    .rolcultos-panel[data-panel="calendario"] .rolcultos-calendar-grid.ui-calendar .rolcultos-calendar-meta {
        display:block !important;
        color:#101827 !important;
        font-size:5.6pt !important;
        line-height:1.08 !important;
        white-space:normal !important;
        overflow:visible !important;
        text-overflow:clip !important;
    }

    body.module-actividades .actividades-calendar-grid.ui-calendar .calendar-task.ui-event small,
    body.module-actividades .actividades-calendar-grid.ui-calendar .ui-event small,
    .actividades-panel[data-panel="calendario"] .actividades-calendar-grid.ui-calendar .calendar-task.ui-event small,
    .actividades-panel[data-panel="calendario"] .actividades-calendar-grid.ui-calendar .ui-event small {
        display:block !important;
        margin:.45mm 0 0 0 !important;
        padding:0 !important;
        background:transparent !important;
        color:#27364a !important;
        font-size:5pt !important;
        line-height:1.05 !important;
        font-weight:800 !important;
        white-space:normal !important;
        overflow:visible !important;
    }
}

/* FIX impresión Rol de Cultos: aplicar mismos criterios de calendarios grandes. */
@media print {
    .rolcultos-module .rolcultos-panel[data-panel="calendario"],
    .rolcultos-module .js-rolcultos-calendar-wrap {
        display:block !important;
        width:100% !important;
        max-width:100% !important;
        margin:0 !important;
        padding:0 !important;
        overflow:visible !important;
        background:transparent !important;
    }

    .rolcultos-module .rolcultos-calendar-weekdays.ui-calendar-weekdays,
    .rolcultos-module .ui-calendar-weekdays.rolcultos-calendar-weekdays {
        display:grid !important;
        grid-template-columns:repeat(7, minmax(0, 1fr)) !important;
        gap:1mm !important;
        width:100% !important;
        max-width:100% !important;
        margin:0 0 1mm 0 !important;
        padding:0 !important;
        border:0 !important;
        background:transparent !important;
        overflow:visible !important;
    }

    .rolcultos-module .rolcultos-calendar-weekdays .ui-calendar-weekday {
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;
        min-height:5.5mm !important;
        height:auto !important;
        margin:0 !important;
        padding:.9mm 1mm !important;
        border:1px solid #cbd5e1 !important;
        border-radius:1.6mm !important;
        background:#f8fafc !important;
        color:#27364a !important;
        font-size:6pt !important;
        font-weight:900 !important;
        line-height:1 !important;
        letter-spacing:.06em !important;
        text-transform:uppercase !important;
        text-align:center !important;
        box-sizing:border-box !important;
    }

    .rolcultos-module .rolcultos-calendar-grid.ui-calendar,
    .rolcultos-module .ui-calendar.rolcultos-calendar-grid {
        display:grid !important;
        grid-template-columns:repeat(7, minmax(0, 1fr)) !important;
        grid-auto-rows:auto !important;
        align-items:stretch !important;
        gap:1mm !important;
        width:100% !important;
        max-width:100% !important;
        margin:0 !important;
        padding:0 !important;
        border:0 !important;
        background:transparent !important;
        overflow:visible !important;
        page-break-inside:avoid !important;
        break-inside:avoid !important;
    }

    .rolcultos-module .rolcultos-calendar-grid.ui-calendar > .rolcultos-calendar-day.ui-day,
    .rolcultos-module .ui-calendar.rolcultos-calendar-grid > .ui-day.rolcultos-calendar-day {
        display:flex !important;
        flex-direction:column !important;
        align-items:stretch !important;
        justify-content:flex-start !important;
        width:auto !important;
        min-width:0 !important;
        max-width:none !important;
        min-height:15mm !important;
        height:auto !important;
        max-height:none !important;
        margin:0 !important;
        padding:1.1mm !important;
        border:1px solid #cbd5e1 !important;
        border-radius:1.6mm !important;
        background:#fff !important;
        color:#101827 !important;
        text-align:left !important;
        box-sizing:border-box !important;
        overflow:visible !important;
        page-break-inside:avoid !important;
        break-inside:avoid !important;
    }

    .rolcultos-module .rolcultos-calendar-grid.ui-calendar > .rolcultos-calendar-day.ui-day > .rolcultos-day-head,
    .rolcultos-module .rolcultos-calendar-grid.ui-calendar > .rolcultos-calendar-day.ui-day > .ui-day-head {
        order:0 !important;
        display:block !important;
        position:static !important;
        float:none !important;
        width:100% !important;
        min-height:2.8mm !important;
        height:auto !important;
        margin:0 0 1mm 0 !important;
        padding:0 !important;
        color:#101827 !important;
        text-align:left !important;
        line-height:1 !important;
        opacity:1 !important;
        overflow:visible !important;
        box-sizing:border-box !important;
    }

    .rolcultos-module .rolcultos-calendar-grid.ui-calendar .rolcultos-day-head .ui-day-number,
    .rolcultos-module .rolcultos-calendar-grid.ui-calendar .ui-day-number {
        display:block !important;
        position:static !important;
        float:none !important;
        margin:0 !important;
        padding:0 !important;
        color:#101827 !important;
        font-size:7.4pt !important;
        font-weight:900 !important;
        line-height:1 !important;
        text-align:left !important;
        background:transparent !important;
        box-shadow:none !important;
        opacity:1 !important;
    }

    .rolcultos-module .rolcultos-calendar-grid.ui-calendar .rolcultos-day-head .ui-day-name,
    .rolcultos-module .rolcultos-calendar-grid.ui-calendar .ui-day-name,
    .rolcultos-module .rolcultos-calendar-grid.ui-calendar .calendar-dow {
        display:none !important;
    }

    .rolcultos-module .rolcultos-calendar-grid.ui-calendar > .rolcultos-calendar-day.ui-day > .rolcultos-calendar-events,
    .rolcultos-module .rolcultos-calendar-grid.ui-calendar > .rolcultos-calendar-day.ui-day > .ui-day-events {
        order:1 !important;
        display:flex !important;
        flex-direction:column !important;
        align-items:stretch !important;
        gap:.75mm !important;
        width:100% !important;
        max-width:100% !important;
        margin:0 !important;
        padding:0 !important;
        grid-template-columns:none !important;
        opacity:1 !important;
        overflow:visible !important;
        box-sizing:border-box !important;
    }

    .rolcultos-module .rolcultos-calendar-day.is-heavy-day .rolcultos-calendar-events,
    .rolcultos-module .rolcultos-calendar-day.is-saturday .rolcultos-calendar-events {
        display:flex !important;
        flex-direction:column !important;
        grid-template-columns:none !important;
    }

    .rolcultos-module .rolcultos-calendar-grid.ui-calendar .rolcultos-calendar-event,
    .rolcultos-module .rolcultos-calendar-grid.ui-calendar button.rolcultos-calendar-event {
        display:block !important;
        position:static !important;
        float:none !important;
        width:100% !important;
        max-width:100% !important;
        min-height:0 !important;
        height:auto !important;
        max-height:none !important;
        margin:0 !important;
        padding:.75mm .9mm !important;
        border:1px solid #d7dee8 !important;
        border-radius:1.3mm !important;
        background:#f8fafc !important;
        color:#101827 !important;
        font-size:5.6pt !important;
        font-weight:900 !important;
        line-height:1.08 !important;
        text-align:left !important;
        white-space:normal !important;
        opacity:1 !important;
        overflow:visible !important;
        text-overflow:clip !important;
        box-sizing:border-box !important;
        -webkit-print-color-adjust:exact !important;
        print-color-adjust:exact !important;
    }

    .rolcultos-module .rolcultos-calendar-grid.ui-calendar .rolcultos-calendar-main,
    .rolcultos-module .rolcultos-calendar-grid.ui-calendar .rolcultos-calendar-meta {
        display:block !important;
        margin:0 !important;
        padding:0 !important;
        color:#101827 !important;
        background:transparent !important;
        font-size:5.6pt !important;
        font-weight:900 !important;
        line-height:1.08 !important;
        white-space:normal !important;
        overflow:visible !important;
        text-overflow:clip !important;
    }

    .rolcultos-module .rolcultos-calendar-grid.ui-calendar .rolcultos-calendar-meta {
        margin-top:.35mm !important;
        color:#27364a !important;
        font-size:5pt !important;
        font-weight:800 !important;
    }
}


/* =========================================================
   ROL DE CULTOS · CALENDARIO GRANDE · IMPRESIÓN FINAL
========================================================= */
@media print {

    .rolcultos-panel[data-panel="calendario"],
    .js-rolcultos-calendar-wrap {
        display:block !important;
        width:100% !important;
        max-width:100% !important;
        margin:0 !important;
        padding:0 !important;
        overflow:visible !important;
        break-before:auto !important;
        page-break-before:auto !important;
        break-inside:auto !important;
        page-break-inside:auto !important;
    }

    .rolcultos-panel[data-panel="calendario"] .rolcultos-calendar-weekdays.ui-calendar-weekdays,
    .rolcultos-panel[data-panel="calendario"] .rolcultos-calendar-grid.ui-calendar,
    .rolcultos-panel[data-panel="calendario"] .rolcultos-calendar-grid.ui-calendar.is-saturday-wide {
        display:grid !important;
        grid-template-columns:repeat(7, minmax(0, 1fr)) !important;
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        gap:1.1mm !important;
        margin:0 !important;
        padding:0 !important;
        overflow:visible !important;
        break-before:auto !important;
        page-break-before:auto !important;
        break-inside:auto !important;
        page-break-inside:auto !important;
    }

    .rolcultos-panel[data-panel="calendario"] .rolcultos-calendar-weekdays.ui-calendar-weekdays {
        margin:0 0 1.2mm 0 !important;
    }

    .rolcultos-panel[data-panel="calendario"] .ui-calendar-weekday,
    .rolcultos-panel[data-panel="calendario"] .rolcultos-calendar-weekday {
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;
        min-height:5mm !important;
        padding:.8mm 1mm !important;
        border:1px solid #cbd5e1 !important;
        border-radius:1.5mm !important;
        background:#f8fafc !important;
        color:#334155 !important;
        font-size:5.8pt !important;
        font-weight:900 !important;
        letter-spacing:.08em !important;
        text-transform:uppercase !important;
        text-align:center !important;
    }

    .rolcultos-panel[data-panel="calendario"] .rolcultos-calendar-day.ui-day,
    .rolcultos-panel[data-panel="calendario"] .rolcultos-calendar-day {
        display:flex !important;
        flex-direction:column !important;
        align-items:stretch !important;
        justify-content:flex-start !important;
        align-self:stretch !important;

        width:auto !important;
        max-width:none !important;
        min-width:0 !important;

        height:auto !important;
        min-height:13mm !important;
        max-height:none !important;

        margin:0 !important;
        padding:1.2mm !important;

        border:1px solid #cbd5e1 !important;
        border-radius:1.5mm !important;
        background:#ffffff !important;

        overflow:visible !important;
        box-sizing:border-box !important;

        break-before:auto !important;
        page-break-before:auto !important;
        break-inside:avoid !important;
        page-break-inside:avoid !important;
    }

    .rolcultos-panel[data-panel="calendario"] .rolcultos-day-head {
        display:block !important;
        width:100% !important;
        margin:0 0 1mm 0 !important;
        padding:0 !important;
        text-align:left !important;
        line-height:1 !important;
    }

    .rolcultos-panel[data-panel="calendario"] .rolcultos-day-number,
    .rolcultos-panel[data-panel="calendario"] .ui-day-number {
        display:block !important;
        position:static !important;
        float:none !important;
        margin:0 !important;
        padding:0 !important;
        text-align:left !important;
        color:#0f172a !important;
        font-size:6.4pt !important;
        font-weight:900 !important;
        line-height:1 !important;
    }

    .rolcultos-panel[data-panel="calendario"] .rolcultos-day-name,
    .rolcultos-panel[data-panel="calendario"] .calendar-dow {
        display:none !important;
    }

    .rolcultos-panel[data-panel="calendario"] .rolcultos-calendar-events,
    .rolcultos-panel[data-panel="calendario"] .rolcultos-calendar-day.is-heavy-day .rolcultos-calendar-events,
    .rolcultos-panel[data-panel="calendario"] .rolcultos-calendar-day.is-saturday .rolcultos-calendar-events {
        display:flex !important;
        flex-direction:column !important;
        gap:.7mm !important;
        width:100% !important;
        margin:0 !important;
        padding:0 !important;
        overflow:visible !important;
    }

    .rolcultos-panel[data-panel="calendario"] .rolcultos-calendar-event {
        display:block !important;
        width:100% !important;
        max-width:100% !important;
        margin:0 !important;
        padding:.8mm !important;
        border:1px solid #dbe4ee !important;
        border-radius:1.2mm !important;
        background:#f8fafc !important;
        color:#0f172a !important;
        overflow:visible !important;
        box-sizing:border-box !important;
        font-size:5pt !important;
        line-height:1.08 !important;
        white-space:normal !important;
    }

    .rolcultos-panel[data-panel="calendario"] .rolcultos-calendar-main,
    .rolcultos-panel[data-panel="calendario"] .rolcultos-calendar-meta {
        display:block !important;
        margin:0 !important;
        padding:0 !important;
        overflow:visible !important;
        white-space:normal !important;
        text-overflow:clip !important;
        line-height:1.08 !important;
    }

    .rolcultos-panel[data-panel="calendario"] .rolcultos-calendar-main {
        font-size:5pt !important;
        font-weight:900 !important;
        color:#0f172a !important;
    }

    .rolcultos-panel[data-panel="calendario"] .rolcultos-calendar-meta {
        margin-top:.4mm !important;
        font-size:4.7pt !important;
        font-weight:700 !important;
        color:#475569 !important;
    }
}


/* =========================================================
   CONSEJO Y CUERPO PASTORAL · CRONOGRAMA HORIZONTAL · IMPRESIÓN
   Optimiza el espacio convirtiendo cada acuerdo en una fila compacta.
========================================================= */
@media print {
    .consejo-panel[data-panel="cronograma"],
    .cuerpo-pastoral-panel[data-panel="cronograma"],
    .js-consejo-timeline-wrap,
    .js-cuerpo-pastoral-timeline-wrap {
        display:block !important;
        width:100% !important;
        max-width:100% !important;
        margin:0 !important;
        padding:0 !important;
        overflow:visible !important;
        background:#fff !important;
        color:#101827 !important;
    }

    .consejo-timeline,
    .cuerpo-pastoral-timeline {
        display:grid !important;
        grid-template-columns:1fr !important;
        gap:1.8mm !important;
        width:100% !important;
        max-width:100% !important;
        margin:0 !important;
        padding:0 !important;
        overflow:visible !important;
        background:#fff !important;
        color:#101827 !important;
    }

    .consejo-item,
    .cuerpo-pastoral-item {
        display:grid !important;
        grid-template-columns:24mm minmax(0, 1fr) !important;
        gap:2mm !important;
        align-items:stretch !important;
        width:100% !important;
        max-width:100% !important;
        min-height:0 !important;
        margin:0 !important;
        padding:1.8mm 2mm !important;
        border:1px solid #b8c2d0 !important;
        border-left:1.6mm solid #64748b !important;
        border-radius:0 !important;
        background:#fff !important;
        color:#101827 !important;
        box-shadow:none !important;
        overflow:visible !important;
        page-break-inside:avoid !important;
        break-inside:avoid !important;
    }

    .consejo-item.is-vencido,
    .cuerpo-pastoral-item.is-vencido {
        border-left-color:#ef4444 !important;
    }

    .consejo-item-date,
    .cuerpo-pastoral-item-date {
        display:flex !important;
        flex-direction:column !important;
        align-items:flex-start !important;
        justify-content:flex-start !important;
        gap:.8mm !important;
        min-width:0 !important;
        margin:0 !important;
        padding:0 2mm 0 0 !important;
        border-right:1px solid #d7dee8 !important;
        color:#101827 !important;
        background:transparent !important;
        overflow:visible !important;
    }

    .consejo-item-date strong,
    .cuerpo-pastoral-item-date strong {
        display:block !important;
        margin:0 !important;
        padding:0 !important;
        color:#101827 !important;
        font-size:7.2pt !important;
        font-weight:900 !important;
        line-height:1.12 !important;
        white-space:normal !important;
    }

    .consejo-item-date span,
    .cuerpo-pastoral-item-date span {
        display:inline-block !important;
        margin:0 !important;
        padding:.6mm 1.5mm !important;
        border:1px solid #ef4444 !important;
        border-radius:999px !important;
        background:#fff1f2 !important;
        color:#b91c1c !important;
        font-size:6pt !important;
        font-weight:900 !important;
        line-height:1 !important;
        text-transform:uppercase !important;
        letter-spacing:.04em !important;
        -webkit-print-color-adjust:exact !important;
        print-color-adjust:exact !important;
    }

    .consejo-item-body,
    .cuerpo-pastoral-item-body {
        display:grid !important;
        grid-template-columns:32mm minmax(38mm, 1.15fr) minmax(38mm, 1fr) 36mm !important;
        gap:2mm !important;
        align-items:start !important;
        min-width:0 !important;
        width:100% !important;
        max-width:100% !important;
        margin:0 !important;
        padding:0 !important;
        overflow:visible !important;
        background:transparent !important;
        color:#101827 !important;
    }

    .consejo-item-head,
    .cuerpo-pastoral-item-head {
        display:flex !important;
        flex-wrap:wrap !important;
        align-items:flex-start !important;
        gap:.8mm !important;
        margin:0 !important;
        padding:0 !important;
        min-width:0 !important;
        overflow:visible !important;
    }

    .consejo-item h3,
    .cuerpo-pastoral-item h3 {
        display:block !important;
        margin:0 !important;
        padding:0 !important;
        color:#101827 !important;
        font-size:7.4pt !important;
        font-weight:900 !important;
        line-height:1.18 !important;
        white-space:normal !important;
        overflow:visible !important;
        text-overflow:clip !important;
    }

    .consejo-item p,
    .cuerpo-pastoral-item p {
        display:block !important;
        margin:0 !important;
        padding:0 !important;
        color:#27364a !important;
        font-size:6.8pt !important;
        line-height:1.18 !important;
        white-space:normal !important;
        overflow:visible !important;
        text-overflow:clip !important;
    }

    .consejo-item small,
    .cuerpo-pastoral-item small {
        display:block !important;
        margin:0 !important;
        padding:0 !important;
        color:#536175 !important;
        font-size:6.3pt !important;
        line-height:1.16 !important;
        white-space:normal !important;
        overflow:visible !important;
        text-overflow:clip !important;
    }

    .consejo-item-head .ui-status-pill,
    .cuerpo-pastoral-item-head .ui-status-pill {
        display:inline-flex !important;
        align-items:center !important;
        justify-content:center !important;
        max-width:100% !important;
        min-height:0 !important;
        margin:0 !important;
        padding:.7mm 1.5mm !important;
        border-radius:999px !important;
        font-size:5.8pt !important;
        font-weight:900 !important;
        line-height:1.05 !important;
        white-space:normal !important;
        text-align:left !important;
        box-shadow:none !important;
        -webkit-print-color-adjust:exact !important;
        print-color-adjust:exact !important;
    }

    .consejo-actions,
    .cuerpo-pastoral-actions,
    .consejo-item .btn,
    .cuerpo-pastoral-item .btn {
        display:none !important;
    }
}

/* =========================================================
   DIRECCIONES · KPIs SECUNDARIOS DE GRUPO · IMPRESIÓN
   - 6 indicadores por fila
   - tipografía compacta, menor o igual a KPIs principales
   - anula reglas globales que forzaban 4 columnas y valores grandes
========================================================= */
@media print {
    body.module-direcciones .direcciones-grupo-kpis,
    body.module-direcciones .direcciones-kpis-secundarios,
    body.module-direcciones .direcciones-secondary-kpis,
    body.module-direcciones .direcciones-extra-kpis,
    .direcciones-module .direcciones-grupo-kpis,
    .direcciones-module .direcciones-kpis-secundarios,
    .direcciones-module .direcciones-secondary-kpis,
    .direcciones-module .direcciones-extra-kpis,
    .direcciones-grupo-kpis {
        display:grid !important;
        grid-template-columns:repeat(6, minmax(0, 1fr)) !important;
        gap:1.2mm !important;
        align-items:stretch !important;
        width:100% !important;
        max-width:100% !important;
        margin:0 0 4mm 0 !important;
        padding:0 !important;
        overflow:visible !important;
        page-break-inside:auto !important;
        break-inside:auto !important;
    }

    body.module-direcciones .direcciones-grupo-kpis > *,
    body.module-direcciones .direcciones-kpis-secundarios > *,
    body.module-direcciones .direcciones-secondary-kpis > *,
    body.module-direcciones .direcciones-extra-kpis > *,
    .direcciones-module .direcciones-grupo-kpis > *,
    .direcciones-module .direcciones-kpis-secundarios > *,
    .direcciones-module .direcciones-secondary-kpis > *,
    .direcciones-module .direcciones-extra-kpis > *,
    .direcciones-grupo-kpis > *,
    .direcciones-grupo-kpis .ui-kpi,
    .direcciones-grupo-kpis .ui-kpi-card,
    .direcciones-grupo-kpis .ui-kpi-neutral,
    .direcciones-grupo-kpis .ui-kpi-neutral-secondary,
    .direcciones-grupo-kpis .kpi-card,
    .direcciones-grupo-kpis .stat-card,
    .direcciones-grupo-kpis .metric-card {
        width:auto !important;
        max-width:none !important;
        min-width:0 !important;
        min-height:0 !important;
        margin:0 !important;
        padding:1.6mm !important;
        border:1px solid #c7d0dc !important;
        border-radius:1.5mm !important;
        background:#fff !important;
        color:#101827 !important;
        box-shadow:none !important;
        overflow:visible !important;
        page-break-inside:avoid !important;
        break-inside:avoid !important;
    }

    body.module-direcciones .direcciones-grupo-kpis .ui-kpi-label,
    body.module-direcciones .direcciones-kpis-secundarios .ui-kpi-label,
    body.module-direcciones .direcciones-secondary-kpis .ui-kpi-label,
    body.module-direcciones .direcciones-extra-kpis .ui-kpi-label,
    .direcciones-module .direcciones-grupo-kpis .ui-kpi-label,
    .direcciones-module .direcciones-kpis-secundarios .ui-kpi-label,
    .direcciones-module .direcciones-secondary-kpis .ui-kpi-label,
    .direcciones-module .direcciones-extra-kpis .ui-kpi-label,
    .direcciones-grupo-kpis .ui-kpi-label,
    .direcciones-grupo-kpis .ui-indicator-title,
    .direcciones-grupo-kpis small {
        display:block !important;
        margin:0 0 .5mm 0 !important;
        color:#536175 !important;
        font-size:5pt !important;
        font-weight:700 !important;
        line-height:1.08 !important;
        letter-spacing:.04em !important;
        text-transform:uppercase !important;
        white-space:normal !important;
        overflow:visible !important;
        text-overflow:clip !important;
    }

    body.module-direcciones .direcciones-grupo-kpis .ui-kpi-value,
    body.module-direcciones .direcciones-kpis-secundarios .ui-kpi-value,
    body.module-direcciones .direcciones-secondary-kpis .ui-kpi-value,
    body.module-direcciones .direcciones-extra-kpis .ui-kpi-value,
    .direcciones-module .direcciones-grupo-kpis .ui-kpi-value,
    .direcciones-module .direcciones-kpis-secundarios .ui-kpi-value,
    .direcciones-module .direcciones-secondary-kpis .ui-kpi-value,
    .direcciones-module .direcciones-extra-kpis .ui-kpi-value,
    .direcciones-grupo-kpis .ui-kpi-value,
    .direcciones-grupo-kpis .ui-indicator-value,
    .direcciones-grupo-kpis strong {
        display:block !important;
        margin:0 !important;
        color:#101827 !important;
        font-size:7.2pt !important;
        font-weight:800 !important;
        line-height:1.05 !important;
        letter-spacing:0 !important;
        white-space:normal !important;
        overflow:visible !important;
        text-overflow:clip !important;
    }

    body.module-direcciones .direcciones-grupo-kpis .ui-kpi-note,
    body.module-direcciones .direcciones-kpis-secundarios .ui-kpi-note,
    body.module-direcciones .direcciones-secondary-kpis .ui-kpi-note,
    body.module-direcciones .direcciones-extra-kpis .ui-kpi-note,
    .direcciones-module .direcciones-grupo-kpis .ui-kpi-note,
    .direcciones-module .direcciones-kpis-secundarios .ui-kpi-note,
    .direcciones-module .direcciones-secondary-kpis .ui-kpi-note,
    .direcciones-module .direcciones-extra-kpis .ui-kpi-note,
    .direcciones-grupo-kpis .ui-kpi-note,
    .direcciones-grupo-kpis .ui-indicator-note {
        display:block !important;
        margin:.6mm 0 0 0 !important;
        color:#536175 !important;
        font-size:5pt !important;
        font-weight:500 !important;
        line-height:1.08 !important;
        white-space:normal !important;
        overflow:visible !important;
        text-overflow:clip !important;
    }
}

/* =========================================================
   PLATAFORMA MCP — IMPRESIÓN: KPIs CON COLOR + DASHBOARD
   Escrito con valores concretos (sin color-mix ni var() anidados)
   para máxima compatibilidad con motores de impresión.
   ========================================================= */
@media print {

    /* ----------------------------------------------------------
       1. KPI GRID
    ---------------------------------------------------------- */

    .ui-kpi-grid,
    .kpi-grid {
        display: grid !important;
        gap: 3mm !important;
        align-items: stretch !important;
        width: 100% !important;
        margin: 0 0 5mm 0 !important;
        padding: 0 !important;
        page-break-inside: auto !important;
        break-inside: auto !important;
    }

    /* Dashboard: 4 KPIs en la primera fila */
    .dashboard-kpis.kpi-grid-4 {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }

    /* Dashboard: 3 KPIs en la segunda fila */
    .dashboard-kpis.is-neutral:not(.kpi-grid-4) {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    /* Cualquier kpi-grid con is-five */
    .ui-kpi-grid.is-five {
        grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    }

    /* ----------------------------------------------------------
       2. KPI: TARJETA CON COLOR
    ---------------------------------------------------------- */

    .ui-kpi,
    .ui-kpi-main,
    .ui-kpi-simple,
    .ui-kpi-neutral,
    .ui-kpi-neutral-secondary {
        position: relative !important;
        display: flex !important;
        flex-direction: column !important;
        gap: 1.5mm !important;
        min-height: 0 !important;
        padding: 3mm 3mm 3mm 5mm !important;
        border: 1px solid #d1dae6 !important;
        border-left: 4px solid #9ca9bd !important;
        border-radius: 2.5mm !important;
        background: #f7f9fc !important;
        color: #101827 !important;
        box-shadow: none !important;
        overflow: visible !important;
        page-break-inside: avoid !important;
        break-inside: avoid !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    /* Pseudo-elementos: desactivar — usamos border-left */
    .ui-kpi::before, .ui-kpi::after,
    .ui-kpi-main::before, .ui-kpi-main::after,
    .ui-kpi-simple::before, .ui-kpi-simple::after,
    .ui-kpi-neutral::before, .ui-kpi-neutral::after,
    .ui-kpi-neutral-secondary::before, .ui-kpi-neutral-secondary::after {
        display: none !important;
        content: none !important;
    }

    /* Variantes de color — borde izquierdo + fondo tintado */
    .ui-kpi.is-blue   { border-left-color: #1f8fe5 !important; background: #edf5fd !important; }
    .ui-kpi.is-cyan   { border-left-color: #19aadb !important; background: #eaf7fc !important; }
    .ui-kpi.is-teal   { border-left-color: #02b8b2 !important; background: #e6f8f7 !important; }
    .ui-kpi.is-green  { border-left-color: #18b66a !important; background: #e8f7ef !important; }
    .ui-kpi.is-orange { border-left-color: #f59e0b !important; background: #fef7e6 !important; }
    .ui-kpi.is-red    { border-left-color: #e83f5b !important; background: #fde9ec !important; }
    .ui-kpi.is-purple { border-left-color: #8b5cf6 !important; background: #f0ecfe !important; }
    .ui-kpi.is-pink   { border-left-color: #d83bb9 !important; background: #fce9f8 !important; }
    .ui-kpi.is-muted  { border-left-color: #64748b !important; background: #f1f4f7 !important; }

    /* Tipografía del KPI */
    .ui-kpi-label, .ui-indicator-title {
        display: block !important;
        margin: 0 0 .8mm 0 !important;
        font-size: 6pt !important;
        font-weight: 900 !important;
        letter-spacing: .1em !important;
        text-transform: uppercase !important;
        color: #536175 !important;
        line-height: 1.1 !important;
        white-space: normal !important;
    }

    .ui-kpi-value, .ui-indicator-value {
        display: block !important;
        margin: 0 !important;
        font-size: 18pt !important;
        font-weight: 950 !important;
        letter-spacing: -.04em !important;
        line-height: 1 !important;
        color: #101827 !important;
        white-space: normal !important;
    }

    /* Valor con color por variante */
    .ui-kpi.is-blue   .ui-kpi-value { color: #0e5ea8 !important; }
    .ui-kpi.is-cyan   .ui-kpi-value { color: #0a7a9e !important; }
    .ui-kpi.is-teal   .ui-kpi-value { color: #00837f !important; }
    .ui-kpi.is-green  .ui-kpi-value { color: #0e7d47 !important; }
    .ui-kpi.is-orange .ui-kpi-value { color: #a36908 !important; }
    .ui-kpi.is-red    .ui-kpi-value { color: #b01832 !important; }
    .ui-kpi.is-purple .ui-kpi-value { color: #5b35c0 !important; }
    .ui-kpi.is-pink   .ui-kpi-value { color: #97288a !important; }
    .ui-kpi.is-muted  .ui-kpi-value { color: #3a4a5c !important; }

    .ui-kpi-note, .ui-indicator-note {
        display: block !important;
        margin: .8mm 0 0 0 !important;
        font-size: 6.5pt !important;
        font-weight: 600 !important;
        color: #536175 !important;
        line-height: 1.25 !important;
        white-space: normal !important;
    }

    .ui-kpi-chip {
        display: inline-flex !important;
        align-items: center !important;
        min-height: 0 !important;
        margin: 0 0 1mm 0 !important;
        padding: .6mm 1.5mm !important;
        border: 1px solid #c7d0dc !important;
        border-radius: 999px !important;
        background: #eef2f7 !important;
        color: #536175 !important;
        font-size: 6pt !important;
        font-weight: 900 !important;
        line-height: 1 !important;
    }

    /* ----------------------------------------------------------
       3. DASHBOARD GRID — 2 columnas sobre papel
    ---------------------------------------------------------- */

    .dashboard-grid {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 4mm !important;
        width: 100% !important;
        margin: 0 0 5mm 0 !important;
        padding: 0 !important;
    }

    /* Resetear todos los span-* para que ocupen 1 columna */
    .dashboard-card,
    .dashboard-card.span-4,
    .dashboard-card.span-5,
    .dashboard-card.span-6,
    .dashboard-card.span-7,
    .dashboard-card.span-8,
    .dashboard-card.span-12 {
        grid-column: span 1 !important;
        page-break-inside: avoid !important;
        break-inside: avoid !important;
        border: 1px solid #d1dae6 !important;
        border-radius: 2mm !important;
        padding: 3mm !important;
        background: #fff !important;
        margin: 0 !important;
        box-shadow: none !important;
        overflow: visible !important;
    }

    /* Cabecera de sección */
    .dashboard-section-card .ui-module-head,
    .dashboard-section-card.ui-table-card .ui-module-head {
        border-bottom: 1px solid #d1dae6 !important;
        padding-bottom: 2mm !important;
        margin-bottom: 2.5mm !important;
        display: block !important;
    }

    .dashboard-section-card .ui-module-title {
        font-size: 9pt !important;
        font-weight: 900 !important;
        color: #101827 !important;
        margin: 0 0 .4mm 0 !important;
    }

    .dashboard-section-card .ui-module-subtitle {
        font-size: 6.5pt !important;
        color: #536175 !important;
        margin: 0 !important;
    }

    /* ui-module-body: resetear padding/overflow */
    .dashboard-section-card .ui-module-body {
        padding: 0 !important;
        overflow: visible !important;
    }

    /* ----------------------------------------------------------
       4. TIPO DE USUARIO — filas con barra
    ---------------------------------------------------------- */

    .dashboard-list { gap: 2mm !important; }

    .dash-row--tipo {
        display: grid !important;
        grid-template-columns: 18mm 1fr 7mm !important;
        align-items: center !important;
        gap: 2mm !important;
        padding: 1.5mm 2mm !important;
        border: 1px solid #e8edf3 !important;
        border-radius: 1.5mm !important;
        background: #f8fafc !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    .dash-row--tipo .dash-row__info {
        display: flex !important;
        align-items: center !important;
        gap: 1.5mm !important;
    }

    .dash-row--tipo .dash-row__info strong {
        font-size: 7.5pt !important;
        font-weight: 800 !important;
        color: #101827 !important;
    }

    .dash-row--tipo .dash-row__total {
        font-size: 8pt !important;
        font-weight: 900 !important;
        color: #101827 !important;
        text-align: right !important;
    }

    /* ----------------------------------------------------------
       5. CASOS POR PRIORIDAD
    ---------------------------------------------------------- */

    .dash-row--prio {
        display: grid !important;
        grid-template-columns: 20mm 1fr 7mm !important;
        align-items: center !important;
        gap: 2mm !important;
        padding: 1.5mm 2mm !important;
        border: 1px solid #e8edf3 !important;
        border-radius: 1.5mm !important;
        background: #f8fafc !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    .dash-row--prio .dash-row__info {
        display: flex !important;
        align-items: center !important;
        gap: 1.5mm !important;
    }

    .dash-row--prio .dash-row__info strong {
        font-size: 7.5pt !important;
        font-weight: 800 !important;
        color: #101827 !important;
    }

    .dash-row--prio .dash-row__total {
        font-size: 8pt !important;
        font-weight: 900 !important;
        color: #101827 !important;
        text-align: right !important;
    }

    /* Badge de nivel de prioridad en impresión */
    .prio-badge {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 5mm !important;
        height: 5mm !important;
        border-radius: 1mm !important;
        font-size: 6pt !important;
        font-weight: 950 !important;
        flex-shrink: 0 !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    /* Colores sólidos para impresión */
    .prioridad--5 { background: #C04040 !important; color: #fff !important; border: none !important; }
    .prioridad--4 { background: #C86830 !important; color: #fff !important; border: none !important; }
    .prioridad--3 { background: #C89010 !important; color: #fff !important; border: none !important; }
    .prioridad--2 { background: #5BAAE0 !important; color: #fff !important; border: none !important; }
    .prioridad--1 { background: #8a9ab5 !important; color: #fff !important; border: none !important; }

    /* ----------------------------------------------------------
       6. CATEGORÍAS PRINCIPALES
    ---------------------------------------------------------- */

    .dash-row--cat {
        display: grid !important;
        /* num · nombre · barra · total */
        grid-template-columns: 5mm minmax(0, 1fr) minmax(0, 1.4fr) 7mm !important;
        align-items: center !important;
        gap: 2mm !important;
        padding: 1.5mm 2mm !important;
        border: 1px solid #e8edf3 !important;
        border-radius: 1.5mm !important;
        background: #f8fafc !important;
    }

    /* Mostrar barra de categorías */
    .dash-row--cat .dbar-track {
        display: block !important;
        position: relative !important;
        height: 2mm !important;
        border-radius: 999px !important;
        background: #e0e6ed !important;
        overflow: visible !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    .dash-row__rank {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 4.5mm !important;
        height: 4.5mm !important;
        border-radius: 1mm !important;
        background: #eef2f7 !important;
        color: #536175 !important;
        font-size: 6pt !important;
        font-weight: 900 !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    .dash-row--cat .dash-row__info strong {
        font-size: 7.5pt !important;
        font-weight: 800 !important;
        color: #101827 !important;
    }

    .dash-row--cat .dash-row__total {
        font-size: 8pt !important;
        font-weight: 900 !important;
        color: #101827 !important;
        text-align: right !important;
    }

    /* ----------------------------------------------------------
       7. BARRAS (dbar) — posicionamiento compatible con impresión
    ---------------------------------------------------------- */

    .dbar-track {
        position: relative !important;
        height: 2mm !important;
        border-radius: 999px !important;
        background: #e0e6ed !important;
        overflow: visible !important;
        flex: 1 !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    .dbar-fill {
        /* En impresión position:absolute no siempre respeta --w.
           Lo convertimos a inline-block con el ancho como margen. */
        position: relative !important;
        display: block !important;
        height: 2mm !important;
        border-radius: 999px !important;
        width: var(--w, 0%) !important;
        min-width: 0 !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    /* Colores de barra — valores sólidos */
    .dbar-fill--ab,
    .dbar-fill--tipo    { background: #1f8fe5 !important; }
    .dbar-fill--ce      { background: #18b66a !important; }
    .dbar-fill--susp    { background: #6b7a8d !important; }
    .dbar-fill--urg     { background: #e83f5b !important; }
    .dbar-fill--cat     { background: #1A6FBF !important; }
    .dbar-fill--prio-5  { background: #C04040 !important; }
    .dbar-fill--prio-4  { background: #C86830 !important; }
    .dbar-fill--prio-3  { background: #C89010 !important; }
    .dbar-fill--prio-2  { background: #5BAAE0 !important; }
    .dbar-fill--prio-1  { background: #8a9ab5 !important; }

    .dbar-fill--tipo.tipo--pastor { background: #1A6FBF !important; }
    .dbar-fill--tipo.tipo--esposa { background: #7C3AED !important; }
    .dbar-fill--tipo.tipo--hijo   { background: #1A8A6A !important; }
    .dbar-fill--tipo.tipo--hija   { background: #C2500F !important; }

    /* Dot de tipo */
    .tipo-dot {
        display: inline-block !important;
        width: 2.5mm !important;
        height: 2.5mm !important;
        border-radius: 50% !important;
        flex-shrink: 0 !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }
    .tipo-dot.tipo--pastor { background: #1A6FBF !important; }
    .tipo-dot.tipo--esposa { background: #7C3AED !important; }
    .tipo-dot.tipo--hijo   { background: #1A8A6A !important; }
    .tipo-dot.tipo--hija   { background: #C2500F !important; }

    /* ----------------------------------------------------------
       8. SOLICITUDES POR DISTRITO
    ---------------------------------------------------------- */

    .dist-list { display: flex !important; flex-direction: column !important; gap: 2mm !important; }

    .dist-row {
        display: block !important;
        padding: 2mm !important;
        border: 1px solid #e8edf3 !important;
        border-radius: 1.5mm !important;
        background: #f8fafc !important;
        page-break-inside: avoid !important;
        break-inside: avoid !important;
    }

    .dist-row__head {
        display: flex !important;
        justify-content: space-between !important;
        align-items: baseline !important;
        margin-bottom: 1.5mm !important;
    }

    .dist-row__name {
        font-size: 7.5pt !important;
        font-weight: 900 !important;
        color: #101827 !important;
    }

    .dist-row__total {
        font-size: 9pt !important;
        font-weight: 950 !important;
        color: #101827 !important;
    }

    .dist-row__bars { display: flex !important; flex-direction: column !important; gap: 1mm !important; }

    .dbar-row {
        display: grid !important;
        grid-template-columns: 16mm 1fr 6mm !important;
        align-items: center !important;
        gap: 1.5mm !important;
    }

    .dbar-tag {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        height: auto !important;
        min-width: 0 !important;
        padding: .3mm 1.5mm !important;
        border-radius: 1mm !important;
        font-size: 6pt !important;
        font-weight: 900 !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    .dbar-tag--ab   { background: #dbeeff !important; color: #0e5ea8 !important; }
    .dbar-tag--ce   { background: #d4eddf !important; color: #0e7d47 !important; }
    .dbar-tag--susp { background: #eef2f7 !important; color: #536175 !important; }
    .dbar-tag--urg  { background: #fde8ec !important; color: #b01832 !important; }

    .dbar-num {
        font-size: 7pt !important;
        font-weight: 900 !important;
        color: #101827 !important;
        text-align: right !important;
        min-width: 0 !important;
    }

    /* ----------------------------------------------------------
       9. TRÁFICO AL PORTAL
    ---------------------------------------------------------- */

    .trafico-list { display: flex !important; flex-direction: column !important; gap: 1.5mm !important; }

    .trafico-row {
        display: grid !important;
        grid-template-columns: 14mm 1fr 8mm !important;
        align-items: center !important;
        gap: 2mm !important;
        padding: 1mm 0 !important;
        border-bottom: 1px solid #eef2f7 !important;
    }

    .trafico-mes {
        font-size: 7pt !important;
        font-weight: 800 !important;
        color: #101827 !important;
    }

    .trafico-segmented {
        display: flex !important;
        height: 4mm !important;
        border-radius: 1mm !important;
        overflow: hidden !important;
        gap: .5px !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    .tseg {
        display: block !important;
        height: 100% !important;
        width: var(--w, 0%) !important;
        flex-shrink: 0 !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    .tseg span { display: none !important; }

    .tseg--pastor { background: #1A6FBF !important; }
    .tseg--esposa { background: #7C3AED !important; }
    .tseg--hijo   { background: #1A8A6A !important; }
    .tseg--hija   { background: #C2500F !important; }

    .trafico-total-num {
        font-size: 7.5pt !important;
        font-weight: 900 !important;
        color: #101827 !important;
        text-align: right !important;
    }

    /* Leyenda de tráfico: mostrarla compacta arriba */
    .trafico-leyenda {
        display: flex !important;
        align-items: center !important;
        gap: 1mm 3mm !important;
        flex-wrap: wrap !important;
        font-size: 6pt !important;
        font-weight: 700 !important;
        color: #536175 !important;
        margin-bottom: 2mm !important;
    }

    .ley-dot {
        display: inline-block !important;
        width: 2.5mm !important;
        height: 2.5mm !important;
        border-radius: .8mm !important;
        flex-shrink: 0 !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    .ley-pastor { background: #1A6FBF !important; }
    .ley-esposa { background: #7C3AED !important; }
    .ley-hijo   { background: #1A8A6A !important; }
    .ley-hija   { background: #C2500F !important; }

    /* ----------------------------------------------------------
       10. GRÁFICO DE DONA — ocultar canvas, mostrar leyenda completa
    ---------------------------------------------------------- */

    /* Mapas: mostrar en impresión — SVG con fill HEX sólido generado por PHP */
    .dashboard-mapa-section { display: block !important; }
    .mapa-grid {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 5mm !important;
        width: 100% !important;
    }

    .dashboard-grafico-section { display: block !important; }

    /* Ocultar canvas de Chart.js, mostrar SVG estático */
    .gc-canvas-wrap canvas,
    .gc-canvas-wrap .gc-center { display: none !important; }

    .gc-canvas-wrap {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 52mm !important;
        flex-shrink: 0 !important;
    }

    .gc-dona-print {
        display: block !important;
        width: 52mm !important;
        height: 52mm !important;
    }

    /* Layout: dona SVG a la izquierda + leyenda a la derecha */
    .gc-layout {
        display: flex !important;
        align-items: flex-start !important;
        gap: 5mm !important;
        width: 100% !important;
    }

    .gc-legend {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 3mm !important;
        flex: 1 !important;
    }

    .gc-legend-group {
        padding: 2.5mm !important;
        border: 1px solid #d1dae6 !important;
        border-radius: 2mm !important;
        background: #f8fafc !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    .gc-legend-title {
        font-size: 7.5pt !important;
        font-weight: 900 !important;
        color: #101827 !important;
        margin-bottom: 2mm !important;
        padding-bottom: 1.5mm !important;
        border-bottom: 1px solid #d1dae6 !important;
        display: block !important;
    }

    .gc-ring-badge {
        display: inline-block !important;
        padding: .4mm 1.2mm !important;
        border: 1px solid #b8c2d0 !important;
        border-radius: 1mm !important;
        font-size: 5.5pt !important;
        font-weight: 900 !important;
        background: #eef2f7 !important;
        color: #536175 !important;
        margin-right: 1mm !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    .gc-legend-rows { display: flex !important; flex-direction: column !important; gap: 0 !important; }

    .gc-leg-row {
        display: flex !important;
        align-items: center !important;
        gap: 1.5mm !important;
        padding: 1mm 0 !important;
        border-bottom: 1px solid #f0f3f7 !important;
        font-size: 7.5pt !important;
        color: #101827 !important;
    }

    .gc-leg-row:last-child { border-bottom: none !important; }

    .gc-leg-dot {
        flex-shrink: 0 !important;
        width: 2.5mm !important;
        height: 2.5mm !important;
        border-radius: 50% !important;
        display: inline-block !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    .gc-leg-row strong {
        font-size: 8.5pt !important;
        font-weight: 900 !important;
        min-width: 5mm !important;
        color: #101827 !important;
    }

    .gc-leg-pct {
        margin-left: auto !important;
        font-size: 7pt !important;
        font-weight: 700 !important;
        color: #536175 !important;
        flex-shrink: 0 !important;
    }

    .gc-prio-badge {
        display: inline-block !important;
        padding: .3mm 1mm !important;
        border-radius: 1mm !important;
        font-size: 6pt !important;
        font-weight: 900 !important;
        color: #fff !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    /* Badges P5→P1 con color sólido */
    .gc-prio-5 { background: #C04040 !important; }
    .gc-prio-4 { background: #C86830 !important; }
    .gc-prio-3 { background: #C89010 !important; color: #101827 !important; }
    .gc-prio-2 { background: #5BAAE0 !important; }
    .gc-prio-1 { background: #6b7a8d !important; }

    /* ----------------------------------------------------------
       11. DISTRIBUCIÓN POR PRIORIDAD Y ESTATUS (ui-div-table nativa)
           Puntos de color en la columna Prioridad
    ---------------------------------------------------------- */

    .ui-prio-dot {
        display: inline-block !important;
        width: 2mm !important;
        height: 2mm !important;
        border-radius: 50% !important;
        vertical-align: middle !important;
        margin-right: .8mm !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    /* Badges de prioridad dentro de la tabla */
    .gc-prio-table .gc-prio-badge {
        font-size: 5.5pt !important;
        padding: .2mm .8mm !important;
    }

    /* ----------------------------------------------------------
       12. HEATMAP
    ---------------------------------------------------------- */

    /* Toggle: ocultar, mostrar solo vista activa */
    .hm-toggle  { display: none !important; }
    .hm-wrap.is-hidden { display: none !important; }
    .hm-wrap:not(.is-hidden) { display: block !important; width: 100% !important; }
    .hm-legend  { display: none !important; }

    /* Grid del heatmap: convertir a tabla visual con flex */
    [class*="hm-grid--"] { display: block !important; }

    .hm-head-row,
    .hm-data-row,
    .hm-foot-row {
        display: flex !important;
        border-bottom: 1px solid #d1dae6 !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    .hm-head-row {
        background: #eef2f7 !important;
        border-bottom: 2px solid #b8c2d0 !important;
    }

    .hm-foot-row {
        background: #eef2f7 !important;
        border-top: 2px solid #b8c2d0 !important;
        font-weight: 900 !important;
    }

    .hm-label-cell {
        flex: 0 0 24mm !important;
        font-size: 6.5pt !important;
        font-weight: 700 !important;
        color: #101827 !important;
        padding: 1.2mm 1.5mm !important;
        display: flex !important;
        align-items: center !important;
        gap: 1mm !important;
        border-right: 1px solid #d1dae6 !important;
    }

    .hm-head-cell {
        flex: 1 !important;
        text-align: center !important;
        font-size: 6pt !important;
        font-weight: 900 !important;
        color: #536175 !important;
        padding: 1mm .5mm !important;
        border-right: 1px solid #d1dae6 !important;
    }

    .hm-head-cell--total {
        flex: 0 0 9mm !important;
        color: #101827 !important;
        border-right: none !important;
        border-left: 2px solid #b8c2d0 !important;
    }

    .hm-dist-num {
        display: block !important;
        font-size: 7pt !important;
        font-weight: 900 !important;
        color: #101827 !important;
    }

    .hm-dist-name {
        display: block !important;
        font-size: 5pt !important;
        color: #536175 !important;
        white-space: normal !important;
        line-height: 1.1 !important;
    }

    /* Celdas de datos: intensidad de color como nivel de opacidad de fondo */
    /* Dado que --hm-i no funciona en rgba() en impresión,
       usamos una escala fija con data-atributo o simplemente color plano */
    .hm-cell {
        flex: 1 !important;
        text-align: center !important;
        font-size: 7pt !important;
        font-weight: 700 !important;
        color: #101827 !important;
        padding: 1.2mm .5mm !important;
        border-right: 1px solid #d1dae6 !important;
        background: #fff !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    .hm-cell:empty,
    .hm-zero {
        color: #b8c2d0 !important;
    }

    .hm-total-cell {
        flex: 0 0 9mm !important;
        text-align: center !important;
        font-size: 7.5pt !important;
        font-weight: 900 !important;
        color: #101827 !important;
        padding: 1.2mm .5mm !important;
        border-left: 2px solid #b8c2d0 !important;
        border-right: none !important;
    }

    .hm-foot-cell {
        flex: 1 !important;
        text-align: center !important;
        font-size: 7pt !important;
        font-weight: 900 !important;
        color: #101827 !important;
        padding: 1.2mm .5mm !important;
        border-right: 1px solid #c7d0dc !important;
    }

    .hm-foot-cell--grand {
        flex: 0 0 9mm !important;
        border-left: 2px solid #9ca9bd !important;
        border-right: none !important;
        font-weight: 950 !important;
    }

    .hm-prio-badge {
        display: inline-block !important;
        padding: .3mm 1mm !important;
        border-radius: 1mm !important;
        font-size: 5.5pt !important;
        font-weight: 900 !important;
        color: #fff !important;
        margin-right: .5mm !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    .hm-prio-5 { background: #C04040 !important; }
    .hm-prio-4 { background: #C86830 !important; }
    .hm-prio-3 { background: #C89010 !important; color: #101827 !important; }
    .hm-prio-2 { background: #5BAAE0 !important; color: #101827 !important; }
    .hm-prio-1 { background: #6b7a8d !important; }

    .hm-row-label {
        font-size: 6.5pt !important;
        font-weight: 700 !important;
        color: #101827 !important;
    }

    .hm-perfil-dot {
        display: inline-block !important;
        width: 2mm !important;
        height: 2mm !important;
        border-radius: 50% !important;
        flex-shrink: 0 !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }
    .hm-perfil-dot--pastor { background: #1A6FBF !important; }
    .hm-perfil-dot--esposa { background: #7C3AED !important; }
    .hm-perfil-dot--hijo   { background: #1A8A6A !important; }
    .hm-perfil-dot--hija   { background: #C2500F !important; }

    /* ----------------------------------------------------------
       13. BADGES EN TABLAS — con color de fondo
    ---------------------------------------------------------- */

    .badge-success {
        background: #d4eddf !important; color: #0e7d47 !important;
        border: 1px solid #a3d9b9 !important;
        -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important;
    }
    .badge-warning {
        background: #fef7e0 !important; color: #a36908 !important;
        border: 1px solid #f5d97a !important;
        -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important;
    }
    .badge-danger {
        background: #fde8ec !important; color: #b01832 !important;
        border: 1px solid #f4a3b2 !important;
        -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important;
    }
    .badge-info {
        background: #dbeeff !important; color: #0e5ea8 !important;
        border: 1px solid #90c8f2 !important;
        -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important;
    }
    .badge-muted {
        background: #eef2f7 !important; color: #536175 !important;
        border: 1px solid #c7d0dc !important;
        -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important;
    }

    /* ----------------------------------------------------------
       14. TENDENCIA MENSUAL — colores de valor
    ---------------------------------------------------------- */

    .tend-num--sol { color: #1A6FBF !important; font-weight: 900 !important; }
    .tend-num--ce  { color: #1A8A6A !important; font-weight: 900 !important; }

    /* ----------------------------------------------------------
       15. OCULTAR ELEMENTOS QUE NO APORTAN EN PAPEL
    ---------------------------------------------------------- */

    /* Columnas de acción en tablas */
    .ui-div-cell-actions,
    .ui-div-cell[data-label="Acción"],
    .ui-div-cell[data-label="Acciones"] {
        display: none !important;
    }

}

/* =========================================================
   AGENDA GLOBAL (módulo agenda) — celdas de día sin altura fija
   Las celdas crecen con su contenido y muestran todos los eventos.
   Sobreescribe los bloques genéricos que fijan height:24mm y
   ocultan el desbordamiento con overflow:hidden.
========================================================= */
@media print {

    /* Encabezado de días de la semana */
    .agenda-module .calendar-weekdays,
    #agendaGrid ~ .calendar-weekdays,
    .agenda-card .calendar-weekdays {
        display: grid !important;
        grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
        gap: 0 !important;
        margin: 0 !important;
        border: 1px solid #b8c2d0 !important;
        border-bottom: 0 !important;
        background: #eef2f7 !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    .agenda-module .calendar-weekdays span {
        display: block !important;
        text-align: center !important;
        font-size: 7pt !important;
        font-weight: 900 !important;
        color: #536175 !important;
        padding: 2mm 1mm !important;
        border-right: 1px solid #b8c2d0 !important;
        text-transform: uppercase !important;
        letter-spacing: .05em !important;
    }

    /* Grid del calendario: sin corte de página interno */
    .agenda-module .calendar-grid,
    #agendaGrid {
        display: grid !important;
        grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
        gap: 0 !important;
        width: 100% !important;
        overflow: visible !important;
        border-left: 1px solid #b8c2d0 !important;
        border-top: 1px solid #b8c2d0 !important;
        background: #fff !important;
        page-break-inside: auto !important;
        break-inside: auto !important;
    }

    /* Celdas de día — altura automática, sin overflow hidden */
    .agenda-module .calendar-day,
    #agendaGrid .calendar-day {
        display: block !important;
        /* Altura mínima pequeña — crece con el contenido */
        min-height: 18mm !important;
        height: auto !important;
        padding: 2mm 1.5mm !important;
        margin: 0 !important;
        border: 0 !important;
        border-right: 1px solid #b8c2d0 !important;
        border-bottom: 1px solid #b8c2d0 !important;
        border-radius: 0 !important;
        background: #fff !important;
        color: #101827 !important;
        overflow: visible !important;  /* ← clave: no corta el contenido */
        text-align: left !important;
        /* No avoid en las celdas individuales — solo en filas */
        page-break-inside: auto !important;
        break-inside: auto !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    /* Días del mes anterior/siguiente: fondo suave */
    .agenda-module .calendar-day.is-muted,
    #agendaGrid .calendar-day.is-muted {
        background: #f8fafc !important;
        color: #8a99ad !important;
    }

    /* Día de hoy: borde destacado */
    .agenda-module .calendar-day.is-today,
    #agendaGrid .calendar-day.is-today {
        background: #eef6ff !important;
        border-right-color: #1f8fe5 !important;
        border-bottom-color: #1f8fe5 !important;
        outline: 1.5px solid #1f8fe5 !important;
        outline-offset: -1px !important;
    }

    /* Cabecera de cada celda: número + día */
    .agenda-module .calendar-day header,
    #agendaGrid .calendar-day header {
        display: flex !important;
        justify-content: space-between !important;
        align-items: baseline !important;
        margin-bottom: 1.5mm !important;
        padding: 0 !important;
    }

    .agenda-module .calendar-day .ui-day-number,
    #agendaGrid .calendar-day .ui-day-number {
        font-size: 8pt !important;
        font-weight: 900 !important;
        color: #101827 !important;
        line-height: 1 !important;
    }

    .agenda-module .calendar-day .ui-day-name,
    #agendaGrid .calendar-day .ui-day-name {
        font-size: 6pt !important;
        font-weight: 700 !important;
        color: #8a99ad !important;
        text-transform: uppercase !important;
        letter-spacing: .05em !important;
    }

    /* Contenedor de eventos: crece libremente */
    .agenda-module .calendar-day-tasks,
    #agendaGrid .calendar-day-tasks {
        display: block !important;
        width: 100% !important;
        overflow: visible !important;
    }

    /* Evento individual — con color de fondo según estado */
    .agenda-module .calendar-task,
    #agendaGrid .calendar-task {
        display: block !important;
        width: 100% !important;
        margin: 0 0 1mm 0 !important;
        padding: 1.2mm 1.5mm !important;
        border-radius: 1.5mm !important;
        border: 0 !important;
        overflow: visible !important;
        text-align: left !important;
        white-space: normal !important;
        page-break-inside: avoid !important;
        break-inside: avoid !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    /* Nombre en negrita */
    .agenda-module .calendar-task b,
    #agendaGrid .calendar-task b {
        display: block !important;
        font-size: 6.8pt !important;
        font-weight: 900 !important;
        line-height: 1.2 !important;
        white-space: normal !important;
        overflow: visible !important;
    }

    /* Hora + estado + tipo en una línea */
    .agenda-module .calendar-task small,
    #agendaGrid .calendar-task small {
        display: block !important;
        font-size: 6pt !important;
        font-weight: 600 !important;
        line-height: 1.2 !important;
        opacity: .82 !important;
        white-space: normal !important;
    }

    /* Colores por estado de cita — solo borde izquierdo, fondo transparente */
    .agenda-module .calendar-task,
    #agendaGrid .calendar-task {
        background: transparent !important;
        color: #101827 !important;
        border-left: 3px solid #9ca9bd !important;
        border-top: 0 !important;
        border-right: 0 !important;
        border-bottom: 0 !important;
        border-radius: 0 1.5mm 1.5mm 0 !important;
        padding-left: 2mm !important;
    }

    .agenda-module .calendar-task.is-blue,
    #agendaGrid .calendar-task.is-blue   { border-left-color: #1f8fe5 !important; }

    .agenda-module .calendar-task.is-green,
    #agendaGrid .calendar-task.is-green  { border-left-color: #18b66a !important; }

    .agenda-module .calendar-task.is-orange,
    #agendaGrid .calendar-task.is-orange { border-left-color: #f59e0b !important; }

    .agenda-module .calendar-task.is-muted,
    #agendaGrid .calendar-task.is-muted  { border-left-color: #64748b !important; }

    .agenda-module .calendar-task.is-purple,
    #agendaGrid .calendar-task.is-purple { border-left-color: #8b5cf6 !important; }

    /* "+N más": visible pero pequeño */
    .agenda-module .calendar-more,
    #agendaGrid .calendar-more {
        display: block !important;
        font-size: 6pt !important;
        font-weight: 700 !important;
        color: #536175 !important;
        margin-top: 1mm !important;
    }

    /* Permitir que las FILAS del grid sí puedan partir entre páginas
       — pero no las celdas individuales */
    .agenda-module .calendar-grid,
    #agendaGrid {
        page-break-inside: auto !important;
        break-inside: auto !important;
    }

}

/* =========================================================
   AGENDA GLOBAL — leyenda de colores en impresión
   La leyenda tiene clase no-print en el HTML, la rescatamos
   específicamente para el módulo agenda.
========================================================= */
@media print {

    .agenda-module .agenda-leyenda {
        display: flex !important;
        align-items: center !important;
        flex-wrap: wrap !important;
        gap: 1mm 4mm !important;
        margin-bottom: 3mm !important;
        font-size: 7pt !important;
        font-weight: 700 !important;
        color: #536175 !important;
    }

    .agenda-module .ag-dot {
        display: inline-block !important;
        width: 3mm !important;
        height: 3mm !important;
        border-radius: 50% !important;
        margin-right: 1mm !important;
        vertical-align: middle !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    .agenda-module .ag-dot.is-blue   { background: #1f8fe5 !important; }
    .agenda-module .ag-dot.is-green  { background: #18b66a !important; }
    .agenda-module .ag-dot.is-orange { background: #f59e0b !important; }
    .agenda-module .ag-dot.is-muted  { background: #64748b !important; }
    .agenda-module .ag-dot.is-purple { background: #8b5cf6 !important; }

}

/* =========================================================
   COLUMNA ACCIÓN / ACCIONES — ocultación completa en impresión
   Cubre thead (sin clase) y tbody (con clase/data-label).
   Usa :has() para detectar tablas con columna de acción y
   ocultar su último encabezado automáticamente.
========================================================= */
@media print {

    /* ── Celdas del cuerpo — todas las variantes ── */
    .ui-div-cell-actions,
    .ui-div-cell[data-label="Acción"],
    .ui-div-cell[data-label="Acciones"],
    .ui-div-cell[data-label="acción"],
    .ui-div-cell[data-label="acciones"] {
        display: none !important;
    }

    /* ── Encabezado — el thead no tiene clase ni data-label,
         detectamos la tabla por :has() y ocultamos el último hijo ── */

    /* Tablas con celda de clase ui-div-cell-actions */
    .ui-div-table:has(.ui-div-cell-actions) .ui-div-thead .ui-div-cell:last-child {
        display: none !important;
    }

    /* Tablas con data-label="Acción" (singular) */
    .ui-div-table:has(.ui-div-cell[data-label="Acción"]) .ui-div-thead .ui-div-cell:last-child {
        display: none !important;
    }

    /* Tablas con data-label="Acciones" (plural) */
    .ui-div-table:has(.ui-div-cell[data-label="Acciones"]) .ui-div-thead .ui-div-cell:last-child {
        display: none !important;
    }

    /* ── Corregir el hueco de columna en el grid ──
       Las ui-div-row usan grid-template-columns definido en cada módulo.
       Con display:none la celda desaparece visualmente pero deja una
       columna vacía. Sobreescribimos el grid para que la última columna
       no tome espacio cuando está oculta. ── */

    .ui-div-table:has(.ui-div-cell-actions) .ui-div-row,
    .ui-div-table:has(.ui-div-cell[data-label="Acción"]) .ui-div-row,
    .ui-div-table:has(.ui-div-cell[data-label="Acciones"]) .ui-div-row {
        /* Eliminamos la última columna del grid reemplazándola con 0 */
        grid-template-columns: subgrid !important;
    }

    /* Fallback para navegadores sin subgrid: forzar auto en la última col */
    @supports not (grid-template-columns: subgrid) {
        .ui-div-table:has(.ui-div-cell-actions) .ui-div-row,
        .ui-div-table:has(.ui-div-cell[data-label="Acción"]) .ui-div-row,
        .ui-div-table:has(.ui-div-cell[data-label="Acciones"]) .ui-div-row {
            grid-template-columns: unset !important;
            display: flex !important;
            flex-wrap: nowrap !important;
        }

        /* Todas las celdas visibles se distribuyen equitativamente */
        .ui-div-table:has(.ui-div-cell-actions) .ui-div-row .ui-div-cell:not([data-label="Acción"]):not([data-label="Acciones"]):not(.ui-div-cell-actions),
        .ui-div-table:has(.ui-div-cell[data-label="Acción"]) .ui-div-row .ui-div-cell:not([data-label="Acción"]):not(.ui-div-cell-actions),
        .ui-div-table:has(.ui-div-cell[data-label="Acciones"]) .ui-div-row .ui-div-cell:not([data-label="Acciones"]):not(.ui-div-cell-actions) {
            flex: 1 !important;
            min-width: 0 !important;
        }
    }

}

/* =========================================================
   DASHBOARD — MAPAS TERRITORIALES EN IMPRESIÓN
   El SVG tiene fill HEX calculado en PHP, print-color-adjust
   lo preserva sin necesitar CSS adicional para los colores.
========================================================= */
@media print {

    .dashboard-mapa-section {
        page-break-inside: avoid !important;
        break-inside: avoid !important;
    }

    /* Dos mapas en columnas iguales */
    .mapa-card {
        display: block !important;
        border: 1px solid #d1dae6 !important;
        border-radius: 2mm !important;
        padding: 3mm !important;
        background: #fff !important;
        page-break-inside: avoid !important;
        break-inside: avoid !important;
    }

    /* Título del mapa */
    .mapa-card-head {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        margin-bottom: 2mm !important;
        gap: 2mm !important;
    }

    .mapa-card-head h3 {
        font-size: 8pt !important;
        font-weight: 900 !important;
        color: #101827 !important;
        margin: 0 !important;
    }

    /* Badge de conteo */
    .mapa-badge {
        display: inline-block !important;
        padding: .5mm 1.5mm !important;
        border-radius: 999px !important;
        font-size: 6.5pt !important;
        font-weight: 900 !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    .mapa-badge--activos {
        background: #dbeeff !important;
        color: #0e5ea8 !important;
        border: 1px solid #90c8f2 !important;
    }

    .mapa-badge--riesgo {
        background: #fde8ec !important;
        color: #b01832 !important;
        border: 1px solid #f4a3b2 !important;
    }

    /* Ocultar botón ampliar */
    .mapa-expand-btn { display: none !important; }
    .mapa-card-head-actions { gap: 0 !important; }

    /* Tooltip: ocultar */
    .mapa-tooltip { display: none !important; }

    /* Contenedor del SVG */
    .mapa-wrap {
        display: block !important;
        width: 100% !important;
        overflow: visible !important;
        background: transparent !important;
        margin-bottom: 2mm !important;
    }

    /* El SVG ocupa todo el ancho disponible manteniendo su ratio */
    .mapa-svg {
        display: block !important;
        width: 100% !important;
        height: auto !important;
        max-width: 100% !important;
        overflow: visible !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    /* Paths del mapa: preservar colores HEX del fill generado en PHP */
    .mapa-svg path.mapa-estado {
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
        stroke: #b0bec8 !important;
        stroke-width: 0.8 !important;
    }

    /* Escala de color */
    .mapa-escala {
        display: block !important;
        margin-top: 1.5mm !important;
    }

    .mapa-escala-label {
        display: block !important;
        font-size: 6.5pt !important;
        color: #536175 !important;
        margin-bottom: 1mm !important;
    }

    .mapa-escala-label strong {
        color: #101827 !important;
        font-weight: 700 !important;
    }

    .mapa-escala-bar {
        height: 2.5mm !important;
        border-radius: 999px !important;
        width: 100% !important;
        border: 1px solid #d1dae6 !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    .mapa-escala-bar--activos {
        background: linear-gradient(90deg, #f0f4f8 0%, #1A6FBF 100%) !important;
    }

    .mapa-escala-bar--riesgo {
        background: linear-gradient(90deg, #f0f4f8 0%, #C02840 100%) !important;
    }

    .mapa-escala-ticks {
        display: flex !important;
        justify-content: space-between !important;
        font-size: 6pt !important;
        color: #536175 !important;
        font-weight: 700 !important;
        margin-top: .8mm !important;
    }

    /* Modal del mapa: ocultar en impresión */
    .mapa-modal { display: none !important; }

}
