/* Client card only. Values from the live Oct 15 prototype captured Oct 20:
   interface-refresh.css (dialog), styles.css (summary), followup-15-17.css (contacts).
   Other cabinet dialogs and the client directory retain their existing styling. */
.booking-cabinet .ab-dialog.ab-client-card {
  position:fixed; inset:0; margin:auto; padding:0; width:min(560px,calc(100% - 24px));
  max-width:calc(100% - 24px); max-height:calc(100dvh - 24px); height:fit-content;
  border:1px solid #e1e5ea; border-radius:20px; background:#fff;
  box-shadow:0 24px 80px #17212e26; overflow:auto; color:#1a1a1a;
  font:400 16px/1.5 var(--font-family); scroll-padding-block:20px;
}
.booking-cabinet .ab-client-card .ab-dialog-inner { padding:20px; overflow-x:hidden; }
.booking-cabinet .ab-client-card .ab-modal-head { align-items:center; gap:16px; margin:0 0 18px; }
.booking-cabinet .ab-client-card .ab-modal-head h2 { font-size:21px; font-weight:600; line-height:1.3; letter-spacing:-.025em; }
.booking-cabinet .ab-client-card .ab-modal-head button { display:grid; place-items:center; margin:-7px; padding:10px; min-width:44px; min-height:44px; }
.booking-cabinet .ab-client-card .ab-modal-head svg { width:22px; height:22px; }
.booking-cabinet .ab-client-card h3 { margin:0; font-size:16px; font-weight:600; line-height:1.5; letter-spacing:-.025em; overflow-wrap:anywhere; }
.booking-cabinet .ab-client-card p { margin:0; font-size:13px; line-height:1.5; }
.booking-cabinet .ab-client-card .ab-client-business { margin:8px 0 0; color:#6b7280; }
.booking-cabinet .ab-client-card-summary { margin-top:16px; padding:20px; border-radius:14px; background:#f6f7f8; }
.booking-cabinet .ab-client-score { display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; }
.booking-cabinet .ab-client-score > strong { font-size:25px; font-weight:600; color:#557865; }
.booking-cabinet .ab-client-score > span { font-size:13px; color:#808995; }
.booking-cabinet .ab-client-card-summary h4 { margin:24px 0 1.33em; font-size:14px; font-weight:500; line-height:1.5; }
.booking-cabinet .ab-client-reliability-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:14px; }
.booking-cabinet .ab-client-reliability-grid > div { display:flex; flex-direction:column; gap:6px; min-width:0; }
.booking-cabinet .ab-client-reliability-grid strong { font-size:23px; font-weight:500; }
.booking-cabinet .ab-client-reliability-grid span { font-size:12px; color:#7c858f; line-height:1.5; overflow-wrap:anywhere; }
.booking-cabinet .ab-client-reliability-grid .good strong { color:#608470; }
.booking-cabinet .ab-client-reliability-grid .late strong { color:#b48754; }
.booking-cabinet .ab-client-reliability-grid .absent strong { color:#a57787; }
.booking-cabinet .ab-client-card .ab-client-reliability-help { margin-top:12px; color:#6b7280; }
.booking-cabinet .ab-client-rating-rules { margin-top:16px; padding-top:12px; border-top:1px solid #e3e6e9; }
.booking-cabinet .ab-client-rating-rules summary { min-height:34px; font-size:13px; color:#6b7680; cursor:pointer; }
.booking-cabinet .ab-client-card .ab-client-rating-rules p { margin-top:12px; font-size:13px; color:#77818b; line-height:1.7; }
.booking-cabinet .ab-client-contact-details { margin:14px 0; border:1px solid #e2e5e9; border-radius:12px; background:#fff; }
.booking-cabinet .ab-client-contact-details > summary { min-height:42px; padding:10px 12px; font-size:14px; font-weight:600; line-height:1.5; list-style-position:inside; cursor:pointer; }
.booking-cabinet .ab-client-contact-links { display:grid; grid-template-columns:minmax(0,1fr); gap:0; min-width:0; padding:0 12px 10px; margin-top:10px; }
.booking-cabinet .ab-client-contact-links > .ab-action { justify-self:start; margin-top:10px; }
.booking-cabinet .ab-client-contact-link { display:grid; grid-template-columns:minmax(72px,92px) minmax(0,1fr); align-items:center; gap:5px 10px; min-width:0; padding:8px 0; border-bottom:1px solid #eceef0; font-size:13px; line-height:1.35; }
.booking-cabinet .ab-client-contact-link > span { min-width:0; color:#7a828b; font-size:12px; }
.booking-cabinet .ab-client-contact-link > a { min-width:0; max-width:100%; overflow-wrap:anywhere; word-break:normal; color:#25292e; text-decoration:underline; text-decoration-color:#c6cbd1; text-underline-offset:3px; }
.booking-cabinet .ab-client-contact-link > a:focus-visible { outline:2px solid #262a30; outline-offset:2px; border-radius:2px; }
.booking-cabinet .ab-client-card .ab-client-visits-title { margin-top:24px; }
.booking-cabinet .ab-client-visit > button { display:flex; gap:14px; align-items:center; width:100%; min-height:76px; border:0; border-left:3px solid #2563a6; border-bottom:1px solid #e4e8ed; background:transparent; color:inherit; padding:12px; text-align:left; font:500 16px/1.5 var(--font-family); cursor:pointer; }
.booking-cabinet .ab-client-visit-time { min-width:0; font-size:16px; font-weight:600; line-height:1.4; font-variant-numeric:tabular-nums; }
.booking-cabinet .ab-client-visit-time small { display:block; margin-top:2px; font-size:12px; color:#6b7280; }
.booking-cabinet .ab-client-visit-main { min-width:0; flex:1; }
.booking-cabinet .ab-client-visit-main > strong { display:block; font-weight:500; overflow-wrap:anywhere; }
.booking-cabinet .ab-client-visit-meta { display:block; font-size:14px; color:#6b7280; line-height:1.4; overflow-wrap:anywhere; }
.booking-cabinet .ab-client-visit-place { display:flex; align-items:center; gap:5px; margin-top:3px; color:#4d5b69; font-size:12px; line-height:1.3; overflow-wrap:anywhere; }
.booking-cabinet .ab-client-visit-place::before { content:''; width:6px; height:6px; border-radius:50%; background:#2563a6; flex-shrink:0; }
.booking-cabinet .ab-client-visit-state { display:grid; max-width:230px; text-align:right; flex-shrink:0; }
.booking-cabinet .ab-client-visit-state > .ab-status { margin-top:8px; padding:4px 10px; font-size:13px; line-height:1.3; font-weight:500; white-space:normal; text-align:center; }
.booking-cabinet .ab-client-visit .ab-status--pending { color:#9a571f; background:#fff1de; }
.booking-cabinet .ab-client-visit .ab-status--confirmed { color:#315f9a; background:#eaf1fb; }
.booking-cabinet .ab-client-visit .ab-status--in_progress { color:#745099; background:#f2ebfa; }
.booking-cabinet .ab-client-visit .ab-status--completed { color:#347459; background:#e9f4ed; }
.booking-cabinet .ab-client-visit .ab-status--cancelled { color:#a44339; background:#faece8; }
.booking-cabinet .ab-client-visit .ab-status--no_show { color:#9a3e6c; background:#f9e9f1; }
.booking-cabinet .ab-client-visit .ab-status--expired { color:#666e7a; background:#edf0f3; }
.booking-cabinet .ab-client-note { display:grid; gap:6px; margin-top:15px; }
.booking-cabinet .ab-client-note > label { font-size:14px; color:#646b74; }
.booking-cabinet .ab-client-note > textarea { width:100%; min-height:44px; padding:11px 13px; border:1px solid var(--border); border-radius:12px; resize:vertical; font:inherit; }
.booking-cabinet .ab-client-note > button { justify-self:end; margin-top:9px; min-height:46px; padding:11px 18px; font-size:14px; font-weight:600; line-height:1.35; letter-spacing:-.01em; border-radius:14px; border-color:#111; color:#fff; background:linear-gradient(#292929,#111); box-shadow:0 4px 10px #17212e10,inset 0 1px 0 #ffffff26; }
.booking-cabinet .ab-client-note p { overflow-wrap:anywhere; white-space:pre-wrap; }
.booking-cabinet .ab-client-note > [role=alert] { color:var(--danger); }
@media(max-width:768px) {
  .booking-cabinet .ab-client-card-summary { padding:16px; }
  .booking-cabinet .ab-client-reliability-grid { gap:8px; }
  .booking-cabinet .ab-client-contact-link { grid-template-columns:minmax(68px,78px) minmax(0,1fr); gap:4px 8px; padding:7px 0; font-size:12px; }
  .booking-cabinet .ab-client-contact-link > span { font-size:11px; }
  .booking-cabinet .ab-client-visit > button { display:grid; grid-template-columns:54px minmax(0,1fr); align-items:start; gap:8px 10px; padding:12px 2px; min-height:90px; }
  .booking-cabinet .ab-client-visit-time { grid-column:1; grid-row:1; min-width:0; font-variant-numeric:tabular-nums; }
  .booking-cabinet .ab-client-visit-main { grid-column:2; grid-row:1; }
  .booking-cabinet .ab-client-visit-state { grid-column:2; grid-row:2; justify-self:start; width:100%; max-width:none; text-align:left; }
  .booking-cabinet .ab-client-visit-state > .ab-status { justify-self:start; }
}
