.catalog-row{padding:16px 0;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:16px}.catalog-row>div{flex:1}.catalog-dot{width:14px;height:42px;border-radius:9px;background:var(--type-colour)}.catalog-window{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:12px;align-items:end;margin-bottom:12px}.catalog-availability{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr 1fr auto;gap:10px;align-items:end;margin-bottom:14px}.catalog-editor{max-width:950px}.catalog-summary{background:var(--surface-soft,#f1f7fa);padding:16px;border-radius:12px;margin:18px 0}.booking-request-card{padding:20px;border:1px solid var(--border);border-left:4px solid #32939a;border-radius:12px;margin:15px 0}.booking-review-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:end}.template-editor-body .rich-editor{min-height:300px}.letter-editor .rich-editor{min-height:350px}.template-history{max-height:300px;overflow:auto}.booking-settings-band{background:linear-gradient(120deg,#eaf2fb,#e5f6f5);border-radius:14px;padding:20px;margin-bottom:24px}.booking-settings-band h3{color:#204b86;margin-top:0}@media(max-width:900px){.catalog-availability,.catalog-window{grid-template-columns:1fr 1fr}.public-booking main{margin:10px auto}.catalog-row{flex-wrap:wrap}}

.catalog-editor input[type="color"]{box-sizing:border-box;width:100%;height:42px;padding:6px;border:1px solid var(--border);border-radius:8px;background:white;cursor:pointer}.catalog-editor input[type="color"]::-webkit-color-swatch-wrapper{padding:0}.catalog-editor input[type="color"]::-webkit-color-swatch{border:0;border-radius:5px}.catalog-editor input[type="color"]::-moz-color-swatch{border:0;border-radius:5px}

.catalog-closure{min-width:0;margin:14px 0;border:1px solid var(--border);padding:20px}.catalog-closure legend{font-weight:700;padding:0 8px}.closure-weekdays{display:flex;flex-wrap:wrap;gap:8px 20px;margin:12px 0}.closure-weekdays .checkbox-row{margin:0}.closure-times[hidden],#catalog-slot-interval[hidden],#catalog-fixed-times[hidden]{display:none}.diary-closures-banner{background:var(--surface-alt,#eef5f8);border-left:3px solid #ac7841;border-radius:8px;margin:12px 16px;padding:12px 16px;display:grid;gap:5px;font-size:13px}.diary-closures-banner small{color:var(--muted)}.time-slot.is-closed{background:repeating-linear-gradient(135deg,#f0f2f4,#f0f2f4 6px,#e8ecf0 6px,#e8ecf0 7px);cursor:default;color:#67717e}.time-slot.is-closed span{opacity:1;font-size:11px}.month-closed{font-size:11px;color:#815a30;padding:4px;background:#f6efdf;border-radius:4px}

/* Patient-facing booking. Keep these rules scoped away from the staff workspace. */
.public-booking{margin:0;color:#263843;background:radial-gradient(ellipse at 90% 0,#e2f3f8 0,transparent 50%),#f5f8fb;font-size:15px;line-height:1.6;min-height:100vh}
.public-booking [hidden]{display:none!important}.public-booking .booking-shell{max-width:1120px;margin:0 auto;padding:0 32px}.booking-header{display:flex;justify-content:space-between;align-items:center;padding:28px 0;border-bottom:1px solid #dce6ed;gap:16px}.booking-brand{display:flex;align-items:center;gap:12px;color:#204b86;font-size:22px;font-weight:700;letter-spacing:-.5px}.booking-brand small{display:block;color:#617889;font-size:10px;letter-spacing:2px;font-weight:600;text-transform:uppercase;margin-top:-2px}.booking-home{font-size:13px;color:#365a78}.booking-hero{position:relative;padding:46px 0 32px;overflow:hidden}.public-booking .eyebrow{color:#407c91;font-size:10px;font-weight:700;letter-spacing:1.8px;margin-bottom:12px}.public-booking h1{font-size:clamp(28px,4vw,40px);line-height:1.2;letter-spacing:-1.1px;color:#204b86}.booking-hero p{color:#5b7183;font-size:16px;line-height:1.75;margin-top:16px}.booking-hero-mark{position:absolute;right:36px;top:38px;width:160px;height:160px}.booking-hero-mark span{position:absolute;border:1px solid #70b7ca;border-radius:50%;opacity:.45}.booking-hero-mark span:nth-child(1){inset:0}.booking-hero-mark span:nth-child(2){inset:22px}.booking-hero-mark span:nth-child(3){inset:46px;background:#9bd9e1;opacity:.2}.booking-progress{display:flex;list-style:none;padding:0;margin:0 0 26px;gap:30px;font-size:12px;color:#6a7c8b}.booking-progress li{display:flex;align-items:center;gap:9px}.booking-progress li>span{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;border:1px solid #cbd9e3;background:#fff;font-weight:700}.booking-progress li[aria-current]{color:#204b86;font-weight:650}.booking-progress li[aria-current]>span{background:#204b86;border-color:#204b86;color:white}.booking-progress li.is-complete>span{background:#e1f2f5;border-color:#8fc6d5;color:#235f74}.booking-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:26px;align-items:start}.booking-content{min-width:0}.public-booking .card{margin-bottom:24px;padding:30px;border:1px solid #dce6ee;border-radius:18px;background:#fff;box-shadow:0 5px 22px #204b8605}.booking-section-heading{display:flex;gap:13px;align-items:flex-start;margin-bottom:24px}.booking-section-number{font-size:11px;font-weight:700;letter-spacing:.5px;color:#32889e;background:#eaf6f9;padding:7px 9px;border-radius:8px}.public-booking h2{font-size:19px;color:#244e73;letter-spacing:-.3px}.booking-section-heading p,.booking-times-heading p{font-size:13px;color:#667c8d;margin:5px 0 0}.public-booking label{display:grid;gap:8px;font-size:13px;font-weight:600;color:#344f68;margin:0 0 18px}.public-booking .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.public-booking input:not([type=checkbox]),.public-booking select{min-width:0;width:100%;min-height:48px;background-color:#fcfdff;border-color:#cbdbe6;border-radius:9px;padding:12px 14px;color:#253f55;font-size:14px}.public-booking select{padding-right:40px}.public-booking input::placeholder{color:#7e909e}.public-booking input:focus,.public-booking select:focus{border-color:#398ca5;outline:3px solid #dcf1f7}.booking-type-info{font-size:12px;color:#617789;margin:0 0 26px!important}.booking-times-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;padding-top:24px;border-top:1px solid #e6edf2}.public-booking .button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;border-radius:9px;padding:11px 16px;font-size:13px;line-height:1.4;white-space:normal;text-align:center}.public-booking .button.primary{background:#204b86;border:1px solid #204b86;color:#fff;box-shadow:0 3px 7px #204b8615}.public-booking .button.primary:hover{background:#173e72;color:white}.public-booking .button.secondary{background:#fff;border:1px solid #c4d9e5;color:#275374}.public-booking .button.secondary:hover{background:#eff7fa;color:#204b86}.public-booking .button:disabled{opacity:.6;cursor:wait}.booking-status{font-size:13px;color:#617789;margin:16px 0 18px!important}.booking-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.booking-day-heading{grid-column:1/-1;font-size:12px;color:#526e84;font-weight:600;margin:12px 0 0}.booking-day-heading:first-child{margin-top:0}.booking-slot{position:relative;min-width:0;text-align:left;border:1px solid #d0e0e9;border-radius:11px;background:#f9fcfe;padding:16px 14px;color:#204b86;transition:background .15s,border-color .15s}.booking-slot strong{display:block;font-size:19px;font-weight:650}.booking-slot>span:not(.booking-slot-check){display:block;margin-top:5px;font-size:11px;color:#60778b;overflow-wrap:anywhere}.booking-slot small{color:#768b9c;font-size:11px}.booking-slot:hover{background:#edf7fa;border-color:#75b1c5}.booking-slot.selected{background:#e8f5fa;border-color:#3288a3;box-shadow:inset 0 0 0 1px #3288a3}.booking-slot-check{display:none;position:absolute;right:10px;top:10px;color:#26738d;font-size:13px}.booking-slot.selected .booking-slot-check{display:block}.booking-guidance{padding:24px 22px;border-radius:16px;background:linear-gradient(145deg,#e9f4fa,#edf7f7);border:1px solid #d9e9ef}.booking-guidance-icon{font-size:26px;color:#458ba4;margin-bottom:12px}.booking-guidance h2{font-size:18px}.booking-guidance>p{color:#587589;font-size:13px;margin:8px 0 20px}.booking-guidance-item{padding:17px 0;border-top:1px solid #d5e5ed}.booking-guidance-item h3{font-size:13px;color:#315878}.booking-guidance-item p{font-size:12px;line-height:1.75;color:#5d798b;margin:6px 0 0}.booking-guidance>a{display:block;font-size:12px;font-weight:600;border-top:1px solid #d5e5ed;padding-top:18px;color:#2e718b}.booking-appointment-summary{background:#f1f7fb;border:1px solid #dbe9f2;border-left:3px solid #66c2dd;border-radius:11px;padding:22px;margin-bottom:26px}.booking-appointment-summary h3{font-size:17px;color:#204b86;margin-bottom:15px}.booking-appointment-summary dl{display:grid;grid-template-columns:1fr 1fr;gap:18px 24px;margin:0}.booking-appointment-summary dt{font-size:11px;color:#667c8d;margin-bottom:4px}.booking-appointment-summary dd{margin:0;color:#2c4961;font-size:13px;font-weight:550}.booking-appointment-summary dd small{color:#667c8d;font-weight:400}.public-booking .booking-consent{display:flex;align-items:flex-start;gap:11px;font-size:12px;font-weight:400;color:#526d81;margin-top:4px}.booking-consent input{flex:0 0 auto;width:18px;height:18px;margin:2px 0 0;accent-color:#204b86}.booking-form-help{font-size:12px;color:#677e8f;line-height:1.7;margin:16px 0}.booking-submit{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:20px;margin-top:20px;border-top:1px solid #e6edf2}.booking-submit p{font-size:12px;color:#61798c;max-width:200px}.booking-footer{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:11px;color:#748898;margin:12px 0 32px;padding-top:22px;border-top:1px solid #dce6ed}.booking-honeypot{position:absolute;left:-10000px}.booking-intro{padding:38px!important}.booking-intro p{max-width:490px;color:#60798c;margin:12px 0 24px}.booking-empty-icon{font-size:26px;color:#418aa5;background:#eaf5fa;border-radius:12px;display:grid;place-items:center;width:48px;height:48px;margin-bottom:20px}.booking-received{display:block;max-width:740px;margin:38px auto}.booking-received .card{padding:40px}.booking-success-heading{text-align:center}.booking-success-icon{display:grid;place-items:center;background:#e5f4ee;color:#2d7a60;border:1px solid #c4e3d5;width:58px;height:58px;border-radius:50%;font-size:28px;margin:0 auto 22px}.booking-success-heading h1{font-size:30px;letter-spacing:-.6px;outline:none}.booking-success-heading p{color:#617b8d;font-size:14px;margin:16px auto 28px;max-width:480px}.booking-receipt{padding:26px;margin:0 0 28px}.booking-next-steps p{font-size:13px;color:#617b8d;line-height:1.8;margin-top:10px}.booking-return{margin-top:24px}.public-booking #booking-error:empty{display:none}
@media(max-width:900px){.booking-layout{grid-template-columns:minmax(0,1fr) 230px;gap:20px}.public-booking .booking-shell{padding:0 24px}.public-booking .card{padding:24px}.booking-slots{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-hero-mark{right:10px}.booking-times-heading{align-items:flex-start}}
@media(max-width:720px){.booking-layout{grid-template-columns:minmax(0,1fr)}.booking-guidance{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}.booking-guidance-icon{display:none}.booking-guidance>h2,.booking-guidance>p,.booking-guidance>a{grid-column:1/-1}.booking-guidance-item:last-of-type{grid-column:1/-1}.booking-received{margin-top:28px}.booking-received .card{padding:28px}.booking-hero-mark{width:120px;height:120px;opacity:.6}}
@media(max-width:480px){.public-booking .booking-shell{padding:0 16px}.booking-header{padding:20px 0}.booking-home{font-size:11px}.booking-brand{font-size:19px;gap:9px}.booking-brand img{width:34px;height:34px}.booking-hero{padding:32px 0 26px}.booking-hero-mark{display:none}.booking-hero p{font-size:14px}.booking-progress{gap:12px;justify-content:space-between;font-size:10px}.booking-progress li{gap:5px}.booking-progress li>span{width:22px;height:22px}.public-booking .card{padding:22px 18px;border-radius:14px}.public-booking .form-grid{grid-template-columns:1fr;gap:0}.booking-times-heading h2{font-size:17px}.booking-times-heading .button{font-size:11px;padding:10px 12px}.booking-slots{gap:10px}.booking-slot{padding:14px 12px}.booking-slot strong{font-size:18px}.booking-appointment-summary{padding:18px}.booking-appointment-summary dl{grid-template-columns:1fr;gap:14px}.booking-submit{display:block}.booking-submit p{max-width:none;margin:0 0 12px}.booking-submit .button{width:100%}.booking-guidance{display:block;padding:22px}.booking-footer{font-size:10px}.booking-received .card{padding:28px 20px}.booking-success-heading h1{font-size:26px}.booking-success-heading .eyebrow{font-size:9px}}
@media(prefers-reduced-motion:reduce){.booking-slot{transition:none}}
.public-booking select:not([multiple]):not([size]){height:48px;min-height:48px;padding:12px 40px 12px 14px;font-size:14px;border-color:#cbdbe6;border-radius:9px;background-color:#fcfdff}.public-booking label>input:not([type=checkbox]),.public-booking label>select{margin-top:0}.public-booking .form-grid{align-items:start}

/* Staff booking review: identity suggestions before diary confirmation. */
.booking-review-actions{display:block;margin-top:20px;padding-top:20px;border-top:1px solid var(--border)}
.booking-request-details{display:grid;grid-template-columns:1.2fr 1fr;gap:20px;margin:18px 0}.booking-request-details>div{display:grid;gap:6px;min-width:0}.booking-request-details span{overflow-wrap:anywhere}.booking-request-details .eyebrow{font-size:10px}
.booking-patient-card{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px;margin:10px 0;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.booking-patient-card>div{min-width:0}.booking-patient-card strong,.booking-patient-card small{display:block;overflow-wrap:anywhere}.booking-patient-card small{color:var(--muted);margin-top:5px;line-height:1.5}.booking-patient-card.is-selected{background:var(--surface-alt,#eef7f7);border-color:var(--accent,#32939a)}.booking-match-reason{display:inline-block;color:var(--accent-dark,#24556d);background:var(--surface-alt,#eef7f7);padding:4px 9px;border-radius:6px;font-size:12px;margin-top:8px}.booking-patient-search-label{margin:20px 0 10px;max-width:600px}.booking-patient-choice>h3,.booking-patient-selection>h3{margin:0 0 8px}.booking-confirm-actions{display:flex;align-items:center;gap:12px;padding-top:18px;margin-top:18px;border-top:1px solid var(--border)}.booking-linked-patient{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.booking-patient-check{margin-top:14px}.booking-patient-prefill{border-left:3px solid var(--accent,#32939a)}.booking-patient-prefill p{margin-top:8px;line-height:1.6}.booking-review-actions [hidden]{display:none!important}.booking-review-actions button:disabled{cursor:default;opacity:.55}
@media(max-width:650px){.booking-request-details{grid-template-columns:1fr}.booking-patient-card{align-items:flex-start;flex-direction:column}.booking-confirm-actions{flex-wrap:wrap}.booking-request-card{padding:16px}.booking-patient-card .button{align-self:flex-start}}

.booking-patient-card small.booking-name-difference{color:var(--warning-text,#856023)}

.booking-notification-settings .card-heading h2{margin:5px 0 0}
.booking-notification-settings form{display:grid;gap:20px}
.booking-notification-switch{display:flex!important;align-items:center;gap:16px;padding:20px;border:1px solid var(--border);border-radius:12px;background:var(--teal-light);cursor:pointer}
.booking-notification-switch input{appearance:none!important;width:46px!important;height:26px!important;min-width:46px;padding:0!important;border:0!important;border-radius:20px!important;background:#a3b1ba;position:relative;transition:background .2s}
.booking-notification-switch input:after{content:'';position:absolute;width:20px;height:20px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #0002;transition:transform .2s}
.booking-notification-switch input:checked{background:var(--teal)}
.booking-notification-switch input:checked:after{transform:translateX(20px)}
.booking-notification-switch input:focus-visible{outline:3px solid var(--teal);outline-offset:4px}
.booking-notification-switch span{display:grid;gap:6px}
.booking-notification-switch small{font-weight:400;line-height:1.5;color:var(--muted)}
.booking-notification-info{border-left:3px solid #66c2dd;padding:15px 20px;background:var(--surface-soft,#f1f7fb);border-radius:0 8px 8px 0;font-size:13px;line-height:1.6}
.booking-notification-info p{margin:5px 0 10px}
.booking-admin-notification{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:16px 0}
.booking-request-card.is-highlighted{outline:3px solid var(--teal);outline-offset:3px}

/* Compact, expandable patient request email settings and safe HTML preview. */
.booking-ack-template{border:1px solid var(--border);border-radius:12px;background:var(--surface-soft,#f8fafc)}
.booking-ack-template>summary{padding:16px 20px;color:var(--navy);font-weight:650;cursor:pointer}
.booking-ack-template-fields{padding:4px 20px 20px;display:grid;gap:16px}
.booking-ack-template .template-editor-body .ProseMirror{min-height:220px}
.booking-ack-template .appointment-term-buttons{margin-top:12px}
.booking-ack-preview{display:block;width:100%;height:65vh;min-height:320px;border:1px solid var(--border);border-radius:10px;background:#f3f7fa}
.booking-ack-settings .form-actions{flex-wrap:wrap;gap:12px}
.booking-ack-settings .form-actions>span{margin-right:auto}
@media(max-width:600px){.booking-ack-template-fields{padding:4px 12px 16px}.booking-ack-settings .form-actions>span{width:100%}}

#dialog:has(.booking-ack-preview){width:min(760px,calc(100vw - 32px));max-width:760px}
/* Staff request inbox: compact summaries, details on demand. */
.booking-inbox{padding:0;overflow:hidden}.booking-inbox-tabs{display:flex;gap:24px;padding:0 24px;border-bottom:1px solid var(--border)}.booking-inbox-tabs button{display:flex;align-items:center;gap:9px;border:0;border-bottom:3px solid transparent;border-radius:0;background:none;color:var(--muted);padding:19px 2px;font:inherit;font-weight:650;cursor:pointer}.booking-inbox-tabs button[aria-pressed=true]{border-bottom-color:var(--teal);color:var(--teal)}.booking-inbox-tabs button span{background:var(--bg);padding:2px 8px;border-radius:20px;font-size:12px}.booking-inbox-tabs button:focus-visible,.booking-inbox-row summary:focus-visible{outline:2px solid var(--teal);outline-offset:-3px}.booking-inbox-filters{display:flex;gap:12px;align-items:end;padding:22px 24px 12px;flex-wrap:wrap}.booking-inbox-filters label{margin:0;flex:1 1 150px}.booking-inbox-filters .booking-inbox-search{flex:2 1 280px}.booking-inbox-filters input,.booking-inbox-filters select{margin-bottom:0}.booking-inbox-heading{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:14px 24px}.booking-inbox-heading h2{font-size:17px;margin:0}.booking-inbox-heading p{margin:0}.booking-inbox #booking-request-error{margin:0 24px}.booking-inbox #booking-request-error:empty{display:none}.booking-inbox-row{border-top:1px solid var(--border);margin:0}.booking-inbox-row>summary{display:grid;grid-template-columns:minmax(180px,1.3fr) minmax(175px,1fr) 150px 20px;gap:20px;align-items:center;padding:18px 24px;cursor:pointer;list-style:none;background:transparent}.booking-inbox-row>summary::-webkit-details-marker{display:none}.booking-inbox-row>summary:hover{background:var(--bg)}.booking-inbox-row summary strong,.booking-inbox-row summary small{display:block}.booking-inbox-row summary small{color:var(--muted);font-size:12px;margin-top:5px;line-height:1.45}.booking-inbox-row summary strong{font-size:14px}.booking-inbox-outcome{justify-self:start}.booking-inbox-chevron{width:20px;height:20px;color:var(--muted);transition:transform .15s ease}.booking-inbox-row[open] .booking-inbox-chevron{transform:rotate(180deg)}.booking-inbox-row[open]>summary{background:var(--teal-light)}.booking-inbox-detail{padding:20px 24px 24px;border-top:1px solid var(--border)}.booking-inbox-detail .booking-request-details{padding:0}.booking-inbox-detail .booking-request-details small{color:var(--muted);font-size:12px;line-height:1.6}.booking-history-actions{display:flex;gap:10px;margin-top:16px}.booking-inbox-empty{padding:40px 24px;text-align:center;border-top:1px solid var(--border)}.booking-inbox-empty h3{font-size:17px;margin:0 0 8px}.booking-inbox-empty p{color:var(--muted);margin:0}.booking-inbox-pagination{display:flex;gap:16px;align-items:center;justify-content:flex-end;padding:16px 24px;border-top:1px solid var(--border);color:var(--muted);font-size:13px}.booking-inbox-pagination label{display:flex;gap:10px;align-items:center;margin:0;margin-right:auto}.booking-inbox-pagination select{width:82px;min-height:38px;margin:0}.booking-inbox-pagination>div{display:flex;gap:8px}.booking-expired-notice{background:#fff8e9;border-left:3px solid #bf8625;border-radius:7px;padding:14px 16px;margin:18px 0}.booking-expired-notice p{margin:6px 0 0;font-size:13px}.booking-linked-record{font-size:13px;color:var(--muted)}.booking-inbox-row.is-highlighted{outline:2px solid var(--teal);outline-offset:-2px}
@media(max-width:850px){.booking-inbox-row>summary{grid-template-columns:minmax(130px,1fr) minmax(150px,1fr) 20px;gap:12px}.booking-inbox-outcome{grid-row:2;grid-column:1/3;display:flex;gap:10px;align-items:center}.booking-inbox-outcome small{margin:0!important}.booking-inbox-chevron{grid-row:1;grid-column:3}.booking-inbox-heading{align-items:start;flex-direction:column;gap:6px}.booking-inbox-pagination{flex-wrap:wrap}.booking-inbox-detail .booking-request-details{grid-template-columns:1fr}.booking-inbox-filters,.booking-inbox-detail,.booking-inbox-row>summary{padding-left:18px;padding-right:18px}}
.booking-inbox .booking-pending{color:var(--teal);background:var(--teal-light)}.booking-inbox .booking-expired{color:#805e24;background:#fbf1da}.booking-inbox-tabs button:hover{color:var(--teal)}

.appointment-draft-fields{padding:16px 0;border-top:1px solid var(--border);margin-top:16px}
.appointment-draft-fields h3{margin:0 0 12px}
[data-appointment-draft-type] .appointment-draft-fields{border:0;margin-top:0;padding:0}
[data-appointment-draft-type] .appointment-record-copy{min-width:0;flex:1}

.booking-notification-delay{display:grid;grid-template-columns:minmax(0,1fr) 200px;gap:12px 20px;padding:18px;margin:18px 0;border:1px solid var(--border);border-radius:12px;background:var(--surface,#fff)}.booking-notification-delay>.booking-notification-switch{margin:0;padding:14px;background:transparent;border:0}.booking-notification-delay>.muted{grid-column:1/-1;margin:0}.booking-notification-delay>.number-field,.booking-notification-delay>label:not(.booking-notification-switch){align-self:center;margin:0}@media(max-width:680px){.booking-notification-delay{grid-template-columns:1fr}.booking-notification-delay>.booking-notification-switch{padding:0}}
.appointment-template-position{position:relative;margin:12px 0;border-radius:12px}
.appointment-settings .appointment-template-position>.appointment-settings-record{margin:0}
.appointment-template-position>.appointment-settings-record>summary{padding-right:241px;min-height:76px}
.appointment-template-position .appointment-record-edit{display:none}
.appointment-template-order-controls{position:absolute;right:14px;top:20px;z-index:1;display:flex;gap:5px;align-items:center}
.appointment-template-order-controls .button{width:32px;min-width:32px;height:32px;min-height:32px;padding:6px;display:grid;place-items:center}
.appointment-template-order-controls .appointment-template-quick-preview{width:auto;min-width:91px;padding:6px 10px;display:flex;gap:6px;align-items:center;justify-content:center;white-space:nowrap}
.appointment-template-quick-preview.appointment-preview-loading{color:var(--muted)}
.appointment-template-order-controls svg{width:18px;height:18px}
.appointment-template-order-controls [data-ap-template-drag]{width:25px;height:32px;display:grid;place-items:center;font-size:23px;color:var(--muted);cursor:grab;user-select:none;-webkit-user-drag:none;touch-action:none}
.appointment-template-order-controls [data-ap-template-drag]:active{cursor:grabbing}
.appointment-template-position.appointment-template-dragging{opacity:.55}
.appointment-template-position.appointment-template-drop-before::before,.appointment-template-position.appointment-template-drop-after::after{content:'';position:absolute;left:0;right:0;height:3px;border-radius:2px;background:var(--teal);pointer-events:none}
.appointment-template-position.appointment-template-drop-before::before{top:-7px}
.appointment-template-position.appointment-template-drop-after::after{bottom:-7px}
.appointment-template-order-status{font-size:12px;line-height:1.5;color:var(--teal);margin:8px 0}
.appointment-template-order-status:empty{display:none}
@media(max-width:700px){.appointment-template-position>.appointment-settings-record>summary{padding-right:171px}.appointment-template-order-controls{right:10px;top:14px}.appointment-template-order-controls .appointment-template-quick-preview{width:32px;min-width:32px;padding:6px}.appointment-template-quick-preview:not(.appointment-preview-loading)>span{display:none}.appointment-template-quick-preview.appointment-preview-loading>span{font-size:0}.appointment-template-quick-preview.appointment-preview-loading>span::after{content:'…';font-size:18px}}
.appointment-fee-input{display:flex;align-items:stretch;box-sizing:border-box;width:100%;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--surface);margin-top:6px;max-width:210px}
.appointment-fee-input>span{flex:0 0 auto;display:grid;place-items:center;padding:0 13px;background:var(--bg);color:var(--muted);font-size:14px;border-right:1px solid var(--border)}
.appointment-fee-input input{flex:1 1 0;width:0;box-sizing:border-box;min-width:0;min-height:44px;margin:0!important;border:0!important;border-radius:0!important;font-size:14px!important;padding:10px 12px!important;text-align:right;font-variant-numeric:tabular-nums}
.appointment-fee-input:focus-within{outline:2px solid var(--teal);outline-offset:2px}
.appointment-fees-table{overflow-x:auto;margin:22px 0 16px;border:1px solid var(--border);border-radius:12px}
.appointment-fees-table table{width:100%;border-collapse:collapse;min-width:470px}
.appointment-fees-table thead th{background:var(--bg);font-size:12px;color:var(--muted);text-align:left;padding:13px 16px}
.appointment-fees-table tbody th,.appointment-fees-table tbody td{padding:12px 16px;border-top:1px solid var(--border);vertical-align:middle}
.appointment-fees-table tbody th{text-align:left;font-size:13px;font-weight:550;text-transform:none;letter-spacing:normal;background:var(--surface);color:var(--ink);line-height:1.5}
.appointment-fees-table tbody th .catalog-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px;vertical-align:middle}
.appointment-fees-table tbody th>span:last-child{display:inline-block;width:calc(100% - 24px);vertical-align:middle}
.appointment-fees-table tbody td:nth-child(2){width:185px;min-width:165px}
.appointment-fees-table tbody td:last-child{width:145px}
.appointment-fees-table .appointment-fee-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.appointment-fees-table .appointment-fee-field{margin:0}
.appointment-fees-table .appointment-fee-input{margin:0}
.appointment-fees .appointment-save-bar{flex-wrap:wrap}

.document-category-settings>.card-heading{gap:16px;flex-wrap:wrap;align-items:start}.document-category-settings>.card-heading p{margin-bottom:0}.document-category-search{display:grid;gap:6px;max-width:460px;margin:20px 0}.document-category-search input{margin:0}.document-category-editor{margin:20px 0;padding:20px;background:var(--bg);border:1px solid var(--border);border-radius:12px}.document-category-editor>label{display:grid;gap:6px;max-width:480px;margin-top:14px}.document-category-editor input{margin:0}.document-category-editor .form-actions{flex-wrap:wrap;gap:10px}.document-category-editor [data-settings-save-status]{margin-right:auto}.document-category-rows{border:1px solid var(--border);border-radius:12px;overflow:hidden;margin-top:12px}.document-category-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 18px;background:var(--surface);border-bottom:1px solid var(--border)}.document-category-row:last-child{border-bottom:0}.document-category-row>div:first-child{min-width:0;overflow-wrap:anywhere}.document-category-row strong{font-size:14px;font-weight:600;color:var(--ink)}.document-category-kind{display:block;font-size:11px;color:var(--muted);margin-top:4px}.document-category-actions{display:flex;gap:8px;flex-shrink:0;align-items:center}.document-category-deleted{margin-top:22px}.document-category-deleted>summary{cursor:pointer;font-weight:600;color:var(--teal);padding:8px 0}.document-category-deleted .document-category-row{border:1px solid var(--border);border-radius:8px;margin-top:8px}@media(max-width:600px){.document-category-row{align-items:start;flex-direction:column;gap:12px;padding:14px}.document-category-actions{align-self:flex-end}.document-category-editor{padding:16px}}

.appointment-type-directory .appointment-fees-table table{min-width:620px}.appointment-type-directory .appointment-fees-table th:first-child{width:52%;min-width:230px}.appointment-type-directory .appointment-fees-table th>span:last-child{min-width:0}.appointment-type-directory .appointment-fees-table .cell-sub{font-weight:400;line-height:1.6;font-size:11px;margin-top:5px}.appointment-type-directory .appointment-fees-table td:last-child{width:230px}.appointment-type-directory .catalog-type-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.appointment-type-directory .appointment-fee-input{max-width:190px}.appointment-type-directory .appointment-fee-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.appointment-type-directory .appointment-types-deleted{border-top:1px solid var(--border);padding-top:18px;margin-top:18px}.appointment-types-deleted summary{font-weight:600;color:var(--muted);cursor:pointer}.appointment-type-deleted-row{display:flex;gap:15px;align-items:center;padding:14px 0;border-bottom:1px solid var(--border)}.appointment-type-deleted-row strong{flex:1}.appointment-type-deleted-row>span{font-size:12px;color:var(--muted)}
/* Keep type actions visible when the settings workspace is narrow. */
.appointment-type-directory{container-type:inline-size}
.appointment-type-directory .appointment-fees-table table{min-width:0;table-layout:auto}
.appointment-type-directory .appointment-fees-table th:first-child{width:auto;min-width:180px}
.appointment-type-directory .appointment-fees-table td:nth-child(2){width:222px;min-width:222px}
.appointment-type-directory .appointment-fees-table td:last-child{width:255px;min-width:255px}
@container (max-width:740px){
 .appointment-type-directory .appointment-fees-table thead{display:none}
 .appointment-type-directory .appointment-fees-table tbody{display:block}
 .appointment-type-directory .appointment-fees-table tr{display:grid;grid-template-columns:minmax(0,1fr) 222px;align-items:center;border-top:1px solid var(--border)}
 .appointment-type-directory .appointment-fees-table tr:first-child{border-top:0}
 .appointment-type-directory .appointment-fees-table tbody th,.appointment-type-directory .appointment-fees-table tbody td{display:block;width:auto;min-width:0;border:0;padding:14px 16px}
 .appointment-type-directory .appointment-fees-table td:last-child{grid-column:1 / -1;padding-top:0}
 .appointment-type-directory .catalog-type-actions{justify-content:flex-start}
 .appointment-type-directory .appointment-fees-table th>span:last-child{width:calc(100% - 24px)}
}
@container (max-width:480px){
 .appointment-type-directory .appointment-fees-table tr{grid-template-columns:minmax(0,1fr)}
 .appointment-type-directory .appointment-fees-table td:nth-child(2){padding-top:0}
}

.appointment-type-directory .appointment-fees-table th.appointment-type-sortable-name{position:relative;padding-left:91px}
.appointment-type-identity{min-width:0}
.appointment-type-directory .appointment-type-identity>span:last-child{display:inline-block;width:calc(100% - 24px);vertical-align:middle;overflow-wrap:anywhere}
.appointment-type-order-controls{position:absolute;left:14px;top:50%;transform:translateY(-50%);display:grid;grid-template-columns:23px 28px;gap:3px 5px;align-items:center}
.appointment-type-order-controls [data-ap-type-drag]{grid-row:1 / 3;width:23px;height:46px;display:grid;place-items:center;font-size:23px;color:var(--muted);cursor:grab;touch-action:none;user-select:none;-webkit-user-drag:none}
.appointment-type-order-controls [data-ap-type-drag]:active{cursor:grabbing}
.appointment-type-order-controls .button{width:28px;min-width:28px;height:28px;min-height:28px;padding:4px;display:grid;place-items:center}
.appointment-type-order-controls svg{width:18px;height:18px}
.appointment-type-dragging{opacity:.55}
.appointment-type-drop-before{box-shadow:none}
.appointment-type-drop-after{box-shadow:none}

.appointment-type-drag-preview{position:fixed;z-index:10000;pointer-events:none;display:grid;gap:5px;width:290px;max-width:calc(100vw - 24px);padding:13px 16px;border:2px solid var(--teal);border-radius:12px;background:var(--surface,#fff);color:var(--ink);box-shadow:0 10px 30px #153d6240;line-height:1.4}
.appointment-type-drag-preview small{font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.appointment-type-drag-preview strong{font-size:13px}
.appointment-type-drag-preview>span{font-size:12px;color:var(--teal);font-weight:600}

.appointment-type-drop-before>th,.appointment-type-drop-before>td,.appointment-type-drop-after>th,.appointment-type-drop-after>td{background:color-mix(in srgb,var(--teal) 9%,var(--surface,#fff))!important}
.appointment-type-drop-marker{position:fixed;z-index:9999;pointer-events:none;height:4px;border-radius:3px;background:var(--teal);box-shadow:0 0 0 2px var(--surface,#fff)}
.appointment-type-drop-marker>span{position:absolute;left:12px;top:-12px;padding:4px 10px;border-radius:6px;background:var(--teal);color:#fff;font-size:11px;line-height:1.4;font-weight:600;white-space:nowrap}

/* Staff-reviewed follow-ups share patient messaging; plans never imply delivery. */
.followup-workflow-info{margin-bottom:20px}.followup-workflow-info>p{margin:6px 0 0}
.followup-plans-card{padding:0;overflow:hidden}.followup-plans-card td{vertical-align:top}.followup-plans-card td:first-child{min-width:180px}
.followup-plan-detail{display:block;line-height:1.6;margin-top:5px;color:var(--muted);font-size:12px}.followup-plan-detail strong{color:var(--ink)}
.followup-plan-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;max-width:330px}.followup-plan-actions .button{white-space:nowrap}
.followup-message-selection{border:1px solid var(--border);border-radius:10px;padding:16px;margin:0 0 16px;background:var(--bg)}
.followup-message-selection h3{margin:0 0 12px}.followup-message-selection .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
#followup-form .followup-message-selection label[hidden]{display:none}#followup-form .info-box{margin-bottom:18px}
@media(max-width:560px){.followup-message-selection .form-grid{grid-template-columns:1fr}.followup-plan-actions{min-width:160px}}

#dialog:has(#followup-form){width:min(760px,calc(100vw - 32px))}#followup-form>.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}@media(max-width:560px){#followup-form>.form-grid{grid-template-columns:1fr}}

.appointment-type-delete-action{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:20px;padding:0 4px}.appointment-type-delete-action p{margin:0;min-width:0;line-height:1.5}.appointment-type-delete-action .button{flex-shrink:0;min-height:40px;white-space:nowrap}
@media(max-width:640px){.appointment-type-delete-action{flex-wrap:wrap;gap:12px;padding:0}.appointment-type-delete-action .button{margin-left:auto}}

/* Public date browsing stays compact and separate from appointment times. */
.public-booking .booking-date-help{font-size:13px;color:#607789;line-height:1.5;margin:6px 0}
.public-booking #booking-limits{margin-bottom:20px}
.public-booking .booking-date-nav{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 0;border-top:1px solid #dce6ee;border-bottom:1px solid #dce6ee;margin:16px 0}
.public-booking .booking-date-nav strong{text-align:center;color:#244e73;font-size:14px;line-height:1.5;font-variant-numeric:tabular-nums}
.public-booking .booking-date-nav .button{display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;font-size:13px;padding:10px 12px;white-space:nowrap}
.public-booking .booking-date-nav .button:disabled{opacity:.45;cursor:default}
@media(max-width:620px){.public-booking .booking-date-nav{grid-template-columns:1fr 1fr;gap:10px}.public-booking .booking-date-nav strong{grid-column:1/-1;grid-row:1}.public-booking .booking-date-nav .button{width:100%;min-width:0}.public-booking .booking-times-heading{flex-wrap:wrap;gap:12px}}

/* Staff availability editor: size grids to the settings panel, not the viewport. */
.booking-availability-editor{min-width:0;container-type:inline-size;container-name:availability-editor}
#booking-settings-form{min-width:0}
#booking-settings-form .availability-settings-section{padding:24px 0;border-bottom:1px solid var(--border)}
#booking-settings-form .availability-settings-section:first-child{padding-top:20px}
#booking-settings-form .availability-settings-section h3{margin:0 0 12px}
#booking-settings-form .availability-settings-section>p{margin:0 0 16px;line-height:1.6}
#booking-settings-form .availability-section-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:12px}
#booking-settings-form .availability-section-heading h3{margin:0}
#booking-settings-form .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}
#booking-settings-form .availability-short-fields{max-width:520px}
#booking-settings-form label{min-width:0;margin-bottom:0}
#booking-settings-form input:not([type=checkbox]),#booking-settings-form .term-picker-trigger{min-width:0;max-width:100%;width:100%;box-sizing:border-box}
#booking-settings-form .catalog-availability{grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:12px;align-items:end;padding:16px;border:1px solid var(--border);border-radius:12px;margin:12px 0;background:var(--surface,#fff)}
#booking-settings-form .catalog-availability>label:nth-child(1){grid-column:1/3}
#booking-settings-form .catalog-availability>label:nth-child(2){grid-column:3/5}
#booking-settings-form .catalog-availability>button{margin:0;align-self:end}
#booking-settings-form .catalog-closure,#booking-settings-form .catalog-block{margin:14px 0 0;padding:16px;box-shadow:none;border-radius:12px;min-width:0}
#booking-settings-form .catalog-closure>p{margin:14px 0}
#booking-settings-form .closure-weekdays{gap:8px;margin:14px 0}
#booking-settings-form .closure-weekdays .checkbox-row{width:auto;padding:8px 10px;gap:7px;border-radius:8px}
#booking-settings-form .closure-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}
#booking-settings-form .checkbox-row{margin:0 0 16px}
#booking-settings-form .closure-options .checkbox-row,#booking-settings-form .closure-weekdays .checkbox-row{margin:0}
#booking-settings-form .closure-times{margin-bottom:16px}
#booking-settings-form .catalog-block>label{display:block;margin-top:16px}
#booking-settings-form .catalog-closure>[data-catalog-remove-row],#booking-settings-form .catalog-block>[data-catalog-remove-row]{margin-top:14px}
#booking-settings-form .catalog-summary{margin:24px 0 18px}
#booking-settings-form .catalog-summary p{margin:8px 0 0}
#booking-settings-form .form-error:empty{display:none}
@container availability-editor (max-width:560px){
 #booking-settings-form .catalog-availability{grid-template-columns:repeat(2,minmax(0,1fr))}
 #booking-settings-form .catalog-availability>label:nth-child(1),#booking-settings-form .catalog-availability>label:nth-child(2){grid-column:1/-1}
 #booking-settings-form .catalog-availability>label:nth-child(3){grid-column:1/-1}
 #booking-settings-form .catalog-availability>button{grid-column:1/-1;justify-self:end}
}
@container availability-editor (max-width:380px){
 #booking-settings-form .form-grid,#booking-settings-form .closure-options{grid-template-columns:minmax(0,1fr)}
 #booking-settings-form .catalog-availability{grid-template-columns:minmax(0,1fr)}
 #booking-settings-form .availability-section-heading{align-items:flex-start}
}
/* Follow-up plan and messages share one reviewable workspace. */
#dialog:has(#followup-form){width:min(1060px,calc(100vw - 32px))}
#followup-edit-fields>.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.followup-message-editors,.followup-message-reviews{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:18px;margin:18px 0}
.followup-channel-card{border:1px solid var(--border);border-radius:12px;padding:18px;min-width:0;background:#fff}
.followup-channel-card .card-heading{margin-bottom:10px}.followup-channel-card h3{margin:0 0 10px}
.followup-channel-card textarea{min-height:150px;resize:vertical}.followup-channel-card .message-body{white-space:pre-wrap;overflow-wrap:anywhere}
.followup-channel-card:only-child,.followup-channel-card:not([hidden]):has(+[hidden]),.followup-channel-card[hidden]+.followup-channel-card{grid-column:1/-1}
.followup-send-time{padding:16px 18px;border:1px solid var(--border);border-radius:10px;background:var(--bg);margin-bottom:18px}
.followup-send-time input{max-width:300px}.followup-send-time p{margin:8px 0 0}
.followup-email-preview{display:block;width:100%;height:310px;border:1px solid var(--border);border-radius:8px;background:white;margin-top:12px}
#followup-form [hidden]{display:none!important}#followup-form .communication-progress{margin:16px 0}#followup-delivery-review>h3{margin-top:0}
#followup-form .template-editor-body{min-height:180px;max-height:320px;overflow:auto}#followup-form .rich-toolbar{gap:4px}
@media(max-width:760px){.followup-message-editors,.followup-message-reviews{grid-template-columns:1fr}#followup-edit-fields>.form-grid{grid-template-columns:1fr}.followup-channel-card{padding:14px}}

.booking-type-description{margin:0 0 18px;padding:12px 14px;border-left:3px solid #75aeb6;border-radius:0 8px 8px 0;background:#f0f7f9;color:#334e61;line-height:1.5;white-space:pre-line;overflow-wrap:anywhere}.booking-type-description[hidden]{display:none}

.booking-delete-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border-top:1px solid var(--border);padding-top:14px;margin-top:16px}.booking-delete-progress{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:12px;line-height:1.5}.booking-delete-progress:empty{display:none}.booking-delete-progress.is-error{color:var(--danger,#a33932)}.booking-delete-progress.is-loading:before{content:"";width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--teal);border-radius:50%;animation:booking-delete-spin .8s linear infinite}@keyframes booking-delete-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.booking-delete-progress.is-loading:before{animation:none}}
