/* Shared cloud booking controls. External stylesheet; strict CSP stays intact. */
.booking-workspace{--bk-edge:#53677f;--bk-muted:#c1cee0;--bk-accent:#b6ebda;min-width:0;max-width:100%;margin:28px 0;overflow-wrap:anywhere}.booking-workspace h2{font-size:clamp(24px,3vw,34px);letter-spacing:-.035em;line-height:1.2;margin:0 0 14px}.booking-heading{margin:0 0 28px}.booking-heading p{line-height:1.65;color:var(--bk-muted);max-width:620px;margin:0}.booking-workspace button{min-height:46px;white-space:normal;text-align:center;line-height:1.4;max-width:100%}.booking-workspace button:disabled{cursor:not-allowed}.booking-workspace :is(input,select){width:100%;max-width:100%;min-width:0;min-height:46px;border-radius:14px;padding:12px 14px;border:1px solid var(--bk-edge);background:#0c182a;color:#f1f5ff;font:inherit;font-size:16px;color-scheme:dark}.booking-workspace option{background:#142339;color:#f1f5ff}.booking-workspace :is(button,select,input,summary):focus-visible{outline:3px solid #a4edde;outline-offset:4px}.booking-workspace input::placeholder{color:#9dadc4;opacity:1}.booking-field{display:grid;align-content:start;gap:9px;font-size:13px;font-weight:650;color:#d3def0;min-width:0}.booking-steps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 28px}.booking-steps li{display:flex;gap:10px;align-items:center;font-size:13px;color:var(--bk-muted)}.booking-steps li>span:first-child{display:grid;place-items:center;flex:0 0 32px;height:32px;border:1px solid #61738b;border-radius:50%;font-weight:750}.booking-steps li[aria-current=step]{color:#f3fbff;font-weight:700}.booking-steps li[aria-current=step]>span:first-child{color:#102322;background:linear-gradient(145deg,#c5f2e3,#9ed4df);border-color:#e3fff7;box-shadow:0 4px 14px #0004,inset 0 1px 0 #fff8}.booking-stage,.booking-settings{border:1px solid #536f8580;border-radius:26px;padding:28px;background:radial-gradient(ellipse at top right,#31555744,transparent 70%),linear-gradient(140deg,#1b2d41,#142036);box-shadow:inset 0 1px 0 #e3faff24,0 18px 38px #0003}.booking-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:14px}.booking-choice{display:flex!important;flex-direction:column;align-items:flex-start!important;justify-content:center!important;gap:10px!important;padding:22px!important;border-radius:20px!important;text-align:left!important;min-height:110px!important}.booking-choice strong{font-size:17px}.booking-choice span{font-size:13px;font-weight:500}.booking-choice[aria-pressed=true]{border:2px solid #caffed;background:linear-gradient(125deg,#b8e4d6,#b7c8ed);color:#112338;box-shadow:0 8px 24px #0003,inset 0 1px 0 #fff8}.booking-selection{font-size:17px;font-weight:650;line-height:1.5;color:#e4fff4;margin:0 0 22px}.booking-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:24px}.booking-actions p{flex-basis:100%;margin:0;line-height:1.6}.booking-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(108px,1fr));gap:10px;margin-top:24px}.booking-slots>p{grid-column:1/-1}.booking-slots button{padding:12px;font-size:14px}.booking-slots button[aria-pressed=true]{border:2px solid #d7ffed;background:#b9eedb;color:#12273a}.booking-note{color:var(--bk-muted)!important;font-size:13px!important;line-height:1.65;margin:14px 0}.booking-feedback{padding:15px 18px;border:1px solid #67978c;border-radius:16px;background:#143c35;color:#e4fff5;line-height:1.65;margin:16px 0}.booking-error{background:#422b24;border-color:#ce987f;color:#ffe5d8}.booking-summary{margin:0 0 24px}.booking-summary-row{display:grid;grid-template-columns:minmax(90px,.6fr) minmax(0,1fr);gap:18px;padding:14px 0;border-bottom:1px solid #879eb533}.booking-summary dt{font-size:13px;color:var(--bk-muted)}.booking-summary dd{margin:0;font-size:15px;font-weight:600;line-height:1.5}.booking-filters{display:grid;grid-template-columns:2fr repeat(4,minmax(0,1fr));gap:14px}.booking-records{display:grid;gap:16px;margin-top:22px}.booking-record{min-width:0;min-height:0!important}.booking-record h3{overflow-wrap:anywhere}.booking-record p{margin:0!important}.booking-record strong{font-size:13px;color:#d2fae9;border:1px solid #6da69077;background:#1a4238;border-radius:99px;padding:6px 12px}.booking-record .booking-actions{margin-top:12px}.booking-empty{border:1px dashed #637a9380;border-radius:20px;padding:28px;color:var(--bk-muted);line-height:1.6}.booking-settings{margin-top:30px}.booking-settings>summary{font-size:19px;font-weight:700;min-height:48px;cursor:pointer;line-height:1.5;padding:8px 0;color:#def8ee}.booking-settings-form{display:grid;gap:24px;margin-top:24px}.booking-fieldset{min-width:0;border:1px solid #61799277;border-radius:20px;padding:20px;margin:0}.booking-fieldset legend{padding:0 8px;font-size:15px;font-weight:700;color:#eef4ff}.booking-fieldset>.booking-field{margin-top:18px}.booking-check{display:flex;gap:12px;align-items:center;min-height:46px;font-size:14px;color:#e2ecfa;line-height:1.5}.booking-check input{flex:0 0 22px;width:22px;height:22px;min-height:22px;padding:0;accent-color:#abdcca}.booking-edit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:18px;margin:20px 0}.booking-edit-card{border:1px solid #72829755;border-radius:18px;padding:20px;background:#0e1b2a99;display:grid;align-content:start;gap:16px;min-width:0}.booking-edit-card .booking-fieldset{padding:12px;border-radius:14px}.booking-hours-row{display:grid;grid-template-columns:minmax(100px,1fr) 1fr 1fr;gap:14px;align-items:center;padding:16px 0;border-bottom:1px solid #70879a33}.booking-hours-row:last-child{border-bottom:0}.booking-closure-row{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:12px;margin:16px 0}.booking-closure-row button{font-size:12px;padding:12px 16px}.booking-closure-list{margin-bottom:20px}.booking-workspace [aria-busy=true]{cursor:progress}
@media(max-width:850px){.booking-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-filters>.booking-field:first-child{grid-column:1/-1}.booking-closure-row{grid-template-columns:1fr 1fr}.booking-closure-row button{grid-column:1/-1;justify-self:start}}
@media(max-width:500px){.booking-stage,.booking-settings{padding:18px;border-radius:22px}.booking-steps{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:16px}.booking-fieldset{padding:14px}.booking-edit-card{padding:16px}.booking-hours-row{grid-template-columns:1fr 1fr}.booking-hours-row>.booking-check{grid-column:1/-1}.booking-actions button{flex:1 1 150px}.booking-filters{grid-template-columns:1fr}.booking-filters>.booking-field:first-child{grid-column:auto}.booking-summary-row{grid-template-columns:1fr;gap:7px}.booking-closure-row{grid-template-columns:1fr}.booking-workspace h2{font-size:26px}.booking-choice{padding:18px!important}.booking-choices{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.booking-workspace *{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

.booking-editor-tools{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:12px;align-items:end;margin:18px 0}.booking-editor-tools button{padding:12px 16px}@media(max-width:650px){.booking-editor-tools{grid-template-columns:1fr 1fr}.booking-editor-tools>.booking-field:first-child{grid-column:1/-1}}@media(max-width:380px){.booking-editor-tools{grid-template-columns:1fr}}

/* Private appointment contacts stay readable on receipts and both calendars. */
.booking-contact{display:grid;justify-items:start;gap:10px;min-width:0;margin:20px 0;padding:22px;border:1px solid #719990;border-radius:20px;background:linear-gradient(140deg,#183a39,#152c35);color:#edf8f5;overflow-wrap:anywhere}.booking-contact h4{margin:0;font-size:15px;line-height:1.5;letter-spacing:.01em;color:#b7e5d7}.booking-contact p{margin:0!important;line-height:1.6!important;font-size:15px!important;color:#e3efef!important}.booking-contact .booking-contact-name{font-size:17px!important;font-weight:700}.booking-contact .booking-contact-unavailable{color:#ccdadd!important}.booking-contact a.booking-call{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:11px 22px;border:1px solid #a4d1c4;border-radius:99px;background:linear-gradient(140deg,#387e70,#235a51);box-shadow:inset 0 1px 0 #ecfff655,0 5px 12px #0003;font-size:15px;font-weight:750;line-height:1.5;color:#fff;text-decoration:none;text-align:center}.booking-contact a.booking-call:focus-visible{outline:3px solid #e1fff1;outline-offset:4px}.booking-contact a.booking-call:hover{background:#367e70}.booking-contact .booking-contact-confirm{border-top:1px solid #759c9066;padding-top:12px;font-weight:650;color:#dcf7e9!important}.booking-contact-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:24px}.booking-record .booking-contact{margin:10px 0;width:100%}.seek-appointment .booking-contact{max-width:620px}.booking-contact-email{word-break:break-word}@media(max-width:560px){.booking-contact{padding:18px}.booking-contact-fields{grid-template-columns:1fr}.booking-contact a.booking-call{width:100%}}

.booking-calendar>.booking-filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.65fr);align-items:start}.booking-more-filters{border:1px solid #617583;border-radius:18px;padding:12px 16px;min-width:0;margin-top:28px}.booking-more-filters summary{font-weight:700;cursor:pointer;min-height:24px;color:#e7f1f6}.booking-more-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}.booking-more-controls>label{min-width:0}@media(max-width:620px){.booking-calendar>.booking-filters{grid-template-columns:1fr}.booking-more-filters{margin-top:0}.booking-more-controls{grid-template-columns:1fr 1fr}.booking-more-controls select,.booking-more-controls input{min-width:0;width:100%;box-sizing:border-box}}

/* Scheduling v16: a compact appointment summary and deliberate attendance review. */
.booking-trip-summary{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;padding:0 0 20px;margin-bottom:24px;border-bottom:1px solid #92c4b633;color:#c6dfdc;font-size:14px}.booking-trip-summary strong{flex:1 1 200px;color:#f2fbf7;font-size:18px}.booking-hours-badge{display:inline-block;padding:9px 14px;border:1px solid #86baa777;border-radius:12px;background:#234c4355;color:#ddf7ea;font-size:14px}.booking-time-summary{padding:16px 20px;border-left:3px solid #b9e5d3;background:#25483b66;border-radius:0 14px 14px 0;color:#e6fff2;font-weight:700}.booking-policy{display:grid;gap:12px;padding:22px;border:1px solid #a5b49d66;border-radius:18px;background:linear-gradient(130deg,#36473b66,#27374988);margin:24px 0;color:#dcebdd}.booking-policy h3{margin:0;font-size:17px;color:#eef8e9}.booking-policy p{margin:0!important;line-height:1.65;font-size:14px!important}.booking-contact .booking-policy{margin:4px 0 0;width:100%}.booking-attendance{width:100%;min-width:0;border-top:1px solid #809aab55;padding-top:20px;margin-top:8px}.booking-attendance h4{margin:0 0 16px;color:#c4e2da;font-size:15px}.booking-attendance-counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 16px}.booking-attendance-counts>div{display:flex;flex-direction:column-reverse;gap:8px;min-width:0;border:1px solid #92b7ac44;border-radius:16px;padding:14px;background:linear-gradient(145deg,#27413d99,#132332);box-shadow:inset 0 1px 0 #e6fff11a}.booking-attendance-counts dt{font-size:12px;color:#c5d3dd;line-height:1.4}.booking-attendance-counts dd{font-size:26px;font-weight:750;margin:0;color:#d5f4e9}.booking-review-notice{color:#ffe3b0;padding:12px 16px;border:1px solid #c3a16166;border-radius:14px;background:#654b2533}.booking-attendance .booking-field{flex:1 1 200px}.booking-edit-card .booking-hours-row{grid-template-columns:1fr 1fr;gap:10px}.booking-edit-card .booking-hours-row>.booking-check{grid-column:1/-1}.booking-workspace :is(.booking-policy,.booking-contact,.booking-attendance-counts>div){box-sizing:border-box}.booking-record .booking-attendance .booking-actions{gap:10px}.booking-attendance .booking-actions>.booking-check{flex-basis:100%}@media(max-width:540px){.booking-attendance-counts{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-policy{padding:16px}.booking-trip-summary{gap:8px}.booking-trip-summary strong{flex-basis:100%}}

/* Booking experience: quiet depth, progressive detail and explicit saved state. */
.booking-customer-experience .booking-heading{margin-bottom:30px}.booking-customer-experience .booking-heading h2{font-size:clamp(30px,4vw,44px);letter-spacing:-.045em}.booking-customer-experience .booking-stage{border-color:#76959788;background:radial-gradient(ellipse at 0 0,#3d706148,transparent 70%),linear-gradient(145deg,#1e3345,#152334);box-shadow:inset 0 1px 0 #eaffee38,0 6px 0 #081620,0 24px 50px #01081444}.booking-customer-experience .booking-choice{position:relative;min-height:188px!important;background:linear-gradient(145deg,#2d4252,#1a2a3c);border:1px solid #8198a5;box-shadow:inset 0 1px 0 #fff3,0 4px 0 #0c1d2b;color:#edf8f5;gap:10px!important}.booking-customer-experience .booking-choice[aria-pressed=true]{background:linear-gradient(135deg,#214f46,#173a39);color:#eafff5;border:2px solid #b4f0d7}.booking-choice .booking-choice-mark{display:grid;place-items:center;width:44px;height:44px;border-radius:15px;background:linear-gradient(135deg,#dbf4d8,#87b6aa);color:#16403a;font-size:24px;font-weight:750;border:1px solid #e3ffdd;box-shadow:inset 0 2px 0 #fff8,0 3px 0 #0c3026;margin-bottom:8px}.booking-choice .booking-choice-tick{position:absolute;right:18px;top:18px;display:grid;place-items:center;width:27px;height:27px;border-radius:50%;border:1px solid #91aeaa88;color:#d0e3de}.booking-choice[aria-pressed=true] .booking-choice-tick{background:#b6eed6;color:#0e3129;border-color:#ddfff1}.booking-customer-experience .booking-actions>button:not(.secondary){border:1px solid #c9f5dd;border-radius:99px;background:linear-gradient(145deg,#b7e9d0,#92cfc1);box-shadow:inset 0 2px 0 #f6fff6aa,0 3px 0 #255149;color:#102d27;font-weight:750;min-width:170px}.booking-customer-experience .booking-actions>button:disabled{background:#344e54;border-color:#637c80;color:#afc4c5;box-shadow:none}.booking-step-complete>span:first-child{color:#b9f2d8!important;background:#27554b;border-color:#7daea1!important}.booking-day-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:9px;margin-bottom:24px}.booking-day-choices button{padding:14px 10px;border-radius:16px!important;font-size:13px}.booking-day-choices button[aria-pressed=true]{background:#b9ebd8;color:#16372d;border-color:#dff8e7}.booking-customer-experience .booking-slot-period{grid-column:1/-1;margin:8px 0 4px;font-size:13px;letter-spacing:.06em;color:#b6d6ca}.booking-customer-experience .booking-slots button{border-radius:13px!important}.booking-success-seal{display:grid;place-items:center;width:70px;height:70px;margin:0 0 25px;border-radius:24px;background:linear-gradient(145deg,#dcf7cf,#8cc7b4);border:1px solid #e3ffdc;color:#235345;font-size:36px;box-shadow:inset 0 3px 1px #fff8,0 5px 0 #234e46,0 14px 35px #061c2344}.booking-confirmed{border:1px solid #638d83;border-radius:28px;padding:clamp(20px,4vw,38px);background:radial-gradient(ellipse at 100% 0,#3b68594a,transparent 70%),#142b39}.booking-confirmed .booking-note{overflow-wrap:anywhere}
.booking-owner-experience .booking-desk-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.booking-owner-experience .booking-desk-stat{display:flex;flex-direction:column;gap:16px;min-width:0;padding:22px;border:1px solid #7ea19480;border-radius:20px;background:radial-gradient(ellipse at 100% 0,#6a99863b,transparent 70%),linear-gradient(145deg,#294b4c,#173540);box-shadow:inset 0 1px 0 #e7ffee33,0 4px 0 #0a2330}.booking-desk-stat>span{color:#c7e0d9;font-size:13px}.booking-desk-stat>strong{font-size:36px;font-weight:750;color:#eaffed;line-height:1}.booking-owner-experience .booking-desk-actions{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:22px 0 30px}.booking-live-badge{display:inline-flex;align-items:center;gap:10px;border:1px solid #aab69188;border-radius:99px;padding:10px 14px;background:#383e2a;color:#f1e4b7;font-size:13px}.booking-live-badge:before{content:'';width:7px;height:7px;background:#e3bf7c;border-radius:50%}.booking-live-badge[data-enabled=true]{background:#1c443b;color:#d1f6e2;border-color:#87b99b}.booking-live-badge[data-enabled=true]:before{background:#a8ebc7}.booking-owner-experience .booking-range-choices{display:flex;gap:7px;flex-wrap:wrap;padding:7px;background:#0b2030;border:1px solid #5a778b;border-radius:24px;margin:0 0 20px;width:fit-content;max-width:100%;box-sizing:border-box}.booking-owner-experience .booking-range-choices button{font-size:14px;padding:10px 20px!important;min-height:44px!important;border:none!important;box-shadow:none!important}.booking-owner-experience .booking-range-choices button[aria-pressed=false]{background:transparent!important;color:#c9dce5}.booking-owner-experience .booking-appointment-detail{border-top:1px solid #789ba766;padding-top:12px;margin-top:8px;min-width:0}.booking-owner-experience .booking-appointment-detail>summary{min-height:44px;display:list-item;align-content:center;font-size:14px;font-weight:700;color:#c3ebdd;cursor:pointer}.booking-owner-experience .booking-appointment-detail[open]>summary{margin-bottom:14px}.booking-owner-experience .booking-setting-section{border:1px solid #638792;border-radius:18px;background:#142d3d;min-width:0;overflow:clip}.booking-owner-experience .booking-setting-section>summary{padding:19px 22px;cursor:pointer;list-style:none;position:relative;padding-right:50px;color:#e3f5ec}.booking-owner-experience .booking-setting-section>summary:after{content:'+';position:absolute;right:22px;top:25px;font-size:23px;color:#bee8d6}.booking-owner-experience .booking-setting-section[open]>summary:after{content:'−'}.booking-owner-experience .booking-setting-section>summary::-webkit-details-marker{display:none}.booking-setting-section>summary>span{display:block;font-size:17px;font-weight:750}.booking-setting-section>summary>small{display:block;font-size:13px;color:#b8d0da;line-height:1.5;margin-top:6px}.booking-owner-experience .booking-setting-section>.booking-fieldset{margin:0 16px 16px;border-color:#456376;background:#102736}.booking-owner-experience .booking-save-dock{position:sticky;bottom:12px;z-index:2;background:linear-gradient(135deg,#1d3f42,#142c3d);border:1px solid #729688;border-radius:19px;padding:17px 20px;box-shadow:0 10px 25px #020c1980,inset 0 1px 0 #e3ffee33}.booking-owner-experience .booking-save-dock .booking-actions{margin:12px 0 0!important}.booking-save-state{margin:0!important;font-size:13px;color:#bde0cc;font-weight:650;line-height:1.5}.booking-save-dock[data-dirty=true] .booking-save-state{color:#f0d2a0}.booking-discard-confirm{padding-top:15px;margin-top:15px;border-top:1px solid #7c9c9766;display:flex;gap:12px;flex-wrap:wrap}.booking-discard-confirm p{width:100%;margin:0;font-size:14px}.booking-owner-experience .booking-record>.booking-note{color:#d3e3ec}
@media(max-width:600px){.booking-owner-experience .booking-desk-stat{padding:15px 12px;gap:12px;border-radius:16px}.booking-desk-stat>strong{font-size:29px}.booking-desk-stat>span{font-size:12px}.booking-owner-experience .booking-desk-overview{gap:8px}.booking-owner-experience .booking-range-choices{border-radius:18px;width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.booking-owner-experience .booking-range-choices button{padding:9px 5px!important;font-size:12px}.booking-owner-experience .booking-setting-section>summary{padding:17px 42px 17px 16px}.booking-owner-experience .booking-setting-section>.booking-fieldset{margin:0 8px 8px}.booking-owner-experience .booking-save-dock{position:static;padding:15px}.booking-owner-experience .booking-desk-actions{gap:12px}.booking-customer-experience .booking-choice{min-height:160px!important}.booking-customer-experience .booking-day-choices{grid-template-columns:repeat(3,minmax(0,1fr))}.booking-customer-experience .booking-day-choices button{font-size:12px;min-width:0}.booking-customer-experience .booking-actions>button:not(.secondary){min-width:0}}
@media(prefers-reduced-motion:no-preference) and (hover:hover) and (pointer:fine){.booking-customer-experience .booking-choice{transition:transform .18s ease,box-shadow .18s ease}.booking-customer-experience .booking-choice:hover{transform:translateY(-3px);box-shadow:inset 0 1px 0 #fff3,0 7px 0 #0c1d2b,0 15px 25px #0002}.booking-customer-experience .booking-choice:active{transform:translateY(0)}.booking-success-seal{animation:booking-arrive .35s ease-out}@keyframes booking-arrive{from{transform:translateY(7px);opacity:.4}to{transform:translateY(0);opacity:1}}}
html[data-motion=off] .booking-workspace *{animation:none!important;transition:none!important}
/* v18 menu, compact receipts and page-local business notices. */
.booking-category-choices{display:flex;flex-wrap:wrap;gap:.65rem;margin:0 0 1.2rem}.booking-category-choices button{border-radius:999px;min-height:44px;padding:.65rem 1.25rem}.booking-category-choices button[aria-pressed=true]{background:linear-gradient(130deg,#dcf9e5,#9cdad4);color:#123d38;box-shadow:inset 0 2px 1px #fff9,0 5px 0 #08252b,0 9px 20px #0003}
.booking-menu-services{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:1rem}.booking-menu-services .booking-choice{padding:1.2rem;min-height:0;grid-template-columns:42px 1fr;gap:.5rem .9rem;border-radius:22px}.booking-menu-services .booking-choice-mark{grid-row:1/3;width:40px;height:40px;font-size:1.3rem;border-radius:14px}.booking-menu-services .booking-choice strong{font-size:1.15rem}.booking-menu-services .booking-choice>span:last-child{grid-column:2;color:inherit;font-size:.95rem}
.booking-duration-section{margin-top:1.5rem;padding:1.4rem;border:1px solid #bfe6d84d;border-radius:24px;background:linear-gradient(145deg,#2d5058,#162b38)}.booking-duration-section h3{margin:0;font-size:1.25rem}.booking-duration-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:.8rem}.booking-duration-choices button{display:flex;flex-direction:column;align-items:center;gap:.35rem;background:linear-gradient(135deg,#d9eed5,#a3d8c9);color:#163b36;border:1px solid #e6f8eb;border-radius:18px;box-shadow:inset 0 2px #fff9,0 5px 0 #082e32,0 8px 20px #0003;padding:1rem .65rem}.booking-duration-choices strong{font-size:1.2rem}.booking-duration-choices button span{font-size:1rem}
.booking-visit,.booking-receipt{margin:0 0 1.3rem;padding:1.3rem;border:1px solid #a8d6ca6b;border-radius:24px;background:linear-gradient(135deg,#295354,#192d3d);box-shadow:inset 0 2px 0 #ffffff1a,0 10px 24px #0002}.booking-visit h3{margin:0 0 1rem;font-size:1.15rem;color:#c9e9dc}.booking-visit-line{display:flex;align-items:center;justify-content:space-between;gap:.6rem 1rem;flex-wrap:wrap;padding:.85rem 0;border-bottom:1px solid #c6e7e322}.booking-visit-line>span{color:#d8e6e7}.booking-visit-line button{font-size:.8rem;padding:.5rem .8rem;min-height:40px}.booking-visit-total{margin-top:1rem;font-weight:800;font-size:1.15rem;color:#e1f5dc}.booking-review-when{padding:1.15rem 0}.booking-review-when h3{font-size:1.35rem;margin:0 0 .45rem}.booking-review-when>strong{font-size:1.55rem;color:#c4e9d3}.booking-review-when p{margin:.6rem 0}
.booking-workspace.booking-confirmed{max-width:720px;margin-inline:auto;padding:clamp(20px,4vw,38px)}.booking-confirmed .booking-heading{padding-bottom:1rem}.booking-confirmed .booking-heading h2{font-size:clamp(1.9rem,4vw,2.65rem);line-height:1.08}.booking-confirmed .booking-heading p{font-size:1rem;margin:.75rem 0 0}.booking-confirmed .booking-success-seal{width:68px;height:68px;margin-bottom:1.1rem;border-radius:22px;font-size:2.6rem}.booking-confirmed .booking-receipt h3{margin:0 0 .4rem;font-size:1.15rem}.booking-confirmed .booking-receipt>strong{font-size:1.9rem;color:#e4f3d3}.booking-confirmed .booking-receipt p{font-size:1rem}.booking-receipt-details{border-top:1px solid #bde0d64d;margin-top:1.2rem;padding-top:1.1rem}.booking-receipt-details summary{cursor:pointer;min-height:44px;font-weight:700;color:#d3e7e5}.booking-receipt-details .booking-contact{margin-top:1rem}.booking-receipt-details .booking-note{overflow-wrap:anywhere}
.booking-notices:empty{display:none}.booking-notice-state{font-size:.85rem;color:#bdd9d2}.booking-new-appointment{position:relative;margin:0 0 1rem;padding:1.3rem 1.5rem;border:1px solid #bde6c6;border-radius:24px;background:linear-gradient(120deg,#174d43,#213b4c);box-shadow:inset 0 2px 0 #ffffff35,0 12px 28px #0003}.booking-new-appointment h3{margin:.2rem 0 .75rem;color:#e9f4cf;font-size:1.35rem}.booking-new-appointment p{margin:.45rem 0}.booking-notice-icon{float:right;color:#d6edaf;font-size:2rem}.booking-new-appointment .booking-actions{margin:.9rem 0 0}.booking-duration-editor{grid-column:1/-1;width:100%;min-width:0;border-top:1px solid #bad7df3d;padding-top:1rem;margin-top:1rem}.booking-duration-editor h4{margin:0}.booking-duration-row{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;padding:1rem 0;border-bottom:1px solid #b9d6de2b}.booking-duration-row .booking-check{grid-column:1/-1}.booking-owner-lines{padding:.6rem 0}.booking-owner-lines p{margin:.4rem 0}
@media(max-width:600px){.booking-customer-experience .booking-stage{padding:1rem}.booking-menu-services{grid-template-columns:1fr}.booking-menu-services .booking-choice{padding:1rem}.booking-duration-section{padding:1rem}.booking-duration-choices{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-visit,.booking-receipt{padding:1rem}.booking-visit-line{align-items:flex-start}.booking-visit-line>span{font-size:.95rem}.booking-duration-row{grid-template-columns:1fr}.booking-new-appointment{padding:1rem}.booking-new-appointment .booking-actions{display:grid;grid-template-columns:1fr 1fr}.booking-new-appointment button{min-width:0;padding:.8rem .5rem}.booking-category-choices{gap:.5rem}}
@media(prefers-reduced-motion:no-preference){.booking-new-appointment{animation:booking-notice-enter .3s ease-out}@keyframes booking-notice-enter{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}}
.booking-confirmed>.booking-call{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:.75rem 1.6rem;margin:.6rem 0;border:1px solid #c7ebd4;border-radius:999px;background:linear-gradient(140deg,#cbeacb,#96d1bd);color:#173f39;font-weight:800;text-decoration:none;box-shadow:inset 0 2px #ffffffaa,0 4px 0 #102b32,0 8px 18px #0003}.booking-notice-stack{position:fixed;right:1rem;bottom:1rem;width:min(420px,calc(100vw - 2rem));max-height:70vh;overflow:auto;z-index:60;overscroll-behavior:contain}.booking-notice-stack:empty{display:none}.booking-notice-stack .booking-new-appointment{margin:.5rem .1rem;padding:1.2rem;backdrop-filter:blur(16px)}

.booking-notice-stack{color:#e9f5f2;font:inherit;overflow-wrap:anywhere}.booking-notice-stack button{min-height:46px;line-height:1.4;white-space:normal}.booking-notice-stack button:focus-visible{outline:3px solid #a4edde;outline-offset:3px}.booking-notice-business{font-weight:700;color:#bde6d5}.booking-notice-stack .booking-new-appointment p{font-size:14px;line-height:1.5}
html[data-motion=off] .booking-notice-stack *{animation:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){.booking-notice-stack *{animation:none!important;transition:none!important}}

/* In-page calendar: actual available times are still returned by the server. */
.booking-calendar-picker{border:1px solid #91b5bd88;border-radius:24px;padding:22px;background:radial-gradient(ellipse at top left,#3b716150,transparent 65%),linear-gradient(150deg,#263d4c,#152238);box-shadow:inset 0 2px 0 #ddfff32b,0 6px 0 #0b1722,0 18px 30px #0003;margin:0 0 28px;min-width:0}
.booking-calendar-tools{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:20px}.booking-calendar-tools h3{font-size:18px;letter-spacing:-.025em;margin:0;color:#e3f6ef}.booking-calendar-modes{display:flex;padding:4px;gap:4px;border-radius:999px;border:1px solid #7293927a;background:#0b202d;box-shadow:inset 0 2px 5px #0005}.booking-calendar-modes button{min-height:38px!important;padding:7px 17px!important;font-size:13px!important;border:0!important;box-shadow:none!important;border-radius:999px!important;background:transparent!important;color:#bccddd!important}.booking-calendar-modes button[aria-pressed=true]{background:linear-gradient(145deg,#d8edc7,#a9d7bf)!important;color:#14382f!important;box-shadow:0 2px 4px #0004,inset 0 1px #fff9!important;font-weight:800}
.booking-calendar-month{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:12px;align-items:center;margin-bottom:20px}.booking-calendar-month h4{font-size:20px;text-transform:capitalize;text-align:center;line-height:1.35;margin:0;color:#f1f3e9}.booking-calendar-month button{padding:0!important;min-height:44px!important;border-radius:15px!important;font-size:30px!important;line-height:1!important;background:linear-gradient(145deg,#375065,#223146)!important;color:#d5f1eb!important;border:1px solid #8ba7b380!important;box-shadow:inset 0 2px #d3f8ee36,0 3px 0 #0c1c2b!important}.booking-calendar-month button:disabled{opacity:.28}
.booking-calendar-weekdays,.booking-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.booking-calendar-weekdays{margin-bottom:10px;color:#9bb5c2;text-align:center;font-size:12px;font-weight:700}.booking-calendar-days .booking-calendar-day{min-width:0!important;width:100%;min-height:46px!important;padding:8px 0!important;border-radius:13px!important;font-size:15px!important;font-weight:650;background:#1b3142!important;border:1px solid transparent!important;color:#e2edf5!important;box-shadow:none!important;position:relative}.booking-calendar-day[aria-current=date]{border-color:#a6d1bd!important}.booking-calendar-days .booking-calendar-day[aria-pressed=true]{background:linear-gradient(145deg,#e0f4cf,#9bcdb9)!important;color:#123a31!important;border-color:#e3ffe7!important;box-shadow:inset 0 2px #fff8,0 4px 0 #0a2b2c,0 8px 15px #0003!important;font-weight:850;transform:translateY(-1px)}.booking-calendar-days .booking-calendar-day:disabled{background:transparent!important;color:#81929f!important;opacity:.38;cursor:not-allowed}.booking-calendar-footer{display:flex;align-items:center;gap:14px;margin-top:18px;padding-top:16px;border-top:1px solid #94b4c233}.booking-calendar-footer button{padding:7px 13px!important;min-height:40px!important;font-size:12px!important;flex:0 0 auto}.booking-calendar-footer p{font-size:12px;line-height:1.5;margin:0;color:#c1d4db}
.booking-time-grid .booking-time-choice{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:14px 8px;min-height:74px}.booking-time-choice strong{font-size:15px}.booking-time-choice span{font-size:11px;font-weight:500;opacity:.85}.booking-selected-time{margin-top:24px;padding:20px;border-radius:20px;border:1px solid #b7dfbb66;background:linear-gradient(140deg,#294d45,#193447);display:grid;gap:9px}.booking-selected-time>span{font-size:12px;font-weight:750;letter-spacing:.08em;color:#c5e5cd}.booking-selected-time strong{font-size:clamp(20px,4vw,28px);letter-spacing:-.035em;line-height:1.3;color:#e3f4d3}.booking-selected-time p{margin:0;font-size:14px;color:#d2e5e4}
.booking-arrival-reminder{display:flex;align-items:flex-start;gap:14px;margin:22px 0;padding:20px;border:1px solid #b4dca766;border-radius:20px;background:linear-gradient(130deg,#35564c,#263d43);box-shadow:inset 0 1px #d8f5d638;min-width:0;overflow-wrap:anywhere}.booking-arrival-icon{display:grid;place-items:center;width:36px;height:36px;flex:0 0 36px;border:1px solid #bedfbd80;border-radius:12px;background:linear-gradient(145deg,#d8e9bd,#99c3ae);box-shadow:0 3px 0 #183b35;color:#234738;font-size:26px}.booking-arrival-reminder strong{font-size:15px;line-height:1.4;color:#e7f4d4}.booking-arrival-reminder p{font-size:13px!important;line-height:1.6!important;color:#d2e4dd!important;margin:7px 0 0!important}.booking-arrival-reminder p:first-of-type:not(:last-child){font-size:16px!important;font-weight:750;color:#e1f3d6!important}
@media(hover:hover){.booking-calendar-day:not(:disabled):hover{border-color:#afd9ca!important;filter:brightness(1.12)}.booking-calendar-month button:not(:disabled):hover{filter:brightness(1.2)}}
@media(max-width:500px){.booking-calendar-picker{padding:14px;border-radius:20px}.booking-calendar-tools{gap:12px;margin-bottom:18px}.booking-calendar-tools h3{font-size:16px}.booking-calendar-modes button{padding:6px 14px!important}.booking-calendar-month{gap:7px;grid-template-columns:38px minmax(0,1fr) 38px;margin-bottom:18px}.booking-calendar-month h4{font-size:17px}.booking-calendar-month button{min-height:42px!important}.booking-calendar-weekdays,.booking-calendar-days{gap:3px}.booking-calendar-days .booking-calendar-day{min-height:42px!important;font-size:13px!important;border-radius:10px!important}.booking-calendar-footer{align-items:flex-start;gap:10px}.booking-arrival-reminder{padding:15px;gap:11px}.booking-arrival-icon{width:30px;height:32px;flex-basis:30px;font-size:22px}.booking-arrival-reminder strong{font-size:14px}.booking-selected-time{padding:16px}.booking-time-choice strong{font-size:14px}.booking-time-choice span{font-size:10px}}
