.booking-page{padding:24px 16px 60px}.booking-content{width:1000px;max-width:100%;margin:0 auto}.booking-title{color:var(--color-text-primary);margin:0 0 8px;font-size:1.8rem;font-weight:700}.booking-subtitle{color:var(--color-text-secondary);margin:0 0 20px;font-size:.95rem}.booking-loading{color:var(--color-text-secondary);padding:24px 0}.booking-layout{align-items:flex-start;gap:24px;display:flex}.booking-left,.booking-right{flex:1 1 0;min-width:0}.booking-info-card{background:#fff;border:1px solid #d9d9de;border-radius:12px;margin-bottom:16px;padding:20px}.booking-info-title{color:#222;margin:0 0 10px;font-size:1.05rem;font-weight:600}.booking-info-list{color:#444;margin:0;padding-left:18px;font-size:.9rem;line-height:1.9}.booking-info-contact{color:#222;border-top:1px solid #e5e5ea;margin-top:12px;padding-top:12px;font-size:.9rem;line-height:1.8}.booking-calendars{flex-direction:column;gap:16px;display:flex}.booking-calendar{background:#fff;border:1px solid #d9d9de;border-radius:12px;padding:14px}.booking-calendar-title{color:#222;margin-bottom:10px;font-size:1rem;font-weight:600}.booking-calendar-grid{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.booking-cal-head{text-align:center;color:#666;padding:2px 0;font-size:.75rem}.booking-cal-cell{color:#222;cursor:pointer;background:#fff;border:1px solid #d9d9de;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:52px;padding:4px 2px;font-size:.9rem;display:flex}.booking-cal-cell:hover{border-color:var(--color-accent)}.booking-cal-cell.active{border:1px solid var(--color-accent);box-shadow:0 0 0 1px var(--color-accent);color:#222;background:#fff;font-weight:700}.booking-cal-cell.full{opacity:.4;cursor:default}.booking-cal-cell.disabled{opacity:.25;cursor:default;background:0 0;border-color:#0000}.booking-cal-cell.empty{cursor:default;background:0 0;border-color:#0000}.booking-cal-day{line-height:1.2}.booking-cal-status{opacity:.85;font-size:.65rem}.booking-slots-block{margin-top:16px}.booking-slots-title{color:var(--color-text-primary);margin:0 0 12px;font-size:1.05rem;font-weight:600}.booking-empty{text-align:center;border:1px dashed var(--color-border);color:var(--color-text-secondary);border-radius:10px;padding:20px}.booking-slots-grid{background:#fff;border:1px solid #d9d9de;border-radius:12px;grid-template-columns:repeat(5,1fr);gap:10px;padding:14px;display:grid}.booking-slot-btn{color:#222;cursor:pointer;background:#fff;border:1px solid #d9d9de;border-radius:10px;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;display:flex}.booking-slot-btn:hover{border-color:var(--color-accent)}.booking-slot-btn.unavailable{opacity:.4;cursor:default}.booking-slot-btn.unavailable:hover{border-color:var(--color-border)}.booking-slot-btn.active{border:1px solid var(--color-accent);box-shadow:0 0 0 1px var(--color-accent);color:#222;background:#fff;font-weight:700}.booking-slot-time{font-size:.95rem}.booking-slot-remaining{opacity:.85;font-size:.7rem}.booking-form{background:#fff;border:1px solid #d9d9de;border-radius:12px;padding:20px}.booking-form-title{color:#222;margin:0 0 16px;font-size:1.05rem;font-weight:600}.booking-field{margin-bottom:14px;display:block}.booking-field>span{color:#222;margin-bottom:6px;font-size:.9rem;display:block}.booking-field input,.booking-field textarea{color:#222;box-sizing:border-box;background:#fff;border:1px solid #d9d9de;border-radius:8px;width:100%;padding:10px 12px;font-size:.95rem}.booking-field input:focus,.booking-field textarea:focus{border-color:var(--color-accent);outline:none}.booking-submit{background:var(--color-accent);color:#000;cursor:pointer;border:none;border-radius:8px;margin-top:4px;padding:12px 28px;font-size:1rem;font-weight:600}.booking-submit:disabled{opacity:.6;cursor:default}.booking-msg{border-radius:8px;margin:0 0 16px;padding:10px 14px;font-size:.9rem}.booking-msg-success{color:var(--color-success);background:#28a7451f}.booking-msg-error{color:var(--color-danger);background:#d32f2f1a}@media (max-width:860px){.booking-layout{flex-direction:column}.booking-left{order:2;width:100%}.booking-right{order:1}.booking-slots-grid{grid-template-columns:repeat(3,1fr)}}
