/* Start Global */

* {
    font-family: "Poppins", sans-serif;
}

.fw-bold {
    font-weight: 800 !important;
}

.menu-vertical .menu-inner .menu-item.active > .menu-link {
    font-weight: 600 !important;
}

th {
    font-weight: 700 !important;
}

:root {
    --bs-primary: var(--brand-primary);
    --bs-primary-rgb: 26, 102, 135;
    --bs-link-color: var(--brand-primary);
    --bs-link-hover-color: var(--brand-primary);
    --bs-body-color: #212529;
    --bs-tertiary-bg: #f8f9fa;
}

.layout-menu.menu-vertical.menu.bg-menu-theme {
    padding-bottom: 10px;
}

/* Widen the sidebar so menu labels (e.g. "Course Management", "Class Management")
   are not clipped with an ellipsis, and force it to always stay fully expanded
   regardless of any "layout-menu-collapsed" state the template JS may add. */
.layout-menu,
.layout-menu .menu-vertical,
.menu-vertical,
.menu-vertical .menu-block,
.menu-vertical .menu-inner > .menu-item,
.menu-vertical .menu-inner > .menu-header {
    width: 18.5rem !important;
}

/* Adjust page content padding and fixed navbar layout to match the widened sidebar width on desktop viewports */
@media (min-width: 1200px) {
    .layout-menu-fixed .layout-page,
    .layout-menu-fixed-offcanvas .layout-page {
        padding-left: 18.5rem !important;
    }
    html[dir=rtl] .layout-menu-fixed .layout-page,
    html[dir=rtl] .layout-menu-fixed-offcanvas .layout-page {
        padding-right: 18.5rem !important;
        padding-left: 0 !important;
    }
    .layout-navbar-fixed .layout-page:before {
        left: 18.5rem !important;
    }
    html[dir=rtl] .layout-navbar-fixed .layout-page:before {
        right: 18.5rem !important;
        left: auto !important;
    }
    .layout-navbar-fixed .layout-navbar.navbar-detached {
        width: calc(100% - calc(1.5rem * 2) - 18.5rem) !important;
    }
}

.app-brand-text,
.menu-text,
.menu-vertical .menu-inner .menu-link > div {
    opacity: 1 !important;
    display: inline-block !important;
    visibility: visible !important;
}

.menu-vertical .menu-inner > .menu-item .menu-link {
    justify-content: flex-start !important;
}

/* The fixed sidebar layout offsets page content with a hardcoded
   "padding-left: 16.25rem" matching the template's default sidebar width.
   Since the sidebar is now forced to 18.5rem above, bump this offset to
   match — otherwise the fixed sidebar overlaps/clips the left edge of the
   page content (e.g. cards, headings getting cut off). */
@media (min-width: 1200px) {
    .layout-menu-fixed:not(.layout-menu-collapsed) .layout-page,
    .layout-menu-fixed-offcanvas:not(.layout-menu-collapsed) .layout-page {
        padding-left: 18.5rem !important;
    }
}

/* The "detached" navbar card computes its own width independently with the
   same hardcoded 16.25rem sidebar-width assumption, so it also needs
   bumping to 18.5rem — otherwise it overlaps/crashes into the wider sidebar. */
@media (min-width: 1200px) {
    .layout-navbar-fixed .layout-navbar.navbar-detached {
        width: calc(100% - calc(1.5rem * 2) - 18.5rem) !important;
    }

    /* The navbar's fixed-position starting point ("left") also hardcodes the
       old 16.25rem sidebar width. Without bumping this too, the navbar's
       positioning context starts 2.25rem short of the real (wider) sidebar
       edge, leaving it partially hidden behind the sidebar and visually
       off-center once its width is auto-centered within that context. */
    .layout-navbar-fixed:not(.layout-menu-collapsed) .layout-content-navbar:not(.layout-without-menu) .layout-navbar {
        left: 18.5rem !important;
    }
}

/* The sidebar collapse toggle button was removed directly from
   sidebar.blade.php (no markup left to hide here). The navbar's mobile
   hamburger button uses the same "layout-menu-toggle" class but is a
   different element — it still opens/closes the sidebar overlay on
   small screens. */

.modal-footer > * {
    margin: calc(var(--bs-modal-footer-gap) * 0.3);
}

.breadcrumb-item,
.breadcrumb-item a {
    color: var(--brand-primary);
}

.bg-label-primary {
    background-color: #fdf0f4 !important;
    color: var(--brand-primary) !important;
}

a {
    color: var(--brand-primary);
}

a:hover {
    color: var(--brand-primary);
    filter: brightness(80%);
}

.form-label {
    font-size: 15px;
    color: var(--bs-body-color);
}

.form-control:focus,
.form-select:focus {
    border-color: var(--brand-primary) !important;
    color: var(--bs-body-color);
}

.form-control {
    color: var(--bs-body-color);
}

.input-group:focus-within .form-control,
.input-group:focus-within .input-group-text {
    border-color: var(--brand-primary) !important;
}

.input-group-text {
    background-color: var(--bs-tertiary-bg);
}

.datepicker table tr td.active,
.datepicker table tr td.active.highlighted,
.datepicker table tr td .focused,
.datepicker table tr td span.active,
.datepicker table tr td span.active.disabled,
.datepicker table tr td.range-start,
.datepicker table tr td.range-end {
    background: var(--brand-primary) !important;
}

.datepicker table tr td.today:not(.active) {
    box-shadow: 0 0 0 1px var(--brand-primary);
}

.btn-warning {
    background-color: #f6973c;
    border-color: #f6973c;
}

.btn-primary {
    background-color: var(--brand-primary);
    border-color: var(--brand-primary);
}

.btn-primary:hover {
    background-color: var(--brand-primary) !important;
    border-color: var(--brand-primary) !important;
    filter: brightness(90%);
}

.btn-check:checked + .btn-primary,
.btn-check:active + .btn-primary,
.btn-primary:active,
.btn-primary.active,
.btn-primary.show.dropdown-toggle,
.show > .btn-primary.dropdown-toggle {
    background-color: var(--brand-primary) !important;
    border-color: var(--brand-primary) !important;
    filter: brightness(80%);
}

.btn-check:focus + .btn-primary,
.btn-primary:focus,
.btn-primary.focus {
    background-color: var(--brand-primary);
    border-color: var(--brand-primary);
}

.btn-primary.disabled,
.btn-primary:disabled {
    background-color: var(--brand-primary) !important;
    border-color: var(--brand-primary) !important;
    opacity: 0.65;
}

.btn {
    --bs-btn-padding-x: 1rem;
    --bs-btn-padding-y: 0.8rem;
    --bs-btn-line-height: 1.5;
    --bs-btn-color: var(--bs-body-color);
    --bs-btn-border-width: var(--bs-border-width);
    --bs-btn-border-radius: var(--bs-border-radius);
    --bs-btn-box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
}

/* Button Sizes Override - Custom padding for premium feel */

.btn-xl {
    --bs-btn-padding-y: 0.9rem;
    --bs-btn-padding-x: 2rem;
    --bs-btn-font-size: 1.1rem;
    line-height: 1.5;
}

.btn-lg {
    --bs-btn-padding-y: 0.8rem;
    --bs-btn-padding-x: 1.5rem;
    --bs-btn-font-size: 1rem;
    line-height: 1.5;
}

.btn-md {
    --bs-btn-padding-y: 0.65rem;
    --bs-btn-padding-x: 1.25rem;
    --bs-btn-font-size: 0.9375rem;
    line-height: 1.5;
}

.btn-sm {
    --bs-btn-padding-y: 0.5rem;
    --bs-btn-padding-x: 0.8rem;
    --bs-btn-font-size: 0.8125rem;
    line-height: 1.5;
}

.btn-xs {
    --bs-btn-padding-y: 0.25rem;
    --bs-btn-padding-x: 0.5rem;
    --bs-btn-font-size: 0.75rem;
    line-height: 1.2;
}

.modal {
    --bs-modal-header-padding: 1.25rem;
    --bs-modal-header-border-width: 1px;
    --bs-modal-footer-border-width: 1px;
    --bs-modal-padding: 1.25rem;
}

.modal-footer {
    padding: calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * 0.5);
}

.table {
    white-space: nowrap;
}

.table-light {
    --bs-table-bg: #eeeeee;
    border-color: #dcdcdcf7;
}

.table > thead {
    vertical-align: middle;
}

.table-row-hover {
    cursor: pointer;
}

.table-row-hover:hover {
    background-color: rgba(75, 70, 92, 0.04);
}

th {
    font-weight: 600;
}

.pagination {
    margin-bottom: 0;
}

.page-item.active .page-link,
.pagination li.active > a:not(.page-link) {
    border-color: var(--brand-primary);
    background-color: var(--brand-primary);
}

/* End Global */

/* Start Navbar */

.dropdown-menu {
    --bs-dropdown-link-hover-color: var(--brand-primary);
    --bs-dropdown-link-active-bg: var(--brand-primary);
    --bs-dropdown-link-hover-bg: #67a6f014;
}

.dropdown-item:not(.disabled).active,
.dropdown-item:not(.disabled):active {
    background-color: var(--brand-primary);
}

/* End Navbar */

/* Start Sidebar */

.app-brand.demo {
    padding-left: 0;
    padding-right: 0;
}

.app-brand.demo .app-brand-logo {
    padding-right: 10px;
}

.menu-vertical .menu-header {
    padding-top: 0.78rem;
}

.menu-vertical .menu-header .menu-header-text {
    font-weight: 500;
}

.bg-menu-theme.menu-vertical .menu-item.active > .menu-link:not(.menu-toggle),
.bg-menu-theme.menu-vertical .menu-item.active > .menu-link:not(.menu-toggle) i {
    background: #fdf0f4 !important;
    color: var(--brand-primary) !important;
    box-shadow: none;
}

.bg-menu-theme.menu-vertical .menu-sub > .menu-item.active > .menu-link,
.bg-menu-theme.menu-vertical .menu-sub > .menu-item.active > .menu-link i {
    background: #fdf0f4 !important;
    color: var(--brand-primary) !important;
    border-radius: 0.375rem;
}

/* Always hide the default bullet for all sub-menu items */
.bg-menu-theme.menu-vertical .menu-sub > .menu-item > .menu-link:before {
    display: none !important;
}

/* Ensure icons and text follow tenant colors even when not active if requested */
.menu-vertical .menu-link i,
.menu-vertical .menu-link .menu-icon svg {
    color: var(--brand-primary) !important;
    stroke: var(--brand-primary);
    opacity: 0.7; /* Slightly muted for inactive items */
}

.menu-vertical .menu-item.active .menu-link i,
.menu-vertical .menu-item.active .menu-link .menu-icon svg {
    opacity: 1;
}

/* End Sidebar */

/* Start Custom Select2 */

.select2-container--bootstrap-5
    .select2-selection--single
    .select2-selection__rendered {
    font-weight: 400 !important;
}

.select2-container--bootstrap-5
    .select2--large.select2-dropdown
    .select2-results__options
    .select2-results__option,
.select2-container--bootstrap-5
    .select2--large.select2-dropdown
    .select2-search
    .select2-search__field {
    font-size: 11px !important;
}

.select2-container--bootstrap-5.select2-container--focus .select2-selection,
.select2-container--bootstrap-5.select2-container--open .select2-selection {
    box-shadow: initial !important;
    border-color: var(--brand-primary) !important;
}

.select2-container--bootstrap-5
    .select2-dropdown
    .select2-search
    .select2-search__field:focus {
    box-shadow: initial !important;
    border-color: var(--brand-primary) !important;
}

.select2-container--bootstrap-5 .select2-dropdown {
    border-color: var(--brand-primary) !important;
}

.select2-container--bootstrap-5 .select2-selection {
    border: 1px solid #dbdade !important;
}

.select2-container--bootstrap-5 .select2--large.select2-selection {
    font-size: 15px !important;
    border-radius: 0.375rem !important;
}

.select2-container--bootstrap-5 .select2--large.select2-selection--single {
    padding: 0.422rem 1.7rem 0.422rem 0.875rem !important;
}

.select2-container--bootstrap-5 .select2--large.select2-selection {
    min-height: initial !important;
    height: auto;
}

.select2-container--bootstrap-5.select2-container--disabled .select2-selection,
.select2-container--bootstrap-5.select2-container--disabled.select2-container--focus
    .select2-selection {
    background-color: rgba(75, 70, 92, 0.08) !important;
    cursor: default !important;
}

/* End Custom Select2 */

/* Start Custom Loading Screen */

.loading-screen {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    width: 100%;
    height: 100%;
    z-index: 1110;
    overflow: hidden;
    background-color: #ffffff;
    opacity: 0.75;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

/* End Custom Loading Screen */

.swal2-container {
    z-index: 99999 !important;
}

.swal2-styled.swal2-confirm {
    background-color: var(--brand-primary) !important;
}

.swal2-styled.swal2-confirm:focus {
    box-shadow: 0 0 0 3px var(--brand-primary) 59 !important;
}

.swal2-title {
    font-size: 24px !important;
    font-weight: bold !important;
}

.swal2-html-container {
    font-size: 20px !important;
}

.swal2-container.swal2-bottom-end.swal2-backdrop-show {
    width: auto;
}

.swal2-popup.swal2-toast .swal2-icon.swal2-icon-show {
    margin-left: 10px !important;
}

.swal2-popup.swal2-toast .swal2-title {
    margin: 0.3em 0.4em 0em 0.8em !important;
}

.swal2-popup.swal2-toast .swal2-html-container {
    margin: 0em 0.4em 0.3em 1em !important;
    max-width: 354px;
}

.swal2-modal.swal2-popup .swal2-title {
    margin: 0 !important;
    max-width: 100% !important;
}

/* Card */

.card.card-border-shadow-primary::after {
    border-bottom-color: #6a99ad;
}

.card.card-border-shadow-primary:hover::after {
    border-bottom-color: var(--brand-primary);
}

/* Text */

.text-primary {
    color: var(--brand-primary) !important;
}

/* Table Editable */

.table-record-editable {
    cursor: pointer;
    border-bottom: dashed 1px var(--brand-primary);
}

.table-record-editable.unfilled {
    color: #00000091;
    font-style: italic;
    border-bottom: initial !important;
}

.table-record-editable.unfilled.validated {
    color: red !important;
    border-bottom: dashed 1px red !important;
}

.dropdown-menu-table {
    z-index: 1;
    border-radius: 0.375rem;
    background-color: #fff;
    font-weight: 600;
    margin-top: 0.5rem;
    box-shadow: 0 0.25rem 1rem rgb(165 163 174 / 45%);
    overflow: hidden;
    position: absolute;
    min-width: 356px;
    padding: 20px;
}

.dropdown-menu-table.right {
    right: 97px;
}

.dropdown-menu-table .dropdown-menu-table-item {
    margin-bottom: 1.2rem;
    margin-top: 1.2rem;
    text-align: left;
}

.dropdown-menu-table .dropdown-menu-table-item a {
    color: var(--bs-dropdown-link-color);
    font-weight: 400;
}

.dropdown-menu-table .dropdown-menu-table-item a:hover {
    color: var(--brand-primary);
    font-weight: 500;
}

/* Custom Navbar */

.custom-navbar {
    position: relative;
    padding-bottom: 70px;
}

.custom-navbar-child {
    margin-top: -27px;
    background-color: #f8f7fa;
    position: fixed;
    left: 273px;
    width: calc(100% - calc(1.5rem * 2) - 14.9rem);
    max-width: calc(1440px - calc(1.5rem * 2));
    z-index: 1074;
    padding-top: 24px;
}

@media (max-width: 1199.98px) {
    .custom-navbar-child {
        width: calc(100% - (1.5rem * 2)) !important;
        left: 273px !important;
    }
}

@media (max-width: 991.98px) {
    .custom-navbar-child {
        width: calc(100% - (0.3rem * 2)) !important;
        left: 5px !important;
    }

    .custom-navbar {
        padding-bottom: 164px !important;
    }
}

.custom-navbar-item {
    padding-left: 11px;
    padding-right: 11px;
}

.form-check-input:checked,
.form-check-input[type="checkbox"]:indeterminate {
    background-color: var(--brand-primary);
    border-color: var(--brand-primary);
}

.form-check-input:focus {
    border-color: var(--brand-primary);
}

.nav.nav-pills .nav-link {
    background-color: var(--brand-primary) 2d;
}

.nav-pills .nav-link.active,
.nav-pills .nav-link.active:hover,
.nav-pills .nav-link.active:focus {
    background-color: var(--brand-primary);
}

.nav-tabs .nav-link:not(.active):hover,
.nav-tabs .nav-link:not(.active):focus,
.nav-pills .nav-link:not(.active):hover,
.nav-pills .nav-link:not(.active):focus {
    background-color: var(--brand-primary) 3b;
    color: var(--brand-primary);
}

.form-check {
    padding-left: 2.2em;
    margin-bottom: 0;
    min-height: 0;
}

.lt-1 {
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
    line-clamp: 1;
}

.lt-2 {
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
}

.lt-3 {
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    line-clamp: 3;
}

.lt-4 {
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    line-clamp: 4;
}

/* .badge {
    padding: 6px 8px 5px 6px;
    font-size: 11px;
    line-height: 0;
} */

.bg-menu-theme .menu-sub > .menu-item > .menu-link:before {
    content: "\f111";
    font-family: "Font Awesome 6 Pro";
    font-weight: 400;
    font-size: 0.5rem;
}

.bg-label-primary {
    background-color: #f1fbff !important;
}

.bg-label-success {
    color: initial !important;
}

.bg-label-warning {
    color: initial !important;
}

.form-select {
    color: black;
}

.datepicker table tr td.range,
.datepicker table tr td.range.highlighted,
.datepicker table tr td.range.today {
    color: var(--brand-primary) !important;
    background: #fdf0f4 !important;
}

.fancybox__container {
    z-index: 9999 !important;
}

/* line 1253, src/assets/scss/custom/_style.scss */
#preloader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background-color: var(--brand-primary);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    text-align: center;
    z-index: 999999;
}

/* line 1266, src/assets/scss/custom/_style.scss */
.preloader-icon {
    width: 60px;
    height: 60px;
}

/* line 1270, src/assets/scss/custom/_style.scss */
.loading-bar {
    width: 120px;
    height: 3px;
    margin-top: 30px;
    position: relative;
    overflow: hidden;
    background: black;
}

/* line 1279, src/assets/scss/custom/_style.scss */
.loading-bar::before {
    content: "";
    width: 35px;
    height: 3px;
    background: #ffffff;
    position: absolute;
    left: -34px;
    -webkit-animation: bluebar 1.5s infinite ease;
    animation: bluebar 1.5s infinite ease;
}

@-webkit-keyframes bluebar {
    50% {
        left: 96px;
    }
}

@keyframes bluebar {
    50% {
        left: 96px;
    }
}

.alert-warning {
    background-color: #ff8000;
    border-color: #ff8000;
    color: #ffffff;
}

.bg-primary {
    background-color: var(--brand-primary) !important;
}

.user-profile-header-banner img {
    width: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    height: 250px;
}

.user-profile-header {
    margin-top: -2rem;
}

.user-profile-header .user-profile-img {
    border: 5px solid;
    width: 120px;
    border-color: white;
}

@media (max-width: 767.98px) {
    .user-profile-header-banner img {
        height: 150px;
    }

    .user-profile-header .user-profile-img {
        width: 100px;
    }
}

.custom-table > :not(caption) > * > * {
    padding: 0.5rem 0.5rem 0.5rem 0rem;
}

#select-container {
    max-height: 100px;
    overflow-y: auto;
}

.single.selectize-dropdown {
    z-index: 9999999999999;
}

.selectize-input.items.full.has-options.has-items .item {
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
}

.selectize-input.items.full.has-options.has-items input {
    display: none !important;
}

.selectize-control .selectize-input.disabled {
    opacity: 1 !important;
    background-color: rgba(75, 70, 92, 0.08) !important;
}

.form-select:disabled {
    color: var(--bs-body-color);
}

.card.card-border-shadow-primary::after {
    border-bottom-color: #f9c2c2;
}

.card.card-border-shadow-primary:hover::after {
    border-bottom-color: #f06767;
}
