.booking-layout{display:grid;grid-template-columns:1fr 360px;gap:48px;align-items:start}

/* Steps */
.steps-indicator{display:flex;gap:8px;margin-bottom:48px;justify-content:center}
.step-dot{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:510;background:var(--border);color:var(--muted);transition:all .3s}
.step-dot.active{background:var(--accent);color:var(--surface)}
.step-dot.done{background:var(--accent-soft);color:var(--accent)}
.step-line{width:48px;height:1px;background:var(--border);align-self:center}

.step-panel{display:none}
.step-panel.active{display:block;animation:stepIn .2s ease}
@keyframes stepIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.step-panel h2{font-family:var(--font-display);font-size:24px;font-weight:700;letter-spacing:-0.02em;margin-bottom:24px}

/* Practitioner cards */
.practitioner-select{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}
.practitioner-card{padding:20px;border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all .2s;background:var(--surface)}
.practitioner-card:hover{border-color:var(--accent)}
.practitioner-card.selected{border-color:var(--accent);background:var(--accent-soft)}
.practitioner-card .p-name{font-weight:600;font-size:15px;margin-bottom:4px}
.practitioner-card .p-role{font-size:12px;color:var(--muted);letter-spacing:0.02em}
.practitioner-card .p-avatar{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:590;font-size:14px;color:var(--surface);margin-bottom:12px}

/* Time slots */
.time-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:24px}
.time-slot{padding:10px;text-align:center;border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-size:14px;transition:all .2s;background:var(--surface)}
.time-slot:hover{border-color:var(--accent)}
.time-slot.selected{border-color:var(--accent);background:var(--accent-soft);font-weight:510}

/* Summary */
.summary-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:32px;position:sticky;top:96px}
.summary-card h3{font-family:var(--font-display);font-size:18px;font-weight:600;letter-spacing:-0.01em;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--border)}
.summary-row{display:flex;justify-content:space-between;padding:8px 0;font-size:14px;color:var(--muted)}
.summary-row .val{color:var(--fg);font-weight:510;text-align:right}
.summary-total{padding-top:16px;margin-top:16px;border-top:1px solid var(--border);display:flex;justify-content:space-between;font-size:16px;font-weight:590}
.summary-empty{font-size:14px;color:var(--muted);line-height:1.6}

.nav-buttons{display:flex;gap:16px;justify-content:space-between;margin-top:32px}
.btn-primary{padding:14px 28px}
.btn-secondary{padding:14px 28px}

/* Review */
.review-rows{border:1px solid var(--border);border-radius:var(--radius);padding:8px 24px;margin-bottom:8px}
.review-rows .summary-row:last-child{border-bottom:none}

/* Promo code */
.promo-box{margin-top:16px;padding:16px 20px;background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius-sm)}
.promo-box label{display:block;font-size:13px;font-weight:590;margin-bottom:8px}
.promo-row{display:flex;gap:8px;max-width:360px}
.promo-row input{flex:1;padding:11px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:14px;background:var(--surface);color:var(--fg)}
.promo-row input:focus{outline:none;border-color:var(--accent)}
.promo-row .btn-secondary{padding:11px 18px}
.promo-status{font-size:13px;margin-top:8px;min-height:18px}
.promo-status--ok{color:var(--green)}
.promo-status--err{color:var(--red)}

/* Confirmation */
.confirmation{text-align:center;padding:48px;animation:stepIn .25s ease}
.confirmation .icon{width:72px;height:72px;border-radius:50%;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;margin:0 auto 24px;font-size:36px;color:var(--accent)}
.confirmation h2{font-family:var(--font-display);font-size:28px;font-weight:700;letter-spacing:-0.02em;margin-bottom:12px}
.confirmation p{font-size:15px;color:var(--muted);margin-bottom:8px}
.confirmation .details{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px;margin:24px auto;max-width:400px;text-align:left}
.confirmation .details div{padding:8px 0;font-size:14px;display:flex;justify-content:space-between}
.confirmation .details span:first-child{color:var(--muted)}
.done-actions{display:flex;gap:12px;justify-content:center;margin-top:28px;flex-wrap:wrap}

@media(max-width:820px){
  .booking-layout{grid-template-columns:1fr}
  .summary-card{position:static}
  .practitioner-select,.form-row{grid-template-columns:1fr}
  .time-slots{grid-template-columns:repeat(2,1fr)}
}

@media(max-width:480px){
  .time-slots{grid-template-columns:1fr}
}
