
/* The existing booking cards and colours are retained. */
.booking-summary #booking-summary{display:block}
.booking-summary #booking-summary .visit-services{width:100%}
.visit-services{list-style:none;padding:0;margin:12px 0;display:grid;gap:10px}
.visit-services li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;min-width:0;padding-block:8px;border-bottom:1px solid var(--line);text-align:start}
.visit-services li>span{min-width:0;flex:1 1 150px;overflow-wrap:anywhere}
.visit-services bdi{max-width:100%;white-space:normal}
.visit-totals{margin-block:14px;text-align:start}
.visit-totals p{margin:6px 0;overflow-wrap:anywhere}
.visit-totals .summary-price{font-size:inherit;font-weight:700}
.booking-success .visit-services{max-width:650px;margin-inline:auto}
.booking-selection-notice{margin-block:12px}
.manual-services{display:grid;gap:10px;margin-block:12px;border:0;padding:0;min-width:0}
.manual-services legend{font-weight:600;margin-block:8px}
.manual-service-choice{display:flex;align-items:flex-start;gap:12px;padding:12px;border:1px solid var(--line);border-radius:8px;min-width:0;cursor:pointer;text-align:start}
.manual-service-choice:has(input:checked){border-color:var(--rose);background:var(--sand)}
.manual-service-choice input{flex:none;width:20px;height:20px;margin-block-start:3px}
.manual-service-choice>span{flex:1;min-width:0;overflow-wrap:anywhere}
.manual-service-choice small{display:block;color:var(--muted)}
.manual-service-choice:focus-within{outline:2px solid var(--rose);outline-offset:2px}
.manual-selection-summary{min-width:0}
.responsive-table .visit-totals{font-size:12px}
.agenda-card>div{min-width:0}
.agenda-card p{overflow-wrap:anywhere}
@media(max-width:600px){
 .visit-services li{flex-direction:column;align-items:flex-start}
 .visit-services li>span{flex-basis:auto;width:100%}
 .visit-services li>bdi{font-size:13px}
 .visit-row>div{min-width:0}
 .responsive-table td:has(.visit-services){align-items:flex-start}
 .responsive-table td>.visit-composition{flex:1}
}

/* Public booking only: admin calendars keep their existing styles. */
#booking-calendar,.booking-calendar-legend{
 --day-free-bg:#dceee1;--day-free-text:#28553b;--day-free-border:#9dc7aa;
 --day-partial-bg:#f5eac9;--day-partial-text:#6b531b;--day-partial-border:#dbc282;
 --day-full-bg:#f1dddd;--day-full-text:#784443;--day-full-border:#d2aaa8;
}
:root[data-theme="dark"] #booking-calendar,:root[data-theme="dark"] .booking-calendar-legend{
 --day-free-bg:#294438;--day-free-text:#c3e6cb;--day-free-border:#5b8269;
 --day-partial-bg:#4b4129;--day-partial-text:#eedaa5;--day-partial-border:#8f7b49;
 --day-full-bg:#493232;--day-full-text:#e9bfbc;--day-full-border:#906260;
}
#booking-calendar .availability-free,.booking-calendar-legend .availability-free{background:var(--day-free-bg);color:var(--day-free-text);border-color:var(--day-free-border)}
#booking-calendar .availability-partial,.booking-calendar-legend .availability-partial{background:var(--day-partial-bg);color:var(--day-partial-text);border-color:var(--day-partial-border)}
#booking-calendar .availability-full,.booking-calendar-legend .availability-full{background:var(--day-full-bg);color:var(--day-full-text);border-color:var(--day-full-border)}
#booking-calendar .calendar-day[class*="availability-"]{border-width:1px;border-style:solid}
#booking-calendar .calendar-day.availability-full:disabled{opacity:1}
#booking-calendar .calendar-day.availability-unavailable{background:color-mix(in srgb,var(--muted) 12%,var(--paper));color:var(--muted)}
#booking-calendar .calendar-day:is(.availability-free,.availability-partial):hover{filter:brightness(.95)}
#booking-calendar .calendar-day.selected{outline:2px solid var(--ink);outline-offset:2px;font-weight:700}
#booking-calendar .calendar-day.selected:after{background:currentColor}
.booking-calendar-legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-block:10px;font-size:12px;text-align:start}
.booking-calendar-legend .legend-item{display:inline-flex;align-items:center;gap:6px}
.booking-calendar-legend i{width:12px;height:12px;flex:none;border:1px solid;border-radius:50%}
