.booking{margin:1.6em 0;padding:1.2rem;border-radius:var(--r-m);background:var(--white);border:1px solid var(--line)}
.bk{display:grid;gap:1.4rem}
.bk-step{border:0;margin:0;padding:0;min-width:0}
.bk-step[disabled]{opacity:.45}
.bk-step legend{display:flex;align-items:center;gap:.6em;font:600 var(--step-1)/1.4 var(--f-head);margin-bottom:.8rem;padding:0}
.bk-n{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--teal);color:#fff;font:600 .95rem/1 var(--f-body)}
.bk-branches{display:grid;gap:.7rem}
.bk-branch{display:flex;gap:.8rem;align-items:flex-start;padding:.9rem 1rem;border:1.5px solid var(--line);border-radius:12px;cursor:pointer;background:var(--paper)}
.bk-branch input{margin-top:.45em;accent-color:var(--teal);width:20px;height:20px;flex:none}
.bk-branch b{display:block}
.bk-branch small{display:block;color:var(--ink-2);font-size:.88rem;line-height:1.6}
.bk-branch em{display:block;font-style:normal;font-size:.88rem;color:var(--link);margin-top:.3em}
.bk-branch:has(input:checked){border-color:var(--teal);background:var(--mint)}
.bk-branch.is-off{cursor:not-allowed}
.bk-branch.is-off em{color:var(--danger)}
.bk-days{display:flex;gap:.5rem;overflow-x:auto;padding:.2rem .1rem .6rem;scroll-snap-type:x proximity}
.bk-day{flex:0 0 74px;scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;gap:.1em;padding:.55rem .2rem;border-radius:12px;border:1.5px solid var(--line);background:var(--white);font:inherit;color:var(--ink);cursor:pointer;min-height:84px}
.bk-day b{font:700 1.35rem/1.1 var(--f-body)}
.bk-day small{font-size:.78rem;color:var(--ink-2)}
.bk-day[aria-checked=true]{background:var(--teal);border-color:var(--teal);color:#fff}
.bk-day[aria-checked=true] small{color:#d8eeec}
.bk-day:disabled{opacity:.35;cursor:not-allowed;text-decoration:line-through}
.bk-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:.5rem}
.bk-slot{min-height:46px;border-radius:10px;border:1.5px solid var(--line);background:var(--white);color:var(--ink);font:inherit;cursor:pointer}
.bk-slot[aria-checked=true]{background:var(--teal);border-color:var(--teal);color:#fff}
.bk-q{display:block;font-weight:600;margin-bottom:.4em}
.bk-toggle{display:flex;flex-wrap:wrap;gap:.5rem}
.bk-toggle label{display:flex;align-items:center;gap:.4em;padding:.5em .9em;border:1.5px solid var(--line);border-radius:999px;font-weight:500;margin:0;cursor:pointer}
.bk-toggle label:has(input:checked){border-color:var(--teal);background:var(--mint)}
.bk-toggle input,.bk-check input{accent-color:var(--teal);width:18px;height:18px;min-height:0}
.bk-check{display:flex!important;gap:.5em;align-items:center;font-weight:500!important}
.bk-err{color:var(--danger);font-size:.88rem;margin:.25em 0 0;min-height:0}
.bk-err:empty{display:none}
.bk-summary p{margin:0}
.bk-summary{background:var(--mint);border-radius:10px;padding:.2em 0}
.bk-summary:not(:empty){padding:.7em 1em}
.bk-loading{color:var(--ink-2)}
.bk-live{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.bk-done{outline:none}
.bk-done h2{margin-top:0;color:var(--ok)}
.bk-done dl{display:grid;gap:.4rem;margin:0 0 1em}
.bk-done dl div{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--line);padding:.45em 0}
.bk-done dt{color:var(--ink-2)}
.bk-done dd{margin:0;font-weight:700}
@media (min-width:720px){.bk-branches{grid-template-columns:repeat(2,1fr)}.booking{padding:1.6rem}}
