body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.navbar-brand img {
    height: 40px;
    margin-right: 10px;
}

.main-content {
    flex: 1;
    padding: 20px 0;
}

.sidebar {
    background-color: #f8f9fa;
    min-height: calc(100vh - 56px);
    padding: 20px;
}

.sidebar .nav-link {
    color: #333;
    padding: 10px 15px;
    margin-bottom: 5px;
    border-radius: 5px;
}

.sidebar .nav-link:hover,
.sidebar .nav-link.active {
    background-color: var(--primary-color);
    color: white;
}

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

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

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

.btn-primary,
.btn-outline-primary:hover {
    background-color: var(--primary-color) !important;
    border-color: var(--primary-color) !important;
    color: #fff !important;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
    background-color: var(--primary-hover) !important;
    border-color: var(--primary-hover) !important;
    color: #fff !important;
}

.btn-outline-primary {
    color: var(--primary-color) !important;
    border-color: var(--primary-color) !important;
}

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

.card {
    box-shadow: 0 0 10px rgba(0,0,0,0.1);
    margin-bottom: 20px;
}

.badge-status {
    padding: 5px 10px;
    border-radius: 5px;
    font-size: 12px;
}

.badge-draft { background-color: #6c757d; color: white; }
.badge-submitted { background-color: #ffc107; color: black; }
.badge-verified { background-color: #28a745; color: white; }
.badge-rejected { background-color: #dc3545; color: white; }

.badge-on-time { background-color: #28a745; color: white; }
.badge-late { background-color: #ffc107; color: black; }
.badge-not-submitted { background-color: #dc3545; color: white; }

.week-calendar {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 10px;
}

.day-card {
    border: 1px solid #ddd;
    padding: 15px;
    border-radius: 5px;
    min-height: 200px;
}

.day-card.has-lessons {
    background-color: #e7f5ff;
    border-color: #007bff;
}

.day-card.no-class {
    background-color: #fff3cd;
    border-color: #ffc107;
}

.lesson-item {
    background: white;
    border: 1px solid #ddd;
    padding: 8px;
    margin: 5px 0;
    border-radius: 3px;
    font-size: 14px;
}

.htmx-indicator {
    display: none;
}

.htmx-request .htmx-indicator {
    display: inline-block;
}
