.schedule-public{padding-top:52px;padding-bottom:72px;min-height:70vh}.schedule-public h1{font-size:clamp(2rem,5vw,3.6rem);margin:12px 0}.schedule-surface,.schedule-public .schedule-surface{background:#fff;border:1px solid #d7e0dc;border-radius:16px;padding:clamp(18px,4vw,36px);box-shadow:0 8px 24px #183b3810}.booking-progress{display:flex;gap:12px;flex-wrap:wrap;list-style:none;padding:0;margin:28px 0}.booking-progress li{padding:9px 12px;background:#eaf0ed;border-radius:8px;font-size:.9rem}.booking-progress [aria-current=step]{background:#193e39;color:#fff}.schedule-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.schedule-public .field,.schedule-toolbar .field{display:flex;flex-direction:column;gap:7px;margin:0 0 15px}.schedule-public input,.schedule-public select,.schedule-public textarea,.schedule-toolbar input,.schedule-toolbar select{border:1px solid #a6b9b0;border-radius:7px;padding:11px;font:inherit;max-width:100%;color:#183b38;background:#fff}.schedule-public input:focus,.schedule-public select:focus,.schedule-public textarea:focus{outline:3px solid #cda17e;outline-offset:2px}.schedule-public .checkbox-field{display:flex;align-items:center;gap:10px;margin:14px 0}.booking-section{margin:20px 0 28px}.booking-section[hidden],.schedule-fields[hidden],[data-person-fields][hidden]{display:none}.schedule-toolbar,.slot-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:18px 0}.schedule-toolbar label{font-weight:600}.schedule-toolbar .field{min-width:130px}.schedule-toolbar input,.schedule-toolbar select{padding:9px}.calendar-day{padding:10px;background:#f3f6f3;border:1px solid #d6dfd9;border-radius:10px;min-width:0}.calendar-day h2,.calendar-day h3{font-size:1rem;margin:0 0 12px}.slot-card{display:flex;flex-direction:column;gap:5px;width:100%;border:1px solid #779b83;background:#e6f1e7;color:#153e30;border-radius:8px;padding:12px 8px;margin:10px 0;cursor:pointer;text-align:left;font:inherit;font-size:.88rem}.slot-card:hover{background:#d3e8d5}.slot-card small{color:#2b6344}.service-picker{display:grid;gap:10px;margin:20px 0}.service-option{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;border:1px solid #ccd9d1;padding:16px;border-radius:9px}.service-option small{display:block;margin-top:5px;line-height:1.4}.service-option input[type=number]{width:100px}.review-details{max-width:850px}.review-details h3{margin-top:24px}.review-line{display:flex;justify-content:space-between;gap:18px;border-bottom:1px solid #e0e6e1;padding:8px 0}.quote-total{font-size:1.2rem;font-weight:700;padding:12px 0}.schedule-error{background:#fff0eb;border:1px solid #ba5c47;padding:18px;border-radius:8px;margin:16px 0;color:#743024}.schedule-message{background:#e4efec;padding:16px;border-radius:8px}.schedule-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}.schedule-tabs [aria-current=page]{background:#193e39;color:white}.staff-slot,.appointment-card{padding:12px;background:#fff;border:1px solid #b9cec0;border-radius:8px;margin-bottom:12px}.staff-slot p,.appointment-card p{font-size:.85rem;margin:7px 0}.slot-actions{gap:6px;margin:10px 0 0}.slot-actions .button{white-space:normal;font-size:.75rem;min-height:34px;padding:6px 9px}.appointment-card.is-booking{border-left:4px solid #467965}.appointment-card.is-block{border-left:4px solid #bd814a;background:#fff5e9}.appointment-card[draggable=true]{cursor:grab}.schedule-table{width:100%;border-collapse:collapse}.schedule-table th,.schedule-table td{text-align:left;padding:15px;border-bottom:1px solid #dfe6e1;vertical-align:top}.schedule-table-wrap{overflow:auto;margin:16px 0}.lookup-results{display:flex;flex-direction:column;gap:4px}.lookup-results button{padding:8px;text-align:left;border:1px solid #b9cec0;background:#f1f7f3;cursor:pointer}.status-badge{display:inline-block;font-size:.75rem;padding:3px 6px;margin:5px;background:#e7ede9;border-radius:5px}.muted{color:#62756c;font-size:.85rem}#schedule-content>.form-card{margin-bottom:18px}#schedule-content .schedule-fields .field{min-width:0}.schedule-public .button{cursor:pointer}.schedule-public button:disabled{opacity:.6;cursor:wait}

@media(max-width:600px){.schedule-fields{grid-template-columns:1fr}.schedule-public{padding-top:28px}.booking-progress{gap:6px}.booking-progress li{font-size:.78rem;padding:6px}.service-option{padding:10px;gap:9px}.service-option>span:last-child{font-size:.85rem}.schedule-toolbar .button{flex:1}.schedule-table td,.schedule-table th{padding:10px}.schedule-public .site-header nav{font-size:.85rem}}

.booking-progress li{padding:0;overflow:hidden}.booking-progress li>span,.booking-progress button{display:block;padding:9px 12px}.booking-progress button{border:0;background:transparent;color:inherit;font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.booking-progress button:hover{background:#d3e8d5}.booking-progress button:focus-visible{outline:3px solid #a66f45;outline-offset:-3px}@media(max-width:600px){.booking-progress li{padding:0}.booking-progress li>span,.booking-progress button{padding:6px}}

.review-section-content{margin-inline-start:24px;min-width:0}.review-fields{margin:0}.review-fields>div{margin:0 0 12px}.review-fields dt{font-weight:700}.review-fields dd{margin:3px 0 0;overflow-wrap:anywhere}.review-section-content p{overflow-wrap:anywhere}@media(max-width:600px){.review-section-content{margin-inline-start:12px}}
.review-details>h2{font-size:clamp(1.5rem,3vw,2rem);line-height:1.2;margin:0 0 12px;letter-spacing:-.02em}

#schedule-content .schedule-calendar-panel{margin-top:24px;background:#fff;border:1px solid #ccd9d1;border-radius:12px;min-width:0}
#schedule-content .calendar-toolbar{margin:0;padding:20px;gap:20px;align-items:flex-end;background:#edf3ef;border-bottom:1px solid #ccd9d1;border-radius:12px 12px 0 0}
#schedule-content .calendar-navigation,#schedule-content .calendar-search{display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px;min-width:0}
#schedule-content .calendar-navigation{flex:0 1 auto}
#schedule-content .calendar-search{margin-left:auto;flex:0 1 360px;flex-wrap:nowrap}
#schedule-content .calendar-toolbar .field{margin:0;min-width:0}
#schedule-content .calendar-search .field{flex:1;min-width:0}
#schedule-content .calendar-toolbar input,#schedule-content .calendar-toolbar select{width:100%;min-width:0;min-height:46px;box-sizing:border-box}
#schedule-content .calendar-toolbar .button{flex:none;min-height:46px}
#schedule-content .calendar-panel-body{padding:20px;min-width:0}
#schedule-content .calendar-panel-body>.schedule-table-wrap{margin:0;border:0;box-shadow:none;padding:0}
#schedule-content .calendar-panel-body>.schedule-message{margin:0 0 16px}
@media(max-width:1100px){#schedule-content .calendar-search{flex-basis:100%;margin-left:0}}
@media(max-width:600px){#schedule-content .calendar-toolbar,#schedule-content .calendar-panel-body{padding:14px}#schedule-content .calendar-navigation{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}#schedule-content .calendar-navigation [data-prev]{grid-column:1;grid-row:2}#schedule-content .calendar-navigation [data-next]{grid-column:2;grid-row:2}#schedule-content .calendar-search{width:100%}}

#schedule-content .calendar-day-heading,#schedule-content .calendar-card-heading{display:flex;align-items:center;justify-content:space-between;gap:6px}
#schedule-content .calendar-day-heading h2,#schedule-content .calendar-card-heading h3{margin:0;min-width:0;overflow-wrap:anywhere}
#schedule-content .calendar-day-heading{margin-bottom:8px}
#schedule-content .calendar-card-heading{flex-wrap:wrap}
#schedule-content .calendar-card-heading>strong{font-size:.8rem;overflow-wrap:anywhere}
#schedule-content .calendar-card-heading .slot-actions{margin:0;margin-left:auto}
#schedule-content .staff-slot{padding:8px;border-top:3px solid #658777}
#schedule-content .staff-slot.is-available{background:#eef5ee}
#schedule-content .staff-slot.has-booking{background:#e5eeeb;border-top-color:#315f52}
#schedule-content .staff-slot.has-block{background:#f8efe3;border-top-color:#a66f45}
#schedule-content .calendar-slot-status{font-size:.7rem;font-weight:700}
#schedule-content .slot-appointments:empty{display:none}
#schedule-content .slot-appointments{margin-top:8px}
#schedule-content .slot-appointments .appointment-card{margin:6px 0 0;padding:8px;overflow-wrap:anywhere}
#schedule-content .calendar-time{font-size:.75rem;font-variant-numeric:tabular-nums}
#schedule-content .calendar-unmatched{border-top:1px dashed #a6b9b0;margin-top:12px;padding-top:10px}
#schedule-content .calendar-unmatched>h3{font-size:.8rem}
#schedule-content .calendar-icon-action{display:inline-flex;align-items:center;justify-content:center;flex:none;min-width:36px;min-height:36px;padding:7px;border:1px solid transparent;border-radius:5px;background:transparent;color:#193e39;cursor:pointer}
#schedule-content .calendar-icon-action svg{width:20px;height:20px;pointer-events:none}
#schedule-content .calendar-icon-action:hover{background:#d1e2d8;border-color:#8eac9a}
#schedule-content .calendar-icon-action:focus-visible{outline:3px solid #a66f45;outline-offset:2px}
#schedule-content .calendar-icon-action[data-delete],#schedule-content .calendar-icon-action[data-delete-manual]{color:#963b2d}
#schedule-content .staff-slot>.slot-actions{gap:2px;margin:4px 0}

#schedule-content .calendar-move-hint{margin:0 0 16px;padding:10px 14px;border-left:3px solid #658777;background:#edf3ef;color:#193e39;font-size:.85rem}
.availability-dialog{width:min(600px,calc(100% - 32px));max-height:calc(100dvh - 32px);box-sizing:border-box;padding:24px;border:1px solid #ccd9d1;border-radius:12px;background:#fff;color:#193e39;box-shadow:0 24px 80px #102f2a40;overflow:auto}
.availability-dialog::backdrop{background:#061915a6}
.availability-dialog h2{font-size:1.6rem;margin:0 0 24px}
.availability-dialog .field{min-width:0}
.availability-dialog input,.availability-dialog select{width:100%;box-sizing:border-box;min-height:44px;padding:10px;font:inherit;border:1px solid #a6b9b0;border-radius:6px;background:#fff;color:inherit}
.availability-dialog :focus-visible{outline:3px solid #a66f45;outline-offset:2px}
.availability-dialog button:disabled{opacity:.6;cursor:wait}

.calendar-scroll{width:100%;max-width:100%;min-width:0;overflow-x:auto;border:1px solid #b7c9be;border-radius:8px;-webkit-overflow-scrolling:touch}
.calendar-scroll:focus-visible{outline:3px solid #a66f45;outline-offset:2px}
.schedule-calendar{display:table;width:100%;min-width:1120px;table-layout:fixed;border-collapse:collapse}
.schedule-calendar th{padding:12px 8px;background:#193e39;color:#fff;border-right:1px solid #7d998a;text-align:center;font-size:.9rem;font-weight:700}
.schedule-calendar td.calendar-day{width:calc(100% / 7);padding:10px;vertical-align:top;background:#f8faf8;border:1px solid #cbd8cf;border-radius:0;overflow-wrap:anywhere;height:150px}
.schedule-calendar td.calendar-padding{background:#edf0ed;border:1px solid #cbd8cf}
.schedule-calendar .calendar-day time{font-size:.85rem;font-weight:700}
.schedule-public [data-calendar],.calendar-panel-body{min-width:0;max-width:100%}
