.appointment-page{background:#111;color:#f5f3ee;min-height:100vh}.appointment-shell{width:min(960px,calc(100% - 32px));margin:auto;padding:140px 0 80px}.appointment-shell h1{font:700 clamp(3rem,6vw,5rem)/1 'Barlow Condensed',sans-serif;margin:24px 0}.appointment-shell h2{font:600 2rem/1.1 'Barlow Condensed',sans-serif}.appointment-shell h3{font:600 1rem/1.4 Inter,sans-serif}.appointment-shell p{line-height:1.65;max-width:70ch;color:#c5c0b6}.appointment-shell a{color:#c09c5d}.appointment-form fieldset{margin:36px 0;padding:28px 0;border:0;border-top:1px solid #49443c;min-width:0}.appointment-form legend{font:600 1.8rem 'Barlow Condensed',sans-serif;padding:0 16px 0 0}.appointment-form label{display:block;font:500 .9rem/1.5 Inter,sans-serif;margin:12px 0}.appointment-form input:not([type=radio]):not([type=checkbox]),.appointment-form select,.appointment-form textarea{display:block;width:100%;min-height:46px;background:#202222;color:#f5f3ee;border:1px solid #676155;border-radius:4px;padding:12px;font:inherit;box-sizing:border-box}.appointment-form input[type=radio],.appointment-form input[type=checkbox]{width:20px;height:20px;accent-color:#c09c5d;vertical-align:middle;margin-right:10px}.appointment-form button,.appointment-saved button{min-height:44px;padding:10px 16px;border:1px solid #75613e;border-radius:4px;background:transparent;color:inherit;font:500 .9rem Inter,sans-serif;cursor:pointer}.appointment-form button:disabled{opacity:.48;cursor:default}.appointment-form button:hover:enabled,.appointment-form [aria-pressed=true]{background:#c09c5d;color:#111}.appointment-form :focus-visible{outline:2px solid #c09c5d;outline-offset:3px}.appointment-fields,.appointment-options,.appointment-vehicles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.appointment-vehicle{background:#202222;padding:20px;border-radius:4px;cursor:pointer}.appointment-vehicle strong,.appointment-vehicle span{display:block}.appointment-photo{aspect-ratio:2/1;display:grid!important;place-items:center;font-size:.8rem;color:#c5c0b6}.appointment-photo img{display:block;width:100%;height:auto;aspect-ratio:2/1;object-fit:contain}.appointment-month{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:24px 0}.appointment-month h2{font-size:1.5rem;text-align:center}.appointment-calendar,.appointment-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.appointment-weekdays span{text-align:center;font:.75rem Inter,sans-serif;margin:8px 0}.appointment-calendar .appointment-day{min-height:64px;padding:8px 2px;border-color:#44413a}.appointment-day.available{border-color:#c09c5d}.appointment-day small{display:block;font-size:.65rem;margin-top:6px}.appointment-slots{display:flex;gap:10px;flex-wrap:wrap}.appointment-summary{padding:28px 0;border-top:1px solid #75613e}.appointment-form .portal-action{background:#c09c5d;color:#111}.appointment-form [hidden]{display:none!important}.appointment-legend{font-size:.8rem}.appointment-saved{padding:32px 0}.appointment-admin .appointment-shell{padding:0;width:100%;max-width:none}.appointment-admin label{color:inherit}.appointment-admin .appointment-list{display:grid;gap:12px;margin:24px 0}.appointment-row{display:grid;grid-template-columns:100px minmax(0,1fr) auto;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid #49443c}.appointment-admin .appointment-settings-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.appointment-admin textarea{min-height:90px}.appointment-admin .appointment-detail{margin:32px 0;padding:24px 0;border-top:1px solid #75613e}.appointment-admin .appointment-day-column{margin:24px 0}.appointment-admin table{width:100%}.appointment-admin .appointment-summary{overflow-wrap:anywhere}@media(max-width:600px){.appointment-fields,.appointment-options,.appointment-vehicles{grid-template-columns:1fr}.appointment-form fieldset{padding:24px 0}.appointment-calendar,.appointment-weekdays{gap:2px}.appointment-calendar .appointment-day{min-height:54px}.appointment-row{grid-template-columns:75px minmax(0,1fr)}.appointment-row button{grid-column:1/-1}.appointment-admin .appointment-settings-row{grid-template-columns:1fr}.appointment-shell{padding-top:112px}}@media(prefers-reduced-motion:reduce){.appointment-form *{scroll-behavior:auto!important}}

.appointment-agenda{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}.appointment-agenda .appointment-row{grid-template-columns:1fr}.appointment-admin summary{padding:20px 0;cursor:pointer;min-height:44px}.appointment-admin details{border-top:1px solid #49443c;margin-top:28px}

/* Booking steps preserve one form and its entered values throughout the journey. */
.appointment-progress{list-style:none;padding:0;margin:32px 0 16px;display:flex;gap:8px;flex-wrap:wrap}
.appointment-progress li{flex:1 1 150px;min-width:0}.appointment-progress button{width:100%;text-align:left;min-height:52px;line-height:1.5}
.appointment-progress button[aria-current=step]{border-color:#c09c5d;background:#c09c5d;color:#111}
.appointment-progress span{display:inline-grid;place-items:center;min-width:24px;font-weight:700}
.appointment-navigation{display:flex;gap:12px;justify-content:space-between;padding-top:24px;border-top:1px solid #49443c}
.appointment-navigation [data-step-next]{margin-left:auto;background:#c09c5d;color:#111}
.appointment-options>label{padding:20px;background:#202222;border:1px solid #676155;border-radius:4px;cursor:pointer}
.appointment-options>label:has(input:checked){border-color:#c09c5d;background:#302a20}.appointment-options>label:has(input:disabled){opacity:.65;cursor:default}
.appointment-options strong{font-family:'Barlow Condensed',sans-serif;font-size:1.4rem}.appointment-options span{display:block;padding-left:34px;color:#c5c0b6}
.appointment-form [data-step-feedback]{color:#f5d5bd;min-height:1.65em}.appointment-form fieldset{min-height:240px}
.appointment-form [hidden]{display:none!important}.appointment-form legend:focus,.appointment-summary h2:focus,.appointment-saved h2:focus{outline:2px solid #c09c5d;outline-offset:6px}
.appointment-confirmation{margin:24px 0}.appointment-confirmation>div{padding:12px 0;border-bottom:1px solid #49443c}.appointment-confirmation dt{color:#c5c0b6;font-size:.85rem}.appointment-confirmation dd{margin:6px 0;overflow-wrap:anywhere}
.appointment-form [data-slots] button{min-width:64px;min-height:48px}.appointment-form [data-calendar][aria-busy=true]{min-height:240px}
@media(max-width:600px){.appointment-progress li{flex-basis:calc(50% - 8px)}.appointment-progress button{font-size:.8rem;padding:10px 8px}.appointment-progress li:last-child{flex-basis:100%}.appointment-options>label{margin:0}.appointment-form .appointment-navigation button{min-width:100px}}
.appointment-form>fieldset:not([hidden]),.appointment-form>.appointment-summary:not([hidden]){animation:appointment-step-in 160ms ease-out}
@keyframes appointment-step-in{from{opacity:.9;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.appointment-form>fieldset,.appointment-form>.appointment-summary{animation:none}}
.appointment-summary,.appointment-saved,.appointment-vehicle{overflow-wrap:anywhere}

.appointment-day small{white-space:normal;overflow-wrap:anywhere;line-height:1.3}

.spark-admin{padding:24px 0}.spark-admin pre{white-space:pre-wrap;overflow-wrap:anywhere}.spark-admin details{margin-block:24px}.spark-admin .appointment-row{padding-block:16px;border-bottom:1px solid #49443c}.spark-admin .appointment-row p{overflow-wrap:anywhere}
