:root { --obsidian:#070a12; --graphite:#0c111d; --panel:#111827; --elev:#141c2c; --line:rgba(150,170,210,.16); --line-strong:rgba(150,170,210,.3); --steel:#c3cad8; --muted:#8e99ad; --dim:#667188; --blue:#2e6fe8; --blue-light:#7cb1ff; --blue-glow:rgba(46,111,232,.4); --green:#4ee08b; --red:#f87171; --display:'Rajdhani',sans-serif; --body:'IBM Plex Sans',sans-serif; --mono:'JetBrains Mono',monospace; }
* { box-sizing:border-box; }
html { background:var(--obsidian); }
body { margin:0; min-width:320px; background:radial-gradient(circle at 75% 8%,rgba(46,111,232,.09),transparent 30rem),var(--obsidian); color:var(--steel); font-family:var(--body); line-height:1.55; -webkit-font-smoothing:antialiased; }
button,input,select,textarea { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
a { color:inherit; text-decoration:none; }
.booking-header { display:flex; align-items:center; justify-content:space-between; max-width:1180px; margin:auto; padding:18px 28px; border-bottom:1px solid var(--line); }
.brand { display:flex; align-items:center; gap:10px; color:#eef1f6; font:700 19px/1 var(--display); letter-spacing:.06em; }
.brand img { width:40px; height:40px; }
.brand-dot { color:var(--blue-light); }
.back-link,.text-button { color:var(--blue-light); font:600 11px var(--mono); letter-spacing:.06em; text-transform:uppercase; }
.back-link:hover,.text-button:hover { color:#fff; }
.booking-shell { display:grid; grid-template-columns:minmax(260px,.82fr) minmax(500px,1.18fr); gap:clamp(32px,7vw,100px); align-items:start; max-width:1120px; margin:0 auto; padding:clamp(56px,9vw,112px) 28px 96px; }
.booking-intro { position:sticky; top:32px; }
.eyebrow,.step-kicker,.step-readout { color:var(--blue-light); font:500 11px var(--mono); letter-spacing:.12em; text-transform:uppercase; }
.eyebrow { display:inline-flex; align-items:center; gap:8px; border:1px solid var(--line-strong); border-radius:999px; padding:7px 12px; background:rgba(46,111,232,.08); }
.status-dot,.legend-dot { display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--green); box-shadow:0 0 0 4px rgba(78,224,139,.1); }
h1,h2 { margin:0; color:#eef1f6; font-family:var(--display); font-weight:700; text-transform:uppercase; letter-spacing:.01em; }
h1 { margin-top:22px; font-size:clamp(38px,5.2vw,64px); line-height:.98; }
h1 .blue { color:var(--blue-light); }
h2 { font-size:clamp(25px,3vw,34px); line-height:1.05; }
.booking-intro > p { max-width:430px; margin:24px 0 30px; color:var(--muted); font-size:16px; }
.intro-note { display:grid; gap:4px; max-width:370px; border-top:1px solid var(--line-strong); padding-top:17px; color:#eef1f6; font-size:14px; }
.intro-note span { color:var(--dim); font-size:13px; }
.booking-panel { min-width:0; padding:clamp(22px,4vw,38px); background:linear-gradient(145deg,rgba(20,28,44,.96),rgba(12,17,29,.98)); border:1px solid var(--line-strong); border-radius:16px; box-shadow:0 30px 80px -46px rgba(0,0,0,.8); }
.progress { display:flex; align-items:center; gap:10px; margin-bottom:30px; }
.progress-step { display:flex; align-items:center; gap:8px; color:var(--dim); font:500 10px var(--mono); letter-spacing:.08em; text-transform:uppercase; white-space:nowrap; }
.progress-step span { display:grid; place-items:center; width:28px; height:28px; border:1px solid var(--line-strong); border-radius:7px; }
.progress-step.is-active { color:#fff; }.progress-step.is-active span { background:var(--blue); border-color:var(--blue); }.progress-step.is-complete { color:var(--green); }.progress-step.is-complete span { border-color:var(--green); }
.progress i { height:1px; flex:1; background:var(--line); }.progress i.is-complete { background:var(--green); }
.selection-summary { display:flex; gap:16px; flex-wrap:wrap; margin:-8px 0 24px; padding:11px 14px; border:1px solid var(--line); border-radius:9px; color:#eef1f6; font-size:13px; }.selection-summary span { display:flex; gap:7px; align-items:center; }.selection-summary strong { color:var(--blue-light); font:500 10px var(--mono); text-transform:uppercase; }
.step-heading { display:flex; align-items:end; justify-content:space-between; gap:16px; margin-bottom:24px; }.step-kicker { display:block; margin-bottom:8px; color:var(--dim); font-size:10px; }.step-readout { padding-bottom:4px; }.text-button { padding:5px 0; border:0; background:none; cursor:pointer; }
.calendar-toolbar { display:flex; align-items:center; justify-content:space-between; margin-bottom:15px; color:#eef1f6; font:600 18px var(--display); text-transform:uppercase; }.icon-button { display:grid; place-items:center; width:40px; height:40px; border:1px solid var(--line-strong); border-radius:8px; color:var(--steel); background:transparent; font-size:25px; line-height:1; cursor:pointer; }.icon-button:disabled { color:var(--dim); cursor:not-allowed; opacity:.5; }.icon-button:not(:disabled):hover { border-color:var(--blue-light); color:#fff; }
.calendar-weekdays,.calendar-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:5px; }.calendar-weekdays { margin-bottom:6px; color:var(--dim); font:500 10px var(--mono); text-align:center; }.calendar-grid [role=gridcell] { min-width:0; }.day-button { width:100%; aspect-ratio:1; border:1px solid transparent; border-radius:8px; color:#eef1f6; background:transparent; font:500 13px var(--mono); cursor:pointer; }.day-button:not(:disabled):hover,.day-button.is-selected { border-color:var(--blue); background:rgba(46,111,232,.18); }.day-button:disabled { color:#384258; cursor:not-allowed; }.day-button.is-today { box-shadow:inset 0 -2px 0 var(--blue-light); }.day-empty { aspect-ratio:1; }
.helper-text { display:flex; align-items:center; gap:9px; margin:15px 0 0; color:var(--dim); font-size:12px; }.helper-text .legend-dot { background:var(--blue-light); box-shadow:none; width:6px; height:6px; }
.step-description { margin:-8px 0 22px; color:var(--muted); font-size:14px; }.slot-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; }.slot-button { position:relative; min-height:78px; padding:15px 12px 10px; border:1px solid var(--line); border-radius:9px; color:#eef1f6; background:var(--panel); text-align:left; cursor:pointer; }.slot-button:hover:not(:disabled) { border-color:var(--blue); background:rgba(46,111,232,.12); }.slot-button:disabled { opacity:.4; cursor:not-allowed; }.slot-button strong { display:block; font:600 16px var(--mono); }.slot-button small { color:var(--dim); font:500 9px var(--mono); letter-spacing:.05em; text-transform:uppercase; }.slot-button .slot-dot { position:absolute; top:12px; right:12px; width:6px; height:6px; border-radius:50%; background:var(--green); }.slot-button:disabled .slot-dot { background:var(--red); }.availability-note { display:flex; gap:10px; margin-top:20px; padding:12px 14px; border-top:1px solid var(--line); color:var(--dim); font-size:12px; }.availability-note strong { display:block; color:var(--steel); font-weight:500; }.availability-note .legend-dot { flex:none; margin-top:7px; background:var(--blue-light); box-shadow:none; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px 12px; }.field { display:flex; flex-direction:column; gap:6px; min-width:0; }.field-wide { grid-column:1 / -1; }.field span { color:var(--dim); font:500 10px var(--mono); letter-spacing:.07em; text-transform:uppercase; }.field em { color:var(--blue-light); font-style:normal; }.field input,.field select,.field textarea { width:100%; min-height:44px; padding:10px 12px; border:1px solid var(--line-strong); border-radius:8px; outline:0; color:#eef1f6; background:var(--panel); }.field textarea { resize:vertical; }.field input::placeholder,.field textarea::placeholder { color:#59657a; }.field input:focus,.field select:focus,.field textarea:focus { border-color:var(--blue-light); outline:2px solid rgba(124,177,255,.22); outline-offset:1px; }.field.is-invalid input,.field.is-invalid select,.field.is-invalid textarea { border-color:var(--red); }.form-error { min-height:18px; margin:14px 0 0; color:var(--red); font-size:13px; }.primary-button,.secondary-button { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:46px; padding:12px 20px; border-radius:8px; font:700 14px var(--display); letter-spacing:.04em; text-transform:uppercase; cursor:pointer; }.primary-button { border:1px solid transparent; color:#fff; background:linear-gradient(135deg,var(--blue),#1d4fb8); box-shadow:0 12px 30px -14px var(--blue-glow); }.primary-button:hover { transform:translateY(-1px); }.secondary-button { border:1px solid var(--line-strong); color:var(--steel); background:transparent; }.secondary-button:hover { border-color:var(--blue-light); color:#fff; }.form-disclaimer { margin:13px 0 0; color:var(--dim); font-size:11px; }
.confirmation { text-align:center; }.confirmation-mark { display:grid; place-items:center; width:52px; height:52px; margin:0 auto 18px; border-radius:50%; color:var(--obsidian); background:var(--green); font:700 27px var(--display); }.confirmation h2 { max-width:470px; margin:0 auto 12px; }.confirmation > p { max-width:450px; margin:0 auto 24px; color:var(--muted); font-size:14px; }.confirmation-details { display:grid; gap:11px; margin:0 0 18px; padding:17px; border:1px solid var(--line); border-radius:10px; text-align:left; }.confirmation-details div { display:flex; justify-content:space-between; gap:15px; font-size:13px; }.confirmation-details dt { color:var(--dim); font:500 10px var(--mono); letter-spacing:.06em; text-transform:uppercase; }.confirmation-details dd { margin:0; color:#eef1f6; text-align:right; }.integration-status { margin:0 0 22px; padding:12px 14px; border:1px solid rgba(232,178,78,.35); border-radius:8px; color:#d9bc84; background:rgba(232,178,78,.08); font-size:12px; text-align:left; }.confirmation-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:12px; }
[hidden] { display:none !important; }
:focus-visible { outline:2px solid var(--blue-light); outline-offset:3px; }
@media (max-width:850px) { .booking-shell { grid-template-columns:1fr; max-width:650px; padding-top:58px; }.booking-intro { position:static; }.booking-intro > p { max-width:580px; } }
@media (max-width:560px) { .booking-header { padding:14px 18px; }.brand { font-size:17px; }.back-link { font-size:10px; }.booking-shell { padding:40px 16px 64px; }.booking-panel { padding:20px 16px; }.progress { gap:6px; }.progress-step { gap:5px; font-size:9px; }.progress-step span { width:25px; height:25px; }.calendar-grid,.calendar-weekdays { gap:3px; }.slot-grid,.form-grid { grid-template-columns:1fr 1fr; }.field-wide { grid-column:1 / -1; }.confirmation-details div { align-items:flex-start; flex-direction:column; gap:2px; }.confirmation-details dd { text-align:left; }.confirmation-actions .primary-button,.confirmation-actions .secondary-button { width:100%; } }
@media (max-width:390px) { h1 { font-size:36px; }.progress-step b { display:none; }.slot-grid { grid-template-columns:1fr; }.form-grid { grid-template-columns:1fr; }.field-wide { grid-column:auto; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; transition-duration:.001ms !important; animation-duration:.001ms !important; } }
