:root {
  /* TFA redesign roles; the local Formstoff snapshot remains immutable. */
  --tfa-color-canvas: #f5f7fa;
  --tfa-color-surface: #f0f3f8;
  --tfa-color-surface-raised: #ffffff;
  --tfa-color-text: #182c48;
  --tfa-color-text-subtle: #526276;
  --tfa-color-border: #dce3ed;
  --tfa-color-border-strong: #738399;
  --tfa-color-accent: #254f87;
  --tfa-color-accent-hover: #183b68;
  --tfa-color-on-accent: #ffffff;
  --tfa-color-focus: #1762bd;
  --tfa-color-success: #17643f;
  --tfa-color-success-soft: #e4f4eb;
  --tfa-color-warning: #805000;
  --tfa-color-warning-soft: #fff1cf;
  --tfa-color-error: #a0273f;
  --tfa-color-error-soft: #fbe8ec;
  --tfa-color-info: #175e75;
  --tfa-color-info-soft: #e3f2f6;
  --tfa-color-selected: #e9eff9;

  /* DISG presentation roles are deliberately independent of UI status roles. */
  --tfa-disg-d: #c62828;
  --tfa-disg-i: #f9a825;
  --tfa-disg-s: #2e7d32;
  --tfa-disg-g: #1565c0;
  --tfa-disg-on-d: #ffffff;
  --tfa-disg-on-i: #241b22;
  --tfa-disg-on-s: #ffffff;
  --tfa-disg-on-g: #ffffff;

  --tfa-font-body: var(--fs-font-body);
  --tfa-font-heading: var(--fs-font-body);
  --tfa-line-body: var(--fs-line-height-body);
  --tfa-line-heading: var(--fs-line-height-heading);
  --tfa-space-1: var(--fs-spacing-xs);
  --tfa-space-2: var(--fs-spacing-sm);
  --tfa-space-3: var(--fs-spacing-lg);
  --tfa-space-4: var(--fs-spacing-xl);
  --tfa-space-5: var(--fs-spacing-pane);
  --tfa-space-6: 32px;
  --tfa-space-7: 48px;
  --tfa-radius-control: 8px;
  --tfa-radius-card: 12px;
  --tfa-shadow-card: 0 2px 8px rgb(24 44 72 / 4%);
  --tfa-content-wide: 1320px;
  --tfa-content-reading: 760px;
  --tfa-touch-target: 44px;
}

html {
  background: var(--tfa-color-canvas);
  scroll-padding-top: var(--tfa-space-3);
}

.tfa-page {
  min-width: 0;
  display: flex;
  flex-direction: column;
  background: var(--tfa-color-canvas);
  color: var(--tfa-color-text);
  overflow-wrap: anywhere;
}

.tfa-page :where(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--tfa-color-focus);
  outline-offset: 3px;
  box-shadow: 0 0 0 2px var(--tfa-color-surface-raised);
}

.tfa-shell {
  width: min(var(--tfa-content-wide), calc(100% - 40px));
  min-width: 0;
  margin-inline: auto;
}

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

.tfa-skip-link {
  position: fixed;
  top: var(--tfa-space-2);
  left: var(--tfa-space-2);
  z-index: 100;
  min-height: var(--tfa-touch-target);
  display: inline-flex;
  align-items: center;
  border: 2px solid var(--tfa-color-accent);
  border-radius: var(--tfa-radius-control);
  background: var(--tfa-color-surface-raised);
  color: var(--tfa-color-accent);
  padding: var(--tfa-space-2) var(--tfa-space-3);
  font-weight: 700;
  transform: translateY(-180%);
  transition: none;
}

.tfa-skip-link:focus {
  transform: translateY(0);
}

.tfa-site-header {
  border-bottom: 1px solid var(--tfa-color-border);
  background: var(--tfa-color-surface-raised);

}

.tfa-site-header__inner {
  min-height: 72px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--tfa-space-4);
  padding-block: var(--tfa-space-2);
}

.tfa-brand {
  min-width: 0;
  max-width: 260px;
  display: inline-flex;
  align-items: center;
  gap: var(--tfa-space-3);
  color: var(--tfa-color-text);
  text-decoration: none;
}

.tfa-page a {
  color: var(--tfa-color-accent);
}

.tfa-page .tfa-brand:hover {
  color: var(--tfa-color-text);
}

.tfa-page .tfa-brand__mark {
  width: 38px;
  height: auto;
  max-width: none;
  flex: 0 0 auto;
  object-fit: contain;
}

.tfa-brand__copy {
  min-width: 0;
  display: grid;
  gap: 2px;
  line-height: 1.15;
}

.tfa-brand__title {
  font-family: var(--tfa-font-heading);
  font-size: 15px;
}

.tfa-brand__subtitle {
  color: var(--tfa-color-text-subtle);
  font-size: 12px;
}

.tfa-main-nav {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: var(--tfa-space-1);
  font-family: var(--tfa-font-heading);
  font-size: 14px;
  font-weight: 700;
}

.tfa-main-nav a {
  min-width: 0;
  min-height: var(--tfa-touch-target);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--tfa-radius-control);
  color: var(--tfa-color-text);
  padding: var(--tfa-space-2) 10px;
  text-align: center;
  text-decoration: none;
}

.tfa-page .tfa-main-nav a:hover,
.tfa-main-nav a[aria-current="page"] {
  background: var(--tfa-color-surface);
  color: var(--tfa-color-accent);
}

.tfa-main-nav a[aria-current="page"] {
  box-shadow: inset 0 -3px 0 var(--tfa-color-accent);
}

.tfa-message-region {
  min-height: var(--tfa-space-3);
  padding-top: var(--tfa-space-3);
}

.tfa-main {
  flex: 1 0 auto;
  padding-block: var(--tfa-space-5) var(--tfa-space-7);
}

.tfa-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--tfa-space-3);
  border-top: 1px solid var(--tfa-color-border);
  color: var(--tfa-color-text-subtle);
  padding-block: var(--tfa-space-4);
  font-size: 12px;
}

.tfa-footer a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

.tfa-footer__provenance {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: var(--tfa-space-2);
  flex-wrap: wrap;
}

.tfa-page .tfa-footer__neo-logo {
  width: auto;
  height: 16px;
  max-width: 120px;
  object-fit: contain;
  opacity: 0.52;
}

.tfa-page h1,
.tfa-page h2,
.tfa-page h3 {
  color: var(--tfa-color-text);
  font-family: var(--tfa-font-heading);
  line-height: var(--tfa-line-heading);
  overflow-wrap: break-word;
}

.tfa-page h1 {
  margin: 0;
  font-size: clamp(1.6rem, 2.5vw, 2rem);
}

.tfa-page h2 {
  margin: 0;
  font-size: clamp(1.2rem, 1.6vw, 1.45rem);
}

.tfa-page h3 {
  margin: 0;
  font-size: 1.1rem;
}

.tfa-page p {
  max-width: 72ch;
}

.tfa-eyebrow {
  margin: 0 0 var(--tfa-space-1);
  color: var(--tfa-color-accent);
  font-family: var(--tfa-font-heading);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.tfa-page-header {
  min-width: 0;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--tfa-space-6);
  margin-bottom: var(--tfa-space-6);
}

.tfa-page-header__copy {
  min-width: 0;
  max-width: min(100%, var(--tfa-content-reading));
}

.tfa-page-header__description {
  margin: var(--tfa-space-3) 0 0;
  color: var(--tfa-color-text-subtle);
  font-size: 1.05rem;
}

.tfa-action-bar {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: var(--tfa-space-2);
}

.tfa-button,
.tfa-pagination a,
.tfa-pagination span[aria-disabled="true"] {
  min-height: var(--tfa-touch-target);
  min-width: var(--tfa-touch-target);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  border: 1px solid transparent;
  border-radius: var(--tfa-radius-control);
  padding: var(--tfa-space-2) var(--tfa-space-4);
  font-family: var(--tfa-font-heading);
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
}

.tfa-page .tfa-button--primary {
  border-color: var(--tfa-color-accent);
  background: var(--tfa-color-accent);
  color: var(--tfa-color-on-accent);
}

.tfa-page .tfa-button--primary:not(:disabled):not([aria-disabled="true"]):is(:hover, :active) {
  border-color: var(--tfa-color-accent-hover);
  background: var(--tfa-color-accent-hover);
  color: var(--tfa-color-on-accent);
}

.tfa-page .tfa-button--secondary {
  border-color: var(--tfa-color-border-strong);
  background: var(--tfa-color-surface-raised);
  color: var(--tfa-color-accent);
}

.tfa-page .tfa-button--secondary:not(:disabled):not([aria-disabled="true"]):is(:hover, :active) {
  background: var(--tfa-color-surface);
  color: var(--tfa-color-accent-hover);
}

.tfa-page .tfa-button--danger {
  border-color: var(--tfa-color-error);
  background: var(--tfa-color-surface-raised);
  color: var(--tfa-color-error);
}
.tfa-page .tfa-button--danger:not(:disabled):not([aria-disabled="true"]):is(:hover, :active) {
  background: var(--tfa-color-error);
  color: var(--tfa-color-on-accent);
}

.tfa-button:disabled,
.tfa-button[aria-disabled="true"] {
  border-color: var(--tfa-color-border);
  background: var(--tfa-color-surface);
  color: var(--tfa-color-text-subtle);
  cursor: not-allowed;
  opacity: 0.7;
}

.tfa-text-action,
.tfa-row-action {
  min-height: var(--tfa-touch-target);
  display: inline-flex;
  align-items: center;
  color: var(--tfa-color-accent);
  font-weight: 700;
  text-underline-offset: 0.18em;
}

.tfa-page .tfa-main a:not(.tfa-button):hover {
  color: var(--tfa-color-accent-hover);
}

.tfa-stack {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--tfa-space-5);
}

.tfa-card-grid,
.tfa-metric-grid {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--tfa-space-4);
}

.tfa-card-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.tfa-dashboard-grid,
.tfa-detail-layout,
.tfa-auth-layout {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(260px, 0.8fr);
  align-items: start;
  gap: var(--tfa-space-5);
}

.tfa-detail-layout--aside-first > .tfa-detail-layout__aside {
  grid-column: 2;
  grid-row: 1;
}

.tfa-detail-layout--aside-first > .tfa-detail-layout__main {
  grid-column: 1;
  grid-row: 1;
}

.tfa-detail-flow {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(260px, 0.8fr);
  align-items: start;
  gap: var(--tfa-space-5);
}

.tfa-detail-flow__main {
  grid-column: 1;
}

.tfa-detail-flow__aside {
  grid-column: 2;
}

.tfa-auth-layout {
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  max-width: 960px;
  margin-inline: auto;
}

.tfa-metric-card,
.tfa-section-card,
.tfa-list-card,
.tfa-auth-panel {
  min-width: 0;
  border: 1px solid var(--tfa-color-border);
  border-radius: var(--tfa-radius-card);
  background: var(--tfa-color-surface-raised);
  box-shadow: var(--tfa-shadow-card);
}

.tfa-metric-card {
  min-height: 176px;
  display: flex;
  flex-direction: column;
  color: var(--tfa-color-text);
  padding: var(--tfa-space-5);
  text-decoration: none;
}

.tfa-page .tfa-metric-card:hover,
.tfa-page .tfa-metric-card:active {
  border-color: var(--tfa-color-accent);
  color: var(--tfa-color-text);
}

.tfa-metric-card--warning {
  border-top: 5px solid var(--tfa-color-warning);
}

.tfa-metric-card__label,
.tfa-metric-card__context {
  color: var(--tfa-color-text-subtle);
}

.tfa-metric-card__label {
  font-weight: 700;
}

.tfa-metric-card__value {
  margin-block: var(--tfa-space-1);
  color: var(--tfa-color-text);
  font-family: var(--tfa-font-heading);
  font-size: clamp(2rem, 4vw, 2.75rem);
  line-height: 1;
}

.tfa-metric-card__context {
  font-size: 0.88rem;
}

.tfa-metric-card__action {
  margin-top: auto;
  padding-top: var(--tfa-space-3);
  color: var(--tfa-color-accent);
  font-weight: 700;
}

.tfa-section-card__header {
  min-width: 0;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--tfa-space-4);
  padding: var(--tfa-space-5);
  border-bottom: 1px solid var(--tfa-color-border);
}

.tfa-section-card__header > div,
.tfa-section-card__header > h2,
.tfa-section-card__header > h3 {
  min-width: 0;
  max-width: 100%;
}

.tfa-section-card__header p:not(.tfa-eyebrow),
.tfa-section-card__body > p {
  margin: var(--tfa-space-2) 0 0;
  color: var(--tfa-color-text-subtle);
}

.tfa-section-card__body {
  min-width: 0;
  padding: var(--tfa-space-5);
}

.tfa-section-card--warning {
  border-left: 5px solid var(--tfa-color-warning);
}

.tfa-status-badge,
.tfa-filter-chip {
  width: fit-content;
  max-width: 100%;
  display: inline-flex;
  align-items: center;
  gap: var(--tfa-space-2);
  border: 1px solid var(--tfa-color-border-strong);
  border-radius: 999px;
  padding: 5px var(--tfa-space-3);
  background: var(--tfa-color-surface-raised);
  color: var(--tfa-color-text);
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1.35;
}

.tfa-status-badge__marker {
  width: 9px;
  height: 9px;
  flex: 0 0 auto;
  border-radius: 999px;
  background: var(--tfa-color-text-subtle);
}

.tfa-status-badge--success {
  border-color: var(--tfa-color-success);
  background: var(--tfa-color-success-soft);
  color: var(--tfa-color-success);
}

.tfa-status-badge--success .tfa-status-badge__marker {
  background: var(--tfa-color-success);
}

.tfa-status-badge--warning {
  border-color: var(--tfa-color-warning);
  background: var(--tfa-color-warning-soft);
  color: var(--tfa-color-warning);
}

.tfa-status-badge--warning .tfa-status-badge__marker {
  background: var(--tfa-color-warning);
}

.tfa-status-badge--error {
  border-color: var(--tfa-color-error);
  background: var(--tfa-color-error-soft);
  color: var(--tfa-color-error);
}

.tfa-status-badge--error .tfa-status-badge__marker {
  background: var(--tfa-color-error);
}

.tfa-status-badge--info {
  border-color: var(--tfa-color-info);
  background: var(--tfa-color-info-soft);
  color: var(--tfa-color-info);
}

.tfa-status-badge--info .tfa-status-badge__marker {
  background: var(--tfa-color-info);
}

.tfa-status-badge.is-selected {
  box-shadow: 0 0 0 3px var(--tfa-color-focus);
}

.tfa-disg-badge {
  max-width: 100%;
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--tfa-space-2);
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}

.tfa-disg-badge__segments {
  display: inline-flex;
  overflow: hidden;
  border: 1px solid var(--tfa-color-border-strong);
  border-radius: 999px;
}

.tfa-disg-badge__segment {
  width: 25px;
  height: 25px;
  display: grid;
  place-items: center;
  font-size: 0.72rem;
}

.tfa-disg-badge__segment--d { background: var(--tfa-disg-d); color: var(--tfa-disg-on-d); }
.tfa-disg-badge__segment--i { background: var(--tfa-disg-i); color: var(--tfa-disg-on-i); }
.tfa-disg-badge__segment--s { background: var(--tfa-disg-s); color: var(--tfa-disg-on-s); }
.tfa-disg-badge__segment--g { background: var(--tfa-disg-g); color: var(--tfa-disg-on-g); }

.tfa-disg-badge--compact .tfa-disg-badge__segment {
  width: 21px;
  height: 21px;
  font-size: 0.62rem;
}

.tfa-disg-badge--compact .tfa-disg-badge__label {
  font-size: 0.76rem;
}

.tfa-color-value {
  max-width: 100%;
  display: inline-flex;
  align-items: center;
  gap: var(--tfa-space-2);
  color: var(--tfa-color-text);
  font-weight: 700;
}

.tfa-color-value__swatch {
  width: 24px;
  height: 24px;
  flex: 0 0 auto;
  border: 2px solid var(--tfa-color-border-strong);
  border-radius: 999px;
  background: var(--tfa-display-color);
}

.tfa-membership-list,
.tfa-membership-history {
  display: grid;
  gap: var(--tfa-space-3);
  margin: 0;
  padding: 0;
  list-style: none;
}

.tfa-membership-list li,
.tfa-membership-history li {
  min-width: 0;
  border-bottom: 1px solid var(--tfa-color-border);
  padding-bottom: var(--tfa-space-3);
}

.tfa-membership-list li {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--tfa-space-3);
}

.tfa-overlap-context__pairs li {
  display: grid;
  gap: var(--tfa-space-1);
}

.tfa-overlap-context__pairs span {
  color: var(--tfa-color-text-subtle);
}

.tfa-overlap-context__modes {
  margin-top: var(--tfa-space-2);
}

.tfa-filter-bar {
  min-width: 0;
  display: flex;
  align-items: end;
  flex-wrap: wrap;
  gap: var(--tfa-space-3);
  border: 1px solid var(--tfa-color-border);
  border-radius: var(--tfa-radius-card);
  background: var(--tfa-color-surface);
  padding: var(--tfa-space-4);
}

.tfa-filter-bar__search {
  min-width: min(100%, 240px);
  flex: 1 1 280px;
}

.tfa-filter-bar__field {
  min-width: min(100%, 180px);
  flex: 0 1 220px;
}

.tfa-filter-bar label,
.tfa-field > label {
  display: block;
  margin-bottom: var(--tfa-space-1);
  color: var(--tfa-color-text);
  font-weight: 700;
}

.tfa-filter-bar input,
.tfa-filter-bar select,
.tfa-saved-list-picker select,
.tfa-field input,
.tfa-field select,
.tfa-field textarea {
  width: 100%;
  min-height: var(--tfa-touch-target);
  border: 2px solid var(--tfa-color-border-strong);
  border-radius: var(--tfa-radius-control);
  background: var(--tfa-color-surface-raised);
  color: var(--tfa-color-text);
  padding: var(--tfa-space-2) var(--tfa-space-3);
  font: inherit;
}

.tfa-filter-bar__active {
  flex: 1 0 100%;
  display: flex;
  flex-wrap: wrap;
  gap: var(--tfa-space-2);
  padding-top: var(--tfa-space-1);
}

.tfa-filter-chip {
  min-height: var(--tfa-touch-target);
  color: var(--tfa-color-accent);
  text-decoration: none;
}

.tfa-filter-chip__remove {
  font-size: 1.25em;
  line-height: 1;
}

.tfa-responsive-list {
  min-width: 0;
}

.tfa-responsive-list__table {
  min-width: 0;
  overflow-x: auto;
  border: 1px solid var(--tfa-color-border);
  border-radius: var(--tfa-radius-card);
  background: var(--tfa-color-surface-raised);
}

.tfa-responsive-list table {
  width: 100%;
  border-collapse: collapse;
}

.tfa-responsive-list th,
.tfa-responsive-list td {
  padding: var(--tfa-space-3) var(--tfa-space-4);
  border-bottom: 1px solid var(--tfa-color-border);
  text-align: left;
  vertical-align: middle;
}

.tfa-responsive-list th {
  background: var(--tfa-color-surface);
  color: var(--tfa-color-text-subtle);
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.tfa-responsive-list tbody tr:hover,
.tfa-responsive-list tbody tr.is-selected {
  background: var(--tfa-color-selected);
}

.tfa-responsive-list tbody tr:last-child td {
  border-bottom: 0;
}

.tfa-responsive-list__cards {
  min-width: 0;
  display: none;
}

.tfa-list-card {
  padding: var(--tfa-space-4);
}

.tfa-list-card.is-selected {
  border-color: var(--tfa-color-accent);
  background: var(--tfa-color-selected);
}

.tfa-list-card dl,
.tfa-metadata-list {
  margin: 0;
}

.tfa-list-card dl > div,
.tfa-metadata-list > div {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(90px, 0.45fr) minmax(0, 1fr);
  gap: var(--tfa-space-3);
  padding-block: var(--tfa-space-2);
  border-bottom: 1px solid var(--tfa-color-border);
}

.tfa-list-card dt,
.tfa-metadata-list dt {
  color: var(--tfa-color-text-subtle);
  font-size: 0.82rem;
  font-weight: 700;
}

.tfa-list-card dd,
.tfa-metadata-list dd {
  min-width: 0;
  margin: 0;
}

.tfa-list-card .tfa-button {
  width: 100%;
  margin-top: var(--tfa-space-4);
}

.tfa-form {
  min-width: 0;
  display: grid;
  gap: var(--tfa-space-4);
}

.tfa-field {
  min-width: 0;
}

.tfa-field__help,
.tfa-field__errors {
  margin: var(--tfa-space-1) 0 0;
  color: var(--tfa-color-text-subtle);
  font-size: 0.84rem;
}

.tfa-field__errors {
  color: var(--tfa-color-error);
  padding-left: var(--tfa-space-5);
  font-weight: 700;
}

.tfa-field.is-invalid input,
.tfa-field.is-invalid select,
.tfa-field.is-invalid textarea {
  border-color: var(--tfa-color-error);
  background: var(--tfa-color-error-soft);
}

.tfa-field.is-valid input,
.tfa-field.is-valid select,
.tfa-field.is-valid textarea {
  border-color: var(--tfa-color-success);
  background: var(--tfa-color-success-soft);
}

.tfa-field.is-disabled {
  color: var(--tfa-color-text-subtle);
  opacity: 0.75;
}

.tfa-field.is-disabled input,
.tfa-field.is-disabled select,
.tfa-field.is-disabled textarea {
  background: var(--tfa-color-surface);
  cursor: not-allowed;
}

.tfa-banner {
  min-width: 0;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--tfa-space-4);
  border: 2px solid var(--tfa-color-info);
  border-radius: var(--tfa-radius-card);
  background: var(--tfa-color-info-soft);
  color: var(--tfa-color-info);
  padding: var(--tfa-space-4);
}

.tfa-banner p {
  margin: var(--tfa-space-1) 0 0;
}

.tfa-banner--success {
  border-color: var(--tfa-color-success);
  background: var(--tfa-color-success-soft);
  color: var(--tfa-color-success);
}

.tfa-banner--warning {
  border-color: var(--tfa-color-warning);
  background: var(--tfa-color-warning-soft);
  color: var(--tfa-color-warning);
}

.tfa-banner--error,
.tfa-banner--danger {
  border-color: var(--tfa-color-error);
  background: var(--tfa-color-error-soft);
  color: var(--tfa-color-error);
}

.tfa-banner .tfa-text-action {
  flex: 0 0 auto;
  color: currentColor;
}

.tfa-empty-state {
  min-width: 0;
  border: 2px dashed var(--tfa-color-border-strong);
  border-radius: var(--tfa-radius-card);
  background: var(--tfa-color-surface);
  padding: var(--tfa-space-6);
  text-align: center;
}

.tfa-empty-state p {
  margin: var(--tfa-space-2) auto var(--tfa-space-4);
  color: var(--tfa-color-text-subtle);
}

.tfa-pagination {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--tfa-space-3);
  margin-top: var(--tfa-space-4);
}

.tfa-pagination a,
.tfa-pagination span[aria-disabled="true"] {
  border: 2px solid var(--tfa-color-border-strong);
  background: var(--tfa-color-surface-raised);
  color: var(--tfa-color-accent);
}

.tfa-pagination span[aria-disabled="true"] {
  color: var(--tfa-color-text-subtle);
  opacity: 0.7;
}

.tfa-history__list {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0 var(--tfa-space-5);
  list-style: none;
}

.tfa-history__item {
  position: relative;
  padding: var(--tfa-space-4) 0 var(--tfa-space-4) var(--tfa-space-5);
  border-bottom: 1px solid var(--tfa-color-border);
}

.tfa-history__item::before {
  content: "";
  position: absolute;
  top: 1.65rem;
  left: 0;
  width: 10px;
  height: 10px;
  border: 2px solid var(--tfa-color-accent);
  border-radius: 999px;
  background: var(--tfa-color-surface-raised);
}

.tfa-history__item p {
  margin: 0;
}

.tfa-history__meta {
  margin-top: var(--tfa-space-1) !important;
  color: var(--tfa-color-text-subtle);
  font-size: 0.82rem;
}

.tfa-history__empty {
  padding: var(--tfa-space-5);
  color: var(--tfa-color-text-subtle);
}

.tfa-history__empty p {
  margin: 0 0 var(--tfa-space-1);
}

.tfa-comment__text {
  margin-top: var(--tfa-space-2) !important;
  overflow-wrap: anywhere;
}

.tfa-comment__flag {
  display: inline-block;
  border-radius: 999px;
  background: var(--tfa-color-warning-soft);
  color: var(--tfa-color-text);
  padding: var(--tfa-space-1) var(--tfa-space-2);
}

.tfa-comment__actions {
  justify-content: flex-start;
  margin-top: var(--tfa-space-3);
}

.tfa-comment__actions form {
  margin: 0;
}

.tfa-auth-panel {
  padding: var(--tfa-space-6);
}

.tfa-auth-panel--context {
  background: var(--tfa-color-accent);
  color: var(--tfa-color-on-accent);
}

.tfa-auth-panel--context h1,
.tfa-auth-panel--context h2,
.tfa-auth-panel--context p {
  color: var(--tfa-color-on-accent);
}

.tfa-inline-list,
.tfa-quick-links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--tfa-space-2);
  margin: 0;
  padding: 0;
  list-style: none;
}

.tfa-quick-links a {
  min-height: var(--tfa-touch-target);
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--tfa-color-border-strong);
  border-radius: 999px;
  background: var(--tfa-color-surface-raised);
  color: var(--tfa-color-accent);
  padding: var(--tfa-space-2) var(--tfa-space-3);
  font-weight: 700;
  text-decoration: none;
}

.tfa-profile-summary {
  min-width: 0;
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  align-items: start;
  gap: var(--tfa-space-5);
}

.tfa-avatar-placeholder {
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border-radius: var(--tfa-radius-card);
  background: var(--tfa-color-surface);
  color: var(--tfa-color-accent);
  font-family: var(--tfa-font-heading);
  font-size: 2rem;
  font-weight: 700;
}

.tfa-profile-image,
.tfa-group-detail-image,
.tfa-upload-preview,
.tfa-card-image,
.tfa-thumbnail {
  display: block;
  max-width: 100%;
  border: 1px solid var(--tfa-color-border);
  background: var(--tfa-color-surface);
  object-fit: cover;
}

.tfa-profile-image,
.tfa-thumbnail,
.tfa-thumbnail-placeholder {
  aspect-ratio: 1;
  border-radius: var(--tfa-radius-card);
}

.tfa-profile-image {
  width: 112px;
  height: 112px;
}

.tfa-group-detail-image,
.tfa-upload-preview {
  width: 100%;
  max-height: 520px;
  border-radius: var(--tfa-radius-card);
  object-fit: contain;
}

.tfa-card-image {
  width: 100%;
  aspect-ratio: 16 / 10;
  border-radius: var(--tfa-radius-control);
}

.tfa-thumbnail,
.tfa-thumbnail-placeholder {
  width: 64px;
  height: 64px;
}

.tfa-thumbnail-placeholder {
  display: grid;
  place-items: center;
  border: 1px solid var(--tfa-color-border);
  background: var(--tfa-color-surface);
  color: var(--tfa-color-accent);
  font-family: var(--tfa-font-heading);
  font-weight: 700;
}

.tfa-danger-zone {
  border-top: 2px solid var(--tfa-color-error);
  padding-top: var(--tfa-space-4);
}

.tfa-overlap-layout {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(250px, 0.32fr);
  align-items: start;
  gap: var(--tfa-space-5);
}

.tfa-overlap-layout__main,
.tfa-overlap-layout__aside {
  min-width: 0;
}

.tfa-overlap-layout__main .tfa-section-card__header {
  flex-wrap: wrap;
}

.tfa-overlap-layout__main .tfa-section-card__header > .tfa-status-badge {
  flex-shrink: 0;
}

.tfa-overlap-choices {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--tfa-space-1) var(--tfa-space-4);
  margin: 0;
  padding: 0;
  list-style: none;
}

.tfa-overlap-choices > div,
.tfa-overlap-choices label {
  min-width: 0;
}

.tfa-overlap-choices label {
  min-height: var(--tfa-touch-target);
  display: flex;
  align-items: center;
  gap: var(--tfa-space-2);
  margin: 0;
}

.tfa-overlap-filters input[type="checkbox"] {
  width: var(--tfa-touch-target);
  min-width: var(--tfa-touch-target);
  min-height: var(--tfa-touch-target);
  margin: 0;
}

.tfa-overlap-choices input[type="checkbox"] {
  flex: 0 0 24px;
  width: 24px;
  min-width: 24px;
  min-height: 24px;
}

.tfa-overlap-summary {
  border-left: 5px solid var(--tfa-color-info);
  border-radius: var(--tfa-radius-control);
  background: var(--tfa-color-info-soft);
  padding: var(--tfa-space-3) var(--tfa-space-4);
}

.tfa-overlap-summary p {
  margin: 0;
}

.tfa-overlap-summary p + p {
  margin-top: var(--tfa-space-2);
}

.tfa-view-switcher {
  display: flex;
  flex-wrap: wrap;
  gap: var(--tfa-space-2);
}

.tfa-view-switcher a {
  min-height: var(--tfa-touch-target);
  display: inline-flex;
  align-items: center;
  border: 2px solid var(--tfa-color-border-strong);
  border-radius: var(--tfa-radius-control);
  background: var(--tfa-color-surface-raised);
  color: var(--tfa-color-accent);
  padding: var(--tfa-space-2) var(--tfa-space-4);
  font-family: var(--tfa-font-heading);
  font-weight: 700;
  text-decoration: none;
}

.tfa-view-switcher a[aria-current="page"] {
  border-color: var(--tfa-color-accent);
  background: var(--tfa-color-selected);
  box-shadow: inset 0 -3px 0 var(--tfa-color-accent);
}

.tfa-overlap-table {
  position: relative;
  max-width: 100%;
  overflow: auto;
  border: 1px solid var(--tfa-color-border);
  border-radius: var(--tfa-radius-control);
}

.tfa-overlap-table table {
  width: max-content;
  min-width: 100%;
  border-collapse: collapse;
}

.tfa-overlap-table th,
.tfa-overlap-table td {
  min-width: 150px;
  padding: var(--tfa-space-3);
  border-bottom: 1px solid var(--tfa-color-border);
  text-align: left;
  vertical-align: top;
}

.tfa-overlap-table th:first-child {
  min-width: 210px;
}

.tfa-overlap-table .tfa-person-identity {
  width: 22rem;
  max-width: 100%;
}

.tfa-overlap-table thead th {
  background: var(--tfa-color-surface);
  color: var(--tfa-color-text-subtle);
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.tfa-overlap-table tbody tr:last-child > * {
  border-bottom: 0;
}

.tfa-overlap-table tbody tr.is-focused {
  background: var(--tfa-color-selected);
  box-shadow: inset 5px 0 0 var(--tfa-color-accent);
}

.tfa-overlap-secondary {
  display: block;
  color: var(--tfa-color-text-subtle);
  font-size: 0.84rem;
}

.tfa-open-value {
  color: var(--tfa-color-warning);
  font-weight: 700;
}

.tfa-overlap-cards {
  display: none;
}

.tfa-overlap-pair-list,
.tfa-saved-view-list {
  display: grid;
  gap: var(--tfa-space-3);
  margin: 0;
  padding: 0;
  list-style: none;
}

.tfa-overlap-pair {
  min-width: 0;
  padding-bottom: var(--tfa-space-3);
  border-bottom: 1px solid var(--tfa-color-border);
}

.tfa-overlap-pair:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.tfa-overlap-pair__heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--tfa-space-3);
  margin-bottom: var(--tfa-space-2);
}

.tfa-overlap-pair__heading > strong {
  flex: 0 0 auto;
  color: var(--tfa-color-accent);
}

.tfa-saved-view-list li {
  display: grid;
  gap: var(--tfa-space-1);
  border-left: 4px solid transparent;
  padding: var(--tfa-space-2) var(--tfa-space-3);
}

.tfa-saved-view-list li.is-selected {
  border-color: var(--tfa-color-accent);
  background: var(--tfa-color-selected);
}

.tfa-saved-view-list a {
  min-height: var(--tfa-touch-target);
  display: flex;
  align-items: center;
  font-weight: 700;
}

.tfa-saved-view-list span {
  color: var(--tfa-color-text-subtle);
  font-size: 0.82rem;
}

.tfa-crosstab-axes {
  margin: 0 0 var(--tfa-space-4);
}

.tfa-crosstab-table {
  max-width: 100%;
  overflow: auto;
  border: 1px solid var(--tfa-color-border);
  border-radius: var(--tfa-radius-control);
}

.tfa-crosstab-table table {
  width: max-content;
  min-width: 100%;
  border-collapse: collapse;
}

.tfa-crosstab-table th,
.tfa-crosstab-table td {
  min-width: 112px;
  border-right: 1px solid var(--tfa-color-border);
  border-bottom: 1px solid var(--tfa-color-border);
  padding: var(--tfa-space-2);
  text-align: center;
  vertical-align: middle;
}

.tfa-crosstab-table th:first-child {
  min-width: 176px;
  position: sticky;
  left: 0;
  z-index: 1;
  background: var(--tfa-color-surface-raised);
  text-align: left;
}

.tfa-crosstab-table th span,
.tfa-crosstab-table th small {
  display: block;
}

.tfa-crosstab-table th small {
  margin-top: var(--tfa-space-1);
  color: var(--tfa-color-text-subtle);
  font-weight: 500;
}

.tfa-crosstab-cell {
  padding: 0 !important;
}

.tfa-crosstab-cell a,
.tfa-crosstab-mobile__cell {
  min-width: var(--tfa-touch-target);
  min-height: var(--tfa-touch-target);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--tfa-color-text);
  font-family: var(--tfa-font-heading);
  font-size: 1.05rem;
  font-weight: 800;
}

.tfa-crosstab-cell a {
  width: 100%;
  min-height: 64px;
  text-decoration: none;
}

.tfa-crosstab-cell--0 {
  background: var(--tfa-color-surface-raised);
}

.tfa-crosstab-cell--1 {
  background: #f5edf1;
}

.tfa-crosstab-cell--2 {
  background: #ead3df;
}

.tfa-crosstab-cell--3 {
  background: #d9aabe;
}

.tfa-crosstab-cell--4 {
  background: #b8688d;
}

.tfa-crosstab-cell--4 a,
.tfa-crosstab-mobile__cell.tfa-crosstab-cell--4 {
  color: #24101b;
}

.tfa-crosstab-cell.is-selected {
  box-shadow: inset 0 0 0 4px var(--tfa-color-accent);
}

.tfa-crosstab-total {
  background: var(--tfa-color-info-soft);
}

.tfa-crosstab-mobile {
  display: none;
}

.tfa-crosstab-detail {
  margin-top: var(--tfa-space-5);
  border-top: 1px solid var(--tfa-color-border);
  padding-top: var(--tfa-space-5);
  scroll-margin-top: calc(var(--tfa-space-6) + 72px);
}

.tfa-crosstab-detail > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--tfa-space-4);
  margin-bottom: var(--tfa-space-4);
}

.tfa-crosstab-detail__people {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--tfa-space-3);
}

.tfa-person-matrix-controls {
  display: grid;
  gap: var(--tfa-space-3);
  border: 1px solid var(--tfa-color-border);
  border-radius: var(--tfa-radius-control);
  background: var(--tfa-color-surface);
  padding: var(--tfa-space-4);
}

.tfa-person-matrix-controls h3,
.tfa-person-matrix-controls p {
  margin: 0;
}

.tfa-person-matrix-pair-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr)) auto;
  align-items: end;
  gap: var(--tfa-space-3);
}

.tfa-person-matrix-legend {
  display: grid;
  gap: var(--tfa-space-2);
}

.tfa-person-matrix-legend ul {
  display: flex;
  flex-wrap: wrap;
  gap: var(--tfa-space-2) var(--tfa-space-4);
  margin: 0;
  padding: 0;
  list-style: none;
}

.tfa-person-matrix-legend li {
  display: inline-flex;
  align-items: center;
  gap: var(--tfa-space-2);
}

.tfa-person-matrix-legend p {
  margin: 0;
}

.tfa-person-matrix-swatch {
  width: 28px;
  height: 28px;
  display: inline-block;
  flex: 0 0 28px;
  border: 1px solid var(--tfa-color-border-strong);
  border-radius: 4px;
}

.tfa-person-matrix-table {
  max-width: 100%;
  max-height: min(72vh, 760px);
  overflow: auto;
  border: 1px solid var(--tfa-color-border-strong);
  border-radius: var(--tfa-radius-control);
  background: var(--tfa-color-surface-raised);
}

.tfa-person-matrix-table table {
  width: max-content;
  min-width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}

.tfa-person-matrix-table th,
.tfa-person-matrix-table td {
  border-right: 1px solid var(--tfa-color-border);
  border-bottom: 1px solid var(--tfa-color-border);
}

.tfa-person-matrix-table thead th {
  height: 190px;
  min-width: 58px;
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--tfa-color-surface-raised);
  padding: var(--tfa-space-2);
  vertical-align: bottom;
}

.tfa-person-matrix-table thead th > span {
  width: 100%;
  display: inline-block;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  text-align: left;
  white-space: nowrap;
}

.tfa-person-matrix-table thead th:first-child,
.tfa-person-matrix-table tbody th {
  min-width: 220px;
  position: sticky;
  left: 0;
  z-index: 3;
  background: var(--tfa-color-surface-raised);
  padding: var(--tfa-space-2) var(--tfa-space-3);
  text-align: left;
}

.tfa-person-matrix-table thead th:first-child {
  z-index: 4;
  vertical-align: bottom;
}

.tfa-person-matrix-cell,
.tfa-person-matrix-diagonal {
  width: 58px;
  min-width: 58px;
  height: 58px;
  padding: 0;
  text-align: center;
}

.tfa-person-matrix-cell a,
.tfa-person-matrix-diagonal span {
  width: 100%;
  min-width: var(--tfa-touch-target);
  min-height: 58px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--tfa-color-text);
  font-family: var(--tfa-font-heading);
  font-size: 1rem;
  font-weight: 800;
}

.tfa-person-matrix-cell a {
  text-decoration: none;
}

.tfa-person-matrix-cell--0,
.tfa-person-matrix-diagonal {
  background: var(--tfa-color-surface-raised);
}

.tfa-person-matrix-cell--1 {
  background: #f5edf1;
}

.tfa-person-matrix-cell--2 {
  background: #ead3df;
}

.tfa-person-matrix-cell--3 {
  background: #d9aabe;
}

.tfa-person-matrix-cell--4 {
  background: #b8688d;
}

.tfa-person-matrix-cell--4 a {
  color: #24101b;
}

.tfa-person-matrix-cell.is-below-threshold a {
  box-shadow: inset 0 0 0 2px var(--tfa-color-surface-raised);
}

.tfa-person-matrix-cell.is-selected {
  box-shadow: inset 0 0 0 4px var(--tfa-color-accent);
}

.tfa-person-matrix-table .is-focused-axis,
.tfa-person-matrix-table .is-keyboard-axis {
  box-shadow: inset 0 0 0 2px var(--tfa-color-info);
}

.tfa-person-matrix-table th.is-focused-axis,
.tfa-person-matrix-table th.is-keyboard-axis {
  background: var(--tfa-color-info-soft);
}

.tfa-person-matrix-mobile {
  display: none;
}

.tfa-person-matrix-detail {
  border-top: 1px solid var(--tfa-color-border);
  padding-top: var(--tfa-space-5);
  scroll-margin-top: calc(var(--tfa-space-6) + 72px);
}

.tfa-person-matrix-detail > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--tfa-space-4);
  margin-bottom: var(--tfa-space-4);
}

@media (max-width: 64rem) {
  .tfa-site-header {
    backdrop-filter: none;
  }

  .tfa-page-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .tfa-main-nav {
    width: 100%;
    justify-content: flex-start;
  }

  .tfa-action-bar {
    justify-content: flex-start;
  }

  .tfa-metric-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .tfa-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 47.999rem) {
  .tfa-shell {
    width: min(100% - 28px, var(--tfa-content-wide));
  }

  .tfa-site-header__inner {
    gap: var(--tfa-space-3);
  }

  .tfa-main-nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .tfa-main-nav a {
    justify-content: flex-start;
    border: 1px solid var(--tfa-color-border);
  }

  .tfa-main-nav a[aria-current="page"] {
    border-color: var(--tfa-color-accent);
    box-shadow: inset 4px 0 0 var(--tfa-color-accent);
  }

  .tfa-main {
    padding-block: var(--tfa-space-4) var(--tfa-space-6);
  }

  .tfa-page-header {
    gap: var(--tfa-space-4);
    margin-bottom: var(--tfa-space-5);
  }

  .tfa-dashboard-grid,
  .tfa-detail-layout,
  .tfa-detail-flow,
  .tfa-auth-layout,
  .tfa-card-grid,
  .tfa-overlap-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .tfa-detail-layout--aside-first > .tfa-detail-layout__aside,
  .tfa-detail-layout--aside-first > .tfa-detail-layout__main,
  .tfa-detail-flow__main,
  .tfa-detail-flow__aside {
    grid-column: auto;
    grid-row: auto;
  }

  .tfa-responsive-list__table {
    display: none;
  }

  .tfa-responsive-list__cards {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--tfa-space-3);
  }

  .tfa-overlap-table {
    display: none;
  }

  /* Planning has no separate mobile list: preserve every before/after value. */
  .tfa-planning-metrics {
    display: block;
  }

  .tfa-planning-metrics table,
  .tfa-planning-metrics tbody {
    display: block;
    width: 100%;
  }

  .tfa-planning-metrics thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
  }

  .tfa-planning-metrics tbody tr {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-bottom: 1px solid var(--tfa-color-border);
  }

  .tfa-planning-metrics tbody tr:last-child {
    border-bottom: 0;
  }

  .tfa-planning-metrics th,
  .tfa-planning-metrics td {
    min-width: 0;
    border-bottom: 0;
    overflow-wrap: anywhere;
  }

  .tfa-planning-metrics th {
    grid-column: 1 / -1;
    padding-bottom: 0;
  }

  .tfa-planning-metrics td::before {
    display: block;
    content: attr(data-label);
    color: var(--tfa-color-text-subtle);
    font-weight: 700;
  }

  .tfa-crosstab-table {
    display: none;
  }

  .tfa-crosstab-mobile {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--tfa-space-3);
  }

  .tfa-crosstab-mobile__cell {
    min-width: 100%;
    border: 1px solid var(--tfa-color-border-strong);
    border-radius: var(--tfa-radius-control);
    padding: var(--tfa-space-2) var(--tfa-space-3);
  }

  .tfa-crosstab-detail > header {
    flex-direction: column;
  }

  .tfa-crosstab-detail__people {
    grid-template-columns: minmax(0, 1fr);
  }

  .tfa-person-matrix-pair-form {
    grid-template-columns: minmax(0, 1fr);
  }

  .tfa-person-matrix-table {
    display: none;
  }

  .tfa-person-matrix-mobile {
    display: grid;
    gap: var(--tfa-space-3);
    border: 1px solid var(--tfa-color-border-strong);
    border-radius: var(--tfa-radius-control);
    background: var(--tfa-color-info-soft);
    padding: var(--tfa-space-4);
  }

  .tfa-person-matrix-mobile h3,
  .tfa-person-matrix-mobile p {
    margin: 0;
  }

  .tfa-person-matrix-detail > header {
    flex-direction: column;
  }

  .tfa-overlap-cards {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--tfa-space-3);
  }

  .tfa-overlap-choices {
    grid-template-columns: minmax(0, 1fr);
  }

  .tfa-view-switcher > a {
    flex: 1 1 220px;
    justify-content: center;
  }

  .tfa-overlap-pair__heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .tfa-filter-bar > :not(.tfa-filter-bar__active) {
    width: 100%;
    flex-basis: 100%;
  }

  .tfa-filter-bar .tfa-button {
    width: 100%;
  }

  .tfa-section-card__header,
  .tfa-banner,
  .tfa-footer {
    align-items: flex-start;
    flex-direction: column;
  }

  .tfa-profile-summary {
    grid-template-columns: 84px minmax(0, 1fr);
  }

  .tfa-profile-image {
    width: 84px;
    height: 84px;
  }
}

@media (max-width: 28rem) {
  .tfa-metric-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .tfa-action-bar,
  .tfa-action-bar .tfa-button {
    width: 100%;
  }

  .tfa-section-card__header,
  .tfa-section-card__body,
  .tfa-auth-panel,
  .tfa-empty-state {
    padding: var(--tfa-space-4);
  }

  .tfa-pagination {
    align-items: stretch;
    flex-direction: column;
    text-align: center;
  }

  .tfa-list-card dl > div,
  .tfa-metadata-list > div {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
  }
}

@media (max-width: 22rem) {
  .tfa-shell {
    width: min(100% - 20px, var(--tfa-content-wide));
  }

  .tfa-main-nav {
    grid-template-columns: minmax(0, 1fr);
  }

  .tfa-brand__title {
    font-size: 15px;
  }

  .tfa-profile-summary {
    grid-template-columns: minmax(0, 1fr);
  }

  .tfa-avatar-placeholder,
  .tfa-profile-image {
    width: 84px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tfa-page *,
  .tfa-page *::before,
  .tfa-page *::after {
    scroll-behavior: auto !important;
    transition-duration: 1ms !important;
    animation-duration: 1ms !important;
    animation-iteration-count: 1 !important;
  }
}
.tfa-person-identity {
  display: inline-flex;
  align-items: flex-start;
  gap: 0.6rem;
  min-width: 0;
  max-width: 100%;
}
.tfa-person-identity__body {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.2rem;
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
}
.tfa-person-identity__name { display: flex; align-items: center; gap: 0.4rem; flex-wrap: wrap; }
.tfa-identity-photo { width: 56px; height: 56px; flex: 0 0 56px; border-radius: 0.5rem; object-fit: cover; }
.tfa-identity-photo--placeholder { display: grid; place-items: center; width: max(56px, 2.5em); height: max(56px, 2.5em); flex-basis: max(56px, 2.5em); background: #e7edf0; color: #34424c; font-weight: 700; }
.tfa-identity-profiles { display: grid; gap: 0.2rem; font-size: 0.8rem; font-weight: 400; }
.tfa-identity-profiles > span { display: flex; align-items: center; flex-wrap: wrap; gap: 0.2rem; }
.tfa-hint-button { min-width: 44px; min-height: 44px; border: 2px solid currentColor; border-radius: 50%; color: #7a3500; background: #fff4d6; font: inherit; font-weight: 800; cursor: pointer; }
.tfa-hint-button:focus-visible { outline: 3px solid #1464b4; outline-offset: 3px; }
.tfa-hint-dialog { width: min(36rem, calc(100vw - 2rem)); max-height: calc(100dvh - 2rem); box-sizing: border-box; padding: 1.25rem; border-radius: 0.75rem; overflow: auto; }
.tfa-hint-dialog::backdrop { background: rgb(0 0 0 / 55%); }
.tfa-hint-dialog__text { white-space: pre-wrap; overflow-wrap: anywhere; }

/* Native radio controls styled as wrap-safe, keyboard-operable choice buttons. */
.tfa-choice-buttons {
  min-width: 0;
  border: 0;
  padding: 0;
}
.tfa-choice-buttons legend {
  font-weight: 700;
  margin-bottom: var(--tfa-space-2);
}
.tfa-choice-buttons > div {
  display: flex;
  flex-wrap: wrap;
  gap: var(--tfa-space-2);
}
.tfa-choice-buttons > div > div {
  max-width: 100%;
}
.tfa-choice-buttons label {
  display: flex;
  align-items: center;
  gap: var(--tfa-space-2);
  min-height: 44px;
  min-width: 44px;
  padding: var(--tfa-space-2) var(--tfa-space-3);
  border: 2px solid var(--tfa-color-border-strong);
  border-radius: var(--tfa-radius-control);
  overflow-wrap: anywhere;
  cursor: pointer;
}
.tfa-choice-buttons label:has(input:checked) {
  background: var(--tfa-color-selected);
  border-color: var(--tfa-color-accent);
}
.tfa-choice-buttons input[type="radio"] {
  width: 20px;
  height: 20px;
  min-height: 20px;
  flex: 0 0 20px;
  margin: 0;
}

.tfa-color-palette:not([hidden]) {
  display: flex;
  flex-wrap: wrap;
  gap: var(--tfa-space-2);
  margin-block: var(--tfa-space-2);
}
.tfa-color-palette .tfa-button {
  min-height: 44px;
  gap: var(--tfa-space-2);
}
.tfa-color-palette [aria-pressed="true"] {
  background: var(--tfa-color-selected);
  border: 2px solid var(--tfa-color-accent);
}
[data-color-picker] [hidden] {
  display: none;
}

/* The navigation remains in normal flow. Without JS every link stays visible. */
.tfa-nav-toggle { margin-left: auto; flex: 0 0 auto; }
.tfa-main-nav[hidden], .tfa-nav-toggle[hidden] { display: none; }
@media (max-width: 74.999rem) {
  .tfa-site-header__inner { flex-wrap: wrap; }
  .tfa-main-nav { flex-basis: 100%; justify-content: flex-start; }
  .tfa-brand { max-width: min(260px, calc(100% - 92px)); }
}

/* Complete, ordered identity data; full roster rows reuse the compact identity. */
.tfa-person-hint--visible { display: grid; gap: var(--tfa-space-1); justify-items: start; }
.tfa-person-hint__excerpt { font-size: 0.85rem; font-weight: 400; color: var(--tfa-color-warning); }
.tfa-hint-button--labelled { border-radius: var(--tfa-radius-control); padding: var(--tfa-space-1) var(--tfa-space-2); font-size: 0.8rem; }
.tfa-person-row { display: grid; grid-template-columns: minmax(220px, 2fr) minmax(100px, 1fr) minmax(100px, 1fr) minmax(130px, 1.4fr) minmax(180px, 1.7fr); gap: var(--tfa-space-4); align-items: start; padding: var(--tfa-space-4); border-bottom: 1px solid var(--tfa-color-border); }
.tfa-person-row > div { min-width: 0; overflow-wrap: anywhere; }
.tfa-person-row__label { display: none; }
.tfa-person-row .tfa-disg-badge { max-width: 100%; }
.tfa-subtle { color: var(--tfa-color-text-subtle); }
@media (max-width: 64rem) {
  .tfa-person-row { grid-template-columns: minmax(0, 1fr); gap: var(--tfa-space-2); }
  .tfa-person-row__label { display: block; font-size: 0.8rem; font-weight: 700; color: var(--tfa-color-text-subtle); }
}

.tfa-group-roster { margin-bottom: var(--tfa-space-5); }
.tfa-roster-advisors { padding: var(--tfa-space-4); background: var(--tfa-color-surface); }
.tfa-advisor-list { display: flex; flex-wrap: wrap; gap: var(--tfa-space-5); margin: var(--tfa-space-2) 0 0; padding: 0; list-style: none; }
.tfa-advisor-list li { display: grid; min-width: 0; gap: var(--tfa-space-2); }
.tfa-roster-participants-title, .tfa-roster-empty { padding: var(--tfa-space-4); margin: 0; }
.tfa-person-row--head { background: var(--tfa-color-surface); color: var(--tfa-color-text-subtle); font-size: 0.85rem; font-weight: 700; padding-block: var(--tfa-space-2); }
.tfa-person-row:last-child { border-bottom: 0; }
.tfa-person-row .tfa-disg-badge { flex-wrap: wrap; white-space: normal; line-height: 1.4; }
.tfa-person-row .tfa-disg-badge__segments { flex-shrink: 0; }
.tfa-person-row .tfa-disg-badge__label { white-space: nowrap; }
.tfa-roster-actions { display: flex; flex-wrap: wrap; gap: var(--tfa-space-2); font-size: 0.8rem; }
.tfa-group-secondary { margin-top: var(--tfa-space-5); }
@media (max-width: 64rem) {
  .tfa-person-row--head { display: none; }
}

.tfa-group-view-controls { padding: var(--tfa-space-4); display: grid; gap: var(--tfa-space-3); border-bottom: 1px solid var(--tfa-color-border); }
.tfa-segmented-links { display: flex; flex-wrap: wrap; gap: 4px; }
.tfa-segmented-links a { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 14px; border: 1px solid var(--tfa-color-border-strong); border-radius: var(--tfa-radius-control); background: var(--tfa-color-surface-raised); color: var(--tfa-color-text); font-weight: 700; }
.tfa-segmented-links a[aria-current] { background: var(--tfa-color-accent); border-color: var(--tfa-color-accent); color: #fff; text-decoration: none; }
.tfa-group-source { display: flex; flex-wrap: wrap; align-items: center; gap: var(--tfa-space-3); }
.tfa-disg-board { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: start; gap: var(--tfa-space-3); padding: var(--tfa-space-4); }
.tfa-disg-category { border: 1px solid var(--tfa-color-border); border-top: 5px solid var(--category-accent, var(--tfa-color-border-strong)); border-radius: var(--tfa-radius-control); background: var(--tfa-color-surface); min-width: 0; }
.tfa-disg-category--d { --category-accent: var(--tfa-disg-d); }
.tfa-disg-category--i { --category-accent: var(--tfa-disg-i); }
.tfa-disg-category--s { --category-accent: var(--tfa-disg-s); }
.tfa-disg-category--g { --category-accent: var(--tfa-disg-g); }
.tfa-disg-category--equal, .tfa-disg-category--open { grid-column: span 2; }
.tfa-disg-category header { padding: var(--tfa-space-3); }
.tfa-disg-category h4 { font-size: 1.1rem; margin: 0 0 4px; }
.tfa-disg-category header > span { color: var(--tfa-color-text-subtle); font-size: 0.85rem; }
.tfa-disg-category > p { padding: var(--tfa-space-3); }
.tfa-disg-people { list-style: none; margin: 0; padding: 0 var(--tfa-space-2) var(--tfa-space-2); display: grid; gap: var(--tfa-space-2); }
.tfa-disg-people > li { min-width: 0; padding: var(--tfa-space-3); background: var(--tfa-color-surface-raised); border: 1px solid var(--tfa-color-border); border-radius: var(--tfa-radius-control); overflow-wrap: anywhere; }
.tfa-disg-people .tfa-person-identity { display: flex; flex-wrap: wrap; }
.tfa-disg-people .tfa-person-identity__body { flex: 1 1 130px; }
.tfa-disg-people .tfa-identity-profiles { display: grid; gap: var(--tfa-space-2); }
.tfa-disg-people .tfa-disg-badge { flex-wrap: wrap; white-space: normal; line-height: 1.4; }
@media (max-width: 1100px) {
  .tfa-disg-board { grid-template-columns: minmax(0, 1fr); }
  .tfa-disg-category--equal, .tfa-disg-category--open { grid-column: auto; }
}

.tfa-own-group__header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--tfa-space-3); margin-bottom: var(--tfa-space-3); }
.tfa-own-group__header h2 { margin: 0; }
.tfa-own-group__choices { margin-bottom: var(--tfa-space-3); }
.tfa-own-group-picker { display: none; }
@media (max-width: 47.999rem) {
  .tfa-own-group__choices { display: none; }
  .tfa-own-group-picker { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: var(--tfa-space-2); margin-bottom: var(--tfa-space-3); }
  .tfa-own-group-picker label { grid-column: 1 / -1; font-weight: 700; }
  .tfa-own-group-picker select { min-width: 0; max-width: 100%; min-height: 44px; border: 1px solid var(--tfa-color-border-strong); border-radius: var(--tfa-radius-control); background: var(--tfa-color-surface-raised); color: var(--tfa-color-text); font: inherit; padding: var(--tfa-space-2); }
}
.tfa-own-group__context { margin-bottom: var(--tfa-space-4); color: var(--tfa-color-text-subtle); }
.tfa-group-summary { padding: var(--tfa-space-3) var(--tfa-space-4); background: var(--tfa-color-selected); border-bottom: 1px solid var(--tfa-color-border); }
.tfa-group-summary ul { list-style: none; margin: var(--tfa-space-2) 0 0; padding: 0; }
.tfa-group-summary li + li { margin-top: var(--tfa-space-2); }

/* The own-group entry keeps the people ahead of secondary dashboard content. */
.tfa-own-group .tfa-group-roster > .tfa-section-card__header { padding: 12px; align-items: center; }
.tfa-own-group .tfa-group-roster > .tfa-section-card__header .tfa-eyebrow { display: none; }
.tfa-own-group .tfa-group-roster > .tfa-section-card__header h2 { font-size: 1rem; }
.tfa-own-group .tfa-group-view-controls { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; padding: 8px 12px; gap: 8px; }
.tfa-own-group .tfa-group-view-controls > p { flex-basis: 100%; margin: 0; font-size: 0.85rem; }
.tfa-own-group .tfa-roster-advisors { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 12px; }
.tfa-own-group .tfa-roster-advisors h3 { margin: 0; font-size: 1rem; }
.tfa-own-group .tfa-advisor-list { margin: 0; }
.tfa-own-group .tfa-roster-participants-title { padding: 8px 12px; font-size: 1rem; }
.tfa-group-summary { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; padding: 12px; font-size: 0.9rem; }
.tfa-group-summary p, .tfa-group-summary ul { margin: 0; }

/* Personal people lists use one cell projection for table and mobile cards. */
.tfa-person-groups { list-style: none; margin: 0; padding: 0; }
.tfa-person-groups li + li { margin-top: 8px; }
.tfa-person-groups small { display: block; color: var(--tfa-color-text-subtle); }
.tfa-saved-list-picker { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.tfa-saved-list-picker select { min-height: 44px; max-width: 100%; flex: 0 1 360px; }
.tfa-people-list td { vertical-align: top; overflow-wrap: anywhere; }
.tfa-people-list td[data-column="person"] { min-width: 200px; }
.tfa-people-list td[data-column="hint"] { min-width: 170px; }
.tfa-people-list .tfa-person-identity__body { min-width: 0; }
@media (max-width: 1100px) {
  .tfa-people-list .tfa-responsive-list__table { display: none; }
  .tfa-people-list .tfa-responsive-list__cards { display: grid; gap: 16px; }
  .tfa-people-list .tfa-list-card dl > div { grid-template-columns: minmax(0, 1fr); gap: 4px; }
}

.tfa-people-list { gap: 12px; }
.tfa-people-list .tfa-filter-bar__search { flex: 1 1 230px; }
.tfa-people-list .tfa-filter-bar__field { flex: 1 1 160px; }
.tfa-more-filters { flex: 1 0 100%; }
.tfa-more-filters summary { min-height: 44px; display: list-item; padding-block: 10px; cursor: pointer; }
.tfa-more-filters__fields { display: flex; flex-wrap: wrap; gap: 12px; padding-top: 8px; }
.tfa-list-results { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; }
.tfa-list-results p { margin: 0; }

.tfa-people-list td[data-column="groups"] { min-width: 150px; }
.tfa-people-list td[data-column="room"] { min-width: 90px; }
.tfa-people-list td[data-column="self"],
.tfa-people-list td[data-column="official"] { min-width: 115px; }
.tfa-people-list td[data-column="observations"] { min-width: 175px; }
.tfa-person-groups { font-size: 0.9rem; }
.tfa-saved-list-picker label { font-weight: 700; }

/* Person record: current identity and assessments precede administration/history. */
.tfa-person-return { justify-content: flex-start; }
.tfa-person-hero { display: grid; grid-template-columns: 160px minmax(0, 1fr); align-items: start; gap: 24px; }
.tfa-person-hero .tfa-profile-image { width: 160px; height: 160px; }
.tfa-person-hero .tfa-avatar-placeholder { width: 160px; }
.tfa-person-hero h1, .tfa-person-hero p { margin-block: 0 8px; }
.tfa-person-context { list-style: none; padding: 0; margin: 0 0 12px; display: flex; flex-wrap: wrap; gap: 8px 20px; }
.tfa-person-hero__hint { background: var(--tfa-color-warning-soft); padding: 12px; border-radius: var(--tfa-radius-card); }
.tfa-person-jump { display: flex; flex-wrap: wrap; gap: 8px 16px; }
.tfa-person-jump a { min-height: 44px; display: inline-flex; align-items: center; }
.tfa-person-profiles, .tfa-person-work { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 20px; }
.tfa-latest-observations { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 12px; }
.tfa-person-history > summary { min-height: 44px; cursor: pointer; padding: 12px; font-weight: 700; }
.tfa-person-detail .tfa-section-card__header { flex-wrap: wrap; }
@media (max-width: 767px) {
  .tfa-person-hero { grid-template-columns: 72px minmax(0, 1fr); gap: 12px; }
  .tfa-person-hero .tfa-profile-image { width: 72px; height: 72px; }
  .tfa-person-hero .tfa-avatar-placeholder { width: 72px; }
  .tfa-person-hero h1 { font-size: 1.35rem; }
  .tfa-person-context { display: block; }
  .tfa-person-context li { margin-bottom: 8px; }
  .tfa-person-profiles, .tfa-person-work { grid-template-columns: minmax(0, 1fr); }
}

/* Current room occupancy: one source for desktop rows and stacked mobile rooms. */
.tfa-room-summary { display: flex; flex-wrap: wrap; gap: var(--tfa-space-2) var(--tfa-space-4); padding: var(--tfa-space-3); border-radius: var(--tfa-radius-control); background: var(--tfa-color-info-soft); }
.tfa-room-summary small { flex-basis: 100%; }
.tfa-room-list { display: grid; gap: var(--tfa-space-3); }
.tfa-room-occupancy { display: grid; grid-template-columns: minmax(10rem, .7fr) minmax(0, 3fr) minmax(10rem, .7fr); border: 1px solid var(--tfa-color-border); border-radius: var(--tfa-radius-control); background: var(--tfa-color-surface-raised); overflow-wrap: anywhere; }
.tfa-room-occupancy__heading { padding: var(--tfa-space-3); background: var(--tfa-color-surface); border-radius: var(--tfa-radius-control) 0 0 var(--tfa-radius-control); }
.tfa-room-occupancy__heading h2 { font-size: 1.15rem; }
.tfa-room-occupancy__heading p { margin: var(--tfa-space-2) 0; }
.tfa-room-occupancy__body { padding: var(--tfa-space-3); min-width: 0; }
.tfa-room-occupancy__actions { padding: var(--tfa-space-3); display: flex; flex-direction: column; align-items: stretch; justify-content: center; gap: var(--tfa-space-2); }
.tfa-room-residents { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); gap: var(--tfa-space-3); }
.tfa-room-residents > li { display: flex; flex-direction: column; align-items: stretch; gap: var(--tfa-space-2); min-width: 0; border: 0; padding: 0; }
.tfa-room-residents__person, .tfa-room-residents__person .tfa-person-identity { min-width: 0; width: 100%; }
.tfa-room-residents__note { margin: var(--tfa-space-2) 0; }
.tfa-room-residents__actions { display: flex; flex-wrap: wrap; gap: var(--tfa-space-2); }
.tfa-room-free { border: 1px dashed var(--tfa-color-border); border-radius: var(--tfa-radius-control); padding: var(--tfa-space-2); margin: var(--tfa-space-3) 0 0; }
.tfa-room-capacity-warning { color: var(--tfa-color-error); }
@media (max-width: 70rem) {
  .tfa-room-occupancy { grid-template-columns: minmax(0, 1fr); }
  .tfa-room-occupancy__heading { border-radius: var(--tfa-radius-control) var(--tfa-radius-control) 0 0; }
  .tfa-room-occupancy__actions { padding-top: 0; }
}

@media (max-width: 47.999rem) {
  .tfa-rooms-page .tfa-filter-bar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: var(--tfa-space-2); gap: var(--tfa-space-2); }
  .tfa-rooms-page .tfa-filter-bar > * { min-width: 0; }
  .tfa-rooms-page .tfa-filter-bar__search, .tfa-rooms-page .tfa-filter-bar__active { grid-column: 1 / -1; }
}

/* Task assignments share readable recipients, statuses and independent time fields. */
.tfa-task-navigation { display: flex; flex-wrap: wrap; gap: var(--tfa-space-2); margin: 0 0 var(--tfa-space-4); border-bottom: 1px solid var(--tfa-color-border); }
.tfa-task-navigation a { min-height: var(--tfa-touch-target); display: flex; align-items: center; padding: var(--tfa-space-2) var(--tfa-space-3); border-bottom: 3px solid transparent; font-weight: 700; }
.tfa-task-navigation a[aria-current] { border-color: var(--tfa-color-accent); background: var(--tfa-color-selected); }
.tfa-assignment-workspace { display: grid; gap: var(--tfa-space-3); align-items: start; }
.tfa-assignment-workspace--selected { grid-template-columns: minmax(0, 2fr) minmax(20rem, 1fr); }
.tfa-assignment-row { grid-column: 1; min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr) auto; gap: var(--tfa-space-3); padding: var(--tfa-space-3); background: var(--tfa-color-surface-raised); border: 1px solid var(--tfa-color-border); border-radius: var(--tfa-radius-control); }
.tfa-assignment-row.is-selected { border-color: var(--tfa-color-accent); box-shadow: inset 3px 0 var(--tfa-color-accent); background: var(--tfa-color-selected); }
.tfa-assignment-row h2 { font-size: 1.05rem; margin: 0 0 var(--tfa-space-1); }
.tfa-assignment-row small { color: var(--tfa-color-text-subtle); }
.tfa-assignment-row__status, .tfa-assignment-group { display: flex; flex-direction: column; align-items: flex-start; gap: var(--tfa-space-2); }
.tfa-assignment-group > a { font-weight: 700; }
.tfa-assignment-selection { min-width: 0; grid-column: 2; grid-row: 1 / span 26; align-self: start; }
.tfa-assignment-selection .tfa-section-card__header { align-items: flex-start; flex-direction: column; }
.tfa-assignment-selection .tfa-metadata-list > div { grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); }
.tfa-assignment-selection .tfa-action-bar > a { width: 100%; }
.tfa-assignment-status { display: inline-flex; width: fit-content; max-width: 100%; align-items: center; gap: var(--tfa-space-2); border-radius: var(--tfa-radius-control); padding: var(--tfa-space-1) var(--tfa-space-2); font-weight: 700; color: var(--tfa-color-info); background: var(--tfa-color-info-soft); }
.tfa-assignment-status::before { content: ""; width: .5em; height: .5em; flex-shrink: 0; border-radius: 50%; background: currentColor; }
.tfa-assignment-status--printed { color: var(--tfa-color-accent); background: var(--tfa-color-selected); }
.tfa-assignment-status--distributed, .tfa-assignment-status--completed { color: var(--tfa-color-success); background: var(--tfa-color-success-soft); }
@media (max-width: 74.999rem) {
  .tfa-assignment-workspace--selected { grid-template-columns: minmax(0, 1fr); }
  .tfa-assignment-selection { grid-column: 1; grid-row: auto; }
}
@media (max-width: 47.999rem) {
  .tfa-assignment-row { grid-template-columns: minmax(0, 1fr); }
  .tfa-assignment-row__status { flex-direction: row; align-items: center; justify-content: space-between; flex-wrap: wrap; }
  .tfa-assignment-page .tfa-filter-bar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--tfa-space-2); padding: var(--tfa-space-2); }
  .tfa-assignment-page .tfa-filter-bar > * { min-width: 0; }
  .tfa-assignment-page .tfa-filter-bar__search, .tfa-assignment-page .tfa-filter-bar__active, .tfa-assignment-page .tfa-filter-bar > button { grid-column: 1 / -1; }
}

.tfa-assignment-filters { flex-basis: 100%; grid-column: 1 / -1; min-width: 0; }
.tfa-assignment-filters summary { min-height: var(--tfa-touch-target); cursor: pointer; padding: var(--tfa-space-2) 0; }
.tfa-assignment-filters > .tfa-action-bar { margin-top: var(--tfa-space-2); }
.tfa-assignment-filters .tfa-filter-bar__field { min-width: 0; flex: 1 1 15rem; }

.tfa-assignment-recipient { display: flex; flex-direction: column; gap: var(--tfa-space-2); min-width: 0; }
.tfa-assignment-related-item { display: flex; flex-direction: column; align-items: flex-start; gap: var(--tfa-space-2); }
.tfa-assignment-selection .tfa-stack { gap: var(--tfa-space-3); }

/* Choose a recipient type, then search the matching portrait cards. */
.tfa-recipient-picker { max-width: 72rem; }
.tfa-recipient-task { margin: 0; padding: var(--tfa-space-3); background: var(--tfa-color-info-soft); border-radius: var(--tfa-radius-control); overflow-wrap: anywhere; }
.tfa-recipient-kinds { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--tfa-space-3); max-width: 32rem; }
.tfa-recipient-kinds .tfa-button { min-height: 5rem; font-size: 1.25rem; }
.tfa-recipient-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); gap: var(--tfa-space-3); list-style: none; margin: 0; padding: 0; }
.tfa-recipient-grid > li { min-width: 0; }
.tfa-recipient-card, .tfa-recipient-identity { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr); align-items: center; gap: var(--tfa-space-3); overflow-wrap: anywhere; }
.tfa-recipient-card { height: 100%; padding: var(--tfa-space-3); color: var(--tfa-color-text); background: var(--tfa-color-surface-raised); border: 1px solid var(--tfa-color-border); border-radius: var(--tfa-radius-control); text-decoration: none; }
.tfa-recipient-card:hover { border-color: var(--tfa-color-accent); background: var(--tfa-color-selected); }
.tfa-recipient-photo { width: 4.5rem; height: 4.5rem; border-radius: var(--tfa-radius-control); object-fit: cover; }
.tfa-recipient-photo--placeholder { display: grid; place-items: center; background: var(--tfa-color-info-soft); color: var(--tfa-color-info); font-size: 1.3rem; font-weight: 700; }
.tfa-recipient-copy { display: grid; gap: var(--tfa-space-1); min-width: 0; }
.tfa-recipient-copy strong { font-size: 1.1rem; }
.tfa-recipient-copy small { color: var(--tfa-color-text-subtle); }
.tfa-recipient-card__action { grid-column: 2; color: var(--tfa-color-accent); font-weight: 700; }
.tfa-recipient-confirm { max-width: 44rem; }
.tfa-assignment-extras > summary { min-height: var(--tfa-touch-target); display: list-item; padding: var(--tfa-space-2) 0; cursor: pointer; font-weight: 700; }
.tfa-assignment-extras .tfa-field { margin-top: var(--tfa-space-3); }
@media (max-width: 30rem) { .tfa-recipient-picker .tfa-filter-bar { display: grid; grid-template-columns: minmax(0, 1fr); } }

/* Account administration uses the same person identity and reading order. */
.tfa-account-list { margin: 0; padding: 0; list-style: none; }
.tfa-account-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; align-items: start; gap: var(--tfa-space-5); padding-block: var(--tfa-space-5); border-bottom: 1px solid var(--tfa-color-border); }
.tfa-account-row:first-child { padding-top: 0; }
.tfa-account-row:last-child { padding-bottom: 0; border-bottom: 0; }
.tfa-account-row__details { display: grid; gap: var(--tfa-space-1); }
@media (max-width: 47.999rem) { .tfa-account-row { grid-template-columns: 1fr; gap: var(--tfa-space-3); } }
