/*
 * This is a manifest file that'll be compiled into application.css.
 *
 * With Propshaft, assets are served efficiently without preprocessing steps. You can still include
 * application-wide styles in this file, but keep in mind that CSS precedence will follow the standard
 * cascading order, meaning styles declared later in the document or manifest will override earlier ones,
 * depending on specificity.
 *
 * Consider organizing styles into separate files for maintainability.
 */

/* Nunito (SIL OFL): rounded sans similar to SF Pro Rounded, loads on every browser. */
@font-face {
  font-family: "Nunito";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("/fonts/nunito-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "Nunito";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("/fonts/nunito-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --app-font-family: "Nunito", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --top-bar-padding-block: 6px;
  --top-bar-padding-inline: 15px;
  --top-bar-title-size: 24px;
  --top-bar-content-height: 48px;
  --top-bar-height: calc(var(--top-bar-padding-block) * 2 + var(--top-bar-content-height));
  --main-content-padding: 1.5rem;
  --title-bar-to-content-gap: var(--main-content-padding);
  /* Collapsed list-row height, matched to Overview dashboard task rows. Calendar entries keep their own size. */
  --patient-table-row-height: 62px;
  /* Patient type, matched to Today task rows. Calendar entries keep their own size. */
  --patient-type-scale: 0.88;
  --patient-name-size: calc(1.1rem * var(--patient-type-scale) * 1.1);
  --patient-info-size: calc(1rem * var(--patient-type-scale));
  --patient-meta-size: var(--patient-info-size);
}

/*
 * Restore HTML hidden semantics: author rules that set display (e.g. flex on a row) win over the
 * user-agent default for [hidden], so hidden nodes could stay visible without !important here.
 */
[hidden] {
  display: none !important;
}

html {
  height: 100%;
  margin: 0;
  overflow: hidden;
  font-family: var(--app-font-family);
}

/* -----------------------------------------------------------------------------
   Layout: sidebar + main content
   Sidebar stays pinned; main scrolls (notifications, calendar, etc.).
   ----------------------------------------------------------------------------- */
.app-body {
  display: flex;
  height: 100%;
  min-height: 100%;
  margin: 0;
  overflow: hidden;
  font-family: var(--app-font-family);
}

.app-body button,
.app-body input,
.app-body textarea,
.app-body select {
  font-family: inherit;
}

.main-content {
  flex: 1;
  min-width: 0;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: var(--main-content-padding);
}

.main-content:has(.view-shell) {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 0;
}

.view-shell {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  width: 100%;
}

.view-shell > header {
  flex-shrink: 0;
  border-radius: 0;
}

.view-shell > .calendar__toolbar,
.view-shell > .calendar__period-nav,
.view-shell > .census__toolbar {
  flex-shrink: 0;
}

.view-shell > .view__body {
  padding: var(--title-bar-to-content-gap) var(--main-content-padding) var(--main-content-padding);
  box-sizing: border-box;
}

.view__body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
}

.scheduling__table-wrapper.view__body,
.in-progress__table-wrapper.view__body,
.view__body > .scheduling__table-wrapper,
.view__body > .in-progress .in-progress__table-wrapper {
  overflow-x: auto;
}

/* -----------------------------------------------------------------------------
   Sidebar (narrow icon-centric layout)
   Wide: 108px labeled column. ≤960px: 56px icon rail; logo expands an overlay.
   ----------------------------------------------------------------------------- */
.sidebar-slot {
  --sidebar-expanded-width: 108px;
  --sidebar-rail-width: 56px;
  --sidebar-width: 108px;
  width: 108px;
  min-width: 108px;
  max-width: 108px;
  min-height: 0;
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  align-self: stretch;
  position: relative;
  background: #fff;
  overflow: hidden;
  box-sizing: border-box;
}

.sidebar {
  --sidebar-menu-icon-size: calc(22px * 1.2);
  --sidebar-menu-label-size: calc(11px * 1.2);
  --sidebar-menu-gap-max: 16px;
  --sidebar-menu-gap-min: 4px;
  --sidebar-menu-item-block: 3.75rem;
  --sidebar-menu-item-count: 8;
  --sidebar-menu-gap-slots: 7;
  --sidebar-nav-padding-block: 16px;
  --sidebar-logo-menu-spacing: 25px;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  min-height: 0;
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  background: #fff;
  border-right: 1px solid #e0e0e0;
}

/* App logo */
.sidebar__app-logo {
  position: relative;
  width: 100%;
  margin-bottom: var(--sidebar-logo-menu-spacing);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.sidebar__expand {
  appearance: none;
  -webkit-appearance: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  border: 0;
  padding: 16px 6px 8px;
  background: transparent;
  cursor: default;
  font: inherit;
  color: inherit;
  border-radius: 8px;
}

.sidebar__expand:focus-visible {
  outline: 2px solid #2563eb;
  outline-offset: 2px;
}

.sidebar__app-logo-img {
  display: block;
  width: calc(var(--sidebar-width) * 72 / 96);
  height: auto;
}

/* Customer logo (Stellar Senior Living) — divider above user block */
.sidebar__customer-logo {
  padding: 12px 0;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  width: 100%;
}

.sidebar__customer-logo::before,
.sidebar__menu-divider::before {
  content: "";
  display: block;
  height: 0;
  border-top: 1px solid #2563eb;
  margin: 0 16px;
}

.sidebar__menu-divider {
  width: 100%;
  padding: 0;
  flex-shrink: 0;
}

.sidebar__customer-logo-img {
  display: none;
}

/* Nav / menu */
.sidebar__nav {
  flex: 1;
  min-height: 0;
  padding: 8px 0;
  overflow-y: auto;
  width: 100%;
  container-type: size;
  container-name: sidebar-nav;
}

.sidebar__menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--sidebar-menu-gap-max);
  gap: clamp(
    var(--sidebar-menu-gap-min),
    calc(
      (
        100cqh - var(--sidebar-nav-padding-block) - var(--sidebar-menu-item-count) *
          var(--sidebar-menu-item-block)
      ) / var(--sidebar-menu-gap-slots)
    ),
    var(--sidebar-menu-gap-max)
  );
}

.sidebar__menu-item {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  box-sizing: border-box;
  min-height: var(--sidebar-menu-item-block);
  padding: 10px 6px;
  width: calc(var(--sidebar-width) * 80 / 96);
  color: #808080;
  text-decoration: none;
  border-radius: 8px;
  transition: color 0.15s ease, background 0.15s ease;
}

.sidebar__menu-item:hover {
  color: #333;
  background: #f0f0f0;
}

.sidebar__menu-item--selected,
.sidebar__menu-item--selected:hover {
  background: #DFF5FF;
  color: #333;
}

.sidebar__menu-item--selected .sidebar__menu-item__icon {
  color: #333;
}

.sidebar__menu-item__icon {
  flex-shrink: 0;
  width: var(--sidebar-menu-icon-size);
  height: var(--sidebar-menu-icon-size);
  color: inherit;
  display: flex;
  align-items: center;
  justify-content: center;
}

.sidebar__menu-item__icon svg {
  display: block;
  width: 100%;
  height: 100%;
}

.sidebar__menu-item__label {
  font-size: var(--sidebar-menu-label-size);
  font-weight: 500;
  line-height: 1.2;
  text-align: center;
  white-space: nowrap;
}

.sidebar__menu-item--selected .sidebar__menu-item__label {
  font-weight: 700;
}

/* Bottom section (user) */
.sidebar__bottom {
  margin-top: auto;
  flex-shrink: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* Activity tray */
.activity-tray-root {
  position: absolute;
  inset: 0;
  z-index: 900;
  pointer-events: none;
}

.activity-tray-root .activity-tray__backdrop,
.activity-tray-root .activity-tray__panel {
  pointer-events: auto;
}

#activity_tray_trigger {
  width: 100%;
  display: flex;
  justify-content: center;
}

#activity_tray_trigger:empty {
  display: none;
}

.activity-tray__trigger {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  width: calc(var(--sidebar-width) * 80 / 96);
  margin: 0 0 8px;
  padding: 8px 6px;
  border: 1px solid #d0d7de;
  border-radius: 8px;
  background: transparent;
  color: #333;
  cursor: pointer;
}

.activity-tray__trigger:hover {
  background: #f4f6f8;
}

.activity-tray__trigger--active {
  border-color: #2d4a7c;
}

.activity-tray__trigger--failed {
  border-color: #f5c2c0;
}

.activity-tray__trigger-icon {
  display: flex;
  width: 18px;
  height: 18px;
  color: #2d4a7c;
}

.activity-tray__trigger-icon svg {
  display: block;
  width: 100%;
  height: 100%;
}

.activity-tray__trigger-label {
  font-size: var(--sidebar-menu-label-size);
  font-weight: 700;
  line-height: 1.2;
}

.activity-tray__badge {
  min-width: 1.15rem;
  padding: 0 0.3rem;
  border-radius: 999px;
  background: #2d4a7c;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.25rem;
  text-align: center;
}

.activity-tray__trigger--failed .activity-tray__badge {
  background: #b42318;
}

.activity-tray__trigger--quiet .activity-tray__badge {
  display: none;
}

.activity-tray__backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.28);
  z-index: 900;
}

.activity-tray__panel {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 901;
  display: flex;
  flex-direction: column;
  width: min(380px, 100%);
  background: #fff;
  color: #202124;
  border-left: 1px solid #e0e0e0;
}

.activity-tray__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 1rem 1.1rem 0.75rem;
  border-bottom: 1px solid #e0e0e0;
}

.activity-tray__title {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.2;
}

.activity-tray__summary {
  margin: 0.25rem 0 0;
  font-size: 12px;
  color: #5f6368;
}

.activity-tray__close {
  appearance: none;
  border: 0;
  background: transparent;
  color: #5f6368;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  padding: 0 0.15rem;
}

.activity-tray__close:hover {
  color: #202124;
}

.activity-tray__body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 0.75rem 1.1rem 1.25rem;
}

.activity-tray__section + .activity-tray__section {
  margin-top: 1.15rem;
}

.activity-tray__section-title {
  margin: 0 0 0.5rem;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #5f6368;
}

.activity-tray__row {
  padding: 0.7rem 0;
  border-top: 1px solid #eee;
}

.activity-tray__row:first-child,
.activity-tray__section-title + .activity-tray__row {
  border-top: 0;
  padding-top: 0;
}

.activity-tray__row-top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
}

.activity-tray__patient {
  font-size: 14px;
  font-weight: 700;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.activity-tray__elapsed,
.activity-tray__when {
  flex-shrink: 0;
  font-size: 12px;
  font-variant-numeric: tabular-nums;
  color: #2d4a7c;
}

.activity-tray__headline {
  margin: 0.2rem 0 0.45rem;
  font-size: 13px;
  color: #3c4043;
}

.activity-tray__row--failed .activity-tray__headline {
  color: #b42318;
}

.activity-tray__row-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.activity-tray__origin-link {
  font-size: 12px;
  font-weight: 700;
  color: #1a73e8;
  text-decoration: none;
}

.activity-tray__origin-link:hover {
  text-decoration: underline;
}

.activity-tray__dismiss-form {
  margin-left: auto;
}

.activity-tray__dismiss {
  appearance: none;
  border: 0;
  background: transparent;
  padding: 0;
  font-size: 12px;
  font-weight: 700;
  color: #5f6368;
  cursor: pointer;
}

.activity-tray__dismiss:hover {
  color: #202124;
}

.activity-tray__empty {
  margin: 0.5rem 0 0;
  font-size: 13px;
  color: #5f6368;
}

.sidebar__user {
  position: relative;
  padding: 8px 8px 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.sidebar__sign-out-form {
  margin: 0;
}

.sidebar__sign-out {
  border: none;
  background: none;
  padding: 0;
  font: inherit;
  font-size: 11px;
  font-weight: 500;
  line-height: 1.2;
  color: #808080;
  text-decoration: none;
  cursor: pointer;
}

.sidebar__sign-out:hover {
  color: #333;
}

.sidebar__user-avatar {
  width: calc(var(--sidebar-width) * 80 / 120);
  height: calc(var(--sidebar-width) * 80 / 120);
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  background: #e8e8e8;
}

.sidebar__user-avatar-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.sidebar__user-name {
  font-weight: 600;
  font-size: 11px;
  color: #333;
  text-align: center;
  line-height: 1.3;
  word-wrap: break-word;
  max-width: calc(var(--sidebar-width) * 80 / 96);
}

.sidebar__facility-select-form {
  width: 100%;
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: center;
}

.sidebar__facility-select {
  width: calc(var(--sidebar-width) * 80 / 96);
  max-width: 100%;
  margin: 0;
  padding: 0.25rem 1.25rem 0.25rem 0.35rem;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5L6 8L9.5 4.5' stroke='%23666' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E") no-repeat right 4px center;
  font-family: var(--app-font-family);
  font-size: 11px;
  font-weight: 600;
  line-height: 1.3;
  color: #333;
  text-align: center;
  text-align-last: center;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  overflow: hidden;
  white-space: nowrap;
}

.sidebar__facility-select:disabled {
  color: #808080;
  cursor: default;
  background-color: #f8fafc;
}

.sidebar-backdrop {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: rgba(0, 0, 0, 0.2);
  z-index: 790;
  flex: none;
}

@media (max-width: 960px) {
  .sidebar-slot {
    --sidebar-width: 56px;
    width: 56px;
    min-width: 56px;
    max-width: 56px;
  }

  .is-sidebar-expanded .sidebar-slot {
    overflow: visible;
    z-index: 800;
  }

  .is-sidebar-expanded .sidebar {
    --sidebar-width: 108px;
    position: absolute;
    top: 0;
    right: auto;
    bottom: 0;
    left: 0;
    width: 108px;
    min-width: 108px;
    max-width: 108px;
    height: auto;
    min-height: 0;
    flex: none;
    z-index: 1;
  }

  .sidebar__expand {
    cursor: pointer;
  }

  .sidebar__expand:hover {
    background: rgba(0, 0, 0, 0.04);
  }

  body:not(.is-sidebar-expanded) .sidebar {
    --sidebar-menu-item-block: 2.75rem;
    --sidebar-logo-menu-spacing: 8px;
    overflow: hidden;
  }

  body:not(.is-sidebar-expanded) .sidebar__expand {
    padding: 12px 4px 4px;
  }

  body:not(.is-sidebar-expanded) .sidebar__app-logo-img {
    max-width: 44px;
  }

  body:not(.is-sidebar-expanded) .sidebar__menu-item {
    min-height: var(--sidebar-menu-item-block);
    width: 44px;
    max-width: 100%;
    padding: 8px 4px;
    gap: 0;
  }

  body:not(.is-sidebar-expanded) .sidebar__menu-item__label,
  body:not(.is-sidebar-expanded) .sidebar__user-name,
  body:not(.is-sidebar-expanded) .sidebar__sign-out-form,
  body:not(.is-sidebar-expanded) .sidebar__facility-select-form,
  body:not(.is-sidebar-expanded) .activity-tray__trigger-label {
    display: none;
  }

  body:not(.is-sidebar-expanded) .sidebar__customer-logo::before,
  body:not(.is-sidebar-expanded) .sidebar__menu-divider::before {
    margin: 0 8px;
  }

  body:not(.is-sidebar-expanded) .sidebar__user {
    cursor: pointer;
  }

  body:not(.is-sidebar-expanded) .activity-tray__trigger {
    width: 44px;
    max-width: 100%;
    padding: 8px 4px;
  }

  /* Title bars bleed to the main-content edges; body content keeps this inset. */
  .main-content {
    --main-content-padding: 0.5rem;
    padding: var(--main-content-padding);
  }

  .main-content:has(.view-shell) {
    padding: 0;
  }
}

/* -----------------------------------------------------------------------------
   Changes view (main content when Changes is selected)
   ----------------------------------------------------------------------------- */
.changes {
  --changes-brand-purple: #9333ea;
  width: 100%;
  max-width: 72rem;
  margin: 0 auto;
}

/* Card-list pages (notifications, care plans, forms): use main-content gutters only */
.changes.changes--wide-layout {
  max-width: none;
}

/* Scheduling cards: match title-bar width; stacked bars with gray rules */
.changes--scheduling-page .changes__section-heading {
  padding-bottom: 0;
}

.changes--scheduling-page .changes__cards {
  gap: 0;
  padding: 8px 0 1rem;
}

.changes--scheduling-page {
  /* Same compact header photo as Forms. Nudge is applied to the photo, not the
     patient group, so later header columns stay put for expanded-body alignment. */
  --changes-card-compact-header-photo-size: calc(1.716 * 14pt * 1.25 * 1.1);
  --changes-card-form-set-photo-nudge: 10px;
}

.changes--scheduling-page .changes__card-patient,
.changes--scheduling-page .changes__card-reason {
  font-weight: 600;
}

.changes--scheduling-page .changes__card-patient-group {
  flex: 0 0 var(--changes-card-patient-col-width);
  display: flex;
  align-items: center;
  min-width: 0;
}

.changes--scheduling-page .changes__card-header-photo {
  flex-shrink: 0;
  box-sizing: border-box;
  padding: 0 10px;
  font-size: 14pt;
  line-height: 1;
  margin-left: calc(-1 * var(--changes-card-form-set-photo-nudge));
}

.changes--scheduling-page .changes__card-header-photo .in-progress__photo,
.changes--scheduling-page .changes__card-header-photo .in-progress__photo-slot {
  width: var(--changes-card-compact-header-photo-size);
  height: var(--changes-card-compact-header-photo-size);
}

.changes--scheduling-page .changes__card-patient-group .changes__card-patient {
  flex: 1 1 0;
  min-width: 0;
  padding-left: 12px;
  box-sizing: border-box;
}

/* Align refresh buttons with care-plan header caret (matches .changes__card--care-plan .changes__card-row padding-right) */
.changes--care-plans-page {
  --changes-care-plan-trailing-inset: calc(var(--changes-card-row-pad-x, 1.25rem) + 1.5rem);
}

.changes--care-plans-page .changes__section-heading {
  padding-bottom: 0.25rem;
}

.changes--care-plans-page .changes__cards {
  padding-top: 0.5rem;
  gap: 0;
}

.changes--care-plans-page .changes__care-plans-empty-text {
  margin: 2.5rem 0 0;
  padding-left: var(--top-bar-padding-inline);
  font-size: 1.125rem;
  text-align: left;
}

/* Top horizontal bar header — bleeds to the top and side edges of main content */
.changes__top-bar,
.scheduling__top-bar,
.calendar__top-bar,
.scrape__top-bar {
  --title-bar-nav-size: 13px;
  --title-bar-nav-icon-size: 18px;
  --title-bar-nav-icon-gap: 4px;
  --title-bar-user-size: 32px;
  --title-bar-user-gap: calc(0.85rem + 20px);
  --title-bar-trailing-inset: var(--main-content-padding);
  --title-bar-color: #4D68A7;
  box-sizing: border-box;
  position: relative;
  z-index: 40;
  display: flex;
  align-items: center;
  height: var(--top-bar-height);
  min-height: var(--top-bar-height);
  max-height: var(--top-bar-height);
  padding: var(--top-bar-padding-block) var(--top-bar-padding-inline);
  overflow: visible;
  flex-shrink: 0;
  border-radius: 0;
}

.changes__top-bar:has(.title-bar-user),
.scheduling__top-bar:has(.title-bar-user),
.calendar__top-bar:has(.title-bar-user),
.scrape__top-bar:has(.title-bar-user) {
  padding-right: calc(var(--title-bar-trailing-inset) + var(--title-bar-user-size) + var(--title-bar-user-gap));
}

.changes__top-bar-title,
.scheduling__top-bar-title,
.calendar__top-bar-title,
.scrape__top-bar-title {
  flex-shrink: 0;
  line-height: 1;
}

.title-bar-brand {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  min-width: 0;
  flex-shrink: 0;
}

.title-bar-nav {
  display: flex;
  align-items: center;
  gap: var(--title-bar-nav-gap, 0.4rem);
  min-width: 0;
  margin-left: 1.1rem;
  flex: 1 1 auto;
  overflow-x: auto;
  scrollbar-width: none;
}

.title-bar-nav::-webkit-scrollbar {
  display: none;
}

.title-bar-nav__item {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--title-bar-nav-icon-gap, 4px);
  min-width: 3.4rem;
  color: #fff;
  text-decoration: none;
  font-size: var(--title-bar-nav-size);
  font-weight: 500;
  line-height: 1.15;
  letter-spacing: 0.01em;
  white-space: nowrap;
  opacity: 0.55;
  padding: 3px 7px;
  border-radius: 6px;
}

.title-bar-nav__item:visited {
  color: #fff;
}

.title-bar-nav__item:hover {
  opacity: 0.85;
}

.title-bar-nav__item--selected,
.title-bar-nav__item--selected:visited,
.title-bar-nav__item--selected:hover {
  background: #fff;
  color: var(--title-bar-color, #4D68A7);
  opacity: 1;
  font-weight: 700;
  text-decoration: none;
}

.title-bar-nav__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--title-bar-nav-icon-size, 18px);
  height: var(--title-bar-nav-icon-size, 18px);
  color: inherit;
  flex-shrink: 0;
}

.title-bar-nav__icon svg {
  display: block;
  width: 100%;
  height: 100%;
}

.title-bar-nav__calendar-date {
  font-family: var(--app-font-family);
  font-weight: 700;
  letter-spacing: -0.04em;
}

.title-bar-nav__label {
  display: block;
}

.title-bar-end {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  margin-left: auto;
  flex-shrink: 0;
}

.title-bar-end .title-bar-nav__item:not(.title-bar-nav__item--selected) {
  font-size: var(--title-bar-nav-size, 13px);
}

.title-bar-user {
  position: absolute;
  top: 0;
  bottom: 0;
  right: var(--title-bar-trailing-inset, var(--main-content-padding));
  left: auto;
  margin-block: auto;
  width: var(--title-bar-user-size, 32px);
  height: var(--title-bar-user-size, 32px);
  flex-shrink: 0;
  overflow: visible;
  z-index: 20;
}

.title-bar-user__button {
  display: block;
  width: var(--title-bar-user-size, 32px);
  height: var(--title-bar-user-size, 32px);
  padding: 0;
  border-radius: 50%;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.28);
  border: 2px solid rgba(255, 255, 255, 0.9);
  box-sizing: border-box;
  cursor: pointer;
}

.title-bar-user__button:hover,
.title-bar-user__button[aria-expanded="true"] {
  border-color: #fff;
}

.title-bar-user__button:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

.title-bar-user__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.title-bar-user__menu {
  position: fixed;
  z-index: 4000;
  box-sizing: border-box;
  width: max-content;
  min-width: 10.5rem;
  padding: 0.25rem;
  border: 1px solid #cbd5e1;
  border-radius: 0.5rem;
  background: #fff;
  color: #1f2937;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.18);
}

.title-bar-user__menu-form {
  margin: 0;
  width: 100%;
}

.title-bar-user__menu-item {
  appearance: none;
  display: block;
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  padding: 0.45rem 0.75rem;
  border: 0;
  border-radius: 0.35rem;
  background: transparent;
  color: #1f2937;
  font-family: inherit;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.25;
  text-align: left;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
}

.title-bar-user__menu-item:visited {
  color: #1f2937;
}

.title-bar-user__menu-item:hover,
.title-bar-user__menu-item:focus-visible {
  background: #f1f5f9;
  color: #1f2937;
}

.title-bar-user__menu-separator {
  height: 0;
  margin: 0.25rem 0.4rem;
  border: 0;
  border-top: 1px solid #e5e7eb;
}

.title-bar-logo {
  display: flex;
  align-items: center;
  flex-shrink: 1;
  min-width: 0;
  line-height: 0;
}

.title-bar-logo__img {
  display: block;
  width: 144px;
  max-width: 144px;
  height: auto;
  object-fit: contain;
}

.changes__top-bar {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
  margin: 0;
}

.changes__top-bar--care-plans {
  justify-content: space-between;
  width: 100%;
  gap: 1rem;
  padding-right: var(--changes-care-plan-trailing-inset, calc(var(--changes-card-row-pad-x, 1.25rem) + 1.5rem));
}

.changes__top-bar--in-progress {
  justify-content: space-between;
  width: 100%;
  gap: 1rem;
}

.changes__in-progress-top-bar-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-left: auto;
  flex-shrink: 0;
}

.changes__in-progress-refresh-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  appearance: none;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.65);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  cursor: pointer;
  flex-shrink: 0;
}

.changes__in-progress-refresh-btn:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.22);
}

.changes__in-progress-refresh-btn:disabled {
  opacity: 0.6;
  cursor: wait;
}

.changes__in-progress-refresh-btn-icon {
  width: 1rem;
  height: 1rem;
}

.changes__test-notification {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-shrink: 0;
}

.changes__test-notification-trigger {
  appearance: none;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  border: 1px solid rgba(255, 255, 255, 0.65);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  font-family: inherit;
  font-size: 0.8125rem;
  padding: 0.35rem 0.85rem;
  cursor: pointer;
  white-space: nowrap;
}

.changes__test-notification-trigger--open,
.changes__test-notification-trigger:hover {
  background: rgba(255, 255, 255, 0.22);
}

.changes__test-notification-chevron {
  width: 0.75rem;
  height: 0.75rem;
  flex-shrink: 0;
}

.changes__test-notification-trigger--open .changes__test-notification-chevron {
  transform: rotate(180deg);
}

.changes__test-notification-menu {
  position: fixed;
  z-index: 2000;
  min-width: 12.5rem;
  padding: 0.25rem;
  border: 1px solid #cbd5e1;
  border-radius: 0.5rem;
  background: #fff;
  color: #1f2937;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.18);
}

.changes__test-notification-menu-form {
  margin: 0;
  width: 100%;
}

.changes__test-notification-menu-item {
  appearance: none;
  display: block;
  width: 100%;
  margin: 0;
  padding: 0.4rem 0.75rem;
  border: 0;
  border-radius: 0.35rem;
  background: transparent;
  color: #1f2937;
  font-family: inherit;
  font-size: 0.8125rem;
  text-align: left;
  cursor: pointer;
}

.changes__test-notification-menu-item:hover {
  background: #f1f5f9;
}

.changes__test-quarterly-flash {
  margin: 0;
  font-size: 0.8125rem;
  max-width: 22rem;
}

.changes__test-quarterly-flash--success {
  color: rgba(255, 255, 255, 0.95);
}

.changes__test-quarterly-flash--error {
  color: #ffe0e0;
}

.changes__in-progress-sync-timer {
  min-width: 4.5rem;
  font-size: 0.8125rem;
  color: rgba(255, 255, 255, 0.92);
}

.changes__top-bar--in-progress {
  justify-content: space-between;
  width: 100%;
  gap: 1rem;
}

.changes__in-progress-top-bar-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-left: auto;
  flex-shrink: 0;
}

.changes__in-progress-refresh-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  appearance: none;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.65);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  cursor: pointer;
  flex-shrink: 0;
  transition: background-color 0.15s ease;
}

.changes__in-progress-refresh-btn:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.22);
}

.changes__in-progress-refresh-btn:disabled {
  opacity: 0.6;
  cursor: wait;
}

.changes__in-progress-refresh-btn-icon {
  width: 1rem;
  height: 1rem;
}

.changes__care-plans-top-bar-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-left: auto;
  flex-shrink: 0;
}

.changes__care-plans-last-synced {
  font-size: 0.8125rem;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.92);
  white-space: nowrap;
}

.changes__care-plans-sync-timer {
  min-width: 4.5rem;
  font-size: 0.8125rem;
  color: rgba(255, 255, 255, 0.92);
}

.changes__care-plans-sync-alert {
  margin: 0.75rem 0 0;
  padding: 0.75rem 1rem;
  border-radius: 8px;
  font-size: 0.875rem;
}

.changes__care-plans-sync-alert--success {
  background: #e8f5e9;
  border: 1px solid #a5d6a7;
  color: #1b5e20;
}

.changes__care-plans-sync-alert--warning {
  background: #fff8e1;
  border: 1px solid #ffe082;
  color: #6d4c00;
}

.changes__card-care-plan-expanded-toolbar {
  display: none;
  align-items: center;
  justify-content: flex-end;
  gap: 0.75rem;
  margin: 0 calc(-1 * var(--changes-card-row-pad-x, 1.25rem)) 0.75rem;
  padding: 0.5rem var(--changes-care-plan-trailing-inset, calc(var(--changes-card-row-pad-x, 1.25rem) + 1.5rem)) 0 0;
}

.changes__card--care-plan.changes__card--expanded .changes__card-care-plan-expanded-toolbar {
  display: flex;
}

.changes__card-care-plan-last-synced {
  font-size: 0.8125rem;
  color: #5f6368;
  white-space: nowrap;
}

.changes__card-care-plan-refresh-btn {
  appearance: none;
  border: 1px solid #dadce0;
  border-radius: 999px;
  background: #fff;
  color: #1a73e8;
  padding: 0.25rem 0.75rem;
  font-size: 0.8125rem;
  font-weight: 600;
  cursor: pointer;
}

.changes__card-care-plan-refresh-btn:hover:not(:disabled) {
  background: #f8fbff;
  border-color: #1a73e8;
}

.changes__card-care-plan-refresh-btn:disabled {
  opacity: 0.6;
  cursor: wait;
}

.changes__card-care-plan-sync-timer {
  font-size: 0.75rem;
  font-variant-numeric: tabular-nums;
  color: #5f6368;
  min-width: 3.5rem;
}

.changes__card-care-plan-sync-error {
  font-size: 0.75rem;
  color: #c5221f;
}

.changes__top-bar-title {
  margin: 0;
  font-size: var(--top-bar-title-size);
  font-weight: 600;
  color: #fff;
  letter-spacing: -0.01em;
}

.changes__top-bar-controls {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 1.5rem;
}

.changes__top-bar-field {
  display: inline-flex;
  align-items: center;
  flex-wrap: nowrap;
}

.changes__top-bar-label {
  font-size: 0.9375rem;
  font-weight: 400;
  color: #fff;
}

.changes__top-bar-select {
  appearance: none;
  margin: 0 2px;
  padding: 2px 20px 2px 6px;
  font-size: 0.9375rem;
  font-weight: 700;
  color: #fff;
  background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5L6 8L9.5 4.5' stroke='%23fff' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E") no-repeat right 4px center;
  border: none;
  border-radius: 2px;
  cursor: pointer;
  font-family: inherit;
}

.changes__top-bar-select:hover,
.changes__top-bar-select:focus {
  background-color: rgba(255, 255, 255, 0.15);
  outline: none;
}

.changes__top-bar-select option {
  color: #333;
  background: #fff;
}

.changes__top-bar-datetime {
  margin-left: auto;
  font-size: 0.875rem;
  font-weight: 400;
  color: #fff;
}

.changes__table-wrapper {
  background: #fff;
  border-radius: 8px;
  border: 1px solid #e0e0e0;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.changes__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}

.changes__th {
  text-align: left;
  padding: 12px 16px;
  background: #f8f8f8;
  font-weight: 600;
  color: #333;
  border-bottom: 1px solid #e0e0e0;
}

.changes__row {
  border-bottom: 1px solid #eee;
}

.changes__row:last-child {
  border-bottom: none;
}

.changes__row:hover {
  background: #fafafa;
}

.changes__cell {
  padding: 12px 16px;
  color: #444;
  vertical-align: top;
}

.changes__cell--date,
.changes__cell--dates {
  white-space: nowrap;
}

.changes__empty {
  background: #fff;
  border-radius: 8px;
  border: 1px solid #e0e0e0;
  padding: 2.5rem;
  text-align: center;
}

.changes__empty-text {
  margin: 0 0 0.5rem;
  font-size: 1rem;
  color: #333;
  font-weight: 500;
}

.changes__empty-hint {
  margin: 0;
  font-size: 14px;
  color: #666;
}

/* Notification sections */
.changes__section {
  margin-top: 0.5rem;
}

.changes__section:first-of-type {
  margin-top: 0;
}

.changes__demo-verify-problem {
  margin: 0 0 1rem;
  padding: 0.75rem 1rem;
  border: 1px dashed #c4b48a;
  border-radius: 8px;
  background: #fffaf0;
}

.changes__demo-verify-problem form {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.changes__demo-verify-problem-label {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.95rem;
  font-weight: 600;
  color: #6b5420;
}

.changes__demo-verify-problem-note {
  margin: 0;
  font-size: 0.85rem;
  color: #6b5420;
}

.changes__section-heading {
  margin: 0;
  padding: 0 0 0.5rem;
  font-size: 1.2rem;
  font-weight: 700;
  color: #333;
}

/* Notification / care plan / forms bars */
.changes__cards {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0 0 1rem;
}

.changes__care-plans-flash {
  margin: 0 0 0.75rem;
  padding: 0.75rem 0.875rem;
  border-radius: 8px;
  font-size: 0.9rem;
}

.changes__care-plans-flash--alert {
  background: #fdecea;
  color: #b42318;
}

.changes__care-plans-flash--notice {
  background: #ecfdf3;
  color: #027a48;
}

.changes__care-plans-footer {
  display: flex;
  justify-content: center;
  gap: 0.75rem;
  padding: 0.5rem 0 1.5rem;
  position: relative;
  z-index: 2;
}

.changes__care-plans-create-form {
  margin: 0;
}

.changes__care-plans-create-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--changes-card-pill-btn-padding-block, 8px) 24px;
  min-height: var(--changes-card-pill-btn-min-height, 2.5rem);
  border: none;
  border-radius: 999px;
  background: #1a73e8;
  color: #fff;
  font-size: 0.9375rem;
  font-weight: 600;
  cursor: pointer;
}

.changes__care-plans-create-btn:hover {
  filter: brightness(1.05);
}

.changes__care-plans-create-btn--secondary {
  background: #fff;
  color: #1a73e8;
  border: 1px solid #1a73e8;
}

.changes__care-plans-create-btn--secondary:hover {
  background: #f8fbff;
  filter: none;
}

.changes__card {
  /* Expanded body + sidebar: detail labels align with header .changes__card-reason.
     Patient column includes --changes-card-header-patient-extra for long names; title/main omit that extra
     so they line up with Questions/Assessments headings (those sections never received the extra). */
  --changes-card-row-pad-x: 1.25rem;
  --changes-card-expanded-pad-left: 0.375rem;
  --changes-card-expanded-pad-right: var(--changes-card-expanded-pad-left);
  /* Header expand control (padding + 14px icon) — timeline right edge stops before caret with row pad */
  --changes-card-expand-control-width: 1.375rem;
  --changes-card-timeline-pad-right: calc(
    var(--changes-card-row-pad-x) - var(--changes-card-expanded-pad-right) + var(--changes-card-expand-control-width)
  );
  --changes-card-sidebar-w: 187.5px;
  /* Expanded row: gutter between patient photo column and detail column — minimum ½in; aligns --changes-card-patient-col-width-* */
  --changes-card-sidebar-main-gap: max(0.5in, 1.25rem);
  --changes-card-main-pad-left: 1.25rem;
  --changes-card-header-col-gap: 1.5rem;
  /* Matches .changes__card-reason width — date column begins after reason + this gap */
  --changes-card-reason-col-width: 7rem; /* short labels (“Admission”, “Discharge”); ellipsis handles “Admission (Respite)” */
  --changes-card-payer-col-width-base: 152px;
  /* Baseline patient width reserves space so reason can sit after name; extra widens column without shifting the name. */
  --changes-card-patient-col-width-aligned: calc(
    var(--changes-card-expanded-pad-left) + var(--changes-card-sidebar-w) + var(--changes-card-sidebar-main-gap) +
      var(--changes-card-main-pad-left) - var(--changes-card-row-pad-x) - var(--changes-card-header-col-gap)
  );
  --changes-card-header-patient-extra: clamp(2rem, 2.75rem + 0.75vw, 3.25rem);
  /* Questions/Assessments section label↔content gap (matches .changes__card-questions / .changes__card-assessments gap). */
  --changes-card-questions-assessments-inner-gap: 1.25rem;
  /* Pull .changes__card-question-text / .changes__card-assessment-name left to header notification title. */
  --changes-card-question-assessment-title-align-shift: calc(
    var(--changes-card-sidebar-main-gap) + var(--changes-card-main-pad-left) -
      var(--changes-card-row-pad-x) - var(--changes-card-questions-assessments-inner-gap) -
      var(--changes-card-header-patient-extra)
  );
  --changes-card-patient-col-width: calc(var(--changes-card-patient-col-width-aligned) + var(--changes-card-header-patient-extra));
  --changes-card-payer-col-width: var(--changes-card-payer-col-width-base);
  /* Detail value column aligns with header date: label col + row gap = reason + header gap */
  --changes-card-detail-label-col-width: calc(
    var(--changes-card-reason-col-width) + var(--changes-card-header-col-gap) - 0.5rem
  );
  /* From expanded main origin (aligned with header reason): width through header date column → left edge of payer type */
  --changes-card-reason-span-to-payer-start: calc(
    var(--changes-card-reason-col-width) + var(--changes-card-header-col-gap) + 50px + var(--changes-card-header-col-gap)
  );
  /* Dates | Details gutter: MUST match header row gap between date ↔ payer (.changes__card-row). Then
     --changes-card-dates-col-max-for-payer-align resolves to exactly reason+g+50px → trailing edges of
     .changes__card-date (50px column) align with Dates column values. Using a larger gutter (e.g. 0.5in)
     leaves the Dates grid column too narrow versus the header band. */
  --changes-card-dates-details-col-gap: var(--changes-card-header-col-gap);
  --changes-card-dates-col-max-for-payer-align: calc(
    var(--changes-card-reason-span-to-payer-start) - var(--changes-card-dates-details-col-gap)
  );
  /* After payer: flex row gap is uniform; this net margin pulls diagnosis left (~½ that gap) so payer↔diagnosis tightens without changing other column spacing */
  --changes-card-diagnosis-text-offset: 0;
  --changes-card-diagnosis-after-payer-inset: calc(
    var(--changes-card-diagnosis-text-offset) - (0.5 * var(--changes-card-header-col-gap))
  );
  /* Detail field values (#Details): label column matches header band under diagnosis text */
  --changes-card-details-label-col-for-diagnosis: calc(
    var(--changes-card-payer-col-width) + var(--changes-card-header-col-gap) + var(--changes-card-diagnosis-after-payer-inset)
  );
  /* From .changes__card-main inner start (aligned with notification title column) → left edge of diagnosis text.
     Use payer + gap only (omit --changes-card-diagnosis-after-payer-inset): diagnosis margin eats into that gap visually,
     so adding the inset would place “New payer” too far left versus the glyphs. */
  --changes-card-payer-change-diagnosis-leading-offset: calc(
    var(--changes-card-reason-col-width) + var(--changes-card-header-col-gap) + 50px +
      var(--changes-card-header-col-gap) + var(--changes-card-payer-col-width) +
      var(--changes-card-header-col-gap)
  );
  /* All card action pills (Questions, assessments, acknowledge) match Mark as complete height */
  --changes-card-pill-btn-padding-block: 8px;
  --changes-card-pill-btn-min-height: 2.5rem;
  /* Fixed width for assessment actions column + matching “Mark as complete” (fits “Delete assessment” on one line). */
  --changes-card-assessment-acknowledge-pill-width: 13rem;

  background: #fff;
  border-radius: 0;
  box-shadow: none;
  border: none;
  overflow: hidden;
}

.changes__card + .changes__card {
  border-top: 1px solid #dcdcdc;
}

/* Alerts and Forms wrap each card, so the sibling rule above does not apply. */
.changes__card-container + .changes__card-container {
  border-top: 1px solid #dcdcdc;
}

.changes__card--urgent + .changes__card--urgent,
.changes__card--care-plan-overdue + .changes__card--care-plan-overdue,
.changes__card--care-plan-due-soon + .changes__card--care-plan-due-soon,
.changes__card--care-plan-overdue + .changes__card--care-plan-due-soon,
.changes__card--care-plan-due-soon + .changes__card--care-plan-overdue {
  border-top: 2px solid #fff;
}

.changes__card--in_progress {
  border: none;
}

.changes__card--attention {
  animation: notification-attention-ring 10s ease-out var(--notification-attention-delay, 0ms) forwards;
}

.changes__card--urgent .changes__card-row {
  background: #fdf3d1;
}

.changes__card--urgent .changes__card-row:hover {
  background: #f6e8b0;
}

.changes__card--urgent.changes__card--expanded {
  background: #fff;
}

.changes__card--urgent.changes__card--expanded .changes__card-row {
  background: #fdf3d1;
}

.changes__card--attention-urgent {
  animation: notification-attention-ring-urgent 10s ease-out var(--notification-attention-delay, 0ms) forwards;
}

@keyframes notification-attention-ring {
  0%, 75% {
    box-shadow:
      0 0 0 2px #1a73e8,
      0 1px 3px rgba(0, 0, 0, 0.08),
      0 6px 22px rgba(26, 115, 232, 0.26);
  }

  100% {
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
  }
}

@keyframes notification-attention-ring-urgent {
  0%, 75% {
    box-shadow:
      0 0 0 2px #c5221f,
      0 1px 3px rgba(0, 0, 0, 0.08),
      0 6px 22px rgba(197, 34, 31, 0.26);
  }

  100% {
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
  }
}

@media (prefers-reduced-motion: reduce) {
  .changes__card--attention {
    animation: none;
    box-shadow:
      0 0 0 2px #1a73e8,
      0 1px 3px rgba(0, 0, 0, 0.08),
      0 6px 22px rgba(26, 115, 232, 0.26);
  }

  .changes__card--attention-urgent {
    animation: none;
    box-shadow:
      0 0 0 2px #c5221f,
      0 1px 3px rgba(0, 0, 0, 0.08),
      0 6px 22px rgba(197, 34, 31, 0.26);
  }
}

.changes__card-row {
  display: flex;
  align-items: center;
  gap: var(--changes-card-header-col-gap, 1.5rem);
  padding: 0.75rem var(--changes-card-row-pad-x, 1.25rem);
  cursor: pointer;
  min-width: 0;
  overflow: hidden;
}

.changes__card:not(.changes__card--expanded) .changes__card-row {
  box-sizing: border-box;
  height: var(--patient-table-row-height);
  min-height: var(--patient-table-row-height);
  padding-top: 0;
  padding-bottom: 0;
}

.changes__card-patient {
  flex: 0 0 var(--changes-card-patient-col-width, 180px);
  font-size: var(--patient-name-size);
  font-weight: 700;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.changes__card-reason {
  flex: 0 0 var(--changes-card-reason-col-width, 180px);
  /* Pull title back into patient column’s reserved extra space (flex slot unchanged → date/payer/diagnosis stay put) */
  margin-left: calc(-1 * var(--changes-card-header-patient-extra));
  font-size: var(--patient-info-size);
  font-weight: 700;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.changes__card-date {
  flex: 0 0 50px;
  font-size: var(--patient-meta-size);
  font-weight: 400;
  color: var(--card-header-info-color);
  white-space: nowrap;
  /* Right edge aligns with Dates column date values below */
  text-align: right;
}

.changes__card-payer-type {
  flex: 0 0 var(--changes-card-payer-col-width, 130px);
  font-size: var(--patient-meta-size);
  font-weight: 400;
  color: var(--card-header-info-color);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.changes__card-diagnosis {
  flex: 1 1 auto;
  min-width: 0;
  margin-left: var(--changes-card-diagnosis-after-payer-inset);
  font-size: var(--patient-meta-size);
  font-weight: 400;
  color: var(--card-header-info-color);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.changes__card-expand {
  margin-left: auto;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 4px;
  color: #1a73e8;
}

.changes__card-row-end {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex: 0 0 auto;
  flex-shrink: 0;
}

.changes__card-row-end .changes__card-expand {
  margin-left: 0;
  flex: 0 0 var(--changes-card-expand-control-width, 1.375rem);
}

.changes__card-run-status {
  display: inline-flex;
  align-items: baseline;
  gap: 0.5rem;
  min-width: 0;
  font-size: 11pt;
  font-weight: 700;
  white-space: nowrap;
}

.changes__card-run-status-label {
  overflow: hidden;
  text-overflow: ellipsis;
}

.changes__card-run-status-elapsed {
  flex-shrink: 0;
  font-weight: 400;
  font-variant-numeric: tabular-nums;
}

.changes__card-run-status--running,
.changes__card-run-status--queued {
  color: #2d4a7c;
}

.changes__card-run-status--failed {
  color: #b42318;
}

.changes__card--expanded .changes__card-run-status {
  display: none;
}

.changes__card-expand svg {
  display: block;
  transition: transform 0.25s ease;
}

.changes__card--expanded .changes__card-expand svg {
  transform: rotate(180deg);
}

/* Care plan cards (compact header: patient | incomplete summary | due | ARD | caret) */
.changes__card--care-plan {
  --changes-card-care-plan-urgency-icon-width: 1.65rem;
  --changes-card-form-set-due-col-width: 5.5rem;
  --changes-card-care-plan-date-cols-width: calc(
    2 * var(--changes-card-form-set-due-col-width) + 0.75rem
  );
  --changes-card-form-set-due-col-offset: calc(
    100% - var(--changes-card-care-plan-date-cols-width) - 0.75rem -
      var(--changes-card-expand-control-width, 1.375rem)
  );
}

.changes__card--care-plan .changes__card-row {
  display: grid;
  grid-template-columns:
    var(--changes-card-care-plan-urgency-icon-width)
    var(--changes-card-patient-col-width)
    minmax(0, 1fr)
    auto;
  column-gap: var(--changes-card-header-col-gap, 1.5rem);
  align-items: center;
  padding-right: calc(var(--changes-card-row-pad-x, 1.25rem) + 1.5rem);
}

.changes__card--care-plan .changes__card-care-plan-urgency-icon {
  grid-column: 1;
}

.changes__card--care-plan .changes__card-patient {
  grid-column: 2;
  flex: none;
  width: auto;
  min-width: 0;
}

.changes__card--care-plan:not(.changes__card--care-plan-overdue) .changes__card-patient {
  margin-left: calc(
    -1 * (var(--changes-card-care-plan-urgency-icon-width) + var(--changes-card-header-col-gap, 1.5rem))
  );
}

.changes__card--care-plan-overdue .changes__card-patient {
  margin-left: -0.625rem;
}

.changes__card--care-plan .changes__card-care-plan-summary {
  grid-column: 3;
  flex: none;
  min-width: 0;
  margin-left: calc(-1 * var(--changes-card-header-patient-extra));
  margin-right: 0;
  font-size: var(--patient-info-size);
  color: #333;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.changes__card--care-plan .changes__card-care-plan-summary--incomplete {
  font-weight: 700;
}

.changes__card--care-plan-overdue {
  --care-plan-list-bg: #fdf3d1;
  background: var(--care-plan-list-bg);
  border: none;
  box-shadow: none;
}

.changes__card--care-plan-due-soon {
  --care-plan-list-bg: #fdf3d1;
  background: var(--care-plan-list-bg);
  border: none;
  box-shadow: none;
}

/* Expanded care plan: white body; urgency tint stays on the header row only */
.changes__card--care-plan.changes__card--expanded {
  background: #fff;
}

.changes__card--care-plan-overdue.changes__card--expanded .changes__card-row {
  background: var(--care-plan-list-bg, #fdf3d1);
}

.changes__card--care-plan-due-soon.changes__card--expanded .changes__card-row {
  background: var(--care-plan-list-bg, #fdf3d1);
}

.changes__card--care-plan.changes__card--expanded:not(.changes__card--care-plan-overdue):not(.changes__card--care-plan-due-soon) .changes__card-row {
  background: #fff;
}

.changes__card-care-plan-urgency-icon {
  flex: 0 0 var(--changes-card-care-plan-urgency-icon-width, 1.65rem);
  width: var(--changes-card-care-plan-urgency-icon-width, 1.65rem);
  height: var(--changes-card-care-plan-urgency-icon-width, 1.65rem);
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #ef4444;
  visibility: hidden;
}

.changes__card-care-plan-urgency-icon svg {
  display: block;
  width: 100%;
  height: 100%;
}

.changes__card-care-plan-urgency-icon--visible {
  visibility: visible;
}

/* Compact header bars with patient photo (Forms) */
.changes__card--form-set {
  --changes-card-compact-header-height: var(--patient-table-row-height);
  --changes-card-compact-header-photo-size: calc(1.716 * 14pt * 1.25 * 1.1);
  --changes-card-compact-header-edge-inset: var(--changes-card-row-pad-x, 1.25rem);
  /* Card row pad is 1.25rem; in-progress photo column starts 10px from table edge. */
  --changes-card-form-set-photo-nudge: 10px;
}

.changes__card--form-set .changes__card-row {
  box-sizing: border-box;
  height: var(--changes-card-compact-header-height);
  padding-top: max(0px, calc((var(--changes-card-compact-header-height) - var(--changes-card-compact-header-photo-size)) / 2));
  padding-bottom: max(0px, calc((var(--changes-card-compact-header-height) - var(--changes-card-compact-header-photo-size)) / 2));
}

.changes__card--form-set .changes__card-patient-group {
  flex: 0 0 var(--changes-card-patient-col-width);
  display: flex;
  align-items: center;
  min-width: 0;
  margin-left: calc(-1 * var(--changes-card-form-set-photo-nudge));
}

.changes__card--form-set .changes__card-header-photo {
  flex-shrink: 0;
  box-sizing: border-box;
  padding: 0 10px;
  font-size: 14pt;
  line-height: 1;
}

.changes__card--form-set .changes__card-header-photo .in-progress__photo,
.changes__card--form-set .changes__card-header-photo .in-progress__photo-slot {
  width: var(--changes-card-compact-header-photo-size);
  height: var(--changes-card-compact-header-photo-size);
}

.changes__card--form-set .changes__card-patient-group .changes__card-patient {
  flex: 1 1 0;
  min-width: 0;
  padding-left: 12px;
  box-sizing: border-box;
}

/* Form set cards (compact header: patient | summary | due | caret) */
.changes__card--form-set {
  --changes-card-form-item-dept-col-width: 7.5rem;
  /* Hide departments once the title column is no longer comfortably wider than the dept column. */
  --changes-card-form-item-hide-dept-below: calc(2.5 * var(--changes-card-form-item-dept-col-width));
  --changes-card-form-item-col-gap: 1rem;
  --changes-card-form-item-row-pad-left: 1.5rem;
  --changes-card-form-item-name-indent: calc(
    var(--changes-card-patient-col-width) - var(--changes-card-form-item-dept-col-width) -
      var(--changes-card-form-item-col-gap) - var(--changes-card-header-patient-extra) -
      var(--changes-card-form-set-photo-nudge, 0px)
  );
  --changes-card-form-item-check-width: 1rem;
  --changes-card-form-item-check-gap: 0.35rem;
  /* Longest status label is "Completed 28 Aug" at 12pt; keep room for the checkmark. */
  --changes-card-form-set-status-label-width: 10rem;
  --changes-card-form-set-due-col-width: calc(
    var(--changes-card-form-item-check-width) + var(--changes-card-form-item-check-gap) +
    var(--changes-card-form-set-status-label-width)
  );
  --changes-card-form-set-trailing-gap: 0.35rem;
  /* Match care-plan row trailing inset so the caret sits inward like those bars. */
  --changes-card-form-set-sync-trailing-inset: calc(var(--changes-card-row-pad-x, 1.25rem) + 1.5rem);
  --changes-card-form-set-last-col-width: calc(
    var(--changes-card-form-set-due-col-width) + var(--changes-card-form-set-trailing-gap) +
    var(--changes-card-expand-control-width, 1.375rem)
  );
  /* Left edge of header due column (due sits before caret in trailing). */
  --changes-card-form-set-due-col-offset: calc(
    100% - var(--changes-card-form-set-due-col-width) - var(--changes-card-form-set-trailing-gap) -
      var(--changes-card-expand-control-width, 1.375rem)
  );
}

/* Match item row right inset (body pad + row pad) so cols 3–4 line up with item rows. */
.changes__card--form-set .changes__card-row {
  padding-right: var(--changes-card-form-set-sync-trailing-inset);
}

.changes__card--form-set .changes__card-form-set-summary {
  flex: 1 1 0%;
  min-width: 0;
  /* Align with notification .changes__card-reason (second header column) */
  margin-left: calc(-1 * var(--changes-card-header-patient-extra));
  /* Reclaim the flex gap before the due column (due sits before caret in trailing). */
  margin-right: calc(-1 * var(--changes-card-header-col-gap, 1.5rem));
  font-size: var(--patient-info-size);
  color: #333;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  overflow: hidden;
}

.changes__card--form-set.changes__card--form-set-has-schedule.changes__card--expanded .changes__card-row {
  height: auto;
}

.changes__card--form-set.changes__card--form-set-has-schedule.changes__card--expanded .changes__card-form-set-trailing {
  align-items: flex-start;
}

.changes__card--form-set .changes__card-form-set-due-stack {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  box-sizing: border-box;
  flex: 0 0 auto;
  width: var(--changes-card-form-set-due-col-width, 5.5rem);
  min-width: 0;
  padding-left: calc(
    var(--changes-card-form-item-check-width) + var(--changes-card-form-item-check-gap)
  );
}

.changes__card--form-set .changes__card-form-set-due-stack .changes__card-form-set-due {
  width: auto;
  padding-left: 0;
}

.changes__card-form-set-schedule-btn {
  appearance: none;
  box-sizing: border-box;
  margin: 0.1rem 0 0;
  padding: 0;
  border: 0;
  background: none;
  color: #1c63f2;
  font: inherit;
  font-size: 11pt;
  font-weight: 400;
  line-height: 1.2;
  white-space: nowrap;
  cursor: pointer;
}

.changes__card-form-set-schedule-btn:hover:not(:disabled) {
  text-decoration: underline;
}

.changes__card-form-set-schedule-btn:disabled,
.changes__card-form-set-schedule-btn.is-busy {
  cursor: wait;
  opacity: 0.75;
}

.changes__card--form-set .changes__card-form-set-summary-count {
  font-weight: 700;
  white-space: nowrap;
}

.changes__card--form-set .changes__card-form-set-summary-departments {
  display: block;
  width: 100%;
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  font-weight: 400;
}

/* Trailing due + caret only in header. */
.changes__card--form-set .changes__card-form-set-header-tail,
.changes__card--care-plan .changes__card-form-set-header-tail {
  flex-shrink: 0;
  margin-left: auto;
  width: var(--changes-card-assessment-acknowledge-pill-width, 10.8rem);
}

.changes__card--form-set .changes__card-form-set-header-tail {
  width: var(--changes-card-form-set-last-col-width);
}

.changes__card--care-plan .changes__card-form-set-header-tail {
  grid-column: 4;
  margin-left: 0;
  width: calc(
    var(--changes-card-care-plan-date-cols-width) + 0.75rem +
      var(--changes-card-expand-control-width, 1.375rem)
  );
}

.changes__card--form-set .changes__card-form-set-header-tail-spacer,
.changes__card--care-plan .changes__card-form-set-header-tail-spacer {
  display: none;
}

.changes__card--form-set .changes__card-form-set-trailing,
.changes__card--care-plan .changes__card-form-set-trailing {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.35rem;
  width: 100%;
  min-width: 0;
}

.changes__card--form-set .changes__card-form-set-due,
.changes__card--care-plan .changes__card-form-set-due {
  flex: 0 0 auto;
  box-sizing: border-box;
  width: var(--changes-card-form-set-due-col-width, 5.5rem);
  margin-left: 0;
  font-size: var(--patient-meta-size);
  font-weight: 400;
  color: var(--card-header-info-color);
  white-space: nowrap;
  text-align: left;
}

.changes__card--form-set .changes__card-form-set-due {
  padding-left: calc(
    var(--changes-card-form-item-check-width) + var(--changes-card-form-item-check-gap)
  );
}

.changes__card--form-set .changes__card-form-set-due--completed,
.changes__card--care-plan .changes__card-form-set-due--completed {
  color: #9aa0a6;
}

.changes__card--care-plan .changes__card-care-plan-date-col {
  flex: 0 0 auto;
  box-sizing: border-box;
  width: var(--changes-card-form-set-due-col-width, 5.5rem);
  font-size: var(--patient-meta-size);
  font-weight: 400;
  color: var(--card-header-info-color);
  white-space: nowrap;
  text-align: left;
}

.changes__card--care-plan .changes__card-care-plan-date-col strong {
  font-weight: 700;
}

.changes__card--form-set .changes__card-form-set-trailing .changes__card-expand,
.changes__card--care-plan .changes__card-form-set-trailing .changes__card-expand {
  flex-shrink: 0;
  margin-left: 0;
  color: #1c63f2;
}

.changes__card--form-set .changes__card-form-set-trailing-end {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  gap: 1rem;
}

.changes__card-form-set-refresh-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  appearance: none;
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: 1px solid rgba(28, 99, 242, 0.45);
  border-radius: 50%;
  background: rgba(28, 99, 242, 0.06);
  color: #1c63f2;
  cursor: pointer;
}

.changes__card-form-set-refresh-btn:hover:not(:disabled) {
  background: rgba(28, 99, 242, 0.12);
}

.changes__card-form-set-refresh-btn:disabled,
.changes__card-form-set-refresh-btn.is-busy {
  opacity: 0.75;
  cursor: wait;
}

.changes__card-form-set-refresh-btn-icon {
  width: 1rem;
  height: 1rem;
}

.changes__card-form-set-refresh-btn.is-busy .changes__card-form-set-refresh-btn-icon {
  animation: in-progress-schedule-spin 0.8s linear infinite;
}

.changes__card--form-set.changes__card--expanded .changes__card-row,
.changes__card--care-plan.changes__card--expanded .changes__card-row {
  border-bottom: 1px solid #e8eaed;
}

.changes__card-form-items {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin: 0;
  /* Horizontal inset comes from .changes__card-expanded-body--form-set only (matches header row). */
  padding: 4px 0 0.5rem;
  background: #fff;
}

.changes__card-form-item-row {
  display: grid;
  grid-template-columns: 7.5rem minmax(0, 1fr) 6.5rem var(--changes-card-assessment-acknowledge-pill-width, 10.8rem);
  gap: 0.75rem 1rem;
  align-items: center;
  box-sizing: border-box;
  min-height: 2.5rem;
  padding: 0.5rem 0 0.5rem 1.5rem;
  background: #fff;
  font-size: 12pt;
}

.changes__card--form-set .changes__card-form-item-row {
  grid-template-columns: var(--changes-card-form-item-dept-col-width) minmax(0, 1fr) var(--changes-card-form-set-last-col-width);
  column-gap: var(--changes-card-form-item-col-gap);
  padding-left: var(--changes-card-form-item-row-pad-left);
}

.changes--hide-form-departments .changes__card--form-set .changes__card-form-item-row {
  grid-template-columns: minmax(0, 1fr) var(--changes-card-form-set-last-col-width);
}

.changes--hide-form-departments .changes__card-form-item-department {
  display: none;
}

.changes--hide-form-departments .changes__card-form-item-name-cell {
  margin-left: 0;
}

.changes--hide-form-departments .changes__card--form-set .changes__card-form-item-date-cell,
.changes--hide-form-departments .changes__card--form-set .changes__card-form-item-date {
  grid-column: 2;
}

.changes__card--form-set .changes__card-form-item-date-spacer {
  display: none;
}

.changes__card--form-set .changes__card-form-item-date-cell,
.changes__card--form-set .changes__card-form-item-date {
  grid-column: 3;
}

.changes__card-form-item-row--incomplete {
  background: #eef4fc;
}

.changes__card-form-item-department {
  font-size: inherit;
  font-weight: 700;
  white-space: nowrap;
}

.changes__card-form-item-name {
  font-size: inherit;
  font-weight: 400;
  line-height: 1.35;
  min-width: 0;
  text-decoration: none;
  cursor: pointer;
}

.changes__card-form-item-name-cell {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
  /* Match header “N items to complete”, including the photo-column nudge. */
  margin-left: var(--changes-card-form-item-name-indent);
}

.changes__card-form-item-name-cell .changes__card-form-item-name {
  margin-left: 0;
  flex: 1 1 auto;
}

.changes__card-form-item-status {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
}

.changes__card-form-item-status--success {
  color: #43a047;
  font-weight: 700;
}

.changes__card-form-item-status--failed {
  color: #c5221f;
  font-weight: 700;
}

.changes__card-form-item-status--running {
  flex-direction: column;
  align-items: stretch;
  width: 4.5rem;
  gap: 0.2rem;
}

.changes__card-form-item-date-spacer {
  display: block;
}

.changes__card-form-item-date {
  grid-column: 4;
  display: block;
  box-sizing: border-box;
  width: var(--changes-card-form-set-due-col-width, 5.5rem);
  margin-left: var(--changes-card-form-set-due-col-offset);
  font-size: inherit;
  font-weight: 400;
  line-height: 1.35;
  white-space: nowrap;
  text-align: left;
}

/* Status column: checkmark (or placeholder) + Due/Completed label in one shared width. */
.changes__card-form-item-date-cell {
  grid-column: 4;
  display: flex;
  align-items: center;
  gap: var(--changes-card-form-item-check-gap, 0.35rem);
  box-sizing: border-box;
  width: var(--changes-card-form-set-due-col-width, 5.5rem);
  margin-left: var(--changes-card-form-set-due-col-offset);
  min-width: 0;
}

.changes__card-form-item-date-cell .changes__card-form-item-check {
  position: static;
  flex: 0 0 var(--changes-card-form-item-check-width, 1.375rem);
  width: var(--changes-card-form-item-check-width, 1.375rem);
  transform: none;
}

.changes__card-form-item-check--placeholder {
  visibility: hidden;
}

.changes__card--form-set .changes__card-form-item-date-cell .changes__card-form-item-date {
  display: block;
  margin-left: 0;
  width: auto;
  flex: 1 1 auto;
  min-width: 0;
  grid-column: auto;
  font-size: inherit;
}

.changes__card-care-plan-grid-section {
  padding-bottom: 1rem;
  overflow-x: auto;
}

.changes__card-care-plan-grid-group + .changes__card-care-plan-grid-group {
  margin-top: 0.25rem;
}

.changes__card-care-plan-grid-heading {
  margin: 0 0 0.5rem;
  font-size: 12pt;
  font-weight: 400;
  color: var(--card-detail-label-color);
  text-align: left;
}

.changes__card-care-plan-grid-heading-label {
  font-weight: 700;
}

.changes__card-care-plan-grid-heading-due {
  font-weight: 400;
}

.changes__card-care-plan-grid-heading-due::before {
  content: "\00a0\00a0\00a0";
}

.changes__card-care-plan-grid {
  display: grid;
  /*
   * EXPERIMENT: wider tiles for single-line titles (longest: "Advance Directive").
   * Revert to previous sizing if undesired:
   *   grid-template-columns: repeat(auto-fill, minmax(10.175rem, 1fr));
   *   --changes-card-care-plan-tile-height: 7.25rem;
   */
  grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr));
  gap: 0.65rem;
  width: 100%;
  /* One 16pt title line plus completed/created status row. */
  --changes-card-care-plan-tile-height: 5.75rem;
}

.changes__card-care-plan-tile {
  box-sizing: border-box;
  height: var(--changes-card-care-plan-tile-height);
  min-height: var(--changes-card-care-plan-tile-height);
  width: 100%;
  min-width: 0;
  padding: 0.45rem 0.35rem;
  position: relative;
  display: grid;
  grid-template-areas: "stack";
  align-items: stretch;
  text-align: center;
  background: #fff;
  border-radius: 4px;
  overflow-y: auto;
}

.changes__card-care-plan-tile-title-slot,
.changes__card-care-plan-tile-status-slot {
  grid-area: stack;
  width: 100%;
  min-width: 0;
}

.changes__card-care-plan-tile-title-slot {
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1;
}

.changes__card-care-plan-tile-status-slot {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  z-index: 2;
  pointer-events: none;
}

.changes__card-care-plan-tile-status-slot .changes__card-care-plan-tile-status-row {
  pointer-events: auto;
}

.changes__card-care-plan-tile-info {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 3;
  width: 1.875rem;
  height: 1.875rem;
  padding: 0;
  border: none;
  border-radius: 0;
  background: var(--tile-border-color);
  color: #fff;
  clip-path: polygon(100% 0, 0 0, 100% 100%);
  cursor: pointer;
}

.changes__card-care-plan-tile-info span {
  position: absolute;
  top: 0.18rem;
  right: 0.3rem;
  font-size: 1rem;
  font-weight: 700;
  font-style: italic;
  line-height: 1;
  pointer-events: none;
}

.changes__card-care-plan-tile-info:focus-visible {
  outline: 2px solid var(--tile-border-color);
  outline-offset: -2px;
}

.care-plan-info-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  background: rgba(0, 0, 0, 0.45);
}

.care-plan-info-modal[hidden] {
  display: none;
}

.care-plan-info-modal__dialog {
  display: flex;
  flex-direction: column;
  width: min(100%, 28rem);
  max-height: calc(100vh - 3rem);
  overflow: auto;
  padding: 1.25rem 1.5rem;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.2);
}

.care-plan-info-modal__heading {
  margin: 0 0 0.35rem;
  font-size: 16pt;
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
  color: #1c63f2;
}

.care-plan-info-modal__heading-title {
  color: inherit;
}

.care-plan-info-modal__subtitle {
  margin: 0 0 1rem;
  font-size: 11pt;
  font-weight: 700;
  text-align: center;
  color: #444;
}

.care-plan-info-modal__body {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.care-plan-info-modal__section[hidden] {
  display: none;
}

.care-plan-info-modal__section-heading {
  margin: 0 0 0.35rem;
  font-size: 11pt;
  font-weight: 700;
  color: #222;
}

.care-plan-info-modal__list {
  margin: 0 0 0.5rem;
  padding-left: 1.25rem;
  font-size: 11pt;
  line-height: 1.5;
  color: #222;
}

.care-plan-info-modal__content {
  flex: 1 1 auto;
  margin: 0;
  font-size: 11pt;
  line-height: 1.5;
  color: #222;
  white-space: pre-line;
}

.care-plan-info-modal__pcc-links {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  margin-top: 0.25rem;
}

.care-plan-info-modal__pcc-hint,
.care-plan-info-modal__install-help,
.care-plan-info-modal__status {
  margin: 0;
  max-width: 28rem;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: #555;
  text-align: center;
}

.care-plan-info-modal__install-help code {
  font-size: 0.75rem;
}

.care-plan-info-modal__status[data-kind="pending"] {
  color: #1a73e8;
}

.care-plan-info-modal__status[data-kind="success"] {
  color: #137333;
}

.care-plan-info-modal__status[data-kind="error"] {
  color: #b3261e;
}

.care-plan-info-modal__pcc-link {
  display: inline;
  padding: 0;
  border: none;
  border-radius: 0;
  background: none;
  color: #1a73e8;
  font-size: 11pt;
  font-weight: 400;
  text-align: left;
  text-decoration: underline;
  font-family: inherit;
  cursor: pointer;
}

.care-plan-info-modal__pcc-link:hover {
  background: none;
  color: #1557b0;
}

.care-plan-info-modal__pcc-link.is-busy,
.care-plan-info-modal__pcc-link[aria-disabled="true"] {
  opacity: 0.7;
  pointer-events: none;
  cursor: wait;
}

.care-plan-info-modal__fallback-links {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
}

.care-plan-info-modal__fallback-link {
  font-size: 0.8125rem;
  color: #1a73e8;
}

.care-plan-info-modal__footer {
  display: flex;
  justify-content: center;
  margin-top: 1.25rem;
}

.care-plan-info-modal__done {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 6.5rem;
  padding: var(--changes-card-pill-btn-padding-block, 8px) 24px;
  min-height: var(--changes-card-pill-btn-min-height, 2.5rem);
  font-size: 14px;
  font-weight: 600;
  color: #333;
  background: #e8dfc8;
  border: 1.5px solid transparent;
  border-radius: 20px;
  cursor: pointer;
  font-family: inherit;
  appearance: none;
  transition: background-color 0.15s ease;
}

.care-plan-info-modal__done:hover {
  background: #ddd3b8;
}

.pcc-deep-link {
  max-width: 40rem;
  margin: 2rem auto;
  padding: 0 1.5rem;
}

.pcc-deep-link__heading {
  margin: 0 0 1rem;
  font-size: 1.5rem;
  color: #1c63f2;
}

.pcc-deep-link__patient {
  margin: 0 0 1.25rem;
  font-size: 1.0625rem;
}

.pcc-deep-link__mrn {
  margin-left: 0.5rem;
  color: #555;
}

.pcc-deep-link__notice {
  margin-bottom: 1.25rem;
  padding: 0.875rem 1rem;
  border-radius: 0.5rem;
  background: #f5f7fb;
  color: #333;
  font-size: 0.9375rem;
  line-height: 1.5;
}

.pcc-deep-link__install {
  margin-bottom: 1.5rem;
}

.pcc-deep-link__subheading {
  margin: 0 0 0.5rem;
  font-size: 1.0625rem;
  color: #222;
}

.pcc-deep-link__steps {
  margin: 0 0 1.5rem 1.25rem;
  padding: 0;
  line-height: 1.55;
}

.pcc-deep-link__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.pcc-deep-link__open,
.pcc-deep-link__back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.5rem;
  padding: 0.5rem 1.25rem;
  border-radius: 999px;
  font-weight: 600;
  text-decoration: none;
}

.pcc-deep-link__open {
  border: 1.5px solid #1a73e8;
  background: #1a73e8;
  color: #fff;
}

.pcc-deep-link__back {
  border: 1.5px solid #ccc;
  background: #fff;
  color: #333;
}

.changes__card-care-plan-tile-title {
  font-size: 16pt;
  font-weight: 700;
  line-height: 1.25;
  white-space: nowrap;
}

.changes__card-care-plan-tile--incomplete {
  border: 3px solid;
  color: #1c63f2;
}

.changes__card-care-plan-tile--incomplete .changes__card-care-plan-tile-title {
  color: #1c63f2;
}

.changes__card-care-plan-tile--complete,
.changes__card-care-plan-tile--demo-created,
.changes__card-care-plan-tile--demo-updated {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 0.25rem;
}

.changes__card-care-plan-tile--complete .changes__card-care-plan-tile-title-slot,
.changes__card-care-plan-tile--complete .changes__card-care-plan-tile-status-slot,
.changes__card-care-plan-tile--demo-created .changes__card-care-plan-tile-title-slot,
.changes__card-care-plan-tile--demo-created .changes__card-care-plan-tile-status-slot,
.changes__card-care-plan-tile--demo-updated .changes__card-care-plan-tile-title-slot,
.changes__card-care-plan-tile--demo-updated .changes__card-care-plan-tile-status-slot {
  grid-area: unset;
  flex: 0 0 auto;
}

.changes__card-care-plan-tile--complete .changes__card-care-plan-tile-status-slot,
.changes__card-care-plan-tile--demo-created .changes__card-care-plan-tile-status-slot,
.changes__card-care-plan-tile--demo-updated .changes__card-care-plan-tile-status-slot {
  align-items: center;
}

.changes__card-care-plan-tile--complete {
  border: 3px solid;
  color: #66bb6a;
}

.changes__card-care-plan-tile--complete .changes__card-care-plan-tile-title {
  color: #66bb6a;
  font-weight: 700;
}

.changes__card-care-plan-tile-check {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.changes__card-care-plan-tile-check svg {
  display: block;
}

/* Checkmark + caption on one row (production complete tiles + demo updated state) */
.changes__card-care-plan-tile-status-row {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  max-width: 100%;
  min-height: 22px;
}

.changes__card-care-plan-tile-status-row .changes__card-care-plan-tile-check {
  flex-shrink: 0;
}

.changes__card-care-plan-tile-status-row .changes__card-care-plan-tile-date {
  flex-shrink: 1;
  min-width: 0;
  text-align: center;
}

.changes__card-care-plan-tile-date {
  font-size: 9pt;
  font-weight: 400;
  color: #66bb6a;
  line-height: 1.2;
}

/* TEMPORARY (testing): Care plan tile click-cycle demo — remove with config.x.care_plan_tile_cycle_demo + care_plan_tile_demo_controller.js */
[data-controller~="care-plan-tile-demo"].changes__card-care-plan-tile {
  cursor: pointer;
}

/* Not-created demo tile: title only (matches production incomplete — no badge, no checkmark). */
.changes__card-care-plan-tile--demo-not-created {
  border: 3px solid #1c63f2;
  color: #1c63f2;
}

.changes__card-care-plan-tile--demo-not-created .changes__card-care-plan-tile-title {
  color: #1c63f2;
}

.changes__card-care-plan-tile--demo-created {
  border: 3px solid #1c63f2;
  color: #1c63f2;
}

.changes__card-care-plan-tile--demo-created .changes__card-care-plan-tile-title {
  color: #1c63f2;
}

.changes__card-care-plan-tile--demo-created .changes__card-care-plan-tile-caption-with-check {
  color: #1c63f2;
  font-weight: 700;
}

.changes__card-care-plan-tile--demo-updated {
  border: 3px solid #81c784;
  color: #66bb6a;
}

.changes__card-care-plan-tile--demo-updated .changes__card-care-plan-tile-title {
  color: #66bb6a;
}

.changes__card-care-plan-tile--demo-updated .changes__card-care-plan-tile-date {
  color: #66bb6a;
}

.changes__card--care-plan.changes__card--expanded,
.changes__card--form-set.changes__card--expanded {
  border: 3px solid #1c63f2;
}

.changes__card--expanded .changes__card-row {
  background: var(--card-header-background, #fffde7);
}

.changes__card-expanded-body {
  display: none;
}

.changes__card--expanded .changes__card-expanded-body {
  display: flex;
  gap: var(--changes-card-sidebar-main-gap, 1.25rem);
  padding: 0.5rem 0.375rem 0 0.375rem;
}

.changes__card--expanded .changes__card-expanded-body--care-plan-grid-only {
  display: block;
  padding: 1rem var(--changes-card-row-pad-x, 1.25rem) 0;
  background: #fff;
}

.changes__card--expanded .changes__card-expanded-body--form-set {
  display: block;
  padding: 0.5rem var(--changes-card-row-pad-x, 1.25rem) 0;
  padding-right: var(--changes-card-form-set-sync-trailing-inset);
}

.changes__card-sidebar {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  width: var(--changes-card-sidebar-w, 187.5px);
}

.changes__card-photo {
  width: var(--changes-card-sidebar-w, 187.5px);
  height: var(--changes-card-sidebar-w, 187.5px);
  overflow: hidden;
}

.changes__card-photo-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.changes__card-photo-slot {
  display: block;
  width: 100%;
  height: 100%;
}

.changes__card-main {
  flex: 1;
  min-width: 0;
  padding-left: var(--changes-card-main-pad-left);
}

.changes__card-details-inner {
  padding: 0;
}

/* Shared: horizontal inset matches first label edge inside bordered .changes__card-payer-change-fields */
.changes__card-payer-change-box,
.changes__card-detail-box {
  --pfc-fields-pad-x: 0.75rem;
}

/* Payer change: Previous column flush with notification title band; gap positions New payer under diagnosis band */
.changes__card-payer-change-columns {
  --payer-change-box-width: 300px;
  display: grid;
  grid-template-columns: minmax(0, var(--payer-change-box-width)) minmax(0, 1fr);
  column-gap: max(
    var(--changes-card-header-col-gap, 1.5rem),
    calc(
      var(--changes-card-payer-change-diagnosis-leading-offset) - var(--payer-change-box-width)
    )
  );
  row-gap: 1rem;
  align-items: stretch;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.changes__card-payer-change-columns .changes__card-payer-change-box-heading {
  padding-left: 0;
  /* Match top inset of Dates | Details first row (.changes__card-payer-change-fields padding-top). */
  padding-top: 0.6rem;
  /* Match Previous / New payer rule length and width (avoid full-width rule in wider New column). */
  max-width: min(100%, var(--payer-change-box-width));
  width: min(100%, var(--payer-change-box-width));
  box-sizing: border-box;
  border-bottom: none;
  padding-bottom: 0;
}

.changes__card-payer-change-columns .changes__card-payer-change-box-heading::after {
  content: "";
  display: block;
  width: 100%;
  margin-top: 0.4375rem;
  margin-bottom: 0.4375rem;
  border-bottom: 1px solid #e0e0e0;
}

.changes__card-payer-change-columns .changes__card-payer-change-fields {
  padding: 0 var(--pfc-fields-pad-x) 0.6rem 0;
}

/* Symmetric rhythm: title ⇄ rule ⇄ fields (avoid extra gap from generic box flex-gap). */
.changes__card-payer-change-columns .changes__card-payer-change-box {
  gap: 0;
}


.changes__card-payer-change-box {
  background: transparent;
  border: none;
  padding: 0;
  min-width: 0;
  width: 100%;
  min-height: 100%;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.changes__card-payer-change-box-heading {
  margin: 0;
  font-size: 14pt;
  font-weight: 700;
  color: var(--card-detail-label-color);
  text-align: left;
  padding-bottom: 0.375rem;
  border-bottom: 1px solid #e0e0e0;
  /* Align title with field labels (border 1px + inner padding matches .changes__card-payer-change-fields). */
  padding-left: calc(1px + var(--pfc-fields-pad-x));
}

.changes__card-payer-change-fields {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  border: 1px solid transparent;
  border-radius: 2px;
  padding: 0.6rem var(--pfc-fields-pad-x);
  box-sizing: border-box;
}

/* Label + value on one horizontal line (side by side) */
.changes__card-payer-change-field {
  display: grid;
  grid-template-columns: 5.5rem minmax(0, 1fr);
  column-gap: 0.5rem;
  align-items: start;
  row-gap: 0;
}

.changes__card-payer-change-field-label {
  font-size: 12pt;
  font-weight: 700;
  color: var(--card-detail-label-color);
  text-transform: none;
  letter-spacing: 0.01em;
  line-height: 1.35;
  padding-top: 0.1em;
  text-align: left;
}

.changes__card-payer-change-field-value {
  font-size: 12pt;
  font-weight: 400;
  color: var(--card-detail-value-color);
  word-break: break-word;
  line-height: 16pt;
  min-width: 0;
}

/* Dates | Details (non–Payer Change notifications), stacked with optional payer snapshot + discharge timeline below */
.changes__card-details-inner--stacked {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  width: 100%;
  min-width: 0;
}

.changes__card-assessment-summary-below-main {
  min-width: 0;
  /* Pull up past most of the flex-column gap below prior stacked block (~1rem) */
  margin-top: -0.75rem;
}

/* Assessment summary above elapsed bar (matches progress bar purple) */
.changes__card-assessment-summary-below-main:has(+ .changes__card-discharge-timeline-below) {
  margin-top: 0.5rem;
}

.changes__card-assessment-summary-below-main:has(+ .changes__card-discharge-timeline-below) .changes__card-assessments-summary--elapsed-time {
  margin-bottom: 0.1em;
}

.changes__card-assessment-summary-below-main + .changes__card-discharge-timeline-below {
  margin-top: calc(-1rem + 0.25rem);
}

.changes__card-dates-details-row {
  display: grid;
  gap: 1rem;
  align-items: start;
  width: 100%;
  box-sizing: border-box;
}

.changes__card-dates-details-row--both {
  /* First column width through header date band; second column starts at payer — details labels pad to diagnosis */
  grid-template-columns: var(--changes-card-dates-col-max-for-payer-align) minmax(0, 1fr);
  column-gap: var(--changes-card-dates-details-col-gap);
  row-gap: 1rem;
  align-items: start;
}

.changes__card-dates-details-row--both .changes__card-detail-box--details {
  padding-left: var(--changes-card-details-label-col-for-diagnosis);
  box-sizing: border-box;
}

.changes__card-dates-details-row--dates-only {
  grid-template-columns: minmax(min-content, var(--changes-card-dates-col-max-for-payer-align));
}

.changes__card-dates-details-row--details-only {
  grid-template-columns: minmax(0, 1fr);
  padding-left: calc(
    var(--changes-card-reason-span-to-payer-start) + var(--changes-card-details-label-col-for-diagnosis)
  );
  box-sizing: border-box;
}

.changes__card-detail-box {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  --changes-card-detail-label-value-gap: 0.5em;
}

/* Dates | Details: bold label + value on one line; gap after label; wrapped lines start at row left (label edge) */
.changes__card-detail-box .changes__card-payer-change-field {
  display: block;
  line-height: 1.35;
}

.changes__card-detail-box .changes__card-payer-change-field-label {
  display: inline;
  padding-top: 0;
  margin-right: var(--changes-card-detail-label-value-gap);
  white-space: normal;
}

.changes__card-detail-box .changes__card-payer-change-field-value {
  display: inline;
  line-height: 1.35;
}

.changes__card-detail-box--dates .changes__card-payer-change-fields,
.changes__card-detail-box--details .changes__card-payer-change-fields {
  padding-left: 0;
}

.changes__card-detail-box--dates .changes__card-payer-change-fields {
  padding-right: 0;
}

.changes__card-discharge-timeline-below {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: 0;
  width: 100%;
}

/* Full detail-column width; right inset matches header caret band (row pad + expand control) */
.changes__card-discharge-timeline-track {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  min-width: 0;
  padding-right: var(--changes-card-timeline-pad-right);
}

.changes__card-discharge-timeline-track .discharge-timeline--compact {
  max-width: none;
  width: 100%;
}

.changes__card-detail-row {
  display: grid;
  grid-template-columns: var(--changes-card-detail-label-col-width) minmax(0, 1fr);
  column-gap: 0.5rem;
  align-items: start;
  padding: 0.35rem 0;
  font-size: 14px;
}

.changes__card-detail-label {
  font-weight: 600;
  color: var(--card-detail-label-color);
  min-width: 0;
}

.changes__card-detail-value {
  color: var(--card-detail-value-color);
  min-width: 0;
}

.changes__card-detail-row--discharge-timeline {
  align-items: center;
}

.changes__card-detail-value--discharge-timeline {
  padding-right: 20px;
  box-sizing: border-box;
  min-width: 0;
}

/* Discharge notification: 3-day local window timeline (see discharge_timeline_controller.js) */
.discharge-timeline {
  --dt-fill-left: 0%;
  --dt-fill-right: 0%;
  --dt-fill-width: 0%;
  --dt-discharge-pct: 0%;
  --dt-caption-start: 0%;
  --dt-caption-end: 0%;
  --dt-divider-overhang: 8px;
  --dt-midnight-width: 6px;
  --dt-track-tail: 0px;
  position: relative;
  margin-top: 0.75rem;
  max-width: 100%;
  /* Room for midnight/red lines that extend past the bar */
  padding-top: var(--dt-divider-overhang);
}

.discharge-timeline--compact {
  --dt-divider-overhang: 5px;
  --dt-midnight-width: 4px;
  --dt-track-tail: 14px;
  margin-top: 0;
  width: 100%;
  max-width: 100%;
}

.discharge-timeline--compact .discharge-timeline__track {
  border-width: 2px;
  border-right: none;
  border-radius: 10px 0 0 10px;
}

.discharge-timeline--compact .discharge-timeline__fill.discharge-timeline__fill--from-bar-start {
  border-radius: 6px 0 0 6px;
}

.discharge-timeline--compact .discharge-timeline__discharge-tick {
  width: 6px;
}

.discharge-timeline--compact .discharge-timeline__segment-grid {
  min-height: 0.9375rem;
}

.discharge-timeline--compact .discharge-timeline__cell {
  font-size: 12px;
  padding: 0.1rem 0.1rem;
}

.discharge-timeline--compact .discharge-timeline__end-marker {
  width: 8px;
  margin-right: -4px;
  border-radius: 2px;
}

.discharge-timeline--compact .discharge-timeline__captions {
  min-height: 2rem;
  margin-top: 0.1rem;
  font-size: 11px;
}

.discharge-timeline--compact .discharge-timeline__return-beside {
  font-size: 11px;
}

.discharge-timeline__track-row {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.35rem;
  width: 100%;
  margin-bottom: var(--dt-divider-overhang);
}

.discharge-timeline__track-row > .discharge-timeline__track {
  flex: 1 1 auto;
  width: 100%;
  max-width: 100%;
  margin-bottom: 0;
}

.discharge-timeline--past-third-midnight .discharge-timeline__track-row > .discharge-timeline__track {
  flex: 0 0 80%;
  width: 80%;
  max-width: 80%;
}

.discharge-timeline__return-beside {
  display: none;
  flex: 1 1 auto;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
  align-items: flex-end;
  text-align: right;
  align-self: stretch;
  font-size: inherit;
  color: var(--card-detail-value-color);
  line-height: 1.15;
}

.discharge-timeline--past-third-midnight .discharge-timeline__return-beside:not([hidden]) {
  display: flex;
}

.discharge-timeline__return-beside-label {
  display: block;
  font-weight: 400;
  letter-spacing: 0;
}

.discharge-timeline__return-beside-time {
  display: block;
  font-weight: 400;
  letter-spacing: 0;
  margin-top: 0.1em;
  white-space: nowrap;
}

.discharge-timeline--past-third-midnight .discharge-timeline__captions {
  width: 80%;
  max-width: 80%;
}

.discharge-timeline__track {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  position: relative;
  margin-bottom: var(--dt-divider-overhang);
  border: 2px solid #000;
  border-right: none;
  border-radius: 14px 0 0 14px;
  overflow: visible;
  background: #fff;
}

.discharge-timeline__track-window {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
}

.discharge-timeline__track-tail {
  position: relative;
  flex: 0 0 var(--dt-track-tail);
  width: var(--dt-track-tail);
  min-width: var(--dt-track-tail);
  align-self: stretch;
  background: #fff;
}

/* Purple continues here when current time is past the third midnight (see discharge_timeline_controller.js) */
.discharge-timeline__fill-tail {
  position: absolute;
  inset: 0;
  background: var(--elapsed-time-color);
  opacity: 0;
  pointer-events: none;
  z-index: 0;
  transition: opacity 0.15s ease;
}

.discharge-timeline__fill-tail.discharge-timeline__fill-tail--active {
  opacity: 1;
}

/* Clips fill + labels to rounded rect; midnight/red lines sit outside so they can overhang */
.discharge-timeline__track-clip {
  position: relative;
  z-index: 0;
  overflow: hidden;
  border-radius: 11px 0 0 11px;
}

.discharge-timeline--compact .discharge-timeline__track-clip {
  border-radius: 8px 0 0 8px;
}

.discharge-timeline__midnight-dividers {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 2;
}

/* Captions use the same horizontal scale as the 3-day window (excluding right tail) */
.discharge-timeline__captions {
  position: relative;
  width: calc(100% - var(--dt-track-tail));
  max-width: calc(100% - var(--dt-track-tail));
  box-sizing: border-box;
  min-height: 2.75rem;
  margin-top: 0.35rem;
  font-size: 14px;
  color: var(--card-detail-value-color);
}

.discharge-timeline__caption-label {
  display: block;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.15;
}

.discharge-timeline__caption-time {
  display: block;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.15;
  margin-top: 0.1em;
}

.discharge-timeline__midnight-line {
  position: absolute;
  top: calc(-1 * var(--dt-divider-overhang));
  bottom: calc(-1 * var(--dt-divider-overhang));
  width: var(--dt-midnight-width);
  margin-left: 0;
  transform: translateX(-50%);
  background: #000;
  border-radius: 1px;
}

.discharge-timeline__midnight-line:nth-child(1) {
  left: calc(100% / 3);
}

.discharge-timeline__midnight-line:nth-child(2) {
  left: calc(200% / 3);
}

.discharge-timeline__fill {
  position: absolute;
  top: 0;
  bottom: 0;
  left: var(--dt-fill-left);
  width: var(--dt-fill-width);
  background: var(--elapsed-time-color);
  border-radius: 0;
  z-index: 0;
}

.discharge-timeline__fill.discharge-timeline__fill--from-bar-start {
  border-radius: 10px 0 0 10px;
}

.discharge-timeline__discharge-tick {
  position: absolute;
  top: 0;
  bottom: 0;
  left: var(--dt-discharge-pct);
  width: 8px;
  transform: translateX(-50%);
  background: var(--elapsed-time-color);
  border-radius: 2px;
  z-index: 2;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
}

.discharge-timeline__discharge-tick.discharge-timeline__discharge-tick--visible {
  opacity: 1;
  visibility: visible;
}

.discharge-timeline--no-purple .discharge-timeline__segment-grid--white {
  visibility: hidden;
}

.discharge-timeline[data-before-window] .discharge-timeline__caption--end {
  display: none;
}

.discharge-timeline__segment-grid-wrap {
  position: relative;
  z-index: 1;
}

.discharge-timeline__segment-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  align-items: center;
  min-height: 1.375rem;
}

.discharge-timeline__segment-grid--black {
  position: relative;
  color: #000;
}

.discharge-timeline__segment-grid--white {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  pointer-events: none;
  color: #fff;
  clip-path: inset(0 calc(100% - var(--dt-fill-right)) 0 var(--dt-fill-left));
}

.discharge-timeline__cell {
  text-align: center;
  font-weight: 700;
  font-size: calc(1rem + 2px);
  line-height: 1.15;
  padding: 0.25rem 0.15rem;
}

.discharge-timeline__end-marker {
  position: absolute;
  right: 0;
  top: calc(-1 * var(--dt-divider-overhang));
  bottom: calc(-1 * var(--dt-divider-overhang));
  width: 12px;
  margin-right: -6px;
  background: #e31b23;
  border-radius: 3px;
  z-index: 2;
  pointer-events: none;
}

.discharge-timeline__caption {
  position: absolute;
  top: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  line-height: 1.15;
  white-space: normal;
  max-width: 42%;
}

.discharge-timeline__caption--start {
  left: var(--dt-caption-start);
  transform: none;
  align-items: flex-start;
  text-align: left;
}

.discharge-timeline__caption--end {
  left: var(--dt-caption-end);
  transform: translateX(-100%);
  align-items: flex-end;
  text-align: right;
}

.discharge-timeline__sr {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}


/* Questions area */
/* Questions panel: inset matches Assessments (0.75 top; bottom 0—last row’s padding-bottom closes the band) */
.changes__card-questions {
  display: none;
  background: #e8f0fb;
  margin: 0.5rem 0.375rem 0 0.375rem;
  padding: 0.75rem 1.25rem 0;
  gap: 1.25rem;
}

/* Options (Quarterly/Annual): pale sage — same lightness as Questions blue, distinct from Assessments gray */
.changes__card-questions--options {
  background: #e8f3ee;
}

.changes__card--expanded .changes__card-questions {
  display: flex;
  align-items: baseline;
}

.changes__card-questions.changes__card-questions--single {
  gap: 0;
}

/* Single question only: baseline-align label ↔ first line inside one stripe (avoid two sibling flex cols + asymmetric cross-size); pill row centers beside text below */
.changes__card-questions-strip {
  display: flex;
  flex-direction: row;
  align-items: baseline;
  gap: 1.25rem;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.changes__card-questions-label {
  flex: 0 0 var(--changes-card-sidebar-w, 187.5px);
  font-size: 14pt;
  font-weight: 700;
  color: var(--card-detail-label-color);
}

.changes__card-questions-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0;
  min-width: 0;
  padding-left: var(--changes-card-header-patient-extra);
  box-sizing: border-box;
}

.changes__card-question-divider {
  border: none;
  border-top: 1px solid #ccc;
  margin: 0;
}

.changes__card-questions-content > .changes__card-question-divider {
  margin-left: var(--changes-card-question-assessment-title-align-shift);
  width: calc(100% - var(--changes-card-question-assessment-title-align-shift));
  box-sizing: border-box;
}

/* Match Assessments: symmetric band above/below hr between rows */
.changes__card-questions-content > .changes__card-question-divider + .changes__card-question {
  padding-top: 0.75rem;
}

.changes__card-question {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding-top: 0;
  padding-bottom: 0.75rem;
  box-sizing: border-box;
}

.changes__card-question:has(.changes__card-question-textarea) {
  align-items: flex-start;
}

.changes__card-question-text {
  flex: 1;
  margin-left: var(--changes-card-question-assessment-title-align-shift);
  font-size: 12pt;
  font-weight: 400;
  color: #333;
}

.changes__card-question-buttons {
  display: inline-flex;
  flex-wrap: nowrap;
  gap: 0.5rem;
  align-items: stretch;
  flex-shrink: 0;
  box-sizing: border-box;
  /* Outer edges match .changes__card-assessment-actions min width; row grows for longer labels (single-line). */
  min-width: var(--changes-card-assessment-acknowledge-pill-width, 10.8rem);
  max-width: 100%;
}

/* Yes/No / two-choice (compact): each column at least half the assessment pill minus gap */
.changes__card-question-buttons:not(.changes__card-question-buttons--twin-assessment-pills):has(> form:first-child:nth-last-child(2)) > form {
  min-width: calc((var(--changes-card-assessment-acknowledge-pill-width, 10.8rem) - 0.5rem) / 2);
}

/* Long two-choice labels (.changes__card-question-buttons--twin-assessment-pills from partial): twin columns = Open assessment width each; trailing edge aligns with .changes__card-assessment-actions */
.changes__card-question-buttons.changes__card-question-buttons--twin-assessment-pills {
  display: inline-grid;
  grid-template-columns: repeat(
    2,
    minmax(0, var(--changes-card-assessment-acknowledge-pill-width, 10.8rem))
  );
}

.changes__card-question-buttons.changes__card-question-buttons--twin-assessment-pills > form {
  display: flex;
  flex: none;
  width: 100%;
  min-width: 0;
}

/* Three+ choices: only the group has a pill-width floor; tracks share intrinsic width evenly. */
.changes__card-question-buttons:not(.changes__card-question-buttons--twin-assessment-pills) > form {
  display: flex;
  flex: 1 1 0;
  min-width: 0;
  margin: 0;
  box-sizing: border-box;
}

.changes__card-question-buttons > form .changes__card-question-btn {
  width: 100%;
  flex: none;
  margin: 0;
}

.changes__card-question-btn {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--changes-card-pill-btn-padding-block, 8px) 20px;
  min-height: var(--changes-card-pill-btn-min-height, 2.5rem);
  white-space: nowrap;
  font-size: 12pt;
  font-weight: 400;
  color: #333;
  background: #fff;
  border: 1.5px solid #333;
  border-radius: 20px;
  cursor: pointer;
  font-family: inherit;
  transition: background-color 0.15s ease, border-color 0.15s ease;
}

.changes__card-question-btn:hover {
  background: #f0f0f0;
}

.changes__card-question-btn--selected {
  background: #1a73e8;
  color: #fff;
  border-color: #1a73e8;
}

.changes__card-question-btn--selected:hover {
  background: #1565c0;
}

.changes__card-question-buttons--question-options .changes__card-question-btn {
  background: var(--question-option-unselected);
}

.changes__card-question-buttons--question-options .changes__card-question-btn--selected {
  background: var(--question-option-selected);
  color: #fff;
  border-color: var(--question-option-selected);
}

.changes__card-question-buttons--question-options .changes__card-question-btn--selected:hover {
  background: var(--question-option-selected);
  border-color: var(--question-option-selected);
}

/* Managed care company: label + field on one row; field matches Open assessment / Mark as complete width */
.changes__card-question:has(.changes__card-autocomplete-field) .changes__card-question-text {
  flex: 1;
  min-width: 0;
}

.changes__card-question:has(.changes__card-autocomplete-field) .changes__card-question-text-input {
  flex: 0 0 var(--changes-card-assessment-acknowledge-pill-width, 13rem);
  width: var(--changes-card-assessment-acknowledge-pill-width, 13rem);
  min-width: 0;
  max-width: min(100%, var(--changes-card-assessment-acknowledge-pill-width, 13rem));
}

.changes__card-question:has(.changes__card-autocomplete-field) .changes__card-question-text-input form {
  flex: 1;
  min-width: 0;
  width: 100%;
}

.changes__card-question:has(.date-picker) .changes__card-question-text {
  flex: 1 1 12rem;
  min-width: 0;
}

.changes__card-question:has(.date-picker) .changes__card-question-text-input {
  flex: 0 0 var(--changes-card-assessment-acknowledge-pill-width, 13rem);
  width: var(--changes-card-assessment-acknowledge-pill-width, 13rem);
  min-width: 0;
  max-width: min(100%, var(--changes-card-assessment-acknowledge-pill-width, 13rem));
}

.changes__card-question:has(.date-picker) .changes__card-question-text-input > *,
.changes__card-question:has(.date-picker) .changes__card-question-text-input form,
.changes__card-question:has(.date-picker) .changes__card-question-text-input .date-picker,
.changes__card-question:has(.date-picker) .changes__card-question-text-input .date-picker__field {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.changes__card-question-text-input {
  display: flex;
  gap: 0.5rem;
  align-items: center;
  flex-shrink: 0;
}

.changes__card-question-textarea {
  flex: 1;
  padding: 6px 10px;
  font-size: 12pt;
  font-family: inherit;
  border: 1px solid #ccc;
  resize: vertical;
}

.changes__card-autocomplete-field {
  position: relative;
  flex: 1;
  min-width: 0;
  width: 100%;
}

.changes__card-question-textfield {
  width: 100%;
  box-sizing: border-box;
  padding: 6px 10px;
  font-size: 12pt;
  font-family: inherit;
  border: 1px solid #ccc;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.changes__card-autocomplete-list {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 20;
  margin: 2px 0 0;
  padding: 0;
  list-style: none;
  max-height: 220px;
  overflow-y: auto;
  background: #fff;
  border: 1px solid #ccc;
  border-radius: 2px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

.changes__card-autocomplete-item {
  margin: 0;
}

.changes__card-autocomplete-btn {
  display: block;
  width: 100%;
  padding: 8px 10px;
  border: none;
  background: none;
  font: inherit;
  font-size: 12pt;
  text-align: left;
  cursor: pointer;
  color: inherit;
}

.changes__card-autocomplete-btn:hover,
.changes__card-autocomplete-btn:focus {
  background: #e8f0fe;
  outline: none;
}

.changes__card-autocomplete-btn--highlighted {
  background: #d2e3fc;
  outline: none;
}

.changes__card-autocomplete-btn--highlighted:hover {
  background: #c5d9fa;
}

/* Assessments: top inset matches intra-row band (0.75). Bottom 0—last row’s padding-bottom closes the band. */
.changes__card-assessments {
  display: none;
  background: #f5f5f5;
  margin: 0.5rem 0.375rem 0 0.375rem;
  padding: 0.75rem 1.25rem 0;
  gap: 1.25rem;
}

.changes__card--expanded .changes__card-assessments {
  display: flex;
  align-items: baseline;
}

/* No assessment rows yet (waiting on answers) or empty-state copy only: symmetric band */
.changes__card--expanded .changes__card-assessments.changes__card-assessments--idle {
  align-items: center;
  padding-bottom: 0.75rem;
}

.changes__card-assessments-label-group {
  flex: 0 0 var(--changes-card-sidebar-w, 187.5px);
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.changes__card-assessments-label {
  font-size: 14pt;
  font-weight: 700;
  color: var(--card-detail-label-color);
}

.changes__card-assessment--pcc-verify .changes__card-assessment-main {
  visibility: hidden;
}

.changes__card-pcc-verify {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.2rem;
  width: 100%;
  text-align: right;
}

.changes__card-pcc-verify-link {
  color: var(--title-bar-color, #4D68A7);
  font: inherit;
  font-size: calc(12pt * 0.8);
  font-weight: 400;
  line-height: 1.35;
  text-decoration: underline;
  text-underline-offset: 0.15em;
  white-space: nowrap;
}

.changes__card-pcc-verify-link:hover {
  color: #3c4043;
}

.changes__card-pcc-verify-message {
  margin: 0;
  font-size: 12pt;
  font-weight: 400;
  line-height: 1.35;
  text-align: right;
}

.changes__card-pcc-verify-message--running {
  color: #1a73e8;
}

.changes__card-pcc-verify-message--success {
  color: #2e7d32;
}

.changes__card-pcc-verify-message--error {
  color: #b3261e;
}

.changes__card-assessments-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  /* Dividers rely on symmetric padding on .changes__card-assessment; outer gap stacks unevenly around <hr> */
  gap: 0;
  min-width: 0;
  padding-left: var(--changes-card-header-patient-extra);
  box-sizing: border-box;
}

.changes__card-pipeline {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 0.35rem 0 0.65rem;
}

.changes__card-pipeline-stage {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  min-width: 0;
  font-size: 12pt;
  font-weight: 700;
  color: var(--title-bar-color, #4D68A7);
}

.changes__card-pipeline-dot {
  flex-shrink: 0;
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  background: #2d4a7c;
  outline: 1px solid #2d4a7c;
  outline-offset: 2px;
  transform: translateY(0.12rem);
}

.changes__card-pipeline--queued .changes__card-pipeline-dot {
  background: transparent;
  outline-offset: 0;
}

.changes__card-pipeline--failed .changes__card-pipeline-dot,
.changes__card-pipeline--failed .changes__card-pipeline-stage {
  color: #b42318;
}

.changes__card-pipeline--failed .changes__card-pipeline-dot {
  background: #b42318;
  outline: none;
}

.changes__card-pipeline-detail,
.changes__card-pipeline-elapsed {
  font-weight: 400;
  color: #2d4a7c;
  font-variant-numeric: tabular-nums;
}

.changes__card-pipeline-failed {
  font-weight: 400;
  color: #b42318;
}

.changes__card-pipeline-progress-bar {
  animation: none;
}

.changes__card-pipeline-block + .changes__card-pipeline-block {
  margin-top: 0.55rem;
}

.changes__card-pipeline-block--queued .changes__card-pipeline-stage,
.changes__card-pipeline-block--queued .changes__card-pipeline-elapsed {
  color: #8a8f96;
  font-weight: 500;
}

.changes__card-pipeline-block--queued .changes__card-pipeline-dot {
  background: transparent;
  outline-offset: 0;
}

.changes__card-pipeline-block--done .changes__card-pipeline-stage,
.changes__card-pipeline-block--done .changes__card-pipeline-elapsed {
  color: #2d4a7c;
}

.changes__card-pipeline-block--done .changes__card-pipeline-dot {
  background: #2d4a7c;
  outline: none;
}

.changes__card-assessment-progress-bar.changes__card-pipeline-progress-bar--timed {
  width: 0;
  animation: changes-card-assessment-open-progress var(--sim-duration, 1.5s) linear forwards;
}

.changes__card-assessments-empty {
  display: block;
  margin-left: var(--changes-card-question-assessment-title-align-shift);
  font-size: 14px;
  color: #666;
  box-sizing: border-box;
}

/* Notes after empty: trailing band aligns with empty-state bottom */
.changes__card-assessments-content > .changes__card-assessment-note:last-child {
  display: block;
  padding-bottom: 1rem;
  box-sizing: border-box;
}

.changes__card-assessments-summary {
  display: block;
  font-size: 12pt;
  font-weight: 500;
  color: #1a73e8;
  /* Match Dates | Details column values (.changes__card-detail-box .changes__card-payer-change-field-value) */
  line-height: 1.35;
  /* ~half a line below the summary; element omitted when summary blank so no extra space */
  margin-bottom: 0.675em;
}

.changes__card-assessment {
  display: flex;
  align-items: baseline;
  gap: 1rem;
  /* Space to hr below; divider + sibling rule adds matching padding-top between bands */
  padding-top: 0;
  padding-bottom: 0.75rem;
}

.changes__card-assessments-content > .changes__card-question-divider {
  margin-left: var(--changes-card-question-assessment-title-align-shift);
  width: calc(100% - var(--changes-card-question-assessment-title-align-shift));
  box-sizing: border-box;
}

.changes__card-assessments-content > .changes__card-question-divider + .changes__card-assessment {
  padding-top: 0.75rem;
}

.changes__card-assessment-main {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  min-width: 0;
}

.changes__card-assessment-name {
  display: block;
  min-width: 0;
  margin-left: var(--changes-card-question-assessment-title-align-shift);
  font-size: 12pt;
  font-weight: 700;
  color: var(--card-detail-label-color);
}

.changes__card-assessment-heading {
  display: inline-flex;
  align-items: baseline;
  flex: 0 1 auto;
  min-width: 0;
  margin-left: var(--changes-card-question-assessment-title-align-shift);
  gap: 0.55rem;
}

.changes__card-assessment-heading .changes__card-assessment-name {
  margin-left: 0;
}

.changes__card-assessment-heading .changes__card-step-omit {
  margin-left: 0;
}

.changes__card-assessment-delete-advice {
  margin-left: var(--changes-card-question-assessment-title-align-shift);
  font-size: 12pt;
  font-weight: 400;
  color: var(--card-detail-value-color);
  line-height: 1.35;
}

/* Keep "Delete:" and title on one line (.changes__card-assessment-name is display:block elsewhere) */
.changes__card-assessment-delete-advice .changes__card-assessment-name {
  display: inline;
  min-width: 0;
  margin-left: 0;
}

.changes__card-assessment-ard {
  display: block;
  margin-left: var(--changes-card-question-assessment-title-align-shift);
  font-size: 12pt;
  font-weight: 400;
  color: var(--card-detail-secondary-value-color);
  line-height: 1.35;
}

.changes__card-assessment-note {
  display: block;
  margin-left: var(--changes-card-question-assessment-title-align-shift);
  font-size: 14.4px;
  font-weight: 700;
  color: #c62828;
}

.changes__card-assessment-actions:not(:has(> :not([hidden]))) {
  display: none;
}

.changes__card-assessment-btn {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 100%;
  padding: var(--changes-card-pill-btn-padding-block, 8px) 24px;
  min-height: var(--changes-card-pill-btn-min-height, 2.5rem);
  font-size: 14px;
  font-weight: 500;
  color: #fff;
  background: var(--assessment-button-color);
  border: 1.5px solid transparent;
  border-radius: 20px;
  cursor: pointer;
  font-family: inherit;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color 0.15s ease;
}

.changes__card-assessment-btn:hover {
  background: var(--assessment-button-color);
}

.changes__card-assessment-actions {
  flex-shrink: 0;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  /* Definite width so <a> and button_to forms share one column; avoids cyclic % sizing */
  width: var(--changes-card-assessment-acknowledge-pill-width, 10.8rem);
  max-width: 100%;
  min-width: 0;
}

/* Rails button_to wraps the control in a form; match pill width so Open assessment aligns with links */
.changes__card-assessment-actions > form {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  align-self: stretch;
  margin: 0;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.changes__card-assessment-actions > .changes__card-assessment-btn {
  align-self: stretch;
}

/* Rails button_to: <form><button> — avoid flex-grow/shrink so submit matches <a> pill height */
.changes__card-assessment-actions > form .changes__card-assessment-btn {
  width: 100%;
  flex: none;
  margin: 0;
  height: var(--changes-card-pill-btn-min-height, 2.5rem);
  min-height: var(--changes-card-pill-btn-min-height, 2.5rem);
  line-height: 1.2;
  appearance: none;
  -webkit-appearance: none;
}

.changes__card-assessment-status {
  font-size: 13px;
  color: #888;
  font-weight: 500;
}

.changes__card-assessment-status--completed {
  color: #2e7d32;
}

.changes__card-assessment-status--in-progress {
  color: #1a73e8;
}

.changes__card-assessment-status--detail {
  font-size: 12pt;
  font-weight: 400;
  color: var(--card-detail-secondary-value-color);
  text-align: right;
  white-space: nowrap;
}

.changes__card-assessment-status--not-found {
  font-size: 12pt;
  font-weight: 500;
  color: #b3261e;
  text-align: right;
}

.changes__card-assessment--mismatch {
  position: relative;
}

.changes__card-assessment--mismatch::before {
  content: "";
  position: absolute;
  z-index: 0;
  top: 0;
  bottom: 0;
  left: calc(var(--changes-card-question-assessment-title-align-shift) - 0.4rem);
  right: -0.75rem;
  background: #fdecea;
  border-radius: 6px;
  pointer-events: none;
}

.changes__card-assessments-content > .changes__card-pcc-problem + .changes__card-assessment--mismatch::before,
.changes__card-assessments-content > .changes__card-assessment--mismatch:first-child::before {
  top: -0.5rem;
}

.changes__card-assessment--mismatch > * {
  position: relative;
  z-index: 1;
}

.changes__card-pcc-problem {
  margin: 0 0 0.75rem var(--changes-card-question-assessment-title-align-shift);
  color: #b3261e;
  font-size: 12pt;
  font-weight: 600;
}

.changes__card-assessment-status--skipped {
  color: #8a8f96;
  font-size: 12pt;
  font-weight: 500;
}

.changes__card-step-omit {
  appearance: none;
  display: inline;
  margin-left: 0.55rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: #8a8f96;
  font: inherit;
  font-size: 12pt;
  font-weight: 500;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.changes__card-step-omit:hover {
  color: #3c4043;
}

.changes__card-assessment-instruction {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.2rem;
}

.changes__card-assessment-guide-link {
  appearance: none;
  display: inline;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--title-bar-color, #4D68A7);
  font: inherit;
  font-size: calc(12pt * 0.8);
  font-weight: 500;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 0.15em;
  white-space: nowrap;
}

.changes__card-assessment-guide-link:hover {
  color: #3c4043;
}

.changes__card-assessment-actions:has(.changes__card-assessment-instruction),
.changes__card-assessment-actions:has(.changes__card-assessment-status--detail),
.changes__card-assessment-actions:has(.changes__card-assessment-status--success) {
  width: auto;
  max-width: 28rem;
}

body[data-show-assessment-open-steps="false"] .assessment-open-guide {
  display: none;
}

.assessment-open-guide__dialog-label {
  margin: 0 0 0.5rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #5f6368;
}

.assessment-open-guide__field--decisive th,
.assessment-open-guide__field--decisive td {
  background: #f3f6fb;
}

.assessment-open-guide__after {
  margin: 1rem 0 0;
  font-size: 0.8125rem;
  color: #5f6368;
}

.changes__card-assessment-waiting {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  width: 100%;
}

.changes__card-assessment-batch-btn {
  font-weight: 700;
}

.changes__card-assessment--plan-action {
  justify-content: flex-end;
}

.changes__card-assessment--plan-action .changes__card-assessment-actions {
  align-items: stretch;
}

.changes__card-assessment--plan-action .changes__card-assessment-btn {
  width: 100%;
}

.changes__card-assessment--batch {
  display: block;
}

.changes__card-assessment-batch-wrap {
  box-sizing: border-box;
  margin-left: var(--changes-card-question-assessment-title-align-shift);
  width: calc(100% - var(--changes-card-question-assessment-title-align-shift));
}

.changes__card-assessment--batch .changes__card-assessment-batch-btn {
  width: 100%;
}

.changes__card-assessment-batch-btn:hover {
  filter: brightness(1.06);
}

.changes__card-assessment-batch-btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  filter: none;
}

.changes__card-assessment-running {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  align-self: stretch;
  gap: 0.35rem;
  width: 100%;
}

.changes__card-assessment-progress {
  width: 100%;
  height: 3px;
  background: rgba(45, 74, 124, 0.15);
  border-radius: 999px;
  overflow: hidden;
}

.changes__card-assessment-progress-bar {
  display: block;
  height: 100%;
  width: 0;
  background: #2d4a7c;
  border-radius: 999px;
  animation: changes-card-assessment-open-progress 15s linear forwards;
}

@keyframes changes-card-assessment-open-progress {
  from { width: 0%; }
  to { width: 100%; }
}

.changes__card-assessment-status--success {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.35rem;
  font-size: 12pt;
  font-weight: 700;
  color: var(--title-bar-color, #4D68A7);
  text-align: right;
}

.changes__card-assessment-status--success .changes__card-assessment-check {
  color: #2e7d32;
}

.changes__card-assessment-check {
  font-weight: 700;
}

.changes__card-assessment-spinner {
  width: 0.875rem;
  height: 0.875rem;
  border: 2px solid rgba(26, 115, 232, 0.25);
  border-top-color: #1a73e8;
  border-radius: 50%;
  animation: changes-card-assessment-spin 0.8s linear infinite;
}

@keyframes changes-card-assessment-spin {
  to { transform: rotate(360deg); }
}

.changes__card-assessment-error-group {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.5rem;
}

.changes__card-assessment-error {
  color: #c62828;
  font-size: 0.8125rem;
  max-width: 14rem;
  text-align: right;
}

.changes__card-assessment-error-detail {
  color: #8d2f2f;
  font-size: 0.75rem;
  max-width: 14rem;
  text-align: right;
}

.changes__card-assessment-status--blocked {
  color: #666;
  font-size: 0.8125rem;
  text-align: right;
}

.assessment-create-modal__backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  padding: 1rem;
}

.assessment-create-modal {
  background: #fff;
  color: #202124;
  border-radius: 8px;
  width: min(640px, 100%);
  max-height: 90vh;
  overflow: auto;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.2);
}

.assessment-create-modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid #e0e0e0;
}

.assessment-create-modal__title {
  margin: 0;
  font-size: 1.125rem;
}

.assessment-create-modal__close {
  border: none;
  background: transparent;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
}

.assessment-create-modal__body {
  padding: 1rem 1.25rem;
}

.assessment-create-modal__summary {
  margin: 0 0 1rem;
}

.assessment-create-modal__batch-step {
  margin: -0.5rem 0 1rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #5f6368;
}

.assessment-create-modal__fields {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
}

.assessment-create-modal__fields th {
  text-align: left;
  vertical-align: top;
  padding: 0.35rem 0.75rem 0.35rem 0;
  width: 55%;
  font-weight: 600;
}

.assessment-create-modal__fields td {
  padding: 0.35rem 0;
}

.assessment-create-modal__footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem 1.25rem;
  border-top: 1px solid #e0e0e0;
}

.assessment-create-modal__footer-left,
.assessment-create-modal__footer-right {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.assessment-create-modal--confirm {
  width: min(420px, 100%);
}

.assessment-create-modal__footer--confirm {
  justify-content: flex-end;
}

.assessment-create-modal__update-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.assessment-create-modal__edit-btn,
.assessment-create-modal__update-btn,
.assessment-create-modal__cancel-update-btn {
  border-radius: 999px;
  padding: 0.5rem 1.25rem;
  font-size: 0.875rem;
  cursor: pointer;
  background: #fff;
  color: #202124;
  border: 1px solid #ccc;
}

.assessment-create-modal__input,
.assessment-create-modal__select {
  width: 100%;
  max-width: 320px;
  font-size: 0.875rem;
  padding: 0.35rem 0.5rem;
  border: 1px solid #ccc;
  border-radius: 4px;
}

.assessment-create-modal__create-btn,
.assessment-create-modal__cancel-btn {
  border-radius: 999px;
  padding: 0.5rem 1.25rem;
  font-size: 0.875rem;
  cursor: pointer;
}

.assessment-create-modal__create-btn {
  background: var(--assessment-button-color, #1a73e8);
  color: #fff;
  border: none;
  outline: none;
  box-shadow: none;
}

.assessment-create-modal__create-btn:focus,
.assessment-create-modal__create-btn:focus-visible,
.assessment-create-modal__create-btn:active {
  outline: none;
  box-shadow: none;
  border: none;
}

a.assessment-create-modal__create-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  box-sizing: border-box;
}

.assessment-create-modal__cancel-btn {
  background: #fff;
  color: #202124;
  border: 1px solid #ccc;
}

.assessment-create-modal__create-btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.assessment-create-modal__summary-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.35rem 1.5rem;
  margin: 0 0 1rem;
  padding: 0;
}

.assessment-create-modal__summary-item {
  display: contents;
}

.assessment-create-modal__summary-item dt {
  margin: 0;
  font-size: 10pt;
  font-weight: 600;
  color: #5f6368;
}

.assessment-create-modal__summary-item dd {
  margin: 0 0 0.35rem;
  font-size: 11pt;
  color: #202124;
}

.schedule-forms-modal {
  width: min(860px, 100%);
}

.schedule-forms-modal__items {
  max-height: min(50vh, 24rem);
  overflow: auto;
  border: 1px solid #e0e0e0;
  border-radius: 6px;
}

.schedule-forms-modal__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
  table-layout: fixed;
}

.schedule-forms-modal__table thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: #f8f9fa;
  text-align: left;
  font-weight: 600;
  padding: 0.5rem 0.75rem;
  border-bottom: 1px solid #e0e0e0;
  white-space: nowrap;
}

.schedule-forms-modal__table tbody td {
  vertical-align: top;
  padding: 0.5rem 0.75rem;
  border-bottom: 1px solid #eee;
}

.schedule-forms-modal__table tbody tr:last-child td {
  border-bottom: none;
}

.schedule-forms-modal__form-cell {
  width: 50%;
  word-break: break-word;
}

.schedule-forms-modal__table th:not(:first-child),
.schedule-forms-modal__table td:not(:first-child) {
  white-space: nowrap;
}

.schedule-forms-modal__success {
  margin: 0.75rem 0 0;
  font-size: 0.9375rem;
  font-weight: 600;
  color: #1e7e34;
}

.schedule-forms-modal__success--error {
  color: #b42318;
}

.schedule-forms-modal__summary-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.75rem;
}

.schedule-forms-modal__summary-row .schedule-forms-modal__summary {
  margin: 0;
  flex: 1 1 auto;
  min-width: 0;
}

.schedule-forms-modal__recalculate-btn {
  appearance: none;
  flex: 0 0 auto;
  margin: 0;
  padding: 0.25rem 0.65rem;
  border: 1px solid #dadce0;
  border-radius: 999px;
  background: #fff;
  color: #1f2937;
  font: inherit;
  font-size: 0.8125rem;
  line-height: 1.2;
  white-space: nowrap;
  cursor: pointer;
}

.schedule-forms-modal__recalculate-btn:hover:not(:disabled) {
  background: #f8f9fa;
}

.schedule-forms-modal__recalculate-btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.schedule-forms-modal__progress {
  margin-top: 0;
  margin-bottom: 0.75rem;
}

.schedule-forms-modal__progress-running {
  width: 100%;
}

.schedule-forms-modal__progress-track {
  display: block;
  width: 100%;
}

.schedule-forms-modal__progress-label {
  display: block;
  margin-bottom: 0.35rem;
  color: #64748b;
  font-size: 12px;
}

.schedule-forms-modal__diagnosis {
  margin: 0.75rem;
  padding: 0.75rem;
  border-top: 1px solid #e0e0e0;
  color: #334155;
  font-size: 0.8125rem;
  line-height: 1.45;
}

.schedule-forms-modal__diagnosis-title {
  margin: 0 0 0.35rem;
  font-size: 0.875rem;
  font-weight: 650;
  color: #1f2937;
}

.schedule-forms-modal__diagnosis-summary {
  margin: 0 0 0.75rem;
}

.schedule-forms-modal__diagnosis-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem 1rem;
  margin: 0 0 0.75rem;
}

.schedule-forms-modal__diagnosis-stats dt {
  color: #64748b;
  font-size: 0.75rem;
}

.schedule-forms-modal__diagnosis-stats dd {
  margin: 0;
}

.schedule-forms-modal__diagnosis-list {
  margin: 0;
  padding-left: 1.1rem;
}

.schedule-forms-modal__diagnosis-list > li + li {
  margin-top: 0.45rem;
}

.schedule-forms-modal__diagnosis-list ul {
  margin: 0.2rem 0 0;
  padding-left: 1.1rem;
}

.schedule-forms-modal__diagnosis-flags {
  display: block;
  color: #64748b;
  font-size: 0.75rem;
}

.schedule-forms-modal__diagnosis-titles {
  margin: 0.65rem 0 0;
  color: #64748b;
}

.changes__card-assessment-divider {
  border: none;
  border-top: 1px solid #ccc;
  margin: 0;
}

/* Acknowledgement area — horizontal margin matches .changes__card-assessments / .changes__card-questions so pill right edge lines up */
.changes__card-acknowledge {
  display: none;
  justify-content: flex-start;
  align-items: flex-end;
  gap: 0.75rem;
  margin-left: 0.375rem;
  margin-right: 0.375rem;
  padding: 0.75rem 1.25rem;
  background: #fff;
}

.changes__card--expanded .changes__card-acknowledge {
  display: flex;
}

.changes__card-demo-coach,
.changes__empty-demo-note,
.changes__demo-note {
  position: relative;
  box-sizing: border-box;
  max-width: 18.5rem;
  padding: 0.6rem 0.9rem 0.6rem 0.75rem;
  background: #fff6d8;
  border: 1px solid #d4b44a;
  border-radius: 6px;
  color: #3f3a28;
}

.changes__card--expanded .changes__card-demo-coach,
.changes__empty-demo-note,
.changes__demo-note {
  animation: demo-note-bounce 0.7s ease;
}

.changes__empty-demo-note {
  margin-top: 0.35rem;
}

.changes__demo-note--intro {
  max-width: 28rem;
  overflow: visible;
}

.changes__demo-note--readmit {
  max-width: 28rem;
  margin-top: 0.35rem;
}

.changes__demo-note--options {
  max-width: 26rem;
  margin-bottom: 0.75rem;
  margin-left: var(--changes-card-question-assessment-title-align-shift);
}

.changes__demo-note--managed-care-admission {
  max-width: 26rem;
  margin-bottom: 0.75rem;
  margin-left: var(--changes-card-question-assessment-title-align-shift);
}

.changes__demo-note-list {
  margin: 1.6em 0 0;
  padding-left: 1.15rem;
  font-size: 13px;
  line-height: 1.4;
}

.changes__demo-note-list li + li {
  margin-top: 0.2rem;
}

.changes__demo-note-text--after {
  display: flex;
  align-items: center;
  gap: 0.35rem;
}

.changes__demo-note-turn-arrow {
  flex: 0 0 auto;
  display: block;
  height: 1.4em;
  overflow: visible;
  color: var(--title-bar-color, #4D68A7);
}

.changes__demo-note-turn-arrow svg {
  display: block;
  overflow: visible;
}

.changes__demo-note-execute {
  color: var(--title-bar-color, #4D68A7);
}

@keyframes demo-note-bounce {
  0% { transform: scale(0.86) translateY(6px); }
  45% { transform: scale(1.08) translateY(-4px); }
  70% { transform: scale(0.97) translateY(2px); }
  100% { transform: scale(1) translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
  .changes__card--expanded .changes__card-demo-coach,
  .changes__empty-demo-note,
  .changes__demo-note {
    animation: none;
  }
}

.changes__card-demo-coach-text,
.changes__demo-note-text {
  margin: 0;
  font-size: 13px;
  line-height: 1.4;
}

.changes__demo-note-text.changes__demo-note-text--break,
.changes__demo-note-text.changes__demo-note-text--after {
  margin-top: 1.6em;
}

.changes__card-demo-coach-got-it {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 0.45rem;
  padding: 0.2rem 0.65rem;
  border: 1px solid #c4a43a;
  border-radius: 4px;
  background: #fffdf4;
  color: #3f3a28;
  font-size: 12px;
  font-weight: 600;
  font-family: inherit;
  line-height: 1.2;
  cursor: pointer;
}

.changes__card-demo-coach-got-it:hover {
  background: #fff3c4;
}

.changes__card-demo-coach-arrow {
  position: absolute;
  top: 50%;
  right: -6px;
  width: 10px;
  height: 10px;
  background: #fff6d8;
  border-top: 1px solid #d4b44a;
  border-right: 1px solid #d4b44a;
  transform: translateY(-50%) rotate(45deg);
}

.changes__card-form-create {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.35rem;
  min-width: var(--changes-card-assessment-acknowledge-pill-width, 10.8rem);
}

.changes__card-form-create-running {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.35rem;
  width: var(--changes-card-assessment-acknowledge-pill-width, 10.8rem);
}

.changes__card-form-create-retry {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.35rem;
  max-width: 28rem;
}

.changes__card-acknowledge > form,
.changes__card-verify-status {
  margin-left: auto;
}

.changes__card-verify-status {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: var(--changes-card-pill-btn-min-height, 2.5rem);
  font-size: 14px;
  font-weight: 600;
  color: var(--card-detail-value-color, #1a1a1a);
}

.changes__card-verify-status--verified {
  color: #2e7d32;
}

.changes__card-acknowledge-btn--form-create[aria-disabled="true"] {
  cursor: default;
  pointer-events: none;
  opacity: 0.85;
}

.changes__card-acknowledge-btn {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: var(--changes-card-assessment-acknowledge-pill-width, 10.8rem);
  max-width: 100%;
  white-space: nowrap;
  padding: var(--changes-card-pill-btn-padding-block, 8px) 24px;
  min-height: var(--changes-card-pill-btn-min-height, 2.5rem);
  font-size: 14px;
  font-weight: 600;
  color: #fff;
  background: var(--card-button-color);
  border: none;
  border-radius: 20px;
  cursor: pointer;
  font-family: inherit;
  transition: background-color 0.15s ease;
}

.changes__card-acknowledge-btn:hover {
  color: #fff;
  background: var(--card-button-color);
}

.changes__card-question-btn,
.changes__card-assessment-btn,
.changes__card-acknowledge-btn {
  line-height: 1.2;
  height: var(--changes-card-pill-btn-min-height, 2.5rem);
  min-height: var(--changes-card-pill-btn-min-height, 2.5rem);
}

button.changes__card-question-btn,
button.changes__card-assessment-btn,
.changes__card-acknowledge-btn {
  appearance: none;
}

/* -----------------------------------------------------------------------------
   Scheduling view
   ----------------------------------------------------------------------------- */
.scheduling {
  --census-photo-size: calc(36px * 1.25 * 1.1);
  width: 100%;
  max-width: none;
  container-type: inline-size;
  container-name: residents;
}

/* Top bar – matches Changes (notifications) header */
.scheduling__top-bar {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto auto;
  align-items: center;
  gap: 1rem;
  width: 100%;
  margin: 0;
}

.scheduling.view-shell > .scheduling__top-bar {
  height: auto;
  max-height: none;
  overflow: visible;
}

.scheduling.view-shell > .scheduling__top-bar:has(.title-bar-user) {
  padding-right: var(--title-bar-trailing-inset, var(--main-content-padding));
}

.scheduling__top-bar .title-bar-brand {
  grid-column: 1;
  justify-self: start;
}

.scheduling__top-bar-title {
  grid-column: 1;
  justify-self: start;
  margin: 0;
  font-size: var(--top-bar-title-size);
  font-weight: 600;
  color: #fff;
  letter-spacing: -0.01em;
}

.scheduling__top-bar-filter {
  grid-column: 2;
  justify-self: center;
}

/* Title-bar segmented control (colored header background) */
.calendar__view-toggle--title-bar {
  border: 1px solid rgba(255, 255, 255, 0.55);
  background: rgba(255, 255, 255, 0.1);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.08);
}

.calendar__view-toggle--title-bar .calendar__view-toggle-option {
  color: rgba(255, 255, 255, 0.82);
  font-weight: 500;
}

.calendar__view-toggle--title-bar .calendar__view-toggle-option:hover:not(.calendar__view-toggle-option--selected) {
  background: rgba(255, 255, 255, 0.14);
  color: #fff;
}

.calendar__view-toggle--title-bar .calendar__view-toggle-option--selected {
  background: #fff;
  color: var(--calendar-accent, #4D68A7);
  font-weight: 700;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.18);
}

.calendar__view-toggle--title-bar .calendar__view-toggle-option--selected:hover {
  background: #fff;
  color: var(--calendar-accent, #4D68A7);
}

.scheduling__top-bar-actions {
  grid-column: 3;
  justify-self: end;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-left: 0;
  flex-shrink: 0;
}

.scheduling__top-bar .title-bar-nav {
  grid-column: 2;
  margin-left: 1.35rem;
}

.scheduling__top-bar .title-bar-end {
  grid-column: 4;
  margin-left: 0;
  justify-self: end;
}

.scheduling__top-bar .title-bar-brand,
.scheduling__top-bar .title-bar-nav,
.scheduling__top-bar .title-bar-end,
.scheduling__top-bar .scheduling__top-bar-actions {
  grid-row: 1;
  align-self: center;
}

.scheduling__top-bar:has(.scheduling__census-all-actions) .title-bar-end {
  grid-column: 3;
}

.scheduling__top-bar:has(.scheduling__census-all-actions) .scheduling__top-bar-actions {
  grid-column: 4;
}

.scheduling__top-bar .title-bar-user {
  position: relative;
  grid-column: 5;
  grid-row: 1;
  justify-self: end;
  align-self: center;
  top: auto;
  bottom: auto;
  right: auto;
  left: auto;
  margin-block: 0;
}

.scheduling__census-all-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.scheduling__census-all-actions[hidden],
.scheduling__top-bar-actions .changes__in-progress-top-bar-actions[hidden],
.scheduling__table-wrapper[hidden],
.in-progress[hidden] {
  display: none !important;
}

.census__toolbar {
  display: flex;
  padding: var(--title-bar-to-content-gap) var(--main-content-padding) 0;
  flex-shrink: 0;
  --calendar-accent: #4D68A7;
  --calendar-accent-soft: #d6e4f7;
  --calendar-accent-muted: #e8f0fb;
}

.census__toolbar a.calendar__view-toggle-option {
  text-decoration: none;
  color: #333;
}

.census__toolbar a.calendar__view-toggle-option:visited {
  color: #333;
}

.census__toolbar a.calendar__view-toggle-option:hover:not(.calendar__view-toggle-option--selected) {
  color: #333;
}

.census__toolbar a.calendar__view-toggle-option--selected,
.census__toolbar a.calendar__view-toggle-option--selected:visited,
.census__toolbar a.calendar__view-toggle-option--selected:hover {
  background: var(--calendar-accent, #4D68A7);
  color: #fff;
}

.view__body > .scheduling__table-wrapper,
.view__body > .in-progress .in-progress__table-wrapper {
  margin-top: 0;
}

/* Search bar */
.scheduling__search-wrapper {
  position: relative;
  display: flex;
  align-items: center;
  width: 200px;
  min-width: 7.5rem;
  height: var(--title-bar-user-size, 32px);
  flex-shrink: 1;
}

.scheduling__search-icon {
  position: absolute;
  top: 50%;
  left: 12px;
  transform: translateY(-50%);
  color: rgba(255, 255, 255, 0.7);
  pointer-events: none;
}

.scheduling__search-input {
  width: 100%;
  height: 100%;
  padding: 0 12px 0 36px;
  font-size: 0.9375rem;
  line-height: 1.2;
  font-family: inherit;
  color: #fff;
  background: rgba(255, 255, 255, 0.15);
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 6px;
  outline: none;
  box-sizing: border-box;
  transition: background-color 0.15s ease, border-color 0.15s ease;
}

.scheduling__search-input::placeholder {
  color: rgba(255, 255, 255, 0.6);
}

.scheduling__search-input:focus {
  background: rgba(255, 255, 255, 0.22);
  border-color: rgba(255, 255, 255, 0.6);
}

/* Export button */
.scheduling__export-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  appearance: none;
  flex-shrink: 0;
  border: 1px solid rgba(255, 255, 255, 0.65);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  padding: 0 0.9rem;
  height: var(--title-bar-user-size, 32px);
  font-size: 0.875rem;
  font-weight: 600;
  font-family: inherit;
  line-height: 1.2;
  cursor: pointer;
  white-space: nowrap;
  box-sizing: border-box;
  transition: background-color 0.15s ease;
}

.scheduling__export-btn:hover {
  background: rgba(255, 255, 255, 0.22);
}

.scheduling__export-icon {
  display: none;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

/* Table wrapper */
.scheduling__table-wrapper {
  margin-top: 1rem;
  background: #fff;
  border-radius: 0;
  border: none;
  overflow-x: auto;
  overflow-y: auto;
  scrollbar-gutter: stable;
  box-shadow: none;
}

.scheduling .scheduling__table {
  --scheduling-col-photo: calc(20px + var(--census-photo-size, 36px));
  --scheduling-col-name-min: 11rem;
  --scheduling-col-ard: 88px;
  --scheduling-col-ard-window: 124px;
  --scheduling-col-due-date: 120px;
  --scheduling-col-admission: 120px;
  --scheduling-col-payer: 108px;
  --scheduling-col-type: 100px;
  --scheduling-col-last-ard: 108px;
  --scheduling-col-due-in: 88px;
  table-layout: fixed;
  font-size: var(--patient-meta-size);
  width: 100%;
  min-width: calc(
    var(--scheduling-col-photo) +
    var(--scheduling-col-name-min) +
    var(--scheduling-col-ard) +
    var(--scheduling-col-ard-window) +
    var(--scheduling-col-due-date) +
    var(--scheduling-col-admission) +
    var(--scheduling-col-payer) +
    var(--scheduling-col-type) +
    var(--scheduling-col-last-ard) +
    var(--scheduling-col-due-in)
  );
}

.scheduling .scheduling__col--photo {
  width: var(--scheduling-col-photo);
}

.scheduling .scheduling__col--ard {
  width: var(--scheduling-col-ard);
}

.scheduling .scheduling__col--ard-window {
  width: var(--scheduling-col-ard-window);
}

.scheduling .scheduling__col--due-date {
  width: var(--scheduling-col-due-date);
}

.scheduling .scheduling__col--admission {
  width: var(--scheduling-col-admission);
}

.scheduling .scheduling__col--payer {
  width: var(--scheduling-col-payer);
}

.scheduling .scheduling__col--type {
  width: var(--scheduling-col-type);
}

.scheduling .scheduling__col--last-ard {
  width: var(--scheduling-col-last-ard);
}

.scheduling .scheduling__col--due-in {
  width: var(--scheduling-col-due-in);
}

.scheduling__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}

/* Column headers */
.scheduling__th {
  text-align: left;
  padding: 10px 14px;
  background: #d6e4f7;
  font-weight: 600;
  font-size: 13px;
  color: #4D68A7;
  border-bottom: 2px solid #b7c8e8;
  white-space: nowrap;
}

.scheduling__th--photo,
.scheduling__cell--photo {
  width: 1%;
  white-space: nowrap;
  padding-top: 0;
  padding-bottom: 0;
  padding-left: 10px;
  padding-right: 10px;
  box-sizing: border-box;
  vertical-align: middle;
}

.scheduling__th--icon {
  width: 28px;
  padding-left: 10px;
  padding-right: 0;
}

.scheduling__th--name {
  padding-left: 6px;
}

.scheduling__th--type,
.scheduling__cell--type {
  width: 1%;
  white-space: nowrap;
  padding-left: 8px;
  padding-right: 8px;
  text-align: left;
  vertical-align: middle;
}

/* Sortable column headers */
.scheduling__th--sortable {
  cursor: pointer;
  user-select: none;
  transition: color 0.15s ease;
}

.scheduling__th--sortable:hover {
  color: #3d548c;
}

.scheduling__th-chevron {
  display: inline-block;
  margin-left: 4px;
  font-size: 12px;
  color: #aaa;
  transition: color 0.15s ease, transform 0.15s ease;
}

.scheduling__th-chevron::after {
  content: "\25BE"; /* ▾ single down chevron */
}

.scheduling__th--sorted-asc .scheduling__th-chevron {
  color: #4D68A7;
  transform: rotate(180deg);
}

.scheduling__th--sorted-desc .scheduling__th-chevron {
  color: #4D68A7;
}

/* Table rows */
.scheduling__row {
  border-bottom: 1px solid #dcdcdc;
  transition: background-color 0.12s ease;
}

.scheduling .scheduling__row {
  height: var(--patient-table-row-height);
  max-height: var(--patient-table-row-height);
}

.scheduling__row:last-child {
  border-bottom: none;
}

.scheduling__row:hover {
  background: #fafafa;
}

/* Attention row (due soon) */
.scheduling__row--red {
  background: #fdf3d1;
}

.scheduling__row--red:hover {
  background: #f6e8b0;
}

.scheduling__row--red + .scheduling__row--red,
.scheduling__row--yellow + .scheduling__row--yellow,
.scheduling__row--red + .scheduling__row--yellow,
.scheduling__row--yellow + .scheduling__row--red {
  border-top: 2px solid #fff;
}

/* Yellow urgency row (due within 4 days) */
.scheduling__row--yellow {
  background: #fdf3d1;
}

.scheduling__row--yellow:hover {
  background: #f6e8b0;
}

/* Table cells */
.scheduling__cell {
  padding: 10px 14px;
  color: #333;
  vertical-align: middle;
}

.scheduling .scheduling__cell {
  height: var(--patient-table-row-height);
  max-height: var(--patient-table-row-height);
  box-sizing: border-box;
}

.scheduling .scheduling__cell--photo {
  padding-top: 0;
  padding-bottom: 0;
  padding-left: 10px;
  padding-right: 10px;
  overflow: hidden;
}

/* ~10% tighter horizontal spacing between text columns (Residents view only) */
.scheduling .scheduling__th:not(.scheduling__th--photo) {
  padding-top: 12px;
  padding-bottom: 12px;
  padding-left: 13px;
  padding-right: 13px;
  font-size: var(--patient-info-size);
  font-weight: 700;
  color: #4D68A7;
  overflow: hidden;
  text-overflow: ellipsis;
}

.scheduling .scheduling__cell:not(.scheduling__cell--photo) {
  padding-left: 13px;
  padding-right: 13px;
  color: #333;
  overflow: hidden;
  text-overflow: ellipsis;
}

.scheduling .scheduling__cell:not(.scheduling__cell--photo):not(.scheduling__cell--name):not(.scheduling__cell--type) {
  font-size: var(--patient-meta-size);
}

.scheduling .scheduling__th--name {
  padding: 12px 13px 12px 13px;
}

.scheduling .scheduling__cell.scheduling__cell--name {
  padding-left: 13px;
  padding-right: 13px;
  font-size: var(--patient-name-size);
  font-weight: 700;
  color: #333;
  min-width: 0;
}

.scheduling .scheduling__th--type,
.scheduling .scheduling__cell--type {
  padding-left: 7px;
  padding-right: 7px;
}

.scheduling .scheduling__cell.scheduling__cell--type {
  font-size: var(--patient-info-size);
}

.scheduling__cell--icon {
  width: 28px;
  padding-left: 10px;
  padding-right: 0;
  text-align: center;
  vertical-align: middle;
}

.scheduling__cell--name {
  padding-left: 6px;
  font-weight: 700;
  color: #111;
  white-space: nowrap;
}

.scheduling__cell--date {
  white-space: nowrap;
}

.scheduling .scheduling__cell--payer,
.scheduling .scheduling__cell--type {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.scheduling__cell--numeric {
  white-space: nowrap;
}

.scheduling__patient-name {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@container residents (max-width: 1100px) {
  .scheduling .scheduling__table {
    --scheduling-col-admission: 0px;
    --scheduling-col-last-ard: 0px;
  }

  .scheduling .scheduling__col--admission,
  .scheduling .scheduling__th--admission,
  .scheduling .scheduling__cell--admission,
  .scheduling .scheduling__col--last-ard,
  .scheduling .scheduling__th--last-ard,
  .scheduling .scheduling__cell--last-ard {
    display: none;
  }
}

@container residents (max-width: 860px) {
  .scheduling .scheduling__table {
    --scheduling-col-payer: 0px;
  }

  .scheduling .scheduling__col--payer,
  .scheduling .scheduling__th--payer,
  .scheduling .scheduling__cell--payer {
    display: none;
  }
}

@container residents (max-width: 740px) {
  .scheduling .scheduling__table {
    --scheduling-col-ard-window: 0px;
  }

  .scheduling .scheduling__col--ard-window,
  .scheduling .scheduling__th--ard-window,
  .scheduling .scheduling__cell--ard-window {
    display: none;
  }
}

@container residents (max-width: 640px) {
  .scheduling .scheduling__table {
    --scheduling-col-due-date: 0px;
  }

  .scheduling .scheduling__col--due-date,
  .scheduling .scheduling__th--due-date,
  .scheduling .scheduling__cell--due-date {
    display: none;
  }
}

@container residents (max-width: 900px) {
  .scheduling__search-wrapper {
    width: 9.5rem;
  }

  .scheduling__export-icon {
    display: block;
  }

  .scheduling__export-label {
    display: none;
  }

  .scheduling__export-btn {
    padding: 0.35rem;
    min-width: var(--top-bar-content-height);
    height: var(--top-bar-content-height);
  }
}

/* -----------------------------------------------------------------------------
   Calendar view
   ----------------------------------------------------------------------------- */
.calendar {
  width: 100%;
  --calendar-toolbar-content-gap: 2rem;
  --calendar-accent: #4D68A7;
  --calendar-accent-soft: #d6e4f7;
  --calendar-accent-muted: #e8f0fb;
}

/* Top bar – matches Changes (notifications) header */
.calendar__top-bar {
  position: relative;
  display: flex;
  align-items: center;
  gap: 1rem;
  width: 100%;
  margin: 0;
  flex-shrink: 0;
}

.calendar__top-bar-title {
  margin: 0;
  font-size: var(--top-bar-title-size);
  font-weight: 600;
  color: #fff;
  letter-spacing: -0.01em;
  flex-shrink: 0;
}

.calendar__top-bar .title-bar-nav {
  flex: 1 1 auto;
  min-width: 0;
}

.calendar__top-bar .title-bar-end {
  margin-left: auto;
  flex-shrink: 0;
}

.calendar__today-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  appearance: none;
  border: none;
  border-radius: 999px;
  background: #f8faff;
  color: var(--calendar-accent);
  padding: 0.35rem 0.75rem;
  font-size: 0.875rem;
  font-weight: 700;
  font-family: inherit;
  line-height: 1.2;
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
  box-shadow: 0 1px 2px rgba(18, 24, 38, 0.08);
  transition: background-color 0.15s ease, box-shadow 0.15s ease;
}

.calendar__today-btn:hover {
  background: #fff;
  box-shadow: 0 1px 4px rgba(18, 24, 38, 0.1);
}

.calendar__today-btn:focus-visible {
  outline: 2px solid var(--calendar-accent);
  outline-offset: 2px;
}

.calendar__today-btn[hidden] {
  display: none !important;
}

.calendar__add-item-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  appearance: none;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: 1.5px solid #a5bbe8;
  border-radius: 50%;
  background: #fff;
  color: var(--calendar-accent);
  font-family: inherit;
  line-height: 1;
  cursor: pointer;
  flex-shrink: 0;
}

.calendar__add-item-btn:hover {
  background: var(--calendar-accent-muted);
}

.calendar__add-item-btn:focus-visible {
  outline: 2px solid var(--calendar-accent);
  outline-offset: 2px;
}

.calendar__add-item-btn-icon {
  width: 1rem;
  height: 1rem;
  display: block;
  flex-shrink: 0;
}

.calendar-add-item-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  background: rgba(18, 24, 38, 0.45);
}

.calendar-add-item-modal[hidden] {
  display: none;
}

.calendar-add-item-modal__dialog {
  display: flex;
  flex-direction: column;
  width: min(100%, 28rem);
  max-height: min(90vh, 40rem);
  overflow: visible;
  padding: 1.25rem 1.5rem 1.5rem;
  border-radius: 1rem;
  background: #fff;
  box-shadow: 0 18px 48px rgba(18, 24, 38, 0.18);
}

.calendar-add-item-modal__heading {
  margin: 0 0 1rem;
  font-size: 16pt;
  font-weight: 700;
  color: #1f2937;
}

.calendar-add-item-modal__field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin-bottom: 1rem;
}

.calendar-add-item-modal__label {
  font-size: 0.8125rem;
  font-weight: 700;
  color: #374151;
}

.calendar-add-item-modal__input {
  box-sizing: border-box;
  width: 100%;
  padding: 0.55rem 0.75rem;
  border: 1px solid #cbd5e1;
  border-radius: 0.5rem;
  font: inherit;
  color: #111827;
  background: #fff;
}

.calendar-add-item-modal__input:focus {
  outline: 2px solid var(--calendar-accent-muted);
  outline-offset: 1px;
  border-color: var(--calendar-accent);
}

.calendar-add-item-modal__type-toggle {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 2px;
  padding: 3px;
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  background: #fff;
}

.calendar-add-item-modal__type-option {
  padding: 5px 16px;
  border: none;
  border-radius: 999px;
  background: transparent;
  color: #333;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
  font-family: inherit;
  white-space: nowrap;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.calendar-add-item-modal__type-option:hover:not(.calendar-add-item-modal__type-option--selected) {
  background: rgba(77, 104, 167, 0.08);
}

.calendar-add-item-modal__type-option--selected {
  background: var(--calendar-accent);
  color: #fff;
}

.date-picker {
  --calendar-accent: #4D68A7;
  --calendar-accent-soft: #d6e4f7;
  --calendar-accent-muted: #e8f0fb;
}

.date-picker__field {
  position: relative;
  max-width: 20rem;
}

.date-picker__label {
  font-size: 0.8125rem;
  font-weight: 700;
  color: #374151;
}

.date-picker__trigger {
  box-sizing: border-box;
  width: 100%;
  border: 1px solid #cbd5e1;
  border-radius: 0.5rem;
  background: #fff;
  color: #111827;
  font: inherit;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
}

.date-picker__trigger--modal {
  padding: 0.7rem 0.85rem;
  font-size: 1.0625rem;
}

.date-picker__trigger--card {
  width: var(--changes-card-assessment-acknowledge-pill-width, 13rem);
  max-width: 100%;
  padding: var(--changes-card-pill-btn-padding-block, 8px) 24px;
  min-height: var(--changes-card-pill-btn-min-height, 2.5rem);
  font-size: 12pt;
  font-weight: 400;
  text-align: center;
  border-color: #ccc;
  border-radius: 20px;
  white-space: nowrap;
}

.changes__card-question-text-input .date-picker__field {
  width: var(--changes-card-assessment-acknowledge-pill-width, 13rem);
  max-width: 100%;
}

.date-picker__trigger:focus {
  outline: 2px solid var(--calendar-accent-muted, #e8f0fb);
  outline-offset: 1px;
  border-color: var(--calendar-accent, #4D68A7);
}

.date-picker__popover {
  position: fixed;
  z-index: 1001;
  box-sizing: border-box;
  width: 26rem;
  max-width: calc(100vw - 2rem);
  padding: 1.15rem 1.25rem;
  border: 1px solid #cbd5e1;
  border-radius: 0.75rem;
  background: #fff;
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.14);
}

.date-picker__popover[hidden] {
  display: none;
}

.date-picker__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.85rem;
}

.date-picker__month {
  font-size: 1.125rem;
  font-weight: 700;
  color: #1f2937;
}

.date-picker__nav {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  background: #fff;
  color: #374151;
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
}

.date-picker__nav:hover {
  background: #f8fafc;
}

.date-picker__weekdays {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 0.25rem;
  margin-bottom: 0.35rem;
  font-size: 0.8125rem;
  font-weight: 700;
  color: #64748b;
  text-align: center;
}

.date-picker__grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 0.25rem;
}

.date-picker__day {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  aspect-ratio: 1;
  min-height: 3.25rem;
  border: none;
  border-radius: 0.5rem;
  background: transparent;
  color: #111827;
  font: inherit;
  font-size: 1.125rem;
  font-weight: 600;
  cursor: pointer;
}

.date-picker__day:hover:not(:disabled) {
  background: var(--calendar-accent-soft, #d6e4f7);
}

.date-picker__day--selected {
  background: var(--calendar-accent, #4D68A7);
  color: #fff;
}

.date-picker__day--today:not(.date-picker__day--selected) {
  color: var(--calendar-accent, #4D68A7);
}

.date-picker__day--outside {
  color: #94a3b8;
}

.date-picker__day:disabled {
  color: #cbd5e1;
  cursor: not-allowed;
}

.calendar-add-item-modal__patient-field {
  position: relative;
}

.calendar-add-item-modal__patient-results {
  position: absolute;
  top: calc(100% + 0.25rem);
  left: 0;
  right: 0;
  z-index: 2;
  margin: 0;
  padding: 0.25rem;
  list-style: none;
  border: 1px solid #cbd5e1;
  border-radius: 0.5rem;
  background: #fff;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
  max-height: 12rem;
  overflow: auto;
}

.calendar-add-item-modal__patient-results[hidden] {
  display: none;
}

.calendar-add-item-modal__patient-option {
  display: block;
  width: 100%;
  padding: 0.5rem 0.65rem;
  border: none;
  border-radius: 0.375rem;
  background: transparent;
  text-align: left;
  font: inherit;
  color: #111827;
  cursor: pointer;
}

.calendar-add-item-modal__patient-option:hover,
.calendar-add-item-modal__patient-option--selected {
  background: #eff6ff;
}

.calendar-add-item-modal__field-error,
.calendar-add-item-modal__form-error {
  margin: 0;
  font-size: 0.8125rem;
  color: #b3261e;
}

.calendar-add-item-modal__warning {
  margin: 0 0 1rem;
  padding: 0.75rem 0.85rem;
  border-radius: 0.5rem;
  background: #fff7ed;
  color: #9a3412;
  font-size: 0.8125rem;
}

.calendar-add-item-modal__warning[hidden] {
  display: none;
}

.calendar-add-item-modal__hint {
  margin: 0.4rem 0 0;
  font-size: 0.8125rem;
  line-height: 1.35;
  color: #5f6368;
}

.calendar-add-item-modal__footer {
  display: flex;
  justify-content: center;
  gap: 0.75rem;
  margin-top: 2rem;
  padding-top: 0.25rem;
}

.calendar-add-item-modal__cancel,
.calendar-add-item-modal__submit {
  appearance: none;
  border-radius: 999px;
  padding: 0.55rem 1rem;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}

.calendar-add-item-modal__cancel {
  border: 1px solid #cbd5e1;
  background: #fff;
  color: #374151;
}

.calendar-add-item-modal__submit {
  border: 1px solid var(--calendar-accent);
  background: var(--calendar-accent);
  color: #fff;
}

.calendar-add-item-modal__submit:hover {
  filter: brightness(0.92);
}

.calendar-add-item-modal__readonly-value {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
  color: #111827;
}

.calendar-add-item-modal__delete {
  appearance: none;
  border: 1px solid #dc2626;
  border-radius: 999px;
  background: #fff;
  color: #dc2626;
  padding: 0.55rem 1rem;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}

.calendar-add-item-modal__delete:hover {
  background: #fef2f2;
}

.calendar-add-item-modal__delete-confirm {
  margin-top: 2rem;
  padding-top: 0.25rem;
  text-align: center;
}

.calendar-add-item-modal__delete-confirm[hidden] {
  display: none;
}

.calendar-add-item-modal__delete-confirm-text {
  margin: 0 0 1rem;
  font-size: 1rem;
  font-weight: 600;
  color: #111827;
}

.calendar-add-item-modal__delete-confirm-actions {
  display: flex;
  justify-content: center;
  gap: 0.75rem;
}

.calendar__view-toggle {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 3px;
  border-radius: 999px;
  background: transparent;
  box-shadow: none;
}

.calendar__view-toggle-option {
  padding: 5px 16px;
  border: none;
  border-radius: 999px;
  background: transparent;
  color: #333;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
  font-family: inherit;
  white-space: nowrap;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.calendar__view-toggle-option:hover:not(.calendar__view-toggle-option--selected) {
  background: rgba(77, 104, 167, 0.08);
}

.calendar__view-toggle-option--selected {
  background: var(--calendar-accent);
  color: #fff;
}

.calendar__view-toggle-option--selected:hover {
  background: var(--calendar-accent);
  color: #fff;
}

.calendar__toolbar {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  padding: var(--title-bar-to-content-gap) var(--main-content-padding) 0;
  flex-shrink: 0;
}

.calendar__period-nav {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  column-gap: 0.75rem;
  padding: 0.5rem var(--main-content-padding) 0;
  flex-shrink: 0;
}

.calendar__period-nav-start {
  justify-self: start;
  min-width: 0;
}

.calendar--view-all .calendar__period-nav {
  display: none;
}

.calendar__toolbar-filters {
  flex: 1;
  min-width: 0;
}

.calendar__toolbar-actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-shrink: 0;
  margin-left: auto;
  position: relative;
  z-index: 2;
}

.calendar__toolbar-actions .calendar__print-btn,
.calendar__toolbar-actions .changes__in-progress-refresh-btn {
  border: 1.5px solid #a5bbe8;
  background: #fff;
  color: var(--calendar-accent);
}

.calendar__toolbar-actions .calendar__print-btn:hover:not(:disabled),
.calendar__toolbar-actions .changes__in-progress-refresh-btn:hover:not(:disabled) {
  background: var(--calendar-accent-muted);
}

.calendar__toolbar-actions .calendar__print-btn:focus-visible,
.calendar__toolbar-actions .changes__in-progress-refresh-btn:focus-visible {
  outline: 2px solid var(--calendar-accent);
  outline-offset: 2px;
}

.calendar__actions-overflow {
  display: none;
  position: relative;
}

.calendar__toolbar--print-overflow .calendar__print-btn {
  display: none;
}

.calendar__toolbar--print-overflow .calendar__actions-overflow {
  display: inline-flex;
}

.calendar__overflow-menu {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  z-index: 50;
  box-sizing: border-box;
  min-width: 8rem;
  padding: 0.25rem;
  border: 1px solid #cbd5e1;
  border-radius: 0.5rem;
  background: #fff;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.18);
}

.calendar__overflow-menu-item,
.calendar__filter-more-item {
  appearance: none;
  display: block;
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  padding: 0.45rem 0.75rem;
  border: 0;
  border-radius: 0.35rem;
  background: transparent;
  color: #1f2937;
  font-family: inherit;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.25;
  text-align: left;
  white-space: nowrap;
  cursor: pointer;
}

.calendar__overflow-menu-item:hover,
.calendar__overflow-menu-item:focus-visible,
.calendar__filter-more-item:hover,
.calendar__filter-more-item:focus-visible {
  background: #f1f5f9;
}

.calendar__filter-more-item--selected {
  color: var(--calendar-accent);
}

.calendar__toolbar-filter-row {
  --calendar-filter-scale: 1;
  --calendar-filter-gap: calc(1.25rem * var(--calendar-filter-scale));
  --calendar-toggle-gap: calc(2px * var(--calendar-filter-scale));
  --calendar-toggle-pad: calc(3px * var(--calendar-filter-scale));
  --calendar-option-font-size: calc(0.875rem * var(--calendar-filter-scale));
  --calendar-option-pad-block: calc(5px * var(--calendar-filter-scale));
  --calendar-option-pad-inline: calc(12px * var(--calendar-filter-scale));
  display: flex;
  align-items: center;
  gap: var(--calendar-filter-gap);
  flex-wrap: nowrap;
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

.calendar__toolbar-filter-row .calendar__view-toggle--view-mode {
  gap: var(--calendar-toggle-gap);
  padding: var(--calendar-toggle-pad);
}

.calendar__toolbar-filter-row .calendar__view-toggle-option,
.calendar__toolbar-filter-row .calendar__multi-toggle-option,
.calendar__toolbar-filter-row .calendar__view-toggle--view-mode .calendar__view-toggle-option,
.calendar__toolbar-filter-row .calendar__view-toggle--date-mode .calendar__view-toggle-option {
  font-size: var(--calendar-option-font-size);
  padding: var(--calendar-option-pad-block) var(--calendar-option-pad-inline);
}

.calendar__filter-label--short {
  display: none;
}

.calendar__toolbar-filter-row--compact .calendar__filter-label--full {
  display: none;
}

.calendar__toolbar-filter-row--compact .calendar__filter-label--short {
  display: inline;
}

.calendar__view-toggle--view-mode {
  flex: 0 0 auto;
  border: 1.5px solid #a5bbe8;
  box-shadow: none;
}

.calendar__view-toggle--view-mode .calendar__view-toggle-option {
  padding: 5px 12px;
}

.calendar__filter-cluster {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: var(--calendar-toggle-pad);
  border: 1.5px solid #a5bbe8;
  border-radius: 999px;
  background: transparent;
  flex: 0 0 auto;
  min-width: 0;
}

.calendar__filter-cluster .calendar__multi-toggle--items,
.calendar__filter-cluster .calendar__view-toggle--date-mode {
  border: 0;
  padding: 0;
  box-shadow: none;
  gap: var(--calendar-toggle-gap);
}

.calendar__view-toggle--date-mode {
  flex: 0 0 auto;
  border: 1.5px solid #a5bbe8;
  box-shadow: none;
}

.calendar__view-toggle--date-mode .calendar__view-toggle-option {
  padding: 5px 12px;
}

.calendar__date-mode-filter {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  padding: 0 1px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--calendar-accent) 12%, transparent);
}

.calendar__date-mode-filter[hidden] {
  display: none !important;
}

.calendar__multi-toggle--items {
  flex: 0 0 auto;
  width: fit-content;
}

.calendar__multi-toggle-option--overflowed {
  display: none !important;
}

.calendar__filter-more {
  position: relative;
  flex: 0 0 auto;
}

.calendar__filter-more[hidden] {
  display: none !important;
}

.calendar__filter-more-menu {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  z-index: 50;
  box-sizing: border-box;
  min-width: 11rem;
  padding: 0.25rem;
  border: 1px solid #cbd5e1;
  border-radius: 0.5rem;
  background: #fff;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.18);
}

.calendar__view-toggle--assessment-type[hidden] {
  display: none;
}

.calendar__view-toggle--items .calendar__view-toggle-option,
.calendar__view-toggle--assessment-type .calendar__view-toggle-option {
  padding: 5px 12px;
}

.calendar__view-toggle--items {
  border: 1.5px solid #a5bbe8;
}

.calendar__view-toggle--assessment-type {
  display: none;
}

.calendar__multi-toggle {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 3px;
  border-radius: 999px;
  border: 1.5px solid #a5bbe8;
  background: transparent;
}

.calendar__multi-toggle-option {
  padding: 5px 12px;
  border: none;
  border-radius: 999px;
  background: transparent;
  color: #333;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
  font-family: inherit;
  white-space: nowrap;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.calendar__multi-toggle-option:hover:not(.calendar__multi-toggle-option--selected) {
  background: rgba(77, 104, 167, 0.08);
}

.calendar__multi-toggle-option--selected {
  background: var(--calendar-accent);
  color: #fff;
}

.calendar__multi-toggle-option--selected:hover {
  background: var(--calendar-accent);
}

.calendar__all-view,
.calendar__week-view,
.calendar__day-view {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding-top: 1.5rem;
  padding-inline: var(--main-content-padding);
  padding-bottom: var(--main-content-padding);
  box-sizing: border-box;
}

.calendar--view-week .calendar__week-view,
.calendar--view-day .calendar__day-view {
  padding-top: 0.75rem;
}

.calendar__all-view[hidden],
.calendar__week-view[hidden],
.calendar__day-view[hidden] {
  display: none;
}

/* Week navigation */
.calendar__week-nav-controls {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  justify-self: center;
}

.calendar__week-nav-controls--cross-year {
  --calendar-week-nav-range-width: 28ch;
}

.calendar--view-week .calendar__week-nav-controls {
  --calendar-week-nav-range-width: 24ch;
}

.calendar--view-week .calendar__week-nav-controls--cross-year {
  --calendar-week-nav-range-width: 40ch;
}

.calendar__week-nav-controls > .calendar__week-nav-btn:first-child {
  justify-self: end;
}

.calendar__week-nav-controls > .calendar__week-nav-btn:last-child {
  justify-self: start;
}

.calendar__week-nav-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: var(--top-bar-content-height);
  height: var(--top-bar-content-height);
  padding: 0;
  border: none;
  border-radius: 50%;
  background: transparent;
  color: var(--calendar-accent);
  font-family: inherit;
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.calendar__week-nav-btn-icon {
  flex-shrink: 0;
  display: block;
}

.calendar__week-nav-btn:hover:not(:disabled) {
  background: rgba(77, 104, 167, 0.08);
}

.calendar__week-nav-btn:disabled {
  opacity: 0.35;
  cursor: default;
}

.calendar__week-nav-label {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 0.5rem;
  flex: 0 0 auto;
  width: auto;
  font-size: 1rem;
  font-weight: 700;
  color: #333;
  text-align: center;
}

.calendar__week-nav-range {
  white-space: nowrap;
}

/* Week view panels */
.calendar__week-panels {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  padding: 0 0 1rem;
}

.calendar__week-panel {
  height: 100%;
  display: flex;
  flex-direction: column;
  min-height: 0;
  border: 3px solid transparent;
  border-radius: 10px;
  overflow: hidden;
}

.calendar__week-panel[hidden] {
  display: none;
}

.calendar__week-panel--current {
  border-color: var(--calendar-accent);
}

.calendar__week-panel-grid {
  flex: 1;
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-rows: minmax(0, 1fr) minmax(0, 1fr);
  gap: 4px;
  background: #f8f9fa;
  padding: 4px;
}

.calendar__week-panel-weekend {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-height: 0;
  min-width: 0;
}

/* Week view day cards */
.calendar__week-day {
  min-height: 0;
  min-width: 0;
  border: 1px solid #e0e0e0;
  background: #fff;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.calendar__week-day--compact {
  flex: 1;
}

.calendar__week-day--today {
  background: var(--calendar-accent-soft);
}

.calendar__week-day-header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 6px 10px;
  border-bottom: 1px solid #e0e0e0;
  background: var(--calendar-accent-muted);
  flex-shrink: 0;
}

.calendar__week-day--today .calendar__week-day-header {
  background: var(--calendar-accent);
}

.calendar__day-header-link {
  width: 100%;
  margin: 0;
  border: none;
  font: inherit;
  text-align: inherit;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}

.calendar__day-header-link:hover .calendar__week-day-date,
.calendar__day-header-link:hover .calendar__day-number {
  text-decoration: underline;
}

.calendar__week-day-date {
  font-size: 1rem;
  font-weight: 700;
  color: #333;
}

.calendar__week-day-name {
  font-size: 0.875rem;
  font-weight: 500;
  color: #666;
}

.calendar__week-day--today .calendar__week-day-date,
.calendar__week-day--today .calendar__week-day-name {
  color: #fff;
}

.calendar__week-day-entries {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 7px 11px 9px;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.calendar__week-day-entries .calendar__entry {
  gap: 6px;
  font-size: 14px;
  line-height: 1.3;
  flex-shrink: 0;
  width: 100%;
  align-items: flex-start;
}

.calendar__week-day-entries .calendar__entry:first-child {
  margin-top: 0.5em;
}

.calendar__week-day-entries .calendar__entry-main {
  align-items: flex-start;
  width: 100%;
  gap: 0;
}

.calendar__week-day-entries .calendar__entry-text {
  flex: 1;
  min-width: 0;
}

.calendar__week-day-entries .calendar__entry--label-below .calendar__entry-label {
  font-size: 0.76em;
}

.calendar__week-day-entries .calendar__entry--custom-item .calendar__entry-text--custom-time-below {
  display: block;
  min-height: 0;
}

.calendar__week-day-entries .calendar__entry--custom-item .calendar__entry-name {
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

.calendar__week-day-entries .calendar__entry--custom-item .calendar__entry-time {
  display: block;
  margin-left: 0;
  margin-top: 0.125rem;
  line-height: 1.2;
  font-size: 0.8em;
  font-weight: 400;
  color: #555;
}

/* Day view */
.calendar--view-day .calendar__week-nav-controls {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
}

.calendar--view-day .calendar__week-nav-controls > .calendar__week-nav-btn:first-child,
.calendar--view-day .calendar__week-nav-controls > .calendar__week-nav-btn:last-child {
  justify-self: auto;
}

.calendar__day-panels {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  padding: 0 0 1rem;
}

.calendar__day-panel {
  height: 100%;
  display: flex;
  flex-direction: column;
  min-height: 0;
  border: 3px solid transparent;
  border-radius: 10px;
  overflow: hidden;
}

.calendar__day-panel-grid {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding: 4px;
  background: #f8f9fa;
}

.calendar--view-day .calendar__day-panel-grid {
  padding: 0;
  background: transparent;
}

.calendar__day-panel[hidden] {
  display: none;
}

.calendar__day-panel--today {
  border-color: var(--calendar-accent);
}

.calendar__day-panel-card {
  flex: 1;
  min-height: 0;
  min-width: 0;
}

.calendar--view-day .calendar__day-panel-card.calendar__week-day {
  border: none;
}

.calendar__day-panel-entries {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 0.5em 1.5rem 1.5rem;
  align-items: flex-start;
  gap: 0;
}

.calendar__day-panel-entries .calendar__entry {
  align-self: flex-start;
  width: 100%;
  max-width: 100%;
}

.calendar__day-panel-entries .calendar__entry:first-child {
  margin-top: 0;
}

.calendar__day-panel-entries .calendar__entry-main {
  gap: 0;
  width: 100%;
}

.calendar__day-panel-entries .calendar__entry--editable,
.calendar__day-panel-entries .calendar__entry--linkable {
  cursor: default;
}

.calendar__day-panel-entries .calendar__entry-main--interactive {
  width: 100%;
  max-width: 100%;
  cursor: pointer;
}

.calendar__day-panel-entries .calendar__entry-main--interactive:hover .calendar__entry-name {
  text-decoration: underline;
}

.calendar__day-panel-entries .calendar__entry-text {
  flex: 1 1 auto;
  width: auto;
  min-width: 0;
  white-space: normal;
}

.calendar__day-panel-entries .calendar__entry--label-below .calendar__entry-text--label-below {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: baseline;
  column-gap: 0.5rem;
  row-gap: 0.125rem;
}

.calendar__day-panel-entries .calendar__entry--label-below .calendar__entry-label {
  display: inline;
  font-size: 0.76em;
}

.calendar__day-panel-entries .calendar__entry:not(.calendar__entry--has-form-items):not(.calendar__entry--custom-item) .calendar__entry-text {
  display: flex;
  align-items: baseline;
  min-height: 0;
}

.calendar__day-panel-entries .calendar__entry--custom-item {
  flex-direction: column;
  align-items: flex-start;
  gap: 0.35rem;
}

.calendar__day-panel-entries .calendar__entry--custom-item .calendar__entry-text--custom-time-below {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: baseline;
  min-height: 0;
}

.calendar__day-panel-entries .calendar__entry--custom-item .calendar__entry-name {
  display: inline;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

.calendar__day-panel-entries .calendar__entry--custom-item .calendar__entry-time {
  display: block;
  flex-basis: 100%;
  margin-left: 0;
  margin-top: 0.125rem;
  line-height: 1.2;
  font-size: 0.8em;
  font-weight: 400;
  color: #555;
}

.calendar__day-panel-entries .calendar__entry-name,
.calendar__day-panel-entries .calendar__entry--label-below .calendar__entry-name {
  display: inline;
  font-size: 1rem;
  font-weight: 700;
}

.calendar__day-panel-entries .calendar__entry--has-form-items {
  width: 100%;
  max-width: 100%;
}

.calendar__day-panel-entries .calendar__form-items {
  display: flex;
  flex-direction: column;
  gap: 0;
  width: 100%;
}

.calendar__day-panel-entries .calendar__form-item {
  min-width: 0;
  align-items: flex-start;
  padding: 0.2rem 0.5rem;
  border-radius: 4px;
}

.calendar__day-panel-entries .calendar__form-item:nth-child(odd) {
  background: var(--calendar-accent-muted, #e8f0fb);
}

.calendar__day-panel-entries .calendar__form-item::before {
  content: "";
  flex-shrink: 0;
  width: 0.35rem;
  height: 0.35rem;
  margin-top: 0.5em;
  border-radius: 50%;
  background: #000;
}

.calendar__day-panel-entries .calendar__form-item-checkbox {
  display: none;
}

.calendar__day-panel-entries .calendar__form-item-title {
  overflow-wrap: anywhere;
}

.calendar__entry-main {
  display: flex;
  align-items: baseline;
  gap: 6px;
  min-width: 0;
  width: 100%;
}

.calendar__day-panel-entries .calendar__entry-main {
  align-items: flex-start;
}

.calendar__form-items {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.calendar__form-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 1rem;
  line-height: 1.35;
  color: #333;
}

.calendar__form-item-checkbox {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  border: 1px solid #bdbdbd;
  border-radius: 2px;
  background: #fff;
}

/* Month heading above first week of a new month in the scroll area */
.calendar__month-heading {
  text-align: center;
  padding: 0.75rem 0 0.25rem;
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--calendar-accent);
}

/* Scroll area containing all weeks */
.calendar__scroll-area {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
}

/* Week row */
.calendar__week {
  margin-bottom: 4px;
  border: 3px solid transparent;
  border-radius: 10px;
}

.calendar__week--current {
  border-color: var(--calendar-accent);
  overflow: hidden;
}

/* "This week" label */
.calendar__week-label {
  background: var(--calendar-accent);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  padding: 3px 12px;
}

/* 7-column day grid */
.calendar__week-days {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0;
}

/* Day cell */
.calendar__day {
  min-height: 160px;
  min-width: 0;
  border: 1px solid #e0e0e0;
  background: #fff;
  display: flex;
  flex-direction: column;
  gap: 3px;
  overflow: hidden;
}

.calendar__day--today {
  background: var(--calendar-accent-soft);
}

/* Day header (light blue background strip at top of each cell) */
.calendar__day-header {
  display: flex;
  align-items: baseline;
  flex-wrap: nowrap;
  gap: 5px;
  padding: 5px 8px;
  background: #dde5f5;
  min-width: 0;
}

.calendar__day--today .calendar__day-header,
.calendar__day--today .calendar__day-header-link {
  background: var(--calendar-accent);
}

.calendar__day-header--with-weekday {
  justify-content: space-between;
}

.calendar__day-header-date {
  display: flex;
  align-items: baseline;
  flex-wrap: nowrap;
  gap: 5px;
  flex-shrink: 0;
}

.calendar__day-weekday {
  flex-shrink: 0;
  font-size: calc(14px * 0.79);
  white-space: nowrap;
}

.calendar__day-header--hide-weekday .calendar__day-weekday {
  display: none;
}

.calendar__day-number {
  font-size: 21px;
  font-weight: 700;
  color: #333;
}

.calendar__day-month {
  font-size: 16px;
  font-weight: 500;
  color: #666;
  white-space: nowrap;
}

.calendar__day--today .calendar__day-number {
  color: #fff;
}

.calendar__day--today .calendar__day-month {
  color: rgba(255, 255, 255, 0.85);
}

/* Day entries area (below header) */
.calendar__day-entries {
  padding: 4px 8px 6px;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.calendar__entry {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 14px;
  line-height: 1.3;
  min-height: 18px;
}

.calendar__entry--divider-before {
  border-top: 1px solid #dcdcdc;
  margin-top: 4px;
  padding-top: 4px;
}

.calendar--view-week .calendar__entry--divider-before {
  margin-top: 6px;
  padding-top: 6px;
}

.calendar--view-day .calendar__entry--divider-before {
  border-top: 2px solid #000;
  margin-top: 8px;
  padding-top: 8px;
}

.calendar__entry--has-form-items {
  flex-direction: column;
  align-items: flex-start;
  gap: 0.35rem;
}

.calendar__entry-name {
  color: #333;
}

.calendar__entry-text {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: clip;
  white-space: nowrap;
}

.calendar__entry-time {
  margin-left: 0.35em;
  color: #555;
  font-size: 0.8em;
}

.calendar__entry-label,
.calendar__day-weekday {
  font-weight: 400;
  line-height: 1.2;
  color: var(--calendar-accent);
}

.calendar__entry-label {
  display: block;
  font-size: 0.79em;
}

.calendar__entry-label-ard-suffix {
  font-weight: 400;
  color: #34a853;
}

.calendar__entry-reschedule {
  display: inline;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  font-weight: 500;
  color: inherit;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.calendar__entry-reschedule:hover {
  color: #1a73e8;
}

.calendar__entry-text--label-below {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1px;
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
}

.calendar__entry--label-below .calendar__entry-name {
  display: block;
  overflow-wrap: anywhere;
}

.calendar__entry--label-below .calendar__entry-text--custom-time-below .calendar__entry-time {
  display: block;
  margin-left: 0;
  margin-top: 0.125rem;
}

/* Badge */
.calendar__badge {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 18px;
  padding: 0;
  box-sizing: border-box;
  border: 2px solid transparent;
  border-radius: 9px;
  font-size: 9px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.02em;
  text-align: center;
  white-space: nowrap;
}

/* Due date badge: filled blue circle, white text */
.calendar__badge--due {
  background: var(--calendar-accent);
  color: #fff;
}

/* ARD badge: green outline circle, green text */
.calendar__badge--ard {
  background: transparent;
  border-color: #34a853;
  color: #34a853;
}

/* All view: names and labels that use the full cell width */
.calendar__all-view .calendar__day-entries {
  padding: 4px 5px 6px 8px;
  gap: 0;
}

.calendar__all-view .calendar__entry {
  gap: 3px;
  width: 100%;
  align-items: flex-start;
}

.calendar__all-view .calendar__entry-main {
  align-items: flex-start;
  width: 100%;
  min-width: 0;
  gap: 0;
}

.calendar__all-view .calendar__entry-text {
  flex: 1 1 0;
  min-width: 0;
  text-overflow: clip;
}

.calendar__all-view .calendar__entry--label-below {
  flex-shrink: 0;
}

.calendar__entry--editable {
  cursor: pointer;
}

.calendar__entry--linkable {
  cursor: pointer;
}

.calendar__entry--linkable:hover .calendar__entry-name {
  text-decoration: underline;
}

.calendar__all-view .calendar__entry-time {
  display: none;
}

/* Print header (screen: hidden; shown via print CSS) */
.calendar__print-header {
  display: none;
}

.calendar__print-header-range {
  margin: 0 0 0.2rem;
  font-size: 0.9375rem;
  font-weight: 600;
  color: #222;
}

.calendar__print-header-filters {
  margin: 0;
  font-size: 0.8125rem;
  color: #444;
}

@media print {
  html,
  body,
  .app-body,
  .main-content,
  .view-shell,
  .calendar {
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
  }

  .sidebar,
  .calendar__top-bar,
  .calendar__toolbar,
  .calendar__period-nav,
  .calendar__today-btn,
  .calendar__add-item-btn,
  .calendar__view-toggle,
  .calendar__print-btn,
  .changes__in-progress-refresh-btn,
  .calendar-add-item-modal {
    display: none !important;
  }

  .calendar__entry-reschedule {
    display: none !important;
  }

  .main-content {
    padding: 0 !important;
  }

  .calendar {
    display: block !important;
    width: 100% !important;
    padding: 0 !important;
  }

  .calendar__print-header {
    display: block !important;
    margin: 0 0 0.35in;
    padding: 0;
  }

  .calendar__all-view,
  .calendar__week-view,
  .calendar__day-view {
    padding-top: 0 !important;
    overflow: visible !important;
    flex: none !important;
    min-height: 0 !important;
  }

  .calendar__all-view[hidden],
  .calendar__week-view[hidden],
  .calendar__day-view[hidden] {
    display: none !important;
  }

  .calendar__scroll-area,
  .calendar__week-panels,
  .calendar__day-panels {
    overflow: visible !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
  }

  .calendar__week--print-hidden,
  .calendar__month-heading--print-hidden {
    display: none !important;
  }

  .calendar__week-panel,
  .calendar__day-panel {
    overflow: visible !important;
    height: auto !important;
    min-height: 0 !important;
    border-color: #666 !important;
  }

  .calendar__week-panel-grid,
  .calendar__day-panel-grid {
    overflow: visible !important;
    height: auto !important;
    min-height: 0 !important;
    background: #fff !important;
  }

  .calendar__week-day,
  .calendar__day-panel-card {
    overflow: visible !important;
    min-height: 0 !important;
    page-break-inside: auto;
    break-inside: auto;
  }

  .calendar__week-day-entries,
  .calendar__day-entries,
  .calendar__day-panel-entries {
    overflow: visible !important;
    min-height: 0 !important;
  }

  .calendar__day-header-link,
  .calendar__week-day-header {
    appearance: none !important;
    cursor: default !important;
  }

  .calendar__entry-text {
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
  }

  .calendar__week-view .calendar__entry--custom-item .calendar__entry-time,
  .calendar__day-view .calendar__entry--custom-item .calendar__entry-time {
    display: block !important;
    margin-left: 0 !important;
    margin-top: 0.125rem !important;
    line-height: 1.2 !important;
    font-size: 0.8em !important;
    font-weight: 400 !important;
    color: #555 !important;
  }

  html.calendar-print--week .calendar__week-day-entries .calendar__entry--custom-item .calendar__entry-name {
    display: block !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  .calendar__entry--editable,
  .calendar__entry--linkable,
  .calendar__entry-main--interactive {
    cursor: default !important;
  }

  .calendar__entry--linkable:hover .calendar__entry-name,
  .calendar__entry-main--interactive:hover .calendar__entry-name,
  .calendar__day-header-link:hover .calendar__week-day-date,
  .calendar__day-header-link:hover .calendar__day-number {
    text-decoration: none !important;
  }

  .calendar__badge--due {
    background: #333 !important;
    color: #fff !important;
    border-color: #333 !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  .calendar__badge--ard {
    background: #fff !important;
    color: #333 !important;
    border-color: #333 !important;
  }

  .calendar__day--today,
  .calendar__week-day--today,
  .calendar__day-panel--today .calendar__day-panel-card {
    background: #f0f0f0 !important;
    outline: 2px solid #333;
    outline-offset: -2px;
  }

  .calendar__day--today .calendar__day-header,
  .calendar__day--today .calendar__day-header-link,
  .calendar__week-day--today .calendar__week-day-header {
    background: #ddd !important;
  }

  .calendar__day-header--hide-weekday .calendar__day-weekday {
    display: unset;
  }

  .calendar__day--today .calendar__day-number,
  .calendar__day--today .calendar__day-month,
  .calendar__day--today .calendar__day-weekday,
  .calendar__week-day--today .calendar__week-day-date,
  .calendar__week-day--today .calendar__week-day-name {
    color: #111 !important;
  }

  .calendar__week--current,
  .calendar__week-panel--current,
  .calendar__day-panel--today {
    border-color: #333 !important;
  }

  .calendar__week-label {
    background: #333 !important;
    color: #fff !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  .calendar__month-heading {
    color: #111 !important;
    padding-top: 0.1in !important;
    padding-bottom: 0.05in !important;
  }

  html.calendar-print--all .calendar__month-heading:first-child,
  html.calendar-print--all .calendar__scroll-area > .calendar__month-heading {
    padding-top: 0 !important;
  }

  .calendar__day-panel-entries .calendar__form-item::before {
    content: none;
  }

  .calendar__day-panel-entries .calendar__form-item-checkbox {
    display: block;
  }

  .calendar__day-panel-entries .calendar__form-item {
    align-items: center;
  }

  /* All view: four weeks on one landscape page */
  html.calendar-print--all .calendar__all-view {
    page-break-after: avoid;
    break-after: avoid;
  }

  html.calendar-print--all .calendar__week {
    page-break-inside: avoid;
    break-inside: avoid;
    margin-bottom: 2px;
  }

  html.calendar-print--all .calendar__week-days {
    min-height: 1.35in;
  }

  html.calendar-print--all .calendar__day {
    min-height: 1.35in;
    height: auto;
  }

  html.calendar-print--all .calendar__day-entries .calendar__entry {
    font-size: 11px;
    line-height: 1.25;
    min-height: 0;
  }

  html.calendar-print--all .calendar__all-view .calendar__day-entries {
    padding: 4px 5px 6px 8px;
    gap: 0;
  }

  html.calendar-print--all .calendar__all-view .calendar__entry-main {
    align-items: flex-start;
    width: 100%;
    min-width: 0;
    gap: 0;
  }

  html.calendar-print--all .calendar__all-view .calendar__entry--label-below {
    align-items: flex-start;
  }

  html.calendar-print--all .calendar__all-view .calendar__entry-time {
    display: none !important;
  }

  html.calendar-print--all .calendar__day-number {
    font-size: 16px;
  }

  html.calendar-print--all .calendar__day-month {
    font-size: 12px;
  }

  /* Week view: allow natural page breaks on busy weeks */
  html.calendar-print--week .calendar__week-panel {
    overflow: hidden !important;
    background: #fff !important;
  }

  html.calendar-print--week .calendar__week-panel-grid {
    page-break-inside: auto;
    break-inside: auto;
    padding: 6px !important;
    background: #fff !important;
  }

  html.calendar-print--week .calendar__week-day {
    page-break-inside: avoid;
    break-inside: avoid;
  }

  html.calendar-print--week .calendar__week-day-entries .calendar__entry {
    font-size: 14px;
    line-height: 1.3;
  }

  /* Day view: multi-page with checkboxes */
  html.calendar-print--day .calendar__day-panel {
    overflow: visible !important;
    background: #fff !important;
  }

  html.calendar-print--day .calendar__day-panel-grid {
    padding: 6px !important;
    background: #fff !important;
    overflow: visible !important;
  }

  html.calendar-print--day .calendar__day-panel-entries .calendar__entry-text {
    min-width: 0 !important;
    width: auto !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    align-items: baseline !important;
  }

  html.calendar-print--day .calendar__day-panel-entries .calendar__entry:not(.calendar__entry--custom-item) .calendar__entry-text {
    min-height: 0;
  }

  html.calendar-print--day .calendar__day-panel-entries .calendar__entry-main {
    display: block !important;
    width: 100% !important;
    overflow: visible !important;
  }

  html.calendar-print--day .calendar__day-panel-entries .calendar__entry--has-form-items .calendar__entry-main {
    align-items: start !important;
  }

  html.calendar-print--day .calendar__day-panel-entries {
    display: block !important;
    overflow: visible !important;
  }

  html.calendar-print--day .calendar__day-panel-entries .calendar__entry--has-form-items {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0.35rem !important;
  }

  html.calendar-print--day .calendar__day-panel-entries .calendar__form-items {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    width: 100%;
  }

  html.calendar-print--day .calendar__day-panel-entries .calendar__entry:not(.calendar__entry--has-form-items) {
    display: block !important;
    width: 100% !important;
    overflow: visible !important;
    break-inside: avoid-page !important;
    page-break-inside: avoid !important;
    -webkit-column-break-inside: avoid !important;
  }

  html.calendar-print--day .calendar__day-panel-entries .calendar__entry--has-form-items {
    width: 100% !important;
    overflow: visible !important;
    break-inside: avoid-page !important;
    page-break-inside: avoid !important;
    -webkit-column-break-inside: avoid !important;
  }

  html.calendar-print--day .calendar__print-page-break,
  html.calendar-print--day .calendar__day-panel-entries .calendar__entry--print-page-start {
    break-before: page !important;
    page-break-before: always !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    visibility: hidden;
  }

  html.calendar-print--day .calendar__day-panel-entries .calendar__entry-main,
  html.calendar-print--day .calendar__day-panel-entries .calendar__form-items,
  html.calendar-print--day .calendar__day-panel-entries .calendar__form-item,
  html.calendar-print--day .calendar__day-panel-entries .calendar__entry-name,
  html.calendar-print--day .calendar__day-panel-entries .calendar__entry-time {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
    -webkit-column-break-inside: avoid !important;
  }
}

/* Placeholder section views (legacy; custom assessments uses .changes header) */
.section-view {
  max-width: 72rem;
  margin: 0 auto;
}

.section-view__title {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 600;
  color: #333;
}

/* ── In-Progress ────────────────────────────────────────── */

.in-progress {
  --in-progress-name-min: 11rem;
  --in-progress-col-photo: calc(20px + var(--census-photo-size, 36px));
  --in-progress-col-ard: 88px;
  --in-progress-col-due: 88px;
  --in-progress-col-type: 6.5rem;
  --in-progress-sections-pad-x: 28px;
}

.in-progress__table-wrapper {
  margin-top: 1rem;
  background: #fff;
  border-radius: 0;
  border: none;
  overflow-x: auto;
  box-shadow: none;
}

.in-progress__table {
  table-layout: fixed;
  width: 100%;
  border-collapse: collapse;
  font-size: var(--patient-meta-size);
}

.in-progress__col--photo {
  width: var(--in-progress-col-photo);
}

.in-progress__col--name {
  width: var(--in-progress-name-min);
}

.in-progress__col--ard {
  width: var(--in-progress-col-ard);
}

.in-progress__col--due {
  width: var(--in-progress-col-due);
}

.in-progress__col--type {
  width: var(--in-progress-col-type);
}

.in-progress__th {
  text-align: left;
  padding: 12px 14px;
  background: #d6e4f7;
  font-weight: 700;
  font-size: var(--patient-info-size);
  color: #4D68A7;
  border-bottom: 2px solid #b7c8e8;
  white-space: nowrap;
}

.in-progress__th--photo,
.in-progress__cell--photo {
  width: 1%;
  white-space: nowrap;
  padding-top: 0;
  padding-bottom: 0;
  padding-left: 10px;
  padding-right: 10px;
  box-sizing: border-box;
  vertical-align: middle;
}

.in-progress__photo {
  display: block;
  width: calc(36px * 1.1);
  height: calc(36px * 1.1);
  border-radius: 4px;
  object-fit: cover;
}

.scheduling .in-progress__photo,
.scheduling .in-progress__photo-slot {
  width: var(--census-photo-size);
  height: var(--census-photo-size);
  max-height: var(--patient-table-row-height);
}

.in-progress__photo-slot {
  display: block;
  width: calc(36px * 1.1);
  height: calc(36px * 1.1);
  border-radius: 4px;
  flex-shrink: 0;
}

.in-progress__th--name,
.in-progress__cell--name {
  width: 1%;
  min-width: var(--in-progress-name-min);
}

.in-progress__th--name {
  padding: 12px 14px 12px 13px;
}

.in-progress__th--sortable {
  cursor: pointer;
  user-select: none;
  transition: color 0.15s ease;
}

.in-progress__th--sortable:hover {
  color: #3d548c;
}

.in-progress__th--type,
.in-progress__cell--type {
  width: 1%;
  white-space: nowrap;
  text-align: left;
  vertical-align: middle;
}

.in-progress__row {
  border-bottom: 1px solid #dcdcdc;
  transition: background-color 0.12s ease;
  height: var(--patient-table-row-height);
  max-height: var(--patient-table-row-height);
}

.in-progress__row:last-child {
  border-bottom: none;
}

.in-progress__row:hover {
  background: #fafafa;
}

.in-progress__cell {
  padding: 12px 14px;
  color: #333;
  font-size: var(--patient-meta-size);
  height: var(--patient-table-row-height);
  max-height: var(--patient-table-row-height);
  box-sizing: border-box;
  vertical-align: middle;
}

.in-progress__cell--photo {
  padding-top: 0;
  padding-bottom: 0;
  padding-left: 10px;
  padding-right: 10px;
  overflow: hidden;
}

.in-progress__cell--name {
  padding: 12px 14px 12px 13px;
  font-size: var(--patient-name-size);
  font-weight: 700;
  vertical-align: middle;
}

.in-progress__cell.in-progress__cell--type,
.in-progress__cell.in-progress__cell--sections {
  font-size: var(--patient-info-size);
}

.in-progress__patient-name {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.in-progress__cell--date,
.in-progress__th--ard,
.in-progress__cell--ard,
.in-progress__th--due,
.in-progress__cell--due {
  width: 1%;
  white-space: nowrap;
}

.in-progress__th--sections,
.in-progress__cell--sections {
  vertical-align: middle;
}

.in-progress__sections {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  align-items: center;
  width: 100%;
  min-width: 0;
}

.in-progress__section-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  padding: 2px 3px;
  border: 1px solid #d0d0d0;
  border-radius: 4px;
  background: #fff;
  color: #333;
  font-size: inherit;
  font-weight: 600;
  line-height: 1.4;
}

.in-progress--stack-sections .in-progress__table-wrapper {
  overflow-x: hidden;
}

.in-progress--stack-sections .in-progress__table colgroup {
  display: none;
}

.in-progress--stack-sections .in-progress__table,
.in-progress--stack-sections .in-progress__table thead,
.in-progress--stack-sections .in-progress__table tbody {
  display: block;
  width: 100%;
}

.in-progress--stack-sections .in-progress__table thead tr,
.in-progress--stack-sections .in-progress__row {
  display: grid;
  width: 100%;
  box-sizing: border-box;
  grid-template-columns: 56px minmax(0, 1fr) 84px 84px minmax(4.75rem, auto);
  align-items: center;
}

.in-progress--stack-sections .in-progress__row {
  height: auto;
  min-height: var(--patient-table-row-height);
  max-height: none;
}

.in-progress--stack-sections .in-progress__cell {
  height: auto;
  max-height: none;
}

.in-progress--stack-sections .in-progress__table thead tr {
  grid-template-areas: ". name ard due type";
  align-items: stretch;
  background: #d6e4f7;
  border-bottom: 2px solid #b7c8e8;
}

.in-progress--stack-sections .in-progress__th {
  background: transparent;
  border-bottom: none;
}

.in-progress--stack-sections .in-progress__th--photo {
  display: none;
}

.in-progress--stack-sections .in-progress__row {
  grid-template-areas:
    "photo name ard due type"
    ". sections sections sections sections";
}

.in-progress--stack-sections .in-progress__th--photo,
.in-progress--stack-sections .in-progress__cell--photo {
  grid-area: photo;
}

.in-progress--stack-sections .in-progress__th--name,
.in-progress--stack-sections .in-progress__cell--name {
  grid-area: name;
  min-width: 0;
  width: auto;
}

.in-progress--stack-sections .in-progress__th--ard,
.in-progress--stack-sections .in-progress__cell--ard {
  grid-area: ard;
  width: auto;
}

.in-progress--stack-sections .in-progress__th--due,
.in-progress--stack-sections .in-progress__cell--due {
  grid-area: due;
  width: auto;
}

.in-progress--stack-sections .in-progress__th--type,
.in-progress--stack-sections .in-progress__cell--type {
  grid-area: type;
  width: auto;
}

.in-progress--stack-sections .in-progress__th--sections {
  display: none;
}

.in-progress--stack-sections .in-progress__cell--sections {
  grid-area: sections;
  padding-top: 0;
  padding-left: 0;
}

.in-progress--stack-sections .in-progress__sections {
  justify-content: flex-end;
}

.in-progress--stack-sections .in-progress__cell--name {
  padding-bottom: 6px;
}

.in-progress__th--actions,
.in-progress__cell--actions {
  width: 10.5rem;
  text-align: right;
  white-space: nowrap;
}

.in-progress__schedule-forms-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  box-sizing: border-box;
  width: 9.75rem;
  appearance: none;
  margin: 0;
  padding: 0.3rem 0.55rem;
  border: 1px solid #c5cdd8;
  border-radius: 0.375rem;
  background: #fff;
  color: #1f2937;
  font: inherit;
  font-size: 0.8125rem;
  line-height: 1.2;
  cursor: pointer;
}

.in-progress__schedule-forms-btn:hover:not(:disabled) {
  background: #f3f4f6;
}

.in-progress__schedule-forms-btn:disabled,
.in-progress__schedule-forms-btn.is-busy {
  cursor: wait;
}

.in-progress__schedule-forms-btn.is-busy {
  border-color: #4e67aa;
  background: #4e67aa;
  color: #fff;
  font-weight: 600;
}

.in-progress__schedule-forms-btn.is-busy:hover {
  background: #435c96;
  border-color: #435c96;
}

.in-progress__schedule-forms-btn-icon {
  width: 0.875rem;
  height: 0.875rem;
  flex-shrink: 0;
}

.in-progress__schedule-forms-btn.is-busy .in-progress__schedule-forms-btn-icon {
  animation: in-progress-schedule-spin 0.8s linear infinite;
}

.in-progress__schedule-forms-unavailable {
  color: #9ca3af;
}

@keyframes in-progress-schedule-spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

/* -----------------------------------------------------------------------------
   Authentication (sign in / password reset)
   ----------------------------------------------------------------------------- */
.auth-body {
  min-height: 100%;
  margin: 0;
  font-family: var(--app-font-family);
  background: #f4f1ea;
}

.auth-page {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
}

.auth-card {
  width: 100%;
  max-width: 24rem;
  padding: 2rem;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}

.auth-card__brand {
  display: flex;
  justify-content: center;
  margin-bottom: 1.5rem;
}

.auth-card__wordmark {
  display: block;
  width: min(100%, 220px);
  height: auto;
}

.auth-card__title {
  margin: 0 0 0.5rem;
  font-size: 1.5rem;
  font-weight: 700;
  color: #222;
  text-align: center;
}

.auth-card__subtitle {
  margin: 0 0 1.25rem;
  font-size: 0.95rem;
  color: #666;
  text-align: center;
  line-height: 1.4;
}

.auth-flash {
  margin: 0 0 1rem;
  padding: 0.75rem 0.875rem;
  border-radius: 8px;
  font-size: 0.9rem;
  line-height: 1.4;
}

.auth-flash--alert {
  background: #fdecea;
  color: #b42318;
}

.auth-flash--notice {
  background: #ecfdf3;
  color: #027a48;
}

.auth-form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.auth-form__field {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}

.auth-form__field label {
  font-size: 0.875rem;
  font-weight: 600;
  color: #333;
}

.auth-form__field input {
  width: 100%;
  box-sizing: border-box;
  padding: 0.625rem 0.75rem;
  border: 1px solid #ccc;
  border-radius: 8px;
  font: inherit;
}

.auth-form__field input:focus {
  outline: 2px solid #e8a525;
  outline-offset: 1px;
  border-color: #e8a525;
}

.auth-form__submit {
  margin-top: 0.25rem;
  padding: 0.75rem 1rem;
  border: none;
  border-radius: 8px;
  background: #4e67aa;
  color: #fff;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}

.auth-form__submit:hover {
  background: #435c96;
}

.demo-turnstile {
  display: flex;
  justify-content: center;
  min-height: 65px;
}

.demo-unavailable__retry {
  display: block;
  text-align: center;
  text-decoration: none;
  box-sizing: border-box;
}

.demo-banner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 0.4rem 1rem;
  background: #4e67aa;
  color: #fff;
  font-size: 0.8125rem;
  font-weight: 600;
}

.demo-banner__reset-form {
  margin: 0;
}

.demo-banner__reset {
  border: 1px solid rgba(255, 255, 255, 0.7);
  background: transparent;
  color: #fff;
  font: inherit;
  font-size: 0.75rem;
  font-weight: 600;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  cursor: pointer;
}

.demo-banner__reset:hover {
  background: rgba(255, 255, 255, 0.12);
}

.auth-card__footer {
  margin: 1.25rem 0 0;
  text-align: center;
  font-size: 0.875rem;
}

.auth-link {
  color: #666;
}

.auth-link:hover {
  color: #222;
}

/* -----------------------------------------------------------------------------
   Scrape (PCC census sync)
   ----------------------------------------------------------------------------- */
.scrape {
  width: 100%;
  max-width: none;
}

.scrape__top-bar {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 1rem;
  width: 100%;
  margin: 0;
  overflow: visible;
  position: relative;
  z-index: 6;
}

header.scrape__top-bar.scheduling__top-bar {
  overflow: visible;
}

.scrape__page-title {
  margin: 0 0 1rem;
  font-size: 1.35rem;
  font-weight: 600;
  color: #1f2430;
  letter-spacing: -0.01em;
}

.scrape__status-bar {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-left: auto;
  color: #fff;
  font-size: 14px;
}

.scheduling__top-bar .scrape__status-bar {
  grid-column: 3;
  justify-self: end;
  margin-left: 0;
}

.scrape__last-synced {
  color: rgba(255, 255, 255, 0.92);
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
}

.scrape__refresh-button {
  appearance: none;
  border: 1px solid rgba(255, 255, 255, 0.65);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  padding: 0.35rem 0.9rem;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}

.scrape__refresh-button:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.22);
}

.scrape__refresh-button:disabled {
  opacity: 0.6;
  cursor: wait;
}

.scrape__refresh-button--primary {
  background: rgba(255, 255, 255, 0.22);
}

.scrape__advanced {
  position: relative;
}

.scrape__advanced > summary {
  list-style: none;
  cursor: pointer;
  border: 1px solid rgba(255, 255, 255, 0.45);
  border-radius: 999px;
  padding: 0.35rem 0.9rem;
  font-size: 13px;
  font-weight: 600;
  color: #fff;
}

.scrape__advanced > summary::-webkit-details-marker {
  display: none;
}

.scrape__advanced-actions {
  position: absolute;
  right: 0;
  top: calc(100% + 0.4rem);
  z-index: 40;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  min-width: 16rem;
  padding: 0.5rem;
  border-radius: 10px;
  background: rgba(20, 20, 20, 0.96);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
}

.scrape__summary-error {
  color: #842029;
}

.scrape__run-panel {
  margin: 0.85rem 0 0;
}

.scrape__run-card {
  padding: 0.85rem 1rem 0.95rem;
  border: 1px solid #d7deea;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
}

.scrape__run-card[data-state="running"] {
  border-color: #b7c7e8;
  background: linear-gradient(180deg, #f6f9ff 0%, #fff 70%);
}

.scrape__run-card[data-state="complete"] {
  border-color: #c4dfd0;
  background: #f6fbf8;
}

.scrape__run-card[data-state="failed"] {
  border-color: #e8c4c8;
  background: #fff7f7;
}

.scrape__run-card[data-state="cancelled"] {
  border-color: #e2d4b8;
  background: #fffaf0;
}

.scrape__run-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.45rem;
}

.scrape__run-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  background: #eef1f6;
  color: #334155;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.scrape__run-card[data-state="running"] .scrape__run-badge {
  background: #dbe7ff;
  color: #1e3a8a;
}

.scrape__run-card[data-state="complete"] .scrape__run-badge {
  background: #d7f0e2;
  color: #166534;
}

.scrape__run-card[data-state="failed"] .scrape__run-badge {
  background: #f8d7da;
  color: #842029;
}

.scrape__run-card[data-state="cancelled"] .scrape__run-badge {
  background: #f3e6c8;
  color: #8a5a00;
}

.scrape__run-times {
  display: flex;
  align-items: baseline;
  gap: 0.75rem;
  color: #475569;
  font-size: 13px;
  font-variant-numeric: tabular-nums;
}

.scrape__run-eta {
  color: #1e3a8a;
  font-weight: 600;
}

.scrape__stop-button {
  appearance: none;
  margin: 0;
  padding: 0.2rem 0.65rem;
  border: 1px solid #c9858a;
  border-radius: 999px;
  background: #fff;
  color: #842029;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.02em;
  cursor: pointer;
}

.scrape__stop-button:hover:not(:disabled) {
  background: #fff1f2;
}

.scrape__stop-button:disabled {
  opacity: 0.55;
  cursor: default;
}

.scrape__close-button {
  appearance: none;
  margin: 0;
  padding: 0.2rem 0.65rem;
  border: 1px solid #b7c7e8;
  border-radius: 999px;
  background: #fff;
  color: #1e3a8a;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.02em;
  cursor: pointer;
}

.scrape__close-button:hover:not(:disabled) {
  background: #f6f9ff;
}

.scheduling-sync__run-panel {
  margin: 0 0 1rem;
}

.scrape__run-message {
  margin: 0;
  color: #1f2937;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
}

.scrape__run-progress {
  display: none;
  margin-top: 0.7rem;
}

.scrape__run-progress.is-visible {
  display: block;
}

.scrape__run-progress-track {
  height: 8px;
  border-radius: 999px;
  background: #e6edf7;
  overflow: hidden;
}

.scrape__run-progress-fill {
  height: 100%;
  width: 0%;
  border-radius: 999px;
  background: #4d68a7;
  transition: width 0.35s ease;
}

.scrape__run-progress-fill.is-indeterminate {
  width: 32%;
  animation: scrape-progress-slide 1.4s ease-in-out infinite;
}

.scrape__run-progress-label {
  display: block;
  margin-top: 0.35rem;
  color: #64748b;
  font-size: 12px;
  font-variant-numeric: tabular-nums;
}

@keyframes scrape-progress-slide {
  0% { transform: translateX(-120%); }
  100% { transform: translateX(350%); }
}

.scrape__timer {
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  min-width: 5.5rem;
}

.scrape__sync-main-progress {
  margin: 1rem 1rem 0;
  padding: 1rem 1.25rem;
  border: 1px solid #ddd;
  border-radius: 8px;
  background: #fafafa;
}

.scrape__sync-main-status {
  margin: 0 0 0.5rem;
  color: #555;
  font-size: 14px;
  font-weight: 600;
}

.scrape__sync-main-bullets {
  margin: 0;
  padding: 0 0 0 1.25rem;
  list-style: disc;
  color: #333;
  font-size: 14px;
}

.scrape__sync-main-bullets li {
  margin: 0.15rem 0;
}

.scrape__sync-main-bullet--failed {
  color: #842029;
}

.scrape__photo-summary {
  margin: 0 1rem 0.75rem;
  color: #444;
  font-size: 14px;
}

.scrape__photo-summary p {
  margin: 0;
}

.scrape__th--photo,
.scrape__cell--photo {
  width: calc(44px * 1.1);
  padding-right: 0.25rem;
}

.scrape__cell--location {
  max-width: 14rem;
  max-height: 3.2rem;
  overflow: hidden;
}

.scrape__patient-photo-img {
  display: block;
  width: calc(36px * 1.1);
  height: calc(36px * 1.1);
  border-radius: 4px;
  object-fit: cover;
}

.scrape__status {
  opacity: 0.92;
}

.scrape__results {
  margin-top: 1rem;
}

.scrape__placeholder {
  margin: 0;
  padding: 1.25rem 1rem;
  color: #555;
  font-size: 14px;
}

.scrape__summary {
  margin-bottom: 0.75rem;
  font-size: 14px;
  color: #333;
}

.scrape__summary p {
  margin: 0;
}

.scrape__cell--mono {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 12px;
}

.scrape__error {
  padding: 1rem 1.25rem;
  border-radius: 8px;
  border: 1px solid #f5c2c7;
  background: #f8d7da;
  color: #842029;
  font-size: 14px;
}

.scrape__error p {
  margin: 0 0 0.5rem;
}

.scrape__error p:last-child {
  margin-bottom: 0;
}

.scrape__notice {
  padding: 1rem 1.25rem;
  margin-bottom: 1rem;
  border-radius: 8px;
  border: 1px solid #b6d4fe;
  background: #cfe2ff;
  color: #084298;
  font-size: 14px;
}

.scrape__notice p {
  margin: 0 0 0.5rem;
}

.scrape__notice p:last-child {
  margin-bottom: 0;
}

.scrape__session-status {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.75rem;
  margin: 1rem 1.25rem 1rem;
  padding: 0.875rem 1rem;
  border-radius: 8px;
  border: 1px solid #dee2e6;
  background: #f8f9fa;
  font-size: 14px;
}

.scrape__session-status-top {
  display: flex;
}

.scrape__session-status-main {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.scrape__session-status--ok {
  border-color: #badbcc;
  background: #d1e7dd;
  color: #0f5132;
}

.scrape__session-status--warn {
  border-color: #ffecb5;
  background: #fff3cd;
  color: #664d03;
}

.scrape__session-status-copy {
  flex: 1;
}

.scrape__session-status-header {
  margin-bottom: 0.25rem;
}

.scrape__session-status-title {
  margin: 0;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.scrape__session-env-badge {
  display: inline-block;
  padding: 0.1rem 0.45rem;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.scrape__session-env-badge--sandbox {
  background: rgba(15, 81, 50, 0.12);
  color: #0f5132;
}

.scrape__session-env-badge--production {
  background: rgba(47, 111, 237, 0.14);
  color: #1e4fad;
}

.scrape__session-status--production {
  border-color: #c7d7fe;
  background: #eef2ff;
  color: #1e40af;
}

.scrape__session-status-hint--production {
  color: #1e40af;
}

.scrape__env-switch {
  display: inline-flex;
  border: 1px solid #ced4da;
  border-radius: 6px;
  overflow: hidden;
  background: #fff;
}

.scrape__env-switch-button {
  border: 0;
  background: transparent;
  color: #495057;
  padding: 0.35rem 0.75rem;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}

.scrape__env-switch-button + .scrape__env-switch-button {
  border-left: 1px solid #ced4da;
}

.scrape__env-switch-button--active {
  background: #2f6fed;
  color: #fff;
}

.scrape__env-switch-button:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.scrape__session-status-message {
  margin: 0;
}

.scrape__session-status-hint {
  margin: 0.5rem 0 0;
  font-size: 13px;
}

.scrape__session-status-command {
  margin: 0.5rem 0 0;
  font-size: 12px;
}

.scrape__session-status-command code {
  display: inline-block;
  padding: 0.25rem 0.5rem;
  border-radius: 4px;
  background: rgba(0, 0, 0, 0.06);
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.scrape__session-reconnect-button {
  border: 1px solid currentColor;
  border-radius: 6px;
  background: transparent;
  color: inherit;
  cursor: pointer;
  font: inherit;
  padding: 0.45rem 0.85rem;
  white-space: nowrap;
}

.scrape__session-reconnect-button:hover:not(:disabled) {
  background: rgba(0, 0, 0, 0.05);
}

.scrape__session-reconnect-button:disabled {
  cursor: not-allowed;
  opacity: 0.6;
}

.scrape__session-actions {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.scrape__session-sign-in-button {
  border: 1px solid currentColor;
  border-radius: 6px;
  background: transparent;
  color: inherit;
  cursor: pointer;
  font: inherit;
  padding: 0.45rem 0.85rem;
  white-space: nowrap;
}

.scrape__session-sign-in-button--batch {
  font-size: 0.92em;
}

.scrape__session-sign-in-button:hover:not(:disabled) {
  background: rgba(0, 0, 0, 0.05);
}

.scrape__session-sign-in-button:disabled {
  cursor: not-allowed;
  opacity: 0.6;
}

.scrape__credentials {
  margin-top: 0.75rem;
  font-size: 0.9rem;
}

.scrape__credentials summary {
  cursor: pointer;
  font-weight: 600;
}

.scrape__credentials-form {
  display: grid;
  gap: 0.75rem;
  margin-top: 0.75rem;
  max-width: 22rem;
}

.scrape__credentials-form input {
  width: 100%;
}

.scrape__patient-row {
  cursor: pointer;
}

.scrape__patient-row:hover {
  background: rgba(0, 0, 0, 0.03);
}

.scrape__patient-row--selected {
  background: rgba(47, 111, 237, 0.08);
}

.scrape__patient-detail-cell {
  padding: 0.75rem 1rem 1rem;
  background: #fafafa;
  border-top: 1px solid #ececec;
}

.scrape__patient-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}

.scrape__section-action {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.scrape__section-action-form {
  display: inline;
  margin: 0;
}

.scrape__section-timer {
  font-variant-numeric: tabular-nums;
  font-size: 13px;
  color: #555;
  min-width: 4.5rem;
}

.scrape__section-button {
  appearance: none;
  border: 1px solid #cfd8e3;
  border-radius: 999px;
  background: #fff;
  color: #1f2937;
  padding: 0.4rem 0.9rem;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}

.scrape__section-button:hover:not(:disabled) {
  border-color: #2f6fed;
  color: #2f6fed;
}

.scrape__section-button:disabled {
  opacity: 0.6;
  cursor: wait;
}

.scrape__patient-panel {
  min-height: 1rem;
}

.scrape__section-loading,
.scrape__section-empty,
.scrape__section-summary {
  margin: 0 0 0.75rem;
  font-size: 14px;
  color: #444;
}

.scrape__section-table {
  margin-top: 0.25rem;
}

.scrape__section-error {
  padding: 0.75rem 1rem;
  border-radius: 8px;
  border: 1px solid #f5c2c7;
  background: #f8d7da;
  color: #842029;
  font-size: 14px;
}

.scrape__section-error p {
  margin: 0 0 0.35rem;
}

.scrape__section-error p:last-child {
  margin-bottom: 0;
}

.scrape__back-link {
  display: inline-block;
  margin-bottom: 0.35rem;
  color: rgba(255, 255, 255, 0.92);
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
}

.scrape__back-link:hover {
  color: #fff;
  text-decoration: underline;
}

.scrape__patient-top {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.scrape__patient-header {
  margin-top: 1rem;
  padding: 1rem 1.25rem;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #fff;
}

.scrape__patient-fields {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
  gap: 0.85rem 1.25rem;
  margin: 0;
}

.scrape__patient-field {
  margin: 0;
}

.scrape__patient-field-label {
  margin: 0 0 0.2rem;
  font-size: 12px;
  font-weight: 600;
  color: #6b7280;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.scrape__patient-field-value {
  margin: 0;
  font-size: 14px;
  color: #111827;
}

.scrape__tabs {
  margin-top: 1.25rem;
}

.scrape__tab-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  border-bottom: 1px solid #e5e7eb;
}

.scrape__tab {
  appearance: none;
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  background: transparent;
  color: #4b5563;
  padding: 0.65rem 1rem;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
}

.scrape__tab:hover {
  color: #2f6fed;
}

.scrape__tab--active {
  color: #2f6fed;
  border-bottom-color: #2f6fed;
}

.scrape__tab-panel {
  padding-top: 1rem;
}

.scrape__section-action--tab {
  margin-bottom: 0.85rem;
}

.scrape__form-schedule {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-bottom: 0.85rem;
  max-width: 44rem;
}

.scrape__form-schedule-row {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
}

.scrape__form-schedule-action {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.35rem;
  min-width: 18rem;
}

.scrape__form-schedule-form {
  display: block;
  margin: 0;
}

.scrape__form-schedule-action .scrape__section-button {
  width: 100%;
}

.scrape__form-schedule-progress-wrap {
  display: none;
  width: 100%;
}

.scrape__form-schedule-progress-wrap.is-active,
.scrape__form-schedule-form[aria-busy="true"] + .scrape__form-schedule-progress-wrap {
  display: block;
}

.scrape__form-schedule-progress {
  display: block;
  width: 100%;
  height: 4px;
  background: rgba(45, 74, 124, 0.15);
  border-radius: 999px;
  overflow: hidden;
}

.scrape__form-schedule-progress-bar {
  display: block;
  height: 100%;
  width: 0;
  background: #2d4a7c;
  border-radius: 999px;
  animation: scrape-form-schedule-progress 15s linear forwards;
}

@keyframes scrape-form-schedule-progress {
  from { width: 0%; }
  to { width: 100%; }
}

.scrape__form-schedule-meta {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.15rem;
  align-self: center;
  min-width: 4.5rem;
}

.scrape__form-schedule-timer {
  min-width: 4.5rem;
}

.scrape__form-schedule-status {
  font-size: 13px;
  font-weight: 600;
  color: #1f2937;
}

.scrape__form-schedule-status--error {
  color: #b42318;
}

.scrape__care-plan-build-results-host {
  margin-top: 1.25rem;
}

.scrape__care-plan-build-results {
  border: 1px solid #d8e0ea;
  border-radius: 12px;
  background: #f8fafc;
  padding: 1rem 1.1rem;
}

.scrape__care-plan-build-results-heading {
  margin: 0 0 0.35rem;
  font-size: 1rem;
  font-weight: 700;
  color: #1f2937;
}

.scrape__care-plan-build-results-summary {
  margin: 0 0 0.85rem;
  color: #4b5563;
  font-size: 0.92rem;
}

.scrape__care-plan-build-results-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.85rem;
}

.scrape__care-plan-build-result {
  border-top: 1px solid #e5e7eb;
  padding-top: 0.85rem;
}

.scrape__care-plan-build-result:first-child {
  border-top: 0;
  padding-top: 0;
}

.scrape__care-plan-build-result-title {
  font-weight: 700;
  color: #111827;
  margin-bottom: 0.35rem;
}

.scrape__care-plan-build-result-confidence {
  margin-left: 0.5rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: #6b7280;
}

.scrape__care-plan-build-result-justifications {
  margin: 0;
  padding-left: 1.1rem;
  color: #374151;
  font-size: 0.92rem;
}

.scrape__care-plan-build-result-empty {
  margin: 0;
  color: #6b7280;
  font-size: 0.92rem;
}

.scrape__section-content {
  min-height: 1rem;
}

.hidden {
  display: none;
}

.admin-page {
  width: 100%;
  max-width: none;
  padding: 2rem 0 3rem;
}

.view-shell .admin-page {
  padding-top: 0.25rem;
  padding-bottom: 1.5rem;
}

.admin-page__current-facility {
  width: 100%;
  max-width: none;
  padding: 0.75rem 0 0;
  font-size: 0.875rem;
  color: #374151;
}

.admin-page__current-facility strong {
  color: #111827;
}

.admin-page__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.admin-page__header-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-shrink: 0;
}

.admin-page__header-form {
  display: inline;
  margin: 0;
}

.admin-page__header-form button.admin-page__secondary-action {
  cursor: pointer;
  font: inherit;
}

.admin-page__title {
  margin: 0.25rem 0 0;
  font-size: 1.75rem;
  font-weight: 600;
  color: #222;
}

.admin-page__subtitle {
  margin: 2rem 0 1rem;
  font-size: 1.125rem;
  font-weight: 700;
  color: #333;
}

.admin-page__back-link {
  display: inline-block;
  margin-bottom: 0.25rem;
  font-size: 0.875rem;
  color: #2f6fed;
  text-decoration: none;
}

.admin-page__back-link:hover {
  text-decoration: underline;
}

.admin-page__primary-action {
  display: inline-block;
  padding: 0.625rem 1rem;
  border-radius: 8px;
  background: #2f6fed;
  color: #fff;
  font-size: 0.875rem;
  font-weight: 600;
  text-decoration: none;
}

.admin-page__primary-action:hover {
  background: #2558c7;
}

.admin-page__secondary-action {
  display: inline-block;
  padding: 0.5rem 0.875rem;
  border-radius: 8px;
  border: 1px solid #d1d5db;
  background: #fff;
  color: #374151;
  font-size: 0.875rem;
  font-weight: 600;
  text-decoration: none;
}

.admin-page__secondary-action:hover {
  background: #f9fafb;
}

button.admin-page__secondary-action {
  cursor: pointer;
  font: inherit;
}

.settings-form__edit {
  display: none;
}

.settings-form--editing .settings-form__view {
  display: none;
}

.settings-form--editing .settings-form__edit {
  display: block;
}

.form-definitions-table--editing .care-plan-titles-table__add-wrapper,
.form-definitions-table--editing .catalog-table__add-section {
  display: block;
}

.form-definitions-table--editing .admin-table-wrapper + .catalog-table__add-section {
  margin-top: 2rem;
}

.care-plan-titles-table__add-wrapper,
.catalog-table__add-section {
  display: none;
  margin-top: 2rem;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.catalog-table__add-heading {
  margin: 0 0 0.5rem;
  font-size: 0.95rem;
  font-weight: 700;
  color: #6b7280;
}

.catalog-table__add-help {
  margin: 0 0 1rem;
}

.catalog-table__add-fields {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 1rem 1.5rem;
}

.catalog-table__add-field {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 0.375rem;
  flex: 1 1 12rem;
  max-width: 24rem;
}

.catalog-table__add-field--narrow {
  flex: 0 1 14rem;
  max-width: 16rem;
}

.catalog-table__add-field--action {
  flex: 0 0 auto;
  max-width: none;
}

.catalog-table__add-submit {
  height: 2.25rem;
  padding-top: 0;
  padding-bottom: 0;
}

.catalog-table__add-field-label {
  display: block;
  margin: 0;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.25;
  color: #6b7280;
}

.catalog-table__add-field .admin-form__inline-input {
  box-sizing: border-box;
  display: block;
  width: 100%;
  min-width: 0;
  height: 2.25rem;
  margin: 0;
  padding: 0.4rem 0.6rem;
  font: inherit;
  font-size: 0.9rem;
  line-height: 1.25;
  background-color: #fff;
}

.catalog-table__add-field select.admin-form__inline-input {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 1.75rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5L6 8L9.5 4.5' stroke='%236b7280' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.6rem center;
  background-size: 12px;
}

.catalog-table__add-section > .admin-table-wrapper {
  margin-top: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.catalog-table__add-section .admin-table td {
  padding: 0.25rem 1rem 0.25rem 0;
  border-bottom: 0;
  vertical-align: bottom;
}

.catalog-table__add-section .admin-table td:last-child {
  padding-right: 0;
}

.form-definitions-table__add-label-row td {
  padding: 2rem 1rem 0.75rem;
  border-bottom: 0;
  background: transparent;
}

.form-definitions-table__add-label-row .catalog-table__add-heading {
  margin-top: 0;
}

.admin-form__field .settings-form__view {
  color: #111827;
}

.admin-page__section-header {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 1rem;
  margin: 2rem 0 1rem;
}

.admin-subnav {
  display: flex;
  gap: 0.5rem;
  margin-top: 0.75rem;
}

.admin-subnav__item {
  display: inline-block;
  padding: 0.375rem 0.75rem;
  border-radius: 999px;
  color: #4b5563;
  font-size: 0.875rem;
  font-weight: 600;
  text-decoration: none;
}

.admin-subnav__item:hover {
  background: #f3f4f6;
}

.admin-subnav__item--selected {
  background: #eef3ff;
  color: #2f6fed;
}

.admin-tabs {
  margin-top: 2rem;
}

.admin-tabs__list {
  display: flex;
  gap: 0.25rem;
  border-bottom: 1px solid #e5e7eb;
  margin-bottom: 1rem;
}

.admin-tabs__tab {
  appearance: none;
  background: none;
  border: 0;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  color: #4b5563;
  padding: 0.65rem 1rem;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
}

.admin-tabs__tab:hover {
  color: #2f6fed;
}

.admin-tabs__tab--active {
  color: #2f6fed;
  border-bottom-color: #2f6fed;
}

.admin-tabs__panel .admin-page__section-header {
  margin-top: 0;
}

.admin-flash {
  margin: 0 0 1rem;
  padding: 0.75rem 0.875rem;
  border-radius: 8px;
  font-size: 0.9rem;
}

.admin-flash--alert {
  background: #fdecea;
  color: #b42318;
}

.admin-flash--notice {
  background: #ecfdf3;
  color: #027a48;
}

.admin-table-wrapper {
  overflow-x: auto;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  background: #fff;
}

.admin-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
}

.admin-table th,
.admin-table td {
  padding: 0.75rem 1rem;
  text-align: left;
  border-bottom: 1px solid #eef0f2;
  vertical-align: top;
}

.admin-table th {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #6b7280;
  background: #f9fafb;
}

.admin-table__row--clickable {
  cursor: pointer;
  transition: background-color 0.12s ease;
}

.admin-table__row--clickable:hover {
  background: #f9fafb;
}

.admin-table__cell--name {
  font-weight: 600;
  color: #111827;
}

.admin-table__actions {
  white-space: nowrap;
}

.admin-table__actions a {
  margin-right: 0.75rem;
  color: #2f6fed;
  text-decoration: none;
}

.admin-table__actions a:hover {
  text-decoration: underline;
}

.admin-table__delete-form {
  display: inline;
}

.admin-table__delete-button {
  padding: 0;
  border: 0;
  background: none;
  color: #b42318;
  font: inherit;
  font-size: inherit;
  cursor: pointer;
  text-decoration: none;
}

.admin-table__delete-button:hover {
  text-decoration: underline;
}

.organization-details > .admin-page__header {
  margin-bottom: 0;
}

.admin-page__header-main {
  flex: 1;
  min-width: 0;
  width: 100%;
}

.admin-page__title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.admin-page__title-row .admin-page__title {
  margin: 0;
  min-width: 0;
}

.organization-details__actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-shrink: 0;
}

.organization-details__actions .admin-page__secondary-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 5.25rem;
  height: 2.25rem;
  padding: 0;
  margin: 0;
  line-height: 1;
  text-align: center;
  appearance: none;
  -webkit-appearance: none;
}

.organization-details__drawer {
  display: grid;
  grid-template-rows: 0fr;
  overflow: hidden;
  transition: grid-template-rows 0.25s ease;
}

.organization-details.is-open .organization-details__drawer {
  grid-template-rows: 1fr;
}

.organization-details__panel {
  overflow: hidden;
  min-height: 0;
}

.organization-details .admin-details {
  margin: 0.75rem 0 0;
}

@media (prefers-reduced-motion: reduce) {
  .organization-details__drawer {
    transition: none;
  }
}

.admin-details {
  margin: 0 0 2rem;
  padding: 1.25rem;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  background: #fff;
}

.admin-details__row {
  display: grid;
  grid-template-columns: 11rem 1fr;
  gap: 0.75rem 1rem;
  padding: 0.625rem 0;
  border-bottom: 1px solid #f3f4f6;
}

.admin-details__row:last-child {
  border-bottom: 0;
}

.admin-details__row dt {
  margin: 0;
  font-weight: 600;
  color: #4b5563;
}

.admin-details__row dd {
  margin: 0;
  color: #111827;
}

.admin-muted {
  color: #6b7280;
}

.admin-code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 0.85em;
}

.admin-badge {
  display: inline-block;
  margin-right: 0.5rem;
  padding: 0.125rem 0.5rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 700;
}

.admin-badge--success {
  background: #ecfdf3;
  color: #027a48;
}

.admin-badge--warning {
  background: #fffaeb;
  color: #b54708;
}

.admin-form {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  max-width: 36rem;
}

.admin-form__setup-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin: 0 0 1rem;
}

.admin-form__setup-item-label {
  font-size: 0.9rem;
  font-weight: 400;
  color: inherit;
  white-space: nowrap;
}

.admin-form__setup-item .admin-form__setup-item-input {
  width: 6.25rem;
  min-width: 0;
  max-width: 6.25rem;
  flex: 0 0 auto;
}

.form-definitions-table__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.form-definitions-table__header .admin-form__setup-item {
  margin-bottom: 0;
}

.form-definitions-table__actions,
.form-definitions-table__edit-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-shrink: 0;
}

.form-definitions-table__view-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.form-definitions-table__edit,
.form-definitions-table__add-row {
  display: none;
}

.form-definitions-table:not(.form-definitions-table--editing) col.form-definitions-table__actions-column,
.form-definitions-table:not(.form-definitions-table--editing) .form-definitions-table__actions-column {
  display: none;
}

.form-definitions-table--editing .form-definitions-table__view {
  display: none;
}

.form-definitions-table--editing .form-definitions-table__edit {
  display: inline-block;
}

.form-definitions-table--editing .form-definition-row__view {
  display: none;
}

.form-definitions-table--editing .form-definition-row__edit {
  display: block;
}

.form-definitions-table--editing .form-definitions-table__add-row {
  display: table-row;
}

.form-definitions-table--editing .form-definition-row {
  background: #f9fafb;
}

.form-definitions-table--editing .admin-table__drag-handle {
  opacity: 0.35;
  pointer-events: none;
  cursor: not-allowed;
}

.admin-form__section {
  margin: 0;
  padding: 1.25rem;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  background: #fff;
}

.admin-form__section legend {
  float: left;
  width: 100%;
  padding: 0;
  margin: 0 0 0.75rem;
  font-size: 0.95rem;
  font-weight: 700;
  color: #333;
}

.admin-form__section > :not(legend) {
  clear: both;
}

.admin-form__field {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  margin-top: 1rem;
}

.admin-form__field:first-of-type {
  margin-top: 0;
}

.admin-form__field label {
  font-size: 0.875rem;
  font-weight: 600;
  color: #333;
}

.admin-form__field input,
.admin-form__field select {
  width: 100%;
  box-sizing: border-box;
  padding: 0.625rem 0.75rem;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  font: inherit;
}

.admin-form__field input:focus,
.admin-form__field select:focus {
  outline: none;
  border-color: #2f6fed;
  box-shadow: 0 0 0 3px rgba(47, 111, 237, 0.15);
}

.admin-form__field input.admin-form__input--narrow {
  width: 4.75rem;
  max-width: 4.75rem;
}

.admin-form__file-input {
  font-size: 0.9rem;
}

.user-photo {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  background: #e5e7eb;
}

.user-photo--profile {
  margin: 0 0 1.5rem;
}

.user-photo--form {
  margin-bottom: 0.75rem;
}

.user-photo__img,
.user-photo__img--form-preview {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.admin-form__errors {
  padding: 0.875rem 1rem;
  border-radius: 8px;
  background: #fdecea;
  color: #b42318;
  font-size: 0.9rem;
}

.admin-form__errors ul {
  margin: 0.5rem 0 0;
  padding-left: 1.25rem;
}

.admin-form__actions {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.admin-form__submit {
  padding: 0.625rem 1rem;
  border: 0;
  border-radius: 8px;
  background: #2f6fed;
  color: #fff;
  font: inherit;
  font-size: 0.875rem;
  font-weight: 600;
  cursor: pointer;
}

.admin-form__submit:hover {
  background: #2558c7;
}

.admin-form__cancel {
  color: #4b5563;
  text-decoration: none;
}

.admin-form__cancel:hover {
  text-decoration: underline;
}

.visually-hidden {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

.admin-form__inline-input {
  box-sizing: border-box;
  width: 100%;
  min-width: 12rem;
  height: 2.25rem;
  padding: 0.4rem 0.6rem;
  border: 1px solid #d1d5db;
  border-radius: 0.375rem;
  font: inherit;
  line-height: 1.25;
  background-color: #fff;
}

select.admin-form__inline-input {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 1.7rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5L6 8L9.5 4.5' stroke='%236b7280' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.5rem center;
  background-size: 12px;
}

.admin-form__inline-input:focus {
  outline: 2px solid #3b82f6;
  outline-offset: 1px;
  border-color: #3b82f6;
}

.admin-table--care-plan-titles {
  table-layout: fixed;
  width: 100%;
}

.admin-table--care-plan-titles col.admin-table__col--care-plan-canonical {
  width: 32%;
}

.admin-table--care-plan-titles col.admin-table__col--care-plan-actions {
  width: 6.5rem;
}

.admin-table--care-plan-titles td {
  vertical-align: middle;
}

.admin-table--care-plan-titles td:last-child {
  min-width: 0;
}

.care-plan-titles-table .catalog-table__add-section .admin-table th {
  text-transform: none;
  letter-spacing: 0;
}

.care-plan-titles-table .catalog-table__add-section .admin-table th .catalog-table__add-field-label {
  margin: 0;
  color: inherit;
}

.care-plan-titles-table .catalog-table__add-section .admin-table td {
  padding: 0.75rem 1rem;
  vertical-align: middle;
}

.care-plan-titles-table .catalog-table__add-section .admin-form__inline-input {
  width: 100%;
}

.form-definitions-table--editing .admin-table--care-plan-titles .form-definitions-table__edit {
  display: flex;
  align-items: center;
  min-height: 2.25rem;
}

.admin-table--care-plan-titles .admin-table__delete-form {
  display: flex;
  align-items: center;
  margin: 0;
}

.admin-table--care-plan-titles .admin-form__inline-input {
  min-width: 0;
}

.admin-form__subsection-title {
  margin: 1.25rem 0 0.75rem;
  font-size: 1rem;
  font-weight: 600;
}

.admin-form--inline-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
  gap: 0.75rem 1rem;
  align-items: end;
}

.admin-form__field--checkbox {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.admin-table__drag-handle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.25rem;
  border: 0;
  border-radius: 0.375rem;
  background: none;
  color: #6b7280;
  cursor: grab;
  touch-action: none;
}

.admin-table__drag-handle:hover {
  color: #374151;
  background: #f3f4f6;
}

.admin-table__drag-handle:active {
  cursor: grabbing;
}

.form-definition-row--dragging {
  opacity: 0.55;
}

.form-definition-row--editing .admin-table__drag-handle {
  opacity: 0.35;
  pointer-events: none;
  cursor: not-allowed;
}

.admin-table__edit-row td {
  background: #f9fafb;
}

.admin-table--form-definitions {
  table-layout: fixed;
  width: 100%;
}

.admin-table--form-definitions th,
.admin-table--form-definitions td {
  vertical-align: middle;
}

.admin-table--form-definitions col.admin-table__col--reorder {
  width: 3.5rem;
}

.admin-table--form-definitions th.admin-table__col--reorder,
.admin-table--form-definitions .admin-table__cell--reorder {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  text-align: center;
}

.admin-table--form-definitions .admin-table__cell--reorder .admin-table__drag-handle {
  margin: 0 auto;
}

.admin-table--form-definitions col.admin-table__col--department {
  width: 8.5rem;
}

.admin-table--form-definitions col.admin-table__col--title {
  width: 12rem;
}

.admin-table__cell--title {
  min-width: 10rem;
}

.admin-table--form-definitions col.admin-table__col--scope {
  width: 8rem;
}

.admin-table--form-definitions col.admin-table__col--occasions {
  width: 10rem;
}

.admin-table--form-definitions col.admin-table__col--cadence {
  width: 6.5rem;
}

.admin-table--form-definitions col.admin-table__col--rule {
  width: 100%;
}

.admin-table--form-definitions col.admin-table__col--due {
  width: 9.5rem;
}

.admin-table--form-definitions th.admin-table__col--due,
.admin-table--form-definitions .admin-table__cell--due {
  padding-left: 0.4rem;
  padding-right: 0.4rem;
}

.admin-table--form-definitions .admin-table__cell--due .admin-form__inline-input {
  min-width: 0;
  width: 100%;
}

.admin-table--form-definitions col.admin-table__col--start-time {
  width: 9rem;
}

.admin-table--form-definitions th.admin-table__col--start-time,
.admin-table--form-definitions .admin-table__cell--start-time {
  padding-left: 0.4rem;
  padding-right: 0.4rem;
}

.admin-table--form-definitions .admin-table__cell--start-time .admin-form__inline-input {
  min-width: 0;
  width: 100%;
}

.admin-table--form-definitions col.admin-table__col--yes-no {
  width: 4.5rem;
}

.admin-table--form-definitions th.admin-table__col--yes-no,
.admin-table--form-definitions .admin-table__cell--yes-no {
  padding-left: 0.35rem;
  padding-right: 0.35rem;
}

.admin-table--form-definitions .admin-table__cell--yes-no .admin-form__inline-input {
  min-width: 0;
  width: 100%;
  padding-left: 0.4rem;
  padding-right: 1.35rem;
  background-position: right 0.28rem center;
}

.admin-table--form-definitions col.admin-table__col--actions {
  width: 9rem;
}

.admin-table__cell--yes-no {
  min-width: 4.5rem;
  text-align: center;
}

.admin-table__cell--yes-no .form-definition-row__edit .admin-form__inline-input {
  text-align: left;
}

.admin-table__cell--scope,
.admin-table__cell--cadence,
.admin-table__cell--occasions,
.admin-table__cell--rule {
  font-size: 0.875rem;
}

.admin-table__cell--occasions .form-definition-row__view,
.admin-table__cell--rule .form-definition-row__view {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}

.form-definitions-table--editing .admin-table__cell--occasions .form-definition-row__view,
.form-definitions-table--editing .admin-table__cell--rule .form-definition-row__view,
.form-definition-row--editing .admin-table__cell--occasions .form-definition-row__view,
.form-definition-row--editing .admin-table__cell--rule .form-definition-row__view,
.form-definition-row--always-edit .admin-table__cell--occasions .form-definition-row__view,
.form-definition-row--always-edit .admin-table__cell--rule .form-definition-row__view {
  display: none;
}

.occasions-select {
  position: relative;
  min-width: 0;
}

.occasions-select__trigger {
  display: flex;
  align-items: center;
  width: 100%;
  min-width: 0;
  color: inherit;
  padding-right: 1.7rem;
  text-align: left;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5L6 8L9.5 4.5' stroke='%236b7280' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.5rem center;
  background-size: 12px;
}

.occasions-select__trigger:disabled {
  cursor: default;
  opacity: 0.7;
}

.occasions-select__summary {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.occasions-select__menu {
  position: fixed;
  inset: auto;
  margin: 0;
  z-index: 40;
  display: none;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.4rem 0.5rem;
  border: 1px solid #d1d5db;
  border-radius: 0.375rem;
  background: #fff;
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.12);
}

.occasions-select__menu:popover-open {
  display: flex;
}

.occasions-select__option {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.2rem 0.15rem;
  font-size: 0.8125rem;
  line-height: 1.2;
  white-space: nowrap;
  cursor: pointer;
}

.occasions-select__option input {
  margin: 0;
}

.admin-table__text-button {
  padding: 0;
  border: 0;
  background: none;
  color: #2f6fed;
  font: inherit;
  font-size: 0.875rem;
  cursor: pointer;
}

.admin-table__text-button:hover {
  text-decoration: underline;
}

.admin-table__text-button--primary {
  font-weight: 600;
}

.form-definition-row__edit {
  display: none;
}

.form-definition-row--editing .form-definition-row__view,
.form-definition-row--always-edit .form-definition-row__view {
  display: none;
}

.form-definition-row--editing .form-definition-row__edit,
.form-definition-row--always-edit .form-definition-row__edit {
  display: block;
}

.form-definition-row--editing .form-definition-row__view.admin-table__actions {
  display: none;
}

.form-definition-row--editing .form-definition-row__edit.admin-table__actions,
.form-definition-row--always-edit .admin-table__cell--actions {
  display: flex;
  gap: 0.75rem;
  align-items: center;
}

.form-definition-row--editing {
  background: #f9fafb;
}

.form-definition-row:not(.form-definition-row--editing) .admin-table__cell--actions .form-definition-row__view.admin-table__actions {
  display: flex;
  gap: 0.75rem;
  align-items: center;
}

.admin-table--form-definitions .admin-form__inline-input {
  min-width: 0;
  width: 100%;
  height: 2.25rem;
}

.form-definitions-table__print-header {
  display: none;
}

.form-definitions-table__print-title {
  margin: 0 0 0.15rem;
  font-size: 1rem;
  font-weight: 600;
  color: #222;
}

.form-definitions-table__print-meta {
  margin: 0;
  font-size: 0.8125rem;
  color: #444;
}

@media print {
  html.form-definitions-print,
  html.form-definitions-print body,
  html.form-definitions-print .app-body,
  html.form-definitions-print .main-content,
  html.form-definitions-print .view-shell {
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
  }

  html.form-definitions-print .sidebar,
  html.form-definitions-print .view-shell > header,
  html.form-definitions-print .admin-page__header,
  html.form-definitions-print .admin-details,
  html.form-definitions-print .admin-flash,
  html.form-definitions-print .admin-tabs__list,
  html.form-definitions-print .admin-tabs__panel:not([data-panel="forms"]),
  html.form-definitions-print .admin-page__section-header,
  html.form-definitions-print .admin-form__setup-item,
  html.form-definitions-print .admin-table__col--reorder,
  html.form-definitions-print .admin-table__cell--reorder,
  html.form-definitions-print .form-definitions-table__actions-column,
  html.form-definitions-print .form-definitions-table__add-row,
  html.form-definitions-print .form-definition-row__edit,
  html.form-definitions-print .form-definitions-table__edit {
    display: none !important;
  }

  html.form-definitions-print .main-content {
    padding: 0 !important;
  }

  html.form-definitions-print .admin-page {
    max-width: none;
    padding: 0;
  }

  html.form-definitions-print .admin-tabs__panel[data-panel="forms"] {
    display: block !important;
  }

  html.form-definitions-print .admin-tabs__panel[data-panel="forms"][hidden] {
    display: block !important;
  }

  html.form-definitions-print .form-definitions-table {
    border: 0;
    margin: 0;
    padding: 0;
  }

  html.form-definitions-print .form-definitions-table__print-header {
    display: block !important;
    margin: 0 0 0.2in;
    padding: 0;
  }

  html.form-definitions-print .admin-table-wrapper {
    overflow: visible !important;
  }

  html.form-definitions-print .admin-table--form-definitions {
    table-layout: fixed;
    width: 100%;
    font-size: 7pt;
    line-height: 1.2;
    border-collapse: collapse;
  }

  html.form-definitions-print .admin-table--form-definitions thead {
    display: table-header-group;
  }

  html.form-definitions-print .admin-table--form-definitions th,
  html.form-definitions-print .admin-table--form-definitions td {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding: 0.08in 0.06in;
    border: 1px solid #bbb;
    vertical-align: middle;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  html.form-definitions-print .admin-table--form-definitions th {
    background: #f3f4f6 !important;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    font-size: 6.5pt;
  }

  html.form-definitions-print .admin-table--form-definitions tr {
    page-break-inside: avoid;
    break-inside: avoid;
  }

  html.form-definitions-print .admin-table--form-definitions col.admin-table__col--department {
    width: 7%;
  }

  html.form-definitions-print .admin-table--form-definitions col.admin-table__col--title {
    width: 19%;
  }

  html.form-definitions-print .admin-table--form-definitions col.admin-table__col--scope {
    width: 7%;
  }

  html.form-definitions-print .admin-table--form-definitions col.admin-table__col--occasions {
    width: 10%;
  }

  html.form-definitions-print .admin-table--form-definitions col.admin-table__col--cadence {
    width: 6%;
  }

  html.form-definitions-print .admin-table--form-definitions col.admin-table__col--rule {
    width: 22%;
  }

  html.form-definitions-print .admin-table--form-definitions col.admin-table__col--due {
    width: 11%;
  }

  html.form-definitions-print .admin-table--form-definitions col.admin-table__col--start-time {
    width: 7%;
  }

  html.form-definitions-print .admin-table--form-definitions col.admin-table__col--yes-no {
    width: 5%;
  }
}

/* Dataset week walkthrough chrome (title-bar date chips) */
.changes__top-bar--demo-week {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto auto;
  align-items: center;
  gap: 0.5rem;
}

.changes__top-bar--demo-week .title-bar-brand {
  justify-self: start;
  min-width: 0;
}

.changes__top-bar--demo-week .title-bar-nav {
  grid-column: 2;
  margin-left: 0.75rem;
}

.changes__top-bar--demo-week .changes__in-progress-top-bar-actions {
  margin-left: 0;
  justify-self: end;
}

.changes__top-bar--demo-week .title-bar-end {
  grid-column: -1;
  margin-left: 0;
  justify-self: end;
}

.demo-week__scheduling-center {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
}

.demo-week__scheduling-center .demo-week--compact {
  display: none;
}

.demo-week {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  min-width: 0;
}

.demo-week--strip {
  gap: 0.75rem;
}

.demo-week__days {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.demo-week__chip-form,
.demo-week__primary-form,
.demo-week__reset-form {
  display: inline-flex;
  margin: 0;
}

.demo-week__chip {
  box-sizing: border-box;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 2.15rem;
  height: 2rem;
  padding: 0.05rem 0.28rem;
  border: 1px solid transparent;
  border-radius: 0.4rem;
  background: transparent;
  color: #fff;
  font-family: inherit;
  font-size: 0.625rem;
  font-weight: 600;
  line-height: 1.05;
  letter-spacing: 0.01em;
  text-align: center;
  white-space: nowrap;
}

.demo-week__chip-dow {
  font-size: 0.5625rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.demo-week__chip-date {
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1;
}

.demo-week__chip-today {
  font-size: 0.5rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.demo-week__chip--today {
  background: #f8faff;
  color: #4D68A7;
  box-shadow: 0 1px 2px rgba(18, 24, 38, 0.08);
}

.demo-week__chip--past {
  opacity: 0.72;
  cursor: pointer;
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.28);
}

.demo-week__chip--past:hover {
  opacity: 0.95;
  background: rgba(255, 255, 255, 0.2);
}

.demo-week__chip--future {
  opacity: 0.55;
  cursor: pointer;
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.22);
}

.demo-week__chip--future:hover {
  opacity: 0.9;
  background: rgba(255, 255, 255, 0.2);
}

.demo-week__primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  appearance: none;
  border: none;
  border-radius: 999px;
  background: #f8faff;
  color: #4D68A7;
  padding: 0.28rem 0.7rem;
  font-size: 0.75rem;
  font-weight: 700;
  font-family: inherit;
  line-height: 1.2;
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
  box-shadow: 0 1px 2px rgba(18, 24, 38, 0.08);
}

.demo-week__primary:hover {
  background: #fff;
}

.demo-week__primary:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

.demo-week__reset {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  appearance: none;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.65);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  cursor: pointer;
  flex-shrink: 0;
}

.demo-week__reset:hover {
  background: rgba(255, 255, 255, 0.22);
}

.demo-week__reset:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

.demo-week__reset-icon {
  width: 1rem;
  height: 1rem;
}

.demo-week--compact {
  gap: 0.5rem;
}

.demo-week__compact-label {
  color: #fff;
  font-size: 0.8125rem;
  font-weight: 600;
  white-space: nowrap;
  letter-spacing: -0.01em;
}

@media (max-width: 860px) {
  .demo-week__scheduling-center .demo-week--strip {
    display: none;
  }

  .demo-week__scheduling-center .demo-week--compact {
    display: flex;
  }
}

/* -----------------------------------------------------------------------------
   Dashboard — four focus tiles. Visual prototype; sample rows, not live data.
   ----------------------------------------------------------------------------- */
.dashboard {
  --dashboard-type-scale: 0.88;
  --dashboard-width-scale: 1.25;
  --dashboard-task-slots: 5;
  --dashboard-gap: 36px;
}

.dashboard__top-bar-end {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 0.85rem;
  min-width: 0;
}

.dashboard .title-bar-end {
  margin-left: auto;
}

.dashboard__user {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  background: rgba(255, 255, 255, 0.28);
  border: 2px solid rgba(255, 255, 255, 0.9);
  box-sizing: border-box;
}

.dashboard__user-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.main-content:has(.dashboard) {
  padding: 0;
}

.dashboard .view__body {
  container-type: size;
  display: flex;
  align-items: flex-start;
  justify-content: safe center;
  padding: var(--title-bar-to-content-gap) 0 20px;
  box-sizing: border-box;
}

.dashboard__grid {
  /* Last week's desktop grid (~760px), then 25% wider. Do not shrink below that when the pane is short. */
  --dashboard-grid-min: calc(760px * var(--dashboard-width-scale));
  display: flex;
  flex-direction: column;
  gap: var(--dashboard-gap);
  margin-top: 0;
  width: min(
    max(
      var(--dashboard-grid-min),
      min(
        calc(var(--dashboard-width-scale) * 1.05 * (1.22 * (75% - var(--dashboard-gap)) + var(--dashboard-gap))),
        calc(var(--dashboard-width-scale) * 1.05 * (1.22 * (100cqh * 0.75 - var(--dashboard-gap)) + var(--dashboard-gap)))
      )
    ),
    100%
  );
  max-width: 100%;
  min-width: 0;
}

.dashboard__row {
  container-type: inline-size;
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: var(--dashboard-gap);
  row-gap: 8px;
}

.dashboard__tile {
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  height: calc((100cqw / 1.239 - 36px) / 2);
  min-width: 0;
  min-height: 0;
  background: #fff;
  border: none;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(77, 104, 167, 0.14);
  overflow: hidden;
}

.dashboard__tile-head {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.7rem 1rem;
  text-decoration: none;
  color: #fff;
  background: var(--dashboard-accent, #4d68a7);
}

.dashboard__tile-head:hover {
  background: #3f5690;
}

.dashboard__tile-icon {
  flex-shrink: 0;
  width: 1.35rem;
  height: 1.35rem;
  color: #fff;
}

.dashboard__tile-icon svg {
  display: block;
  width: 100%;
  height: 100%;
}

.dashboard__tile-title {
  margin: 0;
  font-size: calc(1.35rem * var(--dashboard-type-scale));
  font-weight: 600;
  letter-spacing: -0.01em;
  color: #fff;
}

.dashboard__row-note {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  height: calc(((100cqw / 1.239 - 36px) / 2 - 3.525rem) / var(--dashboard-task-slots));
  padding: 0 1.1rem;
  background: #fff;
  border: none;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(77, 104, 167, 0.14);
  color: var(--dashboard-accent, #4d68a7);
  font-size: calc(1.35rem * var(--dashboard-type-scale));
  font-weight: 600;
  text-decoration: none;
  gap: 0.5rem;
}

.dashboard__row-note-icon {
  flex-shrink: 0;
  width: 1.15rem;
  height: 1.15rem;
}

.dashboard__row-note-icon svg {
  display: block;
  width: 100%;
  height: 100%;
}

.dashboard__row-note-title {
  min-width: 0;
}

.dashboard__row-note-caret {
  margin-left: auto;
  flex-shrink: 0;
  width: 1.1rem;
  height: 1.1rem;
}

.dashboard__row-note-caret svg {
  display: block;
  width: 100%;
  height: 100%;
}

.dashboard__row-note:hover {
  background: #fafafa;
}

.dashboard__tile-summary {
  display: inline-flex;
  align-items: baseline;
  gap: 0.35rem;
  margin-left: auto;
  min-width: 0;
  flex-shrink: 0;
}

.dashboard__tile-count {
  color: #fff;
  font-size: calc(1.782rem * var(--dashboard-type-scale));
  font-weight: 600;
  letter-spacing: -0.01em;
  font-variant-numeric: tabular-nums;
}

.dashboard__tile-due {
  font-size: calc(15px * var(--dashboard-type-scale));
  font-weight: 400;
  letter-spacing: 0;
  white-space: nowrap;
}

.dashboard__tasks {
  list-style: none;
  margin: 0;
  padding: 0;
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  container-type: size;
}

.dashboard__task {
  display: grid;
  grid-template-columns: calc(8.08rem * 1.2) minmax(0, 1fr) max-content;
  align-items: center;
  flex: 0 0 calc(100cqh / var(--dashboard-task-slots));
  height: calc(100cqh / var(--dashboard-task-slots));
  box-sizing: border-box;
  column-gap: 0.65rem;
  padding: 0.45rem 1.1rem;
  border-top: 0;
  text-decoration: none;
  color: inherit;
  min-width: 0;
  min-height: 0;
}

.dashboard__tasks--peek {
  --dashboard-task-slots: 5.6;
  position: relative;
  overflow: hidden;
}

.dashboard__tasks--peek::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: calc(100cqh / var(--dashboard-task-slots) * 0.42);
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.4) 40%, #fff 100%);
  pointer-events: none;
  z-index: 1;
}

.dashboard__tasks--peek .dashboard__task {
  grid-template-columns: calc(6rem * 1.2) minmax(0, 1fr) max-content;
}

.dashboard__task + .dashboard__task {
  border-top: 1px solid #dcdcdc;
}

.dashboard__task--urgent + .dashboard__task--urgent {
  border-top: 2px solid #fff;
}

.dashboard__task:hover {
  background: #fafafa;
}

.dashboard__task--urgent {
  background: #fdf3d1;
}

.dashboard__task--urgent:hover {
  background: #f6e8b0;
}

.dashboard__task-patient {
  font-size: var(--patient-name-size);
  font-weight: 600;
  color: #000;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.dashboard__task--urgent .dashboard__task-patient {
  padding-left: calc(1.05em + 0.3rem);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0.8 1.2 18.4 15.8'%3E%3Cpath fill='%23d32f2f' d='M10 1.2 19.2 17H.8L10 1.2z'/%3E%3Cpath fill='%23fff' d='M9.1 6.4h1.8v4.6H9.1zm0 5.6h1.8v1.8H9.1z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: left center;
  background-size: 1.05em 0.9em;
}

.dashboard__task-kind {
  justify-self: start;
  max-width: 100%;
  font-size: var(--patient-info-size);
  font-weight: 600;
  color: var(--dashboard-task, #1a73e8);
  text-align: left;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.dashboard__task-meta {
  font-size: var(--patient-meta-size);
  font-weight: 500;
  color: #333;
  text-align: right;
  white-space: nowrap;
}

.dashboard__tile-head:focus-visible,
.dashboard__task:focus-visible {
  outline: 2px solid #2563eb;
  outline-offset: -2px;
}
