.booking{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--shadow);scroll-margin-top:calc(var(--header) + 12px);position:relative}.booking-grid{grid-template-columns:minmax(250px,300px) 1fr;display:grid}.visit-bar{background:var(--apricot-soft);border-radius:18px;flex-wrap:wrap;align-items:center;gap:4px 12px;margin:12px 12px 0;padding:10px 12px 10px 18px;font-size:.9375rem;display:flex}.visit-bar p{flex:260px}.visit-dot{background:#c76b3c;border-radius:50%;flex:none;width:9px;height:9px}@media (prefers-reduced-motion:no-preference){.visit-dot{animation:soft-pulse 2.4s var(--ease) infinite}}@keyframes soft-pulse{50%{opacity:.5;transform:scale(1.6)}}.rail{border-right:1px solid var(--line);flex-direction:column;gap:28px;padding:clamp(20px,2.4vw,32px);display:flex}.rail ol{gap:4px;margin:0;padding:0;list-style:none;display:grid;position:relative}.rail li{position:relative}.rail li:not(:last-child):after{content:"";background:var(--line-strong);width:1px;position:absolute;top:52px;bottom:-12px;left:29px}.rail li[data-state=done]:not(:last-child):after{background:var(--sage)}.rail button,.rail-static{text-align:left;width:100%;min-height:64px;transition:background-color .3s var(--ease);background:0 0;border:0;border-radius:16px;grid-template-columns:32px 1fr;align-items:center;gap:14px;padding:10px 12px;display:grid}.rail button:disabled{cursor:default}.rail button:not(:disabled):hover,.rail li[data-state=current] button,.rail li[data-state=current] .rail-static{background:var(--mist)}.rail-num{z-index:1;border:1px solid var(--line-strong);background:var(--paper);font-variant-numeric:tabular-nums;width:32px;height:32px;transition:background-color .4s var(--ease), transform .5s var(--spring);border-radius:50%;place-items:center;font-size:.875rem;font-weight:700;display:grid;position:relative}.rail-num svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.rail li[data-state=current] .rail-num{background:var(--ink);border-color:var(--ink);color:var(--porcelain);transform:scale(1.06)}.rail li[data-state=done] .rail-num{background:var(--seafoam);border-color:var(--seafoam)}.rail-text{min-width:0;display:grid}.rail-label{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);font-size:.8125rem;font-weight:650}.rail-value{overflow-wrap:break-word;font-weight:600}.rail li[data-state=todo] .rail-value{color:var(--ink-2)}.rail-edit{text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:3px;color:var(--ink-2);grid-column:2;justify-self:start;margin-top:-10px;font-size:.8125rem;font-weight:650}.rail-mode{background:var(--apricot-soft);border-radius:14px;padding:10px 14px;font-size:.9375rem}.rail-note{color:var(--ink-2);gap:10px;margin-top:auto;font-size:.875rem;line-height:1.5;display:flex}.rail-note svg{width:20px;height:20px;fill:var(--mist);stroke:var(--ink);stroke-width:1.4px;stroke-linejoin:round;flex:none}.stage{view-transition-name:booking-stage;min-width:0;min-height:560px;padding:clamp(22px,3.4vw,48px)}.step{align-content:start;gap:22px;display:grid}@supports not (view-transition-name:none){@media (prefers-reduced-motion:no-preference){.step{animation:step-in .55s var(--ease-out) both}}}@keyframes step-in{0%{opacity:0;transform:translateY(12px)}}::view-transition-old(booking-stage){animation:vt-out .22s var(--ease) both}::view-transition-new(booking-stage){animation:vt-in .55s var(--ease-out) both}@keyframes vt-out{to{opacity:0;transform:translateY(-6px)}}@keyframes vt-in{0%{opacity:0;transform:translateY(14px)}}.step-title{font-family:var(--serif);scroll-margin-top:calc(var(--header) + 24px);font-size:clamp(1.6rem,2.6vw,2.2rem);font-weight:300}.step-title:focus{outline:none}.step-title:focus-visible{outline:2px solid var(--ink);outline-offset:6px}.step-hint{color:var(--ink-2);margin-top:-10px}.step-foot{flex-wrap:wrap;justify-content:space-between;gap:8px 24px;display:flex}.empty-note,.loading{color:var(--ink-2)}.options{grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:10px;display:grid}.option{border:1px solid var(--line-strong);background:var(--paper);text-align:left;width:100%;height:100%;min-height:104px;transition:border-color .3s var(--ease), background-color .3s var(--ease), transform .5s var(--spring), box-shadow .4s var(--ease);border-radius:18px;align-content:space-between;gap:10px;padding:18px 20px;text-decoration:none;display:grid;position:relative}.option:hover{border-color:var(--ink);transform:translateY(-2px);box-shadow:0 14px 28px -20px #0f3b3a80}.option:active{transform:scale(.985)}.option[aria-pressed=true]{border-color:var(--ink);background:var(--mist);box-shadow:inset 0 0 0 1px var(--ink)}.option-name{padding-right:64px;font-size:1.0625rem;font-weight:650;line-height:1.3}.option-meta{color:var(--ink-2);justify-content:space-between;gap:12px;font-size:.9375rem;display:flex}.option-meta .num{color:var(--ink);font-weight:650}.option-flag{background:var(--apricot-soft);border-radius:8px;padding:3px 9px;font-size:.75rem;font-weight:700;position:absolute;top:16px;right:16px}.people{gap:10px;display:grid}.person{border:1px solid var(--line-strong);background:var(--paper);text-align:left;width:100%;min-height:84px;transition:border-color .3s var(--ease), background-color .3s var(--ease), transform .5s var(--spring);border-radius:20px;grid-template-columns:52px 1fr auto;align-items:center;gap:16px;padding:14px 18px 14px 14px;display:grid}.person:hover{border-color:var(--ink);transform:translate(3px)}.person[aria-pressed=true]{border-color:var(--ink);background:var(--mist);box-shadow:inset 0 0 0 1px var(--ink)}.person-any{background:var(--mist);border-color:var(--sage)}.person-any-mark{background:var(--seafoam);border-radius:50%;place-items:center;width:52px;height:52px;display:grid}.person-any-mark svg{fill:none;width:30px;height:30px;stroke:var(--ink);stroke-width:1.5px;stroke-linecap:round}.person-text{min-width:0;display:grid}.person-name{font-size:1.0625rem;font-weight:650}.person-meta{color:var(--ink-2);font-size:.9rem}.person-next{color:var(--ink-2);text-align:right;justify-items:end;min-width:96px;font-size:.8125rem;display:grid}.person-next strong{color:var(--ink);font-variant-numeric:tabular-nums;font-size:.9375rem}.week{gap:14px;display:grid}.week-bar{justify-content:space-between;align-items:center;gap:12px;display:flex}.week-range{text-align:center;justify-items:center;line-height:1.3;display:grid}.week-range strong{font-family:var(--serif-regular);font-size:1.3rem;font-weight:400}.week-range span{color:var(--ink-2);font-variant-numeric:tabular-nums;font-size:.875rem}.week-days,.week-slots{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.day-tab{min-height:76px;transition:background-color .3s var(--ease);background:0 0;border:0;border-radius:14px;justify-items:center;gap:0;padding:8px 4px;display:grid}.day-tab:disabled{cursor:default}.day-name{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);font-size:.75rem;font-weight:700}.day-num{font-family:var(--serif);font-variant-numeric:lining-nums;font-size:1.7rem;font-weight:300;line-height:1.1}.day-meta{color:var(--ink-2);white-space:nowrap;font-size:.75rem;font-weight:600}.meta-short{display:none}.day-tab[data-status=past],.day-tab[data-status=later]{opacity:.45}.day-tab[aria-pressed=true]{background:var(--mist)}.day-col ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.slot{border:1px solid var(--line-strong);background:var(--paper);font-variant-numeric:tabular-nums;width:100%;min-height:48px;transition:background-color .25s var(--ease), border-color .25s var(--ease), color .25s var(--ease), transform .45s var(--spring);border-radius:12px;justify-items:center;gap:0;padding:6px 4px;font-weight:650;line-height:1.2;display:grid}.slot:hover{border-color:var(--ink);background:var(--mist)}.slot:active{transform:scale(.96)}.slot[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--porcelain);transform:scale(1.03)}.slot-who{opacity:.75;font-size:.6875rem;font-weight:600}.week:not([data-expanded=true]) li[data-extra]{display:none}.day-empty{height:100%;min-height:112px;color:var(--ink-2);text-align:center;border-radius:12px;place-items:center;padding:8px;font-size:.8125rem;display:grid}.day-col[data-status=full] .day-empty,.day-col[data-status=off] .day-empty,.day-col[data-status=closed] .day-empty{background:repeating-linear-gradient(-45deg,#0000 0 7px,#0f3b3a0f 7px 8px)}.week-empty{background:var(--mist);border-radius:18px;justify-items:start;gap:12px;padding:24px;display:grid}.week-more{justify-self:center}.week-zone{color:var(--ink-2);align-items:flex-start;gap:10px;font-size:.875rem;display:flex}.week-zone svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;flex:none;width:18px;height:18px;margin-top:2px}.selection{z-index:2;background:var(--mist);transition:background-color .4s var(--ease);border-radius:20px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;padding:12px 12px 12px 22px;display:flex;position:relative;bottom:12px}.selection[data-ready]{background:var(--ink);color:var(--porcelain);position:sticky}.selection[data-ready] .btn{--btn-bg:var(--seafoam);--btn-fg:var(--ink)}.selection[data-ready] .btn:hover{background:#d3ede3}.selection p{flex:200px}@media (max-width:820px){.selection{bottom:calc(12px + env(safe-area-inset-bottom))}}.details{gap:22px;display:grid}.details-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 20px;display:flex}.details-lede{color:var(--ink-2);flex:280px}.details-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.details-grid .field:last-child{grid-column:1/-1;max-width:calc(50% - 9px)}.comfort{border:0;margin:0;padding:0}.comfort legend{margin-bottom:12px;font-size:.9375rem;font-weight:650}.comfort-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.check{border:1px solid var(--line-strong);cursor:pointer;min-height:52px;transition:background-color .3s var(--ease), border-color .3s var(--ease);border-radius:14px;align-items:center;gap:12px;padding:10px 14px;font-size:.9375rem;display:flex;position:relative}.check:hover{border-color:var(--ink)}.check[data-checked]{background:var(--mist);border-color:var(--ink)}.check input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.check:has(input:focus-visible){outline:2px solid var(--ink);outline-offset:2px}.check-box{border:1.5px solid var(--ink-2);background:var(--paper);width:22px;height:22px;transition:background-color .25s var(--ease);border-radius:7px;flex:none;place-items:center;display:grid}.check-box svg{fill:none;width:14px;height:14px;stroke:var(--porcelain);stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;opacity:0;transition:opacity .2s var(--ease), transform .4s var(--spring);transform:scale(.6)}.check[data-checked] .check-box{background:var(--ink);border-color:var(--ink)}.check[data-checked] .check-box svg{opacity:1;transform:none}.demo-note{background:var(--apricot-soft);border-radius:14px;align-items:center;gap:10px;padding:12px 16px;font-size:.9375rem;font-weight:550;display:flex}.demo-note svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;flex:none;width:20px;height:20px}.step-actions{flex-wrap:wrap;justify-content:space-between;gap:12px;display:flex}.summary{gap:22px;display:grid}.summary-status{align-items:flex-start;gap:18px;display:flex}.summary-mark svg{width:52px;height:52px;fill:var(--seafoam);stroke:var(--ink);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.summary[data-cancelled] .summary-mark svg{fill:var(--apricot-soft)}@media (prefers-reduced-motion:no-preference){.summary-mark .tick{stroke-dasharray:32;stroke-dashoffset:32px;animation:draw .9s .15s var(--ease-out) forwards}}@keyframes draw{to{stroke-dashoffset:0}}.summary-title{font-family:var(--serif);letter-spacing:-.02em;font-size:clamp(1.5rem,2.4vw,2rem);font-weight:300;line-height:1.15}.summary-sub{color:var(--ink-2);margin-top:6px}.ticket{background:var(--mist);border-radius:24px;grid-template-columns:1fr 220px;display:grid;position:relative;overflow:hidden}.summary[data-cancelled] .ticket{opacity:.6;filter:grayscale(.6)}.ticket-main{gap:10px;padding:26px 28px;display:grid}.ticket-side{border-left:2px dashed #0f3b3a38;align-content:center;justify-items:start;gap:12px;padding:24px;display:grid;position:relative}.ticket-side:before,.ticket-side:after{content:"";background:var(--paper);border-radius:50%;width:24px;height:24px;position:absolute;left:-13px}.ticket-side:before{top:-12px}.ticket-side:after{bottom:-12px}.ticket-ref{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);font-size:.8125rem}.ticket-ref strong{letter-spacing:.12em;color:var(--ink)}.ticket-when{font-family:var(--serif);letter-spacing:-.02em;font-size:clamp(1.5rem,2.6vw,2.1rem);font-weight:300;line-height:1.12;display:grid}.ticket-time{font-variant-numeric:tabular-nums lining-nums}.ticket-zone,.ticket-moved{color:var(--ink-2);font-size:.9375rem}.ticket-facts{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px;margin-top:8px;padding-top:16px;display:grid}.ticket-facts dt{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);font-size:.75rem;font-weight:700}.ticket-facts dd{font-weight:600}.ticket-person{font-weight:650}.ticket-role{color:var(--ink-2);font-size:.875rem}.comfort-recap{border:1px solid var(--line);border-radius:16px;padding:16px 20px;font-size:.9375rem}.comfort-recap ul{margin-top:6px;padding-left:20px}.manage{flex-wrap:wrap;gap:10px;display:flex}.confirm{background:var(--apricot-soft);border-radius:18px;gap:12px;width:100%;padding:18px 20px;display:grid}.confirm p{font-weight:600}.confirm-actions{flex-wrap:wrap;gap:10px;display:flex}.manage-note,.manage-foot{color:var(--ink-2);font-size:.875rem}.manage-foot .text-button{min-height:32px;font-size:.875rem}.expect{counter-reset:expect;border-top:1px solid var(--line);gap:8px;padding-top:18px;display:grid}.expect li{counter-increment:expect;align-items:baseline;gap:12px;display:flex}.expect li:before{content:counter(expect);background:var(--seafoam);border-radius:50%;flex:none;place-items:center;width:24px;height:24px;font-size:.75rem;font-weight:700;display:inline-grid}@media (max-width:900px){.booking-grid{grid-template-columns:1fr}.rail{border-right:0;border-bottom:1px solid var(--line);gap:0;padding:10px}.rail ol{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.rail li:not(:last-child):after{display:none}.rail button,.rail-static{text-align:center;grid-template-columns:1fr;justify-items:center;gap:4px;min-height:64px;padding:8px 2px}.rail-num{width:28px;height:28px}.rail-label{letter-spacing:.02em;text-transform:none;color:var(--ink);font-size:.6875rem;font-weight:650;line-height:1.2}.rail-value,.rail-edit,.rail-note{display:none}.stage{min-height:0;padding:22px 18px 24px}.ticket{grid-template-columns:1fr}.ticket-side{border-top:2px dashed #0f3b3a38;border-left:0;grid-auto-flow:column;justify-content:start;align-items:center}.ticket-side:before,.ticket-side:after{top:-13px;left:auto}.ticket-side:before{left:-12px}.ticket-side:after{bottom:auto;right:-12px}}@media (max-width:720px){.week-slots{grid-template-columns:1fr}.day-col:not([data-active]){display:none}.day-col ul{grid-template-columns:repeat(3,minmax(0,1fr))}.week-days{gap:4px}.day-tab{border:1px solid var(--line);min-height:72px}.day-tab[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--porcelain)}.day-tab[aria-pressed=true] .day-name,.day-tab[aria-pressed=true] .day-meta{color:var(--porcelain)}.day-meta{white-space:normal;text-align:center;font-size:.6875rem;line-height:1.15}.meta-long{display:none}.meta-short{display:inline}.options{grid-template-columns:1fr;gap:8px}.option{border-radius:16px;grid-template-columns:minmax(0,1fr) auto;align-items:center;min-height:64px;padding:12px 16px}.option-name{padding-right:0;font-size:1rem}.option-meta{text-align:right;justify-items:end;gap:0;font-size:.875rem;line-height:1.35;display:grid}.option-flag{grid-area:2/1;justify-self:start;margin-top:-4px;position:static}.details-grid,.comfort-options{grid-template-columns:1fr}.details-grid .field:last-child{max-width:none}.person{grid-template-columns:48px 1fr}.person .avatar-s,.person-any-mark{width:48px;height:48px}.person-next{text-align:left;grid-column:2;grid-auto-flow:column;justify-content:start;place-items:baseline start;gap:6px}.ticket-facts{grid-template-columns:1fr}.step-actions .btn,.manage .btn{flex:auto}}
