body {
    background-color: #f8f9fa;
    font-family: "Segoe UI", Tahoma, Arial, sans-serif;
}

/* Half-shift schedule grid */
.schedule-grid {
    overflow-x: auto;
}

.schedule-grid table {
    min-width: 600px;
}

.half-night {
    background-color: #2c3e50;
    color: #ecf0f1;
}

.half-day {
    background-color: #ecf0f1;
    color: #2c3e50;
}

.cell-online .badge {
    background-color: #2980b9 !important;
}

.cell-offline .badge {
    background-color: #27ae60 !important;
}

.gap-marker {
    background-color: #e74c3c !important;
    color: white;
}

/* Preference colors */
.pref-highest {
    background-color: #27ae60;
    color: white;
}

.pref-medium {
    background-color: #f39c12;
    color: white;
}

.pref-lowest {
    background-color: #e67e22;
    color: white;
}

.pref-blocked {
    background-color: #e74c3c;
    color: white;
}

.pref-none {
    background-color: #bdc3c7;
    color: #7f8c8d;
}

/* Score bars */
.score-bar {
    height: 8px;
    border-radius: 4px;
    background-color: #ecf0f1;
}

.score-bar-fill {
    height: 100%;
    border-radius: 4px;
    transition: width 0.3s;
}

.score-coverage .score-bar-fill { background-color: #e74c3c; }
.score-preference .score-bar-fill { background-color: #3498db; }
.score-fairness .score-bar-fill { background-color: #2ecc71; }

/* Type badges */
.type-online { background-color: #2980b9 !important; }
.type-mixed { background-color: #8e44ad !important; }
.type-offline { background-color: #27ae60 !important; }

/* Candidate cards */
.candidate-card {
    transition: transform 0.2s;
    cursor: pointer;
}

.candidate-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

/* Mobile */
@media (max-width: 768px) {
    .schedule-grid table {
        font-size: 0.85rem;
    }
}
