/* Private cabinet shell: final ZIP menu geometry and existing native utilities. */
.booking-cabinet .ab-head .ab-select-wrap { max-width:562px; }
.booking-cabinet .ab-head .ab-booking-copy { flex:0 0 44px; margin:0; }
.booking-cabinet .ab-nav-wrap { margin-bottom:20px; }
.booking-cabinet .ab-more-menu button { gap:10px; }

/* Copy and feedback retain the platform workflows without extra menu rows. */
.booking-cabinet .ab-head .ab-feedback-toggle { color:#31343a; }
.booking-cabinet .ab-head .ab-feedback-toggle svg { pointer-events:none; }

@media(max-width:768px) {
  .booking-cabinet .ab-nav-wrap { margin-bottom:14px; }
  .booking-cabinet .ab-head .ab-select-wrap { max-width:none; }
  .booking-cabinet .ab-head--business .ab-feedback-toggle { grid-column:2; grid-row:1; margin:0; }
  .booking-cabinet .ab-head--business:has(.ab-statistics-toggle) { grid-template-columns:minmax(0,1fr) 44px 44px 44px; }
  .booking-cabinet .ab-head--business:has(.ab-statistics-toggle) .ab-statistics-toggle { grid-column:3; }
  .booking-cabinet .ab-head--business:has(.ab-statistics-toggle) .ab-inbox-toggle { grid-column:4; }
  .booking-cabinet .ab-more-menu button { gap:8px; }
}

/* The extra native feedback action keeps its full target on narrow phones. */
@media(max-width:360px) {
  .booking-cabinet .ab-head--business:has(.ab-statistics-toggle) .ab-context { gap:0; }
  .booking-cabinet .ab-head--business:has(.ab-statistics-toggle) .ab-context button { padding-inline:5px; }
}

/* Stage 1: business shell and Today only. */
.booking-cabinet .ab-utilities .ab-platform-link { gap:7px; min-height:40px; padding:6px 8px; color:#616a75; font-size:13px; font-weight:500; line-height:1.5; border-radius:10px; text-decoration:none; }
.booking-cabinet .ab-platform-link > span { font-size:17px; line-height:1; color:#25292e; }
.booking-cabinet .ab-platform-link:hover { background:#f1f2f4; }
.booking-cabinet .ab-platform-link:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.booking-cabinet .ab-copy-toast { position:fixed; z-index:1500; left:50%; bottom:calc(24px + env(safe-area-inset-bottom,0px)); transform:translateX(-50%); width:max-content; max-width:calc(100vw - 32px); padding:9px 14px; border-radius:10px; background:#222; color:#fff; box-shadow:0 4px 16px #0002; font-size:13px; line-height:1.5; text-align:center; pointer-events:none; }
.booking-cabinet .ab-copy-toast[hidden] { display:none; }
.booking-cabinet .ab-business-today .ab-review-prompt--business { display:block; max-width:320px; }
.booking-cabinet .ab-business-today .ab-review-rate-button { display:inline-flex; align-items:center; justify-content:center; gap:7px; padding:10px 15px; min-height:44px; line-height:20px; min-width:84px; color:#30353b; white-space:nowrap; background:#fff; border:1px solid #e1e4e8; border-radius:14px; }
.booking-cabinet .ab-business-today .ab-review-rate-button svg { width:15px; height:15px; flex:0 0 15px; color:#e8590c; }
.booking-cabinet .ab-business-today .ab-review-footer { flex-wrap:nowrap; }
.booking-cabinet .ab-today-visits > .ab-title-row h2 { font-size:16px; line-height:1.5; }
.booking-cabinet .ab-today-visits > .ab-list { border-top:0; }
.booking-cabinet .ab-today-heading .ab-today-date { margin:8px 0 0; font-size:13px; line-height:1.5; }
.booking-cabinet .ab-today-visits > .ab-empty { padding:16px 12px; }
.booking-cabinet .ab-today-visits > .ab-empty p { margin-bottom:0; }

@media (max-width:768px) {
 .booking-cabinet .ab-copy-toast { bottom:calc(92px + env(safe-area-inset-bottom,0px)); }
 .booking-cabinet .ab-business-today .ab-review-rate-button { line-height:18px; }
 .booking-cabinet .ab-business-today .ab-review-footer { margin-top:6px; }
 .booking-cabinet .ab-business-today .ab-review-footer time { font-size:12px; line-height:1.5; }
}

@media(min-width:769px) {
 .booking-cabinet .ab-more-menu { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; width:100%; max-width:none; padding:10px; border:0; border-radius:16px; background:#f6f7f9; box-shadow:none; }
 .booking-cabinet .ab-more-menu[hidden] { display:none; }
 .booking-cabinet .ab-more-menu button { justify-content:center; min-width:0; padding:12px; border:0; border-radius:12px; background:transparent; }
 .booking-cabinet .ab-more-menu button:hover,.booking-cabinet .ab-more-menu button[aria-current=page] { background:#fff; box-shadow:0 2px 8px #28313f08; }
}

@media(max-width:768px) {
 .booking-cabinet .ab-section-toolbar .ab-calendar-create > button { box-sizing:border-box; max-width:76px; min-height:38px; padding:6px 8px; font-size:11px; }
 .booking-cabinet .ab-section-toolbar .ab-calendar-create > button > span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
}

.booking-cabinet .ab-more-menu { border:0; padding:10px 0; }
.booking-cabinet .ab-more-menu button,.booking-cabinet .ab-more-menu button[aria-current] { border:0; text-decoration:none; }
.booking-cabinet .ab-more-menu button::after { display:none; }
.booking-cabinet .ab-team-screen { width:100%; max-width:760px; margin-inline:0 auto; padding-inline:0; }
.booking-cabinet .ab-team-screen .ab-team-invites { margin-top:8px; }
.booking-cabinet .ab-team-add-actions { display:flex; flex-wrap:wrap; gap:8px; }
.booking-cabinet .ab-staff-permissions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:12px 0; padding:12px; border:0; border-radius:12px; background:#f3f5f7; }
.booking-cabinet .ab-staff-permissions legend { font-size:12px; color:#78818b; }
.booking-cabinet .ab-staff-permissions label { display:flex; gap:8px; align-items:center; margin:0; color:#55616f; font-size:12px; }
.booking-cabinet .ab-staff-permissions input { width:16px!important; height:16px!important; min-height:16px!important; flex:none; accent-color:#697580; }
.booking-cabinet .ab-inbox-row { position:relative; }
.booking-cabinet .ab-notice-dismiss { position:absolute; inset:5px 6px auto auto; width:24px; height:24px; padding:0; border:0; background:transparent; color:#a2a9b1; font-size:18px; line-height:24px; cursor:pointer; }
.booking-cabinet .ab-inbox-row > .ab-actions { padding-right:12px; }
.booking-cabinet .ab-select-wrap { max-width:440px; }
@media(max-width:768px) {
 .booking-cabinet .ab-more-menu { grid-template-columns:repeat(4,minmax(0,1fr)); gap:4px; padding:8px 0; }
 .booking-cabinet .ab-more-menu button { flex-direction:column; justify-content:center; align-items:center; gap:5px; padding:10px 3px; min-height:64px; font-size:10px; border-radius:12px; }
 .booking-cabinet .ab-more-menu button[aria-current=page] { background:#f0f2f4; box-shadow:none; }
 .booking-cabinet .ab-more-menu button svg { width:18px; height:18px; }
 .booking-cabinet .ab-staff-permissions { grid-template-columns:minmax(0,1fr); }
}
/* Stable cabinet geometry and compact, readable controls. */
.booking-cabinet .ab-content:has(>.ab-team-screen),
.booking-cabinet .ab-content:has(.ab-client-directory){width:100%;max-width:none;margin-inline:0;padding-inline:0}
.booking-cabinet .ab-team-screen .ab-specialist-access-form{width:min(100%,640px);max-width:none;grid-template-columns:minmax(0,1fr)}
.booking-cabinet .ab-team-form-heading{display:flex;align-items:center;gap:8px;margin:10px 0}
.booking-cabinet .ab-team-form-heading .ab-icon{width:32px;min-height:32px;padding:5px;border:0;background:transparent}
.booking-cabinet .ab-team-form-heading .ab-icon svg{width:18px;height:18px}
.booking-cabinet .ab-team-form-heading .ab-icon span{display:none}
.booking-cabinet .ab-team-screen .ab-staff-permissions{box-sizing:border-box;min-width:0;gap:9px 14px;padding:12px 14px;margin-block:8px;border-radius:14px;background:#f2f3f5}
.booking-cabinet .ab-team-screen .ab-staff-permissions legend{font-size:13px;color:#3d4651;line-height:1.5;padding:0 4px}
.booking-cabinet .ab-team-screen .ab-staff-permissions label{color:#303942;line-height:1.4}
.booking-cabinet .ab-team-screen .ab-staff-permissions input{accent-color:#303942;opacity:1}
.booking-cabinet .ab-team-screen .ab-team-add-actions{display:flex;gap:8px;flex-wrap:wrap}
.booking-cabinet .ab-team-screen .ab-team-add-actions .ab-action{min-height:38px;font-size:13px;padding:8px 12px}
.booking-cabinet .ab-context button{font-size:16px;line-height:1.4}
.booking-cabinet .ab-nav{box-sizing:border-box;height:58px;min-height:58px;max-height:58px}
.booking-cabinet .ab-nav>button{box-sizing:border-box;height:58px;min-height:58px;max-height:58px;align-items:center;border-bottom-width:2px}
.booking-cabinet .ab-archive-toggle{margin-left:auto;width:34px;min-height:34px;padding:7px;background:#f2f3f5;border:0;border-radius:10px}
.booking-cabinet .ab-archive-toggle[aria-pressed=true]{background:#e5e9ee;color:#252b31}
.booking-cabinet .ab-inbox-list+.ab-pages{margin-top:10px}
.booking-cabinet #tab-account-profile{position:relative}
.booking-cabinet .ab-settings-session{display:flex;justify-content:flex-end;position:absolute;right:0;top:0;margin:0;padding:0;z-index:1}
.booking-cabinet .ab-settings-session .ab-logout-icon{width:36px;height:36px;min-height:36px;padding:8px;border:0;border-radius:10px;color:#9c7948;background:#f6f2eb;box-shadow:none}
.booking-cabinet .ab-settings-heading .ab-logout-icon svg{width:20px;height:20px;max-width:none;flex:none}
.booking-cabinet .favorites-tabs{display:flex;gap:3px;padding:4px;border:0;border-radius:14px;background:#f0f1f3;max-width:660px}
.booking-cabinet .favorites-tabs .tab-btn{flex:1;min-width:0;border:0;border-radius:10px;padding:10px 8px;font-size:13px;background:transparent;white-space:nowrap}
.booking-cabinet .favorites-tabs .tab-btn.active{background:#fff;color:#24272b;box-shadow:0 2px 7px #1923310b}
.booking-cabinet .ab-service-list{border:0;padding:0;background:transparent}
.booking-cabinet .ab-service-list>.ab-row{margin-bottom:8px;padding:14px;border:0;border-radius:14px;background:#f3f4f6}
.booking-cabinet .ab-service-fields>.ab-field,
.booking-cabinet .ab-service-fields>.ab-service-languages,
.booking-cabinet .ab-service-language-panel{box-sizing:border-box;padding:10px 12px;background:#f5f6f8;border-radius:12px}
@media(max-width:768px){
 .booking-cabinet .ab-team-screen .ab-staff-permissions{grid-template-columns:minmax(0,1fr)}
 .booking-cabinet .ab-context button{font-size:15px}
 .booking-cabinet .ab-nav,.booking-cabinet .ab-nav>button{height:52px;min-height:52px;max-height:52px}
 .booking-cabinet .favorites-tabs .tab-btn{font-size:12px;padding-inline:5px}
}

/* Loading/filter changes must not move the private page's viewport or gutter. */
html:has(body.booking-cabinet){scrollbar-gutter:stable}
.booking-cabinet #account-booking-root{overflow-anchor:none}

/* Stable compact controls shared by the personal and work contexts. */
.booking-cabinet .ab-settings-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}
.booking-cabinet .ab-settings-heading h2{margin:0}
.booking-cabinet .ab-settings-heading .ab-logout-icon{display:grid;place-items:center;flex:none;width:36px;height:36px;min-height:36px;padding:8px;border:0;border-radius:10px;color:#9c7948;background:#f6f2eb;box-shadow:none}
.booking-cabinet #tab-account-profile>.ab-logout-icon{display:none}
.booking-cabinet #tab-account-profile{padding-bottom:0;margin-bottom:0;min-height:0}
.booking-cabinet #tab-account-profile .account-panel:last-child{margin-bottom:0}
.booking-cabinet .ab-content:has(.ab-settings-heading){padding-bottom:0}
.booking-cabinet .ab-team-history,.booking-cabinet .ab-team-history .ab-notice{border:0;box-shadow:none}
.booking-cabinet .ab-team-screen .ab-staff-permissions{border:0;min-inline-size:0;width:100%;box-sizing:border-box}
.booking-cabinet .ab-team-screen .ab-staff-permissions input,.ab-team-permissions-dialog .ab-staff-permissions input{accent-color:#343d48;width:19px;height:19px;opacity:1;flex:none}
.ab-team-permissions-dialog{box-sizing:border-box;width:min(480px,calc(100vw - 28px));max-height:calc(100dvh - 28px);margin:auto;padding:20px;border:0;border-radius:20px;background:#fff;color:#303942;box-shadow:0 16px 60px #25303e24;overflow:auto}
.ab-team-permissions-dialog::backdrop{background:#26334555;backdrop-filter:blur(2px)}
.ab-access-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.ab-access-heading h2{margin:0;font-size:19px}
.ab-access-heading .ab-icon{border:0;background:none;width:32px;height:32px;padding:6px;box-shadow:none}
.ab-access-heading svg{width:20px;height:20px}
.ab-team-permissions-dialog .ab-staff-permissions{display:grid;gap:12px;padding:14px;border:0;border-radius:14px;background:#f3f4f6;min-inline-size:0;margin:0}
.ab-team-permissions-dialog .ab-staff-permissions label{display:flex;align-items:center;gap:10px;font-size:14px;line-height:1.4}
.ab-access-form>.ab-muted{font-size:13px;line-height:1.5;margin-bottom:14px}
.ab-access-form [data-access-error]{font-size:13px;line-height:1.5;color:#a23f35}
.ab-access-footer{display:flex;justify-content:flex-end;margin-top:16px}
.ab-access-footer button{padding:10px 18px;border:0;border-radius:12px;background:#25282d;color:#fff;font:inherit}
.booking-cabinet .ab-more-menu{box-sizing:border-box;max-width:720px;width:calc(100% - 16px);margin:8px auto 4px;padding:5px;border:0;border-radius:14px;background:#f3f4f6}
.booking-cabinet .ab-more-menu button{min-height:42px;padding:9px 10px;font-size:13px;box-shadow:none}
.booking-cabinet .ab-more-menu button:hover,.booking-cabinet .ab-more-menu button[aria-current=page]{box-shadow:none}
@media(max-width:768px){
 body.booking-cabinet .account-booking .ab-cabinet-top .ab-context{gap:0;padding:2px;border:0;border-radius:11px;background:#eef0f2;flex:none}
 body.booking-cabinet .account-booking .ab-cabinet-top .ab-context button{font-size:15px;line-height:1.3;min-height:34px;padding:7px 9px;border:0;border-radius:9px;box-shadow:none;white-space:nowrap}
 body.booking-cabinet .account-booking .ab-cabinet-top .ab-context button[aria-pressed=true]{background:#fff;color:#24282e;box-shadow:none}
 .booking-cabinet .ab-more-menu button{font-size:11px;min-height:54px;padding:7px 3px}
}
@media(max-width:768px){
 body.booking-cabinet .account-booking .ab-cabinet-top .ab-head{grid-template-columns:max-content minmax(0,1fr);column-gap:6px}
 body.booking-cabinet .account-booking .ab-cabinet-top .ab-head-actions{justify-self:end;min-width:0}
}
@media(max-width:380px){
 body.booking-cabinet .account-booking .ab-cabinet-top .ab-head-actions{--ab-header-icon-size:30px;gap:0}
 body.booking-cabinet .account-booking .ab-cabinet-top .ab-head-actions>.ab-icon{height:38px;min-height:38px;padding:5px}
 body.booking-cabinet .account-booking .ab-cabinet-top .ab-head-actions>.ab-icon svg{width:19px;height:19px}
 body.booking-cabinet .account-booking .ab-cabinet-top .ab-context button{padding-inline:8px}
}

.booking-cabinet .ab-team-screen [data-ab-action$="-permissions"]{width:32px;min-width:32px;height:32px;min-height:32px;padding:7px;border:0;background:transparent;box-shadow:none}
.booking-cabinet .ab-team-screen [data-ab-action$="-permissions"] svg{width:18px;height:18px}

/* Keep the usual bar size while allowing enlarged accessibility text to fit. */
.booking-cabinet .ab-nav,.booking-cabinet .ab-nav>button{height:auto;max-height:none}
.booking-cabinet .ab-nav>.ab-more-toggle{flex-wrap:nowrap}
.ab-staff-permissions .ab-permission-help{display:block;margin-top:4px;color:#67717d;font-size:11px;line-height:1.45;font-weight:400}
.booking-cabinet .ab-team-history-disclosure{margin-top:20px}
.booking-cabinet .ab-team-screen .ab-collab-status .ab-actions{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:6px}
@media(max-width:768px){
 .booking-cabinet .ab-team-screen .ab-collab-status{padding-left:0;width:100%;min-width:0}
 .booking-cabinet .ab-team-screen .ab-collab-status .ab-actions{display:flex;flex-wrap:nowrap;align-items:stretch;gap:6px;max-width:100%;margin:0}
 .booking-cabinet .ab-team-screen .ab-collab-status .ab-actions>.ab-action:not(.ab-icon):not([data-ab-action$="-permissions"]){flex:0 1 auto;min-width:0;min-height:40px;font-size:12px;padding:8px 10px}
 .booking-cabinet .ab-team-screen .ab-collab-status .ab-actions>[data-ab-action$="-permissions"]{flex:0 0 40px;width:40px;min-width:40px;height:auto;min-height:40px;padding:8px;border:0;align-self:stretch}
 .booking-cabinet .ab-team-screen .ab-collab-status .ab-actions>[data-ab-action$="-permissions"] svg{width:22px;min-width:22px;max-width:none;height:22px;flex-shrink:0}
 .booking-cabinet .ab-team-screen .ab-actions:has(>[data-ab-action$="-permissions"]){flex-direction:row;flex-wrap:nowrap;align-items:stretch}
 .booking-cabinet .ab-team-screen .ab-actions>[data-ab-action$="-permissions"]{flex:0 0 40px;width:40px;min-width:40px;height:auto;min-height:40px;padding:8px;border:0;align-self:stretch}
 .booking-cabinet .ab-team-screen .ab-actions>[data-ab-action$="-permissions"] svg{width:22px;min-width:22px;max-width:none;height:22px;flex-shrink:0}
}

/* The permission editor lives outside the cabinet root; own its opaque surface. */
body.booking-cabinet dialog.ab-team-permissions-dialog{--ab-surface:#fff;--ab-line:#e5e7eb;--ab-muted:#69727d;box-sizing:border-box;width:min(480px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:calc(100dvh - 32px);padding:20px;border:0;border-radius:20px;background:#fff;color:#303942;opacity:1;isolation:isolate}
body.booking-cabinet .ab-team-permissions-dialog .ab-access-heading{display:flex;align-items:center;gap:12px;margin-bottom:16px}
body.booking-cabinet .ab-team-permissions-dialog .ab-access-heading h2{flex:1;margin:0;font-size:19px;line-height:1.3;outline:0}
body.booking-cabinet .ab-team-permissions-dialog [data-access-close]{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;padding:7px;border:0;border-radius:50%;background:transparent;color:#737c86;box-shadow:none}
body.booking-cabinet .ab-team-permissions-dialog [data-access-close]:is(:hover,:active,:focus){border:0;background:transparent;box-shadow:none;transform:none}
body.booking-cabinet .ab-team-permissions-dialog [data-access-close]:focus:not(:focus-visible){outline:none}
body.booking-cabinet .ab-team-permissions-dialog .ab-staff-permissions{min-width:0;padding:14px;border:0;border-radius:14px;background:#f3f4f6;color:#303942}
body.booking-cabinet .ab-team-permissions-dialog .ab-staff-permissions label{min-width:0;color:#303942;font-size:14px;line-height:1.45}
body.booking-cabinet .ab-team-permissions-dialog .ab-permission-help{display:block;margin-top:4px;color:#67717d;font-size:12px;line-height:1.45}
