/* Shared visit stars are continuous, keyboard accessible and free of touch halos. */
.bridge-review-stars { display:flex; justify-content:center; gap:4px; margin:12px 0 18px; padding:0; border:0; min-width:0; }
.bridge-review-stars label { position:relative; display:grid; place-items:center; width:44px; height:44px; flex:0 0 44px; padding:4px; color:#b8bec6; cursor:pointer; }
.bridge-review-stars input { position:absolute; inset:0; width:100%; height:100%; min-height:0; margin:0; opacity:0; cursor:pointer; }
.bridge-review-stars span { display:block; pointer-events:none; }
.bridge-review-stars svg { display:block; width:30px; height:30px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.bridge-review-stars :is(label,input,span,svg) { -webkit-tap-highlight-color:transparent; box-shadow:none!important; filter:none; }
.bridge-review-stars label:has(input:checked),.bridge-review-stars label:has(~ label input:checked) { color:#e3a52c; }
.bridge-review-stars label:has(input:checked) svg,.bridge-review-stars label:has(~ label input:checked) svg { fill:currentColor; }
.bridge-review-stars label:has(input:focus-visible) { outline:1px solid #8b929c; outline-offset:1px; border-radius:8px; }
.booking-cabinet .ab-client-feedback-dialog .bridge-review-stars label:has(input:checked),.booking-cabinet .ab-client-feedback-dialog .bridge-review-stars label:has(~ label input:checked) { color:#e3a52c; }
.booking-cabinet .ab-client-feedback-dialog .bridge-review-stars label:has(input:checked) svg,.booking-cabinet .ab-client-feedback-dialog .bridge-review-stars label:has(~ label input:checked) svg { fill:currentColor; }
.booking-cabinet .ab-public-review-dialog { width:min(430px,calc(100vw - 24px)); max-width:calc(100vw - 24px); margin:auto; padding:0; border:0; border-radius:20px; box-shadow:0 16px 60px #17212e26; }
.booking-cabinet .ab-public-review-dialog .ab-dialog-inner { padding:20px; }
.booking-cabinet .ab-public-review-dialog .ab-dialog-heading { margin-bottom:8px; }
.booking-cabinet .ab-public-review-dialog h2 { font-size:20px; }
.booking-cabinet .ab-public-review-dialog .ab-form { gap:10px; }
.booking-cabinet .ab-public-review-dialog textarea { min-height:88px; font-size:16px; border:1px solid #e1e5ea; border-radius:12px; }
.booking-cabinet .ab-public-review-dialog .ab-actions { justify-content:flex-end; }
.booking-cabinet #ab-dialog.ab-public-review-dialog .ab-actions > [type=submit] { margin-left:auto; }
#guest-dialog[data-mode=review] { box-sizing:border-box; width:min(430px,calc(100vw - 24px)); max-height:calc(100dvh - 24px); margin:auto; padding:20px; border:0; border-radius:20px; box-shadow:0 16px 60px #17212e26; }
#guest-dialog[data-mode=review] textarea { min-height:88px; height:88px; border:1px solid #e1e5ea; border-radius:12px; font-size:16px; }
#guest-dialog[data-mode=review] .gb-actions { display:flex; justify-content:flex-end; }
#guest-dialog[data-mode=review] [type=submit] { margin-left:auto; }
.booking-cabinet .ab-client-search:focus-within { border-color:#c5cbd2; box-shadow:none; outline:none; }
.booking-cabinet .ab-client-search input:focus { outline:none; box-shadow:none; }
.ab-client-suggestions { position:absolute; z-index:90; inset:auto 0 auto 0; top:calc(100% + 5px); margin:0; padding:5px; background:#fff; border:1px solid #eceef1; border-radius:12px; box-shadow:0 7px 24px #20263015; max-height:240px; overflow:auto; }
.ab-client-suggestions[hidden] { display:none; }
.ab-client-suggestions [role=option] { display:flex; flex-direction:column; align-items:flex-start; width:100%; gap:2px; min-height:40px; padding:8px; border:0; border-radius:8px; color:#30353d; background:transparent; text-align:left; font:inherit; font-size:13px; }
.ab-client-suggestions [role=option][aria-selected=true],.ab-client-suggestions [role=option]:hover { background:#f3f4f6; }
.ab-client-suggestions small { color:#7b838e; font-size:11px; }
.booking-cabinet .ab-clients-toolbar .ab-client-search { position:relative; overflow:visible; }
body.ab-support-open { overflow:hidden; }

/* The directory narrows in place; its rows align with the search field. */
.booking-cabinet :is(.ab-client-directory,.ab-client-intro,.ab-content:has(.ab-client-directory) > .ab-pages) { width:100%; max-width:660px; }
.booking-cabinet .ab-client-directory [hidden] { display:none!important; }
.booking-cabinet .ab-review-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),320px)); gap:12px; align-items:start; max-width:100%; }
.booking-cabinet .ab-review-list > .ab-row.ab-review-row { display:block; min-width:0; width:100%; margin:0; padding:14px; border:0; border-radius:16px; background:#fff; box-shadow:0 3px 14px #2734470a; }
.booking-cabinet .ab-review-row :is(.ab-review-head,.ab-review-meta,p) { overflow-wrap:anywhere; }
.booking-cabinet .ab-review-row .ab-review-reply { border:0; border-radius:12px; background:#f5f6f8; padding:12px; }
.booking-cabinet :is(.ab-public-review-dialog,.ab-review-reply-dialog,.ab-review-dispute-dialog) { width:min(480px,calc(100vw - 24px)); border-radius:20px; }
.booking-cabinet .ab-public-review-dialog { width:min(430px,calc(100vw - 24px)); }
.booking-cabinet :is(.ab-public-review-dialog,.ab-review-reply-dialog,.ab-review-dispute-dialog) :is(.ab-form-footer,.ab-actions) { border:0; padding-top:0; }
.booking-cabinet .ab-review-reply-dialog .ab-form-footer { justify-content:flex-end; }
@media(min-width:769px) {
 .booking-cabinet .ab-calendar-toolbar #ab-filter-performer-v16-button { background:#fff; border-color:#e5e7eb; box-shadow:0 1px 5px #242c3814; }
}
@media(max-width:768px) {
 .booking-cabinet .ab-calendar-toolbar #ab-filter-performer-v16-button { background:transparent; border-color:transparent; box-shadow:none; justify-content:flex-start; gap:5px; }
 .booking-cabinet .ab-calendar-toolbar #ab-filter-performer-v16-button:is(:hover,:active,:focus) { background:transparent; box-shadow:none; }
 .booking-cabinet .ab-calendar-toolbar #ab-filter-performer { background-color:transparent; }
}
.booking-cabinet .ab-v16-select-option > span { min-width:0; flex:1; overflow-wrap:anywhere; }
@media(max-width:768px) {
 .booking-cabinet .ab-review-list { grid-template-columns:minmax(0,1fr); width:100%; }
}
html:has(body.ab-support-open) { scrollbar-gutter:stable; }
.booking-cabinet .ab-settings-data-card #account-data-request-panel { margin:0; padding:0; }
.ab-support-dialog { box-sizing:border-box; width:min(480px,calc(100vw - 24px)); max-height:calc(100dvh - 32px); margin:auto; padding:20px; color:#272c33; border:0; border-radius:20px; background:#fff; box-shadow:0 18px 64px #17212e2e; font:400 14px/1.5 var(--font-family); overflow:auto; }
.ab-support-dialog::backdrop { background:#17212e55; backdrop-filter:blur(2px); }
.ab-support-dialog header { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; }
.ab-support-dialog h2 { margin:0; font-size:20px; font-weight:600; outline:none; }
.ab-support-dialog button[data-request-close] { display:grid; place-items:center; width:36px; height:36px; padding:7px; border:0; background:transparent; color:#6e7782; }
.ab-support-dialog svg { width:20px; height:20px; }
.ab-support-dialog form { display:grid; gap:12px; }
.ab-support-dialog form label { display:grid; gap:6px; font-size:12px; color:#6b7480; }
.ab-support-dialog :is(select,textarea) { box-sizing:border-box; width:100%; min-width:0; padding:10px 12px; border:1px solid #e1e5ea; border-radius:12px; background:#fff; color:#292f37; font:400 16px/1.5 var(--font-family); }
:is(#account-data-request-panel,#account-support-portal) .ab-support-dialog textarea { min-height:90px; height:90px; resize:vertical; }
.ab-support-dialog :is(select,textarea):focus { outline:none; border-color:#aeb7c1; box-shadow:none; }
.ab-support-dialog .ab-request-send { display:flex; justify-content:flex-end; }
.ab-support-dialog .ab-request-send button { min-height:38px; padding:8px 16px; border-radius:11px; font-size:13px; }
.ab-support-dialog .ab-request-feedback { display:flex; align-items:center; gap:10px; font-size:12px; }
.ab-support-dialog .ab-request-feedback p:empty { display:none; }
.ab-support-dialog [data-request-retry] { margin-left:auto; border:0; border-radius:8px; padding:6px 10px; background:#f1f3f5; }
.ab-support-dialog [data-request-list] { max-height:200px; overflow:auto; margin-top:12px; }
:is(#account-data-request-panel,#account-support-portal) .ab-support-dialog .ab-data-request { margin:8px 0 0; padding:12px; border:0; border-radius:12px; background:#f5f6f8; font-size:13px; }
.ab-request-item-head { display:flex; align-items:baseline; justify-content:space-between; gap:8px; }
.ab-request-item-head strong { font-weight:500; }
.ab-request-item-head span,.ab-data-request time { color:#77818d; font-size:11px; }
.ab-data-request p { margin:6px 0 0; white-space:pre-wrap; overflow-wrap:anywhere; }
.ab-request-answer { margin-top:10px; }
.ab-request-answer strong { color:#5d6979; font-size:12px; }
.ab-request-empty { margin:0; color:#8a929b; font-size:12px; }
.ab-support-dialog nav { display:flex; justify-content:flex-end; gap:8px; margin-top:10px; }
.ab-support-dialog nav[hidden] { display:none; }
.ab-support-dialog nav button { display:grid; place-items:center; min-height:34px; width:34px; padding:6px; border:0; border-radius:9px; background:#f0f2f5; color:#697583; }
.booking-cabinet .ab-account-session [data-account-logout],body.account-screen [data-account-logout] { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:38px; padding:8px 13px; border:0; border-radius:11px; background:#f0f2f5; color:#65717f; font-size:13px; box-shadow:0 2px 8px #2026300a!important; }
.booking-cabinet .ab-review-footer { display:flex; align-items:center; gap:10px; }
.booking-cabinet .ab-review-footer > .ab-review-rate-button { margin-left:auto; }
.booking-cabinet .ab-inbox-row .ab-actions { margin-left:auto; justify-content:flex-end; }
.booking-cabinet .ab-settings-data-card #account-data-request-open { padding:8px 14px; border:0; border-radius:10px; background:#f0f2f5; color:#5c6979; box-shadow:0 2px 7px #2026300a!important; }
body.account-screen [data-account-logout] svg { width:16px; height:16px; }
.bridge-review-stars .ab-feedback-star-filled { display:none; }
.bridge-review-stars label:has(input:checked) .ab-feedback-star-outline,.bridge-review-stars label:has(~ label input:checked) .ab-feedback-star-outline { display:none; }
.bridge-review-stars label:has(input:checked) .ab-feedback-star-filled,.bridge-review-stars label:has(~ label input:checked) .ab-feedback-star-filled { display:block; }
.ab-support-dialog nav button[hidden] { display:none; }
.booking-cabinet #ab-dialog.ab-public-review-dialog .ab-actions > [type=submit],#guest-dialog[data-mode=review] .gb-actions > [type=submit] { flex:0 0 auto; width:auto; min-width:100px; }

@media(max-width:768px) { .booking-cabinet .ab-calendar-toolbar #ab-filter-performer-v16-button { padding:6px; gap:3px; font-size:10.5px; } .booking-cabinet .ab-calendar-toolbar #ab-filter-performer-v16-button > svg { width:10px; height:10px; flex:0 0 10px; } }

.booking-cabinet .ab-review-row { background:#fafaf9; }
.booking-cabinet .ab-review-score { color:#6b6255; background:#eeeae4; border-radius:9px; padding:3px 7px; }
.booking-cabinet .ab-review-row .ab-review-reply { background:#eef1f2; color:#424b53; }
.booking-cabinet .ab-review-reply-dialog > p:not([role="alert"]) { margin:12px 0 18px; padding:12px 14px; border-radius:12px; background:#f3f4f6; color:#515966; overflow-wrap:anywhere; }
.booking-cabinet .ab-review-reply-dialog textarea { background:#fcfcfb; border-color:#e1e4e7; border-radius:12px; }
/* The same centered support sheet is opened from settings and the top panel. */
:is(#account-data-request-panel,#account-support-portal) .ab-support-dialog { position:fixed; inset:0; margin:auto; height:fit-content; max-height:calc(100dvh - 32px); }
:is(#account-data-request-panel,#account-support-portal) .ab-support-dialog header { display:grid; grid-template-columns:36px minmax(0,1fr) 36px; align-items:center; }
:is(#account-data-request-panel,#account-support-portal) .ab-support-dialog header h2 { grid-column:2; text-align:center; font-size:18px; }
:is(#account-data-request-panel,#account-support-portal) .ab-support-dialog [data-request-close] { grid-column:3; }
.ab-support-dialog .ab-request-upload { display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; }
.ab-request-upload button { display:inline-flex; align-items:center; gap:6px; padding:7px 10px; border:0; border-radius:9px; background:#f0f2f5; color:#697483; font-size:12px; }
.ab-request-upload small { color:#8a929c; font-size:11px; line-height:1.4; }
.ab-support-dialog [data-request-files] { display:grid; gap:6px; }
.ab-support-dialog [data-request-files]:empty { display:none; }
.ab-request-file { display:flex; align-items:center; gap:8px; min-width:0; padding:6px 8px; border-radius:9px; background:#f5f6f8; font-size:12px; }
.ab-request-file > span { min-width:0; flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ab-request-file small { flex:none; color:#8a929c; font-size:10px; }
.ab-request-file button { flex:none; display:grid; place-items:center; width:28px; height:28px; border:0; background:transparent; color:#78818e; font-size:20px; }
.ab-support-dialog .ab-request-download { display:block; max-width:100%; margin-top:7px; padding:5px 8px; border:0; border-radius:7px; background:#e9edf2; color:#5c6878; font-size:12px; text-overflow:ellipsis; overflow:hidden; white-space:nowrap; }
/* The form is opaque; only its backdrop softens the page underneath. */
:is(#account-data-request-panel,#account-support-portal) dialog.ab-support-dialog{background:#fff;opacity:1;color:#272c33;isolation:isolate;border:0;box-shadow:0 18px 64px #17212e2e}
:is(#account-data-request-panel,#account-support-portal) .ab-support-dialog button[data-request-close]{border:0;border-radius:50%;background:#f3f4f6;box-shadow:none;outline:0;color:#65717e}
:is(#account-data-request-panel,#account-support-portal) .ab-support-dialog button[data-request-close]:focus-visible{background:#e4e8ed;color:#242c36;outline:0;box-shadow:none}
