:root {
  /* Stable clinical navigation palette (documented intentional brand green). */
  --ph-clinical-900: #063f31;
  --ph-clinical-800: #07533f;
  --ph-clinical-700: #086a50;
  --ph-clinical-500: #19a27f;
  --ph-clinical-100: #d9f4ec;
  --ph-clinical-active: #0a775b;
  --ph-clinical-selected-hover: #0b785c;
  --ph-clinical-border: #0b644d;
  --ph-clinical-border-interactive: #6fdcbd;
  --ph-clinical-focus: #a6c8ff;
  --ph-clinical-icon-secondary: #c8eee3;
  --ph-clinical-text-secondary: #d6f0e9;
  --ph-clinical-section-label: #9fd8c8;
  /* Categorical metric-card accents (Carbon data-vis hues) so sibling cards read as distinct. */
  --ph-accent-blue: #1192e8;
  --ph-accent-purple: #8a3ffc;
  --ph-accent-teal: #009d9a;
  --ph-accent-magenta: #d02670;
  /* Primary actions follow the clinical brand (login shell already did; clinic UI now matches). */
  --cds-button-primary: var(--ph-clinical-active);
  --cds-button-primary-hover: var(--ph-clinical-800);
  --cds-link-primary: var(--ph-clinical-active);
  --cds-link-primary-hover: var(--ph-clinical-800);
  --cds-background-brand: var(--ph-clinical-active);
  --cds-border-interactive: var(--ph-clinical-border-interactive);
  --ph-shell-header-size: 3rem;
  --ph-side-nav-size: 16rem;
  --ph-side-nav-rail-size: 3rem;
  --ph-shell-content-gap: 0.5rem;
  /* Layer order, highest first. */
  --ph-z-error: 10000;
  --ph-z-skip-link: 10000;
  --ph-z-toast: 9200;
  --ph-z-profile: 9100;
  --ph-z-notifications: 9100;
  --ph-z-profile-dismiss: 9050;
  --ph-z-header: 9000;
  --ph-z-side-nav: 8000;
  --ph-z-scrim: 7800;
  /* In-page sticky chrome (form command bars); far below shell chrome and overlays. */
  --ph-z-page-sticky: 100;
  --ph-content-narrow: 32rem;
  --ph-content-medium: 42.5rem;
  --ph-content-wide: 64rem;
  --ph-control-compact-inline-size: 6rem;
  --ph-control-medium-inline-size: 9rem;
  --ph-calendar-grid-min-size: 48rem;
  font-family: 'IBM Plex Sans', system-ui, sans-serif;
}

:root {
  /* ── Legacy design-token aliases (FROZEN — no new usage) ──────────────
     These map the pre-Carbon token names still used across ~40 scoped
     stylesheets onto their --cds-* equivalents. They live in
     PactaHealth.Shared/wwwroot/css/shared-patterns.css, but that file is
     only linked by PactaHealth.Sales - the Carbon host never loads it, so
     every one of these resolved to nothing and the declaration was dropped.
     Values are copied verbatim from shared-patterns.css.
     FROZEN: new styles must use the --cds-* / --ph-* tokens directly, not
     these aliases (enforced by DesignTokenDriftTests). Delete an alias once
     its last consumer moves to the --cds-* token. */
  --bg-surface: var(--cds-layer);  /* 11 uses */
  --bg-raised: var(--cds-layer-accent);  /* 9 uses */
  --bg-primary: var(--cds-background);  /* 5 uses */
  --bg-sidebar: var(--cds-layer);  /* 1 uses */
  --bg-tertiary: var(--cds-layer-accent);  /* 2 uses */
  --surface-subtle: var(--cds-layer);  /* 1 uses */
  --border: var(--cds-border-subtle);  /* 20 uses */
  --border-muted: var(--cds-border-subtle);  /* 10 uses */
  --border-light: var(--cds-border-subtle);  /* 1 uses */
  --border-medium: var(--cds-border-strong);  /* 6 uses */
  --text-primary: var(--cds-text-primary);  /* 10 uses */
  --text-secondary: var(--cds-text-secondary);  /* 16 uses */
  --text-tertiary: var(--cds-text-secondary);  /* 8 uses */
  --text-muted: var(--cds-text-secondary);  /* 3 uses */
  --text-inverse: var(--cds-text-on-color);  /* 3 uses */
  --text-on-brand: #ffffff;  /* 4 uses */
  --text-xs: 0.75rem;  /* 99 uses */
  --text-sm: 0.875rem;  /* 135 uses */
  --text-md: 1rem;  /* 16 uses */
  --text-base: 1rem;  /* 17 uses */
  --text-lg: 1.125rem;  /* 12 uses */
  --text-xl: 1.25rem;  /* 11 uses */
  --text-2xl: 1.5rem;  /* 9 uses */
  --text-3xl: 1.875rem;  /* 1 uses */
  --font-semibold: 600;  /* 8 uses */
  --font-extrabold: 800;  /* 5 uses */
  --lh-sm: 1.35;  /* 2 uses */
  --lh-md: 1.5;  /* 2 uses */
  --lh-base: 1.5;  /* 2 uses */
  --lh-lg: 1.625;  /* 1 uses */
  --r-xs: 2px;  /* 2 uses */
  --r-sm: 2px;  /* 4 uses */
  --r-md: 4px;  /* 4 uses */
  --r-lg: 6px;  /* 2 uses */
  --r-xl: 8px;  /* 1 uses */
  --r-pill: 9999px;  /* 5 uses */
  --radius-sm: 2px;  /* 2 uses */
  --radius-md: 4px;  /* 4 uses */
  --radius-lg: 6px;  /* 1 uses */
  --radius-xl: 8px;  /* 1 uses */
  --radius-full: 9999px;  /* 1 uses */
  --sh-xs: 0 1px 3px rgba(0, 0, 0, 0.08);  /* 7 uses */
  --sh-lg: 0 4px 16px rgba(0, 0, 0, 0.12);  /* 1 uses */
  --shadow-md: 0 2px 6px rgba(0, 0, 0, 0.1);  /* 2 uses */
  --shadow-lg: 0 4px 16px rgba(0, 0, 0, 0.12);  /* 1 uses */
  --his-100: color-mix(in srgb, var(--cds-interactive) 15%, white);  /* 2 uses */
  --his-300: color-mix(in srgb, var(--cds-interactive) 40%, white);  /* 2 uses */
  --his-500: var(--cds-interactive);  /* 6 uses */
  --his-600: var(--cds-interactive);  /* 6 uses */
  --his-700: color-mix(in srgb, var(--cds-interactive) 80%, black);  /* 6 uses */
  --color-primary: var(--cds-interactive);  /* 13 uses */
  --color-primary-dark: color-mix(in srgb, var(--cds-interactive) 80%, black);  /* 3 uses */
  --color-secondary: var(--cds-layer-accent);  /* 1 uses */
  --status-critical-fg: var(--cds-support-error);  /* 10 uses */
  --status-urgent-fg: var(--cds-support-warning);  /* 7 uses */
  --status-success-fg: var(--cds-support-success);  /* 6 uses */
  --status-info-fg: var(--cds-support-info);  /* 6 uses */
  --cds-motion-base: var(--cds-motion-moderate);  /* 2 uses */
  --cds-font-size-01: 0.75rem;  /* 1 uses */
  --cds-font-size-03: 1rem;  /* 2 uses */
  --cds-font-weight-regular: 400;  /* 1 uses */
  --cds-font-weight-semibold: 600;  /* 3 uses */
  --color-error: var(--cds-support-error);  /* 7 uses */
  --color-error-light: color-mix(in srgb, var(--cds-support-error) 15%, white);  /* 1 uses */
  --bg-overlay: var(--cds-overlay);  /* 1 uses */
  --font-medium: 500;  /* 14 uses */
  --font-bold: 700;  /* 12 uses */
  --fs-sm: 0.875rem;  /* 1 uses */
  --line-height-tight: 1.25;  /* 2 uses */
  --line-height-normal: 1.5;  /* 6 uses */
  --font-ui: var(--font-primary);  /* 1 uses */
  --transition-base: var(--cds-motion-moderate);  /* 5 uses */
  --motion-modal-in: var(--cds-motion-moderate);  /* 4 uses */
  --radius-2xl: 12px;  /* 3 uses */
  --padding-md: var(--cds-spacing-05);  /* 3 uses */
  --button-height-sm: 2rem;  /* 8 uses */
  --input-height-md: 2.5rem;  /* 4 uses */
  --glass-blur: 10px;  /* 4 uses */
  --status-critical-bg: color-mix(in srgb, var(--cds-support-error) 10%, transparent);  /* 6 uses */
  --status-urgent-bg: color-mix(in srgb, var(--cds-support-warning) 10%, transparent);  /* 5 uses */
  --status-success-bg: color-mix(in srgb, var(--cds-support-success) 10%, transparent);  /* 4 uses */
  --status-info-bg: color-mix(in srgb, var(--cds-support-info) 10%, transparent);  /* 4 uses */
  --transition-default: 150ms ease;  /* 2 uses */
  --motion-hover: 150ms ease;  /* 6 uses */
  --z-modal: 9500;  /* 4 uses */
  --neutral-900: #161616;  /* 2 uses */
  --font-primary: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;  /* referenced by an alias above */

  /* Not from shared-patterns: invented --cds-* names with no definition in
     the real Carbon bundle (which ships no motion tokens at all). */
  --cds-motion-fast: 110ms cubic-bezier(0.2, 0, 0.38, 0.9);      /* 57 uses */
  --cds-motion-moderate: 240ms cubic-bezier(0.2, 0, 0.38, 0.9);  /* 3 uses */
}

html,
body,
#app {
  min-block-size: 100%;
}

html {
  background: var(--cds-background, #f4f4f4);
}

body {
  background: var(--cds-background, #f4f4f4);
  color: var(--cds-text-primary, #161616);
  margin: 0;
}

* {
  box-sizing: border-box;
}

a {
  color: inherit;
}

button,
a,
select,
input {
  -webkit-tap-highlight-color: transparent;
}

button,
select,
input,
textarea {
  font: inherit;
}

.carbon-visually-hidden {
  block-size: 1px;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  inline-size: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
}

.carbon-app-shell {
  min-block-size: 100vh;
}

.carbon-skip-link {
  background: var(--cds-background, #ffffff);
  color: var(--cds-text-primary, #161616);
  inset-block-start: -5rem;
  inset-inline-start: 0.5rem;
  padding: 0.75rem 1rem;
  position: fixed;
  z-index: var(--ph-z-skip-link);
}

.carbon-skip-link:focus {
  inset-block-start: 0.25rem;
}

/* The product header is intentionally always dark (Carbon UI Shell pattern);
   it carries the theme-g100 class so its tokens come from Carbon, not hex.
   A soft top-left teal glow echoes the login brand panel (see --ph-brand-glow). */
cds-header.carbon-product-header {
  background: var(--ph-brand-glow), var(--cds-background, #161616);
  color: var(--cds-text-primary, #f4f4f4);
  inset-block-start: 0;
  position: fixed;
  z-index: var(--ph-z-header);
}

.carbon-menu-toggle,
.carbon-header-icon-button {
  align-items: center;
  background: transparent;
  border: 0;
  border-inline-end: 1px solid var(--cds-border-subtle-01, #393939);
  color: var(--cds-text-primary, #f4f4f4);
  cursor: pointer;
  display: inline-flex;
  justify-content: center;
  min-block-size: 3rem;
  min-inline-size: 3rem;
  padding: 0;
  position: relative;
}

/* Match the hamburger width to the collapsed rail so the toggle sits directly
   above the icon rail with no overhang. */
.carbon-menu-toggle {
  inline-size: var(--ph-side-nav-rail-size);
  flex: 0 0 var(--ph-side-nav-rail-size);
  max-inline-size: var(--ph-side-nav-rail-size);
  min-inline-size: var(--ph-side-nav-rail-size);
}

.carbon-menu-toggle:hover,
.carbon-header-icon-button:hover {
  background: var(--cds-background-hover, #353535);
}

.carbon-menu-toggle[aria-expanded='true'] {
  background: var(--cds-layer-01, #262626);
  box-shadow: inset 3px 0 0 var(--cds-support-success, #42be65);
}

[dir='rtl'] .carbon-menu-toggle[aria-expanded='true'] {
  box-shadow: inset -3px 0 0 var(--cds-support-success, #42be65);
}

.carbon-menu-toggle:focus-visible,
.carbon-header-icon-button:focus-visible,
.carbon-icon-button:focus-visible,
.carbon-button:focus-visible,
.carbon-text-link:focus-visible,
.carbon-nav-scrim:focus-visible {
  outline: 2px solid var(--cds-focus, #0f62fe);
  outline-offset: -2px;
}

.carbon-environment-label {
  align-self: center;
  background: var(--cds-layer-accent-01, #393939);
  color: var(--cds-text-secondary, #c6c6c6);
  font-size: 0.75rem;
  line-height: 1.5rem;
  margin-inline-start: 0.5rem;
  padding-inline: 0.5rem;
}

.carbon-header-actions {
  block-size: 3rem;
  display: flex;
  margin-inline-start: auto;
  min-inline-size: 0;
}

.carbon-header-icon-button {
  border-inline-end: 0;
  border-inline-start: 1px solid #393939;
}

.carbon-action-code {
  font-size: 0.6875rem;
  font-weight: 600;
  inset-block-end: 0.25rem;
  inset-inline-end: 0.25rem;
  line-height: 1;
  position: absolute;
}

.carbon-presence-dot {
  background: var(--cds-support-success, #42be65);
  border: 2px solid var(--cds-background, #161616);
  block-size: 0.625rem;
  border-radius: 50%;
  inset-block-end: 0.45rem;
  inset-inline-end: 0.4rem;
  position: absolute;
  inline-size: 0.625rem;
}

.carbon-header-notifications {
  position: relative;
}

.carbon-header-icon-button.is-active {
  background: var(--cds-layer-01, #262626);
}

.carbon-notification-count {
  align-items: center;
  background: var(--cds-support-error, #da1e28);
  border-radius: 0.75rem;
  color: #ffffff;
  display: inline-flex;
  font-size: 0.625rem;
  font-weight: 700;
  inset-block-start: 0.35rem;
  inset-inline-end: 0.25rem;
  justify-content: center;
  line-height: 1;
  min-block-size: 1rem;
  min-inline-size: 1rem;
  padding-inline: 0.25rem;
  position: absolute;
}

.carbon-notifications-menu {
  inset-block-start: 100%;
  inset-inline-end: 0;
  position: absolute;
  z-index: var(--ph-z-notifications);
}

.carbon-notifications-panel {
  background: var(--cds-layer-01, #ffffff);
  border: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  border-radius: var(--radius-xl);
  box-shadow: var(--ph-shadow-card-raised);
  display: flex;
  flex-direction: column;
  inline-size: min(22rem, calc(100vw - 1rem));
  max-block-size: min(28rem, calc(100vh - 4rem));
  overflow: hidden;
}

.carbon-notifications-panel__header {
  align-items: center;
  border-block-end: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  display: flex;
  gap: 0.75rem;
  justify-content: space-between;
  padding: 0.75rem 1rem;
}

.carbon-notifications-panel__title {
  color: var(--cds-text-primary, #161616);
  font-size: 0.875rem;
  font-weight: 600;
  margin: 0;
}

.carbon-notifications-panel__badge {
  background: var(--cds-interactive, #0f62fe);
  border-radius: 0.75rem;
  color: #ffffff;
  font-size: 0.6875rem;
  font-weight: 700;
  line-height: 1;
  min-inline-size: 1.25rem;
  padding: 0.25rem 0.5rem;
  text-align: center;
}

.carbon-notifications-panel__empty {
  align-items: center;
  color: var(--cds-text-secondary, #525252);
  display: grid;
  gap: 0.5rem;
  justify-items: center;
  padding: 1.5rem 1rem;
  text-align: center;
}

.carbon-notifications-panel__empty p {
  margin: 0;
}

.carbon-notifications-panel__list {
  display: flex;
  flex-direction: column;
  list-style: none;
  margin: 0;
  overflow: auto;
  padding: 0;
}

.carbon-notifications-panel__item {
  align-items: flex-start;
  border-block-end: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  display: grid;
  gap: 0.75rem;
  grid-template-columns: auto minmax(0, 1fr) auto;
  padding: 0.75rem 1rem;
}

.carbon-notifications-panel__item:last-child {
  border-block-end: 0;
}

.carbon-notifications-panel__icon {
  color: var(--cds-icon-primary, #161616);
  margin-block-start: 0.125rem;
}

.carbon-notifications-panel__copy {
  display: grid;
  gap: 0.25rem;
  min-inline-size: 0;
}

.carbon-notifications-panel__item-title,
.carbon-notifications-panel__item-message {
  margin: 0;
  overflow-wrap: anywhere;
}

.carbon-notifications-panel__item-title {
  color: var(--cds-text-primary, #161616);
  font-size: 0.8125rem;
  font-weight: 600;
}

.carbon-notifications-panel__item-message {
  color: var(--cds-text-secondary, #525252);
  font-size: 0.75rem;
  line-height: 1.4;
}

.carbon-notifications-panel__item-time {
  color: var(--cds-text-secondary, #525252);
  font-size: 0.6875rem;
}

.carbon-notifications-panel__dismiss {
  align-items: center;
  background: transparent;
  border: 0;
  color: var(--cds-text-secondary, #525252);
  cursor: pointer;
  display: inline-flex;
  justify-content: center;
  min-block-size: 1.5rem;
  min-inline-size: 1.5rem;
  padding: 0;
}

.carbon-notifications-panel__dismiss:hover {
  color: var(--cds-text-primary, #161616);
}

.carbon-notifications-panel__dismiss:focus-visible {
  outline: 2px solid var(--cds-focus, #0f62fe);
  outline-offset: -2px;
}

.carbon-header-context {
  display: flex;
  min-inline-size: 0;
}

.carbon-context-select {
  --cds-field: var(--cds-background, #161616);
  --cds-field-hover: var(--cds-background-hover, #353535);
  --cds-layer: var(--cds-background, #161616);
  align-items: center;
  background: var(--cds-background, #161616);
  border-inline-start: 1px solid var(--cds-border-subtle-01, #393939);
  color: var(--cds-text-secondary, #c6c6c6);
  display: inline-flex;
  min-block-size: 3rem;
  padding-inline-start: 0.75rem;
  position: relative;
}

.carbon-context-select:hover {
  background: var(--cds-background-hover, #353535);
}

.carbon-context-select cds-select {
  inline-size: 11.5rem;
  min-inline-size: 11.5rem;
}

.carbon-context-select--location cds-select {
  inline-size: 13.5rem;
  min-inline-size: 13.5rem;
}

.carbon-context-select--profile cds-select {
  inline-size: 14.5rem;
  min-inline-size: 14.5rem;
}

.carbon-theme-toggle {
  border-inline-start: 1px solid var(--cds-border-subtle-01, #393939);
}

.carbon-profile-panel {
  background: var(--cds-layer-01, #ffffff);
  border: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  border-radius: var(--radius-xl);
  box-shadow: var(--ph-shadow-card-raised);
  inline-size: min(22rem, calc(100vw - 1rem));
  inset-block-start: 3rem;
  inset-inline-end: 0;
  padding: 1rem;
  position: fixed;
  z-index: var(--ph-z-profile);
}

.carbon-profile-dismiss {
  background: transparent;
  border: 0;
  cursor: default;
  inset: var(--ph-shell-header-size) 0 0;
  padding: 0;
  position: fixed;
  z-index: var(--ph-z-profile-dismiss);
}

.carbon-profile-panel__actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: flex-end;
}

.carbon-profile-panel__identity {
  align-items: center;
  display: flex;
  gap: 0.75rem;
  margin-block-end: 1rem;
}

.carbon-profile-panel__identity strong,
.carbon-profile-panel__identity span {
  display: block;
}

.carbon-profile-panel__identity span {
  color: var(--cds-text-secondary, #525252);
  font-size: 0.75rem;
  margin-block-start: 0.125rem;
}

.carbon-avatar {
  align-items: center;
  background: var(--ph-clinical-800);
  block-size: 2.5rem;
  color: #ffffff;
  display: inline-flex;
  font-size: 0.875rem;
  font-weight: 600;
  justify-content: center;
  inline-size: 2.5rem;
  overflow: hidden;
}

.carbon-avatar img {
  block-size: 100%;
  inline-size: 100%;
  object-fit: cover;
}

.carbon-profile-panel dl {
  border-block: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  margin: 0 0 1rem;
  padding-block: 0.5rem;
}

.carbon-profile-panel dl div {
  display: grid;
  font-size: 0.75rem;
  gap: 1rem;
  grid-template-columns: 5rem 1fr;
  padding-block: 0.35rem;
}

.carbon-profile-panel dt {
  color: var(--cds-text-secondary, #525252);
}

.carbon-profile-panel dd {
  margin: 0;
}

.carbon-profile-panel__link,
.carbon-text-link {
  color: var(--cds-link-primary, #0f62fe);
  font-size: 0.875rem;
  text-decoration: none;
}

.carbon-profile-panel__link:hover,
.carbon-text-link:hover {
  text-decoration: underline;
}

.carbon-toast-stack {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  inset-block-start: calc(var(--ph-shell-header-size) + var(--ph-module-strip-size, 2.75rem) + 0.75rem);
  inset-inline-end: 0.75rem;
  max-inline-size: min(24rem, calc(100vw - 1.5rem));
  pointer-events: none;
  position: fixed;
  z-index: var(--ph-z-toast, 9200);
}

.carbon-toast-stack .carbon-toast,
.carbon-toast-stack cds-inline-notification {
  pointer-events: auto;
  inline-size: 100%;
}

/* Custom properties inherit into the slotted nav children, so the token
   overrides are declared once on the side-nav host. */
cds-side-nav.carbon-clinical-nav {
  --cds-background: var(--ph-clinical-900);
  --cds-background-active: var(--ph-clinical-active);
  --cds-background-hover: var(--ph-clinical-800);
  --cds-background-selected: var(--ph-clinical-700);
  --cds-background-selected-hover: var(--ph-clinical-selected-hover);
  --cds-border-interactive: var(--ph-clinical-border-interactive);
  --cds-focus: var(--ph-clinical-focus);
  --cds-icon-primary: #ffffff;
  --cds-icon-secondary: var(--ph-clinical-icon-secondary);
  --cds-text-primary: #ffffff;
  --cds-text-secondary: var(--ph-clinical-text-secondary);
  background: var(--ph-clinical-900);
  block-size: calc(100vh - var(--ph-shell-header-size));
  border-inline-end: 1px solid var(--ph-clinical-border);
  inset-block-start: var(--ph-shell-header-size);
  z-index: var(--ph-z-side-nav);
}

cds-side-nav.carbon-clinical-nav:not([expanded]) {
  background: var(--ph-clinical-900);
}

/*
 * Carbon rail mode expands on mouseover in JS. We keep the icon rail visually, but
 * lockSideNavHoverExpand() undoes hover/focus expansion. CSS also pins rail width so
 * a one-frame flash cannot paint the full menu.
 */
cds-side-nav.carbon-clinical-nav[collapse-mode='rail']:not([expanded]),
cds-side-nav.carbon-clinical-nav[collapse-mode='rail']:not([expanded]):hover,
cds-side-nav.carbon-clinical-nav[collapse-mode='rail']:not([expanded]):focus-within {
  inline-size: var(--ph-side-nav-rail-size) !important;
  max-inline-size: var(--ph-side-nav-rail-size) !important;
  min-inline-size: var(--ph-side-nav-rail-size) !important;
  overflow: hidden;
}

.carbon-nav-section-label {
  color: var(--ph-clinical-section-label);
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.06rem;
  overflow: hidden;
  padding: 1rem 1rem 0.375rem;
  text-transform: uppercase;
  white-space: nowrap;
}

cds-side-nav:not([expanded]) .carbon-nav-section-label {
  display: none;
}

/* Keep rail link names available to assistive technology while showing only
   their icons. The names return visually when Carbon expands the rail. */
cds-side-nav:not([expanded]) .carbon-link-text {
  block-size: 1px;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  inline-size: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
}

.carbon-main-container {
  margin-inline-start: calc(var(--ph-side-nav-size) + var(--ph-shell-content-gap));
  min-inline-size: 0;
  padding-block-start: var(--ph-shell-header-size);
  transition: margin-inline-start 110ms cubic-bezier(0.2, 0, 1, 0.9);
}

.carbon-module-strip {
  background: var(--cds-layer-01, #ffffff);
  border-block-end: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  padding-inline: 2rem;
  position: sticky;
  inset-block-start: var(--ph-shell-header-size);
  z-index: var(--ph-z-module-strip, 3);
}

.carbon-module-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  min-block-size: 2.5rem;
}

.carbon-module-tab {
  align-items: center;
  border-block-end: 2px solid transparent;
  color: var(--cds-text-secondary, #525252);
  display: inline-flex;
  font-size: var(--cds-body-compact-01-font-size, 0.875rem);
  font-weight: 600;
  padding: 0.75rem 1rem;
  text-decoration: none;
  transition: color 110ms ease, border-color 110ms ease, background-color 110ms ease;
}

.carbon-module-tab:hover {
  background: var(--cds-layer-hover-01, #e8e8e8);
  color: var(--cds-text-primary, #161616);
}

.carbon-module-tab--active,
.carbon-module-tab.active {
  border-block-end-color: var(--cds-interactive, #0f62fe);
  color: var(--cds-text-primary, #161616);
}

/* Page-actions strip: populated by CarbonPageScaffold.Actions via
   ShellPageActionsHost. Styled in this host because the clinic shell never
   loads shared-patterns.css; buttons here are cds-button, not the Sales
   .carbon-btn. */
.carbon-page-actions-strip {
  background: var(--cds-layer-01, #ffffff);
  border-block-end: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  display: block;
  min-block-size: 2.5rem;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: thin;
}

.carbon-page-actions-strip:focus-visible {
  outline: 2px solid var(--cds-focus, #0f62fe);
  outline-offset: -2px;
}

.carbon-page-actions-strip__actions {
  align-items: center;
  display: flex;
  gap: 0.5rem;
  inline-size: max-content;
  justify-content: flex-end;
  margin-inline-start: auto;
  min-block-size: 2.5rem;
  min-inline-size: max-content;
  padding-inline: 2rem;
  white-space: nowrap;
}

.carbon-page-actions-strip__actions > * {
  flex: 0 0 auto;
}

/* Touch: the 32rem header rule shrinks icon buttons to 2.5rem for mouse;
   hold the 44px accessibility floor on coarse pointers. */
@media (pointer: coarse) {
  .carbon-header-icon-button {
    min-block-size: 2.75rem;
    min-inline-size: 2.75rem;
  }

  .carbon-page-actions-strip,
  .carbon-page-actions-strip__actions {
    min-block-size: 2.75rem;
  }
}

.has-collapsed-nav .carbon-main-container {
  margin-inline-start: calc(var(--ph-side-nav-rail-size) + var(--ph-shell-content-gap));
}

.carbon-main {
  min-block-size: calc(100vh - var(--ph-shell-header-size));
  outline: none;
}

/* FocusOnNavigate moves focus to the page h1 on every route change. That focus
   is for screen reader orientation only, so suppress the user agent ring in
   both authenticated and public layouts. Interactive focus rings are unchanged. */
.carbon-main h1[tabindex='-1']:focus,
.carbon-login-shell__panel h1[tabindex='-1']:focus {
  outline: none;
}

.carbon-nav-scrim {
  display: none;
}

.carbon-page {
  inline-size: 100%;
  margin-inline: auto;
  max-inline-size: 100rem;
  padding: 0.75rem 2rem 3rem;
}

.carbon-page--narrow {
  max-inline-size: 72rem;
}

.carbon-page-heading {
  align-items: center;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin-block-end: 0.75rem;
  padding-block: 0.25rem 0;
}

.carbon-main > .carbon-page-heading {
  padding-inline: 2rem;
}

.carbon-page-heading__actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.carbon-page-heading h1 {
  font-size: var(--cds-heading-03-font-size, 1.25rem);
  font-weight: var(--cds-heading-03-font-weight, 400);
  letter-spacing: var(--cds-heading-03-letter-spacing, 0);
  line-height: var(--cds-heading-03-line-height, 1.4);
  margin-block: 0;
}

.carbon-kicker {
  color: var(--cds-text-secondary, #525252);
  font-size: var(--cds-label-01-font-size, 0.75rem);
  font-weight: var(--cds-label-01-font-weight, 400);
  letter-spacing: var(--cds-label-01-letter-spacing, 0.32px);
  line-height: var(--cds-label-01-line-height, 1.33333);
  margin: 0 0 0.25rem;
}

.carbon-row-tags {
  align-items: center;
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.25rem;
}

.carbon-result-count {
  color: var(--cds-text-secondary, #525252);
  font-size: var(--cds-label-01-font-size, 0.75rem);
  margin-block: 0.5rem 1rem;
}

h1,
h2,
h3,
p {
  margin-block-start: 0;
}

h1 {
  font-size: var(--cds-fluid-heading-05-font-size, clamp(2rem, 4vw, 3rem));
  font-weight: var(--cds-fluid-heading-05-font-weight, 300);
  letter-spacing: var(--cds-fluid-heading-05-letter-spacing, 0);
  line-height: var(--cds-fluid-heading-05-line-height, 1.08);
  margin-block-end: 0.75rem;
}

h2 {
  font-size: var(--cds-heading-03-font-size, 1.25rem);
  font-weight: var(--cds-heading-03-font-weight, 400);
  line-height: var(--cds-heading-03-line-height, 1.4);
  margin-block-end: 1rem;
}

h3 {
  font-size: var(--cds-heading-02-font-size, 1rem);
  font-weight: var(--cds-heading-02-font-weight, 600);
  line-height: var(--cds-heading-02-line-height, 1.4);
}

.carbon-lead,
.carbon-section-copy {
  color: var(--cds-text-secondary, #525252);
  line-height: 1.5;
  max-inline-size: 46rem;
}

.carbon-lead {
  font-size: var(--cds-body-02-font-size, 1rem);
  line-height: var(--cds-body-02-line-height, 1.5);
}

.carbon-demo-note {
  align-items: flex-start;
  background: var(--cds-notification-background-info, #edf5ff);
  border-inline-start: 3px solid var(--cds-support-info, #0043ce);
  color: var(--cds-text-primary, #161616);
  display: flex;
  font-size: 0.75rem;
  gap: 0.75rem;
  line-height: 1.45;
  margin-block-end: 1.5rem;
  padding: 0.75rem 1rem;
}

.theme-g90 .carbon-demo-note,
.theme-g100 .carbon-demo-note {
  background: var(--cds-layer-01, #262626);
}

.carbon-demo-note p {
  margin: 0;
}

.carbon-metric-grid {
  display: grid;
  gap: var(--cds-spacing-05, 1rem);
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-block-end: 1.5rem;
}

.carbon-metric-card,
cds-tile.carbon-metric-card {
  background: var(--cds-layer-01, #ffffff);
  border: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  border-block-start: 3px solid var(--cds-border-subtle-01, #e0e0e0);
  border-radius: var(--radius-xl);
  display: block;
  min-block-size: 10rem;
  padding: 1rem;
}

.carbon-metric-card--clinical {
  border-block-start-color: var(--ph-clinical-500);
}

.carbon-metric-card--success {
  border-block-start-color: var(--cds-support-success, #198038);
}

.carbon-metric-card--warning {
  border-block-start-color: var(--cds-support-warning, #f1c21b);
}

.carbon-metric-card--critical {
  border-block-start-color: var(--cds-support-error, #da1e28);
}

/* Categorical (non-green/grey) accents for distinguishing sibling metric cards. */
.carbon-metric-card--info {
  border-block-start-color: var(--ph-accent-blue, #1192e8);
}

.carbon-metric-card--purple {
  border-block-start-color: var(--ph-accent-purple, #8a3ffc);
}

.carbon-metric-card--teal {
  border-block-start-color: var(--ph-accent-teal, #009d9a);
}

.carbon-metric-card--magenta {
  border-block-start-color: var(--ph-accent-magenta, #d02670);
}

button.carbon-metric-card {
  border-block-end: 0;
  border-inline: 0;
  color: inherit;
  cursor: pointer;
  font: inherit;
  inline-size: 100%;
  text-align: start;
}

.carbon-metric-card--clickable:hover {
  background: var(--cds-layer-hover-01, #e8e8e8);
}

.carbon-metric-card--clickable:focus-visible {
  outline: 2px solid var(--cds-focus, #0f62fe);
  outline-offset: -2px;
}

/* Selected filter tile: an explicit ring, not a gray fill — a solid gray card reads
   as disabled rather than active. */
.carbon-metric-card--selected,
.carbon-metric-card--selected:hover {
  background: var(--cds-layer-01, #ffffff);
  box-shadow:
    inset 0 0 0 2px var(--cds-interactive, #0f62fe),
    inset 0 -3px 0 var(--cds-interactive, #0f62fe);
}

.carbon-metric-card--selected .carbon-metric-card__top > span {
  color: var(--cds-text-primary, #161616);
  font-weight: 600;
}

.carbon-metric-card__top {
  align-items: flex-start;
  color: var(--cds-text-secondary, #525252);
  display: flex;
  font-size: 0.875rem;
  gap: 0.75rem;
  justify-content: space-between;
  margin-block-end: 1.5rem;
}

.carbon-metric-card p {
  color: var(--cds-text-secondary, #525252);
  font-size: 0.875rem;
  margin-block-end: 1.75rem;
}

.carbon-metric-card strong {
  display: block;
  font-size: clamp(2rem, 3vw, 2.625rem);
  font-weight: 300;
  line-height: 1.1;
  margin-block-end: 0.5rem;
}

.carbon-metric-card > span,
.carbon-metric-card__detail {
  color: var(--cds-text-secondary, #525252);
  display: block;
  font-size: 0.75rem;
}

/* Compact metric cards: shorter tiles that leave room for content below the fold. */
.carbon-metric-grid--compact {
  gap: var(--cds-spacing-03);
  margin-block-end: 1rem;
}

.carbon-metric-grid--compact .carbon-metric-card {
  min-block-size: auto;
  padding: 0.75rem 1rem;
}

.carbon-metric-grid--compact .carbon-metric-card__top {
  margin-block-end: 0.5rem;
}

.carbon-metric-grid--compact .carbon-metric-card strong {
  font-size: 1.5rem;
  margin-block-end: 0.125rem;
}

.carbon-metric-grid--compact .carbon-metric-card p {
  margin-block-end: 0.5rem;
}

.carbon-positive {
  color: var(--cds-support-success, #198038);
}

.carbon-negative {
  color: var(--cds-support-error, #da1e28);
}

.carbon-panel {
  background: var(--cds-layer-01, #ffffff);
  border-block-start: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  margin-block-start: 1.5rem;
  padding: 1.25rem 1rem 1.5rem;
}

.carbon-panel--flush {
  padding-inline: 0;
}

.carbon-panel--flush > .carbon-panel-heading,
.carbon-panel--flush > .carbon-section-copy {
  padding-inline: 1rem;
}

.carbon-panel-heading {
  align-items: flex-start;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin-block-end: 1rem;
}

.carbon-panel-heading h2,
.carbon-panel-heading h3,
.carbon-panel-heading p {
  margin-block-end: 0;
}

.carbon-split-grid {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: minmax(0, 2fr) minmax(18rem, 1fr);
}

.carbon-equal-grid {
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.carbon-stack {
  display: grid;
  gap: 1rem;
}

.carbon-component-row,
.carbon-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.carbon-icon-grid {
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
  margin-block-start: 1.5rem;
}

.carbon-icon-swatch {
  align-items: center;
  background: var(--cds-layer-02, #f4f4f4);
  display: flex;
  gap: 0.75rem;
  min-block-size: 4rem;
  padding: 0.75rem 1rem;
}

.carbon-icon-swatch span {
  font-size: 0.75rem;
}

.carbon-actions--end {
  justify-content: flex-end;
}

.carbon-toolbar {
  align-items: end;
  background: var(--cds-layer-01, #ffffff);
  border-block-end: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  display: flex;
  flex-wrap: wrap;
  gap: 1px;
  margin-block: 1rem;
}

.carbon-toolbar > * {
  min-inline-size: 12rem;
}

.carbon-toolbar__search {
  flex: 1 1 18rem;
}

.carbon-toolbar__meta {
  align-self: center;
  color: var(--cds-text-secondary, #525252);
  font-size: 0.75rem;
  margin-inline-start: auto;
  min-inline-size: auto;
  padding: 0.75rem 1rem;
}

.carbon-field {
  display: grid;
  gap: 0.5rem;
}

.carbon-field > label {
  color: var(--cds-text-secondary, #525252);
  font-size: 0.75rem;
}

.carbon-field input,
.carbon-field select,
.carbon-field textarea,
.carbon-native-input,
.carbon-native-select {
  background: var(--cds-field-01, #f4f4f4);
  border: 0;
  border-block-end: 1px solid var(--cds-border-strong-01, #8d8d8d);
  color: var(--cds-text-primary, #161616);
  min-block-size: 3rem;
  padding: 0.75rem 1rem;
  inline-size: 100%;
}

.carbon-field input:focus,
.carbon-field select:focus,
.carbon-field textarea:focus,
.carbon-native-input:focus,
.carbon-native-select:focus {
  outline: 2px solid var(--cds-focus, #0f62fe);
  outline-offset: -2px;
}

.carbon-form-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.carbon-form-stack {
  background: var(--cds-layer-01, #ffffff);
  display: grid;
  gap: 1.5rem;
  padding: 1.5rem 1rem 2rem;
}

.carbon-secondary-text {
  color: var(--cds-text-secondary, #525252);
  font-size: 0.875rem;
}

.carbon-wizard {
  background: var(--cds-layer-01, #ffffff);
  border-block-start: 1px solid var(--cds-border-subtle-01, #e0e0e0);
}

.carbon-wizard-steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  list-style: none;
  margin: 0;
  padding: 0;
}

.carbon-wizard-step {
  border-block-end: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  border-inline-end: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  min-inline-size: 0;
}

.carbon-wizard-step:last-child {
  border-inline-end: 0;
}

.carbon-wizard-step button {
  align-items: center;
  background: transparent;
  border: 0;
  color: var(--cds-text-primary, #161616);
  display: flex;
  gap: 0.75rem;
  inline-size: 100%;
  min-block-size: 4.5rem;
  padding: 0.75rem 1rem;
  text-align: start;
}

.carbon-wizard-step button:not(:disabled) {
  cursor: pointer;
}

.carbon-wizard-step button:not(:disabled):hover {
  background: var(--cds-layer-hover-01, #e8e8e8);
}

.carbon-wizard-step button:focus-visible,
.carbon-review-section button:focus-visible {
  outline: 2px solid var(--cds-focus, #0f62fe);
  outline-offset: -2px;
}

.carbon-wizard-step.is-current {
  border-block-end: 3px solid var(--cds-border-interactive, #0f62fe);
}

.carbon-wizard-step__marker {
  align-items: center;
  background: var(--cds-layer-accent-01, #e0e0e0);
  block-size: 1.5rem;
  color: var(--cds-text-primary, #161616);
  display: inline-flex;
  flex: 0 0 1.5rem;
  font-size: 0.75rem;
  font-weight: 600;
  justify-content: center;
  inline-size: 1.5rem;
}

.carbon-wizard-step.is-current .carbon-wizard-step__marker {
  background: var(--cds-background-brand, #0f62fe);
  color: var(--cds-text-on-color, #ffffff);
}

.carbon-wizard-step.is-complete .carbon-wizard-step__marker {
  background: var(--ph-clinical-700);
  color: #ffffff;
}

.carbon-wizard-step small,
.carbon-wizard-step strong {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.carbon-wizard-step small {
  color: var(--cds-text-secondary, #525252);
  font-size: 0.6875rem;
  font-weight: 400;
  margin-block-end: 0.25rem;
}

.carbon-wizard-step strong {
  font-size: 0.875rem;
}

.carbon-wizard-panel {
  min-block-size: 27rem;
  padding: 2rem 1rem 2.5rem;
}

.carbon-wizard-panel__heading {
  margin-block-end: 2rem;
  max-inline-size: 44rem;
}

.carbon-wizard-panel__heading h2 {
  font-size: 1.75rem;
  margin-block: 0.25rem 0.5rem;
}

.carbon-wizard-panel__heading p:last-child {
  color: var(--cds-text-secondary, #525252);
  font-size: 0.875rem;
  margin: 0;
}

.carbon-wizard-verification {
  border-block-start: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  margin-block-start: 2rem;
  padding-block-start: 1rem;
}

.carbon-wizard-verification p {
  color: var(--cds-text-helper, #6f6f6f);
  font-size: 0.75rem;
  margin: 0.5rem 0 0 1.75rem;
}

[dir='rtl'] .carbon-wizard-verification p {
  margin: 0.5rem 1.75rem 0 0;
}

.carbon-wizard-alert {
  align-items: center;
  background: var(--cds-notification-background-error, #fff1f1);
  border-inline-start: 3px solid var(--cds-support-error, #da1e28);
  color: var(--cds-text-primary, #161616);
  display: flex;
  font-size: 0.875rem;
  gap: 0.75rem;
  margin-block-start: 1.5rem;
  padding: 0.75rem 1rem;
}

.carbon-wizard-alert .carbon-carbon-icon {
  color: var(--cds-support-error, #da1e28);
  flex: 0 0 auto;
}

.carbon-wizard-footer {
  align-items: center;
  background: var(--cds-layer-accent-01, #e0e0e0);
  border-block-start: 1px solid var(--cds-border-subtle-01, #c6c6c6);
  display: flex;
  justify-content: space-between;
  min-block-size: 4rem;
  padding-inline-start: 1rem;
}

.carbon-review-grid {
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.carbon-review-section {
  background: var(--cds-layer-accent-01, #e0e0e0);
  padding: 1rem;
}

.carbon-review-section--wide {
  grid-column: 1 / -1;
}

.carbon-review-section header {
  align-items: center;
  border-block-end: 1px solid var(--cds-border-subtle-01, #c6c6c6);
  display: flex;
  justify-content: space-between;
  padding-block-end: 0.75rem;
}

.carbon-review-section h3 {
  font-size: 1rem;
  font-weight: 600;
}

.carbon-review-section button {
  background: transparent;
  border: 0;
  color: var(--cds-link-primary, #0f62fe);
  cursor: pointer;
  font-size: 0.875rem;
  padding: 0.25rem;
}

.carbon-review-section dl {
  margin: 0;
}

.carbon-review-section dl div {
  display: grid;
  font-size: 0.875rem;
  gap: 1rem;
  grid-template-columns: minmax(7rem, 0.8fr) minmax(0, 1.2fr);
  padding-block: 0.625rem;
}

.carbon-review-section dt {
  color: var(--cds-text-secondary, #525252);
}

.carbon-review-section dd {
  font-weight: 600;
  margin: 0;
  overflow-wrap: anywhere;
}

/* Follow-up: the custom .carbon-wizard-* pattern could move to Carbon's
   cds-progress-indicator once a wrapper is added; kept custom this pass. */
.carbon-wizard-complete {
  align-items: start;
  background: var(--cds-layer-01, #ffffff);
  border-block-start: 4px solid var(--cds-support-success, #198038);
  display: grid;
  gap: 1rem;
  grid-template-columns: auto 1fr;
  padding: 2rem 1rem;
}

.carbon-wizard-complete > .carbon-carbon-icon {
  color: var(--cds-support-success, #198038);
}

.carbon-wizard-complete h2 {
  margin-block: 0.25rem 0.75rem;
}

.carbon-wizard-complete p {
  margin-block: 0.25rem;
}

.carbon-wizard-complete .carbon-actions {
  grid-column: 2;
  margin-block-start: 1rem;
}

.carbon-wizard-complete .carbon-native-carbon-button {
  text-decoration: none;
}

.carbon-button,
.carbon-icon-button {
  align-items: center;
  border: 0;
  cursor: pointer;
  display: inline-flex;
  font-size: 0.875rem;
  gap: 1.5rem;
  justify-content: space-between;
  min-block-size: 3rem;
  padding: 0.75rem 1rem;
}

.carbon-button {
  background: var(--cds-button-primary, var(--ph-clinical-active, #0a775b));
  color: var(--cds-text-on-color, #ffffff);
  min-inline-size: 10rem;
}

.carbon-button:hover {
  background: var(--cds-button-primary-hover, var(--ph-clinical-800, #07533f));
}

.carbon-button--secondary {
  background: var(--cds-button-secondary, #393939);
}

.carbon-icon-button {
  background: transparent;
  color: var(--cds-icon-primary, #161616);
  gap: 0.5rem;
  justify-content: center;
  min-inline-size: 3rem;
  padding: 0;
}

.carbon-icon-button:hover {
  background: var(--cds-layer-hover-01, #e8e8e8);
}

.carbon-data-list {
  border-block-start: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  list-style: none;
  margin: 0;
  padding: 0;
}

.carbon-data-row {
  align-items: center;
  border-block-end: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  display: grid;
  gap: 1rem;
  grid-template-columns: minmax(12rem, 1.5fr) repeat(3, minmax(7rem, 1fr)) auto;
  min-block-size: 4rem;
  padding: 0.75rem 1rem;
}

.carbon-data-row:hover {
  background: var(--cds-layer-hover-01, #e8e8e8);
}

.carbon-data-row__primary strong,
.carbon-data-row__primary span {
  display: block;
}

.carbon-data-row__primary span,
.carbon-data-row__meta,
.carbon-muted {
  color: var(--cds-text-secondary, #525252);
  font-size: 0.75rem;
}

.carbon-data-row__label {
  color: var(--cds-text-helper, #6f6f6f);
  display: block;
  font-size: 0.6875rem;
  margin-block-end: 0.125rem;
  text-transform: uppercase;
}

.carbon-work-list {
  border-block-start: 1px solid var(--cds-border-subtle-01, #e0e0e0);
}

.carbon-work-item {
  align-items: center;
  border-block-end: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  display: grid;
  gap: 1rem;
  grid-template-columns: auto minmax(12rem, 1fr) auto;
  padding: 0.875rem 0;
}

.carbon-work-item h3 {
  margin-block: 0.35rem 0.15rem;
}

.carbon-work-item p {
  color: var(--cds-text-secondary, #525252);
  font-size: 0.75rem;
  margin: 0;
}

.carbon-work-item__icon {
  align-items: center;
  background: var(--cds-layer-accent-01, #e0e0e0);
  block-size: 2.5rem;
  color: var(--cds-icon-primary, #161616);
  display: flex;
  justify-content: center;
  inline-size: 2.5rem;
}

.carbon-work-item__icon--critical,
.carbon-work-item__icon--overdue {
  background: var(--cds-tag-background-red, #fff1f1);
  color: var(--cds-support-error, #da1e28);
}

.carbon-work-item__icon--warning {
  background: var(--cds-notification-background-warning, #fdf6dd);
  color: var(--cds-support-warning, #f1c21b);
}

.carbon-capacity-summary {
  border-block-start: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(3, 1fr);
  margin-block-start: 1.5rem;
  padding-block-start: 1rem;
}

.carbon-capacity-summary div {
  border-inline-end: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  padding-inline: 0.75rem;
}

.carbon-capacity-summary strong,
.carbon-capacity-summary span {
  display: block;
}

.carbon-capacity-summary strong {
  font-size: 1.5rem;
  font-weight: 300;
}

.carbon-capacity-summary span {
  color: var(--cds-text-secondary, #525252);
  font-size: 0.6875rem;
  margin-block-start: 0.25rem;
}

.carbon-signal-list {
  margin: 0;
}

.carbon-signal-list div {
  align-items: center;
  border-block-end: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  min-block-size: 3.25rem;
}

.carbon-signal-list dt {
  font-size: 0.875rem;
}

.carbon-signal-list dd {
  font-size: 1rem;
  font-weight: 600;
  margin: 0;
  white-space: nowrap;
}

.carbon-inventory-table {
  border-block-start: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  overflow-x: auto;
}

.carbon-inventory-row {
  align-items: center;
  border-block-end: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  display: grid;
  font-size: 0.875rem;
  gap: 1rem;
  grid-template-columns: minmax(15rem, 2fr) minmax(9rem, 1fr) minmax(7rem, 0.7fr) minmax(7rem, 0.8fr) minmax(7rem, 0.8fr) minmax(8rem, auto);
  min-inline-size: 70rem;
  min-block-size: 4rem;
  padding: 0.75rem 1rem;
}

.carbon-inventory-row:not(.carbon-inventory-row--header):hover {
  background: var(--cds-layer-hover-01, #e8e8e8);
}

.carbon-inventory-row--header {
  background: var(--cds-layer-accent-01, #e0e0e0);
  color: var(--cds-text-secondary, #525252);
  font-size: 0.75rem;
  min-block-size: 3rem;
}

.carbon-inventory-row > div strong,
.carbon-inventory-row > div span,
.carbon-inventory-row > span strong,
.carbon-inventory-row > span small {
  display: block;
}

.carbon-inventory-row > div span,
.carbon-inventory-row small {
  color: var(--cds-text-secondary, #525252);
  font-size: 0.75rem;
  margin-block-start: 0.2rem;
}

.carbon-form-grid + .carbon-actions {
  border-block-start: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  margin-block-start: 1.5rem;
  padding-block-start: 1rem;
}

.carbon-empty-state {
  color: var(--cds-text-secondary, #525252);
  padding: 3rem 1rem;
  text-align: center;
}

.carbon-patient-banner {
  background: var(--cds-layer-01, #ffffff);
  border-block-start: 4px solid var(--ph-clinical-700);
  display: grid;
  gap: 1rem;
  grid-template-columns: auto minmax(15rem, 1.4fr) repeat(3, minmax(8rem, 1fr));
  margin-block-end: 1rem;
  padding: 1rem;
}

.carbon-patient-banner__avatar {
  align-items: center;
  background: var(--ph-clinical-100);
  block-size: 3.5rem;
  color: var(--ph-clinical-900);
  display: flex;
  font-size: 1.25rem;
  font-weight: 600;
  justify-content: center;
  inline-size: 3.5rem;
}

.carbon-patient-banner h1 {
  font-size: 1.5rem;
  font-weight: 400;
  margin-block-end: 0.25rem;
}

.carbon-patient-banner p,
.carbon-patient-banner dl,
.carbon-patient-banner dd {
  margin: 0;
}

.carbon-patient-banner dl {
  display: contents;
}

.carbon-patient-banner dt {
  color: var(--cds-text-secondary, #525252);
  font-size: 0.6875rem;
  margin-block-end: 0.25rem;
  text-transform: uppercase;
}

.carbon-patient-banner dd {
  font-size: 0.875rem;
}

.carbon-safety-strip {
  background: var(--cds-notification-background-error, #fff1f1);
  border-inline-start: 3px solid var(--cds-support-error, #da1e28);
  display: flex;
  flex-wrap: wrap;
  font-size: 0.875rem;
  gap: 0.75rem 1.5rem;
  margin-block-end: 1rem;
  padding: 0.75rem 1rem;
}

.theme-g90 .carbon-safety-strip,
.theme-g100 .carbon-safety-strip {
  background: var(--cds-layer-01, #262626);
}

.carbon-vitals-strip {
  background: var(--cds-layer-01, #ffffff);
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  margin-block-end: 1.5rem;
}

.carbon-vital {
  border-inline-end: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  padding: 0.75rem 1rem;
}

.carbon-vital span,
.carbon-vital strong {
  display: block;
}

.carbon-vital span {
  color: var(--cds-text-secondary, #525252);
  font-size: 0.6875rem;
  margin-block-end: 0.25rem;
  text-transform: uppercase;
}

.carbon-vital strong {
  font-size: 1.125rem;
  font-weight: 400;
}

.carbon-timeline {
  list-style: none;
  margin: 0;
  padding: 0 0 0 1rem;
}

[dir='rtl'] .carbon-timeline {
  padding: 0 1rem 0 0;
}

.carbon-timeline li {
  border-inline-start: 1px solid var(--cds-border-strong-01, #8d8d8d);
  padding-block: 0 1.5rem;
  padding-inline: 1.25rem 1rem;
  position: relative;
}

.carbon-timeline li::before {
  background: var(--cds-icon-primary, #161616);
  block-size: 0.5rem;
  border: 2px solid var(--cds-layer-01, #ffffff);
  border-radius: 50%;
  content: '';
  inline-size: 0.5rem;
  inset-block-start: 0.25rem;
  inset-inline-start: -0.3rem;
  position: absolute;
}

.carbon-timeline time {
  color: var(--cds-text-secondary, #525252);
  display: block;
  font-size: 0.75rem;
  margin-block-end: 0.25rem;
}

.carbon-timeline p {
  font-size: 0.875rem;
  line-height: 1.45;
  margin-block-end: 0.25rem;
}

.carbon-page--ehr {
  max-inline-size: none;
  padding-block-start: 0.75rem;
}

.carbon-ehr-page-heading {
  margin-block-end: 1rem;
}

.carbon-ehr-patient-context {
  align-items: center;
  background: var(--cds-layer-01, #ffffff);
  border-block-start: 4px solid var(--ph-clinical-700);
  box-shadow: 0 1px 0 var(--cds-border-subtle-01, #e0e0e0);
  display: grid;
  gap: 1rem;
  grid-template-columns: auto minmax(18rem, 1.2fr) minmax(32rem, 1fr);
  margin-block-end: 1px;
  padding: 0.875rem 1rem;
  position: sticky;
  inset-block-start: var(--ph-shell-header-size);
  z-index: 100;
}

.carbon-ehr-patient-identity h2,
.carbon-ehr-patient-identity p,
.carbon-ehr-encounter-context,
.carbon-ehr-encounter-context dd {
  margin: 0;
}

.carbon-ehr-patient-name-row {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.carbon-ehr-patient-name-row h2 {
  font-size: 1.5rem;
  font-weight: 600;
}

.carbon-ehr-patient-identity > p {
  color: var(--cds-text-secondary, #525252);
  font-size: 0.875rem;
  margin-block-start: 0.25rem;
}

.carbon-ehr-identity-line {
  display: flex;
  flex-wrap: wrap;
  font-size: 0.75rem;
  gap: 0.25rem 1rem;
  margin-block-start: 0.5rem;
}

.carbon-ehr-identity-line strong {
  color: var(--cds-text-secondary, #525252);
  font-weight: 400;
  margin-inline-end: 0.25rem;
  text-transform: uppercase;
}

.carbon-ehr-encounter-context {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.carbon-ehr-encounter-context div {
  border-inline-start: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  min-inline-size: 0;
  padding-inline-start: 0.75rem;
}

.carbon-ehr-encounter-context dt {
  color: var(--cds-text-secondary, #525252);
  font-size: 0.6875rem;
  margin-block-end: 0.25rem;
  text-transform: uppercase;
}

.carbon-ehr-encounter-context dd {
  font-size: 0.8125rem;
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.carbon-ehr-safety {
  align-items: center;
  background: var(--cds-notification-background-error, #fff1f1);
  border-inline-start: 4px solid var(--cds-support-error, #da1e28);
  display: grid;
  font-size: 0.8125rem;
  gap: 1rem;
  grid-template-columns: auto 1fr auto;
  margin-block-end: 1px;
  min-block-size: 3rem;
  padding: 0.5rem 1rem;
}

.theme-g90 .carbon-ehr-safety,
.theme-g100 .carbon-ehr-safety {
  background: var(--cds-layer-01, #262626);
}

.carbon-ehr-safety__title,
.carbon-ehr-safety__items,
.carbon-ehr-action-bar,
.carbon-ehr-action-bar > div,
.carbon-ehr-action-bar > p,
.carbon-ehr-reconciliation-banner,
.carbon-ehr-reconciliation-banner > div {
  align-items: center;
  display: flex;
}

.carbon-ehr-safety__title {
  color: var(--cds-support-error, #da1e28);
  gap: 0.5rem;
  white-space: nowrap;
}

.carbon-ehr-safety__items {
  flex-wrap: wrap;
  gap: 0.5rem;
}

.carbon-ehr-safety-item {
  border-inline-start: 1px solid var(--cds-border-strong-01, #8d8d8d);
  padding-inline-start: 0.5rem;
}

.carbon-ehr-safety-item--critical {
  color: var(--cds-support-error, #da1e28);
}

.carbon-ehr-safety-item--warning {
  color: var(--cds-text-primary, #161616);
}

.carbon-ehr-inline-action {
  background: transparent;
  border: 0;
  color: var(--cds-link-primary, #0f62fe);
  cursor: pointer;
  font-size: 0.8125rem;
  min-block-size: 2rem;
  padding: 0.25rem 0.5rem;
  text-align: start;
  white-space: nowrap;
}

.carbon-ehr-inline-action:hover {
  background: var(--cds-layer-hover-01, #e8e8e8);
  text-decoration: underline;
}

.carbon-ehr-inline-action:focus-visible,
.carbon-ehr-filter-chip:focus-visible,
.carbon-ehr-document-list button:focus-visible {
  outline: 2px solid var(--cds-focus, #0f62fe);
  outline-offset: -2px;
}

.carbon-ehr-action-bar {
  background: var(--cds-layer-01, #ffffff);
  border-block-end: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  justify-content: space-between;
  margin-block-end: 1rem;
  min-block-size: 3rem;
}

.carbon-ehr-action-bar > div {
  flex-wrap: wrap;
}

.carbon-ehr-action-bar > p {
  color: var(--cds-text-secondary, #525252);
  font-size: 0.75rem;
  gap: 0.375rem;
  margin: 0;
  padding-inline: 1rem;
  white-space: nowrap;
}

.carbon-ehr-vitals {
  margin-block-end: 1rem;
}

.carbon-vital small {
  color: var(--cds-text-secondary, #525252);
  font-size: 0.6875rem;
  font-weight: 400;
}

.carbon-vital--flagged {
  box-shadow: inset 0 3px 0 var(--cds-support-warning, #f1c21b);
}

.carbon-vital--flagged strong {
  color: var(--cds-text-primary, #161616);
  font-weight: 600;
}

.carbon-ehr-workspace {
  background: var(--cds-layer-01, #ffffff);
  min-block-size: 36rem;
}

.carbon-ehr-workspace-heading {
  align-items: flex-start;
  border-block-end: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  padding: 1.5rem 1rem 1rem;
}

.carbon-ehr-workspace-heading h2,
.carbon-ehr-workspace-heading p {
  margin: 0;
}

.carbon-ehr-workspace-heading h2 {
  font-size: 1.75rem;
  margin-block: 0.25rem;
}

.carbon-ehr-workspace-heading p:last-child {
  color: var(--cds-text-secondary, #525252);
  font-size: 0.875rem;
}

.carbon-ehr-snapshot-grid {
  display: grid;
  gap: 1px;
  grid-template-columns: minmax(0, 2fr) minmax(18rem, 0.8fr);
}

.carbon-ehr-snapshot-main,
.carbon-ehr-snapshot-aside {
  display: grid;
  gap: 1px;
}

.carbon-ehr-snapshot-main {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.carbon-ehr-snapshot-main .carbon-ehr-card:first-child {
  grid-column: 1 / -1;
}

.carbon-ehr-snapshot-aside {
  border-inline-start: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  grid-auto-rows: min-content;
}

.carbon-ehr-card {
  background: var(--cds-layer-01, #ffffff);
  min-inline-size: 0;
}

.carbon-ehr-card__header {
  align-items: center;
  border-block-end: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  display: flex;
  justify-content: space-between;
  min-block-size: 3.5rem;
  padding: 0.75rem 1rem;
}

.carbon-ehr-card__header h3,
.carbon-ehr-card__header p {
  margin: 0;
}

.carbon-ehr-card__header h3 {
  font-size: 1rem;
  font-weight: 600;
}

.carbon-ehr-problem,
.carbon-ehr-result-row,
.carbon-ehr-med-row {
  align-items: center;
  border-block-end: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  display: grid;
  font-size: 0.8125rem;
  gap: 1rem;
  min-block-size: 4rem;
  padding: 0.75rem 1rem;
}

.carbon-ehr-problem {
  grid-template-columns: minmax(12rem, 1.2fr) minmax(12rem, 1.4fr) auto;
}

.carbon-ehr-problem > div strong,
.carbon-ehr-problem > div span,
.carbon-ehr-result-row > div strong,
.carbon-ehr-result-row > div span,
.carbon-ehr-med-row > div strong,
.carbon-ehr-med-row > div span,
.carbon-ehr-med-row > div small {
  display: block;
}

.carbon-ehr-problem > div span,
.carbon-ehr-result-row > div span,
.carbon-ehr-med-row > div span,
.carbon-ehr-med-row > div small {
  color: var(--cds-text-secondary, #525252);
  font-size: 0.75rem;
  margin-block-start: 0.25rem;
}

.carbon-ehr-problem p {
  color: var(--cds-text-secondary, #525252);
  margin: 0;
}

.carbon-ehr-result-row {
  grid-template-columns: minmax(10rem, 1fr) minmax(7rem, auto) auto;
}

.carbon-ehr-result-value {
  font-weight: 600;
}

.carbon-ehr-med-row {
  grid-template-columns: auto minmax(12rem, 1fr) minmax(7rem, auto) auto;
}

.carbon-ehr-med-list--full .carbon-ehr-med-row {
  grid-template-columns: auto minmax(16rem, 1.5fr) minmax(9rem, 0.7fr) minmax(9rem, 0.7fr) auto;
}

.carbon-ehr-med-icon,
.carbon-ehr-document-icon {
  align-items: center;
  background: var(--cds-layer-accent-01, #e0e0e0);
  block-size: 2rem;
  color: var(--cds-icon-primary, #161616);
  display: flex;
  justify-content: center;
  inline-size: 2rem;
}

.carbon-ehr-med-row > div:nth-last-child(2) small,
.carbon-ehr-med-list--full .carbon-ehr-med-row > div:nth-child(3) small,
.carbon-ehr-med-list--full .carbon-ehr-med-row > div:nth-child(4) small {
  color: var(--cds-text-secondary, #525252);
  display: block;
  font-size: 0.6875rem;
  margin-block-end: 0.25rem;
}

.carbon-ehr-detail-list {
  margin: 0;
  padding: 0.5rem 1rem;
}

.carbon-ehr-detail-list div,
.carbon-ehr-note-metadata div {
  display: grid;
  font-size: 0.8125rem;
  gap: 0.75rem;
  grid-template-columns: minmax(7rem, 0.8fr) minmax(0, 1.2fr);
  padding-block: 0.5rem;
}

.carbon-ehr-detail-list dt,
.carbon-ehr-note-metadata dt {
  color: var(--cds-text-secondary, #525252);
}

.carbon-ehr-detail-list dd,
.carbon-ehr-note-metadata dd {
  font-weight: 600;
  margin: 0;
}

.carbon-ehr-care-team,
.carbon-ehr-task-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.carbon-ehr-care-team li {
  align-items: center;
  border-block-end: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  display: flex;
  gap: 0.75rem;
  min-block-size: 3.5rem;
  padding: 0.625rem 1rem;
}

.carbon-ehr-care-team li > span {
  align-items: center;
  background: var(--ph-clinical-100);
  block-size: 2rem;
  color: var(--ph-clinical-900);
  display: flex;
  flex: 0 0 2rem;
  font-size: 0.6875rem;
  font-weight: 600;
  justify-content: center;
}

.carbon-ehr-care-team strong,
.carbon-ehr-care-team small {
  display: block;
  font-size: 0.8125rem;
}

.carbon-ehr-care-team small {
  color: var(--cds-text-secondary, #525252);
  font-size: 0.6875rem;
  margin-block-start: 0.125rem;
}

.carbon-ehr-task-list li {
  border-block-end: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  padding: 0.75rem 1rem;
}

.carbon-ehr-task-list p,
.carbon-ehr-task-list small {
  font-size: 0.8125rem;
  margin: 0.5rem 0 0;
}

.carbon-ehr-task-list small {
  color: var(--cds-text-secondary, #525252);
  display: block;
  font-size: 0.6875rem;
  margin-block-start: 0.125rem;
}

.carbon-ehr-filter-bar {
  align-items: center;
  background: var(--cds-layer-accent-01, #e0e0e0);
  display: flex;
  gap: 1px;
  overflow-x: auto;
  padding: 0.5rem 1rem;
}

.carbon-ehr-filter-chip {
  background: var(--cds-layer-01, #ffffff);
  border: 0;
  color: var(--cds-text-primary, #161616);
  cursor: pointer;
  font-size: 0.8125rem;
  min-block-size: 2rem;
  padding: 0.375rem 0.75rem;
  white-space: nowrap;
}

.carbon-ehr-filter-chip:hover {
  background: var(--cds-layer-hover-01, #e8e8e8);
}

.carbon-ehr-filter-chip.is-active {
  background: var(--cds-background-brand, #0f62fe);
  color: var(--cds-text-on-color, #ffffff);
}

.carbon-ehr-timeline {
  list-style: none;
  margin: 0;
  max-inline-size: 70rem;
  padding: 1rem;
}

.carbon-ehr-timeline li {
  display: grid;
  grid-template-columns: 9rem 2rem minmax(0, 1fr);
  min-block-size: 7rem;
}

.carbon-ehr-timeline__date {
  font-size: 0.75rem;
  padding-block-start: 0.75rem;
  text-align: end;
}

.carbon-ehr-timeline__date time,
.carbon-ehr-timeline__date span {
  display: block;
}

.carbon-ehr-timeline__date span {
  color: var(--cds-text-secondary, #525252);
  margin-block-start: 0.25rem;
}

.carbon-ehr-timeline__marker {
  align-items: center;
  background: var(--cds-layer-accent-01, #e0e0e0);
  block-size: 2rem;
  color: var(--cds-icon-primary, #161616);
  display: flex;
  justify-content: center;
  margin-inline: 1rem;
  position: relative;
  inline-size: 2rem;
}

.carbon-ehr-timeline__marker::after {
  background: var(--cds-border-strong-01, #8d8d8d);
  content: '';
  inline-size: 1px;
  inset-block-start: 2rem;
  inset-inline-start: calc(50% - 0.5px);
  block-size: calc(7rem - 2rem);
  position: absolute;
}

.carbon-ehr-timeline li:last-child .carbon-ehr-timeline__marker::after {
  display: none;
}

.carbon-ehr-timeline article {
  border-block-end: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  padding: 0.625rem 0 1rem 1.5rem;
}

[dir='rtl'] .carbon-ehr-timeline article {
  padding: 0.625rem 1.5rem 1rem 0;
}

.carbon-ehr-timeline h3,
.carbon-ehr-timeline p,
.carbon-ehr-timeline small {
  margin: 0;
}

.carbon-ehr-timeline h3 {
  font-size: 0.9375rem;
  font-weight: 600;
}

.carbon-ehr-timeline p {
  font-size: 0.875rem;
  line-height: 1.45;
  margin-block: 0.375rem;
}

.carbon-ehr-timeline small {
  color: var(--cds-text-secondary, #525252);
  font-size: 0.75rem;
}

.carbon-ehr-summary-band {
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.carbon-ehr-summary-band div {
  background: var(--cds-layer-accent-01, #e0e0e0);
  padding: 0.75rem 1rem;
}

.carbon-ehr-summary-band span,
.carbon-ehr-summary-band strong {
  display: block;
}

.carbon-ehr-summary-band span {
  color: var(--cds-text-secondary, #525252);
  font-size: 0.75rem;
}

.carbon-ehr-summary-band strong {
  font-size: 1.5rem;
  font-weight: 400;
  margin-block-start: 0.25rem;
}

.carbon-ehr-table-wrap {
  overflow-x: auto;
}

.carbon-ehr-table {
  border-collapse: collapse;
  font-size: 0.8125rem;
  inline-size: 100%;
  min-inline-size: 62rem;
}

.carbon-ehr-table th,
.carbon-ehr-table td {
  border-block-end: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  padding: 0.75rem 1rem;
  text-align: start;
  vertical-align: middle;
}

.carbon-ehr-table thead th {
  background: var(--cds-layer-accent-01, #e0e0e0);
  color: var(--cds-text-secondary, #525252);
  font-size: 0.75rem;
  font-weight: 600;
}

.carbon-ehr-table tbody tr:hover {
  background: var(--cds-layer-hover-01, #e8e8e8);
}

.carbon-ehr-table tbody th strong,
.carbon-ehr-table tbody th small {
  display: block;
}

.carbon-ehr-table tbody th small {
  color: var(--cds-text-secondary, #525252);
  font-size: 0.6875rem;
  font-weight: 400;
  margin-block-start: 0.25rem;
}

.carbon-ehr-trend {
  font-size: 1.25rem;
  font-weight: 600;
}

.carbon-ehr-trend.is-down {
  color: var(--cds-support-success, #198038);
}

.carbon-ehr-trend.is-up {
  color: var(--cds-support-error, #da1e28);
}

.carbon-ehr-reconciliation-banner {
  background: var(--cds-notification-background-info, #edf5ff);
  border-inline-start: 3px solid var(--cds-support-info, #0043ce);
  justify-content: space-between;
  min-block-size: 4rem;
  padding: 0.5rem 1rem;
}

.theme-g90 .carbon-ehr-reconciliation-banner,
.theme-g100 .carbon-ehr-reconciliation-banner {
  background: var(--cds-layer-accent-01, #393939);
}

.carbon-ehr-reconciliation-banner > div {
  gap: 0.75rem;
}

.carbon-ehr-reconciliation-banner p,
.carbon-ehr-reconciliation-banner strong,
.carbon-ehr-reconciliation-banner span {
  display: block;
  margin: 0;
}

.carbon-ehr-reconciliation-banner span {
  color: var(--cds-text-secondary, #525252);
  font-size: 0.75rem;
  margin-block-start: 0.25rem;
}

.carbon-ehr-document-layout {
  display: grid;
  grid-template-columns: minmax(18rem, 0.75fr) minmax(28rem, 1.75fr);
  min-block-size: 38rem;
}

.carbon-ehr-document-list {
  border-inline-end: 1px solid var(--cds-border-subtle-01, #e0e0e0);
}

.carbon-ehr-document-list button {
  align-items: flex-start;
  background: var(--cds-layer-01, #ffffff);
  border: 0;
  border-block-end: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  color: var(--cds-text-primary, #161616);
  cursor: pointer;
  display: flex;
  gap: 0.75rem;
  inline-size: 100%;
  min-block-size: 5rem;
  padding: 0.875rem 1rem;
  text-align: start;
}

.carbon-ehr-document-list button:hover {
  background: var(--cds-layer-hover-01, #e8e8e8);
}

.carbon-ehr-document-list button.is-selected {
  background: var(--cds-layer-selected-01, #e0e0e0);
  box-shadow: inset 3px 0 0 var(--cds-border-interactive, #0f62fe);
}

[dir='rtl'] .carbon-ehr-document-list button.is-selected {
  box-shadow: inset -3px 0 0 var(--cds-border-interactive, #0f62fe);
}

.carbon-ehr-document-list button > span:last-child,
.carbon-ehr-document-list button strong,
.carbon-ehr-document-list button small {
  display: block;
  min-inline-size: 0;
}

.carbon-ehr-document-list button strong {
  font-size: 0.875rem;
}

.carbon-ehr-document-list button small {
  color: var(--cds-text-secondary, #525252);
  font-size: 0.6875rem;
  margin-block-start: 0.25rem;
}

.carbon-ehr-document-viewer {
  padding: 1.5rem 2rem 3rem;
}

.carbon-ehr-document-viewer > header {
  align-items: flex-start;
  border-block-end: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  display: flex;
  justify-content: space-between;
  padding-block-end: 1rem;
}

.carbon-ehr-document-viewer h3,
.carbon-ehr-document-viewer header p {
  margin: 0;
}

.carbon-ehr-document-viewer h3 {
  font-size: 1.5rem;
  margin-block: 0.25rem;
}

.carbon-ehr-document-viewer header p:last-child {
  color: var(--cds-text-secondary, #525252);
  font-size: 0.8125rem;
}

.carbon-ehr-note-metadata {
  background: var(--cds-layer-accent-01, #e0e0e0);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 1rem 0 1.5rem;
  padding: 0.5rem 1rem;
}

.carbon-ehr-note-metadata div {
  display: block;
}

.carbon-ehr-note-metadata dt,
.carbon-ehr-note-metadata dd {
  font-size: 0.75rem;
}

.carbon-ehr-note-metadata dd {
  margin-block-start: 0.25rem;
}

.carbon-ehr-document-viewer > section {
  margin-block-end: 1.5rem;
  max-inline-size: 52rem;
}

.carbon-ehr-document-viewer h4 {
  font-size: 0.875rem;
  font-weight: 600;
  margin-block-end: 0.5rem;
}

.carbon-ehr-document-viewer section p {
  font-size: 0.875rem;
  line-height: 1.55;
  margin: 0;
}

.carbon-bed-grid {
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(4, minmax(10rem, 1fr));
}

.carbon-bed {
  background: var(--cds-layer-01, #ffffff);
  border-block-start: 3px solid var(--cds-support-success, #198038);
  min-block-size: 9rem;
  padding: 1rem;
}

.carbon-bed--occupied {
  border-block-start-color: var(--cds-support-info, #0043ce);
}

.carbon-bed--reserved {
  border-block-start-color: var(--cds-tag-color-cyan, #0072c3);
}

.carbon-bed--cleaning {
  border-block-start-color: var(--cds-support-warning, #f1c21b);
}

.carbon-bed--isolation {
  border-block-start-color: var(--cds-support-error, #da1e28);
}

.carbon-bed__number {
  font-size: 1.25rem;
  font-weight: 400;
  margin-block-end: 1rem;
}

.carbon-bed p {
  color: var(--cds-text-secondary, #525252);
  font-size: 0.75rem;
  line-height: 1.4;
}

.carbon-progress-row {
  display: grid;
  gap: 0.5rem;
  grid-template-columns: minmax(8rem, 1fr) 3fr 3rem;
  margin-block-end: 1rem;
}

.carbon-progress-track {
  align-self: center;
  background: var(--cds-layer-accent-01, #e0e0e0);
  block-size: 0.5rem;
  display: block;
  overflow: hidden;
}

.carbon-progress-fill {
  background: var(--ph-clinical-700);
  block-size: 100%;
  display: block;
  inline-size: var(--ph-progress, 0%);
}

.carbon-progress-row span {
  font-size: 0.75rem;
}

.carbon-progress-row span:last-child {
  text-align: end;
}

.carbon-boot {
  align-items: center;
  display: flex;
  gap: 1rem;
  inset: 50% auto auto 50%;
  position: fixed;
  transform: translate(-50%, -50%);
}

.carbon-boot__mark {
  background: var(--ph-clinical-700);
  block-size: 1.25rem;
  display: inline-block;
  inline-size: 1.25rem;
  position: relative;
}

.carbon-boot__mark::before,
.carbon-boot__mark::after {
  background: #ffffff;
  content: '';
  inset: 0;
  margin: auto;
  position: absolute;
}

.carbon-boot__mark::before {
  block-size: 0.25rem;
  inline-size: 0.8rem;
}

.carbon-boot__mark::after {
  block-size: 0.8rem;
  inline-size: 0.25rem;
}

cds-inline-notification,
cds-table,
cds-tabs,
cds-accordion {
  display: block;
  inline-size: 100%;
}

/* Do not put overflow on the cds-table host: Carbon already nests
   overflow-x:auto inside its shadow tree, and pairing that with a host
   scrollport produces the dual "ugly" scrollbars on short tables.
   Horizontal scroll belongs on an explicit .carbon-table-scroll wrapper. */
cds-table {
  overflow: visible;
}

.carbon-table-scroll {
  max-inline-size: 100%;
  /* Only scroll when content genuinely exceeds the panel; clip on Y so the
     CSS overflow pairing rule never invents a vertical scrollbar. */
  overflow-x: auto;
  overflow-y: clip;
}

.carbon-table-scroll > cds-table {
  display: block;
  inline-size: 100%;
  max-inline-size: 100%;
  overflow: visible;
}

/* Carbon's shadow tree nests its own overflow-x:auto on the table's
   ::part(content) (.cds--data-table-content). Paired with the wrapper above it
   produces a phantom second scrollbar even when content fits. Defer all
   horizontal scrolling to the single .carbon-table-scroll wrapper. */
.carbon-table-scroll > cds-table::part(content) {
  inline-size: 100%;
  overflow-x: visible;
}

#blazor-error-ui {
  background: #da1e28;
  bottom: 0;
  color: #ffffff;
  display: none;
  inline-size: 100%;
  inset-inline-start: 0;
  padding: 1rem;
  position: fixed;
  z-index: var(--ph-z-error);
}

#blazor-error-ui a {
  margin-inline-start: 1rem;
}

#blazor-error-ui .dismiss {
  background: transparent;
  border: 0;
  color: inherit;
  cursor: pointer;
  float: right;
  font-size: 1.25rem;
}

[dir='rtl'] #blazor-error-ui .dismiss {
  float: left;
}

@media (max-width: 82rem) {
  .carbon-metric-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .carbon-bed-grid {
    grid-template-columns: repeat(3, minmax(10rem, 1fr));
  }

  .carbon-patient-banner {
    grid-template-columns: auto minmax(15rem, 1.5fr) repeat(2, minmax(8rem, 1fr));
  }

  .carbon-patient-banner dl > div:last-child {
    display: none;
  }

  .carbon-ehr-patient-context {
    grid-template-columns: auto minmax(16rem, 1fr) minmax(24rem, 1.2fr);
  }

  .carbon-ehr-encounter-context {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .carbon-ehr-snapshot-grid {
    grid-template-columns: minmax(0, 1.7fr) minmax(17rem, 0.8fr);
  }

  .carbon-ehr-snapshot-main {
    grid-template-columns: 1fr;
  }

  .carbon-ehr-snapshot-main .carbon-ehr-card:first-child {
    grid-column: auto;
  }
}

@media (max-width: 66rem) {
  .carbon-main-container,
  .has-collapsed-nav .carbon-main-container {
    margin-inline-start: 0;
  }

  cds-side-nav.carbon-clinical-nav {
    box-shadow: 0.5rem 0 1.5rem rgb(0 0 0 / 18%);
  }

  cds-side-nav.carbon-clinical-nav:not([expanded]) {
    display: none;
  }

  [dir='rtl'] cds-side-nav.carbon-clinical-nav {
    box-shadow: -0.5rem 0 1.5rem rgb(0 0 0 / 18%);
  }

  .has-expanded-nav .carbon-nav-scrim {
    background: rgb(0 0 0 / 45%);
    border: 0;
    display: block;
    inset: var(--ph-shell-header-size) 0 0;
    position: fixed;
    z-index: var(--ph-z-scrim);
  }

  .carbon-split-grid {
    grid-template-columns: 1fr;
  }

  .carbon-vitals-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .carbon-data-row {
    grid-template-columns: minmax(12rem, 1.5fr) repeat(2, minmax(7rem, 1fr)) auto;
  }

  .carbon-data-row > :nth-child(4) {
    display: none;
  }

  .carbon-ehr-patient-context {
    position: static;
  }

  .carbon-ehr-snapshot-grid {
    grid-template-columns: 1fr;
  }

  .carbon-ehr-snapshot-aside {
    border-block-start: 1px solid var(--cds-border-subtle-01, #e0e0e0);
    border-inline-start: 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .carbon-ehr-med-list--full .carbon-ehr-med-row {
    grid-template-columns: auto minmax(15rem, 1.5fr) minmax(8rem, 0.7fr) auto;
  }

  .carbon-ehr-med-list--full .carbon-ehr-med-row > div:nth-child(4) {
    display: none;
  }
}

@media (max-width: 48rem) {
  .carbon-environment-label {
    display: none;
  }

  .carbon-header-actions {
    overflow-x: auto;
  }

  .carbon-context-select {
    flex: 0 0 auto;
    padding-inline-start: 0.5rem;
  }

  .carbon-context-select cds-select {
    inline-size: 8rem;
    min-inline-size: 8rem;
  }

  .carbon-page {
    padding: 0.5rem 1rem 2.5rem;
  }

  .carbon-module-strip {
    padding-inline: 1rem;
  }

  /* Tabs scroll sideways instead of wrapping into a tall stack. */
  .carbon-module-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
  }

  .carbon-module-tabs::-webkit-scrollbar {
    display: none;
  }

  .carbon-module-tab {
    flex: 0 0 auto;
  }

  .carbon-page-actions-strip__actions {
    padding-inline: 1rem;
  }

  .carbon-main > .carbon-page-heading {
    padding-inline: 1rem;
  }

  .carbon-page-heading {
    align-items: flex-start;
    display: flex;
    flex-wrap: wrap;
  }

  .carbon-page-heading__actions {
    margin-block-start: 0.5rem;
  }

  .carbon-metric-grid,
  .carbon-equal-grid,
  .carbon-form-grid {
    grid-template-columns: 1fr;
  }

  .carbon-wizard-steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .carbon-wizard-step:nth-child(2) {
    border-inline-end: 0;
  }

  .carbon-wizard-panel {
    min-block-size: 0;
  }

  .carbon-review-grid {
    grid-template-columns: 1fr;
  }

  .carbon-review-section--wide {
    grid-column: auto;
  }

  .carbon-bed-grid {
    grid-template-columns: repeat(2, minmax(9rem, 1fr));
  }

  .carbon-patient-banner {
    grid-template-columns: auto 1fr;
  }

  .carbon-patient-banner dl {
    display: none;
  }

  .carbon-data-row {
    align-items: start;
    grid-template-columns: 1fr auto;
  }

  .carbon-data-row > :not(.carbon-data-row__primary):not(.carbon-data-row__action):not(.carbon-row-tags):not(.carbon-actions) {
    display: none;
  }

  .carbon-toolbar {
    display: grid;
    grid-template-columns: 1fr;
  }

  .carbon-toolbar > * {
    min-inline-size: 0;
  }

  .carbon-toolbar__meta {
    margin-inline-start: 0;
  }

  .carbon-page--ehr {
    padding-inline: 0;
  }

  .carbon-page--ehr > .carbon-page-heading,
  .carbon-page--ehr > .carbon-demo-note {
    margin-inline: 1rem;
  }

  .carbon-ehr-patient-context {
    grid-template-columns: auto 1fr;
  }

  .carbon-ehr-encounter-context {
    grid-column: 1 / -1;
  }

  .carbon-ehr-safety {
    align-items: flex-start;
    grid-template-columns: 1fr auto;
  }

  .carbon-ehr-safety__items {
    grid-column: 1 / -1;
    grid-row: 2;
  }

  .carbon-ehr-action-bar {
    align-items: stretch;
    display: grid;
  }

  .carbon-ehr-action-bar > div {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .carbon-ehr-action-bar > div > * {
    inline-size: 100%;
  }

  .carbon-ehr-action-bar > p {
    border-block-start: 1px solid var(--cds-border-subtle-01, #e0e0e0);
    min-block-size: 2.5rem;
  }

  .carbon-ehr-snapshot-aside {
    grid-template-columns: 1fr;
  }

  .carbon-ehr-problem {
    align-items: flex-start;
    grid-template-columns: 1fr auto;
  }

  .carbon-ehr-problem p {
    grid-column: 1 / -1;
    grid-row: 2;
  }

  .carbon-ehr-med-row,
  .carbon-ehr-med-list--full .carbon-ehr-med-row {
    align-items: flex-start;
    grid-template-columns: auto minmax(0, 1fr) auto;
  }

  .carbon-ehr-med-row > div:nth-last-child(2),
  .carbon-ehr-med-list--full .carbon-ehr-med-row > div:nth-child(3),
  .carbon-ehr-med-list--full .carbon-ehr-med-row > div:nth-child(4) {
    display: none;
  }

  .carbon-ehr-timeline li {
    grid-template-columns: 2rem minmax(0, 1fr);
  }

  .carbon-ehr-timeline__date {
    grid-column: 2;
    padding: 0 0 0.25rem 1.5rem;
    text-align: start;
  }

  [dir='rtl'] .carbon-ehr-timeline__date {
    padding: 0 1.5rem 0.25rem 0;
  }

  .carbon-ehr-timeline__marker {
    grid-column: 1;
    grid-row: 1 / span 2;
    margin-inline: 0;
  }

  .carbon-ehr-timeline article {
    grid-column: 2;
  }

  .carbon-ehr-summary-band {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .carbon-ehr-reconciliation-banner {
    align-items: stretch;
    display: grid;
    gap: 0.75rem;
  }

  .carbon-ehr-document-layout {
    grid-template-columns: 1fr;
  }

  .carbon-ehr-document-list {
    border-block-end: 1px solid var(--cds-border-subtle-01, #e0e0e0);
    border-inline-end: 0;
    display: flex;
    overflow-x: auto;
  }

  .carbon-ehr-document-list button {
    flex: 0 0 16rem;
  }

  .carbon-ehr-document-viewer {
    padding-inline: 1rem;
  }
}

@media (max-width: 32rem) {
  cds-header-name {
    display: none;
  }

  .carbon-context-select cds-select {
    inline-size: 6.75rem;
    min-inline-size: 6.75rem;
  }

  .carbon-header-icon-button {
    min-inline-size: 2.5rem;
  }

  .carbon-wizard-steps {
    grid-template-columns: 1fr;
  }

  .carbon-wizard-step,
  .carbon-wizard-step:nth-child(2) {
    border-inline-end: 0;
  }

  .carbon-wizard-step:not(.is-current) {
    display: none;
  }

  .carbon-wizard-footer {
    align-items: stretch;
    display: grid;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
  }

  .carbon-wizard-footer .carbon-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .carbon-wizard-footer .carbon-actions > * {
    inline-size: 100%;
  }

  .carbon-wizard-complete {
    grid-template-columns: 1fr;
  }

  .carbon-wizard-complete .carbon-actions {
    grid-column: 1;
  }

  .carbon-vitals-strip,
  .carbon-bed-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .carbon-progress-row {
    grid-template-columns: 1fr 2.5rem;
  }

  .carbon-progress-track {
    grid-column: 1 / -1;
    grid-row: 2;
  }

  .carbon-ehr-patient-context {
    grid-template-columns: 1fr;
  }

  .carbon-ehr-patient-context > .carbon-patient-banner__avatar {
    display: none;
  }

  .carbon-ehr-encounter-context {
    grid-column: auto;
    grid-template-columns: 1fr;
  }

  .carbon-ehr-encounter-context div:nth-child(n + 3) {
    display: none;
  }

  .carbon-ehr-action-bar > div {
    grid-template-columns: 1fr;
  }

  .carbon-ehr-workspace-heading {
    display: block;
  }

  .carbon-ehr-workspace-heading > :last-child {
    margin-block-start: 0.75rem;
  }

  .carbon-ehr-result-row {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .carbon-ehr-result-row > cds-tag {
    grid-column: 2;
    grid-row: 1;
  }

  .carbon-ehr-note-metadata {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}

@media (forced-colors: active) {
  .carbon-metric-card,
  .carbon-bed,
  .carbon-safety-strip,
  .carbon-demo-note {
    border: 1px solid CanvasText;
  }

  .carbon-presence-dot {
    forced-color-adjust: none;
  }
}

/* ---------------------------------------------------------------------------
   PactaHealth additions to the Carbon layout kit.
   Every value below resolves to a Carbon token; no raw hex, no ad-hoc scale.
   --------------------------------------------------------------------------- */

/* Route-level status: auth check, page load, error boundary. */
.tenant-configuration-grace-alert {
    padding: var(--cds-spacing-05) var(--cds-spacing-05) 0;
}

.carbon-route-status {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  justify-content: center;
  min-block-size: 12rem;
  padding: 2rem;
}

/* Shell without header or side nav (sign-in and other pre-auth surfaces). */
.carbon-app-shell--bare .carbon-main {
  margin-block-start: 0;
  margin-inline-start: 0;
}

.carbon-main--centered {
  align-items: center;
  display: flex;
  justify-content: center;
  min-block-size: 100vh;
}

/* .carbon-page stretches to the content column, so the tile centres itself rather than
   relying on justify-content on the flex parent. */
.carbon-login-tile {
  background: var(--cds-layer-01, #ffffff);
  border: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  border-radius: var(--radius-xl);
  display: block;
  inline-size: min(28rem, 100%);
  margin-inline: auto;
  padding: 2rem;
}

.carbon-login-tile__actions {
  margin-block-start: 1.5rem;
}

.carbon-login-tile__actions cds-button {
  --cds-button-primary: var(--ph-clinical-active, #0a775b);
  --cds-button-primary-hover: var(--ph-clinical-800, #07533f);
  inline-size: 100%;
}

.carbon-login-tile__form {
  margin-block-start: 1.5rem;
}

.carbon-login-tile__alt {
  margin-block-start: 1rem;
}

.carbon-login-tile .carbon-text-link {
  color: var(--ph-clinical-active, #0a775b);
}

.carbon-login-tile .carbon-kicker {
  color: var(--ph-clinical-active, #0a775b);
}

/* -- Platform control-plane shell ------------------------------------------- */
.platform-layout {
  min-block-size: 100vh;
}

.platform-layout__header {
  align-items: center;
  background: var(--cds-background, #161616);
  color: var(--cds-text-primary, #f4f4f4);
  display: flex;
  inset-block-start: 0;
  min-block-size: var(--ph-shell-header-size);
  position: sticky;
  z-index: var(--ph-z-header);
}

.platform-layout__header-actions {
  align-items: center;
  display: flex;
  gap: 0.5rem;
  margin-inline-start: auto;
  padding-inline: 1rem;
}

.platform-layout__header-actions cds-button {
  --cds-button-ghost-primary: #ffffff;
  color: #ffffff;
}

.platform-layout__main {
  background: var(--cds-background, #f4f4f4);
  min-block-size: calc(100vh - var(--ph-shell-header-size));
  outline: none;
}

.platform-admin-page {
  display: grid;
  gap: var(--cds-spacing-05, 1rem);
}

.platform-admin-section {
  display: grid;
  gap: var(--cds-spacing-05, 1rem);
  padding: var(--cds-spacing-05, 1rem);
}

.platform-admin-section__title {
  font-size: var(--cds-heading-03-font-size, 1.25rem);
  font-weight: 600;
  margin: 0;
}

.platform-admin-form {
  display: grid;
  gap: var(--cds-spacing-04, 0.75rem);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-inline-size: 56rem;
}

.platform-admin-form__fieldset {
  border: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  display: grid;
  gap: var(--cds-spacing-04, 0.75rem);
  grid-column: 1 / -1;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
  padding: var(--cds-spacing-04, 0.75rem);
}

.platform-admin-form__fieldset legend {
  color: var(--cds-text-secondary, #525252);
  font-size: var(--cds-label-01-font-size, 0.75rem);
  font-weight: 600;
  padding-inline: 0.25rem;
}

.platform-admin-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  grid-column: 1 / -1;
  justify-content: flex-end;
}

.platform-admin-table {
  background: var(--cds-layer-01, #ffffff);
  border: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  overflow-x: auto;
}

.platform-admin-primary {
  color: var(--cds-text-primary, #161616);
  font-weight: 600;
}

.platform-admin-slug {
  color: var(--cds-text-secondary, #525252);
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 0.8125rem;
}

@media (max-width: 42rem) {
  .platform-admin-form,
  .platform-admin-form__fieldset {
    grid-template-columns: 1fr;
  }

  .platform-layout__header-actions {
    padding-inline: 0.5rem;
  }
}

/* ---------------------------------------------------------------------------
   Module dashboard shell (HisDashboardView / Admin status).
   Styles were missing, which collapsed table headers into one run-on string.
   --------------------------------------------------------------------------- */

.carbon-dashboard {
  display: grid;
  gap: var(--cds-spacing-05, 1rem);
}

.carbon-dashboard__kpis {
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.carbon-dashboard__actions {
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
}

.carbon-dashboard-action {
  align-items: center;
  background: var(--cds-layer-01, #ffffff);
  color: inherit;
  display: flex;
  gap: 0.75rem;
  min-block-size: 4rem;
  padding: 0.75rem 1rem;
  text-decoration: none;
}

.carbon-dashboard-action:hover {
  background: var(--cds-layer-hover-01, #e8e8e8);
}

.carbon-dashboard-action--primary {
  box-shadow: inset 3px 0 0 var(--cds-border-interactive, #0f62fe);
}

[dir='rtl'] .carbon-dashboard-action--primary {
  box-shadow: inset -3px 0 0 var(--cds-border-interactive, #0f62fe);
}

.carbon-dashboard-action__badge {
  align-items: center;
  background: var(--cds-layer-accent-01, #e0e0e0);
  block-size: 2.5rem;
  display: inline-flex;
  flex: 0 0 2.5rem;
  font-size: 0.75rem;
  font-weight: 600;
  justify-content: center;
  inline-size: 2.5rem;
}

.carbon-dashboard-action__copy {
  display: grid;
  gap: 0.125rem;
  min-inline-size: 0;
}

.carbon-dashboard-action__copy span {
  color: var(--cds-text-secondary, #525252);
  font-size: 0.75rem;
}

.carbon-dashboard__work-area {
  display: grid;
  gap: 1px;
}

.carbon-dashboard__work-area--split {
  grid-template-columns: minmax(0, 1.6fr) minmax(16rem, 0.8fr);
}

.carbon-dashboard-queue,
.carbon-dashboard-detail {
  background: var(--cds-layer-01, #ffffff);
  display: grid;
  gap: var(--cds-spacing-04, 0.75rem);
  padding: var(--cds-spacing-05, 1rem);
}

.carbon-dashboard-queue__header {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: space-between;
}

.carbon-dashboard-queue__header h2 {
  font-size: 1.125rem;
  font-weight: 600;
  margin: 0;
}

.carbon-filter-bar {
  align-items: end;
  display: grid;
  gap: 0.75rem;
  grid-template-columns: minmax(0, 1.5fr) repeat(2, minmax(8rem, 1fr));
}

.carbon-dashboard-table,
.carbon-data-table.carbon-dashboard-table {
  overflow-x: auto;
}

.carbon-dashboard-table table,
.carbon-data-table.carbon-dashboard-table table {
  border-collapse: collapse;
  inline-size: 100%;
  min-inline-size: 48rem;
}

.carbon-dashboard-table th,
.carbon-dashboard-table td,
.carbon-data-table.carbon-dashboard-table th,
.carbon-data-table.carbon-dashboard-table td {
  border-block-end: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  padding: 0.75rem 1rem;
  text-align: start;
  vertical-align: middle;
  white-space: nowrap;
}

.carbon-dashboard-table thead th,
.carbon-data-table.carbon-dashboard-table thead th {
  background: var(--cds-layer-accent-01, #e0e0e0);
  color: var(--cds-text-secondary, #525252);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.carbon-dashboard-table tbody td,
.carbon-data-table.carbon-dashboard-table tbody td {
  font-size: 0.875rem;
}

/* Base admin data tables (raw HTML tables with carbon-table class).
   Without these rules, headers and cells collapse and text overlaps. */
.carbon-data-table {
  overflow-x: auto;
  overflow-y: visible;
}

.carbon-data-table .carbon-table {
  border-collapse: collapse;
  inline-size: 100%;
  table-layout: auto;
}

.carbon-data-table .carbon-table th,
.carbon-data-table .carbon-table td {
  border-block-end: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  line-height: 1.4;
  padding: 0.75rem 1rem;
  text-align: start;
  vertical-align: top;
}

.carbon-data-table .carbon-table thead th {
  background: var(--cds-layer-accent-01, #e0e0e0);
  color: var(--cds-text-secondary, #525252);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  vertical-align: middle;
  white-space: nowrap;
}

.carbon-data-table .carbon-table tbody td {
  font-size: 0.875rem;
}

.carbon-dashboard__inbox {
  display: grid;
  gap: var(--cds-spacing-04, 0.75rem);
  padding: var(--cds-spacing-05, 1rem);
}

.carbon-dashboard__inbox-header {
  align-items: center;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
}

.carbon-dashboard__inbox-header h2 {
  margin: 0;
}

.carbon-dashboard__inbox-eyebrow {
  color: var(--cds-text-secondary, #525252);
  display: inline-flex;
  font-size: 0.75rem;
  font-weight: 600;
  gap: 0.35rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.carbon-dashboard__inbox-group {
  color: var(--cds-text-secondary, #525252);
  font-size: 0.75rem;
  font-weight: 600;
  margin: 0.5rem 0 0.25rem;
  text-transform: uppercase;
}

.carbon-dashboard__inbox-list {
  display: grid;
  gap: 1px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.carbon-dashboard__inbox-item {
  align-items: center;
  background: var(--cds-layer-01, #ffffff);
  border-inline-start: 3px solid var(--cds-support-info, #0043ce);
  color: inherit;
  display: grid;
  gap: 0.75rem;
  grid-template-columns: auto minmax(0, 1fr) auto;
  padding: 0.75rem 1rem;
  text-decoration: none;
}

.carbon-dashboard__inbox-item:hover {
  background: var(--cds-layer-hover-01, #e8e8e8);
}

.carbon-dashboard__inbox-item--warning {
  border-inline-start-color: var(--cds-support-warning, #f1c21b);
}

.carbon-dashboard__inbox-item--critical {
  border-inline-start-color: var(--cds-support-error, #da1e28);
}

.carbon-dashboard__inbox-item--success {
  border-inline-start-color: var(--cds-support-success, #198038);
}

.carbon-dashboard__inbox-copy {
  display: grid;
  gap: 0.125rem;
  min-inline-size: 0;
}

.carbon-dashboard__inbox-copy span {
  color: var(--cds-text-secondary, #525252);
  font-size: 0.75rem;
}

.carbon-dashboard__inbox-count {
  background: var(--cds-layer-accent-01, #e0e0e0);
  font-size: 0.75rem;
  font-weight: 700;
  min-inline-size: 1.5rem;
  padding: 0.25rem 0.5rem;
  text-align: center;
}

.carbon-mono {
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 0.8125rem;
}

.dashboard-updated {
  color: var(--cds-text-secondary, #525252);
  font-size: 0.75rem;
}

@media (max-width: 66rem) {
  .carbon-dashboard__kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .carbon-dashboard__work-area--split {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 42rem) {
  .carbon-dashboard__kpis,
  .carbon-filter-bar {
    grid-template-columns: 1fr;
  }
}

/* Ensure Carbon web-component primary buttons inherit the clinical brand remap. */
cds-button[kind="primary"] {
  --cds-button-primary: var(--ph-clinical-active);
  --cds-button-primary-hover: var(--ph-clinical-800);
}

cds-link {
  --cds-link-primary: var(--ph-clinical-active);
  --cds-link-primary-hover: var(--ph-clinical-800);
}

/* ---------------------------------------------------------------------------
   Visual refinement layer.
   Light artistic pass on top of Carbon: brand accents, heading weight,
   section separation, and micro-interactions. Token-based only; the global
   prefers-reduced-motion rule above neutralizes every transition added here.
   --------------------------------------------------------------------------- */

:root {
  --ph-accent: var(--ph-clinical-500);
  --ph-accent-strong: var(--ph-clinical-700);
  --ph-shadow-card: 0 1px 2px rgb(22 22 22 / 6%), 0 2px 6px rgb(22 22 22 / 5%);
  --ph-shadow-card-raised: 0 2px 4px rgb(22 22 22 / 8%), 0 6px 16px rgb(22 22 22 / 8%);
  /* Brand glow: the login brand panel's teal radial, generalized as a token so
     the shell (header/side-nav) can echo the same signature. Layer it over an
     existing background: `background: var(--ph-brand-glow), var(--cds-...)`. */
  --ph-brand-glow: radial-gradient(
    circle at 15% 10%,
    color-mix(in srgb, var(--ph-clinical-500) 28%, transparent) 0%,
    transparent 42%
  );
}

.theme-g90,
.theme-g100 {
  --ph-shadow-card: 0 1px 2px rgb(0 0 0 / 35%), 0 2px 6px rgb(0 0 0 / 25%);
  --ph-shadow-card-raised: 0 2px 4px rgb(0 0 0 / 45%), 0 6px 16px rgb(0 0 0 / 35%);
}

/* ── Refined card language ────────────────────────────────────────────────
   One card recipe for the whole clinic app: softened corners (8px, containers
   only - Carbon form inputs stay sharp) plus the brand-tinted card shadow.
   Compose the modifiers; never re-declare radius/shadow per page.
     .ph-card                 resting surface
     .ph-card--interactive    hover lift + focus ring (clickable cards/rows)
     .ph-card--accent-top     3px category bar on the top edge (metrics/KPIs)
     .ph-card--accent-left    3px status/selection bar on the reading edge
     .ph-card--selected       chosen state for choice cards
   Accent colour/width: set --ph-card-accent / --ph-card-accent-size per card. */
.ph-card {
  --ph-card-accent: var(--ph-accent);
  --ph-card-accent-size: 3px;
  background: var(--cds-layer-01, #ffffff);
  border: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  border-radius: var(--radius-xl);
  box-shadow: var(--ph-shadow-card);
}

.ph-card--interactive {
  cursor: pointer;
  transition: box-shadow var(--cds-motion-fast), border-color var(--cds-motion-fast),
    transform var(--cds-motion-fast);
}

.ph-card--interactive:hover {
  border-color: var(--cds-border-interactive);
  box-shadow: var(--ph-shadow-card-raised);
  transform: translateY(-1px);
}

.ph-card--interactive:focus-visible {
  outline: 2px solid var(--cds-focus, #0f62fe);
  outline-offset: -2px;
}

/* Accent bars are inset box-shadows so they follow the rounded corners
   without needing overflow:hidden (which would clip Carbon overlays inside). */
.ph-card--accent-top {
  box-shadow: inset 0 var(--ph-card-accent-size) 0 var(--ph-card-accent),
    var(--ph-shadow-card);
}

.ph-card--accent-top.ph-card--interactive:hover {
  box-shadow: inset 0 var(--ph-card-accent-size) 0 var(--ph-card-accent),
    var(--ph-shadow-card-raised);
}

.ph-card--accent-left {
  box-shadow: inset var(--ph-card-accent-size) 0 0 var(--ph-card-accent),
    var(--ph-shadow-card);
}

.ph-card--accent-left.ph-card--interactive:hover {
  box-shadow: inset var(--ph-card-accent-size) 0 0 var(--ph-card-accent),
    var(--ph-shadow-card-raised);
}

[dir='rtl'] .ph-card--accent-left {
  box-shadow: inset calc(-1 * var(--ph-card-accent-size)) 0 0 var(--ph-card-accent),
    var(--ph-shadow-card);
}

[dir='rtl'] .ph-card--accent-left.ph-card--interactive:hover {
  box-shadow: inset calc(-1 * var(--ph-card-accent-size)) 0 0 var(--ph-card-accent),
    var(--ph-shadow-card-raised);
}

.ph-card--selected {
  --ph-card-accent: var(--ph-clinical-active);
  background: var(--cds-layer-selected-01, #e0e0e0);
  border-color: var(--cds-border-interactive);
}

/* ─────────────────────────────────────────────────────────────────────────────
   Carbon admin surface classes (carbon-tile / carbon-card-* / carbon-*-form-item)

   These class names are used across ~30 admin pages but historically had no real
   definition — they only rendered styled when a ProviderCard happened to be
   mounted and leaked its unscoped <style>. Defined here once so every admin
   surface gets consistent card chrome, form spacing, and table wrapping.
   ───────────────────────────────────────────────────────────────────────────── */

/* Card container — chrome only, no padding (padding lives on header/body),
   mirroring .ph-card so the two conventions are visually interchangeable. */
.carbon-tile {
  background: var(--cds-layer-01, #ffffff);
  border: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  border-radius: var(--radius-xl);
  box-shadow: var(--ph-shadow-card);
}

/* A tile nested directly inside another tile is a sub-panel, not a second
   raised card — drop the shadow so it reads as an inset section, not a
   double-stacked box. */
.carbon-tile .carbon-tile {
  box-shadow: none;
}

.carbon-card-header {
  padding: var(--cds-spacing-04) var(--cds-spacing-05);
  border-block-end: 1px solid var(--cds-border-subtle);
}

.carbon-card-title {
  margin: 0;
  font-size: var(--heading-compact-02);
  font-weight: 600;
}

.carbon-card-body {
  padding: var(--cds-spacing-05);
}

/* Form field group + label. `.carbon-carbon-form-item` (the doubled-prefix
   spelling is what the admin dialogs use) had no CSS, so fields collapsed
   together with unstyled labels. Give it real spacing and style the manual
   label to match Carbon's own field label. */
.carbon-carbon-form-item {
  display: flex;
  flex-direction: column;
  gap: var(--cds-spacing-02);
  margin-block-end: var(--cds-spacing-05);
}

.carbon-label {
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--cds-text-secondary);
}

/* Every Carbon data table in the app is forced to table-layout:fixed by
   patchTableOverflow() (carbon.interop.js) to kill phantom scrollbars, but the
   cells were never told to wrap — long content then overflowed its fixed column
   and rendered on top of the neighbouring cell. white-space/overflow-wrap are
   inherited, so setting them on the light-DOM cell host reaches the shadow <td>
   and lets every table wrap instead of overlap. Pages that set per-column
   widths or a nowrap actions column still win on specificity. */
cds-table-cell,
cds-table-header-cell {
  min-inline-size: 0;
  overflow-wrap: anywhere;
  white-space: normal;
  vertical-align: middle;
}

/* Brand-tinted text selection. */
::selection {
  background: var(--ph-clinical-100);
  color: var(--ph-clinical-900);
}

.theme-g90 ::selection,
.theme-g100 ::selection {
  background: var(--ph-clinical-700);
  color: #ffffff;
}

/* Page titles: a short brand accent bar and slightly more presence. */
.carbon-page-heading h1 {
  border-inline-start: 3px solid var(--ph-accent);
  font-weight: 600;
  padding-inline-start: 0.75rem;
}

/* Kickers become true eyebrow labels: uppercase, spaced, brand-toned. */
.carbon-kicker {
  color: var(--ph-accent-strong);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.theme-g90 .carbon-kicker,
.theme-g100 .carbon-kicker {
  color: var(--ph-accent);
}

/* Panels read as distinct sections: hairline frame plus soft elevation. */
.carbon-panel {
  border: 1px solid var(--cds-border-subtle-01, #e0e0e0);
  border-block-start: 2px solid var(--cds-border-subtle-01, #e0e0e0);
  box-shadow: var(--ph-shadow-card);
}

.carbon-panel-heading h2,
.carbon-panel-heading h3 {
  font-weight: 600;
}

/* Metric cards: label as small-caps eyebrow, tabular value, gentle lift. */
.carbon-metric-card,
cds-tile.carbon-metric-card {
  box-shadow: var(--ph-shadow-card);
  transition: box-shadow 110ms ease, transform 110ms ease;
}

.carbon-metric-card__top > span:first-child {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.carbon-metric-card strong {
  font-variant-numeric: tabular-nums;
}

.carbon-metric-card--clickable:hover {
  box-shadow: var(--ph-shadow-card-raised);
  transform: translateY(-1px);
}

.carbon-metric-card--selected,
.carbon-metric-card--selected:hover {
  transform: none;
}

/* Rows: hovering paints a brand marker on the reading edge. */
.carbon-data-row:hover,
.carbon-inventory-row:not(.carbon-inventory-row--header):hover {
  box-shadow: inset 3px 0 0 var(--ph-accent);
}

[dir='rtl'] .carbon-data-row:hover,
[dir='rtl'] .carbon-inventory-row:not(.carbon-inventory-row--header):hover {
  box-shadow: inset -3px 0 0 var(--ph-accent);
}

/* Table headers gain letter-spacing so dense grids scan faster. */
.carbon-ehr-table thead th,
.carbon-inventory-row--header,
.carbon-data-row__label,
.carbon-patient-banner dt,
.carbon-vital span,
.carbon-ehr-encounter-context dt {
  letter-spacing: 0.04em;
}

/* Numeric readouts align vertically in summaries and tables. */
.carbon-capacity-summary strong,
.carbon-ehr-summary-band strong,
.carbon-signal-list dd,
.carbon-ehr-result-value,
.carbon-ehr-trend {
  font-variant-numeric: tabular-nums;
}

/* EHR and login cards share the same section framing as panels. */
.carbon-ehr-card,
.carbon-login-tile,
.carbon-patient-banner,
.carbon-wizard,
.carbon-form-stack {
  box-shadow: var(--ph-shadow-card);
}

/* Empty states: quieter, clearly non-content. */
.carbon-empty-state {
  background:
    repeating-linear-gradient(
      -45deg,
      transparent 0 0.5rem,
      var(--cds-layer-02, #f4f4f4) 0.5rem 0.5625rem
    );
  border: 1px dashed var(--cds-border-subtle-01, #e0e0e0);
}

/* Slim, theme-aware scrollbars for dense overflow surfaces. */
.carbon-inventory-table,
.carbon-ehr-table-wrap,
.carbon-notifications-panel__list,
.carbon-ehr-filter-bar {
  scrollbar-color: var(--cds-border-strong-01, #8d8d8d) transparent;
  scrollbar-width: thin;
}

@media (forced-colors: active) {
  .carbon-panel,
  .carbon-ehr-card,
  .carbon-empty-state {
    border: 1px solid CanvasText;
    box-shadow: none;
  }
}
.admin-dialog-grid {
  display: grid;
  gap: var(--cds-spacing-05);
  grid-template-columns: repeat(12, minmax(0, 1fr));
}

.admin-dialog-field--quarter {
  grid-column: span 3;
}

.admin-dialog-field--third {
  grid-column: span 4;
}

.admin-dialog-field--half {
  grid-column: span 6;
}

.admin-dialog-field--full {
  grid-column: 1 / -1;
}

@media (max-width: 48rem) {
  .admin-dialog-grid > * {
    grid-column: 1 / -1;
  }
}
