.booking-section{padding-top:1rem}.booking-section .booking-section-header{text-align:center;margin-bottom:2rem}.section-title{text-align:center;font-size:2.5rem;font-weight:700;margin-bottom:1rem;color:var(--text-primary)}.section-subtitle{text-align:center;font-size:1.1rem;color:var(--text-secondary);margin-bottom:1rem}.section-info{max-width:700px;margin:0 auto 4rem;text-align:center;color:var(--text-secondary);line-height:1.6}#admin-panel{display:flex;justify-content:center;margin-bottom:2rem}.calendar-wrapper{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:2rem}.calendar-month{background:var(--surface);border:1px solid var(--glass-border);border-radius:20px;padding:1.75rem;box-shadow:0 8px 32px -8px #0003;transition:box-shadow .3s ease}.calendar-month:hover{box-shadow:0 12px 40px -8px #0000004d}.calendar-month-header{font-size:1.1rem;font-weight:700;text-align:center;margin-bottom:1.25rem;color:var(--text-primary);padding-bottom:1rem;border-bottom:1px solid var(--calendar-header-border);letter-spacing:.02em}.calendar-days-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.calendar-day-header{text-align:center;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding-bottom:.75rem;font-weight:600}.calendar-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:8px;cursor:pointer;transition:all .15s ease;font-size:.85rem;font-weight:500;background:var(--calendar-day-bg);color:var(--text-secondary);position:relative}.calendar-day:hover{background:var(--calendar-day-hover-bg);color:var(--calendar-day-hover-color);transform:scale(1.08);z-index:1}.calendar-day.today{border:2px solid var(--accent);color:var(--accent);font-weight:700}.calendar-day.fully-available{background:#10b98126;color:#10b981}[data-theme=light] .calendar-day.fully-available{background:#10b9811f;color:#059669}.calendar-day.partially-available{background:#f59e0b26;color:#d97706}[data-theme=light] .calendar-day.partially-available{background:#f59e0b1f;color:#b45309}.calendar-day.fully-booked{background:#ef44444d;color:#ef4444;font-weight:700;border:1px solid rgba(239,68,68,.5)}[data-theme=light] .calendar-day.fully-booked{background:#ef444440;color:#dc2626;border:1px solid rgba(239,68,68,.4)}.calendar-day.disabled{opacity:.4;cursor:not-allowed!important;pointer-events:none}.calendar-day.disabled:hover{transform:none!important;background:inherit!important;box-shadow:none!important;z-index:auto!important}.calendar-day.fully-booked.disabled{opacity:.7}.calendar-day.weekend{background:#94a3b833;color:#94a3b8}[data-theme=light] .calendar-day.weekend{background:#94a3b826;color:#64748b}.calendar-legend{display:flex;gap:1.25rem;justify-content:center;margin-top:2rem;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--text-secondary)}.legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.legend-dot.available{background:#10b981}.legend-dot.partial{background:#d97706}.legend-dot.booked{background:#ef4444}.modal-overlay{position:fixed;inset:0;background:#000000b3;backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease}.modal-content{background:var(--modal-bg);border:1px solid var(--glass-border);border-radius:24px;padding:2.5rem;max-width:550px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 25px 50px -12px #0006;animation:slideUp .3s ease}.modal-content h2{font-size:1.75rem;font-weight:700;margin-bottom:2rem;color:var(--text-primary)}.time-slot-section{background:var(--timeslot-bg);border:1px solid var(--timeslot-border);padding:1.5rem;border-radius:16px;margin-bottom:1rem}.time-slot-section h3{color:var(--text-primary);margin-bottom:.5rem;font-size:1.25rem}.form-field{margin-bottom:1.5rem}.form-field label{display:block;margin-bottom:.5rem;color:var(--text-secondary);font-size:.9rem}.field-help{display:block;margin-top:.25rem;color:var(--text-muted);font-size:.8rem;font-style:italic}.form-input{width:100%;padding:.875rem 1rem;background:var(--input-bg);border:1px solid var(--glass-border);border-radius:12px;color:var(--input-color);font-size:1rem;box-sizing:border-box;transition:border-color .2s}.form-input:focus{outline:none;border-color:var(--accent)}.form-input option:disabled{opacity:.5;color:var(--text-muted);font-style:italic}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.875rem 2rem;border-radius:12px;font-weight:600;border:none;cursor:pointer;transition:all .2s;text-decoration:none}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:#34d399;transform:translateY(-2px);box-shadow:0 4px 12px var(--accent-glow)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.btn-secondary{background:var(--btn-secondary-bg);color:var(--btn-secondary-color)}.btn-secondary:hover{background:var(--btn-secondary-hover)}.btn-danger{background:#ef444433;color:#f87171}.btn-danger:hover{background:#ef44444d}.btn-lg{font-size:1.125rem;padding:1rem 2.5rem}.form-actions{display:flex;gap:1rem;margin-top:2rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.reservations-table{width:100%;border-collapse:collapse;margin-top:1rem}.reservations-table th{text-align:left;padding:1rem;color:var(--text-secondary);border-bottom:1px solid var(--glass-border)}.reservations-table td{padding:1rem;border-bottom:1px solid var(--timeslot-border);color:var(--text-primary)}.error-message{color:#ef4444;background:#ef44441a;border:1px solid rgba(239,68,68,.3);padding:1rem;border-radius:8px;margin-bottom:1rem;font-size:.9rem}@media(max-width:768px){.modal-content{padding:1.5rem}}
