/* Kit layout helpers */
.side-rail {
  display: flex;
  width: fit-content;
  min-width: 144px;
  flex-shrink: 0;
  flex-direction: column;
  gap: 2px;
  padding: 8px 4px;
}
.content-column {
  display: flex;
  flex: 1;
  min-height: 0;
  overflow: auto;
  padding: 24px;
}
.content-column-centered {
  align-items: center;
  justify-content: center;
}
.content-column-inner {
  display: flex;
  width: 100%;
  max-width: 24rem;
  min-width: 0;
  flex-direction: column;
  gap: 16px;
}
.btn-icon-label {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
}

.field-group {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  max-width: var(--measure);
}

/* Confirm / InlineInput shell — same height as EntityRow.
   Min width = ≥10ch content + reserved action block (+ prefix when present). */
.confirm-field {
  /* Two full-height action tiles flush to the trailing edge. */
  --confirm-field-action-w: calc(var(--row-h) - 2px);
  --confirm-field-actions-w: calc(var(--confirm-field-action-w) * 2);
  --confirm-field-prefix-floor: 2.75rem;
  box-sizing: border-box;
  display: flex;
  width: 100%;
  min-width: calc(10ch + var(--confirm-field-actions-w) + var(--space-2));
  align-items: stretch;
  gap: 0;
  height: var(--row-h);
  min-height: var(--row-h);
  /* Actions flush trailing edge; text inset lives on the control. */
  padding: 0;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--bg-inset);
  /* One chrome ring only — never stack outline on the inner control. */
  outline: none;
  box-shadow: none;
}

.confirm-field:has(> .confirm-field__prefix) {
  min-width: calc(
    10ch + var(--confirm-field-actions-w) + var(--confirm-field-prefix-floor) + var(--space-2)
  );
}

/* Prefix / postfix — exclusive icon or unit; hairline separates from the value. */
.confirm-field__prefix,
.confirm-field__postfix {
  box-sizing: border-box;
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  align-self: stretch;
  gap: var(--space-1);
  padding: 0 var(--space-2);
  color: var(--text-muted);
}

.confirm-field__prefix {
  border-right: 1px solid var(--border-subtle);
  /* Space between divider and the typed value. */
  margin-right: var(--space-2);
}

.confirm-field__postfix {
  border-left: 1px solid var(--border-subtle);
  margin-left: var(--space-2);
}

.confirm-field.is-multiline .confirm-field__prefix,
.confirm-field.is-multiline .confirm-field__postfix {
  align-self: flex-start;
  padding-top: 0.35em;
}

.confirm-field__affix-text {
  color: inherit;
}

.confirm-field__prefix .entity-icon,
.confirm-field__prefix svg {
  display: block;
  flex-shrink: 0;
}

/* Always reserve Cancel+Accept width (children may be display:none when clean). */
.confirm-field__actions {
  display: inline-flex;
  flex: 0 0 var(--confirm-field-actions-w);
  align-items: stretch;
  align-self: stretch;
  justify-content: flex-end;
  gap: 0;
  width: var(--confirm-field-actions-w);
  min-width: var(--confirm-field-actions-w);
  height: auto;
}

.confirm-field.is-dirty {
  border-color: var(--text);
}

.confirm-field.is-invalid {
  border-color: var(--danger);
}

.confirm-field:focus-within {
  border-color: var(--accent-strong);
}

/* Quiet idle — same idea as MultiSelect: no shell until focus / dirty.
   Value / placeholder sit flush with `.field-label` (padding 0). */
.confirm-field.is-idle:not(.is-dirty):not(.is-invalid):not(:focus-within) {
  border-color: transparent;
  background: transparent;
  min-width: 10ch;
  transition: background-color 120ms ease-out, border-color 120ms ease-out;
}

.confirm-field.is-idle:not(.is-dirty):not(.is-invalid):not(:focus-within):has(
    > .confirm-field__prefix
  ) {
  min-width: calc(10ch + var(--confirm-field-prefix-floor) + var(--space-2));
}

.confirm-field.is-idle:not(.is-dirty):not(.is-invalid):not(:focus-within):hover {
  background: color-mix(in srgb, var(--text) 8%, transparent);
}

.confirm-field.is-idle:not(.is-dirty):not(.is-invalid):not(:focus-within)
  .confirm-field__actions {
  display: none;
}

.confirm-field.is-idle:not(.is-dirty):not(.is-invalid):not(:focus-within)
  .confirm-field__prefix {
  border-right-color: transparent;
}

.confirm-field.is-idle:not(.is-dirty):not(.is-invalid):not(:focus-within)
  .confirm-field__postfix {
  border-left-color: transparent;
}

.confirm-field.is-idle:not(.is-dirty):not(.is-invalid):not(:focus-within)
  .confirm-field__control {
  padding-left: 0;
}

/* Idle empty multiline — exactly one line (`--row-h`, same as text input). */
.confirm-field.is-idle.is-empty.is-multiline:not(.is-dirty):not(.is-invalid):not(
    :focus-within
  ) {
  height: var(--row-h);
  min-height: var(--row-h);
  max-height: var(--row-h);
  align-items: center;
}

.confirm-field.is-idle.is-empty.is-multiline:not(.is-dirty):not(.is-invalid):not(
    :focus-within
  )
  .confirm-field__control {
  min-height: 0 !important;
  height: 100% !important;
  max-height: none;
  resize: none;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  overflow: hidden;
  field-sizing: fixed;
  line-height: calc(var(--row-h) - 2px);
}

.confirm-field.is-idle.is-empty:not(.is-dirty):not(.is-invalid):not(:focus-within)
  .confirm-field__control::placeholder {
  color: var(--text-label);
  opacity: 1;
}

.confirm-field.is-multiline {
  height: auto;
  min-height: var(--row-h);
  align-items: stretch;
  padding-top: 0;
  padding-bottom: 0;
}

.confirm-field.is-multiline .confirm-field__actions {
  align-self: flex-start;
  height: var(--confirm-field-action-w);
}

.confirm-field__control,
.confirm-field input.confirm-field__control,
.confirm-field textarea.confirm-field__control {
  box-sizing: border-box;
  flex: 1 1 10ch;
  width: 0; /* share row with prefix / actions — ignore .field input { width:100% } */
  max-width: none;
  min-width: 10ch; /* content floor — prefix + actions add outside this */
  height: 100%;
  margin: 0;
  /* Active chrome inset — space-3 matches search-input x padding. */
  padding: 0 0 0 var(--space-3);
  border: none !important;
  border-radius: 0;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--text);
  font: inherit;
  outline: none !important;
  -webkit-appearance: none;
  appearance: none;
}

.confirm-field:has(> .confirm-field__prefix) .confirm-field__control {
  padding-left: 0;
}

.confirm-field__control:focus,
.confirm-field__control:focus-visible {
  outline: none !important;
  box-shadow: none !important;
}

.confirm-field.is-multiline .confirm-field__control {
  min-height: calc(var(--row-h) - 4px);
  height: auto;
  resize: vertical;
  padding-top: var(--space-2);
  padding-bottom: var(--space-2);
}

.confirm-field__action {
  display: inline-flex;
  flex: 0 0 var(--confirm-field-action-w);
  align-items: center;
  justify-content: center;
  width: var(--confirm-field-action-w);
  min-width: var(--confirm-field-action-w);
  height: 100%;
  min-height: 100%;
  border: none;
  border-radius: 0;
  padding: 0;
  cursor: pointer;
}

.confirm-field__action.is-hidden {
  display: none;
}

.confirm-field__action--cancel {
  background: transparent;
  color: var(--text);
}

.confirm-field__action--accept {
  background: var(--text);
  color: var(--bg);
  /* Flush to the shell’s trailing corner (no inset). */
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}

.confirm-field.has-dirty-extra {
  --confirm-field-actions-w: calc(var(--confirm-field-action-w) * 3);
}

.confirm-field__dirty-extra {
  display: inline-flex;
  align-items: stretch;
  flex: 0 0 auto;
}

.confirm-field__dirty-extra.is-hidden {
  display: none;
}

.confirm-field__action--assist {
  color: var(--warning);
  background: color-mix(in srgb, var(--warning) 14%, transparent);
}

.confirm-field__action--invalid {
  background: color-mix(in srgb, var(--danger) 15%, transparent);
  color: var(--danger);
  cursor: default;
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}

.field-actions {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
}

.field-actions > :last-child {
  margin-left: auto;
}

/* Assessments admin queue + brand home */
.assessments-admin {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  margin: 0;
  padding: 0;
  gap: 0;
  overflow: hidden;
}
.assessments-admin > .pane-chrome {
  justify-content: space-between;
}
/* Top status tabs = workspace chrome band (`--pane-chrome-height`) so
   `workspace-layout::after` lands on the tab bottom — never through labels. */
.workspace-chrome-tabs {
  box-sizing: border-box;
  flex: 0 0 var(--pane-chrome-height);
  height: var(--pane-chrome-height);
  max-height: var(--pane-chrome-height);
  min-height: 0;
  overflow: hidden;
}
.workspace-chrome-tabs .nav-rail--horizontal {
  height: 100%;
  margin-bottom: 0;
  border-bottom: none;
  background: var(--bg-elevated);
}
.workspace-chrome-tabs .nav-rail--horizontal .nav-rail-body {
  min-height: 100%;
  height: 100%;
  align-items: stretch;
  justify-content: center;
}
.assessments-row-detail {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  /* Match FillSplit pane gap (Products ↔ Verdicts ↔ Resolution). */
  gap: var(--space-4);
  padding: var(--space-2) var(--list-pad-x) var(--space-3);
  min-width: 0;
}
.assessments-row-detail__loading {
  margin: 0;
  padding: var(--space-3) 0;
}
/* One assessment = one FillShell (status + optional body), same as Eligibility step 3. */
.assessments-brand-item {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  flex: 0 0 auto;
  min-width: 0;
  width: 100%;
}
.assessments-brand-item__shell.ui-fill-shell {
  flex: 0 0 auto;
  height: auto;
  min-height: 0;
  overflow: visible;
  /* Owner step-pane enter animation would blink on every open/close here. */
  animation: none;
}
/* Status row must never absorb leftover height (closed = only child / last-child). */
.assessments-brand-item__shell > .brand-home-eligibility__assessment-row {
  flex: 0 0 auto;
  width: 100%;
  min-height: 0;
}
.assessments-brand-item:not(.is-open) .assessments-brand-item__shell.ui-fill-shell {
  gap: 0;
}
.assessments-brand-item:not(.is-open) .assessments-brand-item__shell.ui-fill-shell > *:last-child {
  flex: 0 0 auto;
}
.assessments-brand-item.is-open .assessments-brand-item__shell.ui-fill-shell {
  overflow: hidden;
  /* Header ↔ body = same as pane gap in FillSplit. */
  gap: var(--space-4);
}
.assessments-brand-item__shell.ui-fill-shell > .assessments-brand-item__body {
  display: flex;
  flex-direction: column;
  flex: 0 0 auto;
  min-width: 0;
  width: 100%;
  box-sizing: border-box;
  height: calc(16 * var(--row-h));
  min-height: calc(16 * var(--row-h));
  max-height: calc(16 * var(--row-h));
  overflow: hidden;
}
.assessments-brand-item__body > .ui-fill-split {
  flex: 1 1 0;
  min-height: 0;
  height: 100%;
}
.brand-home-eligibility__assessment-row.is-toggle {
  cursor: pointer;
}
/* Brand accordion grows with stacked assessment shells. */
.assessments-admin
  .entity-row__block.is-details-open:has(.assessments-row)
  > .entity-row__details
  > .entity-row__details-clip {
  height: auto;
  min-height: calc(8 * var(--row-h));
  max-height: none;
  overflow-x: auto;
  overflow-y: auto;
}
.assessments-scroll {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.assessments-scroll > .entity-list {
  flex: 1;
  min-height: 0;
  height: 100%;
}
.assessments-scroll .entity-list__body-wrap {
  flex: 1;
  min-height: 0;
}
.assessments-scroll .entity-list__body {
  flex: 1;
  min-height: 0;
  overflow: auto;
}
.assessments-inspector-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
  margin-bottom: var(--space-3);
}
.assessments-inspector .inspector-pane-stack > .inspector-pane-body {
  padding: 0;
  gap: 0;
}
.assessments-inspector .inspector-pane-stack.has-toolbar > .inspector-pane-body {
  /* Keep horizontal pad at 0 (content uses `.assessments-inspector-pad`); only clear the bar. */
  padding-bottom: calc(var(--pane-chrome-height) + var(--space-3));
}
.assessments-inspector-pad {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  padding: var(--space-3);
}
.assessments-tools-row {
  margin-top: var(--space-1);
}
.assessments-owner-upload {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  margin-top: var(--space-1);
}
.assessments-owner-upload .form-actions {
  margin-top: var(--space-1);
}
.assessments-products {
  display: flex;
  flex-direction: column;
  min-height: 0;
  flex: 1;
  border-top: 1px solid var(--border-subtle);
}
.assessments-products-empty {
  padding: var(--space-2) var(--space-3);
}
.assessments-products-list {
  flex: 1;
  min-height: 0;
  border: none;
  border-radius: 0;
  display: flex;
  flex-direction: column;
}
.assessments-products-list .entity-list__body {
  flex: 1;
  min-height: 0;
  max-height: none;
  overflow: auto;
}
.entity-row__block {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.entity-row__block.is-details-open {
  isolation: isolate;
}
.entity-row__block.is-details-open > .entity-row,
.entity-row__block.is-details-open > .entity-row__shell {
  position: sticky;
  top: 0;
  z-index: 10;
  /* Match roster elevated surface (not darker `--bg`) so expand stays flush. */
  background-color: var(--bg-elevated);
}
.entity-row__block.is-details-open > .entity-row.selected,
.entity-row__block.is-details-open > .entity-row__shell:has(> .entity-row.selected) {
  /* --selection is translucent — layer over opaque elevated so details can't bleed through. */
  background-color: var(--bg-elevated);
  background-image: linear-gradient(var(--selection), var(--selection));
  box-shadow:
    inset 4px 0 0 var(--accent),
    0 1px 0 var(--border-subtle);
}
.entity-row__block.is-details-open > .entity-row__shell:has(> .entity-row.selected)
  > .entity-row.selected {
  background: transparent;
  background-image: none;
  box-shadow: none;
}
.entity-row__block.is-details-open > .entity-row__shell {
  background-color: var(--bg-elevated);
}
.entity-row__details {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-rows: 0fr;
  padding: 0;
  border-bottom: 1px solid var(--border-subtle);
  /* Recessed well under the open row — full-bleed so it stays flush with
     the selection accent (no left gutter). */
  background: var(--bg-inset);
  transition: grid-template-rows 200ms ease-out;
}
.entity-row__details.is-open {
  grid-template-rows: 1fr;
}
.entity-row__details-clip {
  min-height: 0;
  overflow-x: auto;
  overflow-y: hidden;
}
@media (prefers-reduced-motion: reduce) {
  .entity-row__details {
    transition: none;
  }
}
.entity-row__details-list {
  display: flex;
  flex-direction: column;
  min-width: 0;
  width: 100%;
  border: none;
  border-radius: 0;
  background: transparent;
  /* Own column — do not inherit the parent roster's `--entity-meta-slot-w`. */
  --entity-meta-slot-w: max-content;
}
/* Nested roster title (“Ingredients”) is redundant under a selected product.
   Body keeps `aria-label` for accessibility. */
.entity-row__details-list > .entity-list__titlebar {
  display: none;
}
.entity-row__details-list .entity-list__body {
  overflow: visible;
  max-height: none;
}
.brand-home {
  display: flex;
  flex-direction: column;
  padding: 0;
  overflow: hidden;
  height: 100%;
  min-height: 0;
}
.brand-home-body {
  flex: 1 1 0;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.brand-home-eligibility {
  flex: 0 0 auto;
  border-bottom: none;
  background: transparent;
}
.brand-home-eligibility--solo {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.brand-home-eligibility__cta {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: var(--space-5) var(--list-pad-x);
}
.brand-home-eligibility--solo > .brand-home-eligibility__cta {
  flex: 1 1 0;
  min-height: 0;
}
.brand-home-eligibility__wizard {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding-bottom: 0;
}
.brand-home-eligibility--solo > .brand-home-eligibility__wizard {
  flex: 1 1 0;
  min-height: 0;
  overflow: hidden;
}
.brand-home-eligibility__tabs .nav-rail--horizontal {
  background: var(--bg-elevated);
  border-bottom: none;
  margin-bottom: 0;
}
.brand-home-eligibility__tabs .nav-rail--horizontal .nav-rail-body {
  justify-content: center;
}
.brand-home-eligibility__step-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: var(--space-3);
  padding: var(--space-5) var(--list-pad-x);
  background: transparent;
}
.brand-home-eligibility--solo .brand-home-eligibility__step-body {
  flex: 1 1 0;
  min-height: 0;
  justify-content: center;
}
/* Fee step: fill the column; 2× row-h inset; products card grows with the window. */
.brand-home-eligibility--solo .brand-home-eligibility__step-body--fee {
  justify-content: flex-start;
  align-items: stretch;
  padding-block: calc(2 * var(--row-h));
  padding-inline: var(--list-pad-x);
  overflow: hidden;
}
@keyframes eligibility-step-enter {
  from {
    opacity: 0;
    transform: translateY(calc(3 * var(--u)));
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.brand-home-eligibility__step-pane {
  animation: eligibility-step-enter 280ms ease-out;
}
/* Products intake | rail | detail — wide enough for three panes. */
.brand-home-eligibility__step-pane--products.ui-fill-shell--wide {
  max-width: calc(440 * var(--u));
}
.brand-home-eligibility__fee {
  flex: 1 1 0;
  align-self: stretch;
  min-height: 0;
  width: 100%;
  max-width: calc(90 * var(--u));
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-4);
  overflow: hidden;
}
/* Solo Fee: grow with product names when the step has spare width — never
   ellipsis a name while empty margin sits around the rail. */
.brand-home-eligibility--solo .brand-home-eligibility__fee:not(.brand-home-eligibility__fee--split) {
  width: max-content;
  min-width: min(100%, calc(90 * var(--u)));
  max-width: 100%;
}
.brand-home-eligibility--solo
  .brand-home-eligibility__fee:not(.brand-home-eligibility__fee--split)
  .brand-home-eligibility__products,
.brand-home-eligibility--solo
  .brand-home-eligibility__fee:not(.brand-home-eligibility__fee--split)
  .brand-home-eligibility__products
  > .entity-list,
.brand-home-eligibility--solo
  .brand-home-eligibility__fee:not(.brand-home-eligibility__fee--split)
  .brand-home-eligibility__products
  > .entity-list
  > .entity-list__body-wrap,
.brand-home-eligibility--solo
  .brand-home-eligibility__fee:not(.brand-home-eligibility__fee--split)
  .brand-home-eligibility__products
  > .entity-list
  > .entity-list__body-wrap
  > .entity-list__body {
  width: max-content;
  min-width: 100%;
  max-width: none;
}
.brand-home-eligibility--solo
  .brand-home-eligibility__fee:not(.brand-home-eligibility__fee--split)
  .brand-home-eligibility__products
  .user-row-text {
  /* overflow:hidden zeroes flex min-content — keep names measurable. */
  overflow: visible;
  flex: 0 1 auto;
  width: max-content;
  max-width: none;
}
.brand-home-eligibility--solo
  .brand-home-eligibility__fee:not(.brand-home-eligibility__fee--split)
  .brand-home-eligibility__products
  .user-email {
  overflow: visible;
  text-overflow: unset;
  white-space: nowrap;
  flex: 0 0 auto;
}
.brand-home-eligibility--solo
  .brand-home-eligibility__fee:not(.brand-home-eligibility__fee--split)
  .brand-home-eligibility__products
  .user-email-secondary {
  overflow: visible;
  text-overflow: unset;
  white-space: nowrap;
}
/* Open Product info must not widen the rail — size to the closed roster only. */
.brand-home-eligibility--solo
  .brand-home-eligibility__fee:not(.brand-home-eligibility__fee--split)
  .brand-home-eligibility__products
  .entity-row__details {
  width: 0;
  min-width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
.brand-home-eligibility__fee--split {
  max-width: calc(440 * var(--u));
}
.brand-home-eligibility__ack {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
  margin: 0;
  cursor: pointer;
}
.brand-home-eligibility__ack:has(input:disabled) {
  cursor: not-allowed;
  opacity: 0.55;
}
.brand-home-eligibility__ack input[type="checkbox"] {
  margin-top: calc(0.35 * var(--u));
  flex-shrink: 0;
}
.brand-home-eligibility__product-detail-editor {
  flex: 0 0 auto;
  border-bottom: 1px solid var(--border-subtle);
}
.brand-home-eligibility__product-detail-editor .brand-home-eligibility__product-info {
  padding: var(--space-3) var(--list-pad-x);
}
/* Kit: first-row add — one chrome for one-click and type-to-add. */
.entity-list-add {
  box-sizing: border-box;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: var(--space-2);
  width: 100%;
  min-height: var(--row-h);
  margin: 0;
  padding: 0 var(--list-pad-x);
  border: none;
  border-bottom: 1px solid var(--border-subtle);
  background: transparent;
  color: var(--text-muted);
  font: inherit;
  text-align: start;
}
.entity-list-add.is-disabled {
  opacity: 0.5;
  pointer-events: none;
}
.entity-list-add__icon {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: inherit;
}
.entity-list-add__label {
  flex: 0 0 auto;
  font-weight: 600;
  color: inherit;
}
.entity-list-add--action {
  cursor: pointer;
}
.entity-list-add--action:hover:not(:disabled),
.entity-list-add--action:focus-visible:not(:disabled),
.entity-list-add--field:hover:not(.is-disabled) {
  color: var(--text);
  background: color-mix(in srgb, var(--text) 6%, transparent);
  outline: none;
}
.entity-list-add--action:disabled {
  opacity: 0.5;
  cursor: default;
}
.entity-list-add--field .confirm-field,
.entity-list-add--field .inline-input {
  flex: 1 1 auto;
  min-width: 0;
}
/* Idle type-to-add: placeholder matches «Add <entity>» label weight/tone. */
.entity-list-add--field .confirm-field.is-idle:not(.is-dirty):not(.is-invalid):not(:focus-within) {
  background: transparent;
}
.entity-list-add--field:hover:not(.is-disabled)
  .confirm-field.is-idle:not(.is-dirty):not(.is-invalid):not(:focus-within) {
  background: transparent;
}
.entity-list-add--field
  .confirm-field.is-idle:not(.is-dirty):not(.is-invalid):not(:focus-within)
  .confirm-field__control {
  color: inherit;
  font-weight: 600;
}
.entity-list-add--field
  .confirm-field.is-idle:not(.is-dirty):not(.is-invalid):not(:focus-within)
  .confirm-field__control::placeholder {
  color: inherit;
  font-weight: 600;
  opacity: 1;
}
/* Accepted intake product — one outer chrome; editor then ingredients.
   Default: hug content so `.brand-home-eligibility__product-detail` scrolls.
   Ingredients-expanded: fill the pane and scroll the INCI list. */
.brand-home-eligibility__intake-editor {
  flex: 1 0 auto;
  min-height: 100%;
  height: auto;
  display: flex;
  flex-direction: column;
  overflow: visible;
  border: none;
  background: transparent;
}
.brand-home-eligibility__intake-editor:has(
  > .brand-home-eligibility__intake-editor-layout.is-ingredients-expanded
) {
  flex: 1 1 0;
  min-height: 0;
  height: 100%;
  overflow: hidden;
}
.brand-home-eligibility__intake-editor-layout {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  padding: 0;
  min-height: 100%;
  height: auto;
}
.brand-home-eligibility__intake-editor-layout.is-ingredients-expanded {
  min-height: 0;
  height: 100%;
  overflow: hidden;
}
.brand-home-eligibility__intake-editor-slot {
  flex: 0 0 auto;
  max-height: none;
  min-height: 0;
  min-width: 0;
  width: 100%;
  overflow: visible;
  transition: height 280ms ease-in-out;
}
.brand-home-eligibility__intake-editor-layout.is-ingredients-expanded
  > .brand-home-eligibility__intake-editor-slot {
  height: 0;
  flex: 0 0 auto;
  max-height: none;
  overflow: hidden;
  /* Keep chrome actions (Delete / Generate) clickable; only the body is inert. */
  pointer-events: none;
}
.brand-home-eligibility__intake-editor-layout.is-ingredients-expanded
  > .brand-home-eligibility__intake-editor-slot
  .pane-chrome {
  pointer-events: auto;
}
.brand-home-eligibility__intake-editor-clip {
  min-height: 0;
}
.brand-home-eligibility__intake-editor-slot .editor-pane {
  min-height: calc(12 * var(--u));
  min-width: 0;
  width: 100%;
  height: auto;
  border: none;
  border-radius: 0;
  background: transparent;
}
.brand-home-eligibility__intake-editor-layout > .brand-products-detail__ingredients {
  flex: 0 0 auto;
  min-height: 0;
  min-width: 0;
  width: 100%;
  border: none;
  border-radius: 0;
  border-top: 1px solid var(--border-subtle);
  background: transparent;
  overflow: visible;
  display: flex;
  flex-direction: column;
  transition: border-color 240ms ease-out;
}
.brand-home-eligibility__intake-editor-layout.is-ingredients-expanded
  > .brand-products-detail__ingredients {
  flex: 1 1 0;
  min-height: 0;
  overflow: hidden;
  border-top-color: transparent;
}
@media (prefers-reduced-motion: reduce) {
  .brand-home-eligibility__intake-editor-slot,
  .brand-home-eligibility__intake-editor-layout > .brand-products-detail__ingredients {
    transition: none;
  }
}
.brand-home-eligibility__intake-ingredients {
  flex: 0 0 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: visible;
}
.brand-home-eligibility__intake-editor-layout.is-ingredients-expanded
  .brand-home-eligibility__intake-ingredients {
  flex: 1 1 0;
  min-height: 0;
  overflow: hidden;
}
.brand-home-eligibility__intake-ingredients-chrome {
  flex: 0 0 auto;
  gap: var(--space-2);
}
.brand-home-eligibility__intake-ingredients-chrome .badge.count {
  flex-shrink: 0;
}
.brand-home-eligibility__intake-ingredients-chrome .pane-chrome-actions {
  margin-inline-start: auto;
}
.brand-home-eligibility__intake-ingredients-list {
  flex: 0 0 auto;
  min-height: 0;
  height: auto;
  display: flex;
  flex-direction: column;
  overflow: visible;
}
.brand-home-eligibility__intake-editor-layout.is-ingredients-expanded
  .brand-home-eligibility__intake-ingredients-list {
  flex: 1 1 0;
  min-height: 0;
  height: 100%;
  overflow: hidden;
}
.brand-home-eligibility__intake-ingredients-list > .entity-list__titlebar {
  display: none;
}
.brand-home-eligibility__intake-ingredients-list > .entity-list__body-wrap {
  flex: 0 0 auto;
  min-height: 0;
  overflow: visible;
}
.brand-home-eligibility__intake-editor-layout.is-ingredients-expanded
  .brand-home-eligibility__intake-ingredients-list
  > .entity-list__body-wrap {
  flex: 1 1 0;
  min-height: 0;
  overflow: hidden;
}
.brand-home-eligibility__intake-ingredients-list
  > .entity-list__body-wrap
  > .entity-list__body {
  flex: 0 0 auto;
  min-height: 0;
  overflow: visible;
}
.brand-home-eligibility__intake-editor-layout.is-ingredients-expanded
  .brand-home-eligibility__intake-ingredients-list
  > .entity-list__body-wrap
  > .entity-list__body {
  flex: 1 1 0;
  min-height: 0;
  overflow: auto;
}
/* Catalog typeahead under Add ingredient — darker rows than product INCI. */
.intake-ingredient-suggest:empty {
  display: none;
}
.intake-ingredient-suggest .entity-row {
  background: color-mix(in srgb, var(--text) 10%, var(--bg-inset));
}
.intake-ingredient-suggest .entity-row:hover,
.intake-ingredient-suggest .entity-row:focus-visible {
  background: color-mix(in srgb, var(--text) 14%, var(--bg-inset));
  color: var(--text);
}
.intake-ingredient-row-label {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
  width: 100%;
}
.intake-ingredient-row-label .hover-rename {
  flex: 1;
  min-width: 0;
}
.intake-ingredient-row-label__name {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.brand-home-eligibility__product-info {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-3);
  min-width: 0;
}
.brand-home-eligibility__product-info-body {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  min-width: 0;
}
.brand-home-eligibility__product-info .form-actions {
  margin: 0;
  padding: 0;
  border: none;
}
.brand-home-eligibility__verdicts,
.brand-home-eligibility__verdict-detail,
.brand-home-eligibility__intake,
.brand-home-eligibility__product-detail,
.brand-home-eligibility__ingredient-detail {
  flex: 1 1 0;
  min-width: 0;
  min-height: 0;
  overflow: auto;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--border-outer);
  border-radius: var(--radius);
  background: var(--bg-elevated);
}
.brand-home-eligibility__intake-body {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-3);
  overflow: hidden;
}
.brand-home-eligibility__intake .dropzone {
  flex: 1 1 0;
  min-height: 0;
  height: 100%;
  align-self: stretch;
}
.brand-home-eligibility__processing-busy.dropzone {
  flex: 1 1 0;
  min-height: calc(16 * var(--row-h));
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.brand-home-eligibility__verdicts > .entity-tiles,
.brand-home-eligibility__verdict-detail > .entity-tiles,
.brand-home-eligibility__product-detail > .entity-tiles,
.brand-home-eligibility__ingredient-detail > .entity-tiles {
  flex: 1 1 0;
  min-height: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.brand-home-eligibility__verdicts .entity-tiles__grid {
  flex: 1 1 0;
  min-height: 0;
  overflow: auto;
  padding: 0;
  align-content: start;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.brand-home-eligibility__product-detail .entity-tiles__grid {
  flex: 1 1 0;
  min-height: 0;
  overflow: auto;
  padding: 0;
  align-content: start;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.brand-home-eligibility__verdict-detail .entity-tiles__grid,
.brand-home-eligibility__ingredient-detail .entity-tiles__grid {
  flex: 1 1 0;
  min-height: 0;
  overflow: auto;
  overscroll-behavior: contain;
  padding: var(--space-3) var(--list-pad-x);
  align-content: start;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.brand-home-eligibility__verdict-detail
  .entity-tiles__grid.brand-home-eligibility__assist-busy {
  align-content: stretch;
  justify-content: center;
  padding: 0;
  overflow: hidden;
}
.brand-home-eligibility__verdict-detail
  .entity-tiles__grid.brand-home-eligibility__assist-busy
  > .brand-home-eligibility__processing-busy {
  flex: 1 1 0;
  min-height: 0;
  height: 100%;
  border: none;
  border-radius: 0;
  background: transparent;
}
.brand-home-eligibility__verdict-detail .entity-tiles__grid > .ui-resolution {
  flex: 0 0 auto;
  width: 100%;
  min-height: min-content;
}
/* Verdicts / product-detail roster — same bleed fill as Products (row owns --list-pad-x).
   Pane chrome already titles the column — hide the nested EntityList titlebar. */
.brand-home-eligibility__verdicts .entity-tiles__grid > .entity-list,
.brand-home-eligibility__product-detail .entity-tiles__grid > .entity-list {
  flex: 1 1 0;
  min-height: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.brand-home-eligibility__verdicts
  .entity-tiles__grid
  > .entity-list
  > .entity-list__titlebar,
.brand-home-eligibility__product-detail
  .entity-tiles__grid
  > .entity-list
  > .entity-list__titlebar {
  display: none;
}
.brand-home-eligibility__verdicts .entity-tiles__grid > .entity-list > .entity-list__body-wrap,
.brand-home-eligibility__product-detail
  .entity-tiles__grid
  > .entity-list
  > .entity-list__body-wrap {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.brand-home-eligibility__verdicts
  .entity-tiles__grid
  > .entity-list
  > .entity-list__body-wrap
  > .entity-list__body,
.brand-home-eligibility__product-detail
  .entity-tiles__grid
  > .entity-list
  > .entity-list__body-wrap
  > .entity-list__body {
  flex: 1 1 0;
  min-height: 0;
  overflow: auto;
}
.brand-home-eligibility__pane-empty {
  margin: 0;
  padding: var(--space-3) var(--list-pad-x);
}
.brand-home-eligibility__verdict-detail-body {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-3);
  min-height: 0;
}
.brand-home-eligibility__product-detail-body {
  flex: 1 1 0;
  min-height: 0;
  overflow: auto;
  display: flex;
  flex-direction: column;
}
.brand-home-eligibility__verdict-detail-block {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}
.brand-home-eligibility__fee-intro {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-1);
  text-align: center;
}
/* Assessment status band — framed chrome with nested 1u inset.
   Do NOT put EntityRow here: roster min-height / pad fight the inset. */
.brand-home-eligibility__assessment-row {
  flex: 0 0 auto;
  box-sizing: border-box;
  border: 1px solid var(--border-outer);
  border-radius: var(--radius);
  background: var(--bg-elevated);
  /* Nested corner inset = one base unit on every side. */
  padding: var(--space-1);
  transition: border-color 120ms ease;
}
.brand-home-eligibility__assessment-row:hover,
.brand-home-eligibility__assessment-row.is-open,
.assessments-brand-item.is-open .brand-home-eligibility__assessment-row {
  border-color: var(--accent);
}
.brand-home-eligibility__assessment-row-inner {
  box-sizing: border-box;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: var(--space-2);
  min-height: var(--control-h);
  min-width: 0;
}
.brand-home-eligibility__assessment-row-title {
  flex: 0 0 auto;
  font-weight: 600;
  white-space: nowrap;
}
.brand-home-eligibility__assessment-row-id {
  flex: 0 1 auto;
  min-width: 0;
  max-width: 12ch;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: var(--ui-text-caption);
  font-variant-numeric: tabular-nums;
  opacity: 0.45;
  user-select: all;
}
.brand-home-eligibility__assessment-row-count {
  flex-shrink: 0;
}
.brand-home-eligibility__assessment-row-meta {
  display: inline-flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: var(--space-2);
  flex-shrink: 0;
}
.brand-home-eligibility__assessment-row-actions {
  display: inline-flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-2);
  flex: 1 1 auto;
  min-width: 0;
  margin-left: auto;
  min-height: var(--control-h);
  container-type: inline-size;
}
/* Submitted handoff — message lives in the trailing badge (sentence case, filled clean). */
.brand-home-eligibility__assessment-row-awaiting {
  flex: 0 1 auto;
  min-width: 0;
  max-width: 100%;
  margin-left: auto;
  text-align: center;
  line-height: 1.25;
  white-space: normal;
  text-transform: none;
  letter-spacing: 0;
  font-size: var(--ui-text-xs);
  font-weight: 600;
  padding: calc(var(--space-1) + 1px) calc(var(--space-3));
  /* Filled like `.badge.warn` — stronger than the default clean tint wash. */
  color: #fff;
  background: color-mix(in srgb, var(--success) 55%, black);
  border-color: color-mix(in srgb, var(--success) 55%, black);
}
.brand-home-eligibility__readonly-chips {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-1);
  min-height: var(--control-h);
}
/* Toggle rows: empty actions flex space must pass clicks through to the row. */
.brand-home-eligibility__assessment-row.is-toggle
  .brand-home-eligibility__assessment-row-actions {
  pointer-events: none;
}
.brand-home-eligibility__assessment-row.is-toggle
  .brand-home-eligibility__assessment-row-actions
  .btn,
.brand-home-eligibility__assessment-row.is-toggle
  .brand-home-eligibility__assessment-row-actions
  button,
.brand-home-eligibility__assessment-row.is-toggle
  .brand-home-eligibility__assessment-row-actions
  a,
.brand-home-eligibility__assessment-row.is-toggle
  .brand-home-eligibility__assessment-row-actions
  label,
.brand-home-eligibility__assessment-row.is-toggle
  .brand-home-eligibility__assessment-row-actions
  input {
  pointer-events: auto;
}
.brand-home-eligibility__assessment-row-actions .entity-row-message {
  flex: 0 0 auto;
  padding: 0;
  border: none;
  border-radius: 0;
  background: transparent;
  font-size: var(--ui-text-caption);
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.brand-home-eligibility__assessment-row-actions .entity-row-message--danger,
.brand-home-eligibility__assessment-row-actions .entity-row-message--warn,
.brand-home-eligibility__assessment-row-actions .entity-row-message--muted {
  border: none;
  background: transparent;
}
/* Packaging ack: full copy, text then checkbox at the right edge. */
.brand-home-eligibility__assessment-row-ack {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  margin: 0;
  min-width: 0;
  min-height: var(--control-h);
  cursor: pointer;
}
.brand-home-eligibility__assessment-row-ack input[type="checkbox"] {
  margin-top: 0;
  flex-shrink: 0;
}
.brand-home-eligibility__assessment-row-ack-label {
  flex: 0 1 auto;
  min-width: 0;
  white-space: normal;
  font-size: var(--ui-text-xs);
  line-height: 1.25;
  color: var(--text-muted);
}
/* Match pane-chrome compact actions so buttons fit the control band. */
.brand-home-eligibility__assessment-row-actions .btn {
  box-sizing: border-box;
  height: var(--control-h);
  min-height: var(--control-h);
  max-height: var(--control-h);
  padding-top: 0;
  padding-bottom: 0;
}
.brand-home-eligibility__fix {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}
.brand-home-eligibility__fix .dropzone {
  box-sizing: border-box;
  min-height: calc(8 * var(--row-h));
  padding: var(--space-4);
}
.brand-home-eligibility__products {
  flex: 1 1 0;
  min-height: 0;
  max-height: none;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--border-outer);
  border-radius: var(--radius);
  background: var(--bg-elevated);
}
/* Only the roster EntityList fills the card — nested ingredient details must
   hug content (descendant flex/height:100% collapsed them to 0). */
.brand-home-eligibility__products > .entity-list,
.brand-home-eligibility__products > .assessments-products-list {
  flex: 1 1 0;
  min-height: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.brand-home-eligibility__products > .entity-list > .entity-list__titlebar,
.brand-home-eligibility__products > .assessments-products-list > .entity-list__titlebar {
  flex: 0 0 auto;
}
.brand-home-eligibility__products > .entity-list > .entity-list__body-wrap,
.brand-home-eligibility__products > .assessments-products-list > .entity-list__body-wrap {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.brand-home-eligibility__products > .entity-list > .entity-list__body-wrap > .entity-list__body,
.brand-home-eligibility__products > .assessments-products-list > .entity-list__body-wrap > .entity-list__body {
  flex: 1 1 0;
  min-height: 0;
  max-height: none;
  overflow: auto;
}
.brand-home-eligibility__products .entity-row__details-list {
  flex: 0 0 auto;
  height: auto;
  min-height: 0;
  overflow: visible;
}
.brand-home-eligibility__products .entity-row__details-list > .entity-list__body-wrap,
.brand-home-eligibility__products .entity-row__details-list > .entity-list__body-wrap > .entity-list__body {
  flex: 0 0 auto;
  height: auto;
  min-height: 0;
  max-height: none;
  overflow: visible;
}
.brand-home-eligibility__card {
  width: 100%;
  max-width: calc(90 * var(--u));
  align-items: center;
  gap: var(--space-4);
  padding: var(--space-5);
  text-align: center;
}
.brand-home-eligibility__card-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(14 * var(--u));
  height: calc(14 * var(--u));
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--accent) 16%, var(--bg));
  border: 1px solid color-mix(in srgb, var(--accent) 28%, var(--border-outer));
  color: var(--accent);
}
.brand-home-eligibility__card-icon .entity-icon {
  width: calc(7 * var(--u));
  height: calc(7 * var(--u));
  font-size: calc(7 * var(--u));
}
.brand-home-eligibility__card > .form-actions {
  margin-top: var(--space-2);
}
.brand-home-eligibility__card .dropzone {
  align-self: stretch;
  width: 100%;
}

.brand-home-section__toolbar {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  flex: 0 0 auto;
  padding: var(--u);
}

.owner-members {
  padding: 0;
  overflow: auto;
  height: 100%;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.owner-members > .entity-list {
  flex: 1 1 auto;
  min-height: 0;
  height: 100%;
}

.brands-picker {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  overflow: hidden;
}
.brands-picker-scroll {
  flex: 1 1 0;
  min-height: 0;
  overflow: auto;
  padding: 0 1rem 1.5rem;
}
.brand-home-section {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  margin-top: 0;
}
/* Owner Products — reuse eligibility fee column so the rail matches assessment. */
.brand-home-section--products {
  min-height: 0;
  overflow: hidden;
}
.brand-home-section--products > .brand-home-eligibility__step-body {
  flex: 1 1 0;
  min-height: 0;
}
/* Rail stays; details is 1.5× the rail (2 : 3). Was 270u equal → 338u. */
.brand-home-section--products .brand-home-eligibility__fee--split {
  max-width: calc(338 * var(--u));
}
.brand-home-section > .entity-list {
  flex: 1 1 auto;
  min-height: 0;
  height: 100%;
}
.brand-home-section h2,
.brand-home-section h3 {
  font-size: 1em;
  font-weight: 600;
  margin: 0 0 0.75rem;
}

.brand-info {
  gap: var(--space-4);
  padding: var(--space-3) var(--list-pad-x);
  overflow: auto;
}

.brand-info-fields {
  padding: var(--space-3);
}

.form-actions {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  min-height: calc(6 * var(--u));
  gap: var(--space-2);
  /* Top-align so a primary undertitle hangs below without floating the secondary. */
  align-items: flex-start;
}
/* Pair / row: main action on the right edge. */
.form-actions > :last-child:not(:only-child) {
  margin-left: auto;
}
/* Lone action: center in the card / form foot. */
.form-actions:has(> :only-child) {
  justify-content: center;
}
/* Right-edge action cluster (e.g. Reject + Accept) — keeps siblings adjacent. */
.form-actions-end {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  margin-left: auto;
}
/* Primary + undertitle: column width = button hug; hint wraps to match.
   Hint stays in layout when idle (`invisible`) so the row height never jumps. */
.form-action-stack {
  display: inline-flex;
  flex-direction: column;
  align-items: stretch;
  width: fit-content;
  max-width: 100%;
  gap: var(--space-1);
  text-align: right;
}
.form-action-stack__hint {
  width: 0;
  min-width: 100%;
  box-sizing: border-box;
}

