* {
    padding: 0;
    margin: 0;
}

/* Scrollbar */
div::-webkit-scrollbar{
    width:2px;
}
div::-webkit-scrollbar-thumb{
    display: none;
    background-color: #777;
}
div::-webkit-scrollbar-track{
    background:transparent;
}
div:hover::-webkit-scrollbar-thumb{
    display: block;
}


.profile-picture-1{
    width: 1em;
    height: 1em;
}
.profile-picture-2{
    width: 2em;
    height: 2em;
}
.profile-picture-3{
    width:3em;
    height: 3em;
}
.profile-picture-4{
    width: 4em;
    height: 4em;
}
.profile-picture-5{
    width: 5em;
    height: 5em;
}

.profile-picture-6{
    width: 6em;
    height: 6em;
}
.profile-picture-7{
    width: 7em;
    height: 7em;
}
.bg-ccc{
    background:#dfdeeb !important;
}
.bg-ddd{
    background: #ddd impr !important;
}
.bg-eee{
    background:#eee !important;
}
.bg-navy{
    background:navy !important;
}
.text-navy{
    color:navy !important;
}
.bg-blue{
    background: #363457 !important;
}
.text-blue{
    color: #363457 !important;
}
.btn-blue{
    background: #363457 !important;
    color: white !important;
}
.pointer{
    cursor: pointer !important;
}
.bg-gradient-gray-white {
    background: linear-gradient(to right, rgb(243, 240, 240) , rgb(219, 216, 216)) !important;
}

.pageLink:hover{
    color:navy !important;
}
.or-seperator{
    position:relative;
}
.or-seperator::before{
    content : '';
    position: absolute;
    left: 0;
    bottom: 50%;
    border: 1px solid rgb(99, 144, 239);
    width: 40%;

}
.or-seperator::after{
    content : '';
    position: absolute;
    right: 0;
    bottom: 50%;
    border: 1px solid rgb(99, 144, 239);
    width: 40%;
}

/*======= Printing View ==============*/
@media print {
    @page {
        size: letter portrait; /* Or letter */        
    }
    body {
        font-size: 16px !important;
    }
    #print_section {
        page-break-inside: avoid;
        width: 100%;
    }

    /* #letter_head .logo{
        width: 140px !important;
    } */
    .d-flex.my-1 span {
        font-size: 11px !important;
    }
    .row.align-items-start {
        display: flex;
        flex-wrap: wrap;
    }
    .row.col-12.col-sm-6 {
        max-width: 50%;
    }
    table {
        font-size: 10px;
        width: 100%;
    }
    table th, table td {
        padding: 2px;
    }
    .table-responsive {
        overflow: hidden;
    }
    #companyFooter {
        position: absolute;
        bottom: 0;
        left: 0;
        width: 100%;
        text-align: center;
        font-size: 12px !important;
        padding: 10px 0;
        background-color: white; /* Ensure it is visible */
    }

    /* Ensure the print section takes full height so the footer has space */
    #print_section {
        min-height: 100vh;
        position: relative;
        padding-bottom: 50px; /* Space for footer */
    }

    /* Hide DataTables controls (search box, length menu, export buttons,
       pagination, info text) when printing – they are not part of the
       official document. Covers DataTables 2.x (dt-*) and legacy (dataTables_*). */
    .dt-buttons, div.dt-buttons, .dt-search, .dt-length, .dt-info, .dt-paging,
    .dataTables_filter, .dataTables_length, .dataTables_info, .dataTables_paginate,
    .dataTables_wrapper .dataTables_paginate, .dataTables_wrapper .dataTables_filter,
    .dataTables_wrapper .dataTables_length, .dataTables_wrapper .dataTables_info {
        display: none !important;
    }

    /* Remove DataTables' scroll wrappers so the full table flows onto the page */
    .dataTables_wrapper, .dt-container {
        overflow: visible !important;
        width: 100% !important;
    }
    .dataTables_scrollBody, .dt-scroll-body {
        overflow: visible !important;
        max-height: none !important;
    }

    /* Generic opt-out: mark any on-screen-only control with .no-print */
    .no-print {
        display: none !important;
    }

    /* Bordered tables (class lists, mark sheets, reports) must show crisp,
       clearly-visible BLACK gridlines on paper – Bootstrap's default light-grey
       border prints too faint on A4. */
    .table-bordered,
    .table-bordered > :not(caption) > * > * {
        border-color: #000 !important;
        border-width: 1px !important;
        border-style: solid !important;
    }
    .table-bordered thead th,
    .table-bordered thead td {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
}


/* ========= Payment Design ==================*/
.payment-card {
    max-width: 500px;
    margin: auto;
    padding: 20px;
    border-radius: 10px;
    box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1);
}
.payment-method button {
    width: 48%;
}
.selected {
    border: 2px solid #0d6efd !important;
    background-color: #256fdd !important;
    color: white !important;
}

/*=============Toggler button===================*/
.toggle-button {
    position: relative;
    width: 50px; /* Slightly wider for better UX */
    height: 24px; /* Increased height for better touch interaction */
    border: solid 1px #bbb;
    border-radius: 12px;
    background: #ddd;
    cursor: pointer;
    transition: background 0.3s ease-in-out;
}

/* Toggle button circle */
.toggle-button > .toggle-button-icon {
    background-color: #777;
    position: absolute;
    top: 50%;
    left: 3px;
    width: 20px; 
    height: 20px;
    border-radius: 50%;
    transform: translateY(-50%);
    transition: all 0.3s ease-in-out;
}

/* Active state */
.toggle-button.active {
    background: #4CAF50; /* Green for active state */
}

.toggle-button.active > .toggle-button-icon {
    left: calc(100% - 23px); /* Move to the right */
    background-color: #fff;
}
/*=============Toggler StatuS===================*/
.toggle-status {
    position: relative;
    width: 50px; /* Slightly wider for better UX */
    height: 24px; /* Increased height for better touch interaction */
    border: solid 1px #f27979;
    border-radius: 12px;
    background: #9e1818;
    cursor: pointer;
    transition: background 0.3s ease-in-out;
}

/* Toggle button circle */
.toggle-status > .toggle-button-icon {
    background-color: #9c5858;
    position: absolute;
    top: 50%;
    left: 3px;
    width: 20px; 
    height: 20px;
    border-radius: 50%;
    transform: translateY(-50%);
    transition: all 0.3s ease-in-out;
}

/* Active state */
.toggle-status.active {
    background: #4CAF50; /* Green for active state */
    border: solid 1px #8fc287;
}

.toggle-status.active > .toggle-button-icon {
    left: calc(100% - 23px); /* Move to the right */
    background-color: #fff;
}

/*========Filtering===========================*/
#filterArray .list-group-item.selected{
    color: white;
    background: #1A3A6F !important;
}



/*===================
     Loader CSS 
 ===================*/
 #loader {
    position: fixed;
    z-index: 10001;
    width: 100vw;
    height: 100vh;
    background: rgba(0, 0, 0, 0.5);
    display: none;
  }
  
  #loader .spinner {
    border: 6px solid #f3f3f3;
    border-top: 6px solid #1A3A6F;
    border-radius: 50%;
    width: 100px;
    height: 100px;
    animation: spin 1s linear infinite;
    margin: 40vh auto;
    
  }
  
  @keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
  }

  /* Skeleton loader base */
.skeleton {
  position: relative;
  overflow: hidden;
  background: #e0e0e0; 
  border-radius: 4px;
  min-height: 16px;     
}

.skeleton::after {
  content: "";
  position: absolute;
  top: 0;
  left: -150px;
  height: 100%;
  width: 200px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
  animation: shimmer 1.2s infinite;
}

@keyframes shimmer {
  100% {
    left: 100%;
  }
}

/* ===== Class mark-list sheet ===== */
.class-list-table{ border-collapse: collapse !important; width: 100%; }
.class-list-table th,
.class-list-table td{ border: 1px solid #000 !important; vertical-align: middle; }
.class-list-table thead th{ background: #e9ecef !important; text-align: center; padding: 6px; }
.class-list-table tbody td{ height: 30px; padding: 4px 6px; }
@media print{
    .class-list-table th,
    .class-list-table td{ border: 1px solid #000 !important; }
    .class-list-table thead th{
        background: #e9ecef !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
    .class-list-table tbody td{ height: 34px; }
}
