.booking-portal-hero{padding-bottom:42px}
.portal-status{display:inline-flex;align-items:center;gap:8px;margin-top:14px;padding:9px 12px;border:1px solid var(--line);background:var(--panel);color:var(--muted);font-size:.86rem}
.portal-status.is-ready{border-color:rgba(216,255,79,.45);color:var(--accent)}
.portal-status.is-warning{border-color:rgba(255,122,85,.45);color:#ffb19b}
.booking-shell{display:grid;grid-template-columns:220px minmax(0,1fr);gap:34px;align-items:start}
.booking-progress{position:sticky;top:96px;border:1px solid var(--line);background:var(--panel);padding:18px}
.booking-progress ol{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.booking-progress li{display:flex;align-items:center;gap:10px;padding:9px 10px;color:#77747a;font-size:.9rem;border-left:2px solid transparent}
.booking-progress li span{display:grid;place-items:center;width:26px;height:26px;border:1px solid var(--line);font-size:.72rem;font-weight:900}
.booking-progress li.is-active{color:var(--text);border-left-color:var(--accent);background:rgba(216,255,79,.05)}
.booking-progress li.is-complete{color:var(--muted)}
.booking-progress li.is-complete span{border-color:var(--accent);color:var(--accent)}
.booking-form{min-width:0}
.booking-step{display:none;border:1px solid var(--line);background:var(--panel);padding:30px}
.booking-step.is-active{display:block}
.booking-step h2{font-size:clamp(2rem,4vw,3.3rem);line-height:1;letter-spacing:-.035em;margin:.1em 0 .7em}
.step-lede{color:var(--muted);max-width:760px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.form-grid .full{grid-column:1/-1}
.booking-form label:not(.check-row){display:grid;gap:7px;color:#d9d5cf;font-size:.9rem;font-weight:700}
.booking-form input,.booking-form textarea,.booking-form select{width:100%;background:#0e0e11;color:var(--text);border:1px solid var(--line);padding:12px 13px;border-radius:0;outline:none}
.booking-form input:focus,.booking-form textarea:focus,.booking-form select:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.booking-form input[aria-invalid="true"],.booking-form textarea[aria-invalid="true"],.booking-form select[aria-invalid="true"]{border-color:var(--accent-2)}
.check-row{display:flex;align-items:flex-start;gap:10px;margin-top:18px;color:#cbc7c1;font-size:.91rem}
.check-row input{width:auto;margin-top:4px;accent-color:var(--accent)}
.step-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:28px;padding-top:22px;border-top:1px solid var(--line)}
.question-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:22px}
.question-grid fieldset,.medical-box{border:1px solid var(--line);padding:16px;margin:0;background:#101014}
.question-grid legend,.medical-box legend{padding:0 7px;color:var(--text);font-weight:800}
.question-grid label{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;gap:8px!important;margin-top:8px;font-weight:500!important}
.question-grid input,.radio-row input{width:auto;accent-color:var(--accent)}
.medical-box{margin-top:16px;border-color:#49422f}
.medical-box p{color:var(--muted);font-size:.88rem;margin-bottom:0}
.medical-box p strong{color:var(--text)}
.radio-row{display:flex;gap:18px;flex-wrap:wrap}
.radio-row label{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;gap:7px!important;font-weight:600!important}
.route-result{display:grid;gap:16px}
.route-card{border:1px solid var(--line);background:#101014;padding:22px}
.route-card.review{border-color:rgba(255,122,85,.5)}
.route-card.instant{border-color:rgba(216,255,79,.45)}
.route-card h3{font-size:1.5rem;margin:.1rem 0 .5rem}
.route-card p{color:var(--muted);margin:.35rem 0}
.route-badge{display:inline-flex;padding:5px 8px;border:1px solid currentColor;color:var(--accent);font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.1em}
.route-card.review .route-badge{color:#ff9d81}
.summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}
.summary-grid div{border-top:1px solid var(--line);padding-top:10px}
.summary-grid strong{display:block;font-size:.76rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.summary-grid span{display:block;margin-top:2px}
.slot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}
.slot-button{appearance:none;border:1px solid var(--line);background:#101014;color:var(--text);padding:13px 12px;text-align:left;cursor:pointer}
.slot-button:hover,.slot-button.is-selected{border-color:var(--accent);background:rgba(216,255,79,.07)}
.slot-button strong{display:block}.slot-button small{color:var(--muted)}
.slot-day{grid-column:1/-1;color:var(--accent);font-weight:900;text-transform:uppercase;letter-spacing:.1em;font-size:.75rem;margin-top:12px}
.paperwork{display:grid;gap:4px}
.paperwork>label:last-child{margin-top:18px}
.confirmation{border:1px solid rgba(216,255,79,.45);background:#10140e;padding:24px}
.confirmation.review{border-color:rgba(255,122,85,.45);background:#15100f}
.confirmation h2{margin-top:0}
.confirmation p{color:#cbc7c1}
.booking-error{border:1px solid rgba(255,122,85,.55);background:#17100e;color:#ffc4b2;padding:12px 14px;margin-top:14px}
.booking-note{color:var(--muted);font-size:.85rem}
@media(max-width:900px){.booking-shell{grid-template-columns:1fr}.booking-progress{position:static;overflow:auto}.booking-progress ol{display:flex;min-width:650px}.booking-progress li{flex:1;white-space:nowrap}.question-grid{grid-template-columns:1fr}.slot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.booking-step{padding:20px}.form-grid,.form-grid.two,.summary-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.slot-grid{grid-template-columns:1fr}.step-actions .button{width:100%}.booking-progress{margin-inline:-12px;border-left:0;border-right:0}}
