/* Booking sheet + mobile booking bar. Uses tokens.css. */
/* mobile bar + sheet */
.mbar{position:fixed;left:0;right:0;bottom:0;z-index:40;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.94);backdrop-filter:blur(10px);box-shadow:0 -10px 30px -12px rgba(10,10,10,.15);transform:translateY(110%);transition:transform .35s var(--ease);display:none}
@media (max-width:720px){.mbar{display:block}}
.mbar.show{transform:none}.mbar .btn{width:100%;justify-content:center}
.sheet-bg{position:fixed;inset:0;background:rgba(10,10,10,.45);opacity:0;pointer-events:none;transition:opacity .3s var(--ease);z-index:50}
.sheet{position:fixed;left:50%;bottom:0;width:min(540px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:26px 26px 0 0;padding:28px 26px calc(30px + env(safe-area-inset-bottom));transform:translate(-50%,105%);visibility:hidden;transition:transform .45s var(--spring),visibility 0s .45s;z-index:51;box-shadow:0 -20px 60px rgba(0,0,0,.15)}
.open .sheet-bg{opacity:1;pointer-events:auto}.open .sheet{transform:translate(-50%,0);visibility:visible;transition:transform .45s var(--spring),visibility 0s}
.grip{width:44px;height:4px;border-radius:4px;background:var(--input);margin:0 auto 20px}
.prog{display:flex;gap:6px;margin-bottom:18px}.prog span{flex:1;height:3px;border-radius:3px;background:#ECE8DE;transition:background .3s}.prog span.on{background:var(--gold)}
.stepl{font:12px var(--mono);color:var(--gold-text);letter-spacing:.08em;margin-bottom:8px}
.sheet h3{font-size:24px}
.bstep{display:none}.bstep.on{display:block;animation:sIn .3s var(--ease)}@keyframes sIn{from{opacity:0;transform:translateX(16px)}}
.field{margin-top:14px}.field label{font:500 12px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mut)}
.field input,.field select{width:100%;margin-top:6px;padding:13px 14px;border-radius:12px;border:1px solid var(--input);background:#fff;color:var(--ink);font:inherit;font-size:16px}
.field input:focus,.field select:focus{outline:none;border-color:var(--gtxt);box-shadow:0 0 0 3px rgba(247,189,55,.25)}
.err{color:var(--err);font-size:12px;min-height:16px;margin-top:4px}.field.bad input,.field.bad select{border-color:var(--err)}
.slots{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}
.slot{padding:12px 4px;border-radius:12px;border:1px solid var(--input);background:#fff;color:var(--ink);font:500 14px Inter;cursor:pointer;transition:transform .3s var(--spring),border-color .2s,background .2s}
.slot:hover{border-color:var(--gtxt)}.slot:active{transform:scale(.97)}.slot.sel{border-color:var(--gtxt);background:#FFF6DF;font-weight:600}
.summary{background:var(--off);border:1px solid var(--hair);border-radius:14px;padding:16px 18px;margin-top:14px;font-size:15px}.summary div{display:flex;justify-content:space-between;gap:12px;padding:5px 0}.summary span{color:var(--mut)}
.reason{font-size:12px;color:var(--mut);margin-top:12px;min-height:18px}
.bk-actions{display:flex;gap:10px;margin-top:8px}.bk-actions .btn{flex:1;justify-content:center}
.check{width:76px;height:76px;margin:8px auto 16px;display:block}.check circle{stroke:var(--gold);stroke-width:3;fill:none;stroke-dasharray:220;stroke-dashoffset:220;animation:dr .6s var(--ease) forwards}
.check path{stroke:var(--gtxt);stroke-width:4;fill:none;stroke-linecap:round;stroke-dasharray:60;stroke-dashoffset:60;animation:dr .4s var(--ease) .5s forwards}@keyframes dr{to{stroke-dashoffset:0}}
.sheet[hidden]{display:block}
.sheet h3{margin-bottom:4px}
.field textarea{width:100%;margin-top:6px;padding:13px 14px;border-radius:12px;border:1px solid var(--input);background:#fff;color:var(--ink);font:inherit;font-size:16px;resize:vertical}
.field textarea:focus{outline:none;border-color:var(--gtxt);box-shadow:0 0 0 3px rgba(247,189,55,.25)}
.phone-row{display:grid;grid-template-columns:110px 1fr;gap:8px}
.slot small{display:block;font:500 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--mut);margin-bottom:2px}
.slots{max-height:46vh;overflow:auto;padding:2px}
.small{font-size:12px;margin-top:6px}
.bk-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
#bk-done{text-align:center}#bk-done a{color:var(--gold-text);text-decoration:underline}#bk-done:focus{outline:none}
.bk-actions .btn[hidden]{display:none}
.field .opt{text-transform:none;letter-spacing:0;font-family:var(--font-body)}.hint{font-size:12px;color:var(--mut);margin-top:6px}.hint+.err{margin-top:2px}
