/* Sidebar Styles */
#sidebar-wrapper {
    min-height: 100vh;
    margin-left: -15rem;
    transition: margin .25s ease-out;
    width: 15rem;
    z-index: 1000;
    box-shadow: 0 0.15rem 1.75rem 0 rgba(58, 59, 69, 0.15);
}

#sidebar-wrapper .sidebar-heading {
    padding: 0.875rem 1.25rem;
    font-size: 1.2rem;
}

#sidebar-wrapper .list-group {
    width: 15rem;
}

#page-content-wrapper {
    min-width: 100vw;
}

#wrapper.toggled #sidebar-wrapper {
    margin-left: 0;
}

#wrapper.toggled #page-content-wrapper {
    margin-left: 15rem;
    min-width: calc(100vw - 15rem);
}

.sidebar-heading {
    background: linear-gradient(45deg, #0d6efd, #6610f2) !important;
}

.list-group-item.active {
    background-color: #0d6efd !important;
    border-color: #0d6efd !important;
}

/* Responsive */
@media (min-width: 768px) {
    #sidebar-wrapper {
        margin-left: 0;
    }
    
    #page-content-wrapper {
        min-width: 0;
        width: 100%;
    }
    
    #wrapper.toggled #sidebar-wrapper {
        margin-left: -15rem;
    }
    
    #wrapper.toggled #page-content-wrapper {
        margin-left: 0;
    }
}

/* Card Styles */
.card {
    border: 1px solid #e3e6f0;
    border-radius: 0.35rem;
}

.card-header {
    background-color: #f8f9fc;
    border-bottom: 1px solid #e3e6f0;
}

/* Table Styles */
.table th {
    border-top: none;
    font-weight: 600;
    color: #5a5c69;
}

/* Calendar Styles */
.calendar-day {
    border: 1px solid #e3e6f0;
    height: 120px;
    overflow-y: auto;
}

.calendar-day.today {
    background-color: #f0f8ff;
}

.calendar-day-header {
    background-color: #f8f9fc;
    padding: 5px;
    border-bottom: 1px solid #e3e6f0;
}

.calendar-event {
    font-size: 0.85rem;
    padding: 2px 5px;
    margin: 2px;
    border-radius: 3px;
    background-color: #e7f1ff;
    border-left: 3px solid #0d6efd;
}

/* DataTables Custom */
.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter {
    padding: 1rem 0;
}

.dataTables_wrapper .dataTables_paginate .paginate_button {
    padding: 0.375rem 0.75rem;
    margin-left: 2px;
    border-radius: 0.25rem;
}

/* Custom Colors */
.bg-primary {
    background-color: #0d6efd !important;
}

.text-primary {
    color: #0d6efd !important;
}

.btn-primary {
    background-color: #0d6efd;
    border-color: #0d6efd;
}

.btn-primary:hover {
    background-color: #0b5ed7;
    border-color: #0a58ca;
}