.hidden {display: none !important;}
.result-alert {margin:15px 0;padding:12px;border-radius:4px;font-weight:500;}
.result-success {background:#f0f9f0;border:1px solid #d0e9d0;color:#2d7d2d;display:block;}
.result-error {background:#fcf0f0;border:1px solid #e0c0c0;color:#a04040;display:block;}
.loading {display:inline-block;width:20px;height:20px;border:3px solid rgba(139,90,43,0.3);border-radius:50%;border-top-color:#8b5a2b;animation:spin 1s ease-in-out infinite;vertical-align:middle;margin-right:8px;display:none;}
@keyframes spin {to {transform:rotate(360deg);}}
.btn-loading .loading {display:inline-block;}
.btn-loading span {visibility:hidden;}

.custom-calendar {width:100%;margin:20px auto;background:#fff;border:1px solid #e0d8c8;border-radius:4px;padding:15px;}
.calendar-header {display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;padding-bottom:10px;border-bottom:1px solid #e0d8c8;}
.cal-nav {color:#8b5a2b;font-size:1.2em;padding:5px 10px;border-radius:4px;transition:background 0.3s;cursor:pointer;}
.cal-nav.disabled {color:#c8c0b0;cursor:not-allowed;}
.cal-nav:not(.disabled):hover {background:#f0ead8;}
.calendar-month {margin:0;font-size:1.1em;color:#5d4037;}
.calendar-weekdays {display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-bottom:10px;}
.calendar-weekday {text-align:center;padding:8px 0;font-weight:500;color:#5d4037;background:#f0ead8;border-radius:2px;font-size:0.9em;}
.calendar-days {display:grid;grid-template-columns:repeat(7,1fr);gap:5px;}
.calendar-day {text-align:center;padding:8px 5px;border:1px solid #e0d8c8;border-radius:2px;cursor:default;transition:all 0.3s;background:#fff;user-select:none;min-height:60px;display:flex;flex-direction:column;justify-content:center;}
.day-number {font-size:1.1em;font-weight:500;}
.day-capacity {font-size:0.8em;color:#666;margin-top:4px;}
.calendar-day.selectable {cursor:pointer;}
.calendar-day.selectable:hover {background:#f0ead8;border-color:#d0c0a0;}
.calendar-day.selected {background:#e6d9c6;color:#5d4037;border-color:#c0b090;font-weight:bold;}
.calendar-day.past {background:#f8f5f0;color:#a09888;border-color:#e8e0d0;}
.calendar-day.empty {border:none;background:transparent;}

.booking-form {width:100%;margin:0 auto;padding:20px;background:#fff;border:1px solid #e0d8c8;border-radius:4px;}
.booking-form h3 {margin-top:0;padding-bottom:10px;border-bottom:1px solid #e0d8c8;color:#5d4037;font-size:1.2em;}
.booking-form p {color:#666;margin:10px 0;}
#selected-date-text {color:#8b5a2b;font-weight:500;}
.booking-form label {display:block;margin-bottom:8px;color:#5d4037;font-weight:500;}
.booking-form input[type="text"],.booking-form input[type="email"],.booking-form input[type="number"],.booking-form textarea {width:100%;padding:10px;margin-bottom:15px;border:1px solid #e0d8c8;border-radius:2px;background:#fcfbfa;font-size:1em;}
.booking-form input[type="text"]:focus,.booking-form input[type="email"]:focus,.booking-form input[type="number"]:focus,.booking-form textarea:focus {outline:none;border-color:#c0b090;background:#fff;}
.booking-form input[type="radio"],.booking-form input[type="checkbox"] {margin-right:8px;}
.booking-form .btn {padding:10px 20px;border:none;border-radius:2px;font-size:1em;cursor:pointer;transition:background 0.3s;}
.booking-form .btn-next,.booking-form .btn-submit {background:#8b5a2b;color:#fff;}
.booking-form .btn-next:disabled {background:#c8c0b0;cursor:not-allowed;}
.booking-form .btn-prev {background:#f0ead8;color:#5d4037;margin-right:10px;}
.booking-form .btn-next:hover:not(:disabled),.booking-form .btn-submit:hover {background:#704420;color:#fff}
.booking-form .btn-prev:hover {background:#e0d8c8;}
.booking-form .error {padding:10px;margin:15px 0;border:1px solid #e0c0c0;border-radius:2px;background:#fcf0f0;color:#a04040;text-align:center;}

.time-slots-container {margin:20px 0;}
.time-slots-container label {display:flex;align-items:center;padding:8px 0;border-bottom:1px dashed #e0d8c8;}

@media (max-width:768px) {
    .calendar-day {min-height:50px;padding:5px 2px;}
    .day-number {font-size:1em;}
    .day-capacity {font-size:0.7em;}
    .booking-form {padding:15px;}
    .booking-form .btn {width:100%;margin-bottom:10px;margin-right:0;}
    .booking-form .btn-prev,.booking-form .btn-next {
    background: #f0ead8;
    color: #5d4037;
    margin-right: 0px;
    margin-bottom: 10px;
}
}