/* (c) schober24.com Deutschland | Schober, Thorsten */
.booking-public{margin:0;background:#f3f5f8;color:#263242;font:15px/1.5 system-ui,-apple-system,sans-serif}.booking-public *{box-sizing:border-box}.booking-public main{max-width:980px;margin:auto;padding:28px 20px 60px}.booking-brand{display:flex;align-items:center;gap:12px;margin-bottom:30px}.booking-brand p{margin:0;font-size:12px;color:#65748a}.booking-mark{display:grid;place-items:center;background:#263242;color:white;font-size:28px;width:48px;height:48px;border-radius:14px}.booking-public h1{font-size:28px;line-height:1.2;margin:0 0 10px}.booking-intro{color:#65748a;margin-bottom:24px}.booking-card{background:white;border:1px solid #dce2ea;border-radius:14px;padding:22px;margin:16px 0;box-shadow:0 3px 12px #23314b05}.booking-card h2{font-size:17px;display:flex;align-items:center;gap:10px;margin:0 0 16px}.booking-card h2 span{display:grid;place-items:center;background:#edf2f8;color:#536b8b;border-radius:50%;width:26px;height:26px;font-size:12px}.booking-public label{display:grid;gap:6px;font-size:13px;font-weight:600}.booking-public input,.booking-public textarea,.booking-public select{width:100%;border:1px solid #ccd5e1;background:#fff;color:inherit;border-radius:7px;padding:11px;font:inherit;min-width:0}.booking-public input:focus-visible,.booking-public textarea:focus-visible,.booking-public select:focus-visible,.booking-public button:focus-visible{outline:2px solid #336ba4;outline-offset:2px}.booking-public button,.booking-button{display:inline-block;border:1px solid #263242;border-radius:7px;background:#263242;color:white;padding:11px 16px;font:600 14px system-ui;cursor:pointer;text-decoration:none}.booking-public button:disabled{cursor:default;opacity:.45}.booking-public .secondary{background:white;color:#425673;border-color:#ccd5e1}.booking-service-meta{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.booking-service-meta small{color:#65748a}.booking-section-head{display:flex;align-items:baseline;justify-content:space-between}.booking-section-head small{color:#65748a}.booking-week-tools{display:flex;gap:10px;align-items:end}.booking-week-tools label{max-width:220px}.booking-week-tools button{height:44px}.booking-calendar-status{font-size:13px;color:#65748a}.booking-week{display:grid;grid-template-columns:repeat(7,minmax(74px,1fr));gap:8px;overflow-x:auto;padding-bottom:8px;max-height:440px}.booking-week h3{font-size:12px;margin:0 0 8px;text-align:center;position:sticky;top:0;background:white;padding:5px 0}.booking-public .booking-slot{display:block;width:100%;margin:5px 0;padding:8px 3px;background:#edf5fa;border:1px solid #c9dfed;color:#264d6a;font-size:12px;font-weight:600;min-height:36px}.booking-public .booking-slot:disabled{background:#f2f3f5;border-color:#e5e7eb;color:#7d8590;opacity:1;text-decoration:line-through}.booking-public .booking-slot[aria-pressed=true]{background:#263e59;color:#fff;border-color:#263e59}.booking-no-slots{text-align:center;color:#939baa;font-size:11px}.booking-legend{display:flex;gap:7px;align-items:center;flex-wrap:wrap;font-size:12px;color:#65748a;margin-bottom:0}.booking-legend i{width:10px;height:10px;background:#c9dfed;border-radius:3px}.booking-legend i.busy{background:#e5e7eb;margin-left:8px}.booking-fields{display:grid;grid-template-columns:1fr 1fr;gap:15px}.booking-fields .wide{grid-column:1/-1}.booking-public label small{font-weight:400}.booking-public .booking-check{display:flex;align-items:start;gap:10px;font-weight:400;margin-top:20px}.booking-check input{width:18px;height:18px;flex:none;margin-top:2px}.booking-privacy{font-size:12px;color:#65748a}.booking-selection{padding:10px 12px;border-radius:8px;background:#edf2f8;color:#3e5978;font-size:14px}.booking-error{padding:14px;background:#fff1ee;color:#963c2b;border:1px solid #edc9c0;border-radius:8px}.booking-actions{display:flex;gap:10px;flex-wrap:wrap}.booking-eyebrow{color:#32705e;font-size:12px;text-transform:uppercase;letter-spacing:.08em}.booking-large{font-size:20px}.booking-cancel{margin-top:24px;font-size:13px}.booking-public footer{font-size:12px;color:#65748a;margin:22px 0}.booking-public a{color:inherit}.booking-public .booking-button{color:white}.booking-honey,.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}@media(max-width:600px){.booking-public main{padding:18px 12px 36px}.booking-card{padding:16px;border-radius:10px}.booking-public h1{font-size:24px}.booking-fields{grid-template-columns:1fr}.booking-week{grid-template-columns:repeat(7,92px)}.booking-brand{margin-bottom:20px}}@media print{.booking-public{background:white}.booking-actions,.booking-cancel{display:none}.booking-card{border:0;box-shadow:none}}
.booking-admin .booking-admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.booking-admin .wide{grid-column:1/-1}.booking-admin .booking-admin-grid label{margin:0}.booking-admin .booking-link{font:13px ui-monospace,monospace;overflow-wrap:anywhere}.booking-admin .booking-service-list{display:grid;gap:0}.booking-admin .booking-service-row{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:12px 0;border-bottom:1px solid #d9e1eb}.booking-admin .booking-service-row p{margin:3px 0;font-size:12px}.booking-admin .booking-service-row .actions{flex-wrap:wrap}.booking-admin .booking-hours{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.booking-admin .booking-hours label{display:grid;grid-template-columns:100px 1fr;align-items:center;gap:8px;margin:0}.booking-admin details{margin:15px 0}.booking-admin summary{cursor:pointer}.booking-admin .booking-section-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}@media(max-width:700px){.booking-admin .booking-admin-grid,.booking-admin .booking-hours{grid-template-columns:1fr}.booking-admin .booking-service-row{align-items:start;flex-direction:column}.booking-admin .booking-hours label{grid-template-columns:90px 1fr}}
.booking-editor{max-width:1160px;margin:0 auto}.booking-editor-head{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:3px 0 16px}.booking-editor-head h2{font-size:20px;margin:7px 0 0}.booking-editor-head a{font-size:12px;color:#617188}.booking-editor-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px}.booking-editor-section{background:#fff;border:1px solid #d7e1ec;border-radius:10px;padding:18px;margin-bottom:16px;box-shadow:0 2px 5px #23314b04}.booking-editor-section h3{margin:0 0 16px;font-size:14px}.booking-fields-compact{display:grid;grid-template-columns:1fr 1fr;gap:13px}.booking-editor label{margin:0;display:grid;gap:6px;font-size:12px;color:#425169}.booking-editor input:not([type=checkbox]),.booking-editor select,.booking-editor textarea{background:#fbfcfd;padding:8px 10px;min-height:36px;height:auto;font-size:13px;border:1px solid #ccd7e3;border-radius:6px}.booking-editor textarea{min-height:65px}.booking-price-preview{margin:-3px 0 0;font-size:11px;color:#6a7a8e}.booking-price-preview strong{color:#304a64}.booking-timing{display:grid;grid-template-columns:1fr 1.25fr 1fr;gap:12px}.booking-timing>label:nth-child(2){color:#203e5c}.booking-number{position:relative}.booking-number input{padding-right:45px!important;width:100%}.booking-number span{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:11px;font-weight:400;color:#748398;pointer-events:none}.booking-small{font-size:11px;line-height:1.6;color:#65758b;margin:12px 0 0}.booking-rules{display:grid;gap:10px}.booking-rules label{grid-template-columns:1fr 135px;align-items:center}.booking-editor label.booking-toggle{display:flex;align-items:center;gap:8px;white-space:nowrap;font-size:12px}.booking-toggle input[type=checkbox]{appearance:none;-webkit-appearance:none;position:relative;flex:none;width:32px!important;height:19px!important;min-height:19px!important;border:0!important;border-radius:20px;background:#c7d1dc;margin:0;padding:0;cursor:pointer}.booking-toggle input[type=checkbox]:after{content:'';position:absolute;width:13px;height:13px;border-radius:50%;background:white;left:3px;top:3px;transition:transform .15s}.booking-toggle input[type=checkbox]:checked{background:#324c66}.booking-toggle input[type=checkbox]:checked:after{transform:translateX(13px)}.booking-toggle input:focus-visible{outline:2px solid #698cae;outline-offset:3px}.booking-section-top{display:flex;justify-content:space-between;align-items:start;gap:8px}.booking-text-button{background:transparent!important;color:#496787!important;font-size:10px!important;padding:0!important;min-height:0!important;border:0!important;box-shadow:none!important;font-weight:500!important}.booking-day{display:grid;grid-template-columns:67px minmax(0,1fr) 24px;gap:10px;align-items:start;min-height:43px;padding:5px 0;border-bottom:1px solid #edf0f4}.booking-day>.booking-toggle{height:31px}.booking-time-range{display:grid;grid-template-columns:minmax(0,1fr) 8px minmax(0,1fr) 22px;align-items:center;gap:5px;margin-bottom:4px}.booking-editor .booking-time-range input{padding:5px 6px;min-height:31px;font-size:12px}.booking-time-range>span{color:#8996a6}.booking-time-range button,.booking-add-time{min-height:28px!important;padding:2px!important;background:transparent!important;border:0!important;color:#65788e!important;box-shadow:none!important;font-size:18px!important;font-weight:400!important}.booking-day-off{display:none;font-size:11px;color:#98a3b1;padding-top:7px}.booking-day.is-off .booking-ranges,.booking-day.is-off>.booking-add-time{display:none}.booking-day.is-off .booking-day-off{display:block}.booking-ranges .booking-time-range:only-child [data-time-remove]{visibility:hidden}@media(max-width:1050px){.booking-editor-columns{gap:14px}.booking-editor-section{padding:14px}.booking-day{gap:6px;grid-template-columns:61px minmax(0,1fr) 19px}.booking-time-range{gap:3px;grid-template-columns:minmax(0,1fr) 5px minmax(0,1fr) 16px}}@media(max-width:850px){.booking-editor-columns{grid-template-columns:1fr}.booking-editor-section{margin-bottom:12px}.booking-editor{max-width:580px}.booking-editor-head{align-items:flex-start}.booking-editor-head h2{font-size:17px}}@media(max-width:420px){.booking-fields-compact{grid-template-columns:1fr}.booking-timing{gap:6px}.booking-editor-section{padding:12px}.booking-editor-head{flex-wrap:wrap}}
.booking-template-tools{border-top:1px solid #d6e0eb;padding:14px 0;margin-top:0!important;font-size:12px}.booking-template-tools summary{font-weight:600;color:#536b84}.booking-template-grid{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end;margin-top:14px}.booking-template-grid label{font-size:12px}.booking-admin .panel-head>form{display:flex;align-items:center;gap:8px}.booking-new-type{margin:0!important;width:285px}.booking-new-type input{font-size:12px}.booking-service-row .actions form{margin:0}.booking-service-row .actions{display:flex;align-items:center;gap:8px}@media(max-width:700px){.booking-admin .panel-head{align-items:start;flex-direction:column;gap:12px}.booking-admin .panel-head>form{width:100%;flex-wrap:wrap}.booking-new-type{width:100%}.booking-template-grid{grid-template-columns:1fr}}
.booking-group-fields{display:grid;grid-template-columns:180px 1fr;gap:20px;margin-bottom:18px}.booking-group-fields fieldset{border:0;padding:0;margin:0}.booking-group-fields legend{font-size:12px;font-weight:600}.booking-group-fields p{font-size:12px;margin:6px 0 10px}.booking-members{display:flex;gap:18px;flex-wrap:wrap}.booking-create-page{display:flex;gap:12px;align-items:end;margin-top:18px}.booking-create-page label:first-of-type{flex:1}.booking-create-page label{margin:0}.booking-service-list .booking-service-row{display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid #dce4ed;padding:12px 0}.booking-service-row p{margin:4px 0;font-size:12px;color:#607086}@media(max-width:700px){.booking-group-fields{grid-template-columns:1fr}.booking-create-page{flex-wrap:wrap}.booking-create-page label:first-of-type{flex-basis:100%}}
/* Guided public booking uses the same quiet surfaces and control sizes as the app. */
.booking-public [hidden]{display:none!important}.booking-public{background:#f3f5f8;color:#263242}.booking-public main{max-width:1020px}.booking-public .booking-card{border-radius:10px;box-shadow:0 2px 7px #26324209;border-color:#d3dce6;padding:24px;margin:20px 0}.booking-public button,.booking-public .booking-button,.booking-public input,.booking-public select{min-height:44px}.booking-logo{width:92px;height:58px;object-fit:contain;object-position:left center}.booking-brand>a{margin-left:auto;font-size:13px;color:#56677b;text-decoration:none}.booking-progress{display:flex;justify-content:space-between;gap:10px;margin:22px 0;border-bottom:1px solid #d3dce6;padding:0 0 16px}.booking-progress>span{display:flex;gap:8px;align-items:center;font-size:13px;color:#6a7b90}.booking-progress b{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#e4eaf1}.booking-progress [aria-current]{color:#263242;font-weight:700}.booking-progress [aria-current] b{background:#293746;color:white}.booking-wizard-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.booking-wizard-actions .secondary{margin-right:auto}.booking-personal-summary{padding:18px 20px;background:#e9eff5;border-radius:10px;border:1px solid #d3dce6;display:grid;gap:5px}.booking-personal-summary p{margin:0;font-size:11px}.booking-personal-summary strong{font-size:18px}.booking-personal-summary span,.booking-personal-summary small{font-size:13px;color:#56677b}.booking-view-tabs{display:flex;gap:4px}.booking-view-tabs button{border:0;background:#edf1f6;color:#526377;padding:9px 12px;font-size:13px}.booking-view-tabs button[aria-pressed=true]{background:#293746;color:white}.booking-timezone{color:#66778b;font-size:12px;margin-left:auto;align-self:center}.booking-public .booking-slot{min-height:40px;margin:0}.booking-times{display:grid;gap:7px}.booking-week{max-height:420px;padding:8px 3px 12px}.booking-week[data-view=list],.booking-week[data-view=day]{display:block}.booking-week[data-view=list]>section{display:grid;grid-template-columns:110px 1fr;gap:14px;padding:15px 0;border-top:1px solid #e1e6ed}.booking-week[data-view=list] h3{text-align:left;position:static;padding:8px 0}.booking-week[data-view=list] .booking-times,.booking-week[data-view=day] .booking-times{grid-template-columns:repeat(auto-fill,minmax(76px,1fr))}.booking-selection{margin-top:20px;line-height:1.5}.booking-public .booking-section-head{align-items:center;gap:16px;margin-bottom:14px}.booking-section-head .booking-eyebrow{font-size:11px;margin:0 0 4px}.booking-section-head h2{margin:0}.booking-success-mark{width:46px;height:46px;display:grid;place-items:center;font-size:24px;border-radius:50%;background:#e8f3ed;color:#2c7653;margin-bottom:18px}.booking-receipt-facts{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:24px 0;padding:20px;background:#f5f7fa;border-radius:8px}.booking-receipt-facts dt{font-size:12px;color:#66778b;margin-bottom:4px}.booking-receipt-facts dd{font-size:14px;font-weight:600;margin:0}.booking-management{border-top:1px solid #d3dce6;margin-top:24px;padding-top:20px}.booking-public .booking-cancel summary{cursor:pointer;min-height:44px}.booking-public footer{padding:20px 0;border-top:1px solid #d3dce6;margin-top:28px}.booking-public footer h2{font-size:17px;color:#263242}.booking-public footer .booking-button{font-size:13px;color:#263242}
@media(max-width:650px){.booking-public .booking-card{padding:16px}.booking-public main{padding:18px 16px 32px}.booking-brand{margin-bottom:26px}.booking-logo{width:72px;height:48px}.booking-progress{gap:6px}.booking-progress>span{font-size:12px;gap:5px}.booking-progress b{width:24px;height:24px}.booking-public .booking-section-head{flex-wrap:wrap}.booking-timezone{flex-basis:100%;margin:0}.booking-week-tools{flex-wrap:wrap;gap:8px}.booking-week-tools label{flex:1;max-width:none}.booking-week[data-view=list]>section{grid-template-columns:1fr;gap:5px}.booking-receipt-facts{grid-template-columns:1fr}.booking-public .booking-slot{min-height:44px}.booking-public :is(input,select,textarea){font-size:16px}.booking-wizard-actions{flex-wrap:wrap}.booking-wizard-actions button{flex:1}.booking-week{max-height:380px}.booking-public .booking-brand strong{font-size:14px}}

.booking-public .booking-button.secondary{background:#fff;color:#425673;border-color:#ccd5e1}

.booking-public .booking-check{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:10px;min-height:44px}
.booking-public .booking-check input[type=checkbox]{width:18px;min-width:18px;max-width:18px;height:18px;min-height:18px;max-height:18px;padding:0;margin:2px 0 0}

.booking-public .booking-deadline{border:1px solid #d9a354;border-left:5px solid #a66a17;background:#fff8eb}.booking-deadline .booking-eyebrow{color:#805014}.booking-deadline h1{font-size:24px}.booking-policy{font-size:13px;line-height:1.6;background:#f5f7fa;border-left:3px solid #92a2b4;padding:12px 14px;margin:18px 0}.booking-deadline .booking-button{display:inline-flex;align-items:center}

.booking-staff .booking-slot{display:block;width:100%;min-height:44px;padding:8px 3px;background:#edf5fa;border:1px solid #c9dfed;color:#264d6a;font-size:13px}.booking-staff .booking-slot:disabled{background:#f2f3f5;color:#7d8590;text-decoration:line-through}.booking-staff .booking-slot[aria-pressed=true]{background:#263e59;color:#fff}.booking-staff .booking-check{display:flex;align-items:flex-start;gap:10px;min-height:44px}.booking-staff .booking-check input{flex:none;width:18px;height:18px;min-height:18px;margin:3px 0 0}.booking-staff .booking-section-head{gap:16px;flex-wrap:wrap}.booking-staff [hidden]{display:none!important}.booking-staff .booking-week{min-width:0;max-width:100%}

/* Staff month and recommendations reuse the booking selection and shared actions. */
.booking-staff .booking-week[data-view=month]{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;max-height:none;overflow:visible}
.booking-month-title,.booking-assist-note{grid-column:1/-1;margin:0 0 8px}.booking-month-weekday{text-align:center;font-size:13px;font-weight:600}
.booking-staff .booking-month-day{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;min-height:58px;padding:6px;background:var(--ui-soft,#edf5fa);color:var(--ui-text,#263242);border:1px solid var(--ui-line,#cddae7);border-radius:6px}
.booking-month-day small{font-size:11px}.booking-month-day:disabled{opacity:.45}.booking-staff .booking-week[data-view=assist]{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));max-height:none;gap:16px;overflow:visible}
.booking-staff .booking-suggestion{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:8px;min-height:80px;padding:16px;background:var(--ui-soft,#edf5fa);border:1px solid var(--ui-line,#cddae7);color:var(--ui-text,#263242);border-radius:6px}
.booking-staff .booking-suggestion[aria-pressed=true]{background:#263e59;color:#fff}.booking-suggestion small{font-weight:400}.booking-staff .booking-view-tabs{flex-wrap:wrap;gap:8px}.booking-staff .booking-view-tabs button{min-height:44px}
@media(max-width:600px){.booking-staff .booking-week[data-view=month]{gap:3px}.booking-staff .booking-month-day{padding:4px 1px;min-height:48px}.booking-month-day small{font-size:10px}}

/* Public month: date grid beside one day's times; shared cards, header and progress remain unchanged. */
.booking-public .booking-calendar-panel .booking-week[data-view=month]{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;max-height:none;overflow:visible;padding:8px 0}
.booking-public-month,.booking-day-times{min-width:0}
.booking-public .booking-week[data-view=month] h3{position:static;font-size:15px;background:transparent;text-align:left;margin:0 0 12px}
.booking-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;align-items:center}
.booking-public .booking-month-day{min-width:0;min-height:44px;padding:8px 0;text-align:center}
.booking-public .booking-month-day[aria-current=date]{text-decoration:underline;text-underline-offset:4px}
body.portal-shared.booking-public .booking-month-day[aria-pressed=true]{background:#293746;color:#fff;border-color:#293746}
.booking-day-times .booking-times{grid-template-columns:minmax(0,1fr);max-height:320px;overflow-y:auto;padding:2px}
.booking-day-times .booking-no-slots{grid-column:1/-1;text-align:left;font-size:14px}
.booking-public [data-service-description]{white-space:pre-line;overflow-wrap:anywhere}
@media(max-width:650px){.booking-public .booking-calendar-panel .booking-week[data-view=month]{grid-template-columns:minmax(0,1fr);gap:20px}.booking-month-grid{gap:2px}.booking-day-times .booking-times{grid-template-columns:repeat(2,minmax(0,1fr));max-height:none;overflow:visible}}

/* Compact service inputs; outer panel follows the shared public shell. */
.booking-public .booking-service-fields{display:grid;grid-template-columns:minmax(0,3fr) minmax(220px,1.35fr);gap:16px;align-items:start;max-width:1040px}
.booking-public .booking-service-field{min-width:0;display:grid;gap:6px}
.booking-public .booking-service-field>label{margin:0;line-height:20px}.booking-public .booking-service-fields [data-booking-duration-field]{margin:0;line-height:20px;gap:6px;max-width:none}
.booking-public .booking-service-details{max-width:1040px;margin-top:16px}
.booking-public .booking-service-details p{margin:0 0 8px}
.booking-public .booking-service-details:has([data-service-description]:empty) {margin-top:8px}
.booking-public .booking-calendar-status.booking-availability-notice{font-size:15px;font-weight:650;color:var(--ui-text,#263242);border-left:3px solid var(--ui-accent,#167256);padding:8px 12px}
@media(max-width:600px){.booking-public .booking-service-fields{grid-template-columns:minmax(0,1fr)}.booking-public .booking-service-fields [data-booking-duration-field]{max-width:none}}

.booking-public .booking-service-details [data-service-description]:not(:empty){padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid var(--ui-border,#cad6e4)}

.booking-public .booking-service-facts{margin:0;display:grid;gap:8px}
.booking-public .booking-service-facts>div{display:grid;grid-template-columns:140px minmax(0,1fr);gap:12px}
.booking-public .booking-service-facts>div[hidden]{display:none}
.booking-public .booking-service-facts dt{font-weight:650}
.booking-public .booking-service-facts dd,.booking-public .booking-service-facts dd p{margin:0}
@media(max-width:600px){.booking-public .booking-service-facts>div{grid-template-columns:110px minmax(0,1fr);gap:8px}}
