.booking-shell{max-width:920px;margin:0 auto;background:#fff;border:1px solid #d9d4e5;border-radius:16px;box-shadow:0 14px 42px rgba(28,7,68,.13);overflow:hidden;text-align:left}
.booking-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(310px,.95fr)}
.booking-picker{padding:30px;border-right:1px solid #d9d4e5}
.booking-details{padding:30px;background:#f3f0f9}
.booking-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}
.booking-head h3{margin:0 0 4px}
.booking-timezone{font-size:.8rem;color:#5f5a75;margin:0}
.booking-month-nav{display:flex;align-items:center;gap:7px}
.booking-month{min-width:142px;text-align:center;color:var(--ink);font-weight:700;font-size:.92rem}
.booking-nav-btn{width:36px;height:36px;border:1px solid #d3cedf;border-radius:8px;background:#fff;color:var(--ink);font-size:1.2rem;cursor:pointer}
.booking-nav-btn:hover:not(:disabled){border-color:var(--brand-lt);background:var(--brand-wash)}
.booking-nav-btn:disabled{opacity:.35;cursor:not-allowed}
.booking-weekdays,.booking-days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.booking-weekdays{margin-bottom:7px}
.booking-weekdays span{text-align:center;color:#5f5a75;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.booking-day{aspect-ratio:1;border:1px solid transparent;border-radius:9px;background:transparent;color:#37324d;font:inherit;font-size:.88rem;font-weight:500;cursor:pointer}
.booking-day:hover:not(:disabled){border-color:var(--brand-lt);background:var(--brand-wash);color:var(--brand)}
.booking-day.is-selected{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:700;box-shadow:0 3px 10px rgba(91,33,182,.22)}
.booking-day:disabled{color:#aaa4b7;cursor:not-allowed}
.booking-day.is-empty{visibility:hidden}
.booking-slots{margin-top:24px;padding-top:22px;border-top:1px solid #d9d4e5}
.booking-slots-label{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--ink);font-size:.88rem;font-weight:700;margin-bottom:12px}
.booking-slots-label span{color:#5f5a75;font-size:.76rem;font-weight:500}
.booking-slot-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.booking-slot{padding:9px 6px;border:1px solid #d3cedf;border-radius:8px;background:#fff;color:#37324d;font:inherit;font-size:.83rem;font-weight:600;cursor:pointer}
.booking-slot:hover{border-color:var(--brand-lt);color:var(--brand)}
.booking-slot.is-selected{background:var(--brand-wash);border-color:var(--brand);color:var(--brand-dk)}
.booking-selection{display:flex;align-items:center;gap:11px;padding:13px 14px;border-radius:9px;background:#fff;border:1px solid #d3cedf;margin-bottom:20px;color:#5f5a75;font-size:.88rem}
.booking-selection strong{display:block;color:var(--ink)}
.booking-selection-icon{font-size:1.3rem}
.booking-field{display:block;margin-bottom:14px}
.booking-field span{display:block;color:var(--ink);font-size:.82rem;font-weight:700;margin-bottom:6px}
.booking-field input,.booking-field textarea{width:100%;padding:11px 12px;border:1.5px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font:inherit;font-size:.92rem}
.booking-field textarea{min-height:82px;resize:vertical}
.booking-field input:focus,.booking-field textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(124,58,237,.12)}
.booking-submit{width:100%;margin-top:4px}
.booking-submit:disabled{opacity:.5;cursor:not-allowed}
.booking-note{margin:11px 0 0;color:var(--muted);font-size:.76rem;text-align:center}
.booking-status{display:none;margin-top:14px;padding:11px 13px;border-radius:8px;font-size:.86rem}
.booking-status.is-visible{display:block}
.booking-status.is-success{background:#eaf8f0;color:#17663b}
.booking-status.is-error{background:#fceeed;color:#9f2e25}
.booking-bot-field{position:absolute!important;left:-9999px!important}
@media(max-width:760px){
  .booking-layout{grid-template-columns:1fr}
  .booking-picker{border-right:0;border-bottom:1px solid var(--line)}
  .booking-picker,.booking-details{padding:24px 20px}
}
@media(max-width:440px){
  .booking-head{display:block}
  .booking-month-nav{margin-top:17px;justify-content:space-between}
  .booking-month{min-width:0}
  .booking-slot-grid{grid-template-columns:1fr 1fr}
}
