* { box-sizing: border-box; }
:root {
  --patient-primary: var(--context-primary);
  --patient-primary-soft: var(--context-primary-soft);
  --patient-primary-strong: var(--context-primary-strong);
  --patient-on-primary: var(--context-on-primary);
  --patient-text: var(--ds-color-text-primary);
  --patient-muted: var(--ds-color-text-secondary);
  --patient-border: var(--ds-color-border-shell);
  --patient-surface: var(--ds-color-surface);
  --patient-surface-soft: var(--ds-color-surface-subtle);
  --patient-success: var(--ds-color-success);
  --patient-success-soft: var(--ds-color-success-soft);
}
body { margin: 0; min-width: 1080px; background: var(--patient-surface); color: var(--patient-text); }
button, a { font: inherit; }
button { cursor: pointer; }
.pd-app { min-height: 100vh; background: var(--patient-surface); }
.pd-shell { display: grid; grid-template-columns: 248px minmax(0, 1fr); grid-template-rows: 72px minmax(952px, 1fr); min-height: 64rem; }
.pd-sidebar { grid-row: 1 / 3; border-right: 1px solid var(--patient-border); background: #fff; padding: 1.125rem 1rem; position: relative; z-index: 3; }
.pd-logo { display: block; width: 100px; height: 20px; object-fit: contain; object-position: left center; margin-bottom: 49px; }
.pd-facility-exit { border: 0; background: none; color: var(--patient-muted); height: 44px; padding: 0; font-weight: 600; }
.pd-facility-identity { display: grid; grid-template-columns: 32px 1fr; gap: 0.25rem 0.75rem; margin: 8px 0 20px; }
.pd-facility-mark { grid-row: 1 / 3; width: 32px; height: 32px; border-radius: 8px; background: var(--patient-primary-soft); color: var(--patient-primary); display: grid; place-items: center; font-size: 0.6875rem; font-weight: 800; overflow: hidden; }
.pd-facility-mark img, .pd-global-facility-logo img { width: 100%; height: 100%; border-radius: inherit; object-fit: contain; }
.pd-facility-name { font-family: inherit; font-size: 1rem; line-height: 1.25rem; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pd-facility-type { color: var(--patient-muted); font-family: inherit; font-size: 0.8125rem; line-height: 1.125rem; font-weight: 400; }
.pd-switcher { position: relative; margin: 0 0 8px; }
.pd-switcher-trigger { width: 100%; min-height: 2.5rem; height: auto; padding: 0 0.875rem; border: 0; border-radius: 8px; background: var(--patient-surface-soft); color: var(--patient-primary); text-align: left; font-weight: 600; display: flex; justify-content: space-between; align-items: center; }
.pd-switcher-menu { position: absolute; left: 0; right: 0; top: 0; border: 1px solid #e5e7eb; border-radius: 10px; background: #fff; box-shadow: 0 12px 28px rgba(17,24,39,.12); overflow: hidden; z-index: 5; }
.pd-switcher-menu .pd-switcher-trigger { border-radius: 0; }
.pd-switcher-item { width: 100%; min-height: 3.5rem; border: 0; border-top: 1px solid #e5e7eb; background: #fff; display: flex; align-items: center; gap: 0.625rem; padding: 0.5rem 0.625rem; text-align: left; color: var(--patient-text); font-weight: 700; font-size: 0.8125rem; }
.pd-switcher-item:hover { background: var(--patient-primary-soft); }
.pd-sidebar-divider { height: 1px; background: var(--patient-border); margin: 8px 8px; }
.pd-nav { display: grid; gap: 0.5rem; }
.pd-nav-link { min-height: 2.5rem; height: auto; border-radius: 10px; padding: 0.625rem 0.875rem; color: var(--patient-text); text-decoration: none; font-weight: 500; font-size: 0.875rem; }
.pd-nav-link.is-active { background: var(--patient-primary-soft); color: var(--patient-primary); font-weight: 700; }
.pd-nav-link[aria-disabled="true"], [data-disabled-route][aria-disabled="true"] { cursor: not-allowed; opacity: .55; }
.pd-nav-link:focus-visible, .pd-help:focus-visible { outline: 2px solid var(--patient-primary); outline-offset: 2px; }
.pd-help { position: absolute; left: 30px; bottom: 26px; color: var(--patient-muted); text-decoration: none; font-size: 0.8125rem; }
.pd-topbar { grid-column: 2; border-bottom: 1px solid var(--patient-border); min-height: 4.5rem; height: auto; display: flex; align-items: center; justify-content: space-between; padding: 0 2.25rem 0 2.4375rem; }
.pd-book { height: 40px; border: 0; border-radius: 10px; padding: 0 1rem; background: var(--patient-primary); color: var(--patient-on-primary); font-weight: 700; text-decoration: none; }
.pd-book { display: inline-flex; align-items: center; gap: 0.5rem; }
.pd-book img { width: 18px; height: 18px; }
.pd-top-actions { display: flex; align-items: center; gap: 0.75rem; }
.pd-icon-button, .pd-avatar { width: 40px; height: 40px; border-radius: 10px; border: 1px solid #e5e7eb; background: #fff; display: grid; place-items: center; position: relative; }
.pd-icon-button > img { width: 22px; height: 22px; }
.pd-avatar { border: 0; border-radius: 50%; background: var(--patient-primary-soft); color: var(--patient-primary); font-weight: 800; }
.pd-badge { position: absolute; top: -5px; right: -7px; min-width: 18px; min-height: 1.125rem; height: auto; padding: 0 0.25rem; border-radius: 9px; background: #2F6BFF; color: #fff; font-size: 0.6875rem; display: grid; place-items: center; }
.pd-main { grid-column: 2; padding: 2.125rem 2.5rem 3rem; overflow: hidden; }
.pd-heading { margin: 0; font-size: 1.875rem; line-height: 2.5625rem; }
.pd-lead { color: var(--patient-muted); margin: 1px 0 24px; font-size: 0.875rem; }
.pd-section-heading { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.pd-section-heading h2 { margin: 0; font-size: 1rem; }
.pd-text-action { border: 0; background: none; color: var(--patient-primary); font-weight: 700; font-size: 0.875rem; }
.pd-notifications { margin-bottom: 28px; }
.pd-notification-list { border-radius: 10px; background: var(--patient-surface-soft); overflow: hidden; }
.pd-notification-row { min-height: 2.125rem; display: grid; grid-template-columns: 24px 270px minmax(0,1fr) 24px; align-items: center; gap: 0.5rem; padding: 0 1rem; font-size: 0.8125rem; }
.pd-notification-row + .pd-notification-row { border-top: 1px solid var(--z-row-separator, #f1f3f5); }
.pd-notification-title { font-weight: 700; font-size: 0.875rem; }
.pd-notification-icon { width: 16px; height: 16px; }
.pd-notification-copy { color: var(--patient-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pd-dismiss { border: 0; background: none; color: var(--patient-muted); font-size: 1.125rem; }
.pd-empty-notice { padding: 0.875rem 1.125rem; background: var(--patient-surface-soft); border-radius: 10px; font-size: 0.8125rem; }
.pd-empty-hero { border: 1px solid var(--patient-border); border-radius: 12px; padding: 2.125rem; text-align: center; margin: 24px 0; }
.pd-empty-hero h2 { margin: 0 0 8px; font-size: 1.375rem; }
.pd-empty-hero p { color: var(--patient-muted); }
.pd-empty-actions { display: flex; justify-content: center; gap: 0.75rem; }
.pd-primary, .pd-secondary { border-radius: 10px; min-height: 2.5rem; height: auto; padding: 0 1rem; font-weight: 700; }
.pd-primary { border: 0; background: var(--patient-primary); color: #fff; }
.pd-secondary { border: 1px solid var(--patient-border); background: #fff; color: var(--patient-primary); }
.pd-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.pd-step { border: 1px solid var(--patient-border); border-radius: 12px; padding: 1.25rem; }
.pd-step-number { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: var(--patient-primary-soft); color: var(--patient-primary); font-weight: 800; }
.pd-loading { min-height: 100vh; display: grid; place-items: center; color: var(--patient-muted); }
.pd-error { max-width: 620px; margin: 100px auto; border: 1px solid #fecaca; background: #fef2f2; border-radius: 12px; padding: 1.5rem; }
.pd-not-found { max-width: 560px; margin: 96px auto; padding: 2rem; border: 1px solid var(--patient-border); border-radius: 12px; background: #fff; text-align: center; }
.pd-not-found-code { margin: 0 0 8px; color: var(--patient-primary); font-size: 0.875rem; font-weight: 700; }
.pd-not-found h1 { margin: 0; font-size: 1.75rem; line-height: 2.375rem; }
.pd-not-found > p:not(.pd-not-found-code) { margin: 8px 0 24px; color: var(--patient-muted); font-size: 0.875rem; }
.pd-context-warning { color: #92400e; background: #fffbeb; border-radius: 8px; padding: 0.625rem 0.875rem; margin-bottom: 18px; font-size: 0.8125rem; }

/* Patient therapy list. */
.pd-therapy { width: 1112px; max-width: 100%; }
.pd-therapy-list { display: grid; gap: 1.5rem; }
.pd-therapy-card { padding: 1.5rem; border: 1px solid #e5eaf2; border-radius: 12px; background: #fff; }
.pd-therapy-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1.5rem; }
.pd-therapy-card-heading h2 { margin: 10px 0 4px; color: #111827; font-size: 1.25rem; line-height: 1.75rem; }
.pd-therapy-card-heading p { margin: 0; color: #5b6b84; font-size: 0.8125rem; }
.pd-therapy-status { display: inline-flex; min-height: 1.625rem; align-items: center; padding: 0 0.625rem; border-radius: 999px; font-size: 0.75rem; font-weight: 700; }
.pd-therapy-status.is-active { color: #166534; background: #eafcef; }
.pd-therapy-status.is-paused { color: #92400e; background: #fff4e8; }
.pd-therapy-link { min-height: 2.5rem; display: inline-flex; align-items: center; padding: 0 1rem; border: 1px solid #2f6bff; border-radius: 10px; color: #2f6bff; text-decoration: none; font-size: 0.875rem; font-weight: 700; }
.pd-therapy-link.is-disabled { border-color: #d7dfea; color: #7b879b; cursor: not-allowed; }
.pd-therapy-dates { display: flex; gap: 2rem; margin: 24px 0; }
.pd-therapy-dates div, .pd-therapy-counts div { display: grid; gap: 0.3125rem; }
.pd-therapy-dates dt, .pd-therapy-counts dt { color: #6b7280; font-size: 0.75rem; }
.pd-therapy-dates dd, .pd-therapy-counts dd { margin: 0; color: #111827; font-size: 0.875rem; font-weight: 700; }
.pd-therapy-progress-copy { display: flex; justify-content: space-between; margin-bottom: 9px; color: #111827; font-size: 0.875rem; }
.pd-therapy-progress-copy span { color: #2f6bff; font-weight: 700; }
.pd-therapy-progress { display: block; width: 100%; height: 10px; border: 0; border-radius: 999px; overflow: hidden; appearance: none; }
.pd-therapy-progress::-webkit-progress-bar { background: #e8edf5; border-radius: 999px; }
.pd-therapy-progress::-webkit-progress-value { background: #2f6bff; border-radius: 999px; }
.pd-therapy-progress::-moz-progress-bar { background: #2f6bff; border-radius: 999px; }
.pd-therapy-counts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; margin: 22px 0; padding: 1.125rem 0; border-top: 0; border-bottom: 0; }
.pd-therapy-counts dd { font-size: 1.125rem; }
.pd-therapy-next { display: flex; gap: 1rem; color: #5b6b84; font-size: 0.8125rem; }
.pd-therapy-next strong { color: #111827; }
.pd-therapy-warning { margin-bottom: 24px; padding: 0.875rem 1rem; border-radius: 10px; background: #fff4e8; color: #92400e; font-size: 0.8125rem; }
.pd-therapy-empty { padding: 2rem 1.5rem; border: 1px solid #e5eaf2; border-radius: 12px; background: #fff; text-align: center; }
.pd-therapy-empty h2 { margin: 0 0 8px; font-size: 1.25rem; }
.pd-therapy-empty p { margin: 0; color: #5b6b84; font-size: 0.875rem; }

/* Empty global dashboard follows Figma 320:2. */
.pd-empty-dashboard { width: 1112px; max-width: 100%; }
.pd-empty-dashboard > h1 { margin: 0; font-size: 1.875rem; line-height: 2.5625rem; font-weight: 700; letter-spacing: -.02em; }
.pd-empty-lead { margin: 0.0625rem 0 1.5rem; color: #6b7280; font-size: 0.875rem; line-height: 1.25rem; }
.pd-empty-notifications { min-height: 0; height: auto; margin-bottom: 2.125rem; }
.pd-empty-welcome { min-height: 3.25rem; height: auto; padding: 0 1rem 0 1.25rem; border-radius: 10px; background: #f3f4f6; display: grid; grid-template-columns: 18px 148px minmax(0, 1fr) 20px; align-items: center; gap: 1rem; }
.pd-empty-welcome > img { width: 18px; height: 18px; }
.pd-empty-welcome strong { font-size: 0.875rem; font-weight: 600; }
.pd-empty-welcome > span { color: #6b7280; font-size: 0.8125rem; }
.pd-empty-primary-grid, .pd-empty-lower-grid { display: grid; grid-template-columns: 700px 388px; gap: 1.5rem; }
.pd-empty-primary-grid { min-height: 14.875rem; height: auto; margin-bottom: 24px; }
.pd-empty-lower-grid { min-height: 15.625rem; height: auto; }
.pd-empty-first-appointment, .pd-empty-side-card, .pd-empty-how { border: 1px solid #e5e7eb; border-radius: 12px; background: #fff; }
.pd-empty-first-appointment { min-height: 14.875rem; height: auto; padding: 1.5625rem 1.5rem; text-align: center; }
.pd-empty-calendar { width: 58px; min-height: 3.625rem; height: auto; margin: 0 auto 17px; border-radius: 50%; background: #eef4ff; display: grid; place-items: center; }
.pd-empty-calendar img { width: 28px; height: 28px; }
.pd-empty-first-appointment h2 { margin: 0 0 7px; font-size: 1.125rem; line-height: 1.5625rem; }
.pd-empty-first-appointment p { margin: 0; color: #6b7280; font-size: 0.875rem; line-height: 1.25rem; }
.pd-empty-book { margin-top: 15px; display: inline-flex; align-items: center; gap: 0.5rem; }
.pd-empty-book img { width: 18px; height: 18px; }
.pd-empty-side-card { min-height: 14.875rem; height: auto; padding: 1.25rem 1.3125rem; }
.pd-empty-side-card h2, .pd-empty-how h2 { margin: 0; font-size: 1.125rem; line-height: 1.5625rem; }
.pd-empty-side-card > p, .pd-empty-how > p { margin: 10px 0 0; color: #6b7280; font-size: 0.8125rem; line-height: 1.125rem; }
.pd-empty-inline { min-height: 3.625rem; margin-top: 10px; padding: 0.625rem 1rem; border-radius: 10px; background: #f3f4f6; display: grid; align-content: center; }
.pd-empty-inline strong { font-size: 0.875rem; line-height: 1.375rem; }
.pd-empty-inline span { color: #4b5563; font-size: 0.875rem; line-height: 1.375rem; }
.pd-empty-side-card > .pd-secondary { margin-top: 16px; }
.pd-empty-how { min-height: 15.625rem; height: auto; padding: 1.1875rem 1.3125rem; }
.pd-empty-how > p { margin: 2px 0 0; color: #6b7280; font-size: 0.75rem; line-height: 1.0625rem; }
.pd-empty-journey { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 27px 0 0; padding: 0; list-style: none; }
.pd-empty-journey::before { content: ""; position: absolute; top: 28px; left: 16.666%; right: 16.666%; height: 2px; background: #dce8ff; }
.pd-empty-step { position: relative; min-width: 0; display: flex; flex-direction: column; align-items: center; text-align: center; padding: 0 0.5rem; }
.pd-empty-step-icon { position: relative; z-index: 1; width: 56px; height: 56px; display: grid; place-items: center; border-radius: 50%; background: #eaf1ff; color: #2f6bff; }
.pd-empty-step-icon svg { width: 24px; height: 24px; }
.pd-empty-step-number { position: absolute; right: -5px; bottom: -4px; width: 20px; min-height: 1.25rem; height: auto; display: grid; place-items: center; border: 2px solid #fff; border-radius: 50%; background: #2f6bff; color: #fff; font-size: 0.625rem; font-weight: 700; }
.pd-empty-step-title { margin-top: 18px; color: #111827; font-size: 0.8125rem; line-height: 1.125rem; font-weight: 700; }
.pd-empty-step a.pd-empty-step-title { color: #1557d6; text-decoration: none; }
.pd-empty-step a.pd-empty-step-title:hover { color: #1557d6; text-decoration: underline; }
.pd-empty-step a.pd-empty-step-title:focus-visible { outline: 2px solid #2f6bff; outline-offset: 3px; border-radius: 2px; }
.pd-empty-step small { max-width: 180px; margin-top: 5px; color: #5b6b84; font-size: 0.75rem; line-height: 1rem; }
@media (max-width: 760px) { .pd-empty-how { height: auto; } .pd-empty-journey { grid-template-columns: 1fr; gap: 1.25rem; margin-top: 20px; } .pd-empty-journey::before { top: 28px; bottom: 28px; left: 28px; right: auto; width: 2px; height: auto; } .pd-empty-step { min-height: 3.5rem; display: grid; grid-template-columns: 56px 1fr; column-gap: 1rem; align-items: center; text-align: left; padding: 0; } .pd-empty-step-icon { grid-row: span 2; } .pd-empty-step-title { margin-top: 0; } .pd-empty-step small { max-width: none; margin-top: 2px; } }

.pd-empty-documents { min-height: 15.625rem; height: auto; }
.pd-empty-documents-action { margin-top: 16px; padding: 0; text-align: left; }

/* Global dashboard follows Figma 73:2. */
.pd-app[data-context="global"] .pd-main { padding: 2.125rem 2.5rem 3rem; }
.pd-global-dashboard { width: 1112px; max-width: 100%; }
.pd-global-dashboard > h1 { margin: 0; font-size: 1.875rem; line-height: 2.5625rem; font-weight: 700; letter-spacing: -.02em; }
.pd-global-lead { margin: 0.0625rem 0 1.5rem; color: #6b7280; font-size: 0.875rem; line-height: 1.25rem; }
.pd-global-notifications { min-height: 0; height: auto; margin-bottom: 2.125rem; }
.pd-global-section-heading { min-height: 2.125rem; height: auto; display: flex; align-items: flex-start; justify-content: space-between; }
.pd-global-section-heading h2 { margin: 0; font-size: 1rem; line-height: 1.375rem; font-weight: 600; }
.pd-global-section-heading .pd-text-action { padding: 0.0625rem 0 0; }
.pd-global-notification-list { height: auto; overflow: hidden; border-radius: 10px; background: #f3f4f6; }
.pd-global-notification-row { min-height: 2.125rem; height: auto; padding: 0.5rem 1rem 0.5rem 1.25rem; display: grid; grid-template-columns: 16px 270px minmax(0, 1fr) 20px; align-items: center; column-gap: 1rem; }
.pd-global-notification-row + .pd-global-notification-row { border-top: 1px solid var(--z-row-separator, #f1f3f5); }
.pd-global-notification-row > img { width: 16px; height: 16px; }
.pd-global-notification-row strong { min-width: 0; color: #111827; font-size: 0.875rem; font-weight: 600; white-space: normal; overflow: visible; text-overflow: clip; }
.pd-global-notification-row > span { min-width: 0; color: #6b7280; font-size: 0.8125rem; white-space: normal; overflow: visible; text-overflow: clip; }
.pd-global-notification-row .pd-dismiss { width: 20px; min-height: 1.75rem; height: auto; padding: 0; line-height: 1.25rem; }
.pd-global-notification-empty { min-height: 0; height: auto; display: flex; align-items: center; padding: 0.75rem 1.25rem; color: #6b7280; font-size: 0.8125rem; }
.pd-global-primary-grid, .pd-global-lower-grid { display: grid; grid-template-columns: 700px 388px; gap: 1.5rem; }
.pd-global-primary-grid { min-height: 14.875rem; height: auto; margin-bottom: 24px; }
.pd-global-lower-grid { align-items: start; }
.pd-global-nearest, .pd-global-plan, .pd-global-upcoming, .pd-global-facilities { position: relative; overflow: hidden; }
.pd-global-nearest { min-height: 14.875rem; height: auto; padding: 1.25rem 1.5rem; border-radius: 16px; background: #f3f4f6; }
.pd-global-eyebrow { display: block; color: #2563eb; font-size: 0.75rem; line-height: 1.0625rem; font-weight: 700; }
.pd-global-nearest h2 { margin: 11px 0 4px; max-width: 390px; color: #111827; font-size: 1.5rem; line-height: 2.0625rem; font-weight: 700; }
.pd-global-details { position: absolute; top: 7px; right: 11px; width: 108px; height: 42px; border: 0; background: transparent; color: #2563eb; font-size: 0.875rem; font-weight: 600; }
.pd-global-date { display: block; margin-top: 1px; color: #374151; font-size: 0.875rem; line-height: 1.25rem; font-weight: 600; }
.pd-global-time { display: block; margin-top: 3px; color: #6b7280; font-size: 0.8125rem; line-height: 1.125rem; }
.pd-global-badges { position: absolute; top: 55px; right: 24px; display: flex; gap: 0.5rem; }
.pd-global-badge { min-height: 1.875rem; height: auto; min-width: 0; padding: 0 0.625rem; border: 1px solid #cbd5e1; border-radius: 999px; background: #fff; color: #111826; display: inline-flex; align-items: center; justify-content: center; gap: 0.4375rem; font-size: 0.75rem; line-height: 1rem; font-weight: 600; white-space: normal; }
.pd-global-badge img { width: 14px; height: 14px; }
.pd-global-badge.is-cancelled { border-color: #dc2626; color: #dc2626; }
.pd-global-specialist { position: absolute; left: 24px; right: 24px; bottom: 27px; height: 65px; padding-top: 1.0625rem; border-top: 0; display: flex; align-items: center; gap: 0.875rem; }
.pd-global-avatar { width: 38px; height: 38px; flex: 0 0 38px; display: grid; place-items: center; border: 1px solid #cbd5e1; border-radius: 50%; background: #fff; color: #4f46e5; font-size: 0.875rem; font-weight: 700; }
.pd-global-specialist > span:last-child { display: grid; gap: 0.125rem; }
.pd-global-specialist strong { font-size: 0.875rem; line-height: 1.1875rem; }
.pd-global-specialist small { color: #6b7280; font-size: 0.875rem; line-height: 1.3125rem; }
.pd-appointment-facility-link { color: #2F6BFF; text-decoration: none; }
.pd-appointment-facility-link:hover { text-decoration: underline; }
.pd-appointment-facility-link:focus-visible { outline: 2px solid #2F6BFF; outline-offset: 2px; }
.pd-global-plan { min-height: 14.875rem; height: auto; padding: 1.1875rem 1.3125rem; border: 1px solid #e5e7eb; border-radius: 12px; background: #fff; }
.pd-global-plan-label { color: #6b7280; font-size: 0.6875rem; line-height: 0.9375rem; font-weight: 700; }
.pd-global-plan h2 { margin: 11px 0 5px; color: #111827; font-size: 1.125rem; line-height: 1.5625rem; font-weight: 700; white-space: normal; overflow: visible; text-overflow: clip; }
.pd-global-plan-facility { display: block; color: #6b7280; font-size: 0.8125rem; line-height: 1.125rem; }
.pd-global-progress { display: block; width: 100%; height: 10px; margin: 19px 0 10px; border: 0; border-radius: 999px; overflow: hidden; appearance: none; }
.pd-global-progress::-webkit-progress-bar { background: #e8eaf0; border-radius: 999px; }
.pd-global-progress::-webkit-progress-value { background: #2563eb; border-radius: 999px; }
.pd-global-progress::-moz-progress-bar { background: #2563eb; border-radius: 999px; }
.pd-global-plan > strong { display: block; color: #111827; font-size: 0.8125rem; line-height: 1.125rem; font-weight: 500; }
.pd-global-plan > small { display: block; margin-top: 5px; color: #6b7280; font-size: 0.75rem; line-height: 1.0625rem; white-space: normal; overflow: visible; text-overflow: clip; }
.pd-global-plan-link { position: absolute; right: 12px; bottom: 7px; min-height: 2.625rem; height: auto; padding: 0 0.625rem; border: 0; background: transparent; color: #2563eb; font-size: 0.875rem; font-weight: 600; }
.pd-global-upcoming { min-height: 20.875rem; height: auto; padding: 1.125rem 1.3125rem; border: 1px solid #e5e7eb; border-radius: 12px; background: #fff; }
.pd-global-card-heading { min-height: 3.875rem; height: auto; display: flex; justify-content: space-between; }
.pd-global-card-heading h2, .pd-global-facilities h2 { margin: 0; color: #111827; font-size: 1.125rem; line-height: 1.5625rem; font-weight: 700; }
.pd-global-card-heading small { display: block; margin-top: 2px; color: #6b7280; font-size: 0.75rem; line-height: 1.0625rem; }
.pd-global-card-heading .pd-text-action { align-self: flex-start; margin-top: -5px; padding: 0; min-height: 2.25rem; height: auto; }
.pd-global-visit-row { min-height: 4.875rem; height: auto; display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; align-items: center; gap: 1.75rem; border-top: 1px solid var(--z-row-separator, #f1f3f5); }
.pd-global-visit-row:first-of-type { border-top: 0; }
.pd-global-visit-date, .pd-global-visit-service { display: grid; }
.pd-global-visit-date small { color: #6b7280; font-size: 0.6875rem; line-height: 0.9375rem; font-weight: 700; }
.pd-global-visit-date strong { color: #111827; font-size: 1.125rem; line-height: 1.5625rem; }
.pd-global-visit-service strong { color: #111827; font-size: 0.875rem; line-height: 1.1875rem; font-weight: 600; }
.pd-global-visit-service small { margin-top: 4px; color: #6b7280; font-size: 0.75rem; line-height: 1.0625rem; }
.pd-global-row-badges { display: flex; gap: 0.5rem; }
.pd-global-facilities { min-height: 9.75rem; max-height: 220px; padding: 1.0625rem 1.3125rem 0; border: 1px solid #e5e7eb; border-radius: 12px; background: #fff; }
.pd-global-facilities h2 { font-size: 1.0625rem; margin-bottom: 11px; }
.pd-global-facility-row { width: 100%; min-height: 4.125rem; padding: 0.5625rem 0.125rem 0.5625rem 0; border: 0; border-top: 1px solid var(--z-row-separator, #f1f3f5); background: #fff; display: flex; align-items: center; justify-content: space-between; text-align: left; }
.pd-global-facility-row:first-of-type { border-top: 0; }
.pd-global-facility-row > span:first-child { display: grid; gap: 0.1875rem; }
.pd-global-facility-row strong { color: #111827; font-size: 0.875rem; line-height: 1.1875rem; font-weight: 600; }
.pd-global-facility-row small { color: #6b7280; font-size: 0.75rem; line-height: 1.0625rem; }
.pd-global-facility-logo { width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid #cbd5e1; border-radius: 8px; color: #0f172a; font-size: 0.625rem; font-weight: 600; }
.pd-global-unavailable { min-height: 7rem; display: flex; flex-direction: column; justify-content: center; gap: 0.3125rem; color: #6b7280; font-size: 0.8125rem; }
.pd-global-unavailable strong { color: #111827; font-size: 0.875rem; }
.pd-global-unavailable span { color: #6b7280; font-size: 0.75rem; }

/* Facility dashboard follows Figma 472:2, 402:2 and 320:262. */
.pd-app[data-context="facility"] .pd-sidebar { padding: 0.9375rem 1rem; }
.pd-app[data-context="facility"] .pd-facility-exit { width: 216px; text-align: left; font-size: 0.875rem; line-height: 1.25rem; }
.pd-app[data-context="facility"] .pd-facility-identity { min-height: 2.75rem; margin: 8px 0 16px; grid-template-columns: 32px minmax(0, 1fr); align-content: center; }
.pd-app[data-context="facility"] .pd-facility-name { white-space: normal; overflow: visible; text-overflow: clip; overflow-wrap: anywhere; }
.pd-app[data-context="facility"] .pd-switcher { margin: 0 0 8px; }
.pd-app[data-context="facility"] .pd-sidebar-divider { margin: 8px; }
.pd-app[data-context="facility"] .pd-main { padding: 2.125rem 2.5rem 3rem; }
.pd-facility-dashboard { width: 1112px; max-width: 100%; }
.pd-facility-dashboard > h1 { margin: 0; font-size: 1.875rem; line-height: 2.5625rem; font-weight: 700; letter-spacing: -.02em; }
.pd-facility-lead { margin: 0.0625rem 0 1.5rem; color: #6b7280; font-size: 0.875rem; line-height: 1.25rem; }
.pd-facility-notifications { min-height: 0; height: auto; margin-bottom: 2.125rem; }
.pd-facility-primary-grid, .pd-facility-lower-grid { display: grid; grid-template-columns: 700px 388px; gap: 1.5rem; }
.pd-facility-primary-grid { min-height: 14.875rem; height: auto; margin-bottom: 24px; }
.pd-facility-lower-grid { align-items: start; }
.pd-facility-nearest, .pd-facility-plan, .pd-facility-visits, .pd-facility-documents, .pd-facility-contact { position: relative; overflow: hidden; }
.pd-facility-nearest { min-height: 14.875rem; height: auto; padding: 1.25rem 1.5rem; border-radius: 16px; background: #f3f4f6; }
.pd-facility-nearest h2 { margin: 11px 0 4px; max-width: 390px; color: #111827; font-size: 1.5rem; line-height: 2.0625rem; font-weight: 700; }
.pd-app[data-context="facility"] .pd-global-eyebrow,
.pd-app[data-context="facility"] .pd-global-details,
.pd-app[data-context="facility"] .pd-global-plan-link { color: var(--patient-primary); }
.pd-app[data-context="facility"] .pd-global-badge:not(.is-cancelled) { border-color: color-mix(in srgb, var(--patient-primary) 22%, #cbd5e1); }
.pd-app[data-context="facility"] .pd-global-avatar { color: var(--patient-primary); }
.pd-facility-plan { min-height: 14.875rem; height: auto; padding: 1.1875rem 1.3125rem; border: 1px solid #e5e7eb; border-radius: 12px; background: #fff; }
.pd-facility-plan h2 { margin: 11px 0 5px; color: #111827; font-size: 1.125rem; line-height: 1.5625rem; font-weight: 700; white-space: normal; overflow: visible; text-overflow: clip; }
.pd-facility-plan > strong { display: block; color: #111827; font-size: 0.8125rem; line-height: 1.125rem; font-weight: 500; }
.pd-facility-plan > small { display: block; margin-top: 5px; color: #6b7280; font-size: 0.75rem; line-height: 1.0625rem; }
.pd-app[data-context="facility"] .pd-global-progress::-webkit-progress-value { background: var(--patient-primary); }
.pd-app[data-context="facility"] .pd-global-progress::-moz-progress-bar { background: var(--patient-primary); }
.pd-facility-visits { height: 334px; padding: 1.125rem 1.3125rem; border: 1px solid #e5e7eb; border-radius: 12px; background: #fff; }
.pd-facility-side { display: grid; gap: 1rem; }
.pd-facility-documents { min-height: 9.75rem; height: auto; padding: 1.0625rem 1.3125rem; border: 1px solid #e5e7eb; border-radius: 12px; background: #fff; }
.pd-facility-contact { height: 162px; padding: 1.0625rem 1.3125rem; border: 1px solid #e5e7eb; border-radius: 12px; background: #fff; display: flex; flex-direction: column; }
.pd-facility-documents h2, .pd-facility-contact h2 { margin: 0; color: #111827; font-size: 1.0625rem; line-height: 1.4375rem; }
.pd-facility-card-empty { display: grid; gap: 0.3125rem; margin-top: 10px; padding-right: 1.875rem; }
.pd-facility-card-empty strong { font-size: 0.875rem; line-height: 1.1875rem; }
.pd-facility-card-empty span { color: #6b7280; font-size: 0.75rem; line-height: 1.0625rem; }
.pd-facility-documents .pd-global-plan-link { bottom: 4px; }
.pd-facility-contact .pd-text-action { position: absolute; top: 16px; right: 19px; padding: 0; }
.pd-facility-contact > strong { margin-top: 7px; font-size: 0.875rem; line-height: 1.1875rem; padding-right: 5.9375rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pd-facility-contact > span { margin-top: 4px; color: #6b7280; font-size: 0.75rem; line-height: 1.0625rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pd-modal-backdrop { position: fixed; inset: 0; z-index: 20; display: grid; place-items: center; background: rgba(17, 24, 39, .48); }
.pd-modal { width: 480px; min-height: 16.75rem; border-radius: 12px; background: #fff; box-shadow: 0 24px 60px rgba(17, 24, 39, .22); padding: 1.75rem; display: flex; flex-direction: column; }
.pd-modal h2 { margin: 0 0 12px; font-size: 1.375rem; }
.pd-modal p { margin: 0; color: var(--patient-muted); line-height: 1.55; }
.pd-modal-actions { display: flex; justify-content: flex-end; gap: 0.75rem; margin: auto -12px -2px; padding-top: 1.75rem; }
.pd-modal-cancel, .pd-modal-confirm { height: 40px; border-radius: 10px; padding: 0 1.125rem; font-weight: 700; }
.pd-modal-cancel { border: 1px solid var(--patient-border); background: #fff; color: var(--patient-text); }
.pd-modal-confirm { border: 0; background: var(--patient-primary); color: var(--patient-on-primary); }
@media (max-width: 1200px) {
  body { min-width: 960px; }
  .pd-shell { grid-template-columns: 220px minmax(0,1fr); }
  .pd-sidebar { padding-left: 0.75rem; padding-right: 0.75rem; }
  .pd-notification-row { grid-template-columns: 24px 220px minmax(0,1fr) 24px; }
}

.pd-booking { width: 900px; max-width: 100%; }
.pd-booking-head { margin-bottom: 24px; }
.pd-booking-head a { color: var(--patient-primary); font-size: 0.875rem; text-decoration: none; }
.pd-booking-head h1 { margin: 14px 0 4px; font-size: 1.875rem; line-height: 1.3; }
.pd-booking-head p { margin: 0; color: var(--patient-muted); }
.pd-choice-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.pd-choice { min-height: 7rem; padding: 1.25rem; display: flex; flex-direction: column; align-items: flex-start; gap: 0.4375rem; border: 1px solid var(--patient-border); border-radius: 12px; background: #fff; color: var(--patient-text); text-align: left; text-decoration: none; font: inherit; cursor: pointer; }
.pd-choice:hover, .pd-choice:focus-visible { border-color: var(--patient-primary); outline: 2px solid color-mix(in srgb,var(--patient-primary) 20%,transparent); outline-offset: 2px; }
.pd-choice strong { font-size: 1rem; }
.pd-choice span { color: var(--patient-muted); font-size: 0.8125rem; }
.pd-choice b { margin-top: auto; color: var(--patient-primary); font-size: 0.8125rem; }
.pd-day-picker { margin-bottom: 20px; }
.pd-day-picker label { display: grid; gap: 0.4375rem; width: 220px; font-size: 0.8125rem; font-weight: 700; }
.pd-day-picker input { min-height: 2.625rem; height: auto; padding: 0 0.75rem; border: 1px solid var(--patient-border); border-radius: 10px; font: inherit; }
.pd-booking-empty, .pd-hold { padding: 1.75rem; border: 1px solid var(--patient-border); border-radius: 12px; background: #fff; }
.pd-booking-empty h2, .pd-hold h2 { margin: 0 0 8px; font-size: 1.125rem; }
.pd-booking-empty p, .pd-hold p { color: var(--patient-muted); }
.pd-inline-error { margin: 8px 0; color: #b42318; }


/* Patient PR3B — held booking confirmation */
.pd-hold-timer {
  margin: 0 0 24px;
  padding: 1rem 1.25rem;
  border: 1px solid #bfdbfe;
  border-radius: 12px;
  background: #eff6ff;
  color: #1e3a8a;
}
.pd-confirmation {
  display: grid;
  gap: 1.5rem;
}
.pd-confirmation-card {
  padding: 1.5rem;
  border: 1px solid #e5eaf2;
  border-radius: 12px;
  background: #fff;
}
.pd-confirmation-card h2 {
  margin: 0 0 20px;
}
.pd-booking-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem 2rem;
  margin: 0;
}
.pd-booking-summary div {
  display: grid;
  align-content: start;
  gap: 0.375rem;
}
.pd-booking-summary dt,
.pd-problem-label {
  color: #5b6b84;
  font-size: 0.875rem;
  font-weight: 600;
}
.pd-booking-summary dd {
  margin: 0;
  color: #111827;
  font-weight: 600;
}
.pd-confirmation textarea {
  width: 100%;
  min-height: 7.5rem;
  margin-top: 8px;
  padding: 0.75rem 0.875rem;
  resize: vertical;
  border: 1px solid #d7dfea;
  border-radius: 10px;
  font: inherit;
}
.pd-confirmation textarea:focus {
  border-color: #2f6bff;
  outline: 3px solid #dce8ff;
}
.pd-consent {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 1rem 0;
  border-top: 1px solid var(--z-row-separator, #f1f3f5);
  cursor: pointer;
}
.pd-consent:first-of-type {
  border-top: 0;
}
.pd-consent input {
  width: 18px;
  min-height: 1.125rem;
  height: auto;
  margin-top: 2px;
  accent-color: #2f6bff;
}
.pd-consent span {
  display: grid;
  gap: 0.375rem;
}
.pd-consent small {
  color: #5b6b84;
  line-height: 1.5;
  white-space: pre-line;
}
.pd-payment-choice {
  background: #f6f8fc;
}
.pd-payment-choice p,
.pd-payment-choice span {
  margin: 0;
}
.pd-confirm-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}
.pd-confirm-actions a {
  color: #2f6bff;
  text-decoration: none;
}
.pd-confirm-button,
.pd-primary-link {
  min-height: 2.5rem;
  padding: 0.625rem 1.125rem;
  border: 0;
  border-radius: 10px;
  background: #2f6bff;
  color: #fff;
  font-weight: 700;
  text-decoration: none;
}
.pd-confirmation .pd-confirm-button {
  min-height: 2.75rem;
  border-radius: 12px;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
  box-shadow: none;
}
.pd-confirm-actions a:focus-visible,
.pd-confirmation .pd-confirm-button:focus-visible {
  outline: 2px solid #2f6bff;
  outline-offset: 4px;
}
.pd-confirmation .pd-consent-title-link {
  color: #000;
  text-decoration: underline;
}
.pd-confirm-button:disabled {
  cursor: not-allowed;
  opacity: .55;
}
@media (max-width: 760px) {
  .pd-booking-summary {
    grid-template-columns: 1fr;
  }
  .pd-confirm-actions {
    align-items: stretch;
    flex-direction: column-reverse;
  }
}

/* Patient PR4 — appointments */
.pd-page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;margin-bottom:32px}
.pd-page-heading h1{margin:0 0 8px}.pd-page-heading p{margin:0;color:#5b6b84}
.pd-appointments-group{margin-top:32px}.pd-appointments-group h2{margin:0 0 16px}
.pd-appointments-list{display:grid;gap:0.75rem}
.pd-appointment-card{display:grid;grid-template-columns:180px minmax(0,1fr) 180px;align-items:center;gap:1.5rem;padding:1.25rem 1.5rem;border:1px solid #e5eaf2;border-radius:12px;background:#fff;color:#111827;text-decoration:none}
.pd-appointment-card:hover{border-color:#b8c8e5;box-shadow:0 6px 18px rgba(30,58,138,.06)}
.pd-appointment-date,.pd-appointment-main,.pd-appointment-state{display:grid;gap:0.375rem}
.pd-appointment-date span,.pd-appointment-main span,.pd-appointment-main small,.pd-appointment-state small{color:#5b6b84}
.pd-appointment-state{justify-items:end;text-align:right}.pd-status{display:inline-flex;padding:0.3125rem 0.5625rem;border-radius:999px;background:#f6f8fc;color:#5b6b84;font-size:0.8125rem;font-weight:700}
.pd-status-confirmed,.pd-status-completed{background:#eafcef;color:#18794e}.pd-status-cancelled,.pd-status-no_show{background:#fff4e8;color:#9a5a16}
.pd-visit-actions{display:flex;justify-content:flex-end;gap:0.75rem;margin-top:24px}.pd-visit-actions button,.pd-visit-actions a{min-height:2.5rem;padding:0.625rem 1rem;border:1px solid #d7dfea;border-radius:10px;background:#fff;color:#111827;font:inherit;text-decoration:none}
@media(max-width:760px){.pd-page-heading{flex-direction:column}.pd-appointment-card{grid-template-columns:1fr}.pd-appointment-state{justify-items:start;text-align:left}}


/* Patient PR5 — notifications */
.pd-icon-button{position:relative;text-decoration:none}.pd-icon-button.is-active{background:#eaf1ff}
.pd-notification-group{margin-top:24px}.pd-notifications .pd-notification-group>h2{margin:0 0 16px}
.pd-notifications .pd-notification-list{display:grid;gap:.75rem;background:transparent;border-radius:0;overflow:visible}
.pd-notifications .pd-notification-card{display:grid;grid-template-columns:4rem minmax(0,1fr);align-items:start;gap:.75rem;padding:.75rem 1rem;border:1px solid #e5eaf2;border-radius:12px}
.pd-notification-card.is-unread{background:#EFF4FF;border-color:#dbe6ff;color:#111827}
.pd-notification-card.is-read{background:#F3F4F6;border-color:#E5E7EB;color:#616D7E}
.pd-notification-card>img{width:24px;height:24px}
.pd-notification-card.is-read>img{filter:grayscale(1);opacity:.65}
.pd-notification-card .pd-notification-copy{display:grid;gap:.25rem;color:inherit;white-space:normal;overflow:visible;text-overflow:clip;min-width:0}
.pd-notification-card .pd-notification-copy h3,.pd-notification-card .pd-notification-copy p{margin:0;color:inherit;line-height:1.5}
.pd-notification-card .pd-notification-copy h3{font-size:1rem;font-weight:700;line-height:1.4}
.pd-notification-card .pd-notification-copy p{font-size:.875rem}
.pd-notification-card.is-unread .pd-notification-copy p{color:#334155}
.pd-notification-card .pd-notification-copy small,.pd-notification-card .pd-notification-meta{color:inherit}
.pd-notification-card.is-unread .pd-notification-copy small,.pd-notification-card.is-unread .pd-notification-meta{color:#475569}
.pd-notification-card .pd-notification-copy a{color:#2F6BFF;text-decoration:none;font-weight:700;justify-self:start}
.pd-notification-card.is-read .pd-notification-copy a{color:#616D7E}
.pd-notification-card .pd-notification-copy a:hover{text-decoration:underline}
.pd-notification-card .pd-notification-copy a:focus-visible,.pd-notification-actions button:focus-visible{outline:3px solid #2F6BFF;outline-offset:3px}
.pd-notification-meta{display:flex;flex-wrap:wrap;gap:.25rem .75rem;font-size:.75rem}
.pd-notification-meta span{font-weight:600;color:inherit}
.pd-notification-topline,.pd-notification-titleline{display:flex;align-items:center;justify-content:space-between;gap:.25rem 1rem;min-width:0}
.pd-notification-type{font-size:.75rem;font-weight:600;color:inherit}
.pd-notification-rail{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;min-width:0}
.pd-notification-rail>img{width:24px;height:24px}
.pd-notification-card.is-read .pd-notification-rail>img{filter:grayscale(1);opacity:.5}
.pd-notification-date{display:flex;flex-direction:column;gap:.125rem;width:100%;font-size:.6875rem;line-height:1.4;text-align:left;color:inherit;padding-top:.375rem;border-top:1px solid #dbe2ec}
.pd-notification-day{font-weight:600}
.pd-notification-time{font-size:1.125rem;font-weight:700;line-height:1.4}
.pd-notification-card.is-unread .pd-notification-time{color:#111827}
.pd-notification-card.is-unread .pd-notification-date,.pd-notification-card.is-unread .pd-notification-type{color:#475569}
.pd-notification-titleline h3{min-width:0}
.pd-notification-titleline a{flex:none;font-size:.8125rem}
.pd-notification-actions{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem;margin-left:auto}
.pd-notification-card .pd-notification-actions button{min-height:2rem;padding:.25rem 0;border:0;border-radius:4px;background:transparent;color:#2F6BFF;font:600 .75rem "Plus Jakarta Sans",Arial,sans-serif;cursor:pointer}
.pd-notification-actions button:hover{text-decoration:underline}
.pd-notification-actions button:disabled{opacity:.6;cursor:wait}
@media(max-width:760px){.pd-notifications .pd-notification-card{grid-template-columns:4rem minmax(0,1fr);padding:.75rem;gap:.625rem}.pd-notification-topline,.pd-notification-titleline{flex-wrap:wrap;gap:.25rem .75rem}.pd-notification-topline .pd-notification-actions,.pd-notification-titleline a{margin-left:auto}}

/* Global patient profile. */
.pd-app[data-context="profile"] { --patient-primary:#2f6bff; --patient-primary-soft:#eff4ff; --patient-primary-strong:#2f6bff; --patient-border:#e5eaf2; font-family:"Plus Jakarta Sans",sans-serif; }
.pd-profile { width:100%; display:grid; gap:1.5rem; }
.pd-profile > .pd-page-heading { margin-bottom:0; }
.pd-profile > .pd-page-heading h1 { margin:0 0 .25rem; font-size:1.875rem; line-height:2.5625rem; }
.pd-profile > .pd-page-heading p { font-size:.875rem; line-height:1.25rem; }
.pd-profile-layout { display:grid; grid-template-columns:18.0625rem minmax(0,1fr); gap:2rem; align-items:start; }
.pd-profile-nav { display:flex; flex-direction:column; gap:.5rem; padding-right:2.5rem; border-right:1px solid var(--patient-border); min-height:34.75rem; }
.pd-profile-nav-link { display:block; width:100%; min-height:2.5rem; padding:.625rem .875rem; border:0; border-radius:12px; color:var(--patient-text); background:none; text-decoration:none; text-align:left; font-size:.875rem; line-height:1.25rem; font-weight:400; }
.pd-profile-nav-link:hover { background:var(--patient-surface-soft); }
.pd-profile-nav-link.is-active { color:var(--patient-primary); background:var(--patient-primary-soft); font-weight:600; }
.pd-profile-nav-link:focus-visible,.pd-profile-edit:focus-visible { outline:2px solid var(--patient-primary); outline-offset:3px; }
.pd-profile-nav-divider { height:1px; background:var(--patient-border); margin:1rem 0 .5rem; }
.pd-profile-logout { color:#dc2626; font-weight:600; }
.pd-profile-content { min-width:0; }
.pd-profile-details h2 { margin:0; font-size:1.375rem; line-height:1.75rem; }
.pd-profile-description { margin:.5rem 0 2rem; color:var(--patient-muted); font-size:.875rem; line-height:1.5; }
.pd-profile-card { border:1px solid var(--patient-border); border-radius:12px; background:#fff; padding:1.5rem; }
.pd-profile-card h2 { margin:0 0 1.5rem; font-size:1.125rem; }
.pd-profile-fields { display:grid; margin:0; padding:0 1.375rem; border-radius:12px; background:var(--patient-surface-soft); }
.pd-profile-field { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; padding:1.125rem 0; min-height:5.75rem; }
.pd-profile-field + .pd-profile-field { border-top:1px solid var(--patient-border); }
.pd-profile-field > div { display:grid; gap:.375rem; min-width:0; }
.pd-profile-field dt { color:var(--patient-muted); font-size:.75rem; }
.pd-profile-field dd { margin:0; overflow-wrap:anywhere; font-size:.9375rem; font-weight:600; }
.pd-profile-field small { color:var(--patient-muted); font-size:.75rem; line-height:1.125rem; }
.pd-profile-edit { flex-shrink:0; border:0; padding:.5rem 0; color:var(--patient-primary); background:none; font-size:.875rem; font-weight:600; }
.pd-profile-missing { color:var(--patient-muted); font-weight:400; }
.pd-profile-global-note { margin-top:1.5rem; padding:1rem 1.125rem; border-radius:12px; background:var(--patient-surface-soft); font-size:.8125rem; line-height:1.5; }
.pd-profile-global-note strong { font-weight:600; }
.pd-profile-global-note p { color:var(--patient-muted); margin:.25rem 0 0; }
.pd-profile-global-note a,.pd-therapy-link { color:var(--patient-primary); }
.pd-therapy-link { display:inline-block; margin:0 0 1.5rem; text-decoration:none; font-size:.875rem; font-weight:600; }
@media(max-width:1100px){.pd-profile-layout{grid-template-columns:15rem minmax(0,1fr);gap:1.5rem}.pd-profile-nav{padding-right:1.5rem}}
@media(max-width:760px){.pd-profile-layout{grid-template-columns:minmax(0,1fr);gap:1.5rem}.pd-profile-nav{border-right:0;border-bottom:1px solid var(--patient-border);min-height:0;padding:0 0 1.5rem}.pd-profile-field{gap:1rem}}
.pd-profile-notice { margin: 24px 0 0; border-radius: 12px; background: #fff4e8; padding: 1rem; color: #7c4a03; font-size: 0.875rem; }
.pd-profile-success { padding: 1rem 1.25rem; border-radius: 12px; background: #eafcef; color: #18794e; font-size: 0.875rem; font-weight: 600; }
.pd-profile-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1.5rem 2rem; }
.pd-profile-form-grid label { display: grid; gap: 0.5rem; color: #374151; font-size: 0.875rem; font-weight: 600; }
.pd-profile-form-grid input,.pd-profile-form-grid select { min-height: 2.75rem; padding: 0.625rem 0.75rem; border: 1px solid #d7dfea; border-radius: 10px; background: #fff; color: #111827; font: inherit; }
.pd-profile-form-grid input:focus,.pd-profile-form-grid select:focus { border-color: #2f6bff; outline: 3px solid #dce8ff; }
.pd-profile-form-grid input:disabled,.pd-profile-form-grid select:disabled { background: #f6f8fc; cursor: wait; }
.pd-profile-form-grid [data-error-for] { min-height: 1.125rem; color: #b42318; font-size: 0.75rem; font-weight: 500; }
.pd-profile-readonly { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.5rem 2rem; margin-top: 32px; padding-top: 1.5rem; border-top: 0; }
.pd-profile-readonly div { display: grid; gap: 0.375rem; }
.pd-profile-readonly span { color: #5b6b84; font-size: 0.8125rem; }
.pd-profile-readonly strong { overflow-wrap: anywhere; font-size: 0.9375rem; }
.pd-profile-readonly p { grid-column: 1/-1; margin: 0; padding: 0.875rem 1rem; border-radius: 12px; background: #fff4e8; color: #7c4a03; font-size: 0.8125rem; }
.pd-profile-actions { display: flex; justify-content: flex-end; gap: 0.75rem; margin-top: 32px; }
.pd-profile-actions button { min-width: 132px; }
.pd-profile-actions button:disabled { cursor: wait; opacity: .6; }
.pd-profile-form-error { margin: 24px 0 0; padding: 0.875rem 1rem; border-radius: 12px; background: #fff4e8; color: #8a4b08; }
@media(max-width:760px){.pd-profile-form-grid,.pd-profile-readonly{grid-template-columns:1fr}.pd-profile-card-heading{align-items:flex-start;flex-direction:column}.pd-profile-actions{align-items:stretch;flex-direction:column-reverse}}

/* Facility directory, using live patient search and booking data. */
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/plus-jakarta-sans-400.ttf") format("truetype")}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/plus-jakarta-sans-500.ttf") format("truetype")}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:600;font-display:swap;src:url("/assets/plus-jakarta-sans-600.ttf") format("truetype")}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:700;font-display:swap;src:url("/assets/plus-jakarta-sans-700.ttf") format("truetype")}
.pd-app[data-context="discovery"]{--patient-primary:#2f6bff;--patient-border:#e5eaf2;font-family:"Plus Jakarta Sans",sans-serif}
.pd-discovery{max-width:1280px;color:var(--patient-text)}
.pd-discovery svg{width:20px;height:20px;flex:none;vertical-align:middle}
.pd-discovery-head>a{color:var(--patient-primary);font-size:.875rem;text-decoration:none;font-weight:600}
.pd-discovery-head h1{margin:20px 0 8px;font-size:1.875rem;letter-spacing:-.8px;line-height:1.4}
.pd-discovery-head p{margin:0 0 28px;color:var(--patient-muted);font-size:1rem;line-height:1.6}
.pd-discovery-form{display:grid;grid-template-columns:1.3fr 1.1fr .8fr auto;gap:1rem;align-items:end;padding:1.5rem;border:1px solid var(--patient-border);border-radius:12px;background:#fff;margin-bottom:32px}
.pd-discovery-form label,.pd-directory-slot-filters label{display:grid;gap:0.625rem;min-width:0;font-size:.875rem;font-weight:600}
.pd-discovery-form input,.pd-discovery select,.pd-directory-dialog select{min-width:0;width:100%;min-height:2.875rem;height:auto;padding:0 0.75rem;border:1px solid #d9e1ec;border-radius:8px;color:var(--patient-text);background:#fff;font:inherit;font-size:.875rem}
.pd-discovery input:focus-visible,.pd-discovery button:focus-visible,.pd-discovery a:focus-visible,.pd-discovery select:focus-visible,.pd-directory-dialog :focus-visible{outline:3px solid #adc6ff;outline-offset:2px}
.pd-discovery input::placeholder{color:#8994a5;font-weight:400}
.pd-directory-button{display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;min-height:2.625rem;padding:0.625rem 1rem;border:1px solid var(--patient-primary);border-radius:8px;background:#fff;color:var(--patient-primary);font:inherit;font-size:.875rem;font-weight:600;cursor:pointer;text-decoration:none}
.pd-directory-button:hover{background:#f2f6ff}.pd-directory-primary{background:var(--patient-primary);color:#fff;min-height:2.875rem;white-space:normal}.pd-directory-primary:hover{background:#245ce2}
.pd-directory-search-bottom{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:1.25rem;padding-top:0.25rem}
.pd-directory-search-bottom label{display:flex;align-items:center;gap:0.75rem;font-size:.8125rem;color:var(--patient-muted);font-weight:400}.pd-directory-search-bottom input{width:260px;min-height:2.25rem;height:auto;font-size:.8125rem}.pd-directory-search-bottom>a{color:var(--patient-primary);text-decoration:none;font-size:.8125rem}
.pd-directory-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:1.75rem;align-items:start}
.pd-directory-filters{padding:1.5rem 1.25rem;border:1px solid var(--patient-border);border-radius:12px;background:#fff}.pd-directory-filters h2{font-size:1rem;margin:0 0 22px}.pd-directory-filters fieldset{border:0;padding:0;margin:0}.pd-directory-filters label{display:flex;align-items:center;gap:0.625rem;margin:16px 0;font-size:.875rem;cursor:pointer}.pd-directory-filters input{accent-color:var(--patient-primary);width:16px;min-height:1rem;height:auto;margin:0}.pd-directory-filters p{border-top: 0;padding-top:1.25rem;margin:22px 0 0;display:flex;align-items:flex-start;gap:0.5rem;color:var(--patient-muted);font-size:.75rem;line-height:1.7}.pd-directory-filters p svg{width:16px;height:16px;margin-top:3px}
.pd-discovery-results{min-width:0}.pd-discovery-count{display:flex;justify-content:space-between;align-items:center;gap:1.25rem;margin:0 0 22px}.pd-discovery-count h2{display:flex;align-items:center;gap:0.625rem;margin:0;font-size:1.125rem;font-weight:600}.pd-directory-count{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;border:0;background:#eaf0ff;color:var(--patient-primary);font-size:.8125rem}.pd-discovery-count label{display:flex;align-items:center;gap:0.625rem;color:var(--patient-muted);font-size:.75rem}.pd-discovery-count select{width:auto;min-height:2.375rem;height:auto;font-size:.8125rem}
.pd-directory-chips{display:flex;flex-wrap:wrap;gap:0.5rem;margin-bottom:18px}.pd-directory-chips button{display:flex;align-items:center;gap:0.625rem;padding:0.4375rem 0.625rem;border:1px solid #cbd9fb;border-radius:6px;background:#fff;color:#365fbc;font:inherit;font-size:.75rem;cursor:pointer}.pd-directory-chips svg{width:13px;height:13px}
.pd-discovery-card{display:grid;grid-template-columns:60px minmax(0,1fr) 190px;gap:1.125rem;padding:1.5rem;margin-bottom:16px;border:1px solid var(--patient-border);border-radius:12px;background:#fff}.pd-discovery-card:hover{border-color:#c7d4ea}.pd-discovery-name{display:flex;align-items:flex-start;gap:0}.pd-discovery-name>img,.pd-discovery-mark{width:60px;height:60px;padding:0.375rem;border:1px solid var(--patient-border);border-radius:10px;object-fit:contain;background:#fff;flex:none}.pd-discovery-mark{display:grid;place-items:center;color:var(--patient-primary);font-size:1.5rem;font-weight:700}.pd-discovery-name [hidden]{display:none}
.pd-discovery-info{min-width:0}.pd-discovery-info h3{margin:0}.pd-discovery-title{padding:0;border:0;background:transparent;color:var(--patient-primary);font:inherit;font-size:1rem;font-weight:700;text-align:left;line-height:1.5;cursor:pointer}.pd-discovery-title:hover{text-decoration:underline}.pd-directory-address{display:flex;align-items:flex-start;gap:0.3125rem;margin:8px 0 0;color:var(--patient-muted);font-size:.875rem;line-height:1.6}.pd-directory-address svg{width:15px;height:15px;margin-top:4px}.pd-discovery-description{margin:14px 0 0;color:#4f5f79;font-size:.875rem;line-height:1.7}.pd-discovery-tags{display:flex;flex-wrap:wrap;gap:0.4375rem;margin-top:16px}.pd-directory-tag{padding:0.3125rem 0.5rem;border:1px solid var(--patient-border);border-radius:5px;background:#fff;color:#617089;font:inherit;font-size:.75rem;line-height:1.5}.pd-discovery-tags button{cursor:pointer}.pd-discovery-tags button:hover,.pd-directory-tag.is-selected{border-color:#adc5ff;color:var(--patient-primary)}
.pd-directory-availability{display:flex;flex-direction:column;justify-content:space-between;gap:1.25rem;border-left:1px solid var(--patient-border);padding-left:1.25rem}.pd-directory-next-label{font-size:.75rem;color:var(--patient-muted)}.pd-directory-next-date{font-size:.875rem;font-weight:600;margin:8px 0 0}.pd-directory-next-time{font-size:.875rem;font-weight:500;margin:4px 0 0}.pd-directory-availability .pd-directory-button{width:100%;font-size:.8125rem;min-height:2.5rem;padding:0.5625rem 0.625rem}.pd-discovery-muted{font-size:.8125rem;color:var(--patient-muted);line-height:1.6}
.pd-directory-membership{display:flex;align-items:flex-start;gap:0.5rem;margin:24px 0;color:var(--patient-muted);font-size:.75rem;line-height:1.8}.pd-directory-membership svg{width:16px;height:16px;margin-top:3px}.pd-discovery-empty{padding:2.75rem 1.5rem;border:1px solid var(--patient-border);border-radius:12px;background:#fff;text-align:center}.pd-discovery-empty h3{font-size:1.125rem;margin:16px 0 8px}.pd-discovery-empty p{max-width:380px;margin:0 auto 24px;color:var(--patient-muted);font-size:.875rem;line-height:1.8}.pd-directory-empty-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#eff4ff;color:var(--patient-primary);margin:auto}.pd-directory-empty-icon svg{width:24px;height:24px}
.pd-directory-dialog{padding:0;width:min(880px,calc(100% - 40px));max-height:calc(100dvh - 64px);border:1px solid var(--patient-border);border-radius:12px;background:#fff;color:var(--patient-text);font-family:inherit}.pd-directory-dialog::backdrop{background:#16233e65;backdrop-filter:blur(3px)}body:has(.pd-directory-dialog[open]){overflow:hidden}.pd-directory-dialog svg{width:20px;height:20px}.pd-directory-dialog-head{display:flex;align-items:flex-start;gap:1.125rem;padding:1.75rem 1.875rem;border-bottom: 0}.pd-directory-dialog-head>div:nth-child(2){flex:1;min-width:0}.pd-directory-dialog-head h2{font-size:1.3125rem;margin:0;line-height:1.5}.pd-directory-dialog-head p{color:var(--patient-muted);font-size:.875rem;line-height:1.6;margin:6px 0 0}.pd-directory-close{flex:none;display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid var(--patient-border);border-radius:7px;background:#fff;color:var(--patient-muted);cursor:pointer}.pd-directory-dialog-body{display:grid;grid-template-columns:1fr 1.6fr;gap:1.75rem;padding:1.75rem 1.875rem}.pd-directory-dialog-body h3{font-size:.9375rem;margin:0 0 16px}.pd-directory-about>p{color:var(--patient-muted);font-size:.875rem;line-height:1.8}.pd-directory-about .pd-directory-membership{font-size:.75rem;margin-top:28px}.pd-directory-slots-area{border-left:1px solid var(--patient-border);padding-left:1.75rem;min-width:0}.pd-directory-slot-filters{display:grid;gap:1rem}.pd-directory-slot-filters label{font-size:.8125rem}.pd-directory-slot-group{margin-top:24px}.pd-directory-slot-group h4{margin:0 0 12px;font-size:.875rem}.pd-directory-slot{display:flex;align-items:center;gap:0.75rem;padding:0.75rem;border:1px solid var(--patient-border);border-radius:8px;background:#fff;color:var(--patient-text);width:100%;margin-bottom:8px;font:inherit;text-align:left;cursor:pointer}.pd-directory-slot:hover{border-color:var(--patient-primary);background:#f7faff}.pd-directory-slot-time{font-size:.875rem;font-weight:600;flex:none}.pd-directory-slot>span:nth-child(2){flex:1;min-width:0}.pd-directory-slot strong{display:block;font-size:.8125rem;font-weight:500;line-height:1.6}.pd-directory-slot small{display:block;color:var(--patient-muted);font-size:.75rem;line-height:1.6}.pd-directory-price{font-size:.8125rem;white-space:nowrap}.pd-directory-no-slots{margin-top:24px;font-size:.875rem;line-height:1.7;color:var(--patient-muted)}.pd-directory-dialog-foot{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;padding:1.125rem 1.875rem;border-top: 0;background:#f7f9fc;color:var(--patient-muted);font-size:.75rem;line-height:1.7}.pd-directory-dialog-foot .pd-directory-button{flex:none;font-size:.8125rem;min-height:2.375rem}.pd-directory-dialog .pd-inline-error{font-size:.875rem;line-height:1.7}.pd-directory-dialog .pd-inline-error .pd-directory-button{display:flex;margin-top:12px}.pd-directory-dialog :disabled{opacity:.6;cursor:wait}.pd-directory-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.pd-global-facilities>.pd-global-card-heading{display:flex;justify-content:space-between;gap:0.75rem;align-items:center;margin-bottom:18px}.pd-global-facilities>.pd-global-card-heading h2{margin:0}.pd-global-card-heading>a{color:var(--patient-primary);text-decoration:none;font-size:.875rem;white-space:normal}
.pd-empty-book,.pd-empty-side-card>a.pd-secondary{display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;text-decoration:none}
.pd-discovery-description{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden}
.pd-discovery-title,.pd-directory-address span,.pd-discovery-description{overflow-wrap:anywhere}
body:has(.pd-app[data-context="discovery"]){min-width:0}
.pd-app[data-context="discovery"] .pd-shell{min-height:100vh;grid-template-rows:72px minmax(0,1fr)}
@media(max-width:800px){.pd-app[data-context="discovery"] .pd-shell{display:flex;flex-direction:column}.pd-app[data-context="discovery"] .pd-sidebar{order:1;padding:1rem 1.25rem;border-right:0;border-bottom:1px solid var(--patient-border)}.pd-app[data-context="discovery"] .pd-logo{margin-bottom:16px}.pd-app[data-context="discovery"] .pd-nav{display:flex;gap:0.375rem;overflow-x:auto}.pd-app[data-context="discovery"] .pd-nav-link{flex:none;white-space:normal;padding:0.625rem 0.75rem}.pd-app[data-context="discovery"] .pd-help{display:none}.pd-app[data-context="discovery"] .pd-topbar{order:2;flex-wrap:wrap;gap:0.75rem;height:auto;min-height:4.5rem;padding:1rem 1.25rem}.pd-app[data-context="discovery"] .pd-main{order:3;padding:1.75rem 1.25rem 2.5rem}.pd-app[data-context="discovery"] .pd-top-actions{gap:0.5rem}}
@media(max-width:1250px){.pd-discovery-form{grid-template-columns:1fr 1fr 1fr}.pd-discovery-form>.pd-directory-primary{grid-column:1/-1}.pd-directory-layout{grid-template-columns:180px minmax(0,1fr);gap:1.25rem}.pd-discovery-card{grid-template-columns:52px 1fr;gap:0.875rem;padding:1.25rem}.pd-discovery-name>img,.pd-discovery-mark{width:52px;height:52px}.pd-directory-availability{grid-column:2;flex-direction:row;align-items:center;border-left:0;border-top:1px solid var(--patient-border);padding:1rem 0 0}.pd-directory-availability .pd-directory-button{width:auto;flex:none}.pd-directory-next-date,.pd-directory-next-time{display:inline-block;margin:5px 5px 0 0}.pd-directory-next-label{display:block}}
@media(max-width:800px){.pd-discovery-form{grid-template-columns:1fr 1fr}.pd-discovery-form>label:first-child{grid-column:1/-1}.pd-directory-search-bottom{flex-direction:column;align-items:flex-start;gap:0.875rem}.pd-directory-search-bottom label{width:100%;flex-direction:column;align-items:flex-start}.pd-directory-search-bottom input{width:100%}.pd-directory-layout{grid-template-columns:1fr}.pd-directory-filters{padding:1.125rem 1.25rem}.pd-directory-filters h2{margin-bottom:14px}.pd-directory-filters fieldset{display:flex;flex-wrap:wrap;gap:0.75rem 1.25rem}.pd-directory-filters label{margin:0}.pd-directory-filters p{margin-top:18px;padding-top:0.875rem}.pd-discovery-head h1{font-size:1.625rem}.pd-discovery-head p{font-size:.875rem}.pd-discovery-count{gap:0.625rem}.pd-discovery-count label{flex-direction:column;align-items:flex-end;gap:0.3125rem}.pd-directory-dialog-body{display:flex;flex-direction:column}.pd-directory-slots-area{border-left:0;border-top: 0;padding:1.5rem 0 0}.pd-directory-dialog-head,.pd-directory-dialog-body,.pd-directory-dialog-foot{padding:1.375rem 1.25rem}.pd-directory-dialog-head h2{font-size:1.0625rem}.pd-directory-dialog-head{gap:0.75rem}.pd-directory-dialog-foot{align-items:flex-start}}
@media(max-width:480px){.pd-discovery-form{padding:1.125rem}.pd-discovery-card{padding:1.125rem;grid-template-columns:46px 1fr;gap:0.75rem}.pd-discovery-name>img,.pd-discovery-mark{width:46px;height:46px}.pd-directory-availability{grid-column:1/-1}.pd-directory-dialog{width:calc(100% - 20px);max-height:calc(100dvh - 24px)}.pd-directory-slot{flex-wrap:wrap;gap:0.5rem}.pd-directory-price{margin-left:auto}.pd-directory-dialog-foot{flex-direction:column}.pd-global-facilities>.pd-global-card-heading{align-items:flex-start;flex-direction:column}}

/* Patient documents and consents. */
.pd-documents { max-width: 920px; }
.pd-documents-status { display: flex; gap: 1.25rem; align-items: flex-start; padding: 1.875rem; border: 1px solid #d7eadf; border-radius: 14px; background: #fff; }
.pd-documents-status-icon { flex: none; display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; color: #17804a; background: #eafcef; }
.pd-documents-status-icon svg { width: 26px; height: 26px; }
.pd-documents-status h2 { margin: 3px 0 8px; font-size: 1.1875rem; line-height: 1.4; }
.pd-documents-status p { margin: 0; color: var(--patient-muted); font-size: 0.875rem; line-height: 1.6; }
.pd-documents-back { display: inline-block; margin-top: 24px; color: var(--patient-primary); font-size: 0.875rem; font-weight: 700; text-decoration: none; }
.pd-documents-back:hover, .pd-empty-documents-action:hover { text-decoration: underline; }
.pd-documents-back:focus-visible, .pd-empty-documents-action:focus-visible { outline: 2px solid var(--patient-primary); outline-offset: 3px; border-radius: 2px; }
.pd-empty-documents-action { display: block; width: fit-content; margin-left: auto; text-align: right; text-decoration: none; }
@media (max-width: 760px) { .pd-documents-status { padding: 1.375rem; } }

.pd-documents-status [data-action="accept-staff-invite"] { margin-top: 22px; }
.pd-documents-status [data-staff-invite-message] { margin-top: 16px; }

/* Separate role and account menus in the patient header. */
.pd-role-menu, .pd-account-menu { position: relative; }
.pd-role-trigger, .pd-account-trigger { display: flex; align-items: center; cursor: pointer; list-style: none; }
.pd-role-trigger::-webkit-details-marker, .pd-account-trigger::-webkit-details-marker { display: none; }
.pd-role-trigger { justify-content: space-between; gap: 1.125rem; min-width: 116px; min-height: 2.5rem; padding: 0 0.75rem; border: 1px solid #d0d5dd; border-radius: 10px; background: #fff; color: #182230; font-weight: 600; }
.pd-role-trigger:hover { border-color: var(--patient-primary); color: var(--patient-primary); }
.pd-role-chevron { display: grid; place-items: center; width: 18px; height: 18px; color: #667085; }
.pd-role-chevron svg { display: block; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.pd-account-trigger .pd-avatar { display: grid; place-items: center; width: 40px; height: 40px; }
.pd-role-options, .pd-account-options { position: absolute; top: calc(100% + 10px); right: 0; min-width: 170px; z-index: 30; padding: 0.375rem; border: 1px solid #e5eaf2; border-radius: 12px; background: white; box-shadow: 0 12px 32px rgba(16, 24, 40, .13); }
.pd-role-options a, .pd-account-options a, .pd-account-options button, .pd-account-current { display: block; width: 100%; box-sizing: border-box; padding: 0.625rem 0.75rem; border: 0; border-radius: 8px; background: none; color: #182230; text-align: left; text-decoration: none; font: inherit; font-size: 0.875rem; }
.pd-role-options a:hover, .pd-account-options a:hover, .pd-account-options button:hover { background: #eaf1ff; color: #2f6bff; cursor: pointer; }
.pd-account-current { color: #2f6bff; font-weight: 700; }
.pd-role-trigger:focus-visible, .pd-account-trigger:focus-visible, .pd-role-options :focus-visible, .pd-account-options :focus-visible { outline: 2px solid #2f6bff; outline-offset: 2px; }

/* Prices belong to the matching service, alongside its availability. */
.pd-directory-card-price{min-width:0;overflow-wrap:anywhere}.pd-directory-card-price strong{display:block;margin-top:8px;font-size:1.25rem;line-height:1.4;font-weight:600;color:var(--patient-text)}.pd-directory-card-price small{display:block;margin-top:4px;font-size:.75rem;line-height:1.5;color:var(--patient-muted)}
@media(max-width:1250px){.pd-directory-availability{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:1rem}.pd-directory-availability .pd-directory-button{grid-column:1/-1;justify-self:end}.pd-directory-card-price strong{font-size:1.125rem}}

/* Facility search: equal fields and the shared Zreev calendar language. */
.pd-discovery-form{background:#f5f7fa}
.pd-directory-service-control{display:grid;gap:0.5rem;min-width:0;font-size:.875rem;font-weight:600;line-height:1.25rem}.pd-directory-combobox{position:relative;min-width:0}.pd-discovery-form .pd-directory-combobox input{padding-right:2.625rem}.pd-directory-combobox>button{position:absolute;top:0;right:6px;display:grid;place-items:center;width:32px;min-height:3rem;height:auto;border:0;background:transparent;color:var(--patient-muted);cursor:pointer}.pd-directory-combobox>button svg{width:16px;height:16px;transform:rotate(90deg)}
.pd-directory-suggestions{position:absolute;z-index:30;top:calc(100% + 8px);left:0;right:0;min-width:100%;max-height:280px;overflow:auto;padding:0.375rem;border:1px solid var(--patient-border);border-radius:12px;background:#fff}.pd-directory-suggestions[hidden]{display:none}.pd-directory-suggestions button{display:block;box-sizing:border-box;width:100%;border:0;border-radius:8px;background:#fff;padding:0.625rem 0.75rem;text-align:left;color:var(--patient-text);font:400 .8125rem/1.5 "Plus Jakarta Sans",sans-serif;cursor:pointer;overflow-wrap:anywhere}.pd-directory-suggestions button:hover,.pd-directory-suggestions button.is-active{background:#eff4ff;color:var(--patient-primary)}.pd-directory-suggestions p{margin:8px;font-size:.8125rem;line-height:1.5;font-weight:400;color:var(--patient-muted)}
.pd-directory-more{grid-column:1/-1;min-width:0}.pd-directory-more summary{display:flex;align-items:center;gap:0.5rem;list-style:none;width:fit-content;color:var(--patient-primary);font-size:.875rem;font-weight:600;cursor:pointer}.pd-directory-more summary::-webkit-details-marker{display:none}.pd-directory-more summary svg{width:16px;height:16px;transform:rotate(90deg)}.pd-directory-more[open] summary svg{transform:rotate(-90deg)}.pd-directory-more summary:focus-visible{outline:2px solid var(--patient-primary);outline-offset:4px;border-radius:4px}.pd-directory-more summary .pd-directory-count{font-size:.75rem;width:22px;min-height:1.375rem;height:auto}
.pd-directory-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem;align-items:start;margin-top:24px}.pd-directory-filter-grid>label{display:grid;gap:0.5rem;min-width:0;font-size:.875rem;font-weight:600;line-height:1.25rem}.pd-directory-filter-grid select{box-sizing:border-box;width:100%;min-width:0;min-height:3rem;height:auto;padding:0 0.75rem;border:1px solid var(--patient-border);border-radius:12px;background:#fff;color:var(--patient-text);font:400 .875rem/1.5 "Plus Jakarta Sans",sans-serif}.pd-directory-price-range{min-width:0;margin:0;padding:0;border:0}.pd-directory-price-range legend{padding:0;margin:0 0 8px;font-size:.875rem;line-height:1.25rem;font-weight:600}.pd-directory-price-range>div{display:grid;grid-template-columns:minmax(0,1fr) 8px minmax(0,1fr);gap:0.375rem;align-items:center}.pd-directory-price-range label{min-width:0}.pd-directory-price-range>div>span{text-align:center;font-size:.8125rem;color:var(--patient-muted)}.pd-directory-filter-note{margin:16px 0 0;font-size:.75rem;font-weight:400;line-height:1.5;color:var(--patient-muted)}.pd-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:1250px){.pd-directory-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.pd-directory-filter-grid{grid-template-columns:1fr;gap:1.25rem}.pd-directory-more summary{min-height:2.25rem}}
.pd-discovery-form{grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem;align-items:start;padding:1.5rem;margin-bottom:32px}
.pd-discovery-form>label,.pd-directory-date-control{display:grid;gap:0.5rem;min-width:0;font-size:.875rem;font-weight:600;line-height:1.25rem}
.pd-discovery-form input:not([type="hidden"]),.pd-directory-date-trigger{box-sizing:border-box;width:100%;min-height:3rem;height:auto;min-height:3rem;min-width:0;padding:0 0.875rem;border:1px solid var(--patient-border);border-radius:12px;background:#fff;color:var(--patient-text);font:400 .875rem/1.5 "Plus Jakarta Sans",sans-serif;appearance:none}
.pd-discovery-form input:hover,.pd-directory-date-trigger:hover{border-color:#adc6ff}
.pd-directory-date-trigger{display:flex;align-items:center;justify-content:space-between;gap:0.625rem;text-align:left;cursor:pointer}
.pd-directory-date-trigger>span{min-width:0;overflow:visible;text-overflow:clip;white-space:normal}.pd-directory-date-trigger svg{width:18px;height:18px;color:var(--patient-primary)}.pd-directory-date-trigger.is-selected{border-color:#adc6ff}
.pd-discovery-form>.pd-directory-search-bottom{display:flex;grid-column:1/-1;justify-content:space-between;align-items:center;flex-direction:row;gap:1.25rem;padding:1.25rem 0 0;border-top: 0}
.pd-directory-presets,.pd-directory-search-actions,.pd-directory-range-presets{display:flex;align-items:center;flex-wrap:wrap;gap:0.5rem}
.pd-directory-preset{min-height:2.25rem;padding:0.4375rem 0.75rem;border:1px solid var(--patient-border);border-radius:12px;background:#fff;color:var(--patient-muted);font:500 .8125rem/1.4 "Plus Jakarta Sans",sans-serif;cursor:pointer}
.pd-directory-preset:hover,.pd-directory-preset.is-selected{border-color:var(--patient-primary);color:var(--patient-primary);background:#f5f8ff}
.pd-directory-search-actions{flex:none;gap:1.25rem}.pd-directory-search-actions>a{color:var(--patient-primary);text-decoration:none;font-size:.8125rem}.pd-directory-search-actions .pd-directory-primary{min-height:3rem;height:auto;min-height:3rem;border-radius:12px;padding:0 1.25rem;background:#fff;color:var(--patient-primary)}.pd-directory-search-actions .pd-directory-primary:hover{background:#f2f6ff}
.pd-discovery-card{grid-template-columns:64px minmax(0,1fr) 230px;gap:1.5rem;padding:1.75rem}.pd-discovery-title{font-size:1.125rem}.pd-discovery-count{margin-bottom:24px}.pd-directory-chips{margin-bottom:24px}
.pd-directory-range-dialog{box-sizing:border-box;width:min(704px,calc(100vw - 32px));max-height:calc(100dvh - 40px);padding:1.5rem;border:1px solid var(--patient-border);border-radius:12px;background:#fff;color:var(--patient-text);font-family:"Plus Jakarta Sans",sans-serif;overflow-y:auto}.pd-directory-range-dialog::backdrop{background:#17264045}.pd-directory-range-dialog button{font-family:inherit}.pd-directory-range-dialog svg{width:20px;height:20px;flex:none}
.pd-directory-range-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.pd-directory-range-head h2{margin:0;font-size:1.125rem;font-weight:600;line-height:1.5}.pd-directory-range-head p{margin:8px 0 0;font-size:.8125rem;line-height:1.6;color:var(--patient-muted)}.pd-directory-range-presets{margin:20px 0 12px}
.pd-directory-month-nav{display:flex;justify-content:space-between;position:relative;z-index:1;pointer-events:none}.pd-directory-month-nav button{display:grid;place-items:center;pointer-events:auto;width:36px;min-height:2.25rem;height:auto;padding:0;border:1px solid var(--patient-border);border-radius:12px;background:#fff;color:var(--patient-primary);cursor:pointer}.pd-directory-month-nav button:first-child svg{transform:rotate(180deg)}.pd-directory-month-nav button:hover{background:#f5f8ff}
.pd-directory-months{display:grid;grid-template-columns:1fr 1fr;gap:1.75rem;margin-top:-32px}.pd-directory-month{min-width:0}.pd-directory-month h3{margin:0 38px 20px;font-size:.9375rem;font-weight:600;line-height:2rem;text-align:center;text-transform:capitalize}
.pd-directory-weekdays,.pd-directory-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center;gap:0.25rem}.pd-directory-weekdays{margin-bottom:8px}.pd-directory-weekdays span{padding:0.25rem 0;color:var(--patient-muted);font-size:.6875rem;font-weight:500}
.pd-directory-days button,.pd-directory-days>span{box-sizing:border-box;display:grid;place-items:center;min-height:2.375rem;height:auto;padding:0;border:0;border-radius:10px;background:transparent;color:var(--patient-text);font:500 .8125rem/1 "Plus Jakarta Sans",sans-serif}.pd-directory-days>span.is-outside{color:#b5bdc9}.pd-directory-days button.is-in-range{background:#eff4ff;color:var(--patient-primary)}.pd-directory-days button.is-today{outline:1.5px solid var(--patient-primary);outline-offset:-1.5px}.pd-directory-days button.is-selected{background:var(--patient-primary);color:#fff}.pd-directory-days button:not(.is-selected):not(:disabled):hover{background:#eaf1ff;color:var(--patient-primary)}.pd-directory-days button:disabled,.pd-directory-month-nav button:disabled,.pd-directory-range-foot button:disabled{opacity:.35;cursor:not-allowed}
.pd-directory-range-dialog button:focus-visible{outline:2px solid var(--patient-primary);outline-offset:2px}.pd-directory-range-foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:1.25rem;margin-top:20px;border-top: 0}.pd-directory-range-foot>span{font-size:.8125rem;line-height:1.5;color:var(--patient-muted)}.pd-directory-range-foot>div{display:flex;gap:0.5rem}.pd-directory-range-foot .pd-directory-button{border-radius:12px;min-height:2.5rem;font-size:.8125rem}
@media(max-width:1250px){.pd-discovery-form{grid-template-columns:repeat(2,minmax(0,1fr))}.pd-discovery-form>label:first-child{grid-column:auto}.pd-discovery-card{grid-template-columns:60px minmax(0,1fr) 210px}.pd-directory-availability{display:flex;grid-column:auto;flex-direction:column;border-top:0;border-left:1px solid var(--patient-border);padding:0 0 0 1.25rem}.pd-directory-availability .pd-directory-button{width:100%}}
@media(max-width:800px){.pd-discovery-card{grid-template-columns:52px minmax(0,1fr);gap:1rem;padding:1.5rem}.pd-directory-availability{display:grid;grid-template-columns:1fr 1fr;grid-column:2;flex-direction:row;gap:1rem;padding:1rem 0 0;border-left:0;border-top:1px solid var(--patient-border)}.pd-directory-availability .pd-directory-button{width:auto;grid-column:1/-1;justify-self:end}.pd-discovery-form>.pd-directory-search-bottom{flex-wrap:wrap}.pd-directory-search-actions{margin-left:auto}}
@media(max-width:600px){.pd-directory-range-dialog{padding:1.25rem}.pd-directory-months{grid-template-columns:1fr;gap:1.25rem}.pd-directory-month-nav{margin-bottom:4px}.pd-directory-months{margin-top:-36px}.pd-directory-month h3{margin-bottom:12px}.pd-directory-month:nth-child(2) h3{margin-top:8px}.pd-directory-days button,.pd-directory-days>span{min-height:2.25rem;height:auto}.pd-directory-range-foot{flex-wrap:wrap}.pd-directory-range-foot>div{margin-left:auto}}
@media(max-width:480px){.pd-discovery-form{grid-template-columns:1fr;padding:1.25rem;gap:1.25rem}.pd-directory-presets{gap:0.375rem}.pd-directory-preset{padding:0.4375rem 0.625rem}.pd-directory-search-actions{width:100%;justify-content:space-between}.pd-directory-search-actions .pd-directory-primary{flex:1}.pd-directory-availability{grid-column:1/-1}.pd-discovery-count label{max-width:190px}.pd-discovery-count select{max-width:100%}}

/* Patient booking: monthly calendar and combined time/specialist selection. */
.pd-booking-availability { display: grid; grid-template-columns: minmax(320px, 420px) minmax(0, 1fr); gap: 2rem; align-items: start; }
.pd-booking-calendar { border: 1px solid #E5EAF2; border-radius: 12px; padding: 1.5rem; background: #fff; }
.pd-booking-calendar-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem; }
.pd-booking-calendar-head h2, .pd-booking-hours > h2 { margin: 0; font-size: 1.125rem; line-height: 1.5; font-weight: 700; color: #111827; }
.pd-booking-calendar-head nav { display: flex; gap: 0.5rem; }
.pd-booking-calendar-head h2 { font-size: 1rem; font-weight: 600; }
.pd-booking-calendar-head h2::first-letter { text-transform: uppercase; }
.pd-booking-specialist-filter { display: grid; gap: 0.375rem; margin: 1.25rem 0; color: var(--patient-muted); font-size: 0.75rem; }
.pd-specialist-picker { position: relative; min-width: 0; color: var(--patient-text); font-size: 0.875rem; }
.pd-specialist-picker summary, .pd-specialist-picker-option, .pd-specialist-picker-value { display: flex; align-items: center; gap: 0.625rem; min-height: 3.5rem; padding: 0.75rem; background: #fff; color: var(--patient-text); font: inherit; text-decoration: none; box-sizing: border-box; }
.pd-specialist-picker-value { border: 1px solid #2F6BFF; border-radius: 12px; }
.pd-specialist-picker summary { border: 1px solid #2F6BFF; border-radius: 12px; cursor: pointer; list-style: none; }
.pd-specialist-picker summary::-webkit-details-marker { display: none; }
.pd-specialist-picker .pd-slot-specialist { flex: 1; min-width: 0; color: var(--patient-text); }
.pd-specialist-picker .pd-slot-specialist > span:last-child { overflow-wrap: anywhere; }
.pd-specialist-picker .pd-specialist-avatar { flex: 0 0 32px; }
.pd-specialist-picker .pd-specialist-avatar svg { width: 22px; height: 22px; }
.pd-specialist-picker .pd-booking-price-pill { flex-shrink: 0; white-space: nowrap; }
.pd-specialist-picker-chevron { color: #2F6BFF; }
.pd-specialist-picker[open] .pd-specialist-picker-chevron { transform: rotate(180deg); }
.pd-specialist-picker-options { position: absolute; z-index: 5; top: calc(100% + 0.375rem); left: 0; right: 0; max-height: 20rem; overflow-y: auto; border: 1px solid #E5EAF2; border-radius: 12px; background: #fff; }
.pd-specialist-picker-option + .pd-specialist-picker-option { border-top: 1px solid #E5EAF2; }
.pd-specialist-picker-option:hover, .pd-specialist-picker-option[aria-current="true"] { background: #EFF4FF; }
.pd-specialist-picker summary:focus-visible, .pd-specialist-picker-option:focus-visible { outline: 2px solid #2F6BFF; outline-offset: 2px; }
.pd-calendar-nav { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: 1px solid #2F6BFF; border-radius: 8px; color: #2F6BFF; background: #fff; text-decoration: none; }
.pd-calendar-nav[aria-disabled="true"] { border-color: #E5EAF2; color: #9CA3AF; }
.pd-booking-calendar > p { margin: 12px 0 20px; color: #64748B; font-size: 0.75rem; line-height: 1.5; }
.pd-booking-calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 0.375rem; }
.pd-calendar-weekday { padding-bottom: 0.5rem; text-align: center; color: #64748B; font-size: 0.75rem; font-weight: 600; }
.pd-booking-calendar-day { position: relative; display: grid; grid-template-rows: 21px 20px 12px; align-content: center; align-items: center; justify-items: center; gap: 0.25rem; min-width: 0; min-height: 4.8125rem; padding: 0.375rem 0.125rem; border: 1.5px solid transparent; border-radius: 8px; background: #fff; color: #111827; text-decoration: none; font-family: inherit; cursor: pointer; box-sizing: border-box; }
.pd-booking-calendar-day .pd-calendar-date { font-size: 1rem; font-weight: 600; line-height: 1.3; }
.pd-calendar-count { grid-row: 2; display: inline-flex; align-items: center; justify-content: center; min-width: 18px; min-height: 1.125rem; padding: 0.125rem 0.25rem; border-radius: 50%; background: #2F6BFF; color: #fff; font-size: 0.625rem; font-weight: 700; line-height: 1; box-sizing: border-box; }
.pd-booking-calendar-day small { grid-row: 3; text-align: center; font-size: 0.625rem; line-height: 1.2; }
.pd-booking-calendar-day.is-today { border-color: #2F6BFF; }
.pd-booking-calendar-day.is-unavailable { color: #9CA3AF; cursor: default; opacity: 1; }
.pd-booking-calendar-day.is-selected { background: #2F6BFF; border-color: #2F6BFF; color: #fff; }
.pd-booking-calendar-day.is-selected .pd-calendar-count { background: #fff; color: #2F6BFF; }
.pd-booking-calendar-day:not(.is-selected):not(:disabled):hover, .pd-calendar-nav:not([aria-disabled="true"]):hover { background: #EFF4FF; }
.pd-booking-calendar-day:focus-visible, .pd-calendar-nav:focus-visible { outline: 2px solid #2F6BFF; outline-offset: 3px; }
.pd-booking-hours > h2 { margin-bottom: 24px; }
.pd-booking-hours .pd-booking-availability-count { margin: 0 0 0.375rem; color: var(--patient-muted); font-size: 0.8125rem; }
.pd-booking-hours .pd-choice-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pd-booking-hours .pd-choice { min-width: 0; padding: 1rem; }
.pd-slot-specialist { display: flex; align-items: center; gap: 0.5rem; min-width: 0; }
.pd-slot-specialist > span:last-child { overflow-wrap: anywhere; }
.pd-slot-specialist .pd-specialist-avatar { display: grid; place-items: center; flex: 0 0 2rem; width: 2rem; height: 2rem; border-radius: 50%; background: #EFF4FF; color: #2F6BFF; font-size: 0.75rem; font-weight: 600; }
@media (max-width: 1000px) { .pd-booking-availability { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; } .pd-booking-calendar { max-width: 480px; } }
@media (max-width: 480px) { .pd-booking-calendar { padding: 1rem 0.75rem; } .pd-booking-calendar-grid { gap: 0.25rem; } .pd-booking-calendar-head h2 { font-size: 1rem; } .pd-booking-hours .pd-choice-grid { grid-template-columns: minmax(0, 1fr); } }


/* Specialist selection: identity and the selected service price. */
.pd-choice.pd-specialist-choice{flex-direction:row;align-items:flex-start;gap:1rem}
.pd-specialist-choice .pd-specialist-avatar{display:grid;place-items:center;flex:0 0 52px;width:52px;height:52px;border-radius:50%;background:#EFF4FF;color:#2F6BFF;font-size:1rem;font-weight:600;line-height:1}
.pd-specialist-avatar svg{width:26px;height:26px}
.pd-specialist-choice .pd-specialist-choice-copy{display:flex;flex-direction:column;align-items:flex-start;gap:0.625rem;min-width:0;flex:1;color:var(--patient-text)}
.pd-specialist-choice-copy strong{overflow-wrap:anywhere}
.pd-booking-price-pill,.pd-choice .pd-booking-price-pill,.pd-directory-price,.pd-directory-card-price strong{display:inline-flex;align-items:center;padding:0.1875rem 0.5625rem;border-radius:999px;background:#000;color:#fff;font-size:.75rem;font-weight:600;line-height:1.4;white-space:normal}
.pd-specialist-choice-copy b{margin-top:2px}

.pd-booking-price-pill:empty{display:none}

.pd-booking-hours .pd-slot-heading{display:flex;align-items:center;justify-content:space-between;gap:0.5rem;width:100%;flex-wrap:wrap}
.pd-booking-hours .pd-slot-heading strong{color:var(--patient-text);font-size:.875rem;white-space:normal}
.pd-booking-hours .pd-choice b{padding-top:0.75rem}

/* Visible booking stages and service pricing context. */
.pd-booking-steps{display:flex;gap:0.3125rem;list-style:none;margin:12px 0 0;padding:0;width:240px;max-width:100%}
.pd-booking-step{position:relative;flex:1;height:5px;border-radius:999px;background:var(--patient-border)}
.pd-booking-step.is-complete{background:#2f6bff}
.pd-booking-step.is-current{background:#2f6bff;box-shadow:0 0 0 2px #eff4ff}
.pd-booking-step-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:normal;border:0}
.pd-choice.pd-any-specialist-choice{background:#eff4ff;border-color:#2f6bff}
.pd-any-specialist-choice .pd-specialist-avatar{background:#fff}
.pd-choice .pd-service-meta{display:flex;align-items:center;gap:0.75rem;flex-wrap:wrap}
.pd-choice .pd-service-price-note{font-size:.75rem}


/* Read consent documents without leaving the booking or accepting them. */
.pd-consent-row{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;padding:1rem 0;border-top:1px solid var(--z-row-separator, #f1f3f5)}
.pd-consent-row:first-of-type{border-top:0}
.pd-consent-row .pd-consent{padding:0;border:0;flex:1}
.pd-consent-document-link{border:0;padding:0;background:none;color:var(--patient-primary);font:600 .875rem/1.5 "Plus Jakarta Sans",sans-serif;cursor:pointer;text-align:left}
.pd-consent-document-link:focus-visible,.pd-consent-dialog-close:focus-visible{outline:2px solid var(--patient-primary);outline-offset:4px}
.pd-consent-dialog{box-sizing:border-box;width:min(720px,calc(100% - 32px));max-height:calc(100dvh - 48px);padding:0;border:1px solid var(--patient-border);border-radius:12px;background:#fff;color:var(--patient-text);font-family:inherit}
.pd-consent-dialog::backdrop{background:#16233e65}
body:has(.pd-consent-dialog[open]){overflow:hidden}
.pd-consent-dialog header{display:flex;align-items:flex-start;justify-content:space-between;gap:1.25rem;padding:1.5rem;border-bottom: 0}
.pd-consent-dialog h2{margin:0;font-size:1.25rem;line-height:1.5}
.pd-consent-dialog-close{flex:none;border:0;background:none;color:var(--patient-muted);font-family:inherit;font-size:1.75rem;line-height:1;cursor:pointer;padding:0 0.25rem}
.pd-consent-document-body{padding:1.5rem;white-space:pre-wrap;overflow-wrap:anywhere;font-size:1rem;line-height:1.8}
.pd-consent-dialog footer{padding:1rem 1.5rem;border-top: 0;text-align:right}
@media(max-width:480px){.pd-consent-row{flex-wrap:wrap;gap:0.75rem}.pd-consent-row .pd-consent{flex-basis:100%}.pd-consent-document-link{margin-left:30px}.pd-consent-dialog header,.pd-consent-document-body{padding:1.25rem}.pd-consent-dialog footer .pd-consent-document-link{margin:0}}

.pd-specialist-avatar { overflow: hidden; }
.pd-specialist-avatar img { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }

/* Facility links in the empty patient dashboard. */
.pd-empty-facility-row { justify-content: flex-start; gap: 0.75rem; }
.pd-empty-facility-row > span { display: grid; gap: 0.1875rem; }
.pd-empty-facility-logo-link { display: block; flex-shrink: 0; text-decoration: none; }
.pd-empty-facility-row .pd-global-facility-logo { border: 0; }
.pd-empty-facility-name { color: #2F6BFF; font-size: 0.875rem; line-height: 1.1875rem; font-weight: 600; text-decoration: none; }
.pd-empty-facility-name:hover { text-decoration: underline; }

.pd-empty-side-card > a.pd-empty-find-facility { display: flex; width: fit-content; margin-left: auto; }

/* Booking expiry uses the shared empty-state illustration and spacing. */
.pd-hold-unavailable{border:1px solid var(--patient-border);border-radius:12px;background:#fff}
.pd-hold-unavailable>.pd-primary-link{margin-top:8px}

.pd-consent-title-link { color: #000; text-decoration: underline; font-weight: 600; }
.pd-consent-title-link:focus-visible { outline: 2px solid var(--patient-primary); outline-offset: 4px; }

/* The facility welcome dashboard shares the global dashboard layout. */
.pd-dashboard-facility-contact{display:grid;gap:0.5rem;margin-top:16px;font-size:0.875rem;line-height:1.25rem}
.pd-dashboard-facility-contact a{width:fit-content;color:#2f6bff;text-decoration:none}
.pd-dashboard-facility-contact a:hover{text-decoration:underline}


.pd-facility-information-sections { display: grid; gap: 1.25rem; margin-top: 24px; }
.pd-facility-information-section h3 { margin: 0 0 10px; font-size: 0.875rem; line-height: 1.25rem; font-weight: 700; }
.pd-facility-opening-hours { margin: 0; white-space: pre-line; font-size: 0.875rem; line-height: 1.375rem; color: var(--patient-text); }
.pd-facility-information-sections .pd-dashboard-facility-contact { margin-top: 0; }
.pd-dashboard-facility-contact p { margin: 0; font-size: 0.875rem; line-height: 1.375rem; color: var(--patient-text); }
.pd-facility-service-tags, .pd-discovery-tags { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.pd-facility-service-tags a, .pd-discovery-tags .pd-directory-tag { display: inline-flex; align-items: center; padding: 0.5rem 0.75rem; border: 0; border-radius: 999px; background: #EEF0F3; color: #374151; text-decoration: none; font-size: 0.75rem; line-height: 1rem; }
.pd-facility-service-tags a:hover, .pd-discovery-tags .pd-directory-tag:hover { background: #E1E5EA; color: #111827; }
.pd-facility-service-tags a:focus-visible, .pd-discovery-tags .pd-directory-tag:focus-visible { outline: 2px solid #2F6BFF; outline-offset: 2px; }

.pd-empty-primary-grid:has(.pd-facility-information) { height: auto; min-height: 14.875rem; }
.pd-empty-side-card.pd-facility-information { height: auto; min-height: 14.875rem; }
.pd-facility-service-tags a, .pd-discovery-tags .pd-directory-tag { max-width: 100%; overflow-wrap: anywhere; }

.pd-facility-contact-block { align-items: flex-start; }
.pd-facility-contact-block > span { min-width: 0; }
.pd-facility-reservation-phone { margin: 8px 0 0; font-size: 0.875rem; line-height: 1.375rem; color: var(--patient-text); }
.pd-facility-map-link { color: #2F6BFF; text-decoration: none; }
.pd-facility-map-link { margin-top: 8px; width: fit-content; font-size: 0.875rem; line-height: 1.375rem; }
.pd-facility-map-link:hover { text-decoration: underline; }

.pd-facility-contact-block > span > small { font-size: 0.875rem; line-height: 1.375rem; color: var(--patient-text); }

.pd-facility-card-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.pd-facility-card-heading > a { text-decoration: none; white-space: normal; }
.pd-facility-card-heading > a:not(.pd-book):hover { text-decoration: underline; }
.pd-facility-overview .pd-empty-facility-row { min-height: 2rem; margin-top: 12px; padding: 0; }
.pd-facility-contact-lines { border-top: 0; margin-top: 12px; padding-top: 1rem; display: grid; gap: 0.5rem; }
.pd-facility-contact-lines > p { display: flex; align-items: flex-start; gap: 0.625rem; margin: 0; font-size: 0.875rem; line-height: 1.375rem; color: var(--patient-text); }
.pd-facility-contact-icon { width: 18px; height: 18px; flex: 0 0 18px; margin-top: 2px; color: #9CA3AF; }
.pd-facility-contact-lines .pd-facility-map-link { margin-top: 0; }
.pd-facility-information-section:has(.pd-facility-service-tags) { border-top: 0; padding-top: 1rem; }
.pd-facility-details-page > h1 { margin: 20px 0 24px; font-size: 1.75rem; }
.pd-facility-details-grid { display: grid; grid-template-columns: minmax(280px, 388px) minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.pd-facility-details-notes { display: grid; gap: 1.5rem; }
.pd-empty-side-card.pd-facility-detail-note, .pd-empty-side-card.pd-facility-details-offer { height: auto; }
.pd-facility-detail-note p { white-space: pre-line; font-size: 0.875rem; line-height: 1.375rem; color: var(--patient-text); }
.pd-facility-details-offer { margin-top: 24px; }
.pd-facility-details-offer .pd-facility-service-tags { margin-top: 20px; }
@media (max-width: 760px) { .pd-facility-details-grid { grid-template-columns: minmax(0, 1fr); } }

/* Dashboard cards flow independently within each column. */
.pd-empty-card-columns { display: grid; grid-template-columns: minmax(0, 700fr) minmax(0, 388fr); gap: 1.5rem; align-items: start; }
.pd-empty-card-column { display: flex; flex-direction: column; gap: 1.5rem; min-width: 0; }
.pd-empty-card-column > section { height: auto; min-width: 0; }
.pd-empty-card-column > .pd-empty-first-appointment { min-height: 14.875rem; }
.pd-empty-card-column > .pd-empty-how { min-height: 15.625rem; }
@media (max-width: 760px) {
  .pd-empty-card-columns { grid-template-columns: minmax(0, 1fr); }
  .pd-empty-card-column { display: contents; }
  .pd-empty-card-columns .pd-empty-first-appointment { order: 1; }
  .pd-empty-card-columns .pd-empty-side-card { order: 2; }
  .pd-empty-card-columns .pd-empty-how { order: 3; min-height: 0; }
  .pd-empty-card-columns .pd-empty-documents { order: 4; }
}

/* Facility details follow the facility brand and share one practical information card. */
.pd-facility-details-page{max-width:1000px}
.pd-facility-details-page > h1{margin:8px 0 20px;font-size:1.625rem;line-height:1.3}
.pd-facility-details-back{text-decoration:none;font-size:0.8125rem}
.pd-facility-details-grid{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:1.25rem;align-items:stretch}
.pd-facility-map-card,.pd-facility-details-contact,.pd-facility-practical{border:1px solid var(--patient-border);border-radius:12px;background:var(--patient-surface);overflow:hidden}
.pd-facility-map-footer{display:flex;justify-content:space-between;gap:0.75rem;padding:0.75rem;font-size:0.75rem;color:var(--patient-muted)}
.pd-facility-map-footer a{color:var(--patient-primary);font-weight:600;text-decoration:none}
.pd-facility-details-contact{padding:1.25rem}
.pd-facility-details-identity{display:flex;align-items:center;gap:0.75rem;padding-bottom:1rem;border-bottom: 0}
.pd-facility-details-identity strong{display:block;font-size:1.125rem}
.pd-facility-details-identity small{display:block;margin-top:2px;color:var(--patient-muted);font-size:0.875rem}
.pd-facility-details-logo{display:grid;place-items:center;flex-shrink:0;width:42px;height:42px;border-radius:50%;overflow:hidden;background:var(--patient-primary-soft);color:var(--patient-primary);font-size:0.8125rem;font-weight:700}
.pd-facility-details-logo img{width:100%;height:100%;object-fit:contain}
.pd-facility-details-contact-lines{display:grid;gap:0.75rem;padding-top:1rem}
.pd-facility-details-contact-lines p{display:flex;align-items:flex-start;gap:0.625rem;margin:0;font-size:1rem;line-height:1.5;overflow-wrap:anywhere}
.pd-facility-details-contact-lines .pd-facility-contact-icon{flex-shrink:0;color:var(--patient-muted);width:16px;height:16px;margin-top:2px}
.pd-facility-contact-icon svg{width:100%;height:100%}
.pd-facility-details-contact-lines a{color:var(--patient-primary);font-weight:600;text-decoration:none}
.pd-facility-practical{margin-top:20px;padding:1.25rem}
.pd-facility-practical h2,.pd-facility-details-offer h2{margin:0;font-size:1rem;line-height:1.5}
.pd-facility-practical-row{display:flex;gap:0.75rem;padding:0.875rem 0;border-bottom:1px solid var(--patient-border)}
.pd-facility-practical-row:last-child{border-bottom:0;padding-bottom:0}
.pd-facility-practical-icon{display:grid;place-items:center;flex-shrink:0;width:32px;height:32px;border-radius:7px;background:var(--patient-primary-soft);color:var(--patient-primary)}
.pd-facility-practical-icon svg{width:20px;height:20px}
.pd-facility-practical-row h3{margin:0;font-size:0.8125rem;line-height:1.5}
.pd-facility-practical-row p{margin:2px 0 0;color:var(--patient-muted);font-size:0.8125rem;line-height:1.5;white-space:pre-line;overflow-wrap:anywhere}
.pd-facility-details-offer{margin-top:20px}

.pd-facility-details-offer .pd-facility-service-tags{margin-top:16px}
@media(max-width:760px){.pd-facility-details-grid{grid-template-columns:minmax(0,1fr)}.pd-facility-map-embed{height:240px}.pd-facility-map-footer{flex-wrap:wrap}.pd-facility-details-contact,.pd-facility-practical{padding:1rem}}

/* The facility booking action uses the same button as the patient header. */
.pd-book{font-size:1rem;line-height:1.5rem;box-sizing:border-box;white-space:nowrap}
.pd-facility-details-hours > span:last-child{white-space:pre-line}
.pd-facility-details-hours strong{display:block;font-size:0.875rem;line-height:1.5;margin-bottom:4px}
.pd-facility-hours-missing{color:var(--patient-muted)}

/* Facility identity is a quiet navigation link with explicit interaction states. */
a.pd-facility-identity { color: var(--patient-text); text-decoration: none; border-radius: 8px; }
a.pd-facility-identity:hover .pd-facility-name { color: var(--patient-primary); text-decoration: underline; text-underline-offset: 3px; }
a.pd-facility-identity:focus-visible, .pd-facility-exit:focus-visible { outline: 2px solid var(--patient-primary); outline-offset: 4px; }
.pd-facility-exit:hover { color: var(--patient-text); text-decoration: underline; text-underline-offset: 3px; }

/* Facility profile: real neighborhood map and compact weekly hours. */
.pd-facility-map-embed { display: block; width: 100%; height: 280px; border: 0; }
.pd-facility-map-fallback { display: grid; place-items: center; min-height: 17.5rem; padding: 1.5rem; color: var(--patient-primary); }
.pd-facility-details-logo { width: 48px; height: 48px; }
.pd-facility-details-hours > span:last-child { flex: 1; min-width: 0; white-space: normal; }
.pd-facility-hours-table { display: grid; gap: 0.375rem; margin-top: 10px; }
.pd-facility-hours-row { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; font-size: 1rem; line-height: 1.5rem; }
.pd-facility-hours-row > span:last-child { white-space: normal; font-weight: 600; }
.pd-facility-hours-row.is-closed { color: var(--patient-muted); }
.pd-facility-hours-row.is-closed > span:last-child { font-weight: 400; }
.pd-facility-hours-status { display: inline-flex; padding: 0.125rem 0.75rem; border-radius: 999px; background: var(--patient-surface-soft); font-size: 0.875rem; line-height: 1.25rem; font-weight: 700; }
.pd-facility-hours-status.is-open { background: #dcfce7; color: #166534; }
.pd-facility-hours-raw { white-space: pre-line; }
.pd-facility-opening-hours .pd-facility-hours-row { font-size: 0.875rem; line-height: 1.375rem; }
@media (max-width: 760px) { .pd-facility-map-embed { height: 240px; } }

/* Practical information uses the available width; phone stays plain text. */
.pd-facility-practical > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 2rem; row-gap: 1.25rem; align-items: start; margin-top: 16px; }
.pd-facility-practical-row { min-width: 0; margin: 0; padding: 0; border-bottom: 0; }
.pd-facility-practical-row p { overflow-wrap: anywhere; }
@media (max-width: 760px) { .pd-facility-practical > div { grid-template-columns: minmax(0, 1fr); } }

/* Dashboard opening hours match the compact facility profile presentation. */
.pd-facility-dashboard-hours { display: flex; align-items: flex-start; gap: 0.75rem; white-space: normal; }
.pd-facility-dashboard-hours > div { flex: 1; min-width: 0; }
.pd-facility-dashboard-hours .pd-facility-contact-icon { margin-top: 4px; }
.pd-facility-dashboard-hours .pd-facility-hours-row { font-size: 0.875rem; line-height: 1.375rem; gap: 0.75rem; }
.pd-facility-dashboard-hours .pd-facility-hours-table { gap: 0.25rem; margin-top: 8px; }

/* Compact booking consent acceptance with the document as an inline link. */
.pd-confirmation-consents .pd-consent-row { padding: 0; }
.pd-confirmation-consents .pd-consent-row + .pd-consent-row { margin-top: 12px; padding-top: 0.75rem; }
.pd-confirmation-consents .pd-consent-acceptance { font-size: .875rem; line-height: 1.5; }
.pd-confirmation-consents .pd-consent-title-link { color: var(--patient-primary); font-weight: 500; text-decoration: underline; }

/* Keep acceptance text and document title in the same inline flow. */
.pd-confirmation-consents .pd-consent-acceptance { display: inline; }
.pd-confirmation-consents .pd-consent input { flex: 0 0 18px; }

/* Booking confirmation: payment total below the visit details. */
.pd-summary-payment { margin: 24px 0 0; padding: 0.875rem 1rem; background: #f7f9fc; border-radius: 12px; }
.pd-summary-payment > div { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.pd-summary-payment dt { display: flex; align-items: center; gap: 0.625rem; margin: 0; color: #5b6b84; font-size: .875rem; font-weight: 400; }
.pd-summary-payment dt svg { flex: 0 0 20px; width: 20px; height: 20px; }
.pd-summary-payment dd { margin: 0; color: #111827; font-size: 1.125rem; font-weight: 700; line-height: 1.4; white-space: normal; }


/* A short, optional note with live feedback on the booking confirmation. */
.pd-problem-card h2 { margin: 0 0 6px; color: #1f2937; font-size: var(--z-text-h2); font-weight: 700; line-height: 1.3; }
.pd-problem-card .pd-problem-subtitle { margin: 0 0 18px; color: #6b7280; font-size: var(--z-text-body); font-weight: 400; line-height: 1.5; }
.pd-problem-card .pd-problem-label { color: #6b7280; font-size: var(--z-text-caption); font-weight: 600; line-height: 1.5; }
.pd-problem-card .pd-problem-label span { color: #9ca3af; font-weight: 400; }
.pd-problem-card textarea { display: block; box-sizing: border-box; min-height: 4.125rem; max-height: 220px; margin-top: 6px; padding: 0.75rem 0.875rem; resize: none; overflow-y: hidden; color: #1f2937; font-family: inherit; font-size: var(--z-text-body); font-weight: 400; line-height: 1.5; }
.pd-problem-card textarea::placeholder { color: #9ca3af; opacity: 1; }
.pd-text-counter { display: block; margin-top: 6px; color: #9ca3af; font-size: var(--z-text-caption); font-weight: 400; line-height: 1.5; text-align: right; }
.pd-text-counter[data-state="warning"] { color: #9a5a0b; }
.pd-text-counter[data-state="error"] { color: #a93a34; }

/* Readable availability guidance in the booking calendar. */
:root .pd-booking-hours .zreev-empty-state .zreev-empty-state-description {
  font-size: var(--z-text-body, .875rem);
  line-height: 1.5;
}
:root .pd-booking-hours .zreev-empty-state-description .pd-text-action {
  font-size: inherit;
}

/* Complete Monday–Sunday weeks; only past/outside dates are muted. */
.pd-booking-calendar-day { grid-template-columns: minmax(0, 1fr); grid-template-rows: 1.3125rem 1.25rem; justify-content: stretch; align-content: center; row-gap: 0.25rem; min-height: 3.75rem; }
.pd-booking-calendar-day .pd-calendar-date { grid-column: 1; grid-row: 1; white-space: nowrap; }
.pd-booking-calendar-day .pd-calendar-count { grid-column: 1; grid-row: 2; }
.pd-booking-calendar-day.is-past, .pd-booking-calendar-day.is-outside { color: #9CA3AF; cursor: default; }
/* Let the booking calendar's responsive layout use the actual viewport. */
body:has(.pd-app[data-context="booking"]) { min-width: 0; }
.pd-app[data-context="booking"] .pd-shell { min-height: 100vh; grid-template-rows: 72px minmax(0, 1fr); }
@media (max-width: 800px) {
  .pd-app[data-context="booking"] .pd-shell { display: flex; flex-direction: column; }
  .pd-app[data-context="booking"] .pd-sidebar { order: 1; padding: 1rem 1.25rem; border-right: 0; border-bottom: 1px solid var(--patient-border); }
  .pd-app[data-context="booking"] .pd-logo { margin-bottom: 1rem; }
  .pd-app[data-context="booking"] .pd-nav { display: flex; gap: 0.375rem; overflow-x: auto; }
  .pd-app[data-context="booking"] .pd-nav-link { flex: none; padding: 0.625rem 0.75rem; }
  .pd-app[data-context="booking"] .pd-help { display: none; }
  .pd-app[data-context="booking"] .pd-topbar { order: 2; flex-wrap: wrap; gap: 0.75rem; min-height: 4.5rem; padding: 1rem 1.25rem; }
  .pd-app[data-context="booking"] .pd-main { order: 3; min-width: 0; padding: 1.5rem 1.25rem 2.5rem; }
  .pd-app[data-context="booking"] .pd-top-actions { gap: 0.5rem; }
}
/* Booking assistant: quiet entry, readable conversation, clear primary action. */
.pd-assistant-entry { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem; border:1px solid #e5eaf2; border-radius:.75rem; padding:1rem 1.5rem; margin:0 0 1.5rem; background:#f5f8ff; }
.pd-assistant-entry h2, .pd-assistant-dialog h2 { margin:0; font-size:var(--z-font-size-18,1.125rem); font-weight:700; }
.pd-assistant-entry p { margin:.5rem 0 0; font-size:var(--z-font-size-14,.875rem); }
.pd-assistant-dialog { box-sizing:border-box; width:min(40rem,calc(100% - 2rem)); max-height:calc(100dvh - 2rem); overflow:auto; border:1px solid #e5eaf2; border-radius:.75rem; padding:1.5rem; background:#fff; color:#1f2937; font:inherit; }
.pd-assistant-dialog::backdrop { background:rgba(15,23,42,.35); }
.pd-assistant-dialog header, .pd-assistant-actions { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1rem; }
.pd-assistant-dialog header [data-action="close-booking-assistant"] { min-width:2.75rem; min-height:2.75rem; border:0; background:transparent; color:#6b7280; font:inherit; font-size:1.5rem; cursor:pointer; }
.pd-assistant-intro, .pd-assistant-dialog p { font-size:var(--z-font-size-14,.875rem); line-height:1.5; }
.pd-assistant-intro { color:#6b7280; margin:1rem 0; }
.pd-assistant-conversation { display:grid; gap:.75rem; margin:1rem 0; }
.pd-assistant-message { padding:.75rem 1rem; border-radius:.75rem; background:#f5f8ff; overflow-wrap:anywhere; }
.pd-assistant-message.is-user { background:#f6f7f9; }
.pd-assistant-message strong { font-size:var(--z-font-size-12,.75rem); font-weight:600; color:#6b7280; }
.pd-assistant-message p { margin:.375rem 0 0; white-space:pre-wrap; }
.pd-assistant-dialog form, .pd-assistant-result { display:grid; gap:.75rem; }
.pd-assistant-dialog label { font-size:var(--z-font-size-14,.875rem); }
.pd-assistant-dialog textarea { box-sizing:border-box; width:100%; min-height:4.125rem; max-height:13.75rem; padding:.75rem; border:1px solid #cbd5e1; border-radius:.5rem; font:inherit; font-size:var(--z-font-size-14,.875rem); color:#1f2937; resize:vertical; }
.pd-assistant-dialog textarea::placeholder { color:#9ca3af; }
.pd-assistant-dialog .pd-assistant-consent { display:flex; align-items:flex-start; gap:.5rem; font-size:var(--z-font-size-12,.75rem); line-height:1.5; color:#6b7280; }
.pd-assistant-consent input { flex:0 0 auto; margin:.2rem 0 0; }
.pd-assistant-actions { margin-top:.5rem; }
.pd-assistant-actions button { font:inherit; font-size:var(--z-font-size-14,.875rem); cursor:pointer; }
.pd-assistant-result h3 { margin:0; font-size:var(--z-font-size-18,1.125rem); }
.pd-assistant-result p { margin:0; }
.pd-assistant-dialog [hidden] { display:none; }
@media(max-width:600px) { .pd-assistant-dialog { padding:1rem; } .pd-assistant-entry { padding:1rem; } }

/* Assistant modal: product typography and accessible inline consent feedback. */
.pd-assistant-dialog { font-family:"Plus Jakarta Sans",sans-serif; font-size:.875rem; line-height:1.5; padding:1.5rem; }
.pd-assistant-dialog h2 { line-height:1.3; }
.pd-assistant-dialog .pd-assistant-consent { font-size:.75rem; color:#6b7280; gap:.75rem; }
.pd-assistant-consent input { width:18px; height:18px; margin:.125rem 0 0; accent-color:#2f6bff; }
.pd-assistant-consent span { min-width:0; }
.pd-assistant-dialog .pd-assistant-privacy { margin:0 0 .25rem 1.875rem; color:#6b7280; font-size:.75rem; }
.pd-assistant-actions { margin-top:.75rem; gap:1rem; }
.pd-assistant-actions .pd-primary-link { margin-left:auto; min-height:2.75rem; padding:.625rem 1rem; border:1px solid #2f6bff; border-radius:.75rem; background:#2f6bff; color:#fff; font-weight:600; }
.pd-assistant-dialog .pd-inline-error { margin:0; color:#a93a34; font-size:.875rem; }
.pd-assistant-dialog [aria-invalid="true"] { outline:2px solid #a93a34; outline-offset:2px; }
.pd-assistant-dialog button:focus-visible,.pd-assistant-dialog textarea:focus-visible,.pd-assistant-dialog input:focus-visible { outline:2px solid #2f6bff; outline-offset:3px; }

/* Compact assistant copy: contextual help is available on hover and keyboard focus. */
.pd-assistant-dialog header { margin-bottom:1.5rem; flex-wrap:nowrap; }
.pd-assistant-title, .pd-assistant-field-heading { display:flex; align-items:center; gap:.5rem; min-width:0; }
.pd-assistant-field-heading label { font-size:.75rem; font-weight:600; color:#6b7280; }
.pd-assistant-help { position:relative; display:inline-flex; flex:0 0 auto; }
.pd-assistant-dialog .pd-assistant-help-trigger { display:inline-flex; align-items:center; justify-content:center; width:1.5rem; height:1.5rem; min-width:0; min-height:0; padding:0; border:1px solid #c7cbd1; border-radius:50%; background:#fff; color:#6b7280; font:inherit; font-size:.75rem; font-weight:600; cursor:help; }
.pd-assistant-help-bubble { display:none; position:absolute; z-index:2; top:calc(100% + .375rem); left:0; width:min(18rem,calc(100vw - 5rem)); padding:.75rem; border:1px solid #e5eaf2; border-radius:.5rem; background:#1f2937; color:#fff; font-size:.75rem; font-weight:400; line-height:1.5; overflow-wrap:anywhere; }
.pd-assistant-title .pd-assistant-help-bubble { left:auto; right:0; }
.pd-assistant-help:hover .pd-assistant-help-bubble, .pd-assistant-help:focus-within .pd-assistant-help-bubble { display:block; }
.pd-assistant-help::after { content:""; position:absolute; inset:100% 0 auto; height:.5rem; }
.pd-assistant-dialog [data-assistant-form] .pd-assistant-consent { margin-top:.25rem; align-items:center; }
.pd-assistant-dialog [data-assistant-form] .pd-assistant-consent input { margin:0; }
.pd-assistant-dialog .pd-text-counter { margin:0; }
@media(max-width:600px) {
  .pd-assistant-field-heading .pd-assistant-help-bubble { left:auto; right:0; }
}

/* Recommendation names the actual service before explaining the next booking step. */
.pd-assistant-recommendation { display:grid; gap:.75rem; padding:1rem; border:1px solid #e5eaf2; border-radius:.75rem; min-width:0; }
.pd-assistant-dialog .pd-assistant-result-label { font-size:.75rem; font-weight:600; color:#6b7280; }
.pd-assistant-recommendation h3 { font-weight:700; line-height:1.3; overflow-wrap:anywhere; }
.pd-assistant-next-step { color:#6b7280; }
.pd-assistant-summary-details { min-width:0; margin-top:.25rem; }
.pd-assistant-summary-details > summary { width:fit-content; color:#2f6bff; font-size:.875rem; font-weight:600; line-height:1.5; cursor:pointer; }
.pd-assistant-summary-details > summary:focus-visible { outline:2px solid #2f6bff; outline-offset:3px; border-radius:.25rem; }
.pd-assistant-summary-fields { display:grid; gap:.5rem; padding-top:.75rem; }
.pd-assistant-dialog .pd-assistant-summary-fields label { font-size:.75rem; font-weight:600; color:#6b7280; }
.pd-assistant-share-row { display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; }
.pd-assistant-dialog .pd-assistant-share-row .pd-assistant-consent { align-items:center; margin:0; }
.pd-assistant-share-row .pd-assistant-consent input { margin:0; }
.pd-assistant-share-row .pd-assistant-help-bubble { left:auto; right:0; }
.pd-assistant-actions .pd-primary-link { white-space:normal; max-width:100%; text-align:center; }

/* Dashboard visit content stays in flow when text or labels grow. */
.pd-global-primary-grid, .pd-facility-primary-grid { grid-template-columns: minmax(0, 700px) minmax(0, 388px); }
.pd-global-primary-grid:not(:has(.pd-global-plan)), .pd-facility-primary-grid:not(:has(.pd-facility-plan)) { grid-template-columns: minmax(0, 1fr); }
.pd-global-nearest, .pd-facility-nearest { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "label details" "title title" "badges badges" "date date" "time time" "specialist specialist"; align-content: start; gap: 0.5rem 1rem; min-width: 0; overflow: visible; }
.pd-global-nearest > .pd-global-eyebrow, .pd-facility-nearest > .pd-global-eyebrow { grid-area: label; align-self: center; }
.pd-global-nearest > .pd-global-details, .pd-facility-nearest > .pd-global-details { grid-area: details; position: static; justify-self: end; width: auto; height: auto; min-height: 2.625rem; padding: 0.5rem 0; }
.pd-global-nearest h2, .pd-facility-nearest h2 { grid-area: title; max-width: none; margin: 0; overflow-wrap: anywhere; }
.pd-global-nearest > .pd-global-badges, .pd-facility-nearest > .pd-global-badges { grid-area: badges; position: static; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 0.5rem; min-width: 0; }
.pd-global-nearest > .pd-global-date, .pd-facility-nearest > .pd-global-date { grid-area: date; overflow-wrap: anywhere; }
.pd-global-nearest > .pd-global-time, .pd-facility-nearest > .pd-global-time { grid-area: time; }
.pd-global-nearest > .pd-global-specialist, .pd-facility-nearest > .pd-global-specialist { grid-area: specialist; position: static; height: auto; min-width: 0; margin-top: 0.5rem; padding-top: 0; overflow-wrap: anywhere; }
@media (max-width: 760px) {
  .pd-global-primary-grid, .pd-facility-primary-grid { grid-template-columns: minmax(0, 1fr); }
  .pd-global-nearest, .pd-facility-nearest { grid-template-columns: minmax(0, 1fr); grid-template-areas: "label" "details" "title" "badges" "date" "time" "specialist"; }
}

.pd-global-specialist > span:last-child { min-width: 0; }
.pd-global-avatar { flex-shrink: 0; }

/* Visit title and badges share a wrapping content row. */
.pd-global-nearest, .pd-facility-nearest { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "label details" "heading heading" "date date" "time time" "specialist specialist"; }
.pd-nearest-visit-heading { grid-area: heading; display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem; min-width: 0; }
.pd-nearest-visit-heading h2 { flex: 1 1 15rem; min-width: 0; }
.pd-nearest-visit-heading > .pd-global-badges { position: static; display: flex; flex: 0 1 auto; flex-wrap: wrap; gap: 0.5rem; margin-left: auto; min-width: 0; }
.pd-global-avatar { overflow: hidden; }
.pd-global-avatar img { display: block; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 760px) {
  .pd-global-nearest, .pd-facility-nearest { grid-template-columns: minmax(0, 1fr); grid-template-areas: "label" "details" "heading" "date" "time" "specialist"; }
}

.pd-empty-card-column > .pd-global-upcoming, .pd-empty-card-column > .pd-facility-visits { min-height: 15.625rem; padding: 1.25rem 1.3125rem; }

/* Each dashboard column sizes its cards independently from their content. */
.pd-empty-card-columns .pd-empty-card-column > section,
.pd-empty-card-columns .pd-empty-card-column > article { min-height: 0; height: auto; min-width: 0; }


/* Additional profile sections reuse the patient shell and data. */
.pd-profile-pin-form h3,.pd-profile-qr h3 { margin:0 0 .75rem; font-size:1rem; }
.pd-booking-success { max-width:40rem; margin:0 auto; text-align:center; }
.pd-booking-success-icon { display:grid; place-items:center; width:4rem; height:4rem; margin:0 auto 1.5rem; border-radius:50%; background:#EFF4FF; color:#2F6BFF; }
.pd-booking-success-icon svg { width:2rem; height:2rem; }
.pd-booking-success h1 { margin:0 0 .75rem; font-size:1.875rem; }
.pd-booking-success > p { color:var(--patient-muted); line-height:1.5; margin:0 0 2rem; }
.pd-booking-success .pd-confirmation-card { text-align:left; }
.pd-booking-success .pd-confirmation-card h2 { margin:0 0 1.5rem; font-size:1.125rem; }
.pd-booking-success .pd-booking-summary a { color:#2F6BFF; text-decoration:none; }
.pd-booking-success-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:.75rem; margin-top:2rem; }
.pd-booking-success-actions a { text-decoration:none; display:inline-flex; align-items:center; justify-content:center; }
@media(max-width:600px){.pd-booking-success-actions{flex-direction:column}.pd-booking-success-actions a{width:100%}}
@media(max-width:800px){.pd-shell:has(.pd-booking-success) .pd-sidebar{padding:1rem 1.25rem;border-right:0;border-bottom:1px solid var(--patient-border)}.pd-shell:has(.pd-booking-success) .pd-nav{display:flex;gap:.375rem;overflow-x:auto}.pd-shell:has(.pd-booking-success) .pd-nav-link{flex:none;white-space:nowrap}.pd-shell:has(.pd-booking-success) .pd-help{display:none}}
.pd-profile-pin-form > p,.pd-profile-qr p { color:var(--patient-muted); font-size:.875rem; line-height:1.5; }
.pd-profile-pin-form .pd-profile-form-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.pd-profile-pin-group { min-width:0; margin:0; padding:0; border:0; }
.pd-profile-pin-group legend { margin-bottom:.5rem; padding:0; font-size:.875rem; }
.pd-profile-pin-fields { display:grid; grid-template-columns:repeat(4,52px); gap:10px; }
.pd-profile-pin-form fieldset.pd-profile-pin-group .pd-profile-pin-fields input { width:52px; height:56px; min-height:56px; max-height:none; padding:0; border:1px solid #d7dfea; border-radius:12px; color:#111827; font:700 22px "Plus Jakarta Sans",Arial,sans-serif; text-align:center; box-sizing:border-box; }
.pd-profile-pin-fields input:hover { border-color:#aebdce; }
.pd-profile-pin-fields input:focus-visible { border-color:#2F6BFF; outline:3px solid rgba(47,107,255,.14); }
@media(max-width:380px){.pd-profile-pin-fields{grid-template-columns:repeat(4,48px);gap:8px}.pd-profile-pin-form fieldset.pd-profile-pin-group .pd-profile-pin-fields input{width:48px;height:52px;min-height:52px}}
.pd-profile-payments { width:100%; }
.pd-profile-payments .zreev-table-scroll > table { min-width:0; }
.pd-profile-payments table { width:100%; table-layout:fixed; border-collapse:collapse; font-size:.8125rem; }
.pd-profile-payments th:first-child { width:32%; }
.pd-profile-payments th:nth-child(2) { width:28%; }
.pd-profile-payments th:nth-child(3) { width:18%; }
.pd-profile-payments th { color:var(--patient-muted); font-weight:400; text-align:left; }
.pd-profile-payments th,.pd-profile-payments td { padding:1rem .5rem; border-bottom:1px solid var(--patient-border); vertical-align:top; overflow-wrap:anywhere; }
.pd-profile-payments th:first-child,.pd-profile-payments td:first-child { padding-left:0; }
.pd-profile-payments td a { color:var(--patient-primary); font-weight:600; text-decoration:none; }
.pd-profile-payments td small { display:block; margin-top:.5rem; color:var(--patient-muted); }
.pd-profile-qr { display:flex; align-items:center; gap:2rem; }
.pd-profile-qr > img { width:220px; height:220px; flex:none; object-fit:contain; }
.pd-profile-qr a { color:var(--patient-primary); display:block; margin:.75rem 0; overflow-wrap:anywhere; }
.pd-profile-facility-choice { display:block; margin-top:.75rem; }
@media(max-width:1100px){.pd-profile-pin-form .pd-profile-form-grid{grid-template-columns:1fr}.pd-profile-qr{align-items:flex-start;flex-direction:column;gap:1.5rem}}




/* Compact visit cards: the appointment link covers the card; the facility remains independent. */
.pd-visits-heading{align-items:center;margin-bottom:1.5rem}
.pd-visits-heading-actions{display:flex;align-items:center;gap:1.5rem}
.pd-visits-therapy{color:#2F6BFF;font-size:.875rem;font-weight:600;text-decoration:none;white-space:nowrap}
.pd-visits-therapy:hover{text-decoration:underline}
.pd-visit-cards{display:grid;gap:.5rem;margin:0;padding:0;list-style:none}
.pd-visit-card{position:relative;display:grid;grid-template-columns:2.25rem minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.75rem 1rem;border:1px solid #E5EAF2;border-radius:12px;background:#fff}
.pd-visit-card:hover{border-color:#b9cdfd;background:#F8FAFC}
.pd-visit-card-icon{display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:8px;background:#F1F5F9;color:#616D7E}
.pd-visit-card-icon svg{width:1.25rem;height:1.25rem}
.pd-visits-treatment{min-width:0}
.pd-visits-service{display:block;color:#111827;font-size:.875rem;font-weight:700;line-height:1.4;text-decoration:none;overflow-wrap:anywhere}
.pd-visits-service::after{content:"";position:absolute;inset:0;border-radius:12px}
.pd-visits-service:focus-visible{outline:none}
.pd-visits-service:focus-visible::after{outline:2px solid #2F6BFF;outline-offset:3px}
.pd-visit-card-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem .5rem;margin-top:.25rem;color:#616D7E;font-size:.8125rem;line-height:1.4}
.pd-visit-card-meta>*+*::before{content:"·";margin-right:.5rem}
.pd-visits-date,.pd-visits-time{white-space:nowrap}
.pd-visits-facility a{position:relative;z-index:1;color:inherit;text-decoration:none}
.pd-visits-facility a:hover{text-decoration:underline;color:#2F6BFF}
.pd-visits-facility a:focus-visible,.pd-visits-therapy:focus-visible{outline:2px solid #2F6BFF;outline-offset:3px}
.pd-visits-badges{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:8px}
.pd-visits-badges .pd-global-badge{flex:none;white-space:nowrap}
.pd-visit-card .pd-visits-state{min-width:0}
.pd-visit-card .pd-global-badge{flex:0 1 auto;white-space:normal}
.pd-visit-card .pd-global-badge img{flex:none}
.pd-visits-empty{margin:.75rem 0;color:#616D7E;font-size:.875rem}
.pd-visits-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:1050px){
 .pd-visit-card{grid-template-columns:2.25rem minmax(0,1fr)}
 .pd-visits-state{grid-column:1/-1}
}
@media(max-width:760px){
 .pd-visits-heading{align-items:stretch}
 .pd-visits-heading-actions{justify-content:space-between;gap:1rem}
 .pd-visit-card{padding:.75rem}
}

.pd-visits-filters select{min-height:2.25rem;padding:.375rem .875rem;border:1px solid #E5EAF2;border-radius:999px;background:#fff;color:#111827;font-family:inherit;font-size:.875rem;font-weight:400;line-height:1.25rem;max-width:100%}
.pd-visits-filters select:focus-visible{outline:2px solid #2F6BFF;outline-offset:3px}
.pd-visits-filters label{max-width:100%}
#pd-visits-panel .pd-appointments-group{margin-top:1rem}
#pd-visits-panel .pd-appointments-group>h2{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}

/* Zreev AI identity with AI as a compact exponent. */
.pd-assistant-title h2 { display:flex; align-items:center; flex-wrap:wrap; gap:.75rem; }
.pd-assistant-brand { display:inline-flex; align-items:center; gap:.125rem; flex-shrink:0; }
.pd-assistant-brand img { display:block; width:auto; height:1.5rem; object-fit:contain; }
.pd-assistant-brand > span { align-self:flex-start; transform:translateY(-.25rem); color:var(--patient-primary,#2f6bff); font-size:.75rem; font-weight:700; line-height:1; }
.pd-assistant-data-details { font-size:var(--z-font-size-14,.875rem); line-height:1.5; }
.pd-assistant-data-details summary { cursor:pointer; color:var(--patient-primary,#2f6bff); }
.pd-assistant-data-details p { margin:.5rem 0 0; }

/* Shared page descriptions, matching the dashboard lead. */
.pd-booking-head > p, .pd-page-heading p, .pd-discovery-head > p, .pd-account-heading > p, .pd-booking-success > p { font-size:.875rem; font-weight:400; line-height:1.25rem; }

/* Directory controls share one scalable height across native and custom fields. */
#pd-directory-search input:not([type="hidden"]),
#pd-directory-search select,
#pd-directory-search .pd-directory-date-trigger,
#pd-directory-search .pd-directory-combobox > button {
  box-sizing:border-box; height:2.5rem; min-height:2.5rem; line-height:1.25rem;
}
.pd-app .pd-global-details, .pd-app .pd-global-details:hover, .pd-app .pd-global-details:focus-visible { text-decoration:none; }

/* Facility directory cards use the dashboard service pills and compact type scale. */
.pd-discovery-card .pd-discovery-title { font-size:1rem; line-height:1.5; }
.pd-discovery-card .pd-directory-address, .pd-discovery-card .pd-discovery-description,
.pd-discovery-card .pd-directory-availability .pd-directory-button { font-size:.875rem; line-height:1.5; }
.pd-discovery-tags .pd-directory-tag { font-family:inherit; font-weight:400; text-align:left; }
.pd-discovery-tags .pd-directory-tag.is-selected { background:#EFF4FF; color:var(--patient-primary); }
.pd-discovery-card .pd-directory-availability { min-width:0; align-items:stretch; justify-content:flex-start; gap:1rem; }
.pd-directory-card-price { display:grid; grid-template-columns:minmax(0,1fr); justify-items:start; gap:.375rem; }
.pd-directory-price-heading { display:flex; flex-wrap:wrap; align-items:center; gap:.375rem .5rem; min-width:0; max-width:100%; }
.pd-discovery-card .pd-directory-next-label { display:block; font-size:.75rem; line-height:1.5; }
.pd-directory-card-price strong { max-width:100%; margin:0; font-size:.75rem; line-height:1.5; }
.pd-directory-card-price small, .pd-directory-card-price .pd-discovery-muted { margin:0; font-size:.75rem; line-height:1.5; }
.pd-directory-next-value { display:flex; flex-wrap:wrap; align-items:baseline; gap:.25rem .5rem; margin-top:.375rem; }
.pd-discovery-card .pd-directory-next-date, .pd-discovery-card .pd-directory-next-time { margin:0; font-family:inherit; font-size:.875rem; font-weight:600; line-height:1.5; }
.pd-directory-next-time::before { content:"·"; margin-right:.5rem; color:var(--patient-muted); }
@media(max-width:800px) {
  .pd-discovery-card .pd-directory-availability { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
}
@media(max-width:480px) {
  .pd-discovery-card .pd-directory-availability { grid-template-columns:minmax(0,1fr); }
}
