/* Private booking cabinet. One component rule group; ordered responsive states below. */

/* Private shell and shared tokens */
body.account-cabinet-loading > .header,
body.account-cabinet-loading #account-page > .container > :not(#account-initial-loading) { display:none !important; }
#account-initial-loading { min-height:40vh; display:grid; place-content:center; }
#account-initial-loading[hidden] { display:none; }
.booking-cabinet #account-booking-root[hidden] { display: none; }
.booking-cabinet .booking-account-active > .account-header { display: none; }
.booking-cabinet .booking-account-active > .account-tabs { display: none; }
.booking-cabinet .booking-account-active > .tab-content { display: none !important; }
.booking-cabinet .account-booking { --ab-line: var(--border); --ab-muted: var(--text-secondary); --ab-surface: var(--surface); color: var(--text-primary); font-family: var(--font-family); margin: 0 auto; --radius-btn: 10px; --radius-input: 12px; padding: 16px 0 28px; min-width: 0; }
.booking-cabinet .account-booking * { box-sizing: border-box; }
.booking-cabinet .account-booking *::before { box-sizing: border-box; }
.booking-cabinet .account-booking *::after { box-sizing: border-box; }
.booking-cabinet .account-booking button { font-family: inherit; cursor: pointer; }
.booking-cabinet .account-booking select { font-family: inherit; }
.booking-cabinet .account-booking input { font-family: inherit; }
.booking-cabinet .account-booking textarea { font-family: inherit; }
.booking-cabinet .account-booking button:disabled { opacity: .56; cursor: wait; }
.booking-cabinet .ab-content { min-width: 0; }
.booking-cabinet .ab-content:has(.ab-calendar-toolbar,.ab-schedule-toolbar) { position:relative; }
.booking-cabinet .ab-calendar-meta { position:relative; }
.booking-cabinet .ab-calendar-refresh { position:absolute; top:0; right:0; z-index:35; padding:1px 4px; border-radius:4px; background:var(--bg); color:var(--ab-muted); font-size:11px; pointer-events:none; }
.booking-cabinet .ab-calendar-preview { position:fixed; z-index:160; width:310px; max-width:calc(100vw - 16px); max-height:min(380px,calc(100dvh - 16px)); overflow:auto; padding:14px; border:1px solid var(--ab-line); border-radius:12px; background:var(--surface); color:var(--text-primary); box-shadow:0 8px 28px #18243326; font-size:13px; line-height:1.4; }
.booking-cabinet .ab-calendar-preview-visit + .ab-calendar-preview-visit { border-top:1px solid var(--ab-line); margin-top:12px; padding-top:12px; }
.booking-cabinet .ab-calendar-preview time,.booking-cabinet .ab-calendar-preview small { display:block; font-size:12px; color:var(--ab-muted); }
.booking-cabinet .ab-calendar-preview-name { display:flex; align-items:baseline; gap:6px; margin:8px 0 4px; }
.booking-cabinet .ab-calendar-preview-name strong { min-width:0; overflow-wrap:anywhere; font-size:14px; }
.booking-cabinet .ab-calendar-preview .ab-calendar-rating { flex:none; color:#426b56; }
.booking-cabinet .ab-calendar-preview p { margin:4px 0 8px; overflow-wrap:anywhere; }
.booking-cabinet .ab-calendar-preview small { margin-top:6px; }
.booking-cabinet .ab-calendar-preview .ab-status { padding:3px 7px; font-size:11px; }
.booking-cabinet #ab-wp-conflicts p { font-size: 13px; overflow-wrap: anywhere; }
body.booking-cabinet > .header { display: none; }
body.booking-cabinet > .footer { display: none; }
body.booking-cabinet #account-page { padding: 0; }
body.booking-cabinet #account-page > .booking-account-active { width: 92%; max-width: 1480px; margin-inline: auto; }
body.booking-cabinet #account-page > .booking-account-active:has(> .account-booking) { width:100%; max-width:none; padding-inline:16px; }
.booking-cabinet .booking-account-active { --ab-line: var(--border); --ab-muted: var(--text-secondary); --ab-surface: var(--surface); --radius-btn: 10px; --radius-input: 12px; color: var(--text-primary); font-family: var(--font-family); }
.booking-cabinet .ab-visit-when { color: var(--ab-muted); font-variant-numeric: tabular-nums; }
.booking-cabinet .ab-status { display: inline-flex; align-items: center; max-width: 100%; padding: 5px 10px; border-radius: 99px; font-size: 12px; line-height: 1.4; background: #ebf2fb; color: #315f83; }

/* Header, navigation and action components */
.booking-cabinet .ab-head { display: flex; align-items: center; gap: 12px; margin-bottom: 22px; }
.booking-cabinet .ab-head h1 { margin: 0; font-size: clamp(23px, 4vw, 28px); letter-spacing: -.025em; }
.booking-cabinet .ab-head p { margin: 4px 0 0; font-size: 13px; }
.booking-cabinet .ab-context { display: flex; flex: 0 0 auto; gap: 26px; border-bottom: 1px solid #e3e5e7; }
.booking-cabinet .ab-context button { min-height: 44px; border: 0; border-bottom: 2px solid transparent; border-radius: 0; padding: 10px 14px; background: transparent; color: #777d85; font-size: 14px; font-weight: 500; }
.booking-cabinet .ab-context button[aria-pressed="true"] { border-bottom-color: var(--accent); background: transparent; color: #202329; }
.booking-cabinet .ab-context button:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.booking-cabinet .ab-nav button:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.booking-cabinet .ab-action:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.booking-cabinet .account-booking[data-focus-mode="pointer"] :is(button,a,[tabindex]):focus { outline:none; }
.booking-cabinet .account-booking[data-focus-mode="keyboard"] :is(button,a,[tabindex]):focus { outline:2px solid #2563a6; outline-offset:2px; }
.booking-cabinet .ab-select-wrap { display: flex; flex: 1; min-width: 0; margin: 0 auto; gap: 8px; align-items: center; max-width: 580px; }
.booking-cabinet .ab-select-wrap label { font-size: 13px; color: var(--ab-muted); }
.booking-cabinet .ab-select-wrap select { min-height: 44px; border: 1px solid #e5e7eb; background: transparent; border-radius: 12px; padding: 10px 14px; color: var(--text-primary); font-size: 16px; flex: 1 1 auto; min-width: 0; width: 0; }
.booking-cabinet .ab-nav { display: flex; flex-wrap: wrap; align-items: stretch; gap: 0; border-bottom: 1px solid var(--ab-line); margin-bottom: 20px; position: sticky; top: 0; z-index: 25; background: var(--bg); }
.booking-cabinet .ab-nav > button { display: flex; flex: 1 0 auto; max-width: 100%; align-items: center; justify-content: center; gap: 8px; min-width: 44px; min-height: 51px; border: 0; border-bottom: 2px solid transparent; padding: 14px 8px; background: transparent; font-size: 14px; font-weight: 500; color: #656a72; line-height: 1.3; white-space: normal; }
.booking-cabinet .ab-nav-text { display: block; min-width: 0; text-align: center; text-wrap: balance; overflow-wrap: normal; hyphens: none; }
.booking-cabinet .ab-nav > button[aria-current="page"] { color: #222; border-bottom-color: var(--accent); }
.booking-cabinet .ab-nav > button[aria-current="page"]::after { display: none; }
.booking-cabinet .ab-nav-wrap { margin-bottom: 22px; position: sticky; top: 0; z-index: 25; background: var(--bg); }
.booking-cabinet .ab-nav-wrap .ab-nav { margin-bottom: 0; position: static; }
.booking-cabinet .ab-more-toggle { flex-wrap: nowrap; }
.booking-cabinet .ab-more-menu { position: static; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; padding: 12px 0; border-bottom: 1px solid var(--ab-line); }
.booking-cabinet .ab-more-menu[hidden] { display: none; }
.booking-cabinet .ab-more-menu button { display: flex; align-items: center; min-height: 48px; border: 0; text-align: left; padding: 12px; background: transparent; color: var(--text-primary); font-size: 14px; overflow-wrap: anywhere; border-radius: 8px; }
.booking-cabinet .ab-more-menu button:hover { background: var(--bg); }
.booking-cabinet .ab-more-menu button:focus-visible { background: var(--bg); outline: 2px solid var(--accent); outline-offset: -2px; }
.booking-cabinet .ab-head-actions { margin-left: auto; display: flex; flex: 0 0 auto; gap: 12px; }
.booking-cabinet .ab-icon { width: 44px; height: 44px; display: inline-flex; flex: 0 0 44px; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: 10px; color: #31343a; background: transparent; position: relative; min-width: 44px; max-width: 44px; min-height: 44px; padding: 0; box-shadow: none; }
.booking-cabinet .ab-icon svg { width: 20px; height: 20px; flex: 0 0 20px; pointer-events: none; }
.booking-cabinet .ab-pages { padding: 16px 0; }
.booking-cabinet .ab-title-row { display: flex; justify-content: space-between; gap: 12px; margin: 0 0 16px; flex-wrap: wrap; align-items: center; }
.booking-cabinet .ab-title-row h2 { margin: 0; font-size: 21px; font-weight: 600; line-height: 1.3; min-width: 0; overflow-wrap: anywhere; }
.booking-cabinet .ab-muted { color: var(--ab-muted); font-size: 13px; line-height: 1.5; }
.booking-cabinet .ab-link { color: var(--text-primary); text-decoration: underline; text-underline-offset: 3px; background: none; border: 0; }
.booking-cabinet .ab-action { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 1px solid #dedfe2; border-radius: 10px; background: #fff; color: #31343a; font-weight: 500; font-size: 13px; line-height: 1.4; text-align: center; min-width: 0; max-width: 100%; min-height: 44px; padding: 10px 14px; white-space: normal; overflow-wrap: anywhere; text-decoration: none; box-shadow: var(--shadow-xs); transition: background-color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast); }
.booking-cabinet .ab-action:hover { border-color: var(--border-hover); }
.booking-cabinet .ab-action--primary { background: var(--accent); color: white; border-color: var(--accent); }
.booking-cabinet .ab-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; min-width: 0; max-width: 100%; row-gap: 8px; }
.booking-cabinet .ab-controls { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; margin: 0 0 16px; }
.booking-cabinet .ab-controls .ab-action { min-height: 44px; }
.booking-cabinet .ab-controls .ab-select { background: var(--ab-surface); border: 1px solid var(--ab-line); color: var(--text-primary); border-radius: 10px; padding: 8px; min-height: 44px; max-width: 100%; min-width: 0; }
.booking-cabinet .ab-controls input[type="date"] { background: var(--ab-surface); border: 1px solid var(--ab-line); color: var(--text-primary); border-radius: 10px; padding: 8px; min-height: 44px; max-width: 100%; min-width: 0; }
.booking-cabinet .ab-segment { display: flex; padding: 0; border: 0; border-bottom: 1px solid #e3e5e7; border-radius: 0; background: transparent; max-width: 100%; gap: 14px; flex-wrap: wrap; }
.booking-cabinet .ab-segment button { padding: 10px 8px; min-height: 44px; background: transparent; border: 0; border-bottom: 2px solid transparent; color: var(--ab-muted); border-radius: 0; font-size: 14px; font-weight: 500; min-width: 0; white-space: normal; overflow-wrap: anywhere; }
.booking-cabinet .ab-segment button[aria-pressed="true"] { background: transparent; color: var(--text-primary); border-bottom-color: var(--accent); }
.booking-cabinet .ab-period { font-size: 14px; font-weight: 600; margin-left: auto; }
.booking-cabinet .ab-nav [aria-current="page"] { font-weight: 700; }
.booking-cabinet #ab-wp-conflicts .ab-action { display: inline-block; }
.booking-cabinet .ab-utilities { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; color: #626973; font-size: 14px; }
.booking-cabinet .ab-utilities a { display: inline-flex; align-items: center; gap: 7px; min-height: 44px; }
.booking-cabinet .ab-utilities > div { display: flex; gap: 12px; align-items: center; }
.booking-cabinet .ab-utilities .lang-button { min-height: 44px; }
.booking-cabinet .ab-nav svg { flex: 0 0 19px; width: 19px; height: 19px; color: #777; }
.booking-cabinet .ab-action--ghost { background: transparent; border-color: transparent; color: #555c66; padding: 10px 12px; font-size: 13px; box-shadow: none; }
.booking-cabinet .ab-user-name { margin-left: auto; min-width: 0; overflow-wrap: anywhere; font-size: 13px; }
.booking-cabinet .ab-user-name + .ab-head-actions { margin-left: 0; }
.booking-cabinet .account-booking > .ab-nav { position: sticky; top: 0; z-index: 25; background: var(--bg); }
.booking-cabinet .ab-select-wrap > .ab-action--icon { flex: 0 0 44px; }
.booking-cabinet .ab-action svg { width: 20px; height: 20px; flex: 0 0 20px; pointer-events: none; }
.booking-cabinet .ab-action > span:not(.sr-only) { min-width: 0; overflow-wrap: anywhere; }
.booking-cabinet .ab-action--icon { width: 44px; height: 44px; min-width: 44px; flex: 0 0 44px; padding: 0; overflow: visible; }
.booking-cabinet .ab-action--primary:hover { background: #242424; border-color: #242424; }
.booking-cabinet .ab-action--ghost:hover { background: var(--surface); border-color: var(--ab-line); }
.booking-cabinet .ab-icon:hover { background: var(--surface); border-color: var(--ab-line); }
.booking-cabinet .ab-action--danger { background: var(--surface); border-color: #e8caca; color: #913f3f; box-shadow: none; }
.booking-cabinet .ab-action--danger:hover { background: #f9ebeb; border-color: #d5aaaa; }
.booking-cabinet .ab-action:disabled { opacity: .5; cursor: not-allowed; box-shadow: none; }
.booking-cabinet .ab-icon:disabled { opacity: .5; cursor: not-allowed; box-shadow: none; }
.booking-cabinet .ab-action[aria-busy="true"] { opacity: .5; cursor: not-allowed; box-shadow: none; }
.booking-cabinet .ab-title-row h3 { margin: 0; font-size: 21px; font-weight: 600; line-height: 1.3; min-width: 0; overflow-wrap: anywhere; }
.booking-cabinet .ab-icon:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.booking-cabinet .ab-segment button:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }

/* Forms and states */
.booking-cabinet .ab-form { display: grid; gap: 15px; max-width: 580px; padding: 16px 0; width: 100%; min-width: 0; }
.booking-cabinet .ab-form-grid { display: grid; gap: 14px; grid-template-columns: repeat(2,minmax(0,1fr)); }
.booking-cabinet .ab-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.booking-cabinet .ab-field label { font-size: 12px; font-weight: 600; }
.booking-cabinet .ab-field input { padding: 9px 11px; width: 100%; background: var(--ab-surface); border: 1px solid var(--ab-line); border-radius: var(--radius-input); color: var(--text-primary); min-height: 44px; min-width: 0; max-width: 100%; font-size: 14px; }
.booking-cabinet .ab-field select { padding: 9px 11px; width: 100%; background: var(--ab-surface); border: 1px solid var(--ab-line); border-radius: var(--radius-input); color: var(--text-primary); min-height: 44px; min-width: 0; max-width: 100%; font-size: 14px; }
.booking-cabinet .ab-field textarea { padding: 9px 11px; width: 100%; background: var(--ab-surface); border: 1px solid var(--ab-line); border-radius: var(--radius-input); color: var(--text-primary); resize: vertical; min-width: 0; max-width: 100%; font-size: 14px; min-height: 90px; }
.booking-cabinet .ab-notice { border: 0; border-bottom: 1px solid var(--ab-line); padding: 12px 0; background: transparent; border-radius: 0; font-size: 13px; line-height: 1.6; }
.booking-cabinet .ab-toast { margin: 0 0 13px; padding: 10px 13px; border-radius: 10px; background: var(--ab-surface); border: 1px solid var(--ab-line); color: var(--text-primary); font-size: 13px; }
.booking-cabinet .ab-toast[hidden] { display: none; }
.booking-cabinet .ab-slots { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 7px; margin: 15px 0; }
.booking-cabinet .ab-slots button { min-height: 44px; padding: 9px 5px; font-variant-numeric: tabular-nums; }
.booking-cabinet .ab-slots [aria-pressed="true"] { color: var(--surface); background: var(--accent); border-color: var(--accent); }
.booking-cabinet .ab-rate-options { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 5px; border: 0; margin: 0; padding: 0; }
.booking-cabinet .ab-rate-options legend { font-size: 13px; font-weight: 600; margin-bottom: 10px; }
.booking-cabinet .ab-rate-options label { display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 49px; min-height: 55px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); font-size: 13px; cursor: pointer; }
.booking-cabinet .ab-rate-options label:has(input:checked) { border-color: var(--accent); background: var(--bg); }
.booking-cabinet .ab-rate-options input { width: 17px; height: 17px; min-height: 17px; margin: 0; accent-color: var(--accent); }
.booking-cabinet .ab-field input:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.booking-cabinet .ab-field select:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.booking-cabinet .ab-field textarea:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

/* Visits, personal overview and reviews */
.booking-cabinet .ab-stats { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); padding: 18px 24px; background: #fff; border: 0; border-bottom: 1px solid var(--ab-line); border-radius: 0; margin: 0 0 26px; }
.booking-cabinet .ab-stats > div { flex: 1 1 0; padding: 18px 22px; border-right: 1px solid var(--ab-line); min-width: 0; }
.booking-cabinet .ab-stats > div:last-child { border-right: none; }
.booking-cabinet .ab-stats strong { display: block; font-size: 30px; font-weight: 400; line-height: 1.2; font-variant-numeric: tabular-nums; }
.booking-cabinet .ab-stats span { display: block; font-size: 12px; line-height: 1.4; color: var(--ab-muted); margin-top: 6px; }
.booking-cabinet .ab-list { border-top: 1px solid var(--ab-line); min-width: 0; }
.booking-cabinet .ab-row { border-bottom: 1px solid var(--ab-line); padding: 14px 0; display: flex; gap: 14px; align-items: center; justify-content: space-between; min-width: 0; flex-wrap: wrap; }
.booking-cabinet .ab-row-main { min-width: 0; flex: 1; }
.booking-cabinet .ab-row-title { font-weight: 600; overflow-wrap: anywhere; }
.booking-cabinet .ab-row-sub { display: block; color: var(--ab-muted); font-size: 13px; overflow-wrap: anywhere; margin-top: 4px; }
.booking-cabinet .ab-row-time { flex: 0 0 auto; min-width: 84px; font-weight: 650; font-variant-numeric: tabular-nums; }
.booking-cabinet .ab-row-time small { display: block; font-weight: 400; }
.booking-cabinet .ab-row-status { display: inline-flex; width: fit-content; margin-top: 0; border: 0; border-radius: 99px; padding: 5px 10px; font-size: 12px; color: #315f83; background: #ebf2fb; }
.booking-cabinet .ab-row .ab-action { flex-shrink: 0; }
.booking-cabinet .ab-empty { text-align: center; border-bottom: 1px solid var(--ab-line); padding: 32px 12px; }
.booking-cabinet .ab-error { text-align: center; border-bottom: 1px solid var(--ab-line); padding: 32px 12px; }
.booking-cabinet .ab-empty h3 { font-size: 17px; margin: 0 0 7px; }
.booking-cabinet .ab-error h3 { font-size: 17px; margin: 0 0 7px; }
.booking-cabinet .ab-empty p { font-size: 13px; margin: 0 auto 15px; max-width: 440px; }
.booking-cabinet .ab-error p { font-size: 13px; margin: 0 auto 15px; max-width: 440px; }
.booking-cabinet .ab-visit-rating { display: inline-flex; font-size: 12px; font-weight: 600; margin-left: 8px; white-space: nowrap; color: var(--text-primary); }
.booking-cabinet .account-booking .ab-row-main p { overflow-wrap: anywhere; }
.booking-cabinet .ab-stats > button { display: block; min-width: 0; padding: 4px 16px; text-align: left; border: 0; border-right: 1px solid var(--ab-line); background: transparent; }
.booking-cabinet .ab-stats > button:last-child { border-right: 0; }
.booking-cabinet .ab-stats > button:last-child strong { color: #557867; }
.booking-cabinet .ab-today-date { margin: -10px 0 16px; }
.booking-cabinet .ab-review-prompt { display: grid; grid-template-columns: 24px minmax(0,1fr); gap: 8px 12px; align-items: center; max-width: 660px; margin: 14px 0 18px; padding: 14px 12px; border-left: 2px solid #d18150; background: #f7f5f2; }
.booking-cabinet .ab-review-icon svg { width: 19px; height: 19px; }
.booking-cabinet .ab-review-prompt p { margin: 0 0 5px; font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; }
.booking-cabinet .ab-review-prompt .ab-review-eyebrow { font-size: 12px; color: #a47756; }
.booking-cabinet .ab-review-prompt h3 { margin: 3px 0 5px; font-size: 17px; font-weight: 600; line-height: 1.3; }
.booking-cabinet .ab-review-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 8px; flex-wrap: wrap; }
.booking-cabinet .ab-review-footer time { color: #9298a0; font-size: 11px; }
.booking-cabinet .ab-review-footer .ab-action { padding: 6px 12px; flex-shrink: 0; background: transparent; border-color: #d5d9de; min-height: 44px; }
.booking-cabinet .ab-overview-grid { display: grid; grid-template-columns: minmax(0,1fr) 240px; gap: 24px; }
.booking-cabinet .ab-next-visit { display: block; padding: 16px 0; }
.booking-cabinet .ab-next-visit > div { min-width: 0; }
.booking-cabinet .ab-next-date { display: flex; gap: 8px; align-items: center; margin: 0 0 16px; font-size: 14px; color: #555c66; }
.booking-cabinet .ab-next-date svg { width: 17px; height: 17px; }
.booking-cabinet .ab-next-visit h2 { margin: 12px 0 10px; font-size: 23px; font-weight: 600; line-height: 1.3; overflow-wrap: anywhere; }
.booking-cabinet .ab-next-clock { display: flex; align-items: center; gap: 12px; margin: 0 0 10px; font-size: 16px; }
.booking-cabinet .ab-next-clock svg { width: 21px; height: 21px; }
.booking-cabinet .ab-next-visit .ab-muted { margin: 0 0 10px; }
.booking-cabinet .ab-next-visit .ab-actions { margin-top: 22px; }
.booking-cabinet .ab-next-visit .ab-action { min-width: 140px; flex: 0 1 auto; }
.booking-cabinet .ab-overview-links button { display: flex; align-items: center; width: 100%; min-height: 66px; gap: 12px; padding: 16px 0; text-align: left; border: 0; border-bottom: 1px solid var(--ab-line); background: transparent; }
.booking-cabinet .ab-overview-links button > svg { width: 21px; height: 21px; flex: 0 0 21px; }
.booking-cabinet .ab-overview-links button > span:nth-child(2) { flex: 1; min-width: 0; }
.booking-cabinet .ab-overview-links strong { display: block; font-size: 15px; font-weight: 500; }
.booking-cabinet .ab-overview-links small { display: block; margin-top: 3px; font-size: 13px; line-height: 1.5; color: var(--ab-muted); }
.booking-cabinet .ab-overview-links button > span:last-child { color: #999; }
.booking-cabinet .ab-visit-row { position: relative; display: grid; grid-template-columns: 60px minmax(0,1fr) auto; align-items: center; min-height: 76px; gap: 14px; padding: 12px; border-left: 3px solid #316b98; border-bottom-color: #e4e8ed; }
.booking-cabinet .ab-visit-row .ab-row-time { min-width: 0; font-size: 16px; font-weight: 600; line-height: 1.4; }
.booking-cabinet .ab-visit-row .ab-row-time small { margin-top: 2px; font-size: 12px; color: var(--ab-muted); }
.booking-cabinet .ab-visit-row .ab-row-title { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; font-weight: 500; font-size: 16px; line-height: 1.4; }
.booking-cabinet .ab-visit-row .ab-row-sub { font-size: 14px; line-height: 1.4; margin-top: 0; }
.booking-cabinet .ab-visit-row .ab-provider-contacts:empty { display: none; }
.booking-cabinet .ab-visit-row .ab-visit-rating { margin-left: 0; color: #426b56; background: #edf5ef; border-radius: 4px; padding: 2px 4px; }
.booking-cabinet .ab-visit-row .ab-row-main .ab-visit-rating { position: static; }
.booking-cabinet .ab-visit-tail { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; min-width: 0; max-width: 230px; }
.booking-cabinet .ab-visit-tail > .ab-row-status { max-width: 100%; min-width: 0; font-size: 13px; overflow-wrap: anywhere; }
.booking-cabinet .ab-visit-tail > .ab-actions { max-width: none; justify-content: flex-end; }
.booking-cabinet .ab-visit-details { box-shadow: none; background: transparent; border-color: transparent; }
.booking-cabinet .ab-status-pending { border-left-color: #d6953e; }
.booking-cabinet .ab-status-cancelled { border-left-color: #ad6262; }
.booking-cabinet .ab-status-no_show { border-left-color: #ad6262; }
.booking-cabinet .ab-status-pending .ab-visit-tail > .ab-row-status { background: #fff1dd; color: #84551d; }
.booking-cabinet .ab-row-status.ab-status-pending { background: #fff1dd; color: #84551d; }
.booking-cabinet .ab-status-cancelled .ab-visit-tail > .ab-row-status { background: #f9ebeb; color: #983d3d; }
.booking-cabinet .ab-status-no_show .ab-visit-tail > .ab-row-status { background: #f9ebeb; color: #983d3d; }
.booking-cabinet .ab-row-status.ab-status-cancelled { background: #f9ebeb; color: #983d3d; }
.booking-cabinet .ab-status-expired .ab-visit-tail > .ab-row-status { background: #eceef1; color: #666; }
.booking-cabinet .ab-status-completed .ab-visit-tail > .ab-row-status { background: #edf5ef; color: #426b56; }
.booking-cabinet .ab-result-task { display: flex; align-items: center; gap: 18px; padding: 16px 0; max-width: 660px; border-bottom: 1px solid var(--ab-line); margin: 0 0 14px; }
.booking-cabinet .ab-result-task > div { flex: 1; min-width: 0; }
.booking-cabinet .ab-result-task strong { font-size: 16px; }
.booking-cabinet .ab-result-task p { margin: 4px 0; font-size: 14px; overflow-wrap: anywhere; }
.booking-cabinet .ab-result-task .ab-action { flex-shrink: 0; }
.booking-cabinet .ab-review-row { display: block; padding: 20px 0; }
.booking-cabinet .ab-review-list { border-top: 0; }
.booking-cabinet .ab-review-head { display: flex; justify-content: space-between; gap: 12px; align-items: center; }
.booking-cabinet .ab-review-head strong { min-width: 0; font-size: 16px; font-weight: 700; line-height: 1.5; overflow-wrap: anywhere; }
.booking-cabinet .ab-review-score { flex-shrink: 0; font-size: 16px; line-height: 1.5; }
.booking-cabinet .ab-review-row p { margin: 10px 0 0; font-size: 15px; line-height: 1.5; overflow-wrap: anywhere; }
.booking-cabinet .ab-review-meta { font-size: 13px; line-height: 1.5; overflow-wrap: anywhere; }
.booking-cabinet .ab-review-reply { border-left: 2px solid #d3d6dc; background: #f1f2f4; padding: 13px; margin: 14px 0 0; border-radius: 0 10px 10px 0; font-size: 14px; line-height: 1.5; }
.booking-cabinet .ab-review-reply strong { font-size: 14px; }
.booking-cabinet .ab-review-reply p { margin: 10px 0 0; }
.booking-cabinet .ab-review-list > .ab-row.ab-review-row > .ab-actions { max-width: none; margin-top: 12px; gap: 10px; justify-content: flex-start; }
.booking-cabinet .ab-review-row > .ab-actions .ab-action { flex: 1; border-color: transparent; background: transparent; font-size: 12px; padding: 7px 0; box-shadow: none; }
.booking-cabinet .ab-row:not(.ab-visit-row) > .ab-actions { max-width: 48%; justify-content: flex-end; }
.booking-cabinet .ab-row-main p { overflow-wrap: anywhere; }

/* Dialog layout and visible contacts */
.booking-cabinet .ab-dialog { border: 1px solid #e0e6ed; background: var(--ab-surface); border-radius: 20px; color: var(--text-primary); font-size: 16px; line-height: 1.5; overflow-y: auto; overscroll-behavior: contain; box-shadow: 0 24px 90px #142c4940; width: min(620px,calc(100vw - 32px)); max-width: calc(100vw - 20px); max-height: calc(100dvh - 32px); margin: auto; padding: 24px; scroll-padding-block: 24px; }
.booking-cabinet .ab-dialog::backdrop { background: #15243866; backdrop-filter: blur(3px); }
.booking-cabinet .ab-dialog-inner { min-width: 0; padding: 22px; overflow-x: hidden; }
html:has(body.booking-cabinet .ab-dialog[open]) { overflow: hidden; }
.booking-cabinet .ab-dialog:focus { outline: none; }
.booking-cabinet .ab-dialog h2 { margin: 0 0 12px; font-size: 21px; }
.booking-cabinet .ab-dialog p { margin: 0 0 14px; font-size: 13px; }
.booking-cabinet .ab-dialog .ab-actions { justify-content: flex-start; }
.booking-cabinet .ab-dialog-error { margin-bottom: 14px !important; }
.booking-cabinet .ab-dialog .ab-row { padding: 10px 0; align-items: flex-start; }
.booking-cabinet .ab-dialog .ab-row strong { min-width: 0; max-width: none; flex: 1; overflow-wrap: anywhere; text-align: right; }
.booking-cabinet .ab-dialog .ab-form { max-width: none; }
.booking-cabinet .ab-dialog .ab-rate-options { margin: 10px 0; }
.booking-cabinet .ab-dialog-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.booking-cabinet .ab-dialog-heading h2 { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.booking-cabinet .ab-dialog-heading > .ab-action--icon { margin: -7px; border: 0; background: transparent; box-shadow: none; }
.booking-cabinet .ab-dialog-footer { display: grid; gap: 16px; padding-top: 16px; margin-top: 20px; border-top: 1px solid var(--ab-line); }
.booking-cabinet .ab-dialog .ab-form-footer { justify-content: flex-end; gap: 10px; padding-top: 16px; margin-top: 20px; border-top: 1px solid var(--ab-line); }
.booking-cabinet .ab-dialog .ab-form-footer > .ab-action { flex: 1; min-width: 130px; }
.booking-cabinet .ab-visit-main-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.booking-cabinet .ab-visit-main-actions .ab-action { flex: 0 1 auto; }
.booking-cabinet .ab-visit-danger { display: flex; justify-content: flex-start; }
.booking-cabinet .ab-visit-summary { padding: 0 0 16px; }
.booking-cabinet .ab-visit-summary h3 { font-size: 22px; line-height: 1.3; margin: 14px 0 8px; font-weight: 600; overflow-wrap: anywhere; }
.booking-cabinet .ab-status--pending { background: #fff1dd; color: #84551d; }
.booking-cabinet .ab-status--completed { background: #edf5ef; color: #426b56; }
.booking-cabinet .ab-status--cancelled { background: #f9ebeb; color: #983d3d; }
.booking-cabinet .ab-status--no_show { background: #f9ebeb; color: #983d3d; }
.booking-cabinet .ab-status--expired { background: #eceef1; color: #666; }
.booking-cabinet .ab-visit-details .ab-row { display: grid; grid-template-columns: minmax(0,.7fr) minmax(0,1fr); align-items: start; gap: 12px; padding: 12px 0; }
.booking-cabinet .ab-visit-details .ab-row strong { font-size: 14px; line-height: 1.5; font-weight: 500; justify-self: end; text-align: right; }
.booking-cabinet .ab-visit-tools { border-top: 1px solid var(--ab-line); margin-top: 16px; padding-top: 4px; }
.booking-cabinet .ab-visit-tools summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; font-size: 14px; font-weight: 500; }
.booking-cabinet .ab-service-translations summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; font-size: 14px; font-weight: 500; }
.booking-cabinet .ab-service-advanced summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; font-size: 14px; font-weight: 500; }
.booking-cabinet .ab-visit-tools .ab-actions { padding: 8px 0; }
.booking-cabinet .ab-service-translations { border-top: 1px solid var(--ab-line); padding: 4px 0; }
.booking-cabinet .ab-service-advanced { border-top: 1px solid var(--ab-line); padding: 4px 0; }
.booking-cabinet .ab-service-advanced > .ab-form-grid { padding: 12px 0; }
.booking-cabinet .ab-contact-switcher { display: grid; grid-template-columns: minmax(0,1fr) 44px; gap: 10px 12px; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--ab-line); min-width: 0; }
.booking-cabinet .ab-contact-channels { display: flex; flex-wrap: wrap; gap: 6px; grid-column: 1/-1; }
.booking-cabinet .ab-contact-channels .is-active { color: var(--accent); border-color: var(--accent); background: var(--bg); }
.booking-cabinet .ab-contact-value { display: grid; gap: 3px; min-width: 0; }
.booking-cabinet .ab-contact-value a { display: block; max-width: 100%; overflow-wrap: anywhere; font-size: 15px; font-weight: 500; color: var(--text-primary); line-height: 1.5; text-decoration: underline; text-underline-offset: 3px; }
.booking-cabinet .ab-contact-status { grid-column: 1/-1; margin: 0; max-width: 100%; min-width: 0; }
.booking-cabinet .ab-contact-manual { grid-column: 1/-1; margin: 0; max-width: 100%; min-width: 0; width: 100%; min-height: 44px; padding: 10px; border: 1px solid var(--ab-line); border-radius: 10px; }

/* Calendar views and live clock */
.booking-cabinet .ab-calendar { grid-template-columns: repeat(var(--ab-cols,7),minmax(90px,1fr)); display: grid; min-width: 0; }
.booking-cabinet .account-booking .ab-time-scroll { display: block; min-width: 0; width: calc(100% + 32px); margin-inline:-16px; overflow: auto; border: 0; border-block:1px solid var(--ab-line); border-radius: 0; background: var(--ab-surface); overscroll-behavior-x: contain; overscroll-behavior-y: auto; max-height: 650px; scroll-padding-top: 44px; isolation: isolate; scrollbar-width: thin; }
.booking-cabinet .ab-time-table { --ab-axis-width: 52px; --ab-day-min-width: 180px; width:100%; display: grid; grid-template-columns: var(--ab-axis-width) repeat(var(--ab-cols),minmax(var(--ab-day-min-width),1fr)); min-width: calc(var(--ab-axis-width) + var(--ab-cols) * var(--ab-day-min-width)); }
.booking-cabinet .ab-time-scroll--week .ab-time-table { --ab-day-min-width:0px; }
.booking-cabinet .ab-time-scroll--day .ab-time-table { --ab-appointment-width:min(100%,calc((100vw - var(--ab-axis-width)) / 7)); width:100%; min-width:calc(var(--ab-axis-width) + var(--ab-cols) * 248px); grid-template-columns:var(--ab-axis-width) repeat(var(--ab-cols),minmax(248px,1fr)); }
.booking-cabinet .ab-time-scroll--day .ab-time-heading { justify-content:flex-start; text-align:left; }
.booking-cabinet .ab-time-corner { position: sticky; top: 0; min-height: 44px; display: flex; align-items: center; font-size: 12px; border-right: 1px solid var(--ab-line); border-bottom: 1px solid var(--ab-line); left: 0; z-index: 14; padding: 10px 4px; justify-content: center; color: var(--ab-muted); background: #f6f8fa; font-weight: 400; }
.booking-cabinet .ab-time-heading { position: sticky; top: 0; z-index: 12; min-height: 44px; display: flex; align-items: center; padding: 10px 7px; font-size: 14px; border-right: 1px solid var(--ab-line); border-bottom: 1px solid var(--ab-line); background: #f6f8fa; font-weight: 400; overflow-wrap: anywhere; }
.booking-cabinet .ab-time-axis { position: sticky; left: 0; z-index: 8; background: var(--ab-surface); border-right: 1px solid var(--ab-line); box-shadow: 4px 0 8px #1e39520a; height: var(--ab-grid-height,1200px); }
.booking-cabinet .ab-hour-label { position: absolute; left: 8px; right: 0; font-size: 12px; line-height: 16px; padding-top: 8px; text-align: left; color: var(--ab-muted); font-variant-numeric: tabular-nums; }
.booking-cabinet .ab-time-column { position: relative; min-width: 0; border-right: 1px solid var(--ab-line); height: var(--ab-grid-height,1200px); background: repeating-linear-gradient(to bottom,var(--border) 0,var(--border) 1px,transparent 1px,transparent var(--ab-hour-height,120px)); }
.booking-cabinet .ab-time-event { position: absolute; display: flex; flex-direction: column; min-width: 0; border-radius: 5px; text-align: left; overflow: hidden; line-height: 1.2; gap: 1px; background: #fff; border: 1px solid #d6dde5; border-left: 3px solid #316b98; color: #253348; padding: 3px; border-left-color: #316b98; box-shadow: none; }
.booking-cabinet .ab-time-event time { font-variant-numeric: tabular-nums; font-size: 12px; line-height: 1.2; color: #526174; font-weight: 400; }
.booking-cabinet .ab-time-event span { font-size: 11px; display: block; overflow-wrap: anywhere; }
.booking-cabinet .ab-time-event small { font-size: 11px; display: block; overflow-wrap: anywhere; }
.booking-cabinet .ab-time-event:focus-visible { z-index: 3; outline: 2px solid var(--accent); outline-offset: 1px; }
.booking-cabinet .ab-calendar-filters { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin: 0 0 16px; }
.booking-cabinet .ab-calendar-filters[hidden] { display: none; }
.booking-cabinet .ab-calendar-rating { font-size: 10px; font-weight: 600; white-space: nowrap; }
.booking-cabinet .ab-calendar-toolbar { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; flex-wrap: wrap; gap: 16px; }
.booking-cabinet .ab-calendar-period { display: flex; align-items: center; min-width: 0; flex-wrap: wrap; gap: 4px; max-width: 100%; }
.booking-cabinet .ab-calendar-period .ab-period { margin: 0; font-size: 17px; text-align: center; font-weight: 600; width: auto; min-width: 90px; max-width: 240px; overflow-wrap: anywhere; }
.booking-cabinet .ab-calendar-period .ab-action { min-height: 44px; font-size: 14px; padding: 8px 12px; }
.booking-cabinet .ab-date-picker { display: flex; align-items: center; justify-content: center; position: relative; width: 44px; height: 44px; flex: 0 0 44px; cursor: pointer; }
.booking-cabinet .ab-date-picker svg { width: 20px; height: 20px; }
.booking-cabinet .ab-date-picker input { position: absolute; inset: 0; opacity: 0; width: 44px; min-width: 0; max-width: 44px; height: 44px; padding: 0; cursor: pointer; }
.booking-cabinet .ab-date-picker input::-webkit-calendar-picker-indicator { position: absolute; inset: 0; width: 100%; height: 100%; cursor: pointer; }
.booking-cabinet .ab-date-picker:has(input:focus-visible) { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 10px; }
.booking-cabinet .ab-calendar-filter-row { display: grid; gap: 8px; align-items: center; margin-bottom: 10px; grid-template-columns: minmax(0,270px) minmax(0,270px) 44px; }
.booking-cabinet .ab-calendar-filter-row select { font-size: 14px; background: transparent; min-height: 44px; }
.booking-cabinet .ab-calendar-name { display:flex; align-items:center; gap:4px; min-width:0; max-width:100%; overflow:hidden; white-space:nowrap; }
.booking-cabinet .ab-calendar-client { display:block; flex:0 1 auto; min-width:0; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.booking-cabinet .ab-calendar-rating { flex:none; }
.booking-cabinet .ab-calendar-service { display:block; min-width:0; max-width:100%; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.booking-cabinet .ab-time-event .ab-time-event-head { display:flex; align-items:center; justify-content:space-between; gap:4px; min-width:0; line-height:12px; }
.booking-cabinet .ab-time-event-head time { font-size:10px; line-height:12px; white-space:nowrap; }
.booking-cabinet .ab-time-event .ab-calendar-name { display:flex; font-size:13px; line-height:14px; }
.booking-cabinet .ab-time-event > small { flex:none; font-size:11px; line-height:12px; }
.booking-cabinet .ab-time-event .ab-calendar-rating { display:inline-flex; font-size:11px; line-height:14px; color:#426b56; background:#edf5ef; border-radius:3px; padding:0 2px; }
.booking-cabinet .ab-time-event .ab-calendar-status { display:block; min-width:0; max-width:55%; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-size:10px; border-radius:4px; padding:0 3px; background:#ebf2fb; color:#315f83; line-height:12px; }
.booking-cabinet .ab-time-event.ab-status-pending .ab-calendar-status { background: #fff1dd; color: #84551d; }
.booking-cabinet .ab-time-event.ab-status-completed .ab-calendar-status { background: #edf5ef; color: #426b56; }
.booking-cabinet .ab-time-event.ab-status-cancelled .ab-calendar-status { background: #f9ebeb; color: #983d3d; }
.booking-cabinet .ab-calendar-status-dot { display:block; flex:0 0 6px; width:6px; height:6px; border-radius:50%; background:var(--ab-calendar-status-color,#5b86be); }
.booking-cabinet :is(.ab-time-event,.ab-month-entry).ab-status-pending { --ab-calendar-status-color:#e8590c; }
.booking-cabinet :is(.ab-time-event,.ab-month-entry).ab-status-in_progress { --ab-calendar-status-color:#9c76c4; }
.booking-cabinet :is(.ab-time-event,.ab-month-entry).ab-status-completed { --ab-calendar-status-color:#649782; }
.booking-cabinet :is(.ab-time-event,.ab-month-entry).ab-status-cancelled { --ab-calendar-status-color:#c8806b; }
.booking-cabinet :is(.ab-time-event,.ab-month-entry).ab-status-no_show { --ab-calendar-status-color:#b97796; }
.booking-cabinet :is(.ab-time-event,.ab-month-entry).ab-status-expired { --ab-calendar-status-color:#9199a3; }
.booking-cabinet .ab-filter-count { position: absolute; right: -3px; top: -3px; display: flex; align-items: center; justify-content: center; min-width: 17px; height: 17px; padding: 0 3px; border-radius: 50%; font-size: 10px; background: var(--accent); color: var(--surface); }
.booking-cabinet .ab-calendar.ab-calendar--month { width:calc(100% + 32px); margin-inline:-16px; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 0; border: 0; border-radius: 0; overflow: hidden; background: var(--surface); }
.booking-cabinet .ab-month-weekday { padding:9px 6px; border-bottom:1px solid var(--ab-line); text-align:center; font-size:12px; font-weight:500; color:#526577; text-transform:capitalize; background:#f2f5f7; }
.booking-cabinet .ab-month-cell { min-width: 0; min-height: 0; height: 148px; padding: 5px 4px 7px; border-right: 1px solid var(--ab-line); border-bottom: 1px solid var(--ab-line); position: relative; }
.booking-cabinet .ab-month-cell:nth-child(7n) { border-right: 0; }
.booking-cabinet .ab-month-cell:nth-last-child(-n+7) { border-bottom: 0; }
.booking-cabinet .ab-month-cell--outside { background: #fafafa; }
.booking-cabinet .ab-month-cell:has(.ab-month-day--selected) { background: #fffaf6; }
.booking-cabinet .ab-month-day { width: 100%; min-width: 0; min-height: 32px; display: flex; align-items: center; justify-content: space-between; padding: 2px 3px 4px; border: 0; background: transparent; color: #424850; font-size: 13px; text-align: left; }
.booking-cabinet .ab-month-day--outside { color: #aeb4bd; }
.booking-cabinet .ab-month-day:hover { background: var(--bg); }
.booking-cabinet .ab-month-day:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.booking-cabinet .ab-month-day--selected:not(.ab-month-day--today) .ab-month-number { background: #fff4ec; color: #ad4209; box-shadow: inset 0 0 0 1px #efc7b0; }
.booking-cabinet .ab-month-day--today .ab-month-number { background: #e8590c; color: #fff; }
.booking-cabinet .ab-month-number { display: grid; place-items: center; width: 27px; height: 27px; border-radius: 50%; font-size: 13px; line-height: 1.2; font-variant-numeric: tabular-nums; }
.booking-cabinet .ab-month-count { color: #7c838e; font-size: 10px; font-variant-numeric: tabular-nums; padding-right: 3px; }
.booking-cabinet .ab-month-items { display:grid; gap:0; align-content:start; }
.booking-cabinet .ab-month-entry { display:flex; align-items:center; gap:4px; min-width:0; height:24px; padding:2px; border:0; border-radius:3px; background:transparent; color:#253348; text-align:left; font-size:12px; line-height:16px; }
.booking-cabinet .ab-month-entry time { flex:none; font-size:11px; white-space:nowrap; }
.booking-cabinet .ab-month-entry .ab-calendar-name { flex:1; }
.booking-cabinet .ab-month-entry .ab-calendar-rating { font-size:11px; color:#426b56; }
.booking-cabinet .ab-month-more { border: 0; padding: 2px 5px; min-height: 28px; background: transparent; text-align: left; font-size: 13px; color: #797f89; }
.booking-cabinet .ab-month-more:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; border-radius: 3px; }
.booking-cabinet .ab-month-dots { display: none; gap: 3px; align-items: center; justify-content: center; position: absolute; left: 0; right: 0; bottom: 8px; pointer-events: none; }
.booking-cabinet .ab-month-dot { display: block; width: 4px; height: 4px; border-radius: 50%; background: #5b86be; }
.booking-cabinet .ab-month-dot.ab-status-pending { background: #e8590c; }
.booking-cabinet .ab-month-dot.ab-status-in_progress { background: #9c76c4; }
.booking-cabinet .ab-month-dot.ab-status-completed { background: #649782; }
.booking-cabinet .ab-month-dot.ab-status-cancelled { background: #c8806b; }
.booking-cabinet .ab-month-dot.ab-status-no_show { background: #b97796; }
.booking-cabinet .ab-month-dot.ab-status-expired { background: #9199a3; }
.booking-cabinet .ab-calendar-day-jump { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 0; margin: 8px 0 12px; border: 0; background: transparent; color: var(--text-primary); font-size: 13px; text-decoration: underline; text-underline-offset: 3px; }
.booking-cabinet .ab-calendar-day-jump svg { width: 18px; height: 18px; }
.booking-cabinet .ab-calendar-day-heading h3 { font-size: 18px; font-weight: 600; line-height: 1.4; margin: 12px 0 16px; scroll-margin-top: 84px; }
.booking-cabinet .ab-calendar-day-row { grid-template-columns: 108px minmax(0,1fr) auto; }
.booking-cabinet .ab-calendar-day-row .ab-row-time { font-size: 13px; white-space: normal; }
.booking-cabinet .ab-calendar-day-row .ab-row-title { flex-wrap:nowrap; gap:4px; }
.booking-cabinet .ab-calendar-day-row .ab-calendar-service { margin-top:2px; }
.booking-cabinet .ab-calendar-event-zone { display: block; font-size: 11px; margin-top: 6px; }
.booking-cabinet .ab-day-now { display: flex; align-items: center; gap: 8px; padding: 7px 0; font-size: 11px; color: #b35c2b; pointer-events: none; }
.booking-cabinet .ab-day-now::after { content: ""; flex: 1; border-top: 1px solid #d18c63; }
.booking-cabinet .ab-current-time { position: absolute; left: 0; right: 0; height: 1px; background: #c76832; z-index: 2; pointer-events: none; }
.booking-cabinet .ab-current-time span { position: absolute; right: 3px; top: -12px; padding: 1px 4px; border-radius: 3px; background: var(--surface); font-size: 10px; color: #9b4b21; font-variant-numeric: tabular-nums; }
.booking-cabinet .ab-current-time[hidden] { display: none; }
.booking-cabinet .ab-day-now[hidden] { display: none; }
.booking-cabinet .ab-calendar-grid-meta { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px; margin: 10px 0; color: var(--ab-muted); font-size: 12px; }
.booking-cabinet .ab-calendar-scroll-hint { display: none; gap: 6px; align-items: center; margin: 0; }
.booking-cabinet .ab-calendar-scroll-hint svg { width: 16px; height: 16px; flex: 0 0 16px; }
.booking-cabinet .ab-time-heading--today { color: var(--text-primary); font-weight: 600; }

/* Schedules and capacity units */
.booking-cabinet .ab-schedule-toolbar { justify-content: space-between; gap: 12px; }
.booking-cabinet .ab-schedule-period { display: flex; align-items: center; min-width: 0; gap: 4px; }
.booking-cabinet .ab-schedule-period .ab-period { min-width: 92px; font-size: 18px; line-height: 1.35; font-weight: 600; text-align: center; font-variant-numeric: tabular-nums; margin: 0; }
.booking-cabinet .ab-resource-identity { display: flex; align-items: center; gap: 10px; min-width: 0; }
.booking-cabinet .ab-resource-avatar { display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; min-width: 48px; flex: 0 0 48px; aspect-ratio: 1; border-radius: 50%; background: #e9ebee; color: #626872; border: 0; overflow: hidden; font-size: 16px; font-weight: 500; }
.booking-cabinet .ab-resource-avatar svg { width: 26px; height: 26px; }
.booking-cabinet .ab-resource-name { display: block; flex: 1; min-width: 0; max-width: 110px; overflow: hidden; font-size: 14px; font-weight: 500; line-height: 1.4; }
.booking-cabinet .ab-shift-table thead svg { width: 20px; height: 20px; }
.booking-cabinet .ab-shift-scroll { width: 100%; max-width: 100%; overflow: auto; overscroll-behavior-x: contain; border: 1px solid var(--ab-line); border-radius: 13px; background: var(--ab-surface); max-height: 620px; }
.booking-cabinet .ab-shift-table { border-spacing: 0; border-collapse: separate; width: max-content; min-width: 100%; }
.booking-cabinet .ab-shift-table--month { table-layout: fixed; min-width: 0; }
.booking-cabinet .ab-shift-table th { padding: 8px 6px; min-width: 65px; height: 58px; border-right: 1px solid var(--ab-line); border-bottom: 1px solid var(--ab-line); font-size: 11px; vertical-align: middle; text-align: center; white-space: nowrap; font-variant-numeric: tabular-nums; }
.booking-cabinet .ab-shift-table td { padding: 8px 6px; min-width: 65px; height: 58px; border-right: 1px solid var(--ab-line); border-bottom: 1px solid var(--ab-line); font-size: 11px; vertical-align: middle; text-align: center; white-space: nowrap; font-variant-numeric: tabular-nums; }
.booking-cabinet .ab-shift-table thead th { position: sticky; top: 0; z-index: 3; background: var(--ab-surface); font-weight: 600; height: 46px; }
.booking-cabinet .ab-shift-table th:first-child { position: sticky; left: 0; z-index: 2; width: 190px; min-width: 190px; max-width: 190px; text-align: left; background: var(--ab-surface); padding: 10px; font-size: 14px; }
.booking-cabinet .ab-shift-table td:first-child { position: sticky; left: 0; z-index: 2; width: 190px; min-width: 190px; max-width: 190px; text-align: left; background: var(--ab-surface); padding: 10px; font-size: 14px; }
.booking-cabinet .ab-shift-table thead th:first-child { z-index: 4; }
.booking-cabinet .ab-shift-staff-icon { display: flex; justify-content: center; align-items: center; }
.booking-cabinet .ab-shift-date { display: flex; flex-direction: column; align-items: center; gap: 3px; }
.booking-cabinet .ab-shift-date small { font-size: 12px; font-weight: 400; color: var(--ab-muted); }
.booking-cabinet .ab-shift-date b { font-size: 14px; font-weight: 600; }
.booking-cabinet .ab-shift-date.is-today { color: #2563a6; }
.booking-cabinet .ab-shift-table th:has(.ab-shift-date.is-today) { box-shadow: inset 0 -2px #2563a6; }
.booking-cabinet .ab-shift-table td.ab-shift-off { color: var(--ab-muted); background: var(--bg); }
.booking-cabinet .ab-shift-table td.ab-shift-unpublished { color: var(--ab-muted); }
.booking-cabinet .ab-shift-table td:not(:first-child) > span { display: block; }
.booking-cabinet .ab-weekdays { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 4px; }
.booking-cabinet .ab-weekday { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; min-width: 0; min-height: 52px; padding: 5px 2px; border: 1px solid var(--ab-line); border-radius: 8px; cursor: pointer; font-size: 12px; }
.booking-cabinet .ab-weekday:has(input:checked) { border-color: var(--accent); background: var(--bg); }
.booking-cabinet .ab-weekday input { margin: 0; width: 17px; height: 17px; accent-color: var(--accent); }
.booking-cabinet .ab-schedule-row { min-width: 0; border: 1px solid var(--ab-line); padding: 12px; margin: 0; border-radius: 12px; }
.booking-cabinet .ab-schedule-row legend { padding: 0 6px; font-size: 13px; font-weight: 600; }
.booking-cabinet .ab-schedule-row > .ab-action { margin-top: 10px; }
.booking-cabinet .ab-schedule-check { display: flex; align-items: center; gap: 8px; min-height: 44px; font-size: 13px; }
.booking-cabinet .ab-schedule-check input { width: 18px; height: 18px; min-height: 18px; padding: 0; accent-color: var(--accent); }
.booking-cabinet .ab-schedule-form h3 { margin: 10px 0 0; }
.booking-cabinet .ab-schedule-settings { display: grid; gap: 10px; }
.booking-cabinet .ab-schedule-form .ab-field > span { font-size: 12px; font-weight: 600; }
.booking-cabinet .ab-resource-controls { min-width: 0; max-width: 48%; }
.booking-cabinet .ab-resource-controls .ab-action { max-width: 100%; min-width: 0; overflow-wrap: anywhere; }
.booking-cabinet .ab-resource-check { display: flex; align-items: center; gap: 9px; font-size: 13px; min-height: 44px; }
.booking-cabinet .ab-resource-check input { width: 18px; height: 18px; min-height: 18px; flex-shrink: 0; accent-color: var(--accent); }
.booking-cabinet .ab-resource-current { border: 1px solid var(--border); border-radius: 10px; padding: 12px; margin-bottom: 12px; }
.booking-cabinet .ab-resource-current p { font-size: 13px; overflow-wrap: anywhere; }
.booking-cabinet #ab-resource-conflicts p { font-size: 13px; overflow-wrap: anywhere; }
.booking-cabinet .ab-resource-history p { font-size: 13px; overflow-wrap: anywhere; }
.booking-cabinet .ab-schedule-conflicts { margin: 18px 0 8px; padding-top: 14px; border-top: 1px solid var(--border); }
.booking-cabinet .ab-schedule-conflicts h3 { font-size: 16px; margin: 0 0 10px; }
.booking-cabinet .ab-relocation-visit { padding: 14px 0; border-bottom: 1px solid var(--border); }
.booking-cabinet .ab-relocation-visit strong { display: block; font-size: 13px; overflow-wrap: anywhere; }
.booking-cabinet .ab-relocation-visit ul { font-size: 13px; padding-left: 20px; }
.booking-cabinet .ab-relocation-visit li { margin: 6px 0; }
.booking-cabinet .ab-relocation-visit a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: underline; }
.booking-cabinet .ab-shift-table .ab-resource-name { overflow-wrap: anywhere; white-space: normal; }
.booking-cabinet .ab-shift-table--month th:not(:first-child) { min-width: 64px; width: 64px; max-width: 64px; padding: 0; height: 58px; }
.booking-cabinet .ab-shift-table--month td:not(:first-child) { min-width: 64px; width: 64px; max-width: 64px; padding: 0; font-size: 12px; font-weight: 500; color: #2563a6; line-height: 17px; }
.booking-cabinet .ab-shift-table td > span { white-space: nowrap; }
.booking-cabinet .ab-shift-cell { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 100%; min-height: 48px; padding: 4px 0; border: 0; background: transparent; color: inherit; font-size: inherit; line-height: 17px; font-variant-numeric: tabular-nums; }
.booking-cabinet .ab-shift-cell:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.booking-cabinet .ab-shift-table--month td.ab-shift-off { background: transparent; }
.booking-cabinet .ab-shift-table--month td.ab-shift-off { color: #9ca3ad; }
.booking-cabinet .ab-shift-table--month td.ab-shift-unpublished { color: #9ca3ad; opacity: .45; }
.booking-cabinet .ab-shift-legend { display: flex; flex-wrap: wrap; gap: 16px; margin: 12px 0 24px; font-size: 13px; color: var(--ab-muted); }

/* Inbox, clients, places and team */
.booking-cabinet .ab-inbox-toggle { position: relative; }
.booking-cabinet .ab-inbox-badge { position: absolute; right: -5px; top: -6px; min-width: 20px; height: 20px; padding: 0 4px; border-radius: 12px; font-size: 10px; line-height: 20px; background: var(--accent); color: var(--surface); font-weight: 700; font-variant-numeric: tabular-nums; }
.booking-cabinet .ab-inbox-badge[hidden] { display: none; }
.booking-cabinet .ab-content:has(.ab-inbox-list) { max-width: 720px; margin-left: 0; }
.booking-cabinet .ab-inbox-list { max-width: 720px; }
.booking-cabinet .ab-inbox-row { display: grid; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: 14px; padding: 14px 0; margin-bottom: 10px; border-bottom: 1px solid var(--border); }
.booking-cabinet .ab-inbox-row-icon { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: #f0f2f4; color: #78828d; }
.booking-cabinet .ab-inbox-row-icon svg { width: 18px; height: 18px; }
.booking-cabinet .ab-inbox-actionable .ab-inbox-row-icon { background: #f8ece1; color: #b57c51; }
.booking-cabinet .ab-inbox-copy { min-width: 0; flex: 1; }
.booking-cabinet .ab-inbox-copy strong { display: block; font-size: 14px; font-weight: 500; line-height: 1.5; overflow-wrap: anywhere; }
.booking-cabinet .ab-inbox-copy p { font-size: 13px; margin: 5px 0; overflow-wrap: anywhere; }
.booking-cabinet .ab-inbox-copy time { display: block; margin-top: 6px; color: #9097a1; font-size: 11px; }
.booking-cabinet .ab-inbox-row > .ab-actions { align-self: center; flex-direction: column; align-items: stretch; min-width: 0; max-width: 180px; }
.booking-cabinet .ab-inbox-row .ab-action { min-height: 44px; width: auto; padding: 7px 12px; font-size: 12px; white-space: normal; }
.booking-cabinet .ab-inbox-read strong { color: #878d95; }
.booking-cabinet .ab-inbox-task-summary { display: flex; align-items: center; justify-content: space-between; max-width: 660px; gap: 12px; margin: 0 0 18px; font-size: 13px; border: 0; border-bottom: 1px solid var(--border); border-radius: 0; background: transparent; padding: 14px 0; }
.booking-cabinet .ab-inbox-task-summary[hidden] { display: none; }
.booking-cabinet .ab-inbox-task-summary span { min-width: 0; overflow-wrap: anywhere; }
.booking-cabinet .ab-inbox-task-summary button { flex-shrink: 0; }
.booking-cabinet .ab-client-search { display: flex; align-items: center; gap: 10px; margin: 16px 0; padding: 4px 4px 4px 14px; border: 1px solid var(--border); border-radius: 13px; background: var(--surface); }
.booking-cabinet .ab-client-search input { flex: 1; width: 100%; min-width: 0; min-height: 44px; border: 0; border-radius: 0; background: transparent; color: var(--text-primary); padding: 0; font-size: 14px; }
.booking-cabinet .ab-client-search input:focus-visible { outline: 2px solid #2563a6; outline-offset: 2px; }
.booking-cabinet .ab-client-search button { min-height: 44px; flex-shrink: 0; padding: 7px 14px; font-size: 13px; }
.booking-cabinet .ab-client-list { max-width: 760px; border-top: 1px solid var(--border); }
.booking-cabinet .ab-client-directory { max-width: none; border-top: 0; }
.booking-cabinet .ab-client-row.ab-client-summary { display: grid; grid-template-columns: 48px minmax(0,1fr) 44px; gap: 12px; padding: 16px 0; }
.booking-cabinet .ab-client-avatar { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: #e9ebee; color: #626872; font-size: 16px; font-weight: 500; line-height: 1.5; }
.booking-cabinet .ab-client-summary .ab-client-details > strong { font-size: 15px; font-weight: 500; line-height: 1.5; }
.booking-cabinet .ab-client-summary .ab-client-details > span { display: block; margin-top: 3px; font-size: 11px; line-height: 1.5; }
.booking-cabinet .ab-client-summary .ab-client-details > p { margin: 3px 0; font-size: 11px; line-height: 1.5; }
.booking-cabinet .ab-client-summary .ab-client-details > small { display: block; margin-top: 3px; font-size: 11px; line-height: 1.5; }
.booking-cabinet .ab-client-summary > .ab-action--icon { border: 0; background: transparent; box-shadow: none; }
.booking-cabinet .ab-client-row { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--border); }
.booking-cabinet .ab-client-details { min-width: 0; flex: 1; }
.booking-cabinet .ab-client-details strong { display: block; font-size: 14px; overflow-wrap: anywhere; }
.booking-cabinet .ab-client-details p { font-size: 12px; margin: 6px 0; }
.booking-cabinet .ab-client-details small { color: var(--text-secondary); font-size: 11px; }
.booking-cabinet .ab-client-row > button { flex-shrink: 0; }
.booking-cabinet .ab-client-row > .ab-actions { flex-shrink: 0; }
.booking-cabinet .ab-client-row .ab-action { min-height: 44px; }
.booking-cabinet .ab-client-contacts { max-width: 660px; padding: 8px 0; margin: 10px 0; display: grid; gap: 8px; }
.booking-cabinet .ab-client-value { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; border-bottom: 1px solid var(--border); padding: 7px 0; }
.booking-cabinet .ab-client-value span { font-size: 12px; }
.booking-cabinet .ab-client-value strong { font-size: 13px; font-weight: 500; overflow-wrap: anywhere; }
.booking-cabinet .ab-client-back { margin: 0 0 15px; }
.booking-cabinet .ab-team-list { max-width: 660px; border-top: 1px solid var(--border); }
.booking-cabinet .ab-team-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 15px 0; border-bottom: 1px solid var(--border); }
.booking-cabinet .ab-team-copy { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.booking-cabinet .ab-team-copy strong { font-size: 14px; overflow-wrap: anywhere; }
.booking-cabinet .ab-team-copy span { font-size: 12px; overflow-wrap: anywhere; }
.booking-cabinet .ab-team-row button { min-height: 44px; flex-shrink: 0; }
.booking-cabinet .ab-place-list { max-width: 760px; }
.booking-cabinet .ab-place-row { display: flex; justify-content: space-between; align-items: center; gap: 14px; border-bottom: 1px solid var(--border); padding: 16px 0; }
.booking-cabinet .ab-place-row > div:first-child { min-width: 0; }
.booking-cabinet .ab-place-row h3 { font-size: 14px; margin: 0 0 8px; overflow-wrap: anywhere; }
.booking-cabinet .ab-place-row p { font-size: 13px; margin: 6px 0; overflow-wrap: anywhere; }
.booking-cabinet .ab-place-row > .ab-actions { flex-shrink: 0; max-width: 42%; align-self: center; }
.booking-cabinet .ab-place-row .ab-action { min-height: 44px; }
.booking-cabinet .ab-place-check { display: flex; gap: 8px; align-items: center; font-size: 13px; min-height: 44px; }
.booking-cabinet .ab-place-check input { min-height: 18px; width: 18px; height: 18px; accent-color: var(--accent); }
.booking-cabinet .ab-place-current { border: 1px solid var(--border); border-radius: 10px; padding: 12px; }
.booking-cabinet .ab-place-current pre { font: inherit; font-size: 12px; white-space: pre-wrap; overflow-wrap: anywhere; margin: 8px 0; }
.booking-cabinet .ab-team-invites { max-width: 660px; margin-top: 28px; }
.booking-cabinet .ab-team-invites h3 { font-size: 16px; line-height: 1.4; margin: 20px 0 12px; }
.booking-cabinet .ab-team-invites .ab-form { max-width: 540px; }
.booking-cabinet .ab-team-invites .ab-team-row { align-items: flex-start; }
.booking-cabinet .ab-team-invites .ab-team-row > .ab-actions { flex-shrink: 0; flex-direction: column; max-width: 43%; }
.booking-cabinet .ab-team-invites .ab-action { white-space: normal; min-height: 44px; }
.booking-cabinet .ab-team-invites .ab-field input { min-height: 44px; width: 100%; }
.booking-cabinet .ab-team-invites .ab-field select { min-height: 44px; width: 100%; }

/* Finance, workload and offering conditions */
.booking-cabinet .ab-finance-currency { margin-top: 24px; }
.booking-cabinet .ab-finance-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.booking-cabinet .ab-finance-metric { display: flex; flex-direction: column; gap: 14px; padding: 16px 12px; border: 0; border-bottom: 1px solid var(--border); border-radius: 0; background: transparent; color: var(--text-primary); text-align: left; cursor: pointer; min-height: 100px; }
.booking-cabinet .ab-finance-metric span { font-size: 12px; color: var(--text-secondary); }
.booking-cabinet .ab-finance-metric strong { font-size: 21px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.booking-cabinet .ab-finance-check { display: flex; gap: 9px; align-items: flex-start; font-size: 12px; min-height: 44px; }
.booking-cabinet .ab-finance-check input { width: 18px; height: 18px; min-height: 18px; flex-shrink: 0; accent-color: var(--accent); }
.booking-cabinet .ab-finance-dynamics { margin: 22px 0; }
.booking-cabinet .ab-finance-dynamics summary { cursor: pointer; font-size: 14px; padding: 12px 0; }
.booking-cabinet .ab-finance-currency h3 { margin-bottom: 12px; }
.booking-cabinet [data-ab-form="finance-money"] { border-top: 1px solid var(--border); padding-top: 18px; margin: 20px 0; }
.booking-cabinet [data-ab-form="finance-period"] .ab-field { min-width: 0; }
.booking-cabinet .ab-form .ab-offering-price-grid { display: grid; grid-template-columns: minmax(0,1fr) 88px; gap: 12px; }
.booking-cabinet .ab-form .ab-offering-price-grid > .ab-field:last-child { grid-column: 1 / -1; }
.booking-cabinet .ab-offering-price-grid .ab-field { min-width: 0; }
.booking-cabinet .ab-offering-summary { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 6px 0; }
.booking-cabinet .ab-offering-summary > button { min-height: 44px; }
.booking-cabinet .ab-terms-price { display: grid; grid-template-columns: minmax(0,1fr) 88px; gap: 12px; }
.booking-cabinet .ab-terms-price .ab-field { min-width: 0; }
.booking-cabinet .ab-terms-price input { min-width: 0; width: 100%; }
.booking-cabinet .ab-terms-advanced summary { cursor: pointer; padding: 10px 0; font-size: 13px; line-height: 1.5; }
.booking-cabinet .ab-terms-current summary { cursor: pointer; padding: 10px 0; font-size: 13px; line-height: 1.5; }
.booking-cabinet .ab-terms-history summary { cursor: pointer; padding: 10px 0; font-size: 13px; line-height: 1.5; }
.booking-cabinet .ab-terms-advanced > .ab-form-grid { padding: 10px 0; }
.booking-cabinet .ab-terms-values { margin: 10px 0; display: grid; gap: 8px; font-size: 12px; }
.booking-cabinet .ab-terms-values > div { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 12px; }
.booking-cabinet .ab-terms-values dt { color: var(--text-secondary); overflow-wrap: anywhere; }
.booking-cabinet .ab-terms-values dd { margin: 0; max-width: 160px; text-align: right; overflow-wrap: anywhere; }
.booking-cabinet .ab-terms-current { border-top: 1px solid var(--border); }
.booking-cabinet .ab-terms-history { border-top: 1px solid var(--border); margin-top: 16px; }
.booking-cabinet .ab-terms-history h3 { font-size: 14px; margin: 12px 0; }
.booking-cabinet .ab-terms-holds { font-size: 13px; overflow-wrap: anywhere; }
.booking-cabinet .ab-workload-summary { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin: 18px 0; }
.booking-cabinet .ab-workload-summary > div { display: flex; flex-direction: column; gap: 5px; min-width: 0; border: 1px solid var(--border); background: var(--surface); border-radius: 12px; padding: 12px; }
.booking-cabinet .ab-workload-summary span { color: var(--text-secondary); font-size: 12px; }
.booking-cabinet .ab-workload-summary strong { font-size: 17px; overflow-wrap: anywhere; }
.booking-cabinet .ab-workload-list { display: grid; margin: 12px 0; }
.booking-cabinet .ab-workload-row { padding: 13px 0; display: grid; gap: 4px; border-bottom: 1px solid var(--border); font-size: 13px; }
.booking-cabinet .ab-workload-row span { overflow-wrap: anywhere; }

/* Legacy panels and independent notification settings */
.booking-cabinet .booking-account-active > .tab-content.booking-legacy-visible { display: block !important; }
#account-data-request-panel .ab-data-request-body { white-space: pre-wrap; overflow-wrap: anywhere; }
#account-data-request-panel .ab-data-request { padding: 16px 0; border-bottom: 1px solid var(--border-color); }
#account-data-request-panel textarea { min-height: 100px; width: 100%; }
#account-data-request-panel .ab-form { display: grid; gap: 12px; max-width: none; }
#account-data-request-panel .ab-form label { display: grid; gap: 6px; }
#account-data-request-panel input { min-height: 44px; max-width: 100%; }
#account-data-request-panel select { min-height: 44px; max-width: 100%; }
.booking-cabinet .booking-account-active > .booking-legacy-visible .admin-card { border: 0; border-radius: 0; background: transparent; box-shadow: none; padding: 16px 0; }
.booking-cabinet .ab-business-settings { border-bottom: 1px solid var(--border); max-width: 720px; margin: 0; padding: 16px 0; }
.booking-cabinet .ab-business-settings h3 { margin: 0 0 8px; font-size: 18px; font-weight: 600; }
.booking-cabinet .ab-business-settings p { margin: 8px 0; font-size: 14px; line-height: 1.5; }
.booking-cabinet .ab-business-settings .ab-actions { margin-top: 16px; }
.booking-cabinet .booking-account-active:has(> .booking-legacy-visible) > .account-booking { padding-bottom: 0; }
.booking-cabinet .booking-legacy-visible * { box-sizing: border-box; }
.booking-cabinet .booking-legacy-visible *::before { box-sizing: border-box; }
.booking-cabinet .booking-legacy-visible *::after { box-sizing: border-box; }
.booking-cabinet .booking-legacy-visible { min-width: 0; max-width: 100%; padding-bottom: 32px; }
.booking-cabinet .booking-legacy-visible input { max-width: 100%; min-width: 0; font-family: inherit; }
.booking-cabinet .booking-legacy-visible select { max-width: 100%; min-width: 0; font-family: inherit; }
.booking-cabinet .booking-legacy-visible textarea { max-width: 100%; min-width: 0; font-family: inherit; }
.booking-cabinet .booking-legacy-visible .btn { min-height: 44px; min-width: 0; max-width: 100%; padding: 10px 14px; font-size: 13px; line-height: 1.4; border-radius: 10px; white-space: normal; overflow-wrap: anywhere; }
.booking-cabinet .booking-legacy-visible .account-grid { gap: 16px; align-items: start; }
.booking-cabinet .booking-legacy-visible .form-group { margin-bottom: 0; }
.booking-cabinet .booking-legacy-visible .form-group:not(.hidden) { display: grid; gap: 6px; align-content: start; }
.booking-cabinet .booking-legacy-visible .form-label { margin-bottom: 0; }
.booking-cabinet .booking-legacy-visible .account-card__actions { display: flex; gap: 8px; flex-wrap: wrap; }
.booking-cabinet #tab-account-profile.booking-legacy-visible { max-width: 1480px; }
.booking-cabinet #account-profile-form { max-width: 720px; }
.booking-cabinet #account-booking-notice-settings { padding: 16px 0; min-width: 0; max-width: 720px; }
.booking-cabinet #account-booking-notice-settings[hidden] { display: none; }
.booking-cabinet .ab-notice-preferences-form { max-width: none; padding: 0; }
.booking-cabinet .ab-notice-preferences-form fieldset { display: grid; gap: 14px; border: 0; margin: 0; padding: 0; min-width: 0; }
.booking-cabinet .ab-notice-preferences-form label:not(.ab-check-label) { display: grid; gap: 6px; font-size: 13px; }
.booking-cabinet .ab-notice-preferences-form select { width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid var(--ab-line); border-radius: 12px; color: var(--text-primary); background: var(--surface); font-size: 14px; }
.booking-cabinet .ab-check-label { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; line-height: 1.5; min-height: 44px; }
.booking-cabinet .ab-check-label input { width: 18px; height: 18px; min-height: 18px; flex: 0 0 18px; margin: 2px 0 0; accent-color: var(--accent); }
.booking-cabinet .ab-notice-preferences-form p { margin: 0; }
.booking-cabinet .ab-notice-preferences-actions { margin-top: 8px; }
#account-data-request-panel { max-width: 720px; }

/* Responsive states: desktop columns, tablet controls, phone flow and compact navigation. */
@media (min-width:900px) {
  .booking-cabinet #tab-account-profile.booking-legacy-visible { display: grid !important; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 20px 40px; align-items: start; }
  .booking-cabinet #account-profile-form { grid-column: 1; grid-row: 1 / span 3; }
  .booking-cabinet #account-booking-notice-settings { grid-column: 2; }
  .booking-cabinet .ab-business-settings { grid-column: 2; }
  .booking-cabinet #tab-account-profile > p { grid-column: 2; }
  #account-data-request-panel { grid-column: 2; }
}
@media (max-width:1100px) {
  .booking-cabinet .ab-overview-grid { grid-template-columns: minmax(0,1fr); }
}
@media (max-width:768px) {
  body.booking-cabinet #account-page > .booking-account-active { width: calc(100% - 28px); }
  .booking-cabinet .account-booking { padding-bottom: calc(90px + env(safe-area-inset-bottom)); padding-top: 12px; }
  .booking-cabinet .booking-legacy-visible { padding-bottom: calc(90px + env(safe-area-inset-bottom)); }
  .booking-cabinet .ab-utilities .ab-create-link { display: none; }
  .booking-cabinet .ab-head { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px; margin-bottom: 16px; }
  .booking-cabinet .ab-context { gap: 22px; justify-self: start; }
  .booking-cabinet .ab-context button { padding: 10px 12px; }
  .booking-cabinet .ab-head-actions { gap: 8px; grid-column: 2; grid-row: 1; }
  .booking-cabinet .ab-select-wrap { grid-column: 1/-1; grid-row: 2; max-width: none; width: 100%; margin: 0; }
  .booking-cabinet .ab-user-name { grid-column: 1/-1; grid-row: 2; margin: 0; }
  .booking-cabinet .ab-nav { margin-bottom: 14px; }
  .booking-cabinet .ab-nav-wrap { margin-bottom: 14px; }
  .booking-cabinet .ab-nav > button { padding: 9px 3px; font-size: 13px; gap: 4px; line-height: 1.3; white-space: normal; overflow-wrap: normal; hyphens: auto; }
  .booking-cabinet .ab-nav svg { display: none; }
  .booking-cabinet .ab-more-menu { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .booking-cabinet .ab-stats { margin: 0 -14px 14px; width: calc(100% + 28px); padding: 14px 20px; }
  .booking-cabinet .account-booking .ab-stats { margin-inline:-16px; width:calc(100% + 32px); }
  .booking-cabinet .ab-stats > button { padding: 4px 10px; }
  .booking-cabinet .ab-stats > div { padding: 4px 10px; }
  .booking-cabinet .ab-stats strong { font-size: 25px; }
  .booking-cabinet .ab-stats span { font-size: 12px; }
  .booking-cabinet .ab-review-prompt { grid-template-columns: 20px minmax(0,1fr); gap: 8px; padding: 12px 10px; margin: 12px 0 16px; }
  .booking-cabinet .ab-review-prompt h3 { font-size: 15px; }
  .booking-cabinet .ab-review-prompt p { font-size: 13px; line-height: 1.4; }
  .booking-cabinet .ab-next-visit h2 { font-size: 21px; }
  .booking-cabinet .ab-visit-row { grid-template-columns: 50px minmax(0,1fr); gap: 8px; min-height: 90px; padding: 12px 6px; }
  .booking-cabinet .ab-calendar-day-row { grid-template-columns: 88px minmax(0,1fr); }
  .booking-cabinet .ab-visit-tail { grid-column: 2; max-width: none; justify-content: flex-start; }
  .booking-cabinet .ab-visit-tail > .ab-actions { margin-left: auto; justify-content: flex-start; }
  .booking-cabinet .ab-visit-row .ab-row-main { grid-column: 2; }
  .booking-cabinet .ab-shift-table th:first-child { width: 176px; min-width: 176px; max-width: 176px; padding: 8px; }
  .booking-cabinet .ab-shift-table td:first-child { width: 176px; min-width: 176px; max-width: 176px; padding: 8px; }
  .booking-cabinet .ab-schedule-toolbar { display: grid; grid-template-columns: minmax(0,1fr); gap: 8px; }
  .booking-cabinet .ab-schedule-period .ab-period { min-width: 82px; font-size: 17px; }
  .booking-cabinet .ab-result-task { align-items: flex-start; gap: 10px; }
  .booking-cabinet .ab-result-task .ab-action { max-width: 44%; }
  .booking-cabinet .ab-calendar-toolbar { display: grid; grid-template-columns: minmax(0,1fr); gap: 10px; }
  .booking-cabinet .ab-calendar-toolbar > .ab-segment { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 0; }
  .booking-cabinet .ab-calendar-period .ab-period { min-width: 70px; font-size: 16px; max-width: calc(100% - 96px); }
  .booking-cabinet .ab-calendar-period > .ab-action { margin-left: auto; padding: 8px; }
  .booking-cabinet .ab-calendar-filter-row { grid-template-columns: minmax(0,1fr) minmax(0,1fr) 44px; gap: 6px; }
  .booking-cabinet .ab-calendar-filter-row select { padding: 10px 8px; }
  .booking-cabinet .ab-time-table { --ab-axis-width: 44px; --ab-day-min-width: 170px; }
  .booking-cabinet .ab-time-scroll--day .ab-time-table { --ab-appointment-width:150px; }
  .booking-cabinet .ab-time-scroll--week .ab-time-table { --ab-day-min-width:150px; }
  .booking-cabinet .account-booking .ab-time-scroll { max-height:550px; }
  .booking-cabinet .ab-hour-label { left: 5px; }
  .booking-cabinet .ab-calendar-scroll-hint { display: flex; }
  .booking-cabinet .ab-calendar.ab-calendar--month { box-shadow:none; background:transparent; }
  .booking-cabinet .ab-month-weekday { padding: 9px 3px; text-align: center; font-size: 11px; }
  .booking-cabinet .ab-month-cell { height: 76px; padding: 4px; }
  .booking-cabinet .ab-month-cell:has(.ab-month-day--selected) { background: #fff8f2; }
  .booking-cabinet .ab-month-day { min-height: 44px; justify-content: center; padding: 2px 0; }
  .booking-cabinet .ab-month-number { width: 29px; height: 29px; }
  .booking-cabinet .ab-month-count { display: none; }
  .booking-cabinet .ab-month-items { display: none; }
  .booking-cabinet .ab-month-dots { display: flex; }
  .booking-cabinet .ab-month-more { display: block; width: 100%; min-height: 24px; padding: 2px 0; text-align: center; font-size: 10px; line-height: 16px; white-space: nowrap; }
  .booking-cabinet .ab-month-cell:has(.ab-month-more) .ab-month-dots { display: none; }
  .booking-cabinet .ab-field input { font-size: 16px; }
  .booking-cabinet .ab-field select { font-size: 16px; }
  .booking-cabinet .ab-field textarea { font-size: 16px; }
  .booking-cabinet .booking-legacy-visible .form-input { font-size: 16px; }
  .booking-cabinet .booking-legacy-visible .form-select { font-size: 16px; }
  .booking-cabinet .ab-notice-preferences-form select { font-size: 16px; }
  .booking-cabinet .ab-client-search input { font-size: 16px; }
  .booking-cabinet .ab-contact-manual { font-size: 16px; }
  .booking-cabinet .ab-controls input[type="date"] { font-size: 16px; }
  .booking-cabinet .ab-finance-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .booking-cabinet .ab-finance-metric { padding: 14px; }
  .booking-cabinet .ab-finance-metric strong { font-size: 18px; }
  .booking-cabinet .ab-dialog { position:fixed; inset:0; width:calc(100vw - 24px); max-height:calc(100dvh - 32px); height:fit-content; margin:auto; padding:0; border-radius:18px; }
  .booking-cabinet .ab-dialog-inner { padding:16px 16px calc(16px + env(safe-area-inset-bottom)); }
  .booking-cabinet .ab-inbox-row { grid-template-columns: 24px minmax(0,1fr); gap: 10px; }
  .booking-cabinet .ab-inbox-row-icon { width: 28px; height: 28px; border-radius: 8px; }
  .booking-cabinet .ab-inbox-copy strong { font-size: 12px; }
  .booking-cabinet .ab-inbox-copy time { font-size: 10px; }
  .booking-cabinet .ab-inbox-row > .ab-actions { grid-column: 2; flex-direction: row; max-width: none; justify-content: flex-start; }
  .booking-cabinet .ab-inbox-row .ab-action { flex: 0 1 auto; font-size: 11px; padding: 7px 10px; }
}
@media (max-width:520px) {
  .booking-cabinet .ab-form-grid { grid-template-columns: minmax(0,1fr); }
  .booking-cabinet .ab-calendar-filters { grid-template-columns: minmax(0,1fr); }
  .booking-cabinet .booking-legacy-visible .account-grid { grid-template-columns: minmax(0,1fr); }
  .booking-cabinet .ab-row:not(.ab-visit-row) { gap: 8px; align-items: flex-start; }
  .booking-cabinet .ab-row:not(.ab-visit-row) > .ab-actions { flex-basis: 100%; max-width: none; justify-content: flex-start; }
  .booking-cabinet .ab-dialog .ab-actions > .ab-action:not(.ab-action--icon) { flex: 1 1 130px; }
  .booking-cabinet .ab-visit-details .ab-row { grid-template-columns: minmax(0,1fr); gap: 5px; }
  .booking-cabinet .ab-visit-details .ab-row strong { justify-self: start; text-align: left; }
  .booking-cabinet .ab-dialog .ab-visit-danger > .ab-action { flex: 0 1 auto; }
  .booking-cabinet .ab-weekday { font-size: 11px; }
  .booking-cabinet .ab-place-row { display: grid; grid-template-columns: minmax(0,1fr); gap: 10px; }
  .booking-cabinet .ab-place-row > .ab-actions { min-width: 0; max-width: none; justify-content: flex-start; align-items: center; }
  .booking-cabinet .ab-resource-controls { max-width: none; align-items: flex-start; }
  .booking-cabinet .ab-client-row { gap: 10px; flex-wrap: wrap; }
  .booking-cabinet .ab-client-row > .ab-actions { max-width: none; flex-basis: 100%; justify-content: flex-start; }
  .booking-cabinet .ab-team-invites .ab-team-row > .ab-actions { max-width: none; flex-basis: 100%; flex-direction: row; }
  .booking-cabinet .ab-team-row { flex-wrap: wrap; }
}
@media (max-width:360px) {
  .booking-cabinet .ab-nav > button .ab-nav-text { display: none; }
  .booking-cabinet .ab-nav > button svg { display: block; width: 22px; height: 22px; }
  .booking-cabinet .ab-more-toggle { font-size: 12px; }
  .booking-cabinet .ab-context { gap: 8px; }
  .booking-cabinet .ab-context button { padding: 10px; }
  .booking-cabinet .ab-next-visit .ab-action { min-width: 0; flex: 1 1 120px; }
  .booking-cabinet .ab-rate-options label { min-width: 44px; }
  .booking-cabinet .ab-finance-metric strong { font-size: 16px; }
  .booking-cabinet .ab-workload-summary { gap: 7px; }
  .booking-cabinet .ab-workload-summary > div { padding: 10px; }
}
@media (prefers-reduced-motion:reduce) {
  .booking-cabinet .account-booking * { transition: none !important; animation: none !important; }
  .booking-cabinet .account-booking *::before { transition: none !important; animation: none !important; }
  .booking-cabinet .account-booking *::after { transition: none !important; animation: none !important; }
  .booking-cabinet .booking-legacy-visible * { transition: none !important; animation: none !important; }
}

/* Profile cooperation: one compact search, selection and send form. */
.booking-cabinet .ab-collaborations { margin-bottom: 28px; max-width: 820px; }
.booking-cabinet .ab-collaborations h3 { margin: 0; }
.booking-cabinet .ab-collab-form { display: grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; max-width: 620px; margin: 16px 0 20px; }
.booking-cabinet .ab-collab-form > .ab-field { grid-column:1; grid-row:1; }
.booking-cabinet .ab-collab-form > button { justify-self:start; grid-column:1/-1; }
.booking-cabinet .ab-collab-form > button[type=submit] { grid-column:2; grid-row:1; align-self:end; min-height:44px; }
.booking-cabinet .ab-collab-form > :is(#ab-collab-results,.ab-collab-selection) { grid-column:1/-1; }
.booking-cabinet #ab-collab-results { max-height:220px; overflow-y:auto; overscroll-behavior:contain; }
.booking-cabinet #ab-collab-results:empty { display:none; }
.booking-cabinet .ab-collab-form input { width: 100%; min-height: 44px; }
.booking-cabinet .ab-collab-result, .booking-cabinet .ab-collab-selection, .booking-cabinet .ab-collaboration-row { display: flex; align-items: center; gap: 12px; padding: 12px 0; min-width: 0; }
.booking-cabinet .ab-collab-avatar { width: 44px; height: 44px; border-radius: 50%; background: var(--bg-secondary, #f0f1f3); display: grid; place-items: center; flex: 0 0 44px; overflow: hidden; }
.booking-cabinet .ab-collab-avatar img { width: 100%; height: 100%; object-fit: cover; }
.booking-cabinet .ab-collab-copy { display: grid; gap: 4px; min-width: 0; flex: 1; overflow-wrap: anywhere; }
.booking-cabinet .ab-collab-copy > a { color: inherit; font-weight: 600; }
.booking-cabinet .ab-collab-status { display: grid; gap: 8px; justify-items: end; text-align: right; }
.booking-cabinet .ab-collab-scope { margin: 16px 0 0; font-size: 13px; }
@media (max-width: 600px) {
 .booking-cabinet .ab-collaborations > .ab-title-row { flex-wrap: wrap; gap:12px; }
 .booking-cabinet .ab-collab-form { grid-template-columns:minmax(0,1fr); }
 .booking-cabinet .ab-collab-form > .ab-field, .booking-cabinet .ab-collab-form > button[type=submit] { grid-column:1; grid-row:auto; }
 .booking-cabinet .ab-collab-form > button[type=submit] { justify-self:stretch; }
 .booking-cabinet .ab-collaboration-row { flex-wrap: wrap; }
 .booking-cabinet .ab-collab-status { flex-basis: 100%; justify-items: start; text-align: left; padding-left: 56px; }
 .booking-cabinet .ab-collab-status .ab-actions { flex-wrap: wrap; }
 .booking-cabinet .ab-collab-result > button, .booking-cabinet .ab-collab-selection > button { flex: 0 1 auto; white-space: normal; }
}

.booking-cabinet .ab-client-comment { margin:18px 0; font-size:14px; }
.booking-cabinet .ab-client-comment p { white-space:pre-wrap; overflow-wrap:anywhere; }

/* Visit details: one close control, compact facts and one consistent action row. */
.booking-cabinet .ab-dialog:has(.ab-visit-summary) { width:min(560px,calc(100vw - 24px)); padding:0; max-height:calc(100dvh - 24px); font-size:13px; scroll-padding-block:52px; }
.booking-cabinet .ab-dialog:has(.ab-visit-summary) .ab-dialog-inner { padding:12px 16px; overflow:visible; }
.booking-cabinet .ab-dialog:has(.ab-visit-summary) .ab-dialog-heading { position:sticky; top:0; z-index:3; background:var(--ab-surface); margin:-12px -16px 8px; padding:8px 16px; gap:12px; }
.booking-cabinet .ab-dialog:has(.ab-visit-summary) .ab-dialog-heading h2 { font-size:18px; line-height:1.3; }
.booking-cabinet .ab-dialog .ab-visit-summary { padding:0 0 4px; }
.booking-cabinet .ab-dialog .ab-visit-summary h3 { margin:8px 0 4px; font-size:18px; line-height:1.3; }
.booking-cabinet .ab-dialog .ab-visit-summary p { margin:0; font-size:13px; }
.booking-cabinet .ab-visit-meta { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.booking-cabinet .ab-visit-meta .ab-visit-when { min-width:0; font-size:12px; }
.booking-cabinet .ab-visit-meta .ab-status { flex:0 1 auto; max-width:55%; font-size:11px; line-height:1.3; text-align:center; padding:3px 7px; }
.booking-cabinet .ab-dialog .ab-visit-details { margin:4px 0; border:0; }
.booking-cabinet .ab-dialog .ab-visit-details .ab-row { grid-template-columns:minmax(0,.6fr) minmax(0,1fr); border:0; padding:4px 0; gap:10px; font-size:13px; }
.booking-cabinet .ab-dialog .ab-visit-details .ab-row strong { justify-self:end; text-align:right; font-size:13px; line-height:1.4; }
.booking-cabinet .ab-dialog:has(.ab-visit-summary) .ab-contact-switcher { padding:6px 0; gap:4px 8px; border:0; }
.booking-cabinet .ab-dialog:has(.ab-visit-summary) .ab-contact-value a { font-size:14px; line-height:1.35; }
.booking-cabinet .ab-dialog .ab-visit-tools { margin:4px 0; padding:0; border:0; }
.booking-cabinet .ab-dialog .ab-visit-tools > summary { min-height:36px; font-size:13px; }
.booking-cabinet .ab-visit-primary .ab-action { width:100%; min-height:40px; padding:7px 10px; font-size:13px; }
.booking-cabinet .ab-dialog .ab-visit-actions { position:sticky; bottom:0; display:flex; flex-wrap:nowrap; justify-content:flex-end; align-items:stretch; gap:8px; margin:0; padding:8px 0 0; border:0; background:var(--ab-surface); }
.booking-cabinet .ab-dialog .ab-visit-actions:empty { display:none; }
.booking-cabinet .ab-dialog .ab-visit-actions > .ab-action { flex:1 1 0; width:auto; height:auto; min-width:0; min-height:44px; padding:6px 8px; font-size:13px; line-height:18px; white-space:normal; justify-content:center; }
.booking-cabinet .ab-dialog .ab-visit-actions > .ab-visit-payment { flex:0 0 44px; width:44px; padding:10px; }
.booking-cabinet .ab-visit-payment svg { width:22px; height:22px; }

/* The status can wrap within its own slot; the detail arrow never changes rows. */
.booking-cabinet .ab-calendar-day-row .ab-visit-tail { display:grid; grid-template-columns:minmax(0,1fr) 44px; width:300px; max-width:100%; gap:8px; align-items:center; }
.booking-cabinet .ab-calendar-day-row .ab-visit-tail > .ab-row-status { grid-column:1; grid-row:1; justify-self:end; margin:0; text-align:center; }
.booking-cabinet .ab-calendar-day-row .ab-visit-tail > .ab-actions { grid-column:2; grid-row:1; margin:0; }
@media(max-width:768px) {
  .booking-cabinet .ab-calendar-day-row .ab-visit-tail { width:100%; }
  .booking-cabinet .ab-calendar-day-row .ab-visit-tail > .ab-row-status { justify-self:start; }
}

/* Visit accounting keeps only the form, useful totals, entries and one Back. */
.booking-cabinet .ab-dialog.ab-finance-visit-dialog { width:min(560px,calc(100vw - 24px)); padding:0; max-height:calc(100dvh - 24px); font-size:14px; }
.booking-cabinet .ab-finance-visit-dialog .ab-dialog-inner { padding:12px 16px; overflow:visible; }
.booking-cabinet .ab-finance-visit-dialog .ab-dialog-heading { position:sticky; top:0; z-index:3; background:var(--ab-surface); margin:-12px -16px 10px; padding:8px 16px; }
.booking-cabinet .ab-finance-visit-dialog .ab-dialog-heading h2 { font-size:18px; line-height:1.3; }
.booking-cabinet .ab-finance-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 16px; margin:0 0 12px; }
.booking-cabinet .ab-finance-facts dt { color:var(--ab-muted); font-size:12px; line-height:1.35; }
.booking-cabinet .ab-finance-facts dd { margin:3px 0 0; font-size:15px; font-weight:500; overflow-wrap:anywhere; }
.booking-cabinet .ab-finance-visit-dialog .ab-form { padding:0; margin:0; border:0; gap:10px; }
.booking-cabinet .ab-finance-visit-dialog .ab-field { gap:4px; }
.booking-cabinet .ab-finance-visit-dialog .ab-field label { font-size:13px; }
.booking-cabinet .ab-finance-visit-dialog .ab-field input,.booking-cabinet .ab-finance-visit-dialog .ab-field select { min-height:40px; padding:8px 10px; }
.booking-cabinet .ab-finance-visit-dialog .ab-finance-check { margin:0; min-height:40px; font-size:13px; }
.booking-cabinet .ab-finance-events { display:grid; gap:10px; margin-top:12px; }
.booking-cabinet .ab-finance-event { display:flex; flex-wrap:wrap; align-items:center; gap:6px 12px; padding:0; font-size:13px; }
.booking-cabinet .ab-finance-event .ab-row-main { flex:1; min-width:0; }
.booking-cabinet .ab-finance-event small { display:block; color:var(--ab-muted); font-size:11px; }
.booking-cabinet .ab-finance-event .ab-action { min-height:36px; padding:5px 8px; font-size:12px; }
.booking-cabinet .ab-finance-footer { display:flex; justify-content:space-between; align-items:stretch; gap:8px; margin-top:12px; padding:0; border:0; background:transparent; }
.booking-cabinet .ab-finance-footer .ab-action { min-width:0; min-height:44px; padding:7px 12px; font-size:13px; }
.booking-cabinet .ab-finance-footer .ab-action--primary { margin-left:auto; }
@media(min-width:1024px) {
  .booking-cabinet .ab-cabinet-top { display:flex; align-items:center; gap:24px; margin-bottom:14px; }
  .booking-cabinet .ab-cabinet-top .ab-utilities { flex:none; margin:0; }
  .booking-cabinet .ab-cabinet-top .ab-utilities a { white-space:nowrap; }
  .booking-cabinet .ab-cabinet-top .ab-head { flex:1; min-width:0; margin:0; gap:20px; }
  .booking-cabinet .ab-cabinet-top .ab-context { flex:none; gap:14px; }
  .booking-cabinet .ab-cabinet-top .ab-context button { padding-inline:8px; }
  .booking-cabinet .ab-cabinet-top .ab-head .ab-select-wrap { max-width:none; margin:0; }
  .booking-cabinet .ab-cabinet-top .ab-head-actions { gap:8px; }
}

/* Personal and business use the same header targets and visit tools. */
.booking-cabinet .ab-cabinet-top .ab-head-actions { --ab-header-icon-size:44px; display:grid; grid-auto-flow:column; grid-auto-columns:var(--ab-header-icon-size); gap:8px; }
body.booking-cabinet .account-booking .ab-cabinet-top .ab-head-actions > .ab-icon { grid-column:auto; grid-row:1; width:var(--ab-header-icon-size); min-width:var(--ab-header-icon-size); height:44px; min-height:44px; }
.booking-cabinet .ab-cabinet-top .ab-settings-toggle { order:4; }
.booking-cabinet .ab-cabinet-top .ab-personal-identity { min-height:44px; }
.booking-cabinet .ab-personal-identity .ab-user-name { margin:0; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.booking-cabinet .ab-finance-state { align-self:flex-start; display:inline-flex; padding:4px 8px; border-radius:20px; background:#f0f2f5; color:#596471; font-size:12px; }
.booking-cabinet .ab-finance-state--financePaid,.booking-cabinet .ab-finance-state--financeFree { background:#edf5ef; color:#426b56; }
.booking-cabinet .ab-finance-state--financePartial { background:#fff4df; color:#84551d; }
.booking-cabinet .ab-finance-availability { color:var(--ab-muted); }
.booking-cabinet .ab-dialog[data-visit-frame] { width:min(560px,calc(100vw - 24px)); height:fit-content; max-height:calc(100dvh - 32px); padding:0; margin:auto; font-size:14px; }
.booking-cabinet .ab-dialog[data-visit-frame] .ab-dialog-inner { max-height:calc(100dvh - 32px); padding:12px 16px; display:flex; flex-direction:column; overflow:hidden; }
.booking-cabinet .ab-visit-frame-body { flex:0 1 auto; min-height:0; overflow:auto; display:flex; flex-direction:column; }
.booking-cabinet .ab-visit-frame-body > * { flex-shrink:0; }
.booking-cabinet .ab-visit-frame-footer { flex:none; }
.booking-cabinet .ab-dialog[data-review-frame] .ab-dialog-inner { height:100%; max-height:100%; }
.booking-cabinet .ab-dialog[data-review-frame] .ab-visit-frame-body { flex:1 1 auto; }
.booking-cabinet .ab-dialog[data-review-frame] .ab-visit-frame-footer { margin-top:10px; padding-top:10px; }
.booking-cabinet .ab-dialog[data-visit-frame] .ab-dialog-heading { position:relative; flex:none; z-index:3; background:var(--ab-surface); margin:-12px -16px 10px; padding:8px 16px; }
.booking-cabinet .ab-dialog[data-visit-frame] .ab-dialog-heading h2 { font-size:18px; }
.booking-cabinet .ab-dialog[data-visit-frame] .ab-visit-actions,.booking-cabinet .ab-dialog[data-visit-frame] .ab-finance-footer { margin-top:0; padding-top:10px; }
.booking-cabinet .ab-note-dialog[data-visit-frame] .ab-form { flex:1; display:flex; flex-direction:column; margin:0; padding:0; border:0; gap:10px; }
.booking-cabinet .ab-note-dialog[data-visit-frame] .ab-field { flex:1; display:flex; flex-direction:column; }
.booking-cabinet .ab-note-dialog[data-visit-frame] textarea { flex:1; min-height:96px; }
.booking-cabinet .ab-note-dialog[data-visit-frame] .ab-visit-frame-footer { display:flex; flex-wrap:nowrap; gap:8px; margin-top:10px; }
.booking-cabinet .ab-note-dialog[data-visit-frame] .ab-visit-frame-footer .ab-action { flex:1 1 0; min-width:0; min-height:44px; }
.booking-cabinet .ab-time-scroll--company-only .ab-time-table { --ab-company-card-width:calc((100vw - var(--ab-axis-width)) / 7); --ab-appointment-width:var(--ab-company-card-width); min-width:max(100%,calc(var(--ab-axis-width) + var(--ab-company-lanes) * var(--ab-company-card-width))); }
.booking-cabinet .account-booking .ab-review-prompt { display:block; width:100%; max-width:320px; border:1px solid #eee5dc; border-radius:16px; padding:14px; }
.booking-cabinet .account-booking :is(.ab-review-footer,.ab-inbox-row) .ab-review-rate-button { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-width:84px; min-height:44px; padding:10px 15px; font-size:13px; line-height:20px; white-space:nowrap; border:1px solid #e1e4e8; background:#fff; border-radius:14px; }
.booking-cabinet .account-booking .ab-review-rate-button svg { width:15px; height:15px; flex-basis:15px; color:#e8590c; }
.booking-cabinet .account-booking .ab-review-footer { flex-wrap:nowrap; }
@media(max-width:768px) {
  body.booking-cabinet .account-booking .ab-cabinet-top .ab-head { grid-template-columns:minmax(0,1fr) auto; }
  .booking-cabinet .ab-cabinet-top .ab-head-actions { --ab-header-icon-size:40px; gap:4px; }
  .booking-cabinet .ab-cabinet-top .ab-head-actions .ab-icon { width:40px; min-width:40px; height:44px; }
  .booking-cabinet .ab-cabinet-top .ab-personal-identity { grid-column:1/-1; grid-row:2; }
  .booking-cabinet .ab-time-scroll--company-only .ab-time-table { --ab-company-card-width:150px; }
}
@media(max-width:360px) {
  .booking-cabinet .ab-cabinet-top .ab-head-actions { --ab-header-icon-size:36px; }
  .booking-cabinet .ab-cabinet-top .ab-head-actions .ab-icon { width:36px; min-width:36px; }
  body.booking-cabinet .account-booking .ab-cabinet-top .ab-context { gap:0; }
  body.booking-cabinet .account-booking .ab-cabinet-top .ab-context button { padding-inline:4px; font-size:12px; }
}

/* Compact visit content, one selected contact and native page scrolling. */
.booking-cabinet { overflow-x:clip; }
.booking-cabinet .ab-contact-switcher { display:block; padding:6px 0; border:0; }
.booking-cabinet .ab-contact-channels { display:flex; flex-wrap:nowrap; gap:6px; margin-bottom:5px; }
.booking-cabinet .ab-contact-channels .ab-action { width:36px; min-height:36px; padding:8px; }
.booking-cabinet .ab-contact-value { display:block; }
.booking-cabinet .ab-contact-label { display:block; font-size:12px; margin-bottom:2px; }
.booking-cabinet .ab-contact-text { display:inline; overflow-wrap:anywhere; }
.booking-cabinet .ab-contact-value a { display:inline; }
.booking-cabinet .ab-contact-text .ab-contact-copy { display:inline-flex; vertical-align:super; width:24px; min-width:24px; height:24px; min-height:24px; margin:0 0 0 3px; padding:4px; border:0; border-radius:5px; background:transparent; box-shadow:none; }
.booking-cabinet .ab-contact-copy svg { width:15px; height:15px; }
.booking-cabinet .ab-dialog .ab-contact-status { font-size:11px; margin:2px 0 0; }
.booking-cabinet .ab-inline-note { margin:10px 0 4px; display:grid; gap:5px; min-width:0; }
.booking-cabinet .ab-inline-note-heading { display:flex; align-items:center; justify-content:space-between; gap:8px; color:var(--ab-muted); font-size:12px; }
.booking-cabinet .ab-inline-note-heading .ab-action { width:36px; min-height:36px; padding:8px; }
.booking-cabinet .ab-inline-note textarea { display:block; width:100%; height:60px; min-height:60px; max-height:120px; padding:8px 10px; border:1px solid var(--ab-line); border-radius:10px; resize:vertical; font:inherit; line-height:1.4; }
.booking-cabinet .ab-inline-note-footer { display:flex; align-items:center; gap:6px; min-height:32px; }
.booking-cabinet .ab-inline-note-footer .ab-action { min-height:32px; padding:5px 10px; font-size:12px; }
.booking-cabinet .ab-inline-note-status { flex:1; font-size:11px; overflow-wrap:anywhere; }
.booking-cabinet .ab-visit-tools { margin:6px 0 0; gap:6px; }
.booking-cabinet .ab-visit-tools .ab-action { min-height:36px; padding:7px 10px; font-size:12px; }
.booking-cabinet .ab-visit-actions:empty { display:none; }
.booking-cabinet button.ab-calendar-day-row { width:100%; text-align:left; color:inherit; background:transparent; border-right:0; border-bottom:1px solid var(--ab-line); border-radius:0; font:inherit; }
.booking-cabinet button.ab-calendar-day-row:hover { background:#f7f8fa; }
.booking-cabinet .ab-calendar-day-row .ab-visit-details { display:grid; place-items:center; width:44px; height:44px; }
.booking-cabinet .ab-calendar-day-row .ab-visit-details svg { width:20px; height:20px; }
.booking-cabinet .ab-calendar-day-row .ab-visit-tail > .ab-visit-details { grid-column:2; grid-row:1; }
.booking-cabinet .ab-inbox-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),320px)); gap:10px; max-width:100%; }
.booking-cabinet .ab-content:has(.ab-inbox-list) { max-width:100%; }
.booking-cabinet .ab-inbox-row { grid-template-columns:28px minmax(0,1fr); align-content:start; align-items:start; gap:8px; padding:12px; margin:0; border:1px solid var(--ab-line); border-radius:16px; background:var(--ab-surface); }
.booking-cabinet .ab-inbox-row > .ab-actions { grid-column:2; flex-direction:row; flex-wrap:wrap; max-width:none; }
.booking-cabinet .ab-inbox-row-icon { width:28px; height:28px; }
.booking-cabinet .ab-inbox-copy p { margin:3px 0; font-size:12px; }
.booking-cabinet .ab-inbox-copy strong { line-height:1.35; }
@media(max-width:768px) {
  .booking-cabinet .account-booking { touch-action:pan-x pan-y; }
  .booking-cabinet .account-booking .ab-time-scroll { max-height:none; overflow-x:auto; overflow-y:hidden; touch-action:pan-x pan-y; }
  .booking-cabinet .ab-time-table { padding-bottom:24px; }
  .booking-cabinet .ab-calendar-toolbar { position:sticky; top:42px; z-index:24; background:var(--bg); padding-block:6px; }
  .booking-cabinet .ab-inline-note textarea { font-size:16px; }
  .booking-cabinet .ab-dialog[data-visit-frame] { max-width:calc(100vw - 24px); overflow-x:hidden; }
}

/* Quiet comment editing; saving appears in the existing heading only when dirty. */
.booking-cabinet .ab-inline-note-heading { min-height:36px; }
.booking-cabinet .ab-inline-note-actions { display:flex; align-items:center; gap:8px; }
.booking-cabinet .ab-inline-note-actions [type="submit"] { width:auto; min-height:36px; padding:6px 8px; border:0; background:transparent; box-shadow:none; font-size:12px; color:var(--text-primary); }
.booking-cabinet .ab-dialog textarea:focus { outline:none; box-shadow:none; border-color:#9aa2ad; }
@media(max-width:768px) {
  .booking-cabinet .ab-inbox-list { grid-template-columns:minmax(0,1fr); width:100%; }
  .booking-cabinet .account-booking .ab-review-prompt,
  .booking-cabinet .account-booking .ab-business-today .ab-review-prompt--business { max-width:none; width:100%; }
}

.booking-cabinet .ab-inline-note-actions [hidden] { display:none; }

.booking-cabinet .ab-reschedule-summary { margin:0 0 12px; font-size:13px; color:var(--ab-muted); }
.booking-cabinet .ab-reschedule-fallback { font-size:12px; margin:6px 0; color:var(--ab-muted); }
.booking-cabinet .ab-reschedule-slots { display:grid; grid-template-columns:repeat(auto-fill,minmax(64px,1fr)); align-content:start; gap:8px; margin:14px 0; }
.booking-cabinet .ab-reschedule-slots .gb-slot { min-height:40px; padding:6px; border:0; border-radius:999px; background:#f0f1f3; box-shadow:none; font-size:14px; white-space:nowrap; }
.booking-cabinet .ab-reschedule-slots .gb-slot[aria-pressed="true"] { background:#111; color:#fff; }
.booking-cabinet .ab-reschedule-footer { display:flex; gap:8px; margin:0; }
.booking-cabinet .ab-reschedule-footer > button { flex:1; min-width:0; }
.booking-cabinet input:autofill { background:#fff !important; box-shadow:inset 0 0 0 1000px #fff !important; -webkit-text-fill-color:var(--text-primary) !important; caret-color:var(--text-primary); }

.booking-cabinet .ab-payment-mark { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; align-items:center; gap:4px 6px; min-height:44px; margin-top:8px; }
.booking-cabinet .ab-payment-mark select { width:100%; max-width:none; min-width:0; min-height:36px; height:36px; padding:5px 7px; border:1px solid #e0e5e8; border-radius:9px; background:#fff; font-size:12px; }
.booking-cabinet .ab-payment-mark .ab-action { min-height:36px; padding:5px 7px; border:0; box-shadow:none; font-size:12px; }
.booking-cabinet .ab-payment-mark-source { grid-column:1 / -1; min-height:12px; line-height:12px; font-size:10px; color:var(--ab-muted); }
.booking-cabinet .ab-payment-mark-error { grid-column:1 / -1; font-size:12px; color:#a14040; margin:3px 0; }
.booking-cabinet .ab-payment-mark [hidden],.booking-cabinet .ab-reschedule-dialog [hidden] { display:none !important; }

.booking-cabinet .ab-review-attribution { display:block; margin-top:6px; font-size:12px; line-height:1.5; }

/* Keep translated context tabs clear of the four header actions on narrow phones. */
@media(max-width:480px) {
 body.booking-cabinet .account-booking .ab-cabinet-top .ab-head { column-gap:6px; }
 body.booking-cabinet .account-booking .ab-cabinet-top .ab-context { min-width:0; gap:0; }
 body.booking-cabinet .account-booking .ab-cabinet-top .ab-context button { padding-inline:4px; font-size:12px; }
}
@media(max-width:360px) {
 body.booking-cabinet .account-booking .ab-cabinet-top .ab-context button { font-size:11px; padding-inline:3px; }
}

.booking-cabinet .ab-reviews-title select { max-width:280px; min-width:0; min-height:40px; border:1px solid #e1e4e8; border-radius:10px; background:#fff; padding:8px 12px; font-size:16px; }

/* A real entry into Work before the user has a company, profile or invitation. */
.booking-cabinet .ab-nav:has(> [data-ab-value="publications"]) { border-bottom:0; }
.booking-cabinet .ab-nav:has(> [data-ab-value="publications"]) > button { border-bottom:0; }
.booking-cabinet .ab-nav:has(> [data-ab-value="publications"]) > button[aria-current="page"] { font-weight:600; color:#202329; }
@media(max-width:768px) {
 .booking-cabinet .ab-nav:has(> [data-ab-value="publications"]) { grid-template-columns:.8fr 1fr 1.25fr 1fr 1.15fr; }
}
.booking-cabinet .account-booking:has(.ab-work-start) { padding-bottom:16px; }
.booking-cabinet .ab-content:has(> .ab-work-start) { display:grid; place-items:center; min-height:calc(100svh - 160px); padding:24px 0; }
.booking-cabinet .ab-work-start { width:100%; max-width:520px; margin:0 auto; padding:32px 24px; border:0; border-radius:24px; background:var(--surface); }
.booking-cabinet .ab-work-start h2 { font-size:21px; line-height:1.35; margin:0 0 12px; }
.booking-cabinet .ab-work-start-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:20px; }
.booking-cabinet .ab-work-start-actions a { max-width:100%; min-height:46px; padding:10px 12px; border:0; background:#f0f1f3; box-shadow:none; transform:none; transition:none; white-space:normal; text-align:center; }
.booking-cabinet .ab-work-start-actions .ab-action--primary { background:#171717; color:#fff; }
@media(max-width:480px) { .booking-cabinet .ab-work-start-actions { grid-template-columns:minmax(0,1fr); } }
