/* ICAT: compatibilidad de los módulos Blade con la paleta original Velzon Material.
   Los nombres ICAT se conservan como alias para las vistas existentes. */
:root {
    --primary: var(--vz-primary);
    --text-dark: var(--vz-body-color);
    --cui-icat-rojo1: var(--vz-primary);
    --cui-icat-rojo2: var(--vz-primary);
    --cui-icat-rojo3: var(--vz-danger);
    --cui-icat-verde1: var(--vz-success);
    --cui-icat-verde2: var(--vz-success);
    --cui-icat-verde3: var(--vz-success);
    --cui-icat-gris1: var(--vz-gray-700);
    --cui-icat-gris2: var(--vz-dark);
    --cui-icat-gris3: var(--vz-light);
    --cui-icat-otro1: var(--vz-warning);
    --cui-icat-otro2: var(--vz-warning);
    --cui-icat-otro3: var(--vz-warning-bg-subtle);
    --cui-icat-blanco: var(--vz-white);
    --cui-icat-rojo1-rgb: var(--vz-primary-rgb);
    --cui-icat-rojo2-rgb: var(--vz-primary-rgb);
    --cui-icat-rojo3-rgb: var(--vz-danger-rgb);
    --cui-icat-verde1-rgb: var(--vz-success-rgb);
    --cui-icat-verde2-rgb: var(--vz-success-rgb);
    --cui-icat-verde3-rgb: var(--vz-success-rgb);
    --cui-icat-gris1-rgb: var(--vz-body-color-rgb);
    --cui-icat-gris2-rgb: var(--vz-dark-rgb);
    --cui-icat-gris3-rgb: var(--vz-light-rgb);
    --cui-icat-otro1-rgb: var(--vz-warning-rgb);
    --cui-icat-otro2-rgb: var(--vz-warning-rgb);
    --cui-icat-otro3-rgb: var(--vz-warning-rgb);
    --cui-icat-blanco-rgb: var(--vz-white-rgb);
    --cui-icat-negro-rgb: var(--vz-black-rgb);
    --cui-icat-azul1-rgb: var(--vz-secondary-rgb);
}
.icat-app .main-content { min-height: 100vh; }
.icat-app .content-body { margin: 0; padding: 0; min-width: 0; }
.icat-app .content-body > .container-fluid { padding: 0; }
.icat-app .page-content { min-height: calc(100vh - 60px); }
.icat-app .page-titles { padding: 1rem 0; margin-bottom: 1rem; }
.icat-app .page-titles .breadcrumb { margin-bottom: 0; }
.icat-menu-scroll { height: calc(100vh - 70px); overflow: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.icat-sidebar-footer { padding: 1.25rem 1.5rem; font-size: .75rem; color: var(--vz-vertical-menu-item-color); }
.icat-sidebar-close { position: absolute; right: .25rem; top: 1rem; }
.icat-app .navbar-menu .navbar-nav .nav-link { padding-top: .65rem; padding-bottom: .65rem; }
.icat-app .navbar-menu .nav-link.active { background: var(--vz-vertical-menu-item-active-bg); }
.icat-app .navbar-menu .menu-title { white-space: normal; line-height: 1.5; }
.icat-search { width: min(340px, 35vw); }
.search-dropdown { display: none; position: absolute; top: calc(100% + 6px); left: 0; right: 0; z-index: 1050; background: var(--vz-secondary-bg); border: 1px solid var(--vz-border-color); border-radius: .3rem; box-shadow: var(--vz-box-shadow); max-height: 360px; overflow-y: auto; }
.search-dropdown.show { display: block; }
.search-dropdown-item { display: block; padding: .85rem 1rem; cursor: pointer; border-bottom: 1px solid var(--vz-border-color); }
.search-dropdown-item:hover { background: var(--vz-tertiary-bg); }
.search-dropdown-item.no-results { cursor: default; color: var(--vz-secondary-color); }
.icat-skip-link { position: fixed; top: .5rem; left: .5rem; z-index: 1100; background: #fff; padding: .75rem; }
.icat-without-sidebar .main-content { margin-left: 0 !important; }
.icat-without-sidebar #page-topbar, .icat-without-sidebar .footer { left: 0 !important; }
[data-sidebar-size="sm"] .icat-sidebar-footer { display: none; }
.back-fixed { position: fixed; top: 82px; right: 24px; z-index: 3; }

/* Utilidades de las vistas anteriores; no se carga el diseño EduMin. */
.form-group { margin-bottom: 1rem; }
.form-row { display: flex; flex-wrap: wrap; gap: .5rem; }
.btn-block { display: block; width: 100%; }
.btn-xs { padding: .25rem .5rem; font-size: .75rem; }
.btn-xxs { padding: .15rem .4rem; font-size: .7rem; }
.btn-rounded { border-radius: 2rem; }
.sharp { display: inline-flex; align-items: center; justify-content: center; min-width: 28px; min-height: 28px; }
.icat-app .card-header { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.icat-app .card-header .card-title { margin-bottom: 0; }
.btn-icon-start { display: inline-flex; margin-right: .4rem; }
.font-w400 { font-weight: 400; }
.font-w500 { font-weight: 500; }
.font-w600 { font-weight: 600; }
.font-w700 { font-weight: 700; }
.fs-12 { font-size: 12px; }
.fs-14 { font-size: 14px; }
.fs-16 { font-size: 16px; }
.fs-18 { font-size: 18px; }
.fs-20 { font-size: 20px; }
.fs-24 { font-size: 24px; }
.w-space-no { white-space: nowrap; }
.c-pointer { cursor: pointer; }
.media { display: flex; align-items: center; }
.media-body { flex: 1; }
.badge-dot { display: inline-block; width: .5rem; height: .5rem; border-radius: 50%; margin-right: .35rem; vertical-align: middle; }
.text-icat-rojo1 { color: var(--cui-icat-rojo1) !important; }
.text-icat-rojo2 { color: var(--cui-icat-rojo2) !important; }
.bg-icat-rojo1 { background-color: var(--cui-icat-rojo1) !important; }
.card-icat-rojo2 { background: var(--cui-icat-rojo2); color: #fff; }
.code-icat-rojo2 { color: var(--cui-icat-rojo2); background: #fff; padding: 2px 5px; }
.btn-icat-rojo1, .btn-icat-verde2 { --vz-btn-color: #fff; --vz-btn-hover-color: #fff; --vz-btn-active-color: #fff; }
.btn-icat-rojo1 { --vz-btn-bg: var(--vz-primary); --vz-btn-border-color: var(--vz-primary); --vz-btn-hover-bg: var(--vz-primary-text-emphasis); --vz-btn-hover-border-color: var(--vz-primary-text-emphasis); --vz-btn-active-bg: var(--vz-primary-text-emphasis); --vz-btn-active-border-color: var(--vz-primary-text-emphasis); }
.btn-icat-verde2 { --vz-btn-bg: var(--vz-success); --vz-btn-border-color: var(--vz-success); --vz-btn-hover-bg: var(--vz-success-text-emphasis); --vz-btn-hover-border-color: var(--vz-success-text-emphasis); --vz-btn-active-bg: var(--vz-success-text-emphasis); --vz-btn-active-border-color: var(--vz-success-text-emphasis); }
.btn-icat-rojo1-out { --vz-btn-color: var(--vz-primary); --vz-btn-border-color: var(--vz-primary); --vz-btn-hover-bg: var(--vz-primary); --vz-btn-hover-color: #fff; }
.box-sombra { box-shadow: 0 3px 12px rgba(56, 65, 74, .12); }
.bg-primary-soft, .light.btn-primary, .light.badge-primary { color: var(--vz-primary); background: rgba(var(--vz-primary-rgb), .1); border-color: transparent; }
.bg-secondary-soft, .light.btn-secondary, .light.badge-secondary { color: var(--vz-secondary); background: rgba(var(--vz-secondary-rgb), .1); border-color: transparent; }
.bg-success-soft, .light.btn-success, .light.badge-success { color: var(--vz-success); background: rgba(var(--vz-success-rgb), .1); border-color: transparent; }
.bg-warning-soft, .light.btn-warning, .light.badge-warning { color: #946518; background: rgba(var(--vz-warning-rgb), .15); border-color: transparent; }
.bg-danger-soft, .light.btn-danger, .light.badge-danger { color: var(--vz-danger); background: rgba(var(--vz-danger-rgb), .1); border-color: transparent; }
.bg-info-soft, .light.btn-info, .light.badge-info { color: var(--vz-info); background: rgba(var(--vz-info-rgb), .1); border-color: transparent; }
.badge-primary { background: var(--vz-primary); }
.badge-secondary { background: var(--vz-secondary); }
.badge-success { background: var(--vz-success); }
.badge-warning { background: var(--vz-warning); color: #343a40; }
.badge-danger { background: var(--vz-danger); }
.badge-info { background: var(--vz-info); }
.badge-dark { background: var(--vz-dark); }
.light.btn:hover { filter: brightness(.92); }
.bootstrap-select > .dropdown-toggle { border: 1px solid var(--vz-border-color); background: var(--vz-input-bg); color: var(--vz-body-color); }
.bootstrap-select .dropdown-menu { max-width: min(100vw - 2rem, 640px); }
.select2-container .select2-selection--single { min-height: 38px; border-color: var(--vz-border-color); }
.select2-container .select2-selection--multiple { min-height: 38px; border-color: var(--vz-border-color); }
.icat-app table.dataTable { border-collapse: collapse !important; }
.icat-app .dataTables_wrapper .dataTables_filter input, .icat-app .dataTables_wrapper .dataTables_length select { border: 1px solid var(--vz-border-color); border-radius: .25rem; padding: .4rem .6rem; }
.icat-app .dataTables_wrapper .dataTables_paginate .paginate_button.current { background: var(--vz-primary); border-color: var(--vz-primary); color: #fff !important; }
.picker__box { font-family: var(--vz-body-font-family); font-size: 14px; }
.picker__day--highlighted, .picker__day--selected, .picker--focused .picker__day--highlighted { background: var(--vz-primary); border-color: var(--vz-primary); color: #fff; }
.picker__day--today::before { border-top-color: var(--vz-primary); }
.picker__select--month, .picker__select--year { padding: .35rem; font-size: 14px; border-color: var(--vz-border-color); }
@media (max-width: 767.98px) {
    .icat-app.vertical-sidebar-enable { overflow: hidden; }
    .icat-app .navbar-menu .navbar-brand-box { display: block; }
    .icat-app .page-content { padding-left: 12px; padding-right: 12px; }
    .icat-app .footer { height: auto; min-height: 60px; font-size: .75rem; }
    .icat-app .card-header { flex-wrap: wrap; gap: .75rem; }
    .back-fixed { position: static; margin-bottom: 1rem; }
}
@media print {
    #page-topbar, .navbar-menu, .vertical-overlay, .footer { display: none !important; }
    .icat-app .main-content { margin-left: 0 !important; }
    .icat-app .page-content { padding: 0 !important; }
}

/* Utilidades para animación y tamaños de iconos Remix de Velzon. */
.ri-spin { display: inline-block; animation: icat-ri-spin 1s linear infinite; }
@keyframes icat-ri-spin { to { transform: rotate(360deg); } }
.ri-size-lg { font-size: 1.25em; }
.ri-size-2x { font-size: 2em; }
.ri-size-3x { font-size: 3em; }
.ri-size-4x { font-size: 4em; }
.ri-size-5x { font-size: 5em; }

/* Gráfica del resumen: usa los datos del controlador existente. */
.icat-month-chart { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(4px, 1.5vw, 20px); padding-top: 1rem; }
.icat-month { display: flex; flex-direction: column; align-items: center; gap: .5rem; min-width: 0; }
.icat-month-track { height: 170px; display: flex; align-items: flex-end; width: 100%; max-width: 36px; background: var(--vz-light); border-radius: .25rem; }
.icat-month-bar { width: 100%; background: var(--vz-primary); border-radius: .25rem .25rem 0 0; }
.icat-month-value { font-size: 12px; font-weight: 600; }
.icat-month-label { font-size: 11px; color: var(--vz-secondary-color); }
