.bookcal{background:var(--navy);border:1px solid var(--panel-edge);border-radius:var(--radius);padding:var(--space-3);color:var(--cream);display:grid;gap:var(--space-2)}.bookcal--loading,.bookcal--error,.bookcal--locked{min-height:120px;align-content:center;justify-items:start}.bookcal__loading,.bookcal__locked-note{font-size:var(--step-label);letter-spacing:.1em;text-transform:uppercase;color:#f5efe3d1}.bookcal__loading{animation:bookcal-pulse 1.2s ease-in-out infinite}@keyframes bookcal-pulse{50%{opacity:.45}}.bookcal__error-note{color:#f5efe3eb}.bookcal__retry{font-family:var(--font-body);font-size:.9375rem;font-weight:700;color:var(--cream);background:#f5efe314;border:2px solid var(--cream);border-radius:var(--radius);min-height:var(--tap);padding:.5em 1.4em;cursor:pointer}.bookcal__days{display:flex;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;padding-bottom:4px}.bookcal__day{flex:0 0 auto;scroll-snap-align:start;display:grid;gap:2px;justify-items:center;min-width:86px;min-height:var(--tap);padding:.55rem .8rem;background:var(--navy-deep);border:1px solid var(--panel-edge);border-radius:var(--radius);color:var(--cream);cursor:pointer;transition:border-color .15s var(--ease)}.bookcal__day:hover{border-color:var(--red)}.bookcal__day--on{border-color:var(--red);background:var(--panel)}.bookcal__day-dow{font-size:var(--step-label);letter-spacing:.12em;text-transform:uppercase;color:#f5efe3d1}.bookcal__day--on .bookcal__day-dow{color:var(--red-hot)}.bookcal__day-date{font-size:.9375rem;font-weight:700}.bookcal__day-count{font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:#f5efe39e}.bookcal__slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:8px}.bookcal__slot{font-family:var(--font-body);font-size:.9375rem;font-weight:700;color:var(--cream);background:#f5efe30f;border:1px solid rgba(245,239,227,.4);border-radius:var(--radius);min-height:var(--tap);padding:.5em .4em;cursor:pointer;transition:border-color .15s var(--ease),background .15s var(--ease)}.bookcal__slot:hover{border-color:var(--red-hot);background:#ff4b571a}.bookcal__confirm{grid-column:span 2;display:flex;gap:6px}.bookcal__confirm-yes{flex:1;font-family:var(--font-body);font-size:.9375rem;font-weight:700;color:#fff;background:var(--red-deep);border:2px solid var(--red-deep);border-radius:var(--radius);min-height:var(--tap);cursor:pointer}.bookcal__confirm-yes:hover{background:#c81d29;border-color:#c81d29}.bookcal__confirm-yes:disabled{opacity:.7;cursor:wait}.bookcal__confirm-no{font-size:1.2rem;font-weight:700;color:var(--cream);background:#f5efe314;border:1px solid rgba(245,239,227,.4);border-radius:var(--radius);min-width:var(--tap);min-height:var(--tap);cursor:pointer}.bookcal__book-error{font-size:var(--step-small);color:var(--red-hot)}.bookcal__tz{font-size:var(--step-label);letter-spacing:.08em;text-transform:uppercase;color:#f5efe39e}.bookcal--done{border-color:var(--good);justify-items:start}.bookcal__done-eyebrow{font-size:var(--step-label);font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--good)}.bookcal__done-when{font-size:var(--step-2);font-weight:800;letter-spacing:-.01em;line-height:1.15}.bookcal__done-note{color:#f5efe3e6;line-height:1.55;max-width:44em}.bookcal__slot:focus-visible,.bookcal__day:focus-visible,.bookcal__confirm-yes:focus-visible,.bookcal__confirm-no:focus-visible,.bookcal__retry:focus-visible{outline:3px solid var(--red-hot);outline-offset:2px}@media(max-width:480px){.bookcal{padding:var(--space-2)}.bookcal__slots{grid-template-columns:repeat(auto-fill,minmax(104px,1fr))}}.bookcal__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2)}.bookcal__tzpick{display:inline-flex;align-items:center;gap:.6rem}.bookcal__tzpick .mono{font-size:var(--step-label);letter-spacing:.1em;text-transform:uppercase;color:#f5efe39e}.bookcal__tzpick select{font-family:var(--font-body);font-size:.9375rem;font-weight:600;color:var(--cream);background:var(--navy-deep);border:1px solid rgba(245,239,227,.4);border-radius:var(--radius);min-height:var(--tap);padding:.35em .7em;cursor:pointer}.bookcal__picked{font-size:var(--step-label);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--good)}.bookcal__q{font-size:var(--step-3);font-weight:700;letter-spacing:-.01em}.bookcal__chips{display:flex;flex-wrap:wrap;gap:8px}.bookcal__chip{font-family:var(--font-body);font-size:.9375rem;font-weight:600;color:var(--cream);background:#f5efe30f;border:1px solid rgba(245,239,227,.4);border-radius:999px;min-height:var(--tap);padding:.4em 1em;cursor:pointer;transition:border-color .15s var(--ease),background .15s var(--ease)}.bookcal__chip:hover{border-color:var(--red-hot)}.bookcal__chip--on{background:var(--red-deep);border-color:var(--red-deep);color:#fff}.bookcal__notes-label{display:grid;gap:.4rem}.bookcal__notes-label .mono{font-size:var(--step-label);letter-spacing:.1em;text-transform:uppercase;color:#f5efe39e}.bookcal__notes{width:100%;font-family:var(--font-body);font-size:1rem;line-height:1.5;color:var(--cream);background:var(--navy-deep);border:1px solid rgba(245,239,227,.4);border-radius:var(--radius);padding:.7em .9em;resize:vertical}.bookcal__lockrow{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.bookcal__lock{flex:0 1 auto;min-height:52px;padding:.6em 1.8em;font-size:1.05rem}.bookcal__backlink{background:none;border:0;font-family:var(--font-body);font-size:.9375rem;color:#f5efe3d9;text-decoration:underline;text-underline-offset:3px;min-height:var(--tap);cursor:pointer;padding:0 .25rem}.bookcal__chip:focus-visible,.bookcal__backlink:focus-visible,.bookcal__tzpick select:focus-visible,.bookcal__notes:focus-visible{outline:3px solid var(--red-hot);outline-offset:2px}.bookcal__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}@media(max-width:560px){.bookcal__grid{grid-template-columns:1fr}}.bookcal__f{display:grid;gap:.4rem;min-width:0}.bookcal__f-label{font-size:var(--step-label);letter-spacing:.08em;text-transform:uppercase;color:#f5efe3b8;line-height:1.4}.bookcal__f input{width:100%;min-height:var(--tap);padding:.55em .85em;font:inherit;font-size:1rem;color:var(--cream);background:var(--navy-deep);border:1px solid rgba(245,239,227,.4);border-radius:var(--radius)}.bookcal__f-wrap{position:relative;display:block}.bookcal__f-wrap--pre input{padding-left:1.9em}.bookcal__f-pre{position:absolute;left:.85em;top:50%;transform:translateY(-50%);color:#f5efe39e;font-size:.9rem}.bookcal__f input:focus-visible,.bookcal__f .bookcal__notes:focus-visible{outline:3px solid var(--red-hot);outline-offset:2px}
