.qsa-booker{max-width:760px;margin:24px auto;padding:24px;border:1px solid #ddd;border-radius:12px;background:#fff;box-sizing:border-box}.qsa-booker label{display:block;font-weight:600;margin:12px 0 6px}.qsa-booker input,.qsa-booker select,.qsa-booker textarea{width:100%;box-sizing:border-box;padding:10px}.qsa-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.qsa-slot{margin:4px;padding:8px 12px}.qsa-muted{opacity:.7}.qsa-license-required{padding:16px;border:1px solid #ddd;border-radius:8px}
/* Mobile shortcode: compact, touch-friendly and always single-column. */
.qsa-mode-mobile{max-width:520px;margin:12px auto;padding:16px;border-radius:10px}.qsa-mode-mobile .qsa-grid{grid-template-columns:1fr}.qsa-mode-mobile input,.qsa-mode-mobile select,.qsa-mode-mobile textarea,.qsa-mode-mobile button{font-size:16px;min-height:44px}.qsa-mode-mobile .qsa-slot{min-height:44px}
/* App shortcode: edge-to-edge presentation for an embedded/native app webview. */
.qsa-mode-app{max-width:none;width:100%;margin:0;padding:12px;border:0;border-radius:0;box-shadow:none}.qsa-mode-app .qsa-grid{grid-template-columns:1fr}.qsa-mode-app input,.qsa-mode-app select,.qsa-mode-app textarea,.qsa-mode-app button{font-size:16px;min-height:46px}.qsa-mode-app .qsa-slot{min-height:46px}
@media(max-width:600px){.qsa-grid{grid-template-columns:1fr}.qsa-mode-website{margin:12px auto;padding:16px}}
/* 1.9.0 language switcher */
.qsa-language-switcher{display:flex;justify-content:flex-end;align-items:center;gap:6px;margin:0 0 10px}.qsa-lang{appearance:none;background:transparent;border:1px solid transparent;border-radius:8px;padding:4px 6px;min-width:38px;min-height:34px;font-size:24px;line-height:1;cursor:pointer}.qsa-lang:hover,.qsa-lang:focus-visible{background:#f4f4f4}.qsa-lang.is-active{border-color:#777;background:#f5f5f5;box-shadow:0 0 0 1px rgba(0,0,0,.08)}.qsa-mode-mobile .qsa-language-switcher,.qsa-mode-app .qsa-language-switcher{justify-content:center;gap:4px}.qsa-mode-mobile .qsa-lang,.qsa-mode-app .qsa-lang{min-width:42px;min-height:42px;font-size:25px}
/* 2.0.0 colleague appointment overview */
.qsa-staff-overview{max-width:900px;margin:24px auto;padding:20px;box-sizing:border-box}.qsa-staff-overview.qsa-mode-app{max-width:none;margin:0;padding:12px}.qsa-appointment-card{border:1px solid #ddd;border-radius:10px;padding:14px;margin:10px 0;background:#fff}.qsa-appointment-card>div{margin-top:5px}.qsa-approval{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:12px!important}.qsa-approval select,.qsa-approval button{min-height:40px}.qsa-mode-app .qsa-appointment-card{border-radius:8px}.qsa-mode-app .qsa-approval>*{width:100%;min-height:46px}
.qsa-language-fallback{margin:12px 0 18px;padding:14px 16px;border:1px solid #ddd;border-radius:10px;background:#fafafa}.qsa-language-fallback p{margin:0 0 10px}.qsa-english-fallback{cursor:pointer}

/* 2.6.9 — per-shortcode appearance */
.qsa-booker,.qsa-staff-overview{background-color:var(--qsa-bg,#fff);color:var(--qsa-text,#222);}
.qsa-booker h1,.qsa-booker h2,.qsa-booker h3,.qsa-booker p,.qsa-booker label,.qsa-booker span,.qsa-staff-overview h1,.qsa-staff-overview h2,.qsa-staff-overview h3,.qsa-staff-overview p,.qsa-staff-overview label,.qsa-staff-overview span,.qsa-staff-overview td,.qsa-staff-overview th{color:var(--qsa-text,#222);}

/* 2.9.0 — graphical available-date chooser */
.qsa-date-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:8px 0 18px}.qsa-date-card{appearance:none;width:100%;min-height:88px;padding:12px 10px;border:1px solid color-mix(in srgb,var(--qsa-text,#222) 22%,transparent);border-radius:12px;background:color-mix(in srgb,var(--qsa-bg,#fff) 94%,var(--qsa-text,#222) 6%);color:var(--qsa-text,#222);cursor:pointer;text-align:center;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.qsa-date-card:hover,.qsa-date-card:focus-visible{transform:translateY(-1px);box-shadow:0 4px 14px rgba(0,0,0,.10)}.qsa-date-card.is-selected{border-width:2px;box-shadow:0 0 0 2px color-mix(in srgb,var(--qsa-text,#222) 18%,transparent)}.qsa-date-day{display:block;font-size:.88em;font-weight:600;text-transform:capitalize;opacity:.78;margin-bottom:5px}.qsa-date-full{display:block;font-size:1em;line-height:1.25;text-transform:capitalize}.qsa-mode-mobile .qsa-date-grid,.qsa-mode-app .qsa-date-grid{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:600px){.qsa-mode-website .qsa-date-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* 2.9.1 — readable date cards regardless of theme button styles */
.qsa-booker .qsa-date-card{min-height:104px!important;padding:14px 12px!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;overflow:visible!important;line-height:1.25!important;text-shadow:none!important;}
.qsa-booker .qsa-date-card .qsa-date-day,.qsa-booker .qsa-date-card .qsa-date-full{position:static!important;display:block!important;width:100%!important;height:auto!important;overflow:visible!important;clip:auto!important;white-space:normal!important;color:var(--qsa-text,#222)!important;opacity:1!important;visibility:visible!important;text-indent:0!important;}
.qsa-booker .qsa-date-card .qsa-date-day{font-size:.88rem!important;font-weight:700!important;margin:0 0 7px!important;}
.qsa-booker .qsa-date-card .qsa-date-full{font-size:1rem!important;font-weight:700!important;margin:0!important;}
.qsa-hold-notice{margin:0 0 16px;padding:12px 14px;border:1px solid currentColor;border-radius:10px;font-weight:600}.qsa-thankyou{padding:24px}.qsa-thankyou-card{margin:20px 0;padding:20px;border:1px solid rgba(127,127,127,.35);border-radius:14px;background:rgba(127,127,127,.06)}.qsa-thankyou-card dl{display:grid;grid-template-columns:minmax(100px,160px) 1fr;gap:8px 18px;margin:0}.qsa-thankyou-card dt{font-weight:700}.qsa-thankyou-card dd{margin:0}.qsa-slot.is-selected{outline:3px solid currentColor;outline-offset:2px}@media(max-width:600px){.qsa-thankyou-card dl{grid-template-columns:1fr;gap:3px}.qsa-thankyou-card dd{margin-bottom:10px}}

/* 3.3.6 — prevent theme clipping in selects and clarify the 10-minute hold. */
.qsa-booker select{min-height:52px!important;height:auto!important;line-height:1.35!important;padding:12px 44px 12px 14px!important;box-sizing:border-box!important;vertical-align:middle!important;text-overflow:ellipsis!important;}
.qsa-booker select option{line-height:1.35!important;}
.qsa-booker label{line-height:1.35!important;margin-top:16px!important;}
.qsa-hold-info{margin:4px 0 12px!important;font-size:.95em;line-height:1.45;opacity:.85;}
.qsa-mode-mobile select,.qsa-mode-app select{min-height:54px!important;font-size:16px!important;}
.qsa-language-fallback-button{margin:4px 8px 4px 0}.qsa-language-fallback-button:last-child{margin-right:0}
