.booking-hero {
    background: linear-gradient(135deg, #1a4a7a 0%, #1a6fc4 100%);
    color: #fff;
    padding: 48px 0 36px;
    text-align: center;
}
.booking-hero h1 { font-size: 2rem; margin-bottom: 8px; }
.booking-hero p { opacity: 0.9; max-width: 640px; margin: 0 auto; }

.booking-section { padding: 40px 0 60px; background: #f5f7fa; }

.booking-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 20px;
}
.booking-toolbar .nav-month {
    display: flex;
    align-items: center;
    gap: 12px;
}
.booking-toolbar .nav-month strong { font-size: 1.1rem; min-width: 160px; text-align: center; }
.booking-toolbar select {
    border: 1px solid #d0d7de;
    border-radius: 8px;
    padding: 8px 12px;
    min-width: 200px;
}

.bk-legend-pub {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    font-size: 13px;
    margin-bottom: 16px;
}
.bk-legend-pub span { display: inline-flex; align-items: center; gap: 6px; }

.booking-cal-wrap {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
    padding: 16px;
    margin-bottom: 28px;
}
.booking-cal-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 6px;
}
.booking-cal-head {
    text-align: center;
    font-weight: 700;
    font-size: 12px;
    padding: 10px 4px;
    color: #555;
}
.booking-cal-day {
    min-height: 88px;
    border: 1px solid #e8ecf0;
    border-radius: 8px;
    padding: 8px 6px;
    background: #fff;
    transition: box-shadow 0.2s;
}
.booking-cal-day.past { background: #fafafa; opacity: 0.7; }
.booking-cal-day .day-num { font-weight: 700; font-size: 14px; margin-bottom: 6px; }
.bk-mini-slot {
    font-size: 10px;
    padding: 3px 5px;
    border-radius: 4px;
    margin-bottom: 3px;
    line-height: 1.2;
}
.bk-mini-slot.available { background: #ecf0f1; color: #555; cursor: pointer; }
.bk-mini-slot.available:hover { background: #d5dbdb; }
.bk-mini-slot.pending { background: #fff3cd; color: #856404; }
.bk-mini-slot.confirmed { background: #d4edda; color: #155724; }
.bk-mini-slot.cancelled { background: #f8d7da; color: #721c24; }
.bk-mini-slot.selected { outline: 2px solid #1a6fc4; }

.booking-form-card {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
    padding: 24px;
}
.booking-form-card h3 { margin-bottom: 16px; color: #1a4a7a; }
.booking-form-card .form-group label { font-weight: 600; font-size: 14px; }
.booking-form-card .form-control {
    border-radius: 8px;
    border: 1px solid #d0d7de;
}
.booking-selected-info {
    background: #e8f4fd;
    border-radius: 8px;
    padding: 12px 16px;
    margin-bottom: 16px;
    font-size: 14px;
}
.booking-btn-submit {
    background: #1a6fc4;
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: 12px 28px;
    font-weight: 600;
    cursor: pointer;
}
.booking-btn-submit:hover { background: #155a9e; color: #fff; }
.booking-btn-submit:disabled { opacity: 0.6; cursor: not-allowed; }

.booking-alert {
    border-radius: 8px;
    padding: 14px 16px;
    margin-bottom: 16px;
}
.booking-alert-success { background: #d4edda; color: #155724; }
.booking-alert-error { background: #f8d7da; color: #721c24; }

.booking-note {
    font-size: 13px;
    color: #666;
    margin-top: 12px;
}

@media (max-width: 768px) {
    .booking-cal-day { min-height: 70px; }
    .bk-mini-slot { font-size: 9px; }
}
