/* v16 cabinet refinements. This sheet is loaded only by /account.
 * Calendar, schedule, inbox and dialog geometry live in account-booking.css. */
.booking-cabinet { --ab-control-size:44px; --ab-border:#e5e7eb; }

/* The desktop 1480px shell limit includes its responsive side gutters. */
@media(min-width:769px){
 body.booking-cabinet #account-page > .booking-account-active { width:100%; max-width:1480px; padding-inline:24px; }
}
@media(min-width:1101px){
 body.booking-cabinet #account-page > .booking-account-active { padding-inline:clamp(32px,4vw,80px); }
}

/* One context switch, followed by the real identity and permitted actions. */
.booking-cabinet .booking-account-active { font-size:16px; line-height:1.5; }
.booking-cabinet .account-booking { padding-top:12px; }
.booking-cabinet .ab-utilities a { min-height:40px; }
.booking-cabinet .ab-utilities svg { width:17px; height:17px; flex:0 0 17px; }
.booking-cabinet .ab-head { gap:12px; margin-bottom:0; }
.booking-cabinet .ab-title-row h2 { letter-spacing:-.025em; }
.booking-cabinet .ab-context button { line-height:1.25; }
.booking-cabinet .ab-head-actions { display:flex; align-items:center; gap:12px; margin-left:auto; flex-shrink:0; }
.booking-cabinet .ab-head-actions .ab-icon { width:44px; height:44px; min-width:44px; background:transparent; border-color:transparent; box-shadow:none; }
.booking-cabinet .ab-head-actions .ab-icon svg { width:22px; height:22px; flex-basis:22px; }
.booking-cabinet .ab-head-actions .ab-inbox-toggle { color:#1a1a1a; }
.booking-cabinet .ab-select-wrap { min-width:0; flex:1 1 220px; max-width:510px; margin:0 0 0 auto; }
.booking-cabinet .ab-select-wrap select { min-width:0; width:100%; border:1px solid var(--ab-border); background:transparent; border-radius:12px; }
/* WebKit can include a native select's long selected label in page overflow. */
.booking-cabinet :is(#ab-provider,#ab-filter-workplace) { contain:paint; }
.booking-cabinet .ab-head .ab-user-name { display:block; }
.booking-cabinet .ab-language-setting .lang-button { align-self:flex-start; min-height:44px; }

/* Equal horizontal destinations retain their labels or accessible icon names. */
.booking-cabinet .ab-nav { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); }
.booking-cabinet .ab-nav > button { min-width:0; min-height:48px; line-height:1.5; font-weight:500; white-space:normal; }
.booking-cabinet .ab-nav > button .ab-nav-text { overflow-wrap:anywhere; }
.booking-cabinet .ab-nav > .ab-more-toggle { flex-wrap:wrap; }
.booking-cabinet .ab-nav > button[aria-current="page"] { font-weight:500; }
.booking-cabinet .ab-nav > button svg { color:inherit; }
.booking-cabinet .ab-nav > button[aria-current="page"] svg { color:#777; }

/* The shared calendar/schedule navigator keeps date browsing client-side. */
.booking-cabinet .ab-date-picker > .ab-date-native { inset:auto; top:100%; right:0; left:auto; width:1px; max-width:1px; height:1px; padding:0; opacity:0; clip-path:inset(50%); pointer-events:none; }
.booking-cabinet .ab-date-picker > .ab-date-native:focus-visible { top:calc(100% + 7px); width:200px; max-width:calc(100vw - 28px); height:44px; padding:9px 12px; opacity:1; clip-path:none; pointer-events:auto; z-index:95; border:1px solid var(--ab-border); border-radius:10px; background:#fff; box-shadow:0 8px 30px #17273826; }
.booking-cabinet .ab-date-picker:has(.ab-date-popover input:focus-visible) { outline:none; }
.booking-cabinet .ab-date-popover { position:absolute; top:calc(100% + 7px); left:-110px; width:304px; padding:14px; border:1px solid #dbe0e7; border-radius:16px; box-shadow:0 12px 50px #17273826; background:#fff; color:#1a1a1a; z-index:50; cursor:default; }
.booking-cabinet .ab-date-top { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.booking-cabinet .ab-date-year { display:flex; align-items:center; gap:8px; margin:0; font-size:14px; font-weight:400; line-height:1.5; }
.booking-cabinet .ab-date-popover .ab-date-year input { position:static; inset:auto; width:90px; min-width:0; max-width:90px; height:44px; min-height:44px; padding:11px 13px; opacity:1; border:1px solid #e5e7eb; border-radius:12px; background:#fff; color:#1a1a1a; font-size:16px; line-height:1.5; cursor:text; }
.booking-cabinet .ab-date-navigator { width:100%; padding:0; border:0; }
.booking-cabinet .ab-date-month-head { display:flex; align-items:center; justify-content:space-between; gap:8px; margin:12px 0; }
.booking-cabinet .ab-date-month-head > b { font-size:13px; font-weight:500; line-height:1.5; text-transform:capitalize; }
.booking-cabinet .ab-date-month-head > div { display:flex; }
.booking-cabinet .ab-date-popover .ab-icon { width:42px; min-width:42px; height:42px; min-height:42px; flex:0 0 42px; padding:9px; border:0; border-radius:10px; background:transparent; color:#31343a; box-shadow:none; }
.booking-cabinet .ab-date-popover .ab-icon svg { width:20px; height:20px; }
.booking-cabinet .ab-date-weekdays,.booking-cabinet .ab-date-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:2px; }
.booking-cabinet .ab-date-weekdays { margin-bottom:7px; }
.booking-cabinet .ab-date-weekdays > span { font-size:11px; font-weight:400; line-height:1.5; text-align:center; color:#a4aab2; }
.booking-cabinet .ab-date-days > button { width:100%; min-width:0; min-height:40px; padding:revert; border:0; border-radius:8px; background:transparent; color:#636e7b; font-size:14px; font-weight:500; line-height:1.5; }
.booking-cabinet .ab-date-days > .is-outside { color:#c0c5cd; }
.booking-cabinet .ab-date-days > .is-today { color:#b47a52; font-weight:600; }
.booking-cabinet .ab-date-days > .is-selected { background:#292c30; color:#fff; font-weight:500; }
.booking-cabinet .ab-date-popover button:focus-visible { outline:2px solid var(--accent); outline-offset:1px; }
@media(max-width:768px){
 .booking-cabinet .ab-date-popover { position:fixed; top:170px; left:50%; transform:translateX(-50%); width:min(304px,calc(100vw - 28px)); max-height:calc(100dvh - 220px); overflow:auto; z-index:90; }
 .booking-cabinet .ab-date-popover .ab-icon { width:44px; min-width:44px; height:44px; min-height:44px; flex-basis:44px; padding:10px; }
 .booking-cabinet .ab-date-month-head { gap:3px; }
 .booking-cabinet .ab-date-month-head > b { font-size:12px; }
 .booking-cabinet .ab-date-days > button { min-height:44px; }
}
.booking-cabinet .ab-more-menu { padding:12px; border-top:1px solid var(--ab-border); border-bottom:0; }
.booking-cabinet .ab-more-menu button { gap:8px; border-radius:0; box-shadow:none; }
.booking-cabinet .ab-more-menu button[aria-current="page"] { text-decoration:underline; text-underline-offset:6px; }
.booking-cabinet .ab-more-menu button svg { width:22px; height:22px; flex:0 0 22px; }
.booking-cabinet .ab-more-menu .ab-feedback-link { font-size:13px; color:var(--ab-muted); }
.booking-cabinet .ab-more-menu .ab-booking-copy { justify-content:flex-start; font-size:13px; color:var(--ab-muted); }
.booking-cabinet .ab-inbox-badge { top:-5px; right:-5px; display:grid; place-items:center; min-width:18px; height:18px; padding:0 4px; border:2px solid var(--bg); border-radius:10px; background:#d18150; color:#fff; font-size:10px; font-weight:600; line-height:1.5; font-variant-numeric:normal; }

/* Computed cabinet controls: the cabinet overrides the prototype's base .btn. */
.booking-cabinet .ab-action { min-height:44px; padding:9px 14px; border-radius:10px; border-color:#dedfe2; background:#fff; color:#31343a; font-size:13px; font-weight:500; line-height:1.3; box-shadow:0 2px 6px #18232f05; }
.booking-cabinet .ab-action--primary { border-color:#111; background:#111; color:#fff; }
.booking-cabinet .ab-action--ghost { border-color:transparent; background:transparent; color:#555c66; box-shadow:none; }
.booking-cabinet .ab-action--danger { border-color:#e8caca; background:var(--surface); color:#913f3f; box-shadow:none; }
.booking-cabinet .ab-action--icon { width:44px; height:44px; min-width:44px; padding:0; }
.booking-cabinet .ab-action svg { flex-shrink:0; fill:none; }

/* The review action shares a compact, nonwrapping footer with the visit date. */
.booking-cabinet .ab-review-prompt { display:grid; grid-template-columns:24px minmax(0,1fr); gap:8px 12px; align-items:center; border-left:2px solid #d18150; }
.booking-cabinet .ab-review-prompt > div { min-width:0; }
.booking-cabinet .ab-review-icon { display:grid; place-items:center; width:24px; height:24px; }
.booking-cabinet .ab-review-icon svg { width:22px; height:22px; }
.booking-cabinet .ab-review-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:nowrap; }
.booking-cabinet .ab-review-footer time { display:block; min-width:0; margin:6px 0 0; line-height:1.5; }
.booking-cabinet .ab-review-footer .ab-review-rate-button { width:auto; min-width:0; min-height:36px; flex:0 0 auto; padding:6px 12px; border-color:#d5d9de; background:transparent; color:#31343a; line-height:20px; white-space:nowrap; box-shadow:none; }

/* Existing account actions and public contact handlers retain their contracts. */
.booking-cabinet .account-card__actions { justify-content:flex-end; }
.booking-cabinet [data-account-logout] { background:#f29a61; color:#1a1a1a; border:1px solid transparent; min-height:44px; }
.booking-cabinet a[href^="mailto:"] { overflow-wrap:anywhere; }
.booking-cabinet .ab-provider-contacts { font-size:13px; line-height:1.7; margin-top:10px; overflow-wrap:anywhere; }
.booking-cabinet .ab-provider-contacts a { color:#1d4ed8; text-decoration:underline; text-underline-offset:3px; display:inline-flex; align-items:center; min-height:44px; min-width:44px; padding-block:4px; }
.booking-cabinet :is(button,a,input,select,textarea):focus-visible { outline:2px solid #1d4ed8; outline-offset:3px; }

/* Settings use the v16 card hierarchy around the existing independent forms. */
.booking-cabinet #tab-account-profile.booking-legacy-visible { display:grid!important; grid-template-columns:minmax(0,1fr); gap:20px; align-items:stretch; margin-top:24px; }
.booking-cabinet #tab-account-profile.booking-legacy-visible > :is(#account-profile-form,.ab-settings-language,.ab-business-settings,.ab-settings-data-card) { min-width:0; width:100%; margin:0; padding:22px 24px; border:1px solid #eceef0; border-radius:16px; background:#fff; box-shadow:0 3px 16px #18233304; }
.booking-cabinet #tab-account-profile.booking-legacy-visible > #account-profile-form { grid-column:auto; grid-row:auto; order:1; max-width:none; }
.booking-cabinet #tab-account-profile.booking-legacy-visible > .ab-settings-language { order:2; max-width:none; }
.booking-cabinet #tab-account-profile.booking-legacy-visible > .ab-business-settings { grid-column:1/-1; order:3; max-width:960px; }
.booking-cabinet #tab-account-profile.booking-legacy-visible > .ab-settings-data-card { grid-column:1/-1; order:4; max-width:960px; }
.booking-cabinet .ab-settings-data-card:has(#account-data-request-open[hidden]) { display:none; }
.booking-cabinet .ab-settings-card-head { display:flex; align-items:center; gap:12px; margin-bottom:18px; }
.booking-cabinet .ab-settings-card-head > svg { width:20px; height:20px; flex:0 0 20px; color:#bd8d6f; }
.booking-cabinet .ab-settings-card-head > div { min-width:0; flex:1; }
.booking-cabinet .ab-settings-card-head h3 { margin:0; font-size:16px; font-weight:600; line-height:1.5; }
.booking-cabinet .ab-settings-card-head p { margin:5px 0 0; color:#8a929c; font-size:12px; line-height:1.5; }
.booking-cabinet .ab-settings-intro { margin:8px 0 0; font-size:13px; line-height:1.5; }
.booking-cabinet #account-profile-form .ab-settings-publications-link { background:transparent; border-color:transparent; box-shadow:none; color:var(--ab-muted); }
.booking-cabinet #account-profile-form .account-grid { gap:16px; }
.booking-cabinet #account-profile-form .account-grid > .form-group:has(:is(#account-name,#account-city)) { grid-column:1/-1; }
.booking-cabinet #account-profile-form .form-label,
.booking-cabinet .ab-settings-language .form-label { font-size:13px; font-weight:400; line-height:1.5; color:#646b74; }
.booking-cabinet #account-profile-form :is(.form-input,.form-select),
.booking-cabinet .ab-settings-language .ab-notice-preferences-form select { min-height:44px; padding:11px 13px; border:1px solid #e5e7eb; border-radius:12px; font-size:14px; line-height:1.5; }
.booking-cabinet #account-profile-form .account-password-section { margin-top:24px; }
.booking-cabinet #account-profile-form .account-password-section h3 { font-size:16px; }
.booking-cabinet #account-profile-form > .account-card__actions { margin-top:20px; justify-content:flex-start; }
.booking-cabinet .ab-settings-language .ab-language-setting { display:grid; gap:6px; margin-bottom:20px; }
.booking-cabinet .ab-settings-language .ab-language-setting .lang-button { width:100%; justify-content:flex-start; background:#fff; min-height:44px; padding:11px 13px; border:1px solid #e5e7eb; border-radius:12px; font-size:14px; line-height:1.5; }
.booking-cabinet .ab-settings-language .lang-button__flag { display:none; }
.booking-cabinet .ab-settings-language .lang-button__code { font-weight:400; }
.booking-cabinet .ab-settings-language .lang-button::after { content:""; width:6px; height:6px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg); margin-left:auto; }
.booking-cabinet .ab-settings-language #account-booking-notice-settings { max-width:none; padding:0; }
.booking-cabinet .ab-settings-language #account-booking-notice-settings > .ab-title-row { display:none; }
.booking-cabinet .ab-settings-language .ab-notice-preferences-scope { margin:0 0 14px; }
.booking-cabinet .ab-settings-profile-actions { gap:20px; margin-top:16px; }
.booking-cabinet .ab-settings-profile-links { display:flex; gap:24px; flex-wrap:wrap; margin-top:20px; padding-top:16px; border-top:1px solid #eceef0; }
.booking-cabinet .ab-settings-profile-links .ab-action { gap:8px; padding:0; color:#7b8795; font-size:13px; }
.booking-cabinet .ab-settings-profile-links .ab-action svg { width:16px; height:16px; flex-basis:16px; }
.booking-cabinet .ab-settings-data-card > p { margin:0 0 14px; }
.booking-cabinet .ab-settings-data-card #account-data-request-open { padding:9px 0; border-color:transparent; background:transparent; box-shadow:none; text-align:left; }
.booking-cabinet .ab-settings-data-card #account-data-request-panel { max-width:none; margin-top:20px; padding:0; }
.booking-cabinet .ab-settings-data-card #account-data-request-panel > :is(h3,p):first-child,
.booking-cabinet .ab-settings-data-card #account-data-request-panel > h3 + p { display:none; }
.booking-cabinet .booking-account-active:has(> #tab-account-profile.booking-legacy-visible) .ab-content > .ab-controls .ab-action { min-height:36px; padding:6px 0; border-color:transparent; background:transparent; box-shadow:none; color:var(--ab-muted); }

/* Real roster and workplace rows share the measured v16 person-row geometry. */
.booking-cabinet .ab-team-list { max-width:none; border-top:0; }
.booking-cabinet .ab-team-row.ab-team-member { flex-wrap:nowrap; padding:17px 0; gap:12px; }
.booking-cabinet .ab-team-avatar { display:grid; place-items:center; width:48px; height:48px; min-width:48px; flex:0 0 48px; border-radius:50%; background:#e9ebee; color:#626872; font-size:16px; font-weight:500; }
.booking-cabinet .ab-team-member > .ab-team-copy { flex:1; }
.booking-cabinet .ab-team-member .ab-team-copy strong { font-size:16px; font-weight:500; line-height:1.5; }
.booking-cabinet .ab-team-member .ab-team-copy span { font-size:13px; line-height:1.5; }
.booking-cabinet .ab-place-row { display:flex; align-items:center; gap:12px; padding:17px 0; }
.booking-cabinet .ab-place-icon { flex:0 0 22px; color:var(--text-primary); }
.booking-cabinet .ab-place-icon svg { display:block; width:22px; height:22px; }
.booking-cabinet .ab-place-list { max-width:none; }
.booking-cabinet .ab-place-copy { flex:1; min-width:0; }
.booking-cabinet .ab-place-copy h3 { font-size:16px; font-weight:500; line-height:1.5; margin:0; }
.booking-cabinet .ab-place-copy p { margin:4px 0 0; font-size:13px; line-height:1.5; }
.booking-cabinet .ab-place-row > .ab-actions { flex-shrink:0; }
.booking-cabinet .ab-place-footer { margin-top:16px; }

@media(min-width:1101px){
 .booking-cabinet #tab-account-profile.booking-legacy-visible { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(min-width:769px){
 .booking-cabinet .ab-head-actions .ab-inbox-toggle { width:42px; height:42px; min-width:42px; min-height:42px; flex-basis:42px; }
}

@media(max-width:768px){
 .booking-cabinet .account-booking { padding-bottom:calc(115px + env(safe-area-inset-bottom)); }
 .booking-cabinet .ab-utilities { display:none; }
 .booking-cabinet .ab-head { grid-template-columns:minmax(0,1fr) 44px 44px; gap:10px; }
 .booking-cabinet .ab-head .ab-context { grid-column:1; grid-row:1; justify-self:start; gap:12px; margin:0; }
 .booking-cabinet .ab-head .ab-context button { padding:10px 14px; font-size:14px; }
 .booking-cabinet .ab-head-actions { display:contents; }
 .booking-cabinet .ab-head .ab-settings-toggle,
 .booking-cabinet .ab-head .ab-statistics-toggle { grid-column:2; grid-row:1; margin:0; }
 .booking-cabinet .ab-head .ab-inbox-toggle { grid-column:3; grid-row:1; margin:0; }
 .booking-cabinet .ab-head .ab-select-wrap,
 .booking-cabinet .ab-head .ab-user-name { grid-column:1/-1; grid-row:2; width:100%; max-width:none; margin:0; }
 .booking-cabinet .ab-nav > button { padding:12px 2px; gap:0; font-size:12px; }
 .booking-cabinet .ab-more-menu { padding:10px 0; }
 .booking-cabinet .ab-more-menu button { min-height:52px; padding:10px; }
 .booking-cabinet .ab-more-menu button svg { width:19px; height:19px; flex-basis:19px; }
 .booking-cabinet .ab-review-prompt { grid-template-columns:20px minmax(0,1fr); gap:8px; }
 .booking-cabinet .ab-review-icon { width:20px; }
 .booking-cabinet .ab-review-icon svg { width:20px; height:20px; }
 .booking-cabinet .ab-review-footer { margin-top:6px; }
 .booking-cabinet .ab-review-footer time { font-size:12px; }
 .booking-cabinet .ab-review-footer .ab-review-rate-button { min-height:38px; padding:7px 12px; line-height:18px; }
 .booking-cabinet #tab-account-profile.booking-legacy-visible > :is(#account-profile-form,.ab-settings-language,.ab-business-settings,.ab-settings-data-card) { padding:18px 16px; }
 .booking-cabinet .ab-team-row.ab-team-member { flex-wrap:wrap; }
 .booking-cabinet .ab-team-member > .ab-team-copy { flex-basis:calc(100% - 90px); }
 .booking-cabinet .ab-place-row { flex-wrap:wrap; }
 .booking-cabinet .ab-place-copy { flex-basis:calc(100% - 34px); }
 .booking-cabinet .ab-place-row > .ab-actions { margin-left:34px; min-width:0; max-width:calc(100% - 34px); flex:0 1 calc(100% - 34px); }
}
@media(prefers-reduced-motion:reduce){.booking-cabinet * { scroll-behavior:auto!important; }}

/* The cabinet capsule follows the final v16 geometry without changing public navigation. */
@media(max-width:768px) {
 .booking-cabinet .account-bottom-nav { left:12px; right:12px; width:calc(100% - 24px); max-width:440px; margin-inline:auto; transform:none; grid-template-columns:repeat(5,minmax(0,1fr)); font-size:16px; line-height:1.5; }
 .booking-cabinet .account-bottom-nav .account-bottom-nav__item { padding-inline:2px; }
 .booking-cabinet .account-bottom-nav .account-bottom-nav__item svg { width:23px; height:23px; max-width:none; }
 .booking-cabinet .account-bottom-nav .account-bottom-nav__item span { font-size:9px; }
 .booking-cabinet .account-bottom-nav .account-bottom-nav__item:nth-child(2) span { font-size:10px; }
}
