body {
    background-color: #f8f9fa;
}

.card {
    box-shadow: 0 1px 3px rgba(0,0,0,.1);
    border: none;
}

.card-header {
    font-weight: 600;
}

.navbar-brand i {
    margin-right: .3rem;
}

/* Auth pages */
.auth-container {
    max-width: 420px;
    margin: 60px auto;
}

/* Availability matrix */
.avail-matrix th, .avail-matrix td {
    text-align: center;
    vertical-align: middle;
    min-width: 50px;
}

.avail-cell {
    cursor: pointer;
    width: 40px;
    height: 40px;
    border-radius: 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    transition: background-color .15s;
}

.avail-cell.available {
    background-color: #198754;
    color: #fff;
}

.avail-cell.unavailable {
    background-color: #dc3545;
    color: #fff;
}

.avail-cell:hover {
    opacity: .85;
}

.avail-cell.locked {
    cursor: not-allowed;
    opacity: .6;
}

/* Drag-and-drop combinations */
.combination-card {
    min-height: 80px;
    border: 2px dashed #dee2e6;
    border-radius: 8px;
    padding: .75rem;
    margin-bottom: .75rem;
    transition: border-color .2s;
}

.combination-card.drag-over {
    border-color: #0d6efd;
    background-color: #e7f1ff;
}

.athlete-chip {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .35rem .75rem;
    border-radius: 20px;
    background: #e9ecef;
    margin: .25rem;
    cursor: grab;
    font-size: .9rem;
    user-select: none;
}

.athlete-chip:active {
    cursor: grabbing;
}

.athlete-chip.compatible {
    background: #d1e7dd;
    border: 1px solid #198754;
}

.athlete-chip.incompatible {
    background: #f8d7da;
    border: 1px solid #dc3545;
}

/* Athlete note icon */
.athlete-note-icon {
    cursor: help;
    font-size: .85rem;
}

/* Combo timeslot labels */
.combo-ts-label {
    font-size: .75rem !important;
    padding: .25rem .5rem !important;
    transition: all .15s;
}

/* Week selection */
.week-card {
    cursor: pointer;
    transition: all .2s;
    border: 2px solid transparent;
}

.week-card:hover {
    border-color: #0d6efd;
}

.week-card.selected {
    border-color: #198754;
    background-color: #d1e7dd;
}

.week-card.locked {
    cursor: not-allowed;
    opacity: .6;
}

/* Cost summary */
.cost-summary {
    font-size: 1.1rem;
    padding: 1rem;
    background: #fff3cd;
    border-radius: 8px;
    border: 1px solid #ffc107;
}

/* Badge styles */
.badge-acro { background-color: #6f42c1; }
.badge-artistica { background-color: #e83e8c; }
.badge-both { background-color: #fd7e14; }

/* Table improvements */
.table th {
    white-space: nowrap;
}

/* Responsive helpers */
@media (max-width: 768px) {
    .avail-matrix {
        font-size: .85rem;
    }
    .avail-cell {
        width: 32px;
        height: 32px;
        font-size: 1rem;
    }
}
