.booking{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-elev)}.booking-cal{padding:28px;border-right:1px solid var(--line)}.booking-side{padding:28px;min-height:420px}.booking-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;font-family:var(--display);font-weight:700;font-size:17px;text-transform:capitalize}.booking-back,.booking-cal-head button{background:none;border:1px solid var(--line-strong);color:var(--text);width:36px;height:36px;border-radius:var(--radius);cursor:pointer;font-family:var(--mono);transition:border-color .2s var(--ease),color .2s var(--ease)}.booking-back:hover,.booking-cal-head button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.booking-cal-head button:disabled{opacity:.3;cursor:default}.booking-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.booking-grid[aria-busy=true]{opacity:.6}.booking-wd{text-align:center;padding-bottom:6px;font-size:11px;text-transform:uppercase}.booking-day,.booking-wd{font-family:var(--mono);color:var(--text-faint)}.booking-day{aspect-ratio:1;max-height:52px;display:flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:var(--radius);background:none;font-size:14px}.booking-day.is-free{color:var(--text);background:var(--accent-soft);border-color:var(--line);cursor:pointer;transition:border-color .2s var(--ease)}.booking-day.is-free:hover{border-color:var(--accent)}.booking-day.is-today{text-decoration:underline;text-underline-offset:4px}.booking-day.is-selected{background:var(--accent);color:var(--on-accent);border-color:var(--accent);font-weight:700}.booking-tz{margin:18px 0 0;font-family:var(--mono);font-size:11px;color:var(--text-faint)}.booking-label{margin:0 0 18px;font-family:var(--display);font-weight:700;font-size:17px}.booking-label:first-letter{text-transform:uppercase}.booking-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}.booking-slot{padding:12px 0;border:1px solid var(--line-strong);border-radius:var(--radius);background:none;color:var(--text);cursor:pointer;font-family:var(--mono);font-size:14px;transition:border-color .2s var(--ease),color .2s var(--ease),background .2s var(--ease)}.booking-slot:focus-visible,.booking-slot:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.booking-mute{color:var(--text-mute);font-size:14px;line-height:1.6;margin:0}.booking-mute a{color:var(--accent)}.booking-when{margin:0;font-family:var(--display);font-weight:700;font-size:20px}.booking-when:first-letter{text-transform:uppercase}.booking-form{display:grid;gap:14px}.booking-back{width:auto;height:auto;padding:6px 10px;font-size:12px;justify-self:start}.booking-form .booking-mute{margin-top:-8px;font-family:var(--mono);font-size:12px}.booking-form label{display:grid;gap:6px}.booking-form label>span{font-family:var(--mono);font-size:12px;color:var(--text-mute)}.booking-form em{font-style:normal;color:var(--text-faint)}.booking-form input:not([type=checkbox]),.booking-form textarea{width:100%;padding:11px 12px;background:var(--bg);color:var(--text);border:1px solid var(--line-strong);border-radius:var(--radius);font-family:var(--body);font-size:15px}.booking-form input:focus,.booking-form textarea:focus{outline:none;border-color:var(--accent)}.booking-form textarea{resize:vertical}.booking-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.booking-consent{grid-template-columns:auto 1fr!important;align-items:start}.booking-consent input{margin-top:3px;accent-color:var(--accent)}.booking-consent span{line-height:1.5}.booking-consent a{color:var(--accent)}.booking-submit{justify-content:center;width:100%}.booking-error{margin:0;color:#ff6b6b;font-size:14px}.booking-done{display:block;padding:48px 28px;text-align:center}.booking-done h2{font-family:var(--display);font-size:26px;margin:16px 0 10px}.booking-done .booking-mute{max-width:460px;margin:14px auto 0}.booking-done-mark{width:56px;height:56px;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--accent);color:var(--on-accent);font-size:26px;font-weight:700}@media (max-width:760px){.booking{grid-template-columns:1fr}.booking-cal{border-right:0;border-bottom:1px solid var(--line);padding:20px 16px}.booking-side{padding:20px 16px;min-height:0}.booking-row{grid-template-columns:1fr}}