.booking-page{padding:calc(var(--header-height) + 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-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{border-top:1px solid #e5e5ea;flex-wrap:nowrap;gap:8px;margin-top:12px;padding-top:12px;display:flex}.booking-contact-btn{background:var(--color-accent);color:#000;text-align:center;white-space:nowrap;border:none;border-radius:8px;flex:1 1 0;justify-content:center;align-items:center;padding:12px 8px;font-size:1rem;font-weight:600;text-decoration:none;transition:opacity .2s;display:inline-flex}.booking-contact-btn:hover{opacity:.85}.booking-contact-btn:focus-visible{outline-offset:2px;outline:2px solid #000}.booking-calendar{background:#fff;border:1px solid #d9d9de;border-radius:12px;padding:14px}.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{aspect-ratio:1;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:0;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-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-slots-grid{background:#fff;border:1px solid #d9d9de;border-radius:12px;grid-template-columns:repeat(3,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;align-items:stretch;gap:16px}.booking-left,.booking-right{display:contents}.booking-info-card{order:1}.booking-calendar{order:2}.booking-slots-block{order:3}.booking-msg{order:4}.booking-form{order:5}.booking-slots-grid{grid-template-columns:repeat(3,1fr)}}
