.booking-header{max-width:1440px;margin:auto;padding:24px 5vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.booking-header img{width:170px;display:block}.booking-header>a:last-child{font-size:1rem}.booking-layout{display:grid;grid-template-columns:minmax(240px,.85fr) minmax(350px,1.15fr);max-width:1440px;margin:auto;min-height:calc(100vh - 99px)}.booking-story{position:relative;isolation:isolate;min-height:650px;overflow:hidden}.booking-story>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.booking-story:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#172219d9,#1722190a 80%);z-index:-1}.booking-story>div{position:absolute;bottom:65px;inset-inline:10%;color:#fffdf8}.booking-story h1{font-size:clamp(2rem,3.5vw,3.8rem);line-height:1.5;margin:16px 0}.booking-story p{font-size:1rem}.booking-story p:first-child{letter-spacing:.12em;font-size:.875rem}.booking-workspace{padding:42px clamp(22px,4vw,65px)}.booking-workspace>div>h2{margin-bottom:10px}.booking-workspace .overline{font-size:.875rem}.booking-workspace label{font-size:1rem}.booking-workspace form{display:grid;gap:20px;margin-top:28px}.booking-workspace input,.booking-workspace select,.booking-workspace textarea{font-size:1rem}.time-field{border:0;padding:0;margin:0;min-width:0}.time-field legend{font-size:1rem;margin-bottom:10px}.booking-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;max-height:260px;overflow:auto;padding:4px}.booking-slot{padding:9px 5px;min-height:46px;border:1px solid var(--line);border-radius:3px;background:#fffdf9;color:var(--ink);font-size:.9rem}.booking-slot[aria-pressed=true]{background:var(--green);border-color:var(--green);color:white}.booking-slot:disabled{opacity:.35;text-decoration:line-through;cursor:default}.booking-slot small{display:block;font-size:.75rem}.booking-policy{padding:12px 14px;background:#e4e7de;font-size:.9rem}.booking-privacy{font-size:.875rem;color:var(--muted)}#booking-submit{font-size:1rem;min-height:52px}.booking-honey{position:absolute;inset-inline-start:-10000px;width:1px;height:1px;overflow:hidden}.booking-contact{display:flex;flex-wrap:wrap;gap:10px 20px;padding-top:24px;margin-top:30px;border-top:1px solid var(--line);font-size:.9rem}.booking-contact span{width:100%;color:var(--muted)}.booking-contact a{text-decoration:underline;text-underline-offset:4px}#booking-message{min-height:28px;margin-top:18px}#booking-message.error,.booking-error{color:#9c302b}#booking-message.success{color:#3e5b35}#booking-receipt{border-block:1px solid var(--line);margin:28px 0;padding:20px 0}#booking-receipt dl{display:grid;grid-template-columns:1fr 1.5fr;gap:16px;margin:0}#booking-receipt dt{color:var(--muted)}#booking-receipt dd{margin:0;font-weight:500}#receipt-help{margin-bottom:20px}.receipt-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:24px}.reservation-page [dir=ltr]{unicode-bidi:isolate}
/* Reservations in the existing administration workspace. */
.reservation-tools{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin:20px 0}.reservation-tools label{font-size:1rem;flex:1;max-width:240px}.reservation-stats{display:flex;flex-wrap:wrap;gap:15px;margin:24px 0}.reservation-stats>div{padding:16px 22px;background:#e7e9e0;flex:1;min-width:130px}.reservation-stats strong{font-size:1.6rem;display:block}.reservation-stats span{font-size:.9rem;color:var(--muted)}.reservation-card{border:1px solid var(--line);padding:20px;margin:16px 0;background:#fffdf9}.reservation-card header{display:flex;justify-content:space-between;gap:16px;align-items:start}.reservation-card .reservation-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}.reservation-card p{margin-top:8px;overflow-wrap:anywhere}.reservation-card a{direction:ltr;display:inline-block;text-decoration:underline}.reservation-meta{color:var(--muted);font-size:.9rem}.reservation-status{font-size:.9rem;padding:4px 10px;background:#e4e7de;white-space:nowrap}.reservation-card[data-status=cancelled],.reservation-card[data-status=no_show],.reservation-card[data-status=completed]{opacity:.65}.reservation-overdue{color:#9c302b;font-weight:500}.reservation-settings{border:1px solid var(--line);padding:22px;margin-top:28px}.reservation-settings summary{cursor:pointer;font-size:1.1rem}.reservation-settings form{display:grid;gap:18px;margin-top:20px;max-width:800px}.reservation-settings label{font-size:1rem}.reservation-check{display:flex;gap:10px;align-items:center}.reservation-notice{min-height:28px;font-size:1rem}.reservation-note{white-space:pre-wrap}.reservation-table-map{display:flex;flex-wrap:wrap;gap:8px}.reservation-table-map span{border:1px solid var(--line);padding:8px 12px;font-size:.875rem}.reservation-form{display:grid;gap:16px}.reservation-form label{font-size:1rem}#new-reservation-dialog{max-width:620px;max-height:90dvh;overflow:auto}.booking-admin-mode .toolbar,.booking-admin-mode .save-status,.booking-admin-mode .workspace-footer,.booking-admin-mode #notice,.booking-admin-mode .sidebar-note{display:none}.booking-admin-mode .workspace-head .overline{visibility:hidden}.sidebar nav{overflow-x:auto}.sidebar .nav-tab{flex-shrink:0}.reservation-form .field-row{grid-template-columns:1fr 1fr}
@media(max-width:850px){.booking-layout{grid-template-columns:1fr}.booking-story{min-height:170px}.booking-story>div{position:relative;inset:auto;padding:28px 24px}.booking-story h1{font-size:2rem;margin:6px 0}.booking-story>img{object-position:50% 55%}.booking-workspace{padding:28px 22px 40px}.booking-header{padding:18px 22px}.booking-header img{width:145px}.booking-slots{max-height:230px}.booking-story p:first-child{display:none}}
@media(max-width:420px){.booking-slots{grid-template-columns:repeat(3,minmax(0,1fr))}.booking-workspace .field-row,.reservation-form .field-row{grid-template-columns:1fr}.reservation-card{padding:16px}.reservation-card header{flex-wrap:wrap}}
/* Internal host queue. */
.waitlist-section{border:1px solid var(--line);padding:24px;margin:24px 0;background:#f9f8f2}.waitlist-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.waitlist-heading h3{font-size:1.3rem;margin:0}.waitlist-heading p{font-size:.95rem;margin-top:6px}.waitlist-switch{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--line);background:white;color:var(--ink);padding:10px 14px;font-size:1rem;min-height:48px}.waitlist-track{display:block;width:44px;height:26px;border-radius:20px;background:#aaa99f;position:relative;flex-shrink:0}.waitlist-track:before{content:'';position:absolute;top:3px;left:3px;width:20px;height:20px;background:white;border-radius:50%;box-shadow:0 1px 3px #0002;transition:transform .15s}.waitlist-switch[aria-checked=true] .waitlist-track{background:#486439}.waitlist-switch[aria-checked=true] .waitlist-track:before{transform:translateX(18px)}.waitlist-switch:disabled{opacity:.6;cursor:default}.waitlist-switch:focus-visible{outline:3px solid #42633a;outline-offset:3px}.waitlist-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;margin:20px 0}.waitlist-toolbar label{display:flex;align-items:center;gap:10px;font-size:.95rem}.waitlist-toolbar input{width:18px;height:18px}.waitlist-card{padding:18px 0;border-top:1px solid var(--line);display:flex;gap:20px;align-items:center;flex-wrap:wrap}.waitlist-guest{flex:1;min-width:170px}.waitlist-guest h4{margin:0;font-size:1.1rem}.waitlist-guest h4 span{font-weight:400}.waitlist-guest a{display:inline-block;font-size:.95rem;text-decoration:underline;margin-top:6px}.waitlist-guest p{margin-top:8px;font-size:.95rem;overflow-wrap:anywhere}.waitlist-duration{display:flex;flex-direction:column;gap:4px;font-size:.95rem}.waitlist-duration strong{font-variant-numeric:tabular-nums}.waitlist-actions{display:flex;gap:8px;flex-wrap:wrap}.waitlist-empty{padding:12px 0;color:var(--muted)}#waitlist-notice{margin:12px 0 0;min-height:24px}#waitlist-help{margin-top:12px;font-size:.95rem}#waitlist-dialog{max-width:620px;max-height:90dvh;overflow:auto}
@media(max-width:700px){.waitlist-section{padding:16px}.waitlist-heading{align-items:start;gap:12px}.waitlist-switch{padding:8px}.waitlist-card{gap:12px}.waitlist-actions{width:100%}.waitlist-actions button{flex:1}.waitlist-heading h3{font-size:1.2rem}}
@media(prefers-reduced-motion:reduce){.waitlist-track:before{transition:none}}
