/* =====================================================
   BATCH TIMETABLE
===================================================== */


/* =====================================================
   HERO
===================================================== */

.batch-hero {

    padding: 70px 0 65px;

    background:
        radial-gradient(
            circle at 90% 0%,
            rgba(37, 99, 235, .10),
            transparent 35%
        ),
        linear-gradient(
            135deg,
            #f5f8ff,
            #ffffff
        );

    position: relative;

    overflow: hidden;

}


.batch-hero::before {

    content: "";

    position: absolute;

    width: 350px;
    height: 350px;

    border-radius: 50%;

    background: rgba(37, 99, 235, .05);

    top: -200px;
    right: -100px;

}


.batch-hero .container {

    position: relative;

    z-index: 2;

}


.batch-breadcrumb {

    display: flex;

    align-items: center;

    gap: 8px;

    margin-bottom: 30px;

    font-size: 14px;

    color: #64748b;

}


.batch-breadcrumb a {

    color: #1e3a8a;

    text-decoration: none;

}


.batch-breadcrumb span {

    font-size: 18px;

}


.batch-hero h1 {

    font-size: clamp(42px, 5vw, 64px);

    line-height: 1.05;

    margin: 15px 0;

    color: #101936;

    font-weight: 800;

    letter-spacing: -2px;

}


.batch-hero h1 span {

    color: #1d4ed8;

}


.batch-hero p {

    max-width: 620px;

    font-size: 18px;

    line-height: 1.8;

    color: #64748b;

}



/* =====================================================
   MAIN SECTION
===================================================== */

.batch-section {

    padding: 70px 0 100px;

    background: #f8fafc;

}


.batch-panel {

    background: #ffffff;

    border: 1px solid #e5eaf2;

    border-radius: 24px;

    overflow: hidden;

    box-shadow:
        0 20px 60px rgba(15, 23, 42, .07);

}



/* =====================================================
   PANEL HEADER
===================================================== */

.batch-panel-header {

    display: flex;

    justify-content: space-between;

    align-items: center;

    gap: 30px;

    padding: 34px 36px;

}


.batch-panel-eyebrow {

    display: inline-block;

    font-size: 12px;

    font-weight: 700;

    letter-spacing: 1.8px;

    text-transform: uppercase;

    color: #2563eb;

    margin-bottom: 8px;

}


.batch-panel-header h2 {

    margin: 0 0 7px;

    font-size: 28px;

    color: #101936;

}


.batch-panel-header p {

    margin: 0;

    color: #64748b;

    font-size: 14px;

}



/* =====================================================
   LOCATION SWITCHER
===================================================== */

.location-switcher {

    display: flex;

    padding: 5px;

    gap: 4px;

    background: #f1f5f9;

    border-radius: 14px;

    flex-shrink: 0;

}


.location-btn {

    border: none;

    background: transparent;

    color: #64748b;

    padding: 12px 18px;

    border-radius: 10px;

    cursor: pointer;

    display: flex;

    align-items: center;

    gap: 7px;

    font-family: inherit;

    font-size: 14px;

    font-weight: 600;

    transition: .3s ease;

}


.location-btn .material-symbols-outlined {

    font-size: 19px;

}


.location-btn:hover {

    color: #1d4ed8;

}


.location-btn.active {

    color: #ffffff;

    background: #172554;

    box-shadow:
        0 5px 15px rgba(23, 37, 84, .20);

}



/* =====================================================
   CATEGORY TABS
===================================================== */

.batch-tabs {

    display: flex;

    align-items: stretch;

    gap: 5px;

    padding: 0 28px;

    border-top: 1px solid #eef2f7;

    border-bottom: 1px solid #e5eaf2;

    background:
        linear-gradient(
            90deg,
            #ffffff,
            #f8fafc
        );

    overflow-x: auto;

}


.batch-tab {

    position: relative;

    border: none;

    background: transparent;

    padding: 20px 22px;

    color: #475569;

    font-family: inherit;

    font-size: 14px;

    font-weight: 600;

    white-space: nowrap;

    cursor: pointer;

    transition: .3s ease;

}


.batch-tab::after {

    content: "";

    position: absolute;

    left: 20px;
    right: 20px;

    bottom: 0;

    height: 3px;

    border-radius: 5px 5px 0 0;

    background: #2563eb;

    transform: scaleX(0);

    transition: .3s ease;

}


.batch-tab:hover {

    color: #1d4ed8;

}


.batch-tab.active {

    color: #1d4ed8;

    background: #f8fbff;

}


.batch-tab.active::after {

    transform: scaleX(1);

}



/* =====================================================
   TABLE CONTROLS
===================================================== */

.table-controls {

    display: flex;

    align-items: center;

    justify-content: space-between;

    padding: 20px 28px;

    border-bottom: 1px solid #e8edf3;

    gap: 20px;

}


.entries-control {

    display: flex;

    align-items: center;

    gap: 7px;

    color: #64748b;

    font-size: 14px;

}


.entries-control select {

    height: 38px;

    padding: 0 28px 0 10px;

    border: 1px solid #dbe2ea;

    border-radius: 8px;

    background: #ffffff;

    color: #1e293b;

    outline: none;

    cursor: pointer;

}


.table-search {

    width: 260px;

    height: 42px;

    display: flex;

    align-items: center;

    gap: 8px;

    padding: 0 13px;

    border: 1px solid #dbe2ea;

    border-radius: 10px;

    background: #ffffff;

    transition: .3s ease;

}


.table-search:focus-within {

    border-color: #2563eb;

    box-shadow:
        0 0 0 3px rgba(37, 99, 235, .08);

}


.table-search .material-symbols-outlined {

    font-size: 20px;

    color: #94a3b8;

}


.table-search input {

    width: 100%;

    border: none;

    outline: none;

    background: transparent;

    font-family: inherit;

    font-size: 14px;

    color: #1e293b;

}


.table-search input::placeholder {

    color: #94a3b8;

}



/* =====================================================
   TABLE
===================================================== */

.batch-table-wrapper {

    width: 100%;

    overflow-x: auto;

}


.batch-table {

    width: 100%;

    border-collapse: collapse;

    min-width: 760px;

}


.batch-table thead {

    background: #f1f5f9;

}


.batch-table th {

    padding: 18px 20px;

    text-align: left;

    font-size: 12px;

    font-weight: 700;

    letter-spacing: .5px;

    text-transform: uppercase;

    color: #475569;

    border-bottom: 1px solid #dbe2ea;

    white-space: nowrap;

}


.batch-table td {

    padding: 20px;

    font-size: 14px;

    color: #475569;

    border-bottom: 1px solid #edf1f5;

    vertical-align: middle;

}


.batch-table tbody tr {

    transition: .25s ease;

}


.batch-table tbody tr:hover {

    background: #f8fbff;

}


.batch-table tbody tr:last-child td {

    border-bottom: none;

}



/* =====================================================
   SERIAL NUMBER
===================================================== */

.batch-number {

    width: 60px;

    color: #94a3b8 !important;

    font-weight: 600;

}



/* =====================================================
   COURSE NAME
===================================================== */

.batch-course {

    color: #172554 !important;

    font-weight: 700;

    min-width: 240px;

}


.batch-course-wrapper {

    display: flex;

    align-items: center;

    gap: 12px;

}


.batch-course-icon {

    width: 40px;

    height: 40px;

    flex-shrink: 0;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 10px;

    background: #eff6ff;

    color: #2563eb;

}


.batch-course-icon .material-symbols-outlined {

    font-size: 20px;

}



/* =====================================================
   FACULTY
===================================================== */

.batch-faculty {

    color: #475569 !important;

    font-weight: 500;

}



/* =====================================================
   DATE
===================================================== */

.batch-date {

    white-space: nowrap;

    color: #475569 !important;

}



/* =====================================================
   TIME
===================================================== */

.batch-time {

    white-space: nowrap;

}


.time-badge {

    display: inline-flex;

    align-items: center;

    gap: 6px;

    padding: 7px 11px;

    border-radius: 8px;

    background: #f1f5f9;

    color: #334155;

    font-size: 13px;

    font-weight: 600;

}


.time-badge .material-symbols-outlined {

    font-size: 17px;

    color: #2563eb;

}



/* =====================================================
   FOOTER
===================================================== */

.batch-panel-footer {

    display: flex;

    justify-content: space-between;

    align-items: center;

    padding: 18px 28px;

    border-top: 1px solid #e8edf3;

    background: #fbfcfe;

    font-size: 13px;

    color: #94a3b8;

}


.batch-location-display {

    display: flex;

    align-items: center;

    gap: 5px;

    color: #475569;

}


.batch-location-display .material-symbols-outlined {

    color: #2563eb;

    font-size: 18px;

}



/* =====================================================
   EMPTY
===================================================== */

.batch-empty {

    display: none;

    text-align: center;

    padding: 70px 20px;

}


.batch-empty.show {

    display: block;

}


.batch-empty .material-symbols-outlined {

    font-size: 48px;

    color: #cbd5e1;

}


.batch-empty h3 {

    margin: 15px 0 5px;

    color: #334155;

}


.batch-empty p {

    margin: 0;

    color: #94a3b8;

}



/* =====================================================
   WHATSAPP
===================================================== */

.batch-whatsapp {

    position: fixed;

    right: 25px;

    bottom: 25px;

    width: 58px;

    height: 58px;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 50%;

    background: #22c55e;

    color: #ffffff;

    text-decoration: none;

    box-shadow:
        0 12px 30px rgba(34, 197, 94, .30);

    z-index: 1000;

    transition: .3s ease;

}


.batch-whatsapp:hover {

    transform: translateY(-4px);

    box-shadow:
        0 18px 35px rgba(34, 197, 94, .35);

}


.batch-whatsapp .material-symbols-outlined {

    font-size: 28px;

}



/* =====================================================
   BATCH TIMETABLE RESPONSIVE
===================================================== */

@media (max-width: 992px) {

    .batch-panel-header {

        flex-direction: column;

        align-items: flex-start;

    }


    .location-switcher {

        width: 100%;

    }


    .location-btn {

        flex: 1;

        justify-content: center;

    }

}


@media (max-width: 768px) {

    .batch-hero {

        padding: 45px 0 50px;

    }


    .batch-hero h1 {

        font-size: 42px;

        letter-spacing: -1px;

    }


    .batch-hero p {

        font-size: 15px;

    }


    .batch-section {

        padding: 40px 0 70px;

    }


    .batch-panel {

        border-radius: 18px;

    }


    .batch-panel-header {

        padding: 25px 20px;

    }


    .batch-panel-header h2 {

        font-size: 23px;

    }


    .location-switcher {

        flex-direction: column;

        gap: 4px;

    }


    .location-btn {

        width: 100%;

    }


    .batch-tabs {

        padding: 0 15px;

    }


    .batch-tab {

        padding: 17px 16px;

        font-size: 13px;

    }


    .table-controls {

        padding: 16px;

        flex-direction: column;

        align-items: stretch;

    }


    .table-search {

        width: 100%;

    }


    .batch-table th {

        padding: 15px;

    }


    .batch-table td {

        padding: 15px;

    }


    .batch-panel-footer {

        padding: 16px;

        flex-direction: column;

        align-items: flex-start;

        gap: 10px;

    }


    .batch-whatsapp {

        width: 52px;

        height: 52px;

        right: 18px;

        bottom: 18px;

    }

}