:root{font-family:Inter,ui-sans-serif,system-ui,sans-serif;color:#14212b;background:#f4f7f8;line-height:1.5}*{box-sizing:border-box}body{margin:0}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:1rem;top:1rem;background:#fff;padding:.6rem;z-index:2}.customer-header{display:flex;justify-content:space-between;align-items:center;padding:1rem max(1rem,calc((100% - 1080px)/2));background:#fff;border-bottom:1px solid #dce5e8}.customer-header a{display:flex;align-items:center;gap:.7rem;color:inherit;text-decoration:none}.brand-mark{display:grid;place-items:center;width:2rem;height:2rem;border-radius:.6rem;background:#0f6fae;color:#fff;font-weight:700}.fixture-badge{font-size:.75rem;color:#52636d;border:1px solid #cbd8dc;border-radius:999px;padding:.3rem .65rem}.customer-shell{max-width:1080px;margin:0 auto;padding:clamp(1.5rem,4vw,3.5rem) 1rem}.intro{max-width:620px;margin:4vh auto}.eyebrow{margin:0 0 .35rem;color:#0f6fae;font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}h1,h2{line-height:1.15;margin:.25rem 0 1rem}h1{font-size:clamp(2rem,5vw,3.4rem)}h2{font-size:1.35rem}.panel{background:#fff;border:1px solid #dce5e8;border-radius:1rem;padding:clamp(1rem,3vw,1.5rem);box-shadow:0 8px 24px #1837460d}.intro>p:not(.eyebrow){color:#52636d}.notice{display:grid;gap:.25rem;background:#edf6fa;border-left:4px solid #0f6fae;padding:1rem;margin:1.5rem 0;font-size:.9rem}.notice span,.muted{color:#62737c;font-size:.88rem}form{display:grid;gap:1rem}label{display:grid;gap:.35rem;font-size:.88rem;font-weight:650}input,select{width:100%;border:1px solid #b9c8cd;border-radius:.55rem;padding:.75rem;background:#fff;color:inherit;font:inherit}button{border:0;border-radius:.55rem;padding:.75rem 1rem;background:#0f6fae;color:#fff;font:inherit;font-weight:700;cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}.secondary{background:#fff;color:#0f6fae;border:1px solid #b9c8cd}.account-heading,.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.account-heading{border-bottom:1px solid #dce5e8;padding-bottom:1.25rem;margin-bottom:1.25rem}.account-heading h1{font-size:clamp(1.8rem,4vw,2.6rem)}.grid{display:grid;grid-template-columns:1.2fr .8fr;gap:1rem}.lower{margin-top:1rem}.stack{display:grid;gap:.75rem}.appointment{border:1px solid #dce5e8;border-radius:.75rem;padding:1rem}.appointment header{display:flex;justify-content:space-between;gap:1rem}.appointment h3{margin:0;font-size:1rem}.appointment p{margin:.3rem 0;color:#52636d;font-size:.88rem}.appointment-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.8rem}.appointment-actions button{font-size:.8rem;padding:.55rem .7rem}.status{font-size:.72rem;border:1px solid #b9c8cd;border-radius:999px;padding:.2rem .5rem;white-space:nowrap}.check{display:flex;grid-template-columns:none;align-items:center;gap:.6rem;font-weight:500}.check input{width:auto}.error,.success{padding:.75rem;border-radius:.55rem;margin-bottom:1rem;font-size:.9rem}.error{background:#fff0ee;color:#a33b2c}.success{background:#ecf8ef;color:#246737}.hidden{display:none}.slots{display:grid;gap:.6rem}.slots h3{font-size:.9rem;margin:.5rem 0 0}.slot{background:#fff;color:#0f6fae;border:1px solid #b9c8cd;text-align:left}.slot.selected{background:#e8f4f9;border-color:#0f6fae}.lower .panel{align-self:start}@media(max-width:720px){.grid{grid-template-columns:1fr}.account-heading,.section-heading{align-items:stretch;flex-direction:column}.account-heading .secondary,.section-heading .secondary{align-self:flex-start}.customer-header{align-items:flex-start;gap:.75rem}.fixture-badge{font-size:.68rem}}
#booking-panel{scroll-margin-top:1rem}#booking-title:focus{outline:3px solid #0f6fae;outline-offset:.25rem;border-radius:.15rem}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.customer-updates{margin-top:1rem}
#slot-list > .slots{grid-template-columns:repeat(4,minmax(0,1fr))}
#slot-list > .slots .slot{padding-inline:.45rem;text-align:center;white-space:nowrap}
@media(max-width:720px){#slot-list > .slots{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:360px){#slot-list > .slots{grid-template-columns:repeat(2,minmax(0,1fr))}}
.appointment header{align-items:flex-start}
@media(max-width:720px){#upcoming{margin-top:.75rem}}
#welcome{scroll-margin-top:3rem}#welcome:focus{outline:3px solid #0f6fae;outline-offset:.25rem;border-radius:.15rem}
.queue-divider{display:flex;align-items:center;gap:.75rem;margin:1.5rem 0 1rem;color:#62737c;font-size:.8rem}.queue-divider:before,.queue-divider:after{content:"";height:1px;flex:1;background:#dce5e8}.queue-callout{border:1px solid #b9d8e4;border-radius:.75rem;padding:1rem;background:#f5fbfd}.queue-callout h2{margin-bottom:.4rem}.queue-callout p:not(.eyebrow){color:#52636d;font-size:.88rem}.queue-status{margin-top:1rem;border:1px solid #b9d8e4;border-radius:.75rem;padding:1rem;background:#f5fbfd}.queue-ticket{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.queue-ticket h3{margin:0;font-size:1rem}.queue-ticket p{margin:.3rem 0;color:#52636d;font-size:.88rem}.queue-ticket>strong{font-size:1.1rem;color:#0f6fae;white-space:nowrap}
