.booking-grid-wrapper{width:100%;margin-top:.5rem}.calendar-loading{color:var(--text-sub);font-size:var(--fs-sm);padding:1rem 1.2rem}.calendar-open-btn{border:1px solid var(--navy);width:100%;color:var(--text-main);font-size:var(--fs-sm);cursor:pointer;background:#fff;border-radius:.375rem;justify-content:center;align-items:center;gap:.6rem;margin-bottom:.8rem;padding:.9rem 1.2rem;font-weight:600;transition:background .2s;display:flex}.calendar-open-btn:hover{background:var(--bg-light)}.calendar-open-btn .calendar-open-icon{color:var(--yellow);font-size:1.1em;line-height:1}.calendar-select-placeholder{text-align:center;color:var(--text-sub);font-size:var(--fs-sm);background:var(--bg-light);border:1px solid var(--border);border-radius:.375rem;padding:1rem 1.2rem}.calendar-error{text-align:center;color:#b00;font-size:var(--fs-sm);background:#fdf3f3;border:1px solid #e7c3c3;border-radius:.375rem;padding:1rem 1.2rem}.booking-calendar-overlay{z-index:1000;background:#0a192f8c;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.booking-calendar-popup{border:1px solid var(--border);box-sizing:border-box;background:#fff;border-radius:.5rem;width:100%;max-width:520px;max-height:90dvh;padding:1.25rem;overflow-y:auto;box-shadow:0 10px 40px #0a192f40}.booking-calendar-header{justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.8rem;display:flex}.booking-calendar-title{color:var(--text-main);font-size:var(--fs-sm);font-weight:600}.booking-calendar-close{border:1px solid var(--border);width:32px;height:32px;color:var(--text-sub);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;font-size:18px;line-height:1;transition:background .2s}.booking-calendar-close:hover{background:var(--bg-light)}.booking-calendar-legend{color:var(--text-sub);font-size:var(--fs-xs);flex-wrap:wrap;gap:.4rem 1rem;margin-bottom:.8rem;display:flex}.booking-calendar-legend em{margin-right:4px;font-style:normal}.booking-calendar-legend .sym-open{color:#484}.booking-calendar-legend .sym-partial{color:#c8a24b}.booking-calendar-legend .sym-closed{color:#b00}.booking-calendar-pager{justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.8rem;display:flex}.booking-calendar-pager-btn{border:1px solid var(--border);color:var(--text-main);font-size:var(--fs-xs);cursor:pointer;white-space:nowrap;background:#fff;border-radius:.375rem;padding:.45rem .8rem;font-weight:600;transition:background .2s}.booking-calendar-pager-btn:hover:not(:disabled){background:var(--bg-light)}.booking-calendar-pager-btn:disabled{opacity:.35;cursor:not-allowed}.booking-calendar-pager-label{color:var(--text-sub);font-size:var(--fs-xs);font-weight:600}.booking-calendar-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.booking-calendar-weekday{text-align:center;color:var(--text-sub);font-size:var(--fs-xs);padding:.4rem 0;font-weight:600}.booking-calendar-day{background:var(--bg-light);border:1px solid var(--border);cursor:pointer;border-radius:.375rem;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:52px;padding:6px 2px;transition:background .2s;display:flex}.booking-calendar-day:hover:not(:disabled){background:var(--bg-dark)}.booking-calendar-day .cal-date{color:var(--text-main);font-size:var(--fs-xs);line-height:1}.booking-calendar-day .cal-symbol{font-size:var(--fs-sm);line-height:1}.booking-calendar-day.is-open .cal-symbol{color:#484}.booking-calendar-day.is-partial .cal-symbol{color:#c8a24b}.booking-calendar-day.is-closed{cursor:not-allowed;background:0 0}.booking-calendar-day.is-closed .cal-date{color:#cbd5e1}.booking-calendar-day.is-closed .cal-symbol{color:#bb000073}.booking-calendar-day.is-picked{background:var(--yellow);border-color:var(--yellow-hover)}.booking-grid-scroll{-webkit-overflow-scrolling:touch;border:1px solid var(--border);background:#fff;border-radius:.5rem;width:100%;max-height:400px;overflow:auto}.booking-grid-table{border-collapse:separate;border-spacing:0;table-layout:auto;width:max-content;min-width:100%}.booking-grid-table th,.booking-grid-table td{border-right:1px solid var(--border);border-bottom:1px solid var(--border);text-align:center;vertical-align:middle;box-sizing:border-box;width:90px;min-width:90px}.booking-grid-table tr th:last-child,.booking-grid-table tr td:last-child{border-right:none}.booking-grid-table th{background:var(--bg-light);color:var(--text-sub);font-weight:600;font-size:var(--fs-xs);z-index:3;padding:.75rem .4rem;position:sticky;top:0}.booking-grid-table .time-col{color:#fff;font-weight:600;font-size:var(--fs-xs);z-index:2;position:sticky;left:0;background:var(--text-sub)!important;width:80px!important;min-width:80px!important}.booking-grid-table th.time-col{z-index:4;top:0}.slot-btn{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:100%;height:auto;padding:.9rem;line-height:1;transition:background .2s;display:flex}.slot-remaining{font-size:var(--fs-xs,.75rem);margin-left:.4em;font-weight:400}.slot-btn:hover:not(:disabled){background:var(--bg-light)}.slot-btn:disabled{cursor:not-allowed}.slot-btn.is-available{color:#484;font-weight:600}.slot-btn.is-full{color:#b00}.slot-btn.is-selected{background:var(--yellow)!important;color:var(--text-main)!important}.selected-slot-preview{background:var(--bg-light);border:1px solid var(--border);font-size:var(--fs-sm);color:var(--text-main);border-radius:.375rem;margin-top:.8rem;padding:.75rem 1rem}.selected-slot-preview strong{color:var(--text-main)}
