/* Little League Field Booking - Site Styles */

body { background: #f8f9fa; }

/* Field sport badges */
.badge-baseball { background-color: #0d6efd; }
.badge-softball  { background-color: #d63384; }
.badge-both      { background-color: #198754; }

/* Calendar grid */
.calendar-grid { width: 100%; border-collapse: collapse; }
.calendar-grid th {
    background: #198754; color: #fff;
    text-align: center; padding: 8px 4px;
    font-weight: 600; font-size: .85rem;
}
.calendar-grid td {
    vertical-align: top;
    border: 1px solid #dee2e6;
    padding: 4px;
    min-height: 80px;
    width: 14.28%;
}
.calendar-grid td.today { background: #fffbe6; border-color: #ffc107; }
.calendar-grid td.past  { background: #f1f3f5; color: #adb5bd; }
.calendar-grid td.other-month { opacity: .45; }

.cal-day-num {
    font-size: .75rem; font-weight: 600;
    color: #495057; margin-bottom: 2px;
}
.cal-booking {
    font-size: .72rem;
    border-radius: 3px;
    padding: 1px 4px;
    margin-bottom: 2px;
    background: #d1ecf1; border-left: 3px solid #0dcaf0;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    cursor: pointer;
}
.cal-booking.mine {
    background: #d4edda; border-left-color: #198754;
}
.cal-blackout {
    font-size: .72rem;
    border-radius: 3px;
    padding: 1px 4px;
    margin-bottom: 2px;
    background: #f8d7da; border-left: 3px solid #dc3545;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* Booking form field cards */
.field-card {
    cursor: pointer;
    transition: all .15s;
    border: 2px solid transparent;
}
.field-card:hover { border-color: #198754; box-shadow: 0 0 0 2px rgba(25,135,84,.15); }
.field-card.selected { border-color: #198754; background: #f0faf4; }

/* Time slot grid */
.slot-btn {
    min-width: 80px;
    margin: 3px;
}

/* Alert improvements */
.alert-blackout-warn {
    border-left: 4px solid #fd7e14;
    background: #fff3cd;
}

/* Admin tables */
.table-admin th { font-size: .82rem; text-transform: uppercase;
                  letter-spacing: .04em; color: #6c757d; }

/* Responsive tweaks */
@media (max-width: 576px) {
    .calendar-grid td { min-height: 50px; padding: 2px; }
    .cal-day-num { font-size: .65rem; }
    .cal-booking, .cal-blackout { display: none; }
    .cal-booking:first-of-type, .cal-blackout:first-of-type { display: block; }
}

/* Calendar cell booking/blackout text — stacked lines */
.cal-booking, .cal-blackout {
    display: block;
    white-space: normal;
    overflow: hidden;
    text-overflow: unset;
    line-height: 1.35;
    border-radius: 3px;
    padding: 2px 4px;
    margin-bottom: 3px;
}
.cal-booking  { background: #d4edda; border-left: 3px solid #198754; }
.cal-booking.mine { background: #d4edda; border-left: 3px solid #198754; }
.cal-blackout { background: #f8d7da; border-left: 3px solid #dc3545; }
.cal-time {
    display: block;
    font-size: .68rem;
    font-weight: 700;
    color: #333;
}
.cal-team {
    display: block;
    font-size: .72rem;
    color: #333;
}
.cal-field-name {
    display: block;
    font-size: .65rem;
    opacity: .75;
    font-style: italic;
    color: #333;
}