/* ===== light.css ===== */
/* =========================================
   LIGHT.CSS
   Version clara de la interfaz base.
   ========================================= */

body.light{
    --bg:#f2f7fa;
    --bg-2:#eff5f8;
    --bg-3:#ebf2f6;
    --bg-4:#e8eff4;
    --panel:rgba(235,245,251,.80);
    --panel-2:rgba(228,240,248,.70);
    --panel-3:rgba(220,235,245,.65);
    --stroke:rgba(6,53,122,.16);
    --stroke-strong:rgba(6,53,122,.30);
    --text:#051633;
    --text-soft:#1e3a5f;
    --text-muted:#4a6880;
    --ui-line:rgba(6,53,122,.18);
    --shadow-1:0 8px 22px rgba(6,53,122,.10);
    --shadow-2:0 14px 32px rgba(6,53,122,.14);
    --shadow-3:0 24px 56px rgba(6,53,122,.18);
    background:linear-gradient(180deg, #f3f8fb, #f0f6fa 45%, #ebf3f7);
    color:var(--text);
}

body.light::before{
    content:"";
    position:fixed;
    inset:0;
    z-index:-1;
    pointer-events:none;
    background:
        radial-gradient(1000px 540px at 12% -5%, rgba(25,130,180,.30), transparent 72%),
        radial-gradient(860px 520px at 88% 6%, rgba(10,79,179,.22), transparent 72%),
        radial-gradient(760px 460px at 70% 96%, rgba(0,100,140,.18), transparent 72%);
}

body.light .sidebar{ background:linear-gradient(180deg, #f0f6fa, #edf3f8); border-right:1px solid rgba(6,53,122,.20); }
body.light .brand{ background:linear-gradient(135deg, rgba(6,53,122,.14), rgba(25,130,180,.08), rgba(25,130,180,.10)); border-color:rgba(6,53,122,.18); }
body.light .brand-logo{ background:url('../images/favicon.png') no-repeat center; background-size:contain; }
body.light .topbar{ background:rgba(220,236,246,.90); border-bottom:1px solid rgba(6,53,122,.18); }
body.light .topbar.is-scrolled{ background:rgba(210,230,242,.96); border-bottom-color:rgba(6,53,122,.28); }

body.light .panel,
body.light .ui-card,
body.light .module-card,
body.light .filter-card,
body.light .calendar-card,
body.light .ui-table-card,
body.light .metric-card{
    background:var(--panel);
    border-color:var(--stroke);
    box-shadow:var(--shadow-1);
}

body.light .ui-card-soft,
body.light .ui-card-flat,
body.light .ui-record-card,
body.light .ui-hidden-columns{
    background:var(--panel-2);
    border-color:var(--stroke);
    box-shadow:none;
}

body.light .ui-card > .ui-card-head:first-child,
body.light .module-card > .module-card-head:first-child,
body.light .filter-card > .ui-card-head:first-child,
body.light .calendar-card > .ui-card-head:first-child,
body.light .ui-module-head{
    background:linear-gradient(180deg, rgba(13,72,130,.10), rgba(13,72,130,.06));
    border-bottom-color:rgba(6,53,122,.10);
}

body.light .ui-title,
body.light .module-title,
body.light .ui-module-title,
body.light .ui-record-title,
body.light .page-heading h1{ color:var(--text); }

body.light .ui-subtitle,
body.light .module-subtitle,
body.light .ui-module-subtitle,
body.light .ui-kicker,
body.light .module-kicker,
body.light .ui-hidden-help,
body.light .ui-hidden-status{ color:var(--text-soft); }

body.light .btn,
body.light .icon-btn,
body.light .profile-btn,
body.light .theme-switch-ui,
body.light .sidebar-login-btn{
    background:#e4e8ed;
    border-color:rgba(20,30,60,.08);
    color:var(--text);
    box-shadow:none;
}
body.light .btn:hover,
body.light .icon-btn:hover,
body.light .profile-btn:hover{ background:#dce2e8; border-color:rgba(20,30,60,.12); }
body.light .btn.primary,
body.light .btn.btn-primary{ color:#ecf3f7; background:linear-gradient(135deg, var(--brand-pink), var(--brand-purple)); border-color:transparent; }
body.light .btn.ghost,
body.light .btn.btn-ghost{ background:transparent; }
body.light .btn.btn-danger{ background:rgba(184,107,75,.12); border-color:rgba(184,107,75,.22); }

body.light input,
body.light select,
body.light textarea,
body.light .textarea-lg,
body.light .ui-search{
    background:#f0f7fa;
    border-color:rgba(6,53,122,.13);
    color:var(--text);
}
body.light input:focus,
body.light select:focus,
body.light textarea:focus,
body.light .ui-search:focus{
    background:#ecf3f7;
    border-color:rgba(25,170,219,.62);
    box-shadow:0 0 0 3px rgba(25,170,219,.14);
}
body.light input::placeholder,
body.light textarea::placeholder{ color:#7891ae; }

body.light .data-table thead th,
body.light .ui-table thead th{ border-bottom-color:rgba(20,30,60,.08); color:#506a8a; }
body.light .data-table tbody td,
body.light .ui-table tbody td{ border-bottom-color:rgba(20,30,60,.06); color:var(--text-soft); }
body.light .data-table tbody tr:hover td,
body.light .ui-table tbody tr:hover td,
body.light .table-row:hover{ background:rgba(20,30,60,.03); }
body.light .table-empty{ background:rgba(20,30,60,.02); }
body.light .ui-table-scroll,
body.light .table-wrap{ background:#f0f7fa; border-color:rgba(6,53,122,.11); scrollbar-color:rgba(6,53,122,.42) rgba(20,30,60,.08); }

body.light .ui-topbar,
body.light .ui-switch,
body.light .ui-view-switch{
    background:rgba(13,72,130,.10);
    border-color:rgba(6,53,122,.13);
}

body.light .ui-switch button,
body.light .ui-switch label,
body.light .ui-switch .ui-switch-item,
body.light .ui-view-switch button,
body.light .ui-view-switch .ui-switch-item{
    color:#506a8a;
    background:rgba(218,236,246,.55);
    border-color:rgba(6,53,122,.10);
}
body.light .ui-switch .is-active,
body.light .ui-switch input:checked + span,
body.light .ui-view-switch .is-active,
body.light .ui-view-switch input:checked + span{ color:#ecf3f7; }

body.light .ui-status-pill,
body.light .ui-color-button,
body.light .ui-map-tag,
body.light .ui-tab{
    color:#ecf3f7;
    box-shadow:none;
}
body.light .ui-status-pill.is-muted,
body.light .ui-color-button.is-muted,
body.light .ui-map-tag.is-muted{ color:var(--text); }

body.light .ui-calendar-weekday,
body.light .calendar-weekdays span{
    background:#f0f7fa;
    border-color:rgba(6,53,122,.10);
    color:#506a8a;
}
body.light .ui-day,
body.light .calendar-day{
    background:linear-gradient(180deg, #f2f8fb, #edf5f9);
    border-color:rgba(6,53,122,.13);
    color:var(--text);
}
body.light .ui-day.is-muted,
body.light .calendar-day.is-muted{ opacity:.55; }
body.light .ui-day.is-today,
body.light .calendar-day.is-today{
    background:linear-gradient(180deg, #f2f8fb, #edf5f8);
    border-color:rgba(225,29,116,.42);
}
body.light .ui-day-name,
body.light .calendar-dow{ color:#7891ae; }
body.light .ui-event,
body.light .calendar-task{
    color:#ecf3f7;
    box-shadow:none;
}

body.light .status-pill,
body.light .badge-success,
body.light .badge-warning,
body.light .badge-info,
body.light .badge-review,
body.light .badge-muted,
body.light .badge-danger{
    font-weight:700;
    box-shadow:none;
}
body.light .badge-success{ color:#006b5d; background:#dff8f4; border-color:#8bdace; }
body.light .badge-warning{ color:#7a5600; background:#f0e0a8; border-color:#ebc366; }
body.light .badge-info{ color:#0a4fb3; background:#dff5ff; border-color:#9eddf2; }
body.light .badge-review{ color:#0a4fb3; background:#edf7fc; border-color:#b8d8e8; }
body.light .badge-muted{ color:#556070; background:#e6ebf1; border-color:#c6d0db; }
body.light .badge-danger{ color:#9b1111; background:#ffe2e2; border-color:#ffb4b4; }

body.light .ui-empty,
body.light .empty-state{
    background:#f0f7fa;
    border-color:rgba(6,53,122,.10);
    color:var(--text-soft);
}

/* =========================================================
   LIGHT POLISH - contraste, componentes y modales
   ========================================================= */
body.light{
    --bg:#f0f6fa;
    --bg-2:#edf3f8;
    --bg-3:#eaf0f7;
    --panel:rgba(232,243,250,.78);
    --panel-2:rgba(225,238,247,.70);
    --panel-3:rgba(218,233,244,.65);
    --stroke:rgba(13,72,130,.22);
    --stroke-strong:rgba(13,72,130,.36);
    --ui-line:rgba(13,72,130,.22);
    --ui-line-strong:rgba(13,72,130,.38);
    --text:#071a36;
    --text-soft:#1e3a5f;
    --text-muted:#3d5f80;
    --shadow-1:0 10px 24px rgba(15,76,129,.12);
    --shadow-2:0 18px 40px rgba(15,76,129,.16);
    --shadow-3:0 28px 70px rgba(15,76,129,.22);
    background:
        radial-gradient(900px 520px at 14% -8%, rgba(25,130,180,.28), transparent 70%),
        radial-gradient(780px 480px at 92% 8%, rgba(10,79,179,.20), transparent 72%),
        linear-gradient(180deg, #c4d8e8 0%, #f0f6fa 44%, #a8c0d4 100%);
}

body.light::before{
    background:
        radial-gradient(900px 520px at 12% -8%, rgba(25,130,180,.26), transparent 72%),
        radial-gradient(760px 480px at 92% 6%, rgba(10,79,179,.18), transparent 72%),
        radial-gradient(700px 440px at 70% 96%, rgba(0,100,140,.14), transparent 72%);
}

body.light .page-wrap,
body.light .site-main,
body.light .content-area{
    color:var(--text);
}

body.light .panel,
body.light .ui-card,
body.light .module-card,
body.light .filter-card,
body.light .calendar-card,
body.light .ui-table-card,
body.light .metric-card,
body.light .modal,
body.light .ui-modal{
    background:rgba(230,242,250,.80);
    border-color:rgba(13,72,130,.20);
    box-shadow:var(--shadow-1);
    backdrop-filter:blur(14px);
}

body.light .ui-card-soft,
body.light .ui-card-flat,
body.light .ui-record-card,
body.light .ui-hidden-columns,
body.light .ui-empty,
body.light .empty-state{
    background:rgba(222,236,246,.72);
    border-color:rgba(13,72,130,.18);
    color:var(--text-soft);
}

body.light .theme-showcase-hero{
    background:
        radial-gradient(520px 180px at 8% 0%, rgba(25,170,219,.16), transparent 72%),
        linear-gradient(135deg, rgba(195,215,230,.90), rgba(185,210,228,.84));
    border-color:rgba(13,72,130,.16);
    box-shadow:var(--shadow-2);
}

body.light .ui-card > .ui-card-head:first-child,
body.light .module-card > .module-card-head:first-child,
body.light .filter-card > .ui-card-head:first-child,
body.light .calendar-card > .ui-card-head:first-child,
body.light .ui-module-head,
body.light .modal-head,
body.light .ui-modal-head{
    background:linear-gradient(180deg, rgba(228,241,249,.94), rgba(218,234,244,.72));
    border-bottom-color:rgba(13,72,130,.14);
}

body.light .ui-module-title,
body.light .module-title,
body.light .ui-title,
body.light .page-heading h1,
body.light .modal-title,
body.light .ui-modal-title,
body.light .ui-record-title,
body.light .ui-table td strong{
    color:var(--text);
}

body.light .ui-module-subtitle,
body.light .module-subtitle,
body.light .ui-subtitle,
body.light .modal-subtitle,
body.light .ui-modal-subtitle,
body.light .ui-record-meta,
body.light .ui-record-card small,
body.light .ui-help{
    color:var(--text-soft);
}

body.light .ui-topbar,
body.light .ui-switch,
body.light .ui-view-switch{
    background:rgba(224,238,248,.86);
    border-color:rgba(13,72,130,.18);
    box-shadow:inset 0 1px 0 rgba(190,212,228,.80), 0 8px 18px rgba(15,76,129,.06);
}

body.light .ui-tab,
body.light .ui-switch button,
body.light .ui-switch label,
body.light .ui-switch .ui-switch-item,
body.light .ui-view-switch button,
body.light .ui-view-switch .ui-switch-item{
    color:#436080;
    background:rgba(195,216,230,.72);
    border-color:rgba(13,72,130,.13);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.70);
}

body.light .ui-tab:hover,
body.light .ui-tab.is-active,
body.light .ui-switch .is-active,
body.light .ui-switch input:checked + span,
body.light .ui-view-switch .is-active,
body.light .ui-view-switch input:checked + span{
    color:#ecf3f7;
    border-color:color-mix(in srgb, var(--switch-color, var(--tab-color, var(--ui-blue))) 62%, transparent);
    background:linear-gradient(135deg, color-mix(in srgb, var(--switch-color, var(--tab-color, var(--ui-blue))) 88%, #0b4a82), color-mix(in srgb, var(--switch-color, var(--tab-color, var(--ui-blue))) 62%, #ffffff));
    box-shadow:0 8px 16px color-mix(in srgb, var(--switch-color, var(--tab-color, var(--ui-blue))) 18%, transparent), inset 0 1px 0 rgba(255,255,255,.20);
}

body.light .ui-switch button:before,
body.light .ui-switch label:before,
body.light .ui-switch .ui-switch-item:before{
    border-color:color-mix(in srgb, var(--switch-color) 72%, #5f7898);
    background:rgba(195,216,230,.65);
}

body.light .ui-view-switch button:before,
body.light .ui-view-switch .ui-switch-item:before{
    display:none;
}

body.light input,
body.light select,
body.light textarea,
body.light .textarea-lg,
body.light .ui-search{
    background:#f7fafc;
    border-color:rgba(13,72,130,.18);
    color:var(--text);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.78);
}
body.light input:hover,
body.light select:hover,
body.light textarea:hover,
body.light .ui-search:hover{
    border-color:rgba(13,72,130,.26);
}
body.light input:focus,
body.light select:focus,
body.light textarea:focus,
body.light .ui-search:focus{
    background:#ecf3f7;
    border-color:rgba(25,170,219,.72);
    box-shadow:0 0 0 4px rgba(25,170,219,.15), inset 0 1px 0 rgba(255,255,255,.85);
}
body.light input::placeholder,
body.light textarea::placeholder{
    color:#7d93ad;
}

body.light .btn,
body.light .icon-btn,
body.light .profile-btn,
body.light .theme-switch-ui,
body.light .sidebar-login-btn{
    background:#eef6fb;
    border-color:rgba(13,72,130,.14);
    color:var(--text);
}
body.light .btn:hover,
body.light .icon-btn:hover,
body.light .profile-btn:hover{
    background:#eaf3fa;
    border-color:rgba(13,72,130,.22);
}
body.light .btn.primary,
body.light .btn.btn-primary{
    color:#ecf3f7;
    background:linear-gradient(135deg, #0a76d6, #19aadb);
    box-shadow:0 10px 22px rgba(25,122,210,.20);
}

body.light .ui-status-pill,
body.light .ui-color-button,
body.light .ui-map-tag{
    color:#ecf3f7;
    border-color:color-mix(in srgb, var(--status-color, var(--btn-color, var(--tag-color, var(--ui-blue)))) 54%, rgba(13,72,130,.14));
    background:linear-gradient(135deg, color-mix(in srgb, var(--status-color, var(--btn-color, var(--tag-color, var(--ui-blue)))) 82%, #0b4a82), color-mix(in srgb, var(--status-color, var(--btn-color, var(--tag-color, var(--ui-blue)))) 58%, #fff));
    box-shadow:0 6px 14px color-mix(in srgb, var(--status-color, var(--btn-color, var(--tag-color, var(--ui-blue)))) 14%, transparent);
}
body.light .ui-status-pill.is-muted,
body.light .ui-color-button.is-muted,
body.light .ui-map-tag.is-muted{
    color:#ecf3f7;
    background:linear-gradient(135deg, #64748b, #94a3b8);
}

body.light .ui-indicator{
    background:linear-gradient(135deg, color-mix(in srgb, var(--indicator) 14%, #ffffff), #eef5f9 76%);
    border-color:color-mix(in srgb, var(--indicator) 42%, rgba(13,72,130,.12));
    box-shadow:inset 4px 0 0 color-mix(in srgb, var(--indicator) 82%, transparent), var(--shadow-1);
}

body.light .ui-table-card{
    background:rgba(255,255,255,.84);
    border-color:rgba(13,72,130,.16);
}
body.light .ui-table-card .ui-table-scroll,
body.light .ui-table-scroll,
body.light .table-wrap{
    background:#f7fafc;
    border-color:rgba(13,72,130,.14);
}
body.light .ui-table,
body.light .data-table{
    color:var(--text-soft);
}
body.light .ui-table th,
body.light .data-table thead th{
    color:#526d8d;
    border-bottom-color:rgba(13,72,130,.12);
}
body.light .ui-table td,
body.light .data-table tbody td{
    color:var(--text-soft);
    border-bottom-color:rgba(13,72,130,.09);
}
body.light .ui-table tr:hover td,
body.light .data-table tbody tr:hover td{
    background:rgba(25,170,219,.055);
}

body.light .ui-hidden-columns{
    background:rgba(247,251,255,.90);
    border-color:rgba(13,72,130,.18);
}
body.light .ui-hidden-title{
    color:#2a466a;
}
body.light .ui-hidden-help,
body.light .ui-hidden-status{
    color:#617b9b;
}

body.light .calendar-weekdays span,
body.light .ui-calendar-weekday{
    background:rgba(247,251,255,.92);
    border-color:rgba(13,72,130,.14);
    color:#5c7697;
}
body.light .calendar-day,
body.light .ui-day{
    background:linear-gradient(180deg, #ffffff, #f4f9fd);
    border-color:rgba(13,72,130,.15);
    color:var(--text);
}
body.light .calendar-day:hover,
body.light .ui-day:hover{
    border-color:rgba(25,170,219,.38);
    box-shadow:0 10px 20px rgba(15,76,129,.08);
}
body.light .calendar-day.is-today,
body.light .ui-day.is-today{
    background:linear-gradient(180deg, #f2f8fb, #edf5f9);
    border-color:rgba(225,29,116,.46);
}
body.light .calendar-day header strong,
body.light .ui-day-number{
    color:var(--text);
}
body.light .calendar-dow,
body.light .ui-day-name{
    color:#7187a4;
}
body.light .calendar-task,
body.light .ui-event{
    color:#ecf3f7;
    border-color:color-mix(in srgb, var(--event, var(--event-color, var(--ui-blue))) 58%, transparent);
    background:linear-gradient(135deg, color-mix(in srgb, var(--event, var(--event-color, var(--ui-blue))) 80%, #0b4a82), color-mix(in srgb, var(--event, var(--event-color, var(--ui-blue))) 56%, #fff));
    box-shadow:0 8px 16px color-mix(in srgb, var(--event, var(--event-color, var(--ui-blue))) 14%, transparent);
}

body.light .modal-shell,
body.light .ui-modal-shell,
body.light .modal-content,
body.light .ui-modal-content{
    background:rgba(195,215,230,.90);
    border-color:rgba(13,72,130,.16);
    box-shadow:var(--shadow-3);
}
body.light .modal-body,
body.light .ui-modal-body{
    background:linear-gradient(180deg, rgba(255,255,255,.78), rgba(244,250,255,.72));
}
body.light .modal-close,
body.light .ui-modal-close{
    background:#eef6fb;
    color:var(--text);
    border-color:rgba(13,72,130,.16);
}

body.light .sidebar{
    background:linear-gradient(180deg, #f8fbfe, #e8f1f8);
    border-right-color:rgba(13,72,130,.14);
}
body.light .topbar{
    background:rgba(247,251,255,.90);
    border-bottom-color:rgba(13,72,130,.12);
    box-shadow:0 6px 18px rgba(15,76,129,.05);
}
body.light .sidebar a,
body.light .menu-item a{
    color:#2e496b;
}
body.light .sidebar a:hover,
body.light .menu-item a:hover,
body.light .menu-item.current-menu-item a{
    color:#071a36;
    background:rgba(25,170,219,.10);
}

@media(max-width:720px){
    body.light .panel,
    body.light .ui-card,
    body.light .module-card,
    body.light .calendar-card,
    body.light .ui-table-card{
        box-shadow:0 8px 20px rgba(15,76,129,.07);
    }
}

/* =========================================================
   Light: switches, estado transparente y cards
   ========================================================= */

/* Evita esquinas blancas visibles cuando el header usa margen negativo */
body.light .ui-card,
body.light .module-card,
body.light .filter-card,
body.light .calendar-card,
body.light .ui-table-card,
body.light .metric-card{
    overflow:hidden;
    background:rgba(255,255,255,.76);
}

body.light .ui-card > .ui-card-head:first-child,
body.light .module-card > .module-card-head:first-child,
body.light .filter-card > .ui-card-head:first-child,
body.light .calendar-card > .ui-card-head:first-child,
body.light .ui-module-head{
    border-radius:inherit;
    border-bottom-left-radius:0;
    border-bottom-right-radius:0;
}

/* Switches cuadrados, consistentes con Bloques / Lista / Calendario */
body.light .ui-switch,
body.light .ui-view-switch{
    border-radius:14px;
    padding:4px;
    gap:4px;
}
body.light .ui-switch button,
body.light .ui-switch label,
body.light .ui-switch .ui-switch-item,
body.light .ui-view-switch button,
body.light .ui-view-switch .ui-switch-item{
    min-height:34px;
    border-radius:10px;
    padding:0 12px;
    background:rgba(255,255,255,.68);
}
body.light .ui-switch.is-gender button,
body.light .ui-switch.is-gender label,
body.light .ui-switch.is-gender .ui-switch-item,
body.light .ui-switch.is-yesno button,
body.light .ui-switch.is-yesno label,
body.light .ui-switch.is-yesno .ui-switch-item{
    border-radius:10px;
}

/* Estado: transparente; solo borde, punto y texto con color */
body.light .ui-status-pill{
    color:color-mix(in srgb, var(--status-color, var(--ui-blue)) 68%, #143452);
    background:color-mix(in srgb, var(--status-color, var(--ui-blue)) 8%, transparent);
    border-color:color-mix(in srgb, var(--status-color, var(--ui-blue)) 48%, rgba(13,72,130,.16));
    box-shadow:none;
}
body.light .ui-status-pill.is-muted{
    color:#53677f;
    background:rgba(100,116,139,.08);
    border-color:rgba(100,116,139,.28);
}

/* Los botones de color y etiquetas de mapa conservan relleno; no se vuelven estado */
body.light .ui-color-button,
body.light .ui-map-tag{
    color:#ecf3f7;
    border-color:color-mix(in srgb, var(--btn-color, var(--tag-color, var(--ui-blue))) 54%, rgba(13,72,130,.14));
    background:linear-gradient(135deg, color-mix(in srgb, var(--btn-color, var(--tag-color, var(--ui-blue))) 82%, #0b4a82), color-mix(in srgb, var(--btn-color, var(--tag-color, var(--ui-blue))) 58%, #fff));
    box-shadow:0 6px 14px color-mix(in srgb, var(--btn-color, var(--tag-color, var(--ui-blue))) 14%, transparent);
}

/* =========================================================
   Light: secciones redondeadas, calendario suave y modales flexibles
   ========================================================= */
body.light .ui-section,
body.light .ui-card,
body.light .module-card,
body.light .filter-card,
body.light .calendar-card,
body.light .ui-table-card,
body.light .metric-card{
    border-radius:22px;
    overflow:hidden;
    background:rgba(255,255,255,.62);
    border-color:rgba(32,92,142,.14);
}

body.light .ui-card > .ui-card-head:first-child,
body.light .ui-section > .ui-card-head:first-child,
body.light .module-card > .module-card-head:first-child,
body.light .calendar-card > .ui-card-head:first-child{
    margin:0;
    border-radius:0;
    background:linear-gradient(180deg, rgba(218,240,252,.82), rgba(238,247,252,.58));
    border-bottom:1px solid rgba(32,92,142,.13);
}

body.light .ui-calendar,
body.light .calendar-grid{
    border-radius:16px;
}

body.light .ui-day,
body.light .calendar-day{
    border-radius:10px;
    background:rgba(255,255,255,.46);
    border-color:rgba(32,92,142,.14);
}

body.light .ui-day:hover,
body.light .calendar-day:hover{
    background:rgba(255,255,255,.66);
}

body.light .calendar-task,
body.light .ui-event{
    color:#123352;
    border-color:color-mix(in srgb, var(--event, var(--event-color, var(--ui-blue))) 54%, rgba(32,92,142,.12));
    background:linear-gradient(135deg, color-mix(in srgb, var(--event, var(--event-color, var(--ui-blue))) 20%, #ffffff), color-mix(in srgb, var(--event, var(--event-color, var(--ui-blue))) 10%, #ffffff));
    box-shadow:0 8px 16px color-mix(in srgb, var(--event, var(--event-color, var(--ui-blue))) 10%, transparent);
}

body.light .calendar-task span,
body.light .calendar-task-meta,
body.light .ui-event small{
    color:#123352;
    background:color-mix(in srgb, var(--event, var(--event-color, var(--ui-blue))) 16%, rgba(195,216,230,.72));
}

body.light .ui-modal,
body.light .modal-card{
    max-height:calc(100dvh - 44px);
    overflow:hidden;
}

body.light .ui-modal-body,
body.light .modal-body{
    overflow:auto;
}

body.light .ui-modal label,
body.light .modal-card label,
body.light .ui-modal-label{
    margin-right:10px;
}

/* =========================================================
   Light: secciones/head estándar, calendario legible
   ========================================================= */
body.light .ui-card,
body.light .module-card,
body.light .filter-card,
body.light .calendar-card,
body.light .ui-table-card,
body.light .panel{
    border-radius:22px;
    overflow:hidden;
    background:rgba(190,212,228,.80);
    border:1px solid rgba(13,72,130,.15);
    box-shadow:0 10px 24px rgba(15,76,129,.07);
}

body.light .ui-card > .ui-card-head:first-child,
body.light .module-card > .module-card-head:first-child,
body.light .filter-card > .ui-card-head:first-child,
body.light .calendar-card > .ui-card-head:first-child,
body.light .ui-table-card > .ui-card-head:first-child,
body.light .panel > .panel-head:first-child{
    margin:-20px -20px 18px;
    padding:18px 20px;
    border-radius:22px 22px 0 0;
    border-bottom:1px solid rgba(13,72,130,.16);
    background:linear-gradient(180deg, rgba(223,242,252,.94), rgba(239,248,253,.76));
}

body.light .ui-card-head.is-plain,
body.light .module-card-head.is-plain{
    margin:0 0 16px;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
}

body.light .calendar-card{
    padding:20px;
}

body.light .calendar-card > .ui-card-head:first-child{
    margin:-20px -20px 18px;
}

body.light .ui-calendar-toolbar{
    margin-left:auto;
}

body.light .ui-calendar-nav{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:4px;
    border-radius:14px;
    border:1px solid rgba(13,72,130,.16);
    background:rgba(247,251,255,.82);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.9);
}

body.light .ui-calendar-nav button,
body.light .ui-calendar-nav a,
body.light button.ui-calendar-nav,
body.light a.ui-calendar-nav{
    min-width:44px;
    min-height:34px;
    padding:0 12px;
    border-radius:10px;
    border:1px solid rgba(13,72,130,.16);
    background:rgba(255,255,255,.75);
    color:#47617f;
    font-weight:950;
    line-height:1;
    text-decoration:none;
    opacity:1;
}

body.light .ui-calendar-nav .is-current,
body.light button.ui-calendar-nav.is-current,
body.light a.ui-calendar-nav.is-current{
    color:#ecf3f7;
    background:linear-gradient(135deg, #2c93dc, #63bee8);
    border-color:rgba(25,122,210,.28);
    box-shadow:0 8px 16px rgba(25,122,210,.16);
}

body.light .ui-calendar-weekday,
body.light .calendar-weekdays span{
    border-radius:9px;
    background:rgba(247,251,255,.88);
    border-color:rgba(13,72,130,.16);
    color:#4f6a8c;
}

body.light .ui-calendar,
body.light .calendar-grid{
    border-radius:16px;
    overflow:hidden;
}

body.light .ui-day,
body.light .calendar-day{
    border-radius:10px;
    background:rgba(255,255,255,.58);
    border-color:rgba(13,72,130,.14);
}

body.light .ui-day.is-muted,
body.light .calendar-day.is-muted{
    opacity:1;
    background:rgba(255,255,255,.34);
}

body.light .ui-day.is-muted .ui-day-number,
body.light .calendar-day.is-muted header strong{
    color:#93a5ba;
}

body.light .ui-day-number,
body.light .calendar-day header strong{
    color:#0b1e3a;
}

body.light .ui-day-name,
body.light .calendar-dow{
    color:#5f7694;
}

body.light .ui-event,
body.light .calendar-task{
    color:#123352;
    background:linear-gradient(135deg, color-mix(in srgb, var(--event, var(--event-color, var(--ui-blue))) 18%, #ffffff), color-mix(in srgb, var(--event, var(--event-color, var(--ui-blue))) 8%, #ffffff));
    border-color:color-mix(in srgb, var(--event, var(--event-color, var(--ui-blue))) 55%, rgba(13,72,130,.13));
    box-shadow:0 8px 16px color-mix(in srgb, var(--event, var(--event-color, var(--ui-blue))) 10%, transparent);
}

body.light .ui-event b,
body.light .calendar-task b{
    color:#123352;
}

body.light .ui-event small,
body.light .calendar-task span,
body.light .calendar-task-meta{
    color:#123352;
    background:color-mix(in srgb, var(--event, var(--event-color, var(--ui-blue))) 14%, rgba(195,216,230,.72));
}

body.light .ui-record-card{
    background:rgba(218,236,246,.55);
    border-color:rgba(13,72,130,.15);
}

body.light .ui-record-grid{
    color:#2c4a70;
}

body.light .ui-record-grid span{
    color:#2c4a70;
}

body.light .ui-record-grid span:empty,
body.light .ui-record-grid .is-muted{
    color:#738aa6;
}

/* Light: la tabla dentro de la sección no es una card */
body.light .ui-table-card .ui-module-body .ui-table-scroll{
    background:transparent;
    border:0;
}
body.light .ui-table-card .ui-module-body .ui-table{
    background:transparent;
}

/* =========================================================
   Light: unificación visual clara
   ========================================================= */
body.light .ui-table-card{
    background:rgba(195,216,230,.72);
    border-color:rgba(13,72,130,.16);
    box-shadow:0 12px 30px rgba(15,76,129,.08);
}

body.light .ui-module-head{
    background:linear-gradient(180deg, rgba(255,255,255,.78), rgba(239,247,253,.58));
    border-bottom-color:rgba(13,72,130,.14);
}

body.light .ui-module-body{
    background:transparent;
}

body.light .ui-table-filters,
body.light .ui-hidden-columns{
    background:rgba(218,232,242,.70);
    border-color:rgba(13,72,130,.15);
}

body.light .ui-table-filters .ui-field input,
body.light .ui-table-filters .ui-field select,
body.light .ui-div-table select{
    background:#ffffff;
    border-color:rgba(13,72,130,.16);
    color:var(--text);
}

body.light .ui-hidden-title,
body.light .ui-div-table .ui-div-cell strong{
    color:var(--text);
}

body.light .ui-hidden-help,
body.light .ui-div-table .ui-div-cell,
body.light .ui-record-grid,
body.light .ui-record-grid span{
    color:var(--text-soft);
}

body.light .ui-div-table .ui-div-row{
    border-bottom-color:rgba(13,72,130,.12);
}

body.light .ui-div-table .ui-div-tbody .ui-div-row:hover{
    background:rgba(13,72,130,.035);
}

body.light .ui-module-body .ui-card,
body.light .ui-module-body .ui-content-card,
body.light .ui-record-card{
    background:rgba(255,255,255,.66);
    border-color:rgba(13,72,130,.15);
    box-shadow:none;
}

body.light .ui-module-body .ui-card > .ui-card-head:first-child,
body.light .ui-module-body .module-card > .module-card-head:first-child,
body.light .ui-card-inline-head{
    background:transparent;
    border-bottom-color:rgba(13,72,130,.13);
}

body.light .ui-calendar-weekday,
body.light .calendar-weekdays span{
    background:rgba(255,255,255,.70);
    border-color:rgba(13,72,130,.14);
    color:#5f7694;
}

body.light .ui-day,
body.light .calendar-day{
    background:linear-gradient(180deg, rgba(190,212,228,.80), rgba(241,248,253,.78));
    border-color:rgba(13,72,130,.15);
    border-radius:10px;
    box-shadow:none;
}

body.light .ui-day:hover,
body.light .calendar-day:hover{
    background:linear-gradient(180deg, #f2f8fb, #edf5f9);
    border-color:rgba(13,72,130,.24);
}

body.light .ui-day.is-muted,
body.light .calendar-day.is-muted{
    opacity:1;
    background:rgba(255,255,255,.48);
}

body.light .ui-day.is-today,
body.light .calendar-day.is-today{
    background:linear-gradient(180deg, #fff6fb, #f5f8ff);
    border-color:rgba(225,29,116,.38);
}

/* =========================================================
   LIGHT - Indicadores cromáticos y calendario
   ========================================================= */

/* Indicadores y botones por color
   Usan las variables reales del theme:
   - --tag para .ui-map-tag
   - --btn-color para .ui-color-button
   Mantienen identidad cromática, pero en light no deben ser sólidos.
*/
body.light .ui-map-tag{
    color:color-mix(in srgb, var(--tag, var(--ui-blue)) 66%, #143452);
    background:color-mix(in srgb, var(--tag, var(--ui-blue)) 12%, rgba(255,255,255,.86));
    border-color:color-mix(in srgb, var(--tag, var(--ui-blue)) 34%, rgba(13,72,130,.14));
    box-shadow:none;
}

body.light .ui-map-tag::before{
    background:var(--tag, var(--ui-blue));
    border:2px solid rgba(255,255,255,.74);
    box-shadow:0 0 0 1px color-mix(in srgb, var(--tag, var(--ui-blue)) 30%, transparent);
}

body.light .ui-map-tag.is-muted{
    --tag:#64748b;
    color:#53677f;
    background:rgba(100,116,139,.10);
    border-color:rgba(100,116,139,.22);
}

body.light .ui-color-button{
    color:#ecf3f7;
    background:linear-gradient(
        135deg,
        color-mix(in srgb, var(--btn-color, var(--ui-blue)) 88%, #0b4a82),
        color-mix(in srgb, var(--btn-color, var(--ui-blue)) 58%, #ffffff)
    );
    border-color:color-mix(in srgb, var(--btn-color, var(--ui-blue)) 56%, rgba(13,72,130,.14));
    box-shadow:0 6px 14px color-mix(in srgb, var(--btn-color, var(--ui-blue)) 16%, transparent);
}

body.light .ui-color-button::before{
    background:var(--btn-color, var(--ui-blue));
    border:2px solid rgba(255,255,255,.74);
    box-shadow:0 0 0 1px color-mix(in srgb, var(--btn-color, var(--ui-blue)) 30%, transparent);
}

body.light .ui-color-button:hover{
    color:#ecf3f7;
    background:linear-gradient(
        135deg,
        color-mix(in srgb, var(--btn-color, var(--ui-blue)) 94%, #0b4a82),
        color-mix(in srgb, var(--btn-color, var(--ui-blue)) 64%, #ffffff)
    );
    border-color:color-mix(in srgb, var(--btn-color, var(--ui-blue)) 64%, rgba(13,72,130,.16));
}

body.light .ui-map-tag:hover{
    background:color-mix(in srgb, var(--tag, var(--ui-blue)) 18%, rgba(255,255,255,.92));
    border-color:color-mix(in srgb, var(--tag, var(--ui-blue)) 44%, rgba(13,72,130,.16));
}
/* Calendario light
   La grilla no recorta las celdas extremas.
   Las fechas conservan contraste en días normales y muted.
*/
body.light .ui-calendar,
body.light .calendar-grid{
    gap:6px;
    padding:2px;
    overflow:visible;
    border-radius:0;
}

body.light .ui-calendar-weekdays,
body.light .calendar-weekdays{
    gap:6px;
    padding:2px;
    overflow:visible;
    border-radius:0;
}

body.light .ui-calendar-weekday,
body.light .calendar-weekdays span{
    border-radius:12px;
    background:rgba(195,216,230,.72);
    border-color:rgba(13,72,130,.14);
    color:#5f7694;
}

body.light .ui-day,
body.light .calendar-day{
    position:relative;
    overflow:hidden;
    clip-path:none;
    box-sizing:border-box;
    border-radius:12px;
    color:var(--text);
    background:linear-gradient(180deg, rgba(255,255,255,.86), rgba(241,248,253,.80));
    border-color:rgba(13,72,130,.16);
    box-shadow:none;
}

body.light .ui-day:hover,
body.light .calendar-day:hover{
    background:linear-gradient(180deg, #ffffff, #eef7fd);
    border-color:rgba(25,122,210,.30);
}

body.light .ui-day.is-muted,
body.light .calendar-day.is-muted{
    opacity:1;
    background:linear-gradient(180deg, rgba(255,255,255,.60), rgba(238,246,251,.58));
}

body.light .ui-day-head,
body.light .calendar-day header{
    color:var(--text);
    opacity:1;
}

body.light .ui-day-head span,
body.light .calendar-day header strong,
body.light .ui-day-number{
    color:var(--text);
    opacity:1;
    text-shadow:none;
}

body.light .ui-day.is-muted .ui-day-head,
body.light .calendar-day.is-muted header,
body.light .ui-day.is-muted .ui-day-head span,
body.light .calendar-day.is-muted header strong,
body.light .ui-day.is-muted .ui-day-number,
body.light .calendar-day.is-muted .ui-day-number{
    color:#6f849f;
    opacity:1;
}

body.light .ui-day.is-today,
body.light .calendar-day.is-today{
    background:linear-gradient(180deg, #f2f8fb, #edf5f8);
    border-color:rgba(225,29,116,.48);
    box-shadow:inset 0 0 0 1px rgba(225,29,116,.14);
}

body.light .ui-day-name,
body.light .calendar-dow{
    color:#5f7694;
}

@media (max-width:900px){
    body.light .ui-calendar,
    body.light .calendar-grid{
        overflow:auto;
        padding:2px 2px 8px;
    }

    body.light .ui-calendar-weekdays,
    body.light .calendar-weekdays{
        padding:2px;
    }
}

/* Sección oficial: Light mode del switch unico */
body.light .ui-switch label{
    background:transparent;
    border:0;
    box-shadow:none;
}
body.light .ui-switch label > span{
    color:#51627a;
    border-color:rgba(15,23,42,.10);
    background:rgba(195,216,230,.65);
}
body.light .ui-switch input:checked + span,
body.light .ui-switch label > span.is-active,
body.light .ui-switch.is-inactive label > .is-no,
body.light .ui-switch[data-state="inactive"] label > .is-no,
body.light .ui-switch[data-state="inactiva"] label > .is-no{
    color:#ecf3f7;
    border-color:color-mix(in srgb, var(--switch-color) 70%, transparent);
    background:linear-gradient(135deg, color-mix(in srgb, var(--switch-color) 82%, #0b1730), color-mix(in srgb, var(--switch-color) 42%, transparent));
    box-shadow:0 0 0 4px color-mix(in srgb, var(--switch-color) 16%, transparent);
}


/* Sección oficial: Light: switch binario solo responde al input checked */
body.light .ui-switch.is-inactive label > .is-no,
body.light .ui-switch[data-state="inactive"] label > .is-no,
body.light .ui-switch[data-state="inactiva"] label > .is-no,
body.light .ui-switch .js-status-switch-proxy:checked + span{
    color:#51627a;
    border-color:rgba(15,23,42,.10);
    background:rgba(195,216,230,.65);
    box-shadow:none;
}
body.light .ui-switch label > input:checked + span{
    color:#ecf3f7;
    border-color:color-mix(in srgb, var(--switch-color) 70%, transparent);
    background:linear-gradient(135deg, color-mix(in srgb, var(--switch-color) 82%, #0b1730), color-mix(in srgb, var(--switch-color) 42%, transparent));
    box-shadow:0 0 0 4px color-mix(in srgb, var(--switch-color) 16%, transparent);
}


/* =========================================================
   Sección oficial: Light mode para estados y botones oficiales
   ========================================================= */
body.light .status-pill,
body.light .ui-status-pill{
    color:color-mix(in srgb, var(--status-color) 74%, #243047);
    background:color-mix(in srgb, var(--status-color) 12%, #ffffff);
    border-color:color-mix(in srgb, var(--status-color) 42%, rgba(148,163,184,.38));
}
body.light .status-pill::before,
body.light .ui-status-pill::before{content:none !important;display:none !important;}
body.light .ui-map-tag,
body.light .ui-color-button{
    color:#ecf3f7;
    border-color:color-mix(in srgb, var(--tag-color, var(--btn-color)) 68%, transparent);
}
body.light .ui-color-button.is-all{
    color:#223047;
    border-color:rgba(71,85,105,.34);
    background:linear-gradient(135deg, #ffffff, #e8eef7);
}
body.light .ui-color-button.is-all:hover,
body.light .ui-color-button.is-all.is-active,
body.light .ui-color-button.is-all[aria-selected="true"]{
    color:#111827;
    border-color:rgba(71,85,105,.56);
    background:linear-gradient(135deg, #ffffff, #dbe6f4);
}


/* =========================================================
   Sección oficial: Light mode para radio-colores y checkbox oficiales
   ========================================================= */
body.light .ui-map-tag{
    color:#fff !important;
    background:linear-gradient(135deg, color-mix(in srgb, var(--tag-color) 80%, #ffffff), color-mix(in srgb, var(--tag-color) 48%, #f8fafc)) !important;
    border-color:color-mix(in srgb, var(--tag-color) 62%, rgba(71,85,105,.22)) !important;
}
body.light .ui-color-button{
    color:#fff !important;
    background:linear-gradient(135deg, color-mix(in srgb, var(--btn-color) 78%, #ffffff), color-mix(in srgb, var(--btn-color) 48%, #f8fafc)) !important;
    border-color:color-mix(in srgb, var(--btn-color) 58%, rgba(71,85,105,.22)) !important;
}
body.light .ui-color-button.is-all{
    color:#334155 !important;
    border-color:rgba(100,116,139,.42) !important;
    background:linear-gradient(135deg, #ffffff, #eef4fb) !important;
}
body.light .ui-color-button.is-muted,
body.light .ui-color-button.is-gray,
body.light .ui-color-button.is-no-group,
body.light .ui-color-button.is-sin-grupo{
    color:#fff !important;
}
body.light .ui-check-pill,
body.light .ui-role-check{color:var(--text) !important;}
body.light .ui-check-pill span::before,
body.light .ui-role-check span::before{
    background:linear-gradient(135deg, color-mix(in srgb, var(--check-color) 22%, #ffffff), #ffffff) !important;
    border-color:color-mix(in srgb, var(--check-color) 54%, rgba(100,116,139,.26)) !important;
}
body.light .ui-check-pill input:checked + span::before,
body.light .ui-role-check input:checked + span::before{
    background:linear-gradient(135deg, color-mix(in srgb, var(--check-color) 88%, #ffffff), color-mix(in srgb, var(--check-color) 58%, #ffffff)) !important;
    border-color:color-mix(in srgb, var(--check-color) 74%, #475569) !important;
}


/* =========================================================
   Sección oficial: Light mode consistente
   ========================================================= */

body.light .ui-color-button{
    color:color-mix(in srgb, var(--btn-color) 72%, #334155) !important;
    background:color-mix(in srgb, var(--btn-color) 12%, #ffffff) !important;
    border-color:color-mix(in srgb, var(--btn-color) 46%, rgba(100,116,139,.20)) !important;
    box-shadow:none !important;
}
body.light .ui-color-button:hover{
    color:color-mix(in srgb, var(--btn-color) 82%, #0f172a) !important;
    background:color-mix(in srgb, var(--btn-color) 20%, #ffffff) !important;
}
body.light .ui-color-button.is-active,
body.light .ui-color-button[aria-pressed="true"],
body.light .ui-color-button[aria-selected="true"]{
    color:#fff !important;
    background:linear-gradient(135deg, color-mix(in srgb, var(--btn-color) 86%, #ffffff), color-mix(in srgb, var(--btn-color) 56%, #ffffff)) !important;
    box-shadow:0 0 0 3px color-mix(in srgb, var(--btn-color) 18%, transparent), 0 12px 24px color-mix(in srgb, var(--btn-color) 16%, transparent) !important;
}
body.light .ui-color-button.is-all{
    color:#334155 !important;
    background:#eef5f9 !important;
    border-color:rgba(100,116,139,.38) !important;
}
body.light .ui-color-button.is-all.is-active,
body.light .ui-color-button.is-all[aria-pressed="true"],
body.light .ui-color-button.is-all[aria-selected="true"]{
    color:#0f172a !important;
    background:linear-gradient(135deg,#ffffff,#e2e8f0) !important;
}
body.light .ui-map-tag{color:#fff !important;}
body.light .ui-indicator{
    background:linear-gradient(135deg, color-mix(in srgb, var(--indicator-color) 17%, #ffffff), #ffffff 60%, color-mix(in srgb, var(--indicator-color) 7%, #f8fafc)) !important;
    border-color:color-mix(in srgb, var(--indicator-color) 44%, rgba(13,72,130,.12)) !important;
    box-shadow:inset 3px 0 0 color-mix(in srgb, var(--indicator-color) 72%, transparent), 0 10px 22px rgba(15,23,42,.06) !important;
}
body.light .ui-indicator-title{color:color-mix(in srgb, var(--indicator-color) 72%, #0f172a) !important;}
body.light .ui-indicator-value{color:#172033 !important;}
body.light .ui-check-pill,
body.light .ui-role-check,
body.light .usuarios-role-checks .ui-check-pill,
body.light .ui-check-demo .ui-check-pill{color:#334155 !important;}
body.light .ui-check-pill input:checked + span,
body.light .ui-role-check input:checked + span,
body.light .usuarios-role-checks .ui-check-pill input:checked + span,
body.light .ui-check-demo .ui-check-pill input:checked + span{color:#0f172a !important;}

/* Light: ajustes visuales */
body.light .nav-link.active{
    color:#0b3f72;
    background:linear-gradient(135deg, rgba(186,230,253,.78), rgba(219,234,254,.70));
    border-color:rgba(14,165,233,.38);
    box-shadow:inset 4px 0 0 rgba(14,165,233,.76), 0 12px 22px rgba(15,76,129,.10);
}
body.light .sidebar-logout-card{
    background:rgba(218,236,246,.55);
    border-color:rgba(13,72,130,.14);
}
body.light .sidebar-logout-card:hover{
    background:rgba(224,242,254,.78);
    border-color:rgba(14,165,233,.36);
}
body.light .logout-btn{
    color:#991b1b;
    background:linear-gradient(135deg, rgba(254,226,226,.95), rgba(255,241,242,.86));
    border-color:rgba(239,68,68,.28);
}
body.light .logout-btn:hover{
    color:#7f1d1d;
    background:linear-gradient(135deg, rgba(254,202,202,.98), rgba(254,226,226,.94));
    border-color:rgba(220,38,38,.40);
    box-shadow:0 10px 20px rgba(127,29,29,.14);
}
body.light .theme-switch-ui{
    background:linear-gradient(135deg, #cbd5e1, #94a3b8);
    border-color:rgba(51,65,85,.28);
    box-shadow:inset 0 1px 3px rgba(15,23,42,.18);
}
body.light .theme-switch-ball{
    background:linear-gradient(135deg, #0f172a, #334155);
    box-shadow:0 4px 10px rgba(15,23,42,.30);
}
/* Light: ajustes visuales finales */
body.light .censo-module,
body.light .usuarios-module,
body.light .iglesias-module{
    background:transparent !important;
    border-color:transparent !important;
    box-shadow:none !important;
    backdrop-filter:none !important;
    overflow:visible !important;
}
body.light .censo-module > .ui-kpi-grid,
body.light .usuarios-module > .ui-kpi-grid,
body.light .iglesias-module > .ui-kpi-grid{
    background:transparent !important;
    box-shadow:none !important;
}

/* Fase 6: tablas en modo claro con el mismo criterio visual global. */
body.light .ui-div-table{
    --ui-table-line:rgba(13,72,130,.12);
    --ui-table-hover:rgba(13,72,130,.035);
}
body.light .ui-div-table .ui-div-cell-empty,
body.light .data-table-div .data-cell-empty,
body.light .table-empty{
    background:rgba(20,30,60,.02);
    border-color:rgba(13,72,130,.14);
    color:var(--text-soft);
}
@media(max-width:940px){
    body.light .ui-div-table .ui-div-tbody .ui-div-row,
    body.light .data-table-div .data-table-body .data-row,
    body.light .data-table tbody tr{
        background:rgba(195,216,230,.72);
        border-color:rgba(13,72,130,.13);
    }
}

/* =========================================================
   Fase 7: Light/Dark profundo - normalización de módulos
   ========================================================= */
body.light{
    --muted:var(--text-muted);
    --muted-text:var(--text-muted);
    --text-primary:var(--text);
    --surface:rgba(190,212,228,.80);
    --surface-1:rgba(255,255,255,.76);
    --surface-2:rgba(222,236,246,.76);
    --border:var(--stroke);
    --border-color:var(--stroke);
    --input-bg:#eef5f9;
    --accent:var(--cielo);
    --cyan-1:var(--cielo);
}

body.light .hogar-card,
body.light .hogares-detail-grid article,
body.light .hogares-person-line,
body.light .hogares-member-item,
body.light .hogares-person-result,
body.light .direccion-card,
body.light .direcciones-mapa,
body.light .direcciones-pin-mapa,
body.light .configuracion-item,
body.light .censo-form-section,
body.light .censo-participacion-section .censo-catalog-box,
body.light .programas-template-col,
body.light .programas-editor-col,
body.light .programas-calendar-col,
body.light .programas-culto-selected,
body.light .programas-culto-action-card,
body.light .programas-mini-item,
body.light .programas-config-types,
body.light .programas-config-masters,
body.light .programas-config-order,
body.light .programas-empty.compact,
body.light .programas-welcome{
    background:rgba(195,216,230,.72)!important;
    border-color:rgba(13,72,130,.15)!important;
    color:var(--text)!important;
    box-shadow:none;
}

body.light .hogares-edit-tabs,
body.light .censo-tabs,
body.light .programas-source-switch label,
body.light .programas-mini-order button,
body.light .programas-edit-close,
body.light .programas-block-compact .programas-mini-order button,
body.light .programas-block-compact .programas-mini-delete{
    background:rgba(220,234,244,.74)!important;
    border-color:rgba(13,72,130,.15)!important;
    color:var(--text-soft)!important;
}

body.light .hogares-edit-tabs .ui-tab.is-active,
body.light .censo-tabs .ui-tab.is-active,
body.light .programas-source-switch label:has(input:checked),
body.light .programas-culto-tabs .btn-primary.is-active,
body.light .programas-culto-tabs .is-active,
body.light .programas-config-type.is-active{
    color:#fff!important;
    border-color:rgba(25,170,219,.48)!important;
    background:linear-gradient(135deg,#0a76d6,#19aadb)!important;
    box-shadow:0 8px 18px rgba(25,122,210,.16)!important;
}

body.light .configuracion-panel-head p,
body.light .configuracion-item-main small,
body.light .configuracion-empty,
body.light .censo-section-kicker,
body.light .censo-section-help,
body.light .censo-full-form .ui-tag-select:empty::before,
body.light .programas-template-help,
body.light .programas-editor-note,
body.light .programas-config-note,
body.light .programas-mini-content small,
body.light .programas-block-compact .programas-mini-content small,
body.light .programas-culto-info small,
body.light .programas-culto-main .ui-kicker,
body.light .programas-culto-main p{
    color:var(--text-muted)!important;
}

body.light .configuracion-panel-head h3,
body.light .censo-section-head h3,
body.light .censo-catalog-box > label,
body.light .programas-col-head h3,
body.light .programas-mini-content strong,
body.light .programas-block-compact .programas-mini-content strong,
body.light .programas-edit-title,
body.light .programas-culto-main h3,
body.light .programas-culto-info strong,
body.light .programas-config-order-head h3,
body.light .programas-program-block,
body.light .programas-program-detail{
    color:var(--text)!important;
}

body.light .censo-modal-footer,
body.light .programas-summary-wrap,
body.light .programas-program-table{
    background:rgba(195,216,230,.72)!important;
    border-color:rgba(13,72,130,.14)!important;
}
body.light .programas-program-table .data-row{
    background:rgba(255,255,255,.54)!important;
    border-bottom-color:rgba(13,72,130,.10)!important;
}
body.light .programas-program-table .data-row:nth-child(even){
    background:rgba(220,234,244,.74)!important;
}
body.light .programas-program-num{
    color:var(--text-muted)!important;
}

body.light .programas-block-edit input,
body.light .programas-block-edit select,
body.light .programas-edit-card input[type="text"],
body.light .programas-edit-card input[type="search"],
body.light .programas-edit-card select{
    background:#eef5f9!important;
    border-color:rgba(13,72,130,.18)!important;
    color:var(--text)!important;
}
body.light .programas-search-results{
    background:#eef5f9!important;
    border-color:rgba(13,72,130,.18)!important;
    box-shadow:var(--shadow-2)!important;
}
body.light .programas-search-results button{
    color:var(--text)!important;
}
body.light .programas-search-results button:hover{
    background:rgba(25,170,219,.08)!important;
}

body.light .programas-mini-delete,
body.light .programas-block-compact .programas-mini-delete,
body.light .programas-order-block button{
    color:#991b1b!important;
    border-color:rgba(239,68,68,.26)!important;
    background:rgba(254,226,226,.72)!important;
}

body.light .programas-master-block,
body.light .programas-order-block{
    color:#172033!important;
    border-color:color-mix(in srgb,currentColor 18%,rgba(13,72,130,.12))!important;
}
body.light .programas-master-block.is-alabanza,
body.light .programas-order-block.is-alabanza{background:rgba(14,165,233,.13)!important;border-color:rgba(14,165,233,.30)!important;}
body.light .programas-master-block.is-oracion,
body.light .programas-order-block.is-oracion{background:rgba(139,92,246,.13)!important;border-color:rgba(139,92,246,.30)!important;}
body.light .programas-master-block.is-ofrenda,
body.light .programas-order-block.is-ofrenda{background:rgba(245,158,11,.14)!important;border-color:rgba(245,158,11,.32)!important;}
body.light .programas-master-block.is-tema,
body.light .programas-order-block.is-tema{background:rgba(34,197,94,.12)!important;border-color:rgba(34,197,94,.30)!important;}
body.light .programas-master-block.is-aviso,
body.light .programas-order-block.is-aviso{background:rgba(244,63,94,.11)!important;border-color:rgba(244,63,94,.28)!important;}
body.light .programas-master-block.is-musica,
body.light .programas-order-block.is-musica{background:rgba(6,182,212,.12)!important;border-color:rgba(6,182,212,.30)!important;}
body.light .programas-master-block.is-bienvenida,
body.light .programas-order-block.is-bienvenida{background:rgba(236,72,153,.10)!important;border-color:rgba(236,72,153,.28)!important;}
body.light .programas-master-block.is-lectura,
body.light .programas-order-block.is-lectura{background:rgba(99,102,241,.12)!important;border-color:rgba(99,102,241,.30)!important;}
body.light .programas-master-block.is-otro,
body.light .programas-order-block.is-otro{background:rgba(100,116,139,.11)!important;border-color:rgba(100,116,139,.24)!important;}

body.light .direccion-marker,
body.light .direccion-pin,
body.light .direccion-cluster,
body.light .direccion-templo-marker{
    border-color:rgba(255,255,255,.92)!important;
    box-shadow:0 8px 18px rgba(15,76,129,.14),0 0 0 5px color-mix(in srgb,var(--direccion-color,#64748b) 14%,transparent)!important;
}
body.light .ui-map-tag.is-group-sin{
    background:rgba(100,116,139,.10)!important;
    border-color:rgba(100,116,139,.24)!important;
    color:#53677f!important;
}

body.light .aniversarios-mini-section,
body.light .aniversario-event-card,
body.light .aniversario-modal-item,
body.light .actividades-block,
body.light .actividades-day .ui-event{
    border-color:rgba(13,72,130,.15);
    box-shadow:none;
}

body.light .field-error,
body.light .alert-danger,
body.light .theme-alert-danger{
    color:#991b1b;
}
body.light .alert-success,
body.light .theme-alert-success{color:#006b5d;background:#dff8f4;border-color:#8bdace;}
body.light .alert-warning,
body.light .theme-alert-warning{color:#7a5600;background:#f0e0a8;border-color:#ebc366;}
body.light .alert-danger,
body.light .theme-alert-danger{color:#9b1111;background:#ffe2e2;border-color:#ffb4b4;}
body.light .alert-info{color:#075985;background:#e0f2fe;border-color:#7dd3fc;}

/* Componentes genericos de analitica/datos (extraidos inicialmente de Dashboard).
   Usar estas clases en nuevos modulos; los alias dashboard-* preservan compatibilidad visual. */
.ui-colored-event-list{display:flex;grid-template-columns:none;gap:6px;pointer-events:none;align-items:stretch}
.ui-colored-event-list.is-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.ui-colored-event{pointer-events:auto;width:100%;max-width:none;min-height:48px;height:auto;align-self:stretch;padding:8px 9px;border-radius:12px;gap:6px;justify-content:space-between;border-color:color-mix(in srgb,var(--event) 46%,transparent);background:linear-gradient(135deg,color-mix(in srgb,var(--event) 16%,rgba(18,31,55,.94)),rgba(255,255,255,.035));box-shadow:inset 3px 0 0 color-mix(in srgb,var(--event) 82%,#fff 6%);color:var(--text)}
.ui-colored-event:hover{background:linear-gradient(135deg,color-mix(in srgb,var(--event) 21%,rgba(18,31,55,.96)),rgba(255,255,255,.05))}
.ui-colored-event b{color:var(--text);font-size:11px;line-height:1.12;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ui-colored-event small{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;gap:4px;margin-top:0;padding:0;background:transparent;color:var(--text-soft);line-height:1.1}
.ui-colored-event-chip{display:inline-flex;align-items:center;min-height:17px;padding:2px 6px;border-radius:999px;background:color-mix(in srgb,var(--event) 16%,rgba(255,255,255,.09));color:var(--text);font-size:9px;font-weight:950;line-height:1}
.ui-colored-event-owner{display:inline-flex;align-items:center;min-height:17px;color:var(--text-soft);font-size:9px;font-weight:900;line-height:1}
body.light .ui-colored-event{background:linear-gradient(135deg,color-mix(in srgb,var(--event) 12%,#fff),#f8fbff);color:#10243d}
body.light .ui-colored-event b{color:#10243d}
body.light .ui-colored-event-chip{color:#10243d;background:color-mix(in srgb,var(--event) 12%,#fff)}
body.light .ui-colored-event-owner{color:#52647c}
.ui-table-col-actions{display:flex;align-items:center;justify-content:flex-end}
.ui-table-row-empty{display:block}
.ui-table-row-empty .ui-div-cell-empty{padding:18px 0}
.ui-modal-check-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px 18px;margin-top:14px}
.ui-modal-check-grid fieldset{border:0;margin:0;padding:0;display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:0}
.ui-modal-check-grid legend{display:block;width:100%;margin:18px 0 8px;padding-top:6px;color:var(--text-soft);font-size:12px;font-weight:900}
.ui-modal-footer-split{justify-content:space-between}
.ui-modal-footer-left,.ui-modal-footer-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
@media(max-width:900px){.ui-section-head{grid-template-columns:1fr;align-items:flex-start}.ui-head-actions{width:100%;justify-content:space-between}.ui-head-actions .ui-search-icon-wrap{min-width:0;flex:1}.ui-colored-event-list.is-grid{display:flex;grid-template-columns:none}}
@media(max-width:760px){.ui-head-actions{align-items:stretch;flex-direction:column}.ui-head-actions .btn{width:100%;justify-content:center}.ui-view-card .ui-module-body{padding:14px}.ui-modal-check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ui-modal-footer-split{align-items:stretch;flex-direction:column}.ui-modal-footer-left,.ui-modal-footer-right{justify-content:flex-end}}
@media(max-width:520px){.ui-modal-check-grid{grid-template-columns:1fr}}


/* =========================================================
   Gestion Iglesia - patrones reutilizables para módulos
   ========================================================= */
/* El body de cada sección conserva el padding global; no debe pegarse al borde del panel. */
.ui-module-body{
    display:flex;
    flex-direction:column;
    gap:14px;
    min-width:0;
    padding:var(--table-pad-y,16px) var(--table-pad-x,22px) var(--table-pad-x,22px);
}
.ui-panel[hidden],.ui-tab-pane[hidden]{display:none!important;}
.ui-calendar-layout{display:grid;grid-template-columns:var(--ui-calendar-col,430px) minmax(0,1fr);gap:22px;padding:22px 24px;align-items:start;}
.ui-calendar-col,.ui-workspace{min-width:0;padding:0;}
.ui-calendar-col{border:1px solid var(--border-color,rgba(148,163,184,.22));border-radius:22px;background:rgba(15,23,42,.20);padding:16px;}
.ui-workspace-card{border:1px dashed var(--border-color,rgba(148,163,184,.22));border-radius:18px;padding:20px;background:rgba(255,255,255,.03);}
.ui-action-list{display:grid;gap:10px;}
.ui-action-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;border:1px solid var(--border-color,rgba(148,163,184,.22));border-radius:14px;padding:10px;background:rgba(255,255,255,.04);}
.ui-action-row span{display:block;font-size:12px;opacity:.72;margin-top:2px;}
.ui-tabs-scroll{margin:0 20px 18px;display:flex;gap:8px;flex-wrap:wrap;}
.ui-tabs-scroll .ui-color-button:disabled{opacity:.45;cursor:not-allowed;}
.ui-capture-card{box-shadow:var(--shadow-1);}
.ui-capture-card .ui-table-scroll{margin:0 var(--table-pad-x,20px) var(--table-pad-y,20px);overflow-x:auto;border-radius:16px;}
.ui-capture-table{width:100%;min-width:0;}
.ui-capture-table .ui-div-row{align-items:center;min-height:38px;}
.ui-capture-table input,.table-input{width:100%;min-height:38px;border:1px solid var(--ui-line,var(--stroke));border-radius:12px;background:rgba(255,255,255,.04);color:var(--text);padding:7px 10px;outline:none;}
.ui-capture-table input:focus,.table-input:focus{border-color:var(--stroke-strong);box-shadow:0 0 0 3px rgba(25,170,219,.12);}
body.light .ui-capture-table input,body.light .table-input{background:#ecf3f7;border-color:rgba(20,30,60,.10);color:var(--text);}
.ui-choice-pills{display:flex;gap:8px;flex-wrap:wrap;}
.ui-choice-pills .ui-tag-option{cursor:pointer;position:relative;}
.ui-choice-pills .ui-tag-option input{position:absolute;opacity:0;pointer-events:none;}
.ui-choice-pills .ui-tag-option span{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:6px 10px;border:1px solid var(--border-color,rgba(148,163,184,.22));border-radius:999px;background:rgba(255,255,255,.035);color:var(--text-soft);font-size:12px;font-weight:800;transition:border-color .18s ease,background .18s ease,color .18s ease;}
.ui-choice-pills .ui-tag-option input:checked+span{border-color:var(--accent,rgba(25,170,219,.85));background:rgba(25,170,219,.16);color:var(--text);}
.ui-choice-pills .ui-tag-option.is-readonly{cursor:default;}
.ui-choice-pills .ui-tag-option.is-readonly span{opacity:.9;}
.ui-choice-pills .ui-tag-option.is-readonly input:not(:checked)+span{opacity:.45;}
body.light .ui-choice-pills .ui-tag-option span{background:rgba(20,30,60,.035);}
.ui-bars{height:210px;display:flex;align-items:end;gap:10px;padding:12px 4px 0;}
.ui-bar-item{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:6px;min-width:38px;}
.ui-bar{display:block;width:26px;min-height:8px;border-radius:10px 10px 4px 4px;background:linear-gradient(180deg,rgba(25,170,219,.85),rgba(25,170,219,.35));}
.ui-bar-item span:first-child{font-size:12px;font-weight:800;}
.ui-bar-item small{font-size:11px;color:var(--text-muted);white-space:nowrap;}
@media(max-width:1100px){.ui-calendar-layout{grid-template-columns:1fr;}.ui-calendar-col{max-width:460px;}}
@media(max-width:980px){.ui-bars{overflow-x:auto;justify-content:flex-start;}.ui-bar-item{min-width:42px;}}
@media(max-width:640px){.ui-calendar-layout{padding:16px;gap:16px;}.ui-calendar-col{padding:12px;}.ui-action-row{grid-template-columns:1fr;}.ui-action-row>div:last-child{justify-content:flex-start;}.ui-tabs-scroll{margin-left:12px;margin-right:12px;}}

/* Lookup/autocomplete reutilizable para busquedas con resultados flotantes. */
.ui-lookup{position:relative;isolation:isolate;z-index:8}
.ui-lookup:focus-within{z-index:40}
.ui-lookup-results{position:absolute;z-index:60;left:0;right:0;top:calc(1.35rem + 44px + .45rem);margin-top:0;padding:.45rem;border:1px solid var(--border);border-radius:16px;background:var(--card-bg,var(--card,var(--surface,#fff)));color:var(--text);box-shadow:0 18px 40px rgba(0,0,0,.28);display:grid;gap:.35rem;max-height:220px;overflow:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.18) transparent}
.ui-lookup-results[hidden]{display:none!important}
.ui-lookup-results::-webkit-scrollbar{width:6px}
.ui-lookup-results::-webkit-scrollbar-track{background:transparent}
.ui-lookup-results::-webkit-scrollbar-thumb{background:rgba(255,255,255,.18);border-radius:999px}
.ui-lookup-item{width:100%;text-align:left;border:1px solid transparent;background:var(--surface,rgba(255,255,255,.06));color:var(--text);padding:.7rem .85rem;border-radius:12px;cursor:pointer;display:grid;gap:3px}
.ui-lookup-item:hover,.ui-lookup-item:focus{background:var(--surface-2,rgba(14,165,233,.14));border-color:var(--primary-soft,rgba(14,165,233,.28));outline:0}
.ui-lookup-item strong{font-weight:800;color:var(--text)}
.ui-lookup-item small,.ui-lookup-results .ui-empty-state{color:var(--text-soft)}
body.light .ui-lookup-results{background:#ecf3f7;border-color:rgba(6,53,122,.18);box-shadow:0 18px 42px rgba(6,53,122,.18);scrollbar-color:rgba(6,53,122,.42) transparent}
body.light .ui-lookup-results::-webkit-scrollbar-thumb{background:rgba(6,53,122,.42)}
body.light .ui-lookup-item,body.light .ui-lookup-results .ui-empty-state{background:#f0f7fa;color:var(--text)}
body.light .ui-lookup-item:hover,body.light .ui-lookup-item:focus{background:#eef6ff}
@media(max-width:768px){.ui-lookup-results{top:calc(1.35rem + 42px + .45rem);max-height:210px}}

/* =========================================================
   Gestion Iglesia - patrones centralizados Censo/Hogares/Direcciones
   ========================================================= */
.ui-help{margin:8px 0 0;color:var(--text-muted);font-size:12px;}
.ui-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px;padding:4px;width:max-content;max-width:100%;border:1px solid rgba(25,170,219,.24);border-radius:14px;background:rgba(255,255,255,.04);}
.ui-tabs .ui-tab{border:1px solid transparent;border-radius:10px;background:transparent;color:var(--text-soft);min-height:34px;padding:8px 14px;font-weight:950;font-size:13px;cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease;}
.ui-tabs .ui-tab:hover{color:var(--text);border-color:rgba(25,170,219,.26);background:rgba(25,170,219,.10);}
.ui-tabs .ui-tab.is-active{color:#ecf3f7;border-color:rgba(25,170,219,.80);background:linear-gradient(135deg,#1976d2,#18b7df);box-shadow:0 0 0 3px rgba(25,170,219,.16);}
.ui-tab-panel{display:none;}.ui-tab-panel.is-active{display:block;}
.ui-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:18px;}
.ui-record-card{display:flex;flex-direction:column;gap:10px;min-height:184px;padding:14px;border:1px solid var(--stroke);border-radius:18px;background:rgba(255,255,255,.025);}
.ui-record-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.ui-record-card h3{margin:0;color:var(--text);font-size:18px;font-weight:950;letter-spacing:-.03em;}
.ui-record-card p{margin:0;color:var(--text-soft);font-size:13px;line-height:1.35;}
.ui-record-card-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:auto;}
.ui-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;}
.ui-detail-grid article{border:1px solid var(--stroke);border-radius:14px;background:rgba(255,255,255,.035);padding:12px;}
.ui-detail-grid span{display:block;margin-bottom:7px;color:var(--text-muted);font-size:11px;font-weight:950;letter-spacing:.08em;text-transform:uppercase;}
.ui-detail-grid strong{display:block;color:var(--text);font-size:14px;}
.ui-detail-section{margin-top:14px;}.ui-detail-section h3{margin:0 0 8px;color:var(--text);font-size:14px;font-weight:950;}
.ui-person-line{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:8px;padding:11px 12px;border:1px solid var(--stroke);border-radius:14px;background:rgba(255,255,255,.035);}
.ui-person-line strong{display:block;color:var(--text);font-size:14px;}.ui-person-line span{display:block;margin-top:2px;color:var(--text-soft);font-size:12px;}.ui-person-line b{color:var(--text-soft);font-size:12px;}
.ui-member-controls{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0;}
.ui-add-controls{display:flex;align-items:center;gap:8px;}.ui-add-controls select{min-height:34px;width:116px;border-radius:12px;}
.ui-pin,.direccion-pin,.direccion-marker{position:relative;display:inline-block;width:22px;height:22px;border:3px solid rgba(255,255,255,.96);border-radius:50% 50% 50% 0;background:var(--direccion-color,#334155);box-shadow:0 12px 28px rgba(15,23,42,.42),0 4px 12px rgba(15,23,42,.30),0 0 0 5px rgba(255,255,255,.20),0 0 0 9px color-mix(in srgb,var(--direccion-color,#334155) 18%,transparent);transform:rotate(-45deg);vertical-align:middle;}
.ui-pin::after,.direccion-pin::after,.direccion-marker::after{content:"";position:absolute;inset:5px;display:block;border-radius:999px;background:rgba(255,255,255,.98);opacity:.96;}
.direccion-pin{width:21px;height:21px;}.direccion-marker{--direccion-color:#64748b;}
.direccion-pin.is-group-1{--direccion-color:#1d4ed8}.direccion-pin.is-group-2{--direccion-color:#15803d}.direccion-pin.is-group-3{--direccion-color:#b45309}.direccion-pin.is-group-4{--direccion-color:#b91c1c}.direccion-pin.is-group-5{--direccion-color:#6d28d9}.direccion-pin.is-group-6{--direccion-color:#be185d}.direccion-pin.is-group-7{--direccion-color:#0e7490}.direccion-pin.is-group-sin{--direccion-color:#64748b}
.ui-indicator.is-group-1{--indicator-color:#19aadb}.ui-indicator.is-group-2{--indicator-color:#22c55e}.ui-indicator.is-group-3{--indicator-color:#f59e0b}.ui-indicator.is-group-4{--indicator-color:#ef4444}.ui-indicator.is-group-5{--indicator-color:#8b5cf6}.ui-indicator.is-group-6{--indicator-color:#ec4899}.ui-indicator.is-group-7{--indicator-color:#06b6d4}.ui-indicator.is-group-sin{--indicator-color:#64748b;}
@media(max-width:1180px){.ui-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:900px){.ui-tabs{width:100%;}.ui-tabs .ui-tab{flex:1;}}
@media(max-width:760px){.ui-card-grid,.ui-detail-grid{grid-template-columns:1fr;}.ui-person-line{align-items:flex-start;flex-direction:column;}.ui-member-controls,.ui-add-controls{justify-content:flex-start;flex-wrap:wrap;}}

/* GestionIglesia core - patrones reutilizables extraidos durante refactor de Programas */
.ui-action-group{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;}
.ui-inline-head{display:flex;align-items:center;justify-content:space-between;gap:16px;}
.ui-module-split{display:grid;gap:22px;align-items:start;}
.ui-empty-state{border:1px dashed var(--stroke,rgba(148,163,184,.22));border-radius:18px;background:rgba(255,255,255,.03);}
.ui-card-list{display:grid;gap:16px;}
.ui-compact-list{display:flex;flex-direction:column;gap:8px;}
.ui-compact-item{min-width:0;}
.ui-compact-item-main{min-width:0;}
.ui-order-controls{display:grid;gap:4px;}
.ui-inline-editor{display:grid;gap:10px;}
.ui-form-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.ui-form-grid{display:grid;gap:12px;}
.ui-choice-pills{display:flex;align-items:center;gap:7px;flex-wrap:wrap;}
.ui-floating-results{z-index:10060;}
.ui-config-grid{display:grid;gap:14px;align-items:start;}
@media(max-width:760px){.ui-action-group{align-items:stretch;flex-direction:column}.ui-action-group .btn{width:100%;justify-content:center}.ui-inline-head{align-items:flex-start;flex-direction:column}}

/* =========================================================
   Layout global: vista de calendario mini
   Usado por Asistencia, Programas y Bosquejos.
   No depende del CSS de ningun modulo.
   ========================================================= */
.ui-calendar-layout,
.programas-body-grid{
    display:grid;
    grid-template-columns:minmax(320px,430px) minmax(0,1fr);
    gap:22px;
    padding:22px 24px;
    align-items:start;
}

.ui-calendar-col,
.programas-calendar-col{
    min-width:0;
}

.ui-calendar-frame,
.programas-calendar-frame{
    position:sticky;
    top:16px;
    min-width:0;
    border:1px solid var(--border-color,rgba(148,163,184,.22));
    border-radius:22px;
    background:rgba(15,23,42,.20);
    padding:16px;
}

.ui-calendar-workspace,
.programas-workspace{
    min-width:0;
    padding:0;
}

/* =========================================================
   Calendario mini global
   Alias legacy .programas-* se conservan porque Asistencia,
   Programas y Bosquejos ya usan ese markup compartido.
   ========================================================= */
.app-calendar-shell,
.programas-month-shell{
    display:block;
    width:100%;
    max-width:100%;
    margin:0;
}

.app-calendar-nav,
.programas-month-nav,
.programas-month-nav.ui-calendar-toolbar{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    margin:0 0 18px;
    font-size:inherit;
}

.app-calendar-nav strong,
.programas-month-nav strong,
.programas-month-nav .ui-calendar-nav.is-current{
    min-width:170px;
    min-height:36px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 14px;
    border-radius:12px;
    text-align:center;
    text-transform:capitalize;
    color:#ecf3f7;
    font-size:16px;
    font-weight:900;
    line-height:1;
    letter-spacing:-.01em;
    background:linear-gradient(135deg,var(--blue-2,#2563eb),var(--cyan-1,#06b6d4));
    border:1px solid rgba(25,170,219,.55);
}

.app-calendar-arrow,
.programas-month-arrow,
.programas-month-nav .programas-month-arrow{
    width:38px;
    height:38px;
    min-width:38px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:12px;
    border:1px solid var(--ui-line,var(--stroke));
    background:rgba(255,255,255,.065);
    color:var(--text);
    text-decoration:none;
    font-size:22px;
    font-weight:900;
    line-height:1;
    transition:background var(--transition),border-color var(--transition),transform var(--transition);
}

.app-calendar-arrow:hover,
.programas-month-arrow:hover{
    transform:translateY(-1px);
    background:rgba(25,170,219,.14);
    border-color:rgba(25,170,219,.42);
}

.app-calendar-month,
.programas-month,
.programas-month-single{
    width:100%;
    max-width:100%;
    display:block;
    margin:0 auto;
    border:0;
    border-radius:0;
    background:transparent;
    padding:0;
    color:var(--text);
    font-weight:900;
}

.app-calendar-weekdays,
.app-calendar-days,
.programas-weekdays,
.programas-days{
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    gap:8px;
}

.app-calendar-weekdays,
.programas-weekdays{
    margin-bottom:8px;
}

.app-calendar-weekdays span,
.programas-weekdays span{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:26px;
    color:var(--text-muted,#9ca3af);
    font-size:13px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
    text-align:center;
}

.app-calendar-day,
.programas-day{
    position:relative;
    width:100%;
    min-width:0;
    min-height:42px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid var(--ui-line,var(--stroke));
    border-radius:13px;
    background:rgba(255,255,255,.055);
    color:var(--text);
    font-size:20px;
    font-weight:800;
    cursor:pointer;
    transition:background var(--transition),border-color var(--transition),box-shadow var(--transition),transform var(--transition),color var(--transition),opacity var(--transition);
}

.app-calendar-day span,
.programas-day span{
    font-size:inherit;
    line-height:1;
}

.app-calendar-day:hover,
.programas-day:hover{
    transform:translateY(-1px);
    background:rgba(255,255,255,.075);
    border-color:var(--stroke-strong);
}

.app-calendar-day.is-empty,
.programas-day.is-empty{
    visibility:hidden;
    pointer-events:none;
}

.app-calendar-day.has-cultos,
.programas-day.has-cultos{
    border-color:rgba(25,170,219,.88);
    background:rgba(255,255,255,.055);
    color:var(--text);
    box-shadow:inset 0 0 0 1px rgba(25,170,219,.18);
}

.app-calendar-day.has-cultos small,
.programas-day.has-cultos small{
    display:none!important;
}

.app-calendar-day.has-cultos.is-past-culto:not(.is-active):not(.is-selected),
.programas-day.has-cultos.is-past-culto:not(.is-active):not(.is-selected){
    background:rgba(14,165,233,.12);
    border-color:rgba(56,189,248,.32);
    color:color-mix(in srgb,var(--text) 78%,var(--text-muted));
    box-shadow:inset 0 0 0 1px rgba(25,170,219,.08);
}

.app-calendar-day.has-cultos.is-past-culto:not(.is-active):not(.is-selected) span,
.programas-day.has-cultos.is-past-culto:not(.is-active):not(.is-selected) span{
    opacity:.86;
}

.app-calendar-day.has-cultos.is-past-culto:not(.is-active):not(.is-selected):hover,
.programas-day.has-cultos.is-past-culto:not(.is-active):not(.is-selected):hover,
.app-calendar-day.has-cultos.is-past-culto:not(.is-active):not(.is-selected):focus-visible,
.programas-day.has-cultos.is-past-culto:not(.is-active):not(.is-selected):focus-visible{
    background:rgba(14,165,233,.18);
    border-color:rgba(56,189,248,.46);
    color:var(--text);
}

.app-calendar-day.is-active,
.app-calendar-day.is-selected,
.app-calendar-day.is-selected.has-cultos,
.programas-day.is-active,
.programas-day.is-selected,
.programas-day.is-selected.has-cultos{
    background:linear-gradient(135deg,var(--blue-2,#2563eb),var(--cyan-1,#06b6d4));
    color:#ecf3f7;
    border-color:rgba(25,170,219,.72);
    box-shadow:0 0 0 2px rgba(32,196,244,.72);
    outline:none;
}

body.light .ui-calendar-frame,
body.light .programas-calendar-frame{
    background:rgba(195,216,230,.72);
    border-color:rgba(20,30,60,.10);
}

body.light .app-calendar-day,
body.light .programas-day{
    background:#ecf3f7;
    border-color:rgba(20,30,60,.10);
    color:#10243d;
}

body.light .app-calendar-day.has-cultos,
body.light .programas-day.has-cultos{
    background:#ecf3f7;
    border-color:color-mix(in srgb,var(--ui-cyan) 55%,rgba(20,30,60,.12));
    color:#10243d;
}

body.light .app-calendar-day.has-cultos.is-past-culto:not(.is-active):not(.is-selected),
body.light .programas-day.has-cultos.is-past-culto:not(.is-active):not(.is-selected){
    background:color-mix(in srgb,var(--ui-cyan) 5%,#fff);
    border-color:color-mix(in srgb,var(--ui-cyan) 30%,rgba(20,30,60,.12));
    color:color-mix(in srgb,#10243d 72%,#7891ae);
}

@media(max-width:1100px){
    .ui-calendar-layout,
    .programas-body-grid{
        grid-template-columns:1fr;
        padding:18px;
    }
    .ui-calendar-frame,
    .programas-calendar-frame{
        position:relative;
        top:auto;
    }
}

@media(max-width:640px){
    .ui-calendar-layout,
    .programas-body-grid{
        padding:16px;
        gap:16px;
    }
    .ui-calendar-frame,
    .programas-calendar-frame{
        padding:14px;
        border-radius:20px;
    }
    .app-calendar-weekdays,
    .app-calendar-days,
    .programas-weekdays,
    .programas-days{
        gap:6px;
    }
    .app-calendar-day,
    .programas-day{
        min-height:40px;
        font-size:15px;
        border-radius:12px;
    }
}

/* ===== mini-calendar shared override from calendar.css ===== */
.ui-mini-calendar,
.ui-mini-calendar-shell,
.app-calendar-shell,
.programas-month-shell{width:100%;max-width:100%;margin:0;}
.ui-mini-calendar{display:block;}
.ui-mini-calendar-nav,.app-calendar-nav,.programas-month-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 16px;}
.ui-mini-calendar-current,.app-calendar-current,.programas-month-current,.programas-month-nav .ui-calendar-nav.is-current{min-width:0;flex:1 1 auto;display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:0 14px;border-radius:14px;border:1px solid rgba(25,170,219,.35);background:linear-gradient(135deg,rgba(25,170,219,.18),rgba(255,255,255,.045));color:#ecf3f7;font-size:14px;font-weight:900;line-height:1;text-align:center;text-transform:capitalize;}
.ui-mini-calendar-arrow,.app-calendar-arrow,.programas-month-arrow,.ui-mini-calendar-nav .ui-calendar-nav{flex:0 0 auto;width:36px;height:36px;min-width:36px;min-height:36px;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:12px;border:1px solid var(--ui-line,var(--stroke));background:rgba(255,255,255,.05);color:var(--text);text-decoration:none;font-size:20px;font-weight:900;line-height:1;}
.ui-mini-calendar-month,.app-calendar-month,.programas-month-single{width:100%;max-width:100%;margin:0;padding:0;border:0;border-radius:0;background:transparent;}
.ui-mini-calendar .programas-weekdays,.ui-mini-calendar .programas-days,.app-calendar-weekdays,.app-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;}
.ui-mini-calendar .programas-weekdays,.app-calendar-weekdays{margin-bottom:8px;}
.ui-mini-calendar .programas-weekdays span,.app-calendar-weekdays span{min-height:26px;color:var(--text-muted);font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;text-align:center;}
.ui-mini-calendar .programas-day,.app-calendar-day{position:relative;min-width:0;min-height:42px;display:flex;align-items:center;justify-content:center;border:1px solid var(--ui-line,var(--stroke));border-radius:13px;background:rgba(255,255,255,.045);color:var(--text);font-size:15px;font-weight:900;cursor:pointer;opacity:.58;transition:background var(--transition),border-color var(--transition),box-shadow var(--transition),transform var(--transition),opacity var(--transition);}
.ui-mini-calendar .programas-day:hover,.app-calendar-day:hover{transform:translateY(-1px);opacity:.82;background:rgba(255,255,255,.07);border-color:var(--stroke-strong);}
.ui-mini-calendar .programas-day.is-empty,.app-calendar-day.is-empty{visibility:hidden;pointer-events:none;}
.ui-mini-calendar .programas-day.has-cultos,.ui-mini-calendar .programas-day.has-reuniones,.app-calendar-day.has-cultos,.app-calendar-day.has-reuniones{opacity:1;color:#ecf3f7;border-color:rgba(25,170,219,.88);background:linear-gradient(135deg,rgba(25,170,219,.38),rgba(6,53,122,.74));box-shadow:inset 0 0 0 1px rgba(25,170,219,.18),0 8px 18px rgba(25,170,219,.12);}
.ui-mini-calendar .programas-day.is-past-culto,.ui-mini-calendar .programas-day.is-past-reunion,.app-calendar-day.is-past-culto,.app-calendar-day.is-past-reunion{opacity:.68;}
.ui-mini-calendar .programas-day.has-cultos small,.ui-mini-calendar .programas-day.has-reuniones small,.app-calendar-day.has-cultos small,.app-calendar-day.has-reuniones small{display:none !important;}
.ui-mini-calendar .programas-day.is-active,.ui-mini-calendar .programas-day.is-selected,.app-calendar-day.is-active,.app-calendar-day.is-selected{opacity:1;color:#ecf3f7;border-color:rgba(25,170,219,.98);background:linear-gradient(135deg,var(--blue-2,#2563eb),var(--cyan-1,#06b6d4));box-shadow:0 0 0 3px rgba(25,170,219,.18),0 10px 24px rgba(25,170,219,.20);outline:none;}
body.light .ui-mini-calendar-current,body.light .app-calendar-current,body.light .programas-month-current,body.light .programas-month-nav .ui-calendar-nav.is-current{color:#10243d;background:linear-gradient(135deg,color-mix(in srgb,var(--ui-cyan) 12%,#fff),#fff);border-color:color-mix(in srgb,var(--ui-cyan) 38%,rgba(20,30,60,.12));}
body.light .ui-mini-calendar .programas-day,body.light .app-calendar-day{background:#ecf3f7;border-color:rgba(20,30,60,.10);color:var(--text);}
body.light .ui-mini-calendar .programas-day.has-cultos,body.light .ui-mini-calendar .programas-day.has-reuniones,body.light .app-calendar-day.has-cultos,body.light .app-calendar-day.has-reuniones,body.light .ui-mini-calendar .programas-day.is-active,body.light .ui-mini-calendar .programas-day.is-selected,body.light .app-calendar-day.is-active,body.light .app-calendar-day.is-selected{color:#ecf3f7;border-color:color-mix(in srgb,var(--ui-cyan) 72%,rgba(20,30,60,.18));background:linear-gradient(135deg,var(--blue-2,#2563eb),var(--cyan-1,#06b6d4));}
@media(max-width:640px){.ui-mini-calendar-nav,.app-calendar-nav,.programas-month-nav{gap:8px;margin-bottom:14px;}.ui-mini-calendar-current,.app-calendar-current,.programas-month-current,.programas-month-nav .ui-calendar-nav.is-current{padding:0 10px;font-size:13px;}.ui-mini-calendar .programas-weekdays,.ui-mini-calendar .programas-days,.app-calendar-weekdays,.app-calendar-days{gap:6px;}.ui-mini-calendar .programas-day,.app-calendar-day{min-height:40px;border-radius:12px;font-size:14px;}}


/* Botón global de impresión */
.topbar-print-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:38px;
    padding:0 14px;
    border:1px solid var(--stroke);
    border-radius:999px;
    background:linear-gradient(135deg, rgba(25,170,219,.16), rgba(10,79,179,.12));
    color:var(--text);
    font-weight:850;
    font-size:13px;
    line-height:1;
    cursor:pointer;
}
.topbar-print-btn:hover{border-color:var(--stroke-strong);background:linear-gradient(135deg, rgba(25,170,219,.24), rgba(10,79,179,.18));}
body.light .topbar-print-btn{background:#ecf3f7;border-color:rgba(6,53,122,.12);color:var(--text);}
body.light .topbar-print-btn:hover{border-color:rgba(6,53,122,.24);background:#f1f6fa;}
@media(max-width:720px){.topbar-print-btn span:not(.icon-imprimir){display:none}.topbar-print-btn{width:38px;padding:0}}

/* Light: corrección de grupos activos en sidebar */
body.light .nav-group.has-active-child > .nav-group-toggle,
body.light .nav-group.is-open > .nav-group-toggle{
    color:#0b3f72 !important;
    background:linear-gradient(135deg, rgba(186,230,253,.78), rgba(219,234,254,.70)) !important;
    border-color:rgba(14,165,233,.38) !important;
    box-shadow:inset 4px 0 0 rgba(14,165,233,.76), 0 12px 22px rgba(15,76,129,.10) !important;
}
body.light .nav-group.has-active-child > .nav-group-toggle .nav-icon,
body.light .nav-group.has-active-child > .nav-group-toggle .nav-label,
body.light .nav-group.has-active-child > .nav-group-toggle .nav-caret,
body.light .nav-group.is-open > .nav-group-toggle .nav-icon,
body.light .nav-group.is-open > .nav-group-toggle .nav-label,
body.light .nav-group.is-open > .nav-group-toggle .nav-caret{
    color:#0b3f72 !important;
}
body.light .nav-group.has-active-child > .nav-group-toggle:hover,
body.light .nav-group.is-open > .nav-group-toggle:hover{
    color:#082f5f !important;
    background:linear-gradient(135deg, rgba(125,211,252,.82), rgba(191,219,254,.78)) !important;
    border-color:rgba(14,165,233,.48) !important;
}
body.light .nav-submenu{
    border-left-color:rgba(14,165,233,.22) !important;
}
body.light .nav-sublink.active{
    color:#0b3f72 !important;
    background:linear-gradient(135deg, rgba(186,230,253,.78), rgba(219,234,254,.70)) !important;
    border-color:rgba(14,165,233,.38) !important;
    box-shadow:inset 4px 0 0 rgba(14,165,233,.76), 0 10px 18px rgba(15,76,129,.08) !important;
}
body.light .nav-sublink.active .nav-icon,
body.light .nav-sublink.active .nav-label{
    color:#0b3f72 !important;
}

/* Light: el contenedor general del módulo no debe pintar fondo */
body.light .main-area,
body.light .main-content,
body.light .content,
body.light .content-shell,
body.light .ui-section,
body.light .module-section,
body.light .hogares-module,
body.light .censo-module,
body.light .usuarios-module,
body.light .iglesias-module,
body.light .oficios-module,
body.light .agenda-module,
body.light .consejo-module,
body.light .cuerpo-pastoral-module,
body.light .actividades-module,
body.light .asistencia-module,
body.light .finanzas-module,
body.light .programas-module,
body.light .rolcultos-module,
body.light .bosquejos-module,
body.light .direcciones-module,
body.light .aniversarios-module,
body.light .notificaciones-module,
body.light .configuracion-module{
    background:transparent !important;
    background-color:transparent !important;
    background-image:none !important;
    border:0 !important;
    box-shadow:none !important;
    backdrop-filter:none !important;
}

body.light .ui-section,
body.light .module-section{
    border-radius:0 !important;
    overflow:visible !important;
}

/* Light: los grupos abiertos del sidebar no deben verse como opción activa */
body.light .nav-group.is-open > .nav-group-toggle,
body.light .nav-group.has-active-child > .nav-group-toggle{
    color:#315178 !important;
    background:transparent !important;
    border-color:transparent !important;
    box-shadow:none !important;
}
body.light .nav-group.is-open > .nav-group-toggle .nav-icon,
body.light .nav-group.is-open > .nav-group-toggle .nav-label,
body.light .nav-group.has-active-child > .nav-group-toggle .nav-icon,
body.light .nav-group.has-active-child > .nav-group-toggle .nav-label{
    color:#315178 !important;
}
body.light .nav-group.is-open > .nav-group-toggle .nav-caret,
body.light .nav-group.has-active-child > .nav-group-toggle .nav-caret{
    color:#244669 !important;
}
body.light .nav-group.is-open > .nav-group-toggle:hover,
body.light .nav-group.has-active-child > .nav-group-toggle:hover{
    color:#082042 !important;
    background:rgba(6,53,122,.06) !important;
    border-color:rgba(6,53,122,.08) !important;
}
body.light .nav-group.is-open > .nav-group-toggle:hover .nav-icon,
body.light .nav-group.is-open > .nav-group-toggle:hover .nav-label,
body.light .nav-group.is-open > .nav-group-toggle:hover .nav-caret,
body.light .nav-group.has-active-child > .nav-group-toggle:hover .nav-icon,
body.light .nav-group.has-active-child > .nav-group-toggle:hover .nav-label,
body.light .nav-group.has-active-child > .nav-group-toggle:hover .nav-caret{
    color:#082042 !important;
}
body.light .nav-link.active,
body.light .nav-sublink.active{
    color:#0b3f72 !important;
    background:linear-gradient(135deg, rgba(186,230,253,.78), rgba(219,234,254,.70)) !important;
    border-color:rgba(14,165,233,.38) !important;
    box-shadow:inset 4px 0 0 rgba(14,165,233,.76), 0 10px 18px rgba(15,76,129,.08) !important;
}
body.light .nav-link.active .nav-icon,
body.light .nav-link.active .nav-label,
body.light .nav-sublink.active .nav-icon,
body.light .nav-sublink.active .nav-label{
    color:#0b3f72 !important;
}


/* =========================================================
   FIX LIGHT MODE: botones, radio/checkbox y navegación mensual
   ========================================================= */
body.light .btn,
body.light a.btn,
body.light button.btn,
body.light input[type="button"].btn,
body.light input[type="submit"].btn,
body.light input[type="reset"].btn,
body.light .icon-btn,
body.light .profile-btn,
body.light .sidebar-login-btn,
body.light .ui-calendar-nav .btn,
body.light .ui-table-actions .btn,
body.light .ui-form-actions .btn,
body.light .ui-filter-actions .btn,
body.light .filter-card-actions .btn,
body.light .module-actions .btn,
body.light .card-actions .btn{
    color:#0b2344 !important;
    background:linear-gradient(180deg,#ffffff 0%,#eef7ff 100%) !important;
    border:1px solid rgba(11,88,154,.18) !important;
    box-shadow:0 8px 18px rgba(11,46,93,.06) !important;
    text-shadow:none !important;
}

body.light .btn:hover,
body.light a.btn:hover,
body.light button.btn:hover,
body.light .icon-btn:hover,
body.light .profile-btn:hover,
body.light .sidebar-login-btn:hover,
body.light .ui-calendar-nav .btn:hover,
body.light .ui-table-actions .btn:hover,
body.light .ui-form-actions .btn:hover,
body.light .ui-filter-actions .btn:hover,
body.light .filter-card-actions .btn:hover,
body.light .module-actions .btn:hover,
body.light .card-actions .btn:hover{
    color:#071a36 !important;
    background:linear-gradient(180deg,#f8fcff 0%,#dff1ff 100%) !important;
    border-color:rgba(31,151,224,.38) !important;
}

body.light .btn-primary,
body.light .btn.primary,
body.light .btn.btn-primary,
body.light .btn.is-active,
body.light .btn[aria-pressed="true"],
body.light button.is-active,
body.light a.is-active,
body.light .ui-view-switch .is-active,
body.light .ui-switch .is-active,
body.light .ui-switch input:checked + span,
body.light .ui-view-switch input:checked + span,
body.light .ui-choice input:checked + span,
body.light .ui-choice-pill input:checked + span{
    color:#ffffff !important;
    background:linear-gradient(135deg,#1d8fe8 0%,#19aadb 100%) !important;
    border-color:rgba(18,124,201,.72) !important;
    box-shadow:0 10px 22px rgba(25,144,220,.20) !important;
    text-shadow:none !important;
}

body.light .btn-danger,
body.light .btn.btn-danger,
body.light button.btn-danger,
body.light a.btn-danger{
    color:#8f241d !important;
    background:linear-gradient(180deg,#fff7f5 0%,#ffe9e4 100%) !important;
    border-color:rgba(220,38,38,.22) !important;
}

body.light .btn-danger:hover,
body.light .btn.btn-danger:hover,
body.light button.btn-danger:hover,
body.light a.btn-danger:hover{
    color:#741c17 !important;
    background:linear-gradient(180deg,#fff1ed 0%,#ffd9d1 100%) !important;
    border-color:rgba(220,38,38,.34) !important;
}

body.light .btn-success{
    color:#075f55 !important;
    background:linear-gradient(180deg,#f0fffb 0%,#d8f7ef 100%) !important;
    border-color:rgba(13,148,136,.22) !important;
}

body.light .btn-warning{
    color:#745011 !important;
    background:linear-gradient(180deg,#fffaf0 0%,#fff0c7 100%) !important;
    border-color:rgba(202,138,4,.24) !important;
}

body.light .btn-ghost,
body.light .btn.ghost,
body.light .btn.btn-ghost{
    color:#27496f !important;
    background:transparent !important;
    border-color:rgba(11,88,154,.14) !important;
    box-shadow:none !important;
}

body.light .btn-ghost:hover,
body.light .btn.ghost:hover,
body.light .btn.btn-ghost:hover{
    color:#082042 !important;
    background:rgba(14,165,233,.08) !important;
    border-color:rgba(14,165,233,.24) !important;
}

body.light .ui-checkbox,
body.light .ui-radio,
body.light .ui-toggle,
body.light .checkbox-field,
body.light .radio-field,
body.light .ui-radio-item,
body.light .ui-radio-list label{
    color:#183558 !important;
}

body.light .ui-checkbox-control,
body.light .ui-radio-control,
body.light .checkbox-ui,
body.light input[type="checkbox"],
body.light input[type="radio"]{
    background:#eef5f9 !important;
    border-color:rgba(11,88,154,.28) !important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.80), 0 4px 10px rgba(11,46,93,.05) !important;
}

body.light .ui-checkbox:hover .ui-checkbox-control,
body.light .ui-radio:hover .ui-radio-control,
body.light .ui-radio-list label:hover,
body.light .ui-radio-item:hover{
    color:#082042 !important;
    border-color:rgba(14,165,233,.45) !important;
}

body.light .ui-checkbox input:checked + .ui-checkbox-control,
body.light .ui-radio input:checked + .ui-radio-control,
body.light input[type="checkbox"]:checked,
body.light input[type="radio"]:checked{
    background:linear-gradient(135deg,#1d8fe8 0%,#19aadb 100%) !important;
    border-color:rgba(18,124,201,.72) !important;
    box-shadow:0 0 0 4px rgba(25,144,220,.14) !important;
}

body.light .ui-switch,
body.light .ui-view-switch,
body.light .ui-segmented,
body.light .ui-binary-switch,
body.light .ui-choice-group,
body.light .ui-toggle-track{
    background:rgba(255,255,255,.74) !important;
    border-color:rgba(11,88,154,.16) !important;
    box-shadow:0 8px 18px rgba(11,46,93,.06) !important;
}

body.light .ui-switch button,
body.light .ui-switch label > span,
body.light .ui-switch .ui-switch-item,
body.light .ui-view-switch button,
body.light .ui-view-switch .ui-switch-item,
body.light .ui-binary-option,
body.light .ui-choice span,
body.light .ui-choice-pill span,
body.light .ui-tag-option span{
    color:#183558 !important;
    background:#eef5f9 !important;
    border-color:rgba(11,88,154,.18) !important;
    text-shadow:none !important;
}

body.light .ui-switch button:hover,
body.light .ui-switch label > span:hover,
body.light .ui-switch .ui-switch-item:hover,
body.light .ui-view-switch button:hover,
body.light .ui-view-switch .ui-switch-item:hover,
body.light .ui-binary-option:hover,
body.light .ui-choice:hover span,
body.light .ui-choice-pill:hover span,
body.light .ui-tag-option:hover span{
    color:#082042 !important;
    background:#eef7ff !important;
    border-color:rgba(14,165,233,.34) !important;
}

body.light .ui-switch input:checked + span,
body.light .ui-switch label > span.is-active,
body.light .ui-switch button.is-active,
body.light .ui-switch .ui-switch-item.is-active,
body.light .ui-view-switch .is-active,
body.light .ui-view-switch input:checked + span,
body.light .ui-binary-switch input:checked + .ui-binary-option,
body.light .ui-binary-option.is-active,
body.light .ui-choice input:checked + span,
body.light .ui-choice-pill input:checked + span,
body.light .ui-tag-option input:checked + span{
    color:#ffffff !important;
    background:linear-gradient(135deg, color-mix(in srgb, var(--switch-color, var(--choice-color, var(--tag-color, #19aadb))) 82%, #0b4fa5), color-mix(in srgb, var(--switch-color, var(--choice-color, var(--tag-color, #19aadb))) 72%, #19aadb)) !important;
    border-color:color-mix(in srgb, var(--switch-color, var(--choice-color, var(--tag-color, #19aadb))) 70%, transparent) !important;
    box-shadow:0 0 0 4px color-mix(in srgb, var(--switch-color, var(--choice-color, var(--tag-color, #19aadb))) 15%, transparent) !important;
}

body.light .ui-switch button::before,
body.light .ui-switch label > span::before,
body.light .ui-switch .ui-switch-item::before,
body.light .ui-view-switch button::before,
body.light .ui-view-switch .ui-switch-item::before{
    border-color:color-mix(in srgb, var(--switch-color, #19aadb) 68%, #ffffff) !important;
    background:color-mix(in srgb, var(--switch-color, #19aadb) 12%, #ffffff) !important;
}

body.light .ui-switch input:checked + span::before,
body.light .ui-switch label > span.is-active::before,
body.light .ui-switch button.is-active::before,
body.light .ui-switch .ui-switch-item.is-active::before,
body.light .ui-view-switch .is-active::before,
body.light .ui-view-switch input:checked + span::before{
    border-color:rgba(255,255,255,.78) !important;
    background:rgba(255,255,255,.30) !important;
}

body.light .ui-month-nav,
body.light .ui-mini-calendar-nav,
body.light .app-calendar-nav,
body.light .programas-month-nav,
body.light .programas-month-nav.ui-calendar-toolbar,
body.light .ui-calendar-toolbar[class*="month-nav"],
body.light .ui-module-actions[class*="month-nav"]{
    background:rgba(255,255,255,.74) !important;
    border:1px solid rgba(11,88,154,.16) !important;
    box-shadow:0 8px 18px rgba(11,46,93,.06) !important;
}

body.light .ui-month-nav .ui-calendar-nav,
body.light .ui-calendar-toolbar[class*="month-nav"] .ui-calendar-nav,
body.light .ui-module-actions[class*="month-nav"] .ui-calendar-nav,
body.light .ui-mini-calendar-arrow,
body.light .app-calendar-arrow,
body.light .programas-month-arrow,
body.light .ui-mini-calendar-nav .ui-calendar-nav,
body.light .programas-month-nav .programas-month-arrow{
    color:#0b2344 !important;
    background:linear-gradient(180deg,#ffffff 0%,#eef7ff 100%) !important;
    border-color:rgba(11,88,154,.20) !important;
    box-shadow:0 6px 14px rgba(11,46,93,.06) !important;
    text-decoration:none !important;
}

body.light .ui-month-nav .ui-calendar-nav:hover,
body.light .ui-calendar-toolbar[class*="month-nav"] .ui-calendar-nav:hover,
body.light .ui-module-actions[class*="month-nav"] .ui-calendar-nav:hover,
body.light .ui-mini-calendar-arrow:hover,
body.light .app-calendar-arrow:hover,
body.light .programas-month-arrow:hover,
body.light .ui-mini-calendar-nav .ui-calendar-nav:hover,
body.light .programas-month-nav .programas-month-arrow:hover{
    color:#071a36 !important;
    background:linear-gradient(180deg,#f8fcff 0%,#dff1ff 100%) !important;
    border-color:rgba(31,151,224,.38) !important;
}

body.light .ui-month-nav .ui-calendar-nav.is-current,
body.light .ui-calendar-toolbar[class*="month-nav"] .ui-calendar-nav.is-current,
body.light .ui-module-actions[class*="month-nav"] .ui-calendar-nav.is-current,
body.light .ui-mini-calendar-current,
body.light .app-calendar-current,
body.light .programas-month-current,
body.light .programas-month-nav .ui-calendar-nav.is-current{
    color:#0b2344 !important;
    background:linear-gradient(180deg,#ffffff 0%,#eaf6ff 100%) !important;
    border-color:rgba(31,151,224,.30) !important;
    box-shadow:0 6px 14px rgba(11,46,93,.05) !important;
    text-shadow:none !important;
}

/* Light mode: quitar marco externo de navegadores de meses */
body.light .ui-month-nav,
body.light .ui-mini-calendar-nav,
body.light .app-calendar-nav,
body.light .programas-month-nav,
body.light .programas-month-nav.ui-calendar-toolbar,
body.light .actividades-month-nav,
body.light .rolcultos-month-nav,
body.light .asistencia-month-nav,
body.light .bosquejos-month-nav,
body.light .aniversarios-month-nav,
body.light .js-aniversarios-month-nav,
body.light .ui-calendar-toolbar[aria-label="Navegador de mes"],
body.light .ui-calendar-toolbar[aria-label="Navegación de mes"],
body.light .ui-calendar-toolbar[class*="month-nav"],
body.light .ui-module-actions[class*="month-nav"],
body.light [class*="month-nav"].ui-calendar-toolbar,
body.light [class*="mes-nav"].ui-calendar-toolbar{
    background:transparent !important;
    border:0 !important;
    outline:0 !important;
    box-shadow:none !important;
}

body.light .ui-month-nav::before,
body.light .ui-month-nav::after,
body.light .ui-mini-calendar-nav::before,
body.light .ui-mini-calendar-nav::after,
body.light .app-calendar-nav::before,
body.light .app-calendar-nav::after,
body.light .programas-month-nav::before,
body.light .programas-month-nav::after,
body.light .ui-calendar-toolbar[class*="month-nav"]::before,
body.light .ui-calendar-toolbar[class*="month-nav"]::after,
body.light .ui-module-actions[class*="month-nav"]::before,
body.light .ui-module-actions[class*="month-nav"]::after{
    display:none !important;
    content:none !important;
}
.topbar-excel-btn{
    text-decoration: none;
    background: linear-gradient(135deg, rgba(26,138,106,.22), rgba(10,100,70,.14));
    border-color: rgba(26,138,106,.30);
}
.topbar-excel-btn:hover{
    border-color: rgba(26,138,106,.55) !important;
    background: linear-gradient(135deg, rgba(26,138,106,.32), rgba(10,100,70,.22)) !important;
}
.topbar-excel-btn .topbar-excel-icon{ font-size: 15px; }
body.light .topbar-excel-btn{ background: #e6f5ef; border-color: rgba(26,138,106,.20); }
body.light .topbar-excel-btn:hover{ background: #d4eddf !important; border-color: rgba(26,138,106,.38) !important; }
.topbar-excel-btn:disabled{
    opacity: .38;
    cursor: not-allowed;
    pointer-events: none;
}
@media(max-width:720px){
    .topbar-excel-btn span:not(.topbar-excel-icon){ display:none; }
    .topbar-excel-btn{ width:38px; padding:0; }
}
