/* ==========================================================================
   ISEE calculator UI — scoped with .ic-* prefix.
   Lives at medicine-italy/#fees under <section id="mi-isee" class="ic">.
   Brand palette: parchment card on white section, deep navy type,
   burgundy ink for interactive states. No glass surfaces, no gradient
   fills — this is a serious data tool, not a hero panel.
   Spec: docs/superpowers/specs/2026-04-17-isee-calculator-v2-design.md §4
   ========================================================================== */

#mi-isee.ic {
  /* Editorial card on the Fees section's white plate. */
  margin: 2.5rem 0 1.5rem;
  padding: 2rem 2rem 1.75rem;
  background: var(--color-cream, #F6EEDC);
  border: 1px solid rgba(107, 40, 56, 0.14);
  border-radius: 4px;
  color: var(--color-navy, #001F3D);

  /* Scoped override for the "supporting text" token. The site-wide
     default (#64748b / slate-500) fails WCAG AA against the cream
     background used throughout the calculator (~3.4:1). Zinc-600
     passes on both cream (~5.9:1) and white (~7.9:1). */
  --color-text-secondary: #52525b;
}

/* --- Header ------------------------------------------------------------- */

.ic__header {
  margin-bottom: 1.5rem;
}

.ic__title {
  font-family: var(--font-heading, 'Outfit', sans-serif);
  font-weight: 700;
  color: var(--color-navy, #001F3D);
  font-size: clamp(1.25rem, 2.2vw, 1.625rem);
  line-height: 1.2;
  letter-spacing: -0.02em;
  margin: 0 0 0.5rem;
}

.ic__subtitle {
  font-family: var(--font-body, 'Inter', sans-serif);
  color: var(--color-text-primary, #1e293b);
  opacity: 0.82;
  font-size: 0.9375rem;
  line-height: 1.55;
  margin: 0;
  max-width: 62ch;
}

/* --- Controls row (country + precision toggle) ------------------------- */

.ic-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 1.25rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid rgba(0, 31, 61, 0.1);
}

.ic-field {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  min-width: 260px;
  flex: 0 1 320px;
}

/* Narrow variant for the sort select — sits next to the country field
   without pushing the precision CTA onto a new line at 1200px+. */
.ic-field--compact {
  min-width: 0;
  flex: 0 1 220px;
}

.ic-field__label {
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--color-navy, #001F3D);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.ic-field__input {
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 1rem;
  color: var(--color-navy, #001F3D);
  background: #fff;
  border: 1px solid rgba(0, 31, 61, 0.22);
  border-radius: 3px;
  padding: 0.625rem 0.875rem;
  min-height: 44px;
  cursor: pointer;
  transition: border-color 0.15s ease;
  appearance: none;
  -webkit-appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, var(--color-burgundy, #6B2838) 50%),
                    linear-gradient(135deg, var(--color-burgundy, #6B2838) 50%, transparent 50%);
  background-position: calc(100% - 18px) 50%, calc(100% - 13px) 50%;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
  padding-right: 2rem;
}

.ic-field__input:hover,
.ic-field__input:focus-visible {
  border-color: var(--color-burgundy, #6B2838);
  outline: none;
  box-shadow: 0 0 0 3px rgba(107, 40, 56, 0.12);
}

.ic-toggle-precision {
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-burgundy, #6B2838);
  background: transparent;
  border: 1px solid var(--color-burgundy, #6B2838);
  border-radius: 3px;
  padding: 0.625rem 1rem;
  min-height: 44px;
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.ic-toggle-precision:hover,
.ic-toggle-precision:focus-visible {
  background: var(--color-burgundy, #6B2838);
  color: #fff;
  outline: none;
}

/* --- Uni rows ----------------------------------------------------------- */

.ic-uni-list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.ic-uni-row {
  display: grid;
  grid-template-columns: minmax(170px, 1.1fr) minmax(90px, 0.7fr) minmax(100px, 0.8fr) minmax(0, 2fr);
  align-items: center;
  gap: 1rem;
  padding: 0.875rem 1rem;
  background: #fff;
  border: 1px solid rgba(0, 31, 61, 0.08);
  border-radius: 3px;
  transition: border-color 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}

.ic-uni-row:hover {
  border-color: rgba(107, 40, 56, 0.32);
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(0, 31, 61, 0.06);
}

.ic-uni-row__name {
  font-family: var(--font-heading, 'Outfit', sans-serif);
  font-weight: 600;
  color: var(--color-navy, #001F3D);
  font-size: 1rem;
  line-height: 1.3;
}

.ic-uni-row__amount {
  /* Numbers always sans — never serif, per CLAUDE.md. */
  font-family: var(--font-heading, 'Outfit', sans-serif);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--color-navy, #001F3D);
  font-size: 1.0625rem;
  letter-spacing: -0.01em;
}

.ic-uni-row__severity {
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--color-text-secondary, #64748b);
  letter-spacing: 0.02em;
}

.ic-uni-row__guidance {
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 0.875rem;
  color: var(--color-text-primary, #1e293b);
  line-height: 1.4;
  opacity: 0.85;
}

/* --- "Needs ISEE" placeholder when the amount isn't yet pricable --------- */
.ic-amount-placeholder {
  font-family: var(--font-body, 'Inter', sans-serif);
  font-weight: 600;
  font-size: 0.875rem;
  color: var(--color-burgundy, #6B2838);
  letter-spacing: 0.01em;
  white-space: nowrap;
}

/* --- Severity chip ------------------------------------------------------- */
/* Three buckets per spec §3.2:
     no-risk        — flat-only, country-locked bracket (teal, calm)
     deadline       — flat-or-ISEE with punitive max fee (amber, wake up)
     no-safety-net  — isee-only, no flat fallback (burgundy, bring docs)
   Colors are tinted surfaces (not full saturation) so the chip reads as
   a badge, not a button. Text stays on the darker end of the same hue
   for WCAG AA contrast. */
.ic-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.25rem 0.625rem;
  border: 1px solid transparent;
  border-radius: 999px;
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: none;
  white-space: nowrap;
  line-height: 1.2;
}

.ic-chip[data-severity="no-risk"] {
  background: rgba(46, 125, 122, 0.10);
  border-color: rgba(46, 125, 122, 0.30);
  color: #1f5856;
}

.ic-chip[data-severity="deadline"] {
  background: rgba(217, 155, 71, 0.14);
  border-color: rgba(217, 155, 71, 0.40);
  color: #8a5a14;
}

.ic-chip[data-severity="no-safety-net"] {
  background: rgba(107, 40, 56, 0.10);
  border-color: rgba(107, 40, 56, 0.32);
  color: var(--color-burgundy, #6B2838);
}

/* DSU tiers (Task 24) — re-using the same hue system so consultants
   read severity consistently across tuition and scholarship chips.
   eligible = teal (same as no-risk), above-cap = amber (same as
   deadline), unknown = neutral navy so it doesn't telegraph pass/fail. */
.ic-chip[data-severity="dsu-eligible"] {
  background: rgba(46, 125, 122, 0.10);
  border-color: rgba(46, 125, 122, 0.30);
  color: #1f5856;
}
.ic-chip[data-severity="above-cap"] {
  background: rgba(217, 155, 71, 0.14);
  border-color: rgba(217, 155, 71, 0.40);
  color: #8a5a14;
}
.ic-chip[data-severity="unknown"] {
  background: rgba(0, 31, 61, 0.06);
  border-color: rgba(0, 31, 61, 0.18);
  color: var(--color-navy, #001F3D);
}

/* --- DSU sub-row (Task 24) -------------------------------------------- */
/* Renders directly below the uni row inside the same card. Borrows the
   card's rounded shell via negative-margin trickery would be brittle; we
   keep it inline at full row width and stripe the top with a hair-thin
   rule so it reads as "annex" rather than "same row continued". */
.ic-dsu-subrow {
  grid-column: 1 / -1;
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(0, 31, 61, 0.08);
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.ic-dsu-subrow__lead {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.5rem;
}
.ic-dsu-subrow__label {
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 0.8125rem;
  color: var(--color-navy, #001F3D);
  line-height: 1.4;
}
.ic-dsu-subrow__uplift {
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 0.75rem;
  font-weight: 600;
  color: #8a5a14;
  background: rgba(217, 155, 71, 0.10);
  padding: 0.15rem 0.5rem;
  border-radius: 999px;
}
.ic-dsu-subrow__meta {
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 0.75rem;
  color: rgba(0, 31, 61, 0.62);
}

/* --- Secondary uni rows — directional-only (spec §3.1 line 173) --------- */
.ic-uni-row--secondary {
  /* A hair less contrast than primary, to signal "verify at enrollment"
     without hiding the row. Still white background so numbers read clean. */
  background: #fafafa;
  border-color: rgba(0, 31, 61, 0.06);
}

.ic-uni-row__caption {
  display: block;
  margin-top: 0.125rem;
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-text-secondary, #64748b);
}

/* --- "Show 10 more" toggle --------------------------------------------- */
.ic-show-more {
  align-self: flex-start;
  margin-top: 1rem;
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-navy, #001F3D);
  background: transparent;
  border: 1px dashed rgba(0, 31, 61, 0.32);
  border-radius: 3px;
  padding: 0.5rem 1rem;
  min-height: 40px;
  cursor: pointer;
  transition: border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease;
}

.ic-show-more:hover,
.ic-show-more:focus-visible {
  border-color: var(--color-burgundy, #6B2838);
  border-style: solid;
  background: rgba(107, 40, 56, 0.04);
  color: var(--color-burgundy, #6B2838);
  outline: none;
}

/* --- Nudge banner — scholarship upsell + split CTAs -------------------- */
/* Pairs a warm-toned parchment-plus body with a clear two-button footer.
   Primary CTA uses the burgundy→pink gradient (project default per
   CLAUDE.md flutter pattern, kept static here — the banner is quiet
   advice, not a hero call). Secondary CTA is a ghost link in navy. */
.ic-nudge {
  margin-top: 1.5rem;
  padding: 1.25rem 1.25rem;
  background: linear-gradient(180deg, #fff 0%, rgba(232, 196, 201, 0.22) 100%);
  border: 1px solid rgba(107, 40, 56, 0.18);
  border-radius: 4px;
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  align-items: center;
  justify-content: space-between;
}

.ic-nudge__body {
  flex: 1 1 300px;
  min-width: 0;
}

.ic-nudge__title {
  font-family: var(--font-heading, 'Outfit', sans-serif);
  font-weight: 700;
  font-size: 1rem;
  color: var(--color-navy, #001F3D);
  margin: 0 0 0.375rem;
  letter-spacing: -0.01em;
}

.ic-nudge__copy {
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--color-text-primary, #1e293b);
  margin: 0;
  opacity: 0.88;
}

.ic-nudge__copy em {
  color: var(--color-burgundy, #6B2838);
  font-style: normal;
  font-weight: 600;
}

.ic-nudge__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}

.ic-nudge__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 0.875rem;
  font-weight: 600;
  padding: 0.625rem 1.125rem;
  min-height: 44px;
  border-radius: 3px;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.ic-nudge__btn--primary {
  color: #fff;
  background: var(--color-burgundy, #6B2838);
  border: 1px solid var(--color-burgundy, #6B2838);
}

.ic-nudge__btn--primary:hover,
.ic-nudge__btn--primary:focus-visible {
  background: #4a1c28;
  border-color: #4a1c28;
  outline: none;
}

.ic-nudge__btn--secondary {
  color: var(--color-navy, #001F3D);
  background: transparent;
  border: 1px solid rgba(0, 31, 61, 0.32);
}

.ic-nudge__btn--secondary:hover,
.ic-nudge__btn--secondary:focus-visible {
  border-color: var(--color-navy, #001F3D);
  background: rgba(0, 31, 61, 0.04);
  outline: none;
}

/* --- Precision shell (Task 17) ----------------------------------------- */

/* Scope: Precision differs from Fast Answer in the header (back button +
   universal CTA) and adds the accordion. The uni-list reuses Fast Answer
   styles verbatim so prices stay visually consistent across modes. */

.ic--precision .ic__header--precision {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.5rem;
  flex-wrap: wrap;
  margin-bottom: 1.75rem;
}

.ic--precision .ic__header-lead {
  flex: 1 1 320px;
  min-width: 0;
}

.ic--precision .ic__title {
  margin-top: 0.25rem;
}

.ic-back-link {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.25rem 0;
  margin-bottom: 0.5rem;
  background: transparent;
  border: 0;
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--color-burgundy, #6B2838);
  cursor: pointer;
  letter-spacing: 0.01em;
}

.ic-back-link:hover,
.ic-back-link:focus-visible {
  text-decoration: underline;
  outline: none;
}

.ic-universal-cta {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.125rem;
  padding: 0.625rem 1rem;
  border: 1px solid var(--color-burgundy, #6B2838);
  border-radius: 999px;
  background: rgba(246, 238, 220, 0.7);
  text-decoration: none;
  transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
  flex: 0 0 auto;
}

.ic-universal-cta:hover,
.ic-universal-cta:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(107, 40, 56, 0.12);
  background: rgba(246, 238, 220, 1);
  outline: none;
}

.ic-universal-cta__lead {
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 0.6875rem;
  font-weight: 500;
  color: var(--color-text-secondary, #52525b);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.ic-universal-cta__action {
  font-family: var(--font-heading, 'Outfit', sans-serif);
  font-weight: 700;
  font-size: 0.9375rem;
  color: var(--color-burgundy, #6B2838);
}

/* --- Placement 4: mobile fixed-bottom CTA (spec §3.5) -------------------- */
/* Always rendered in Precision DOM; hidden at desktop. The media query at
   the bottom of this file flips display:flex at ≤720px so the same HTML
   works across breakpoints without re-rendering on resize. */
.ic-mobile-cta {
  display: none;
  position: fixed;
  left: 0.75rem;
  right: 0.75rem;
  bottom: 0.75rem;
  z-index: 40;
  align-items: center;
  gap: 0.625rem;
  padding: 0.875rem 1.125rem;
  border: 1px solid var(--color-burgundy, #6B2838);
  border-radius: 999px;
  background: var(--color-burgundy, #6B2838);
  color: #fff;
  text-decoration: none;
  box-shadow: 0 6px 18px rgba(0, 31, 61, 0.18);
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.ic-mobile-cta:hover,
.ic-mobile-cta:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 8px 22px rgba(107, 40, 56, 0.26);
  outline: none;
}

.ic-mobile-cta__icon {
  font-size: 1rem;
  line-height: 1;
}

.ic-mobile-cta__lead {
  font-family: var(--font-body, 'Inter', sans-serif);
  font-weight: 500;
  font-size: 0.875rem;
  flex: 1 1 auto;
}

.ic-mobile-cta__action {
  font-family: var(--font-heading, 'Outfit', sans-serif);
  font-weight: 700;
}

/* --- Task 30 — First-visit primer card (orientation, atop #mi-isee) ---- */
/* Warm Parchment fill + burgundy accent stripe reads as an editorial
   note, not a promo banner. One-shot: dismissible via the × button;
   dismissal persists across reloads via localStorage. Hidden in print. */
.ic-primer {
  position: relative;
  margin: 0 0 1.5rem;
  padding: 1.125rem 3rem 1.125rem 1.25rem;
  background: #F6EEDC;
  border: 1px solid rgba(107, 40, 56, 0.14);
  border-left: 3px solid var(--color-burgundy, #6B2838);
  border-radius: 10px;
}

.ic-primer__title {
  margin: 0 0 0.5rem;
  font-family: var(--font-heading, 'Outfit', sans-serif);
  font-weight: 700;
  font-size: 1rem;
  color: var(--color-navy, #001F3D);
  letter-spacing: -0.01em;
}

.ic-primer__body { margin: 0; }

.ic-primer__copy {
  margin: 0 0 0.5rem;
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 0.9rem;
  line-height: 1.55;
  color: var(--color-text-secondary, #4a5568);
}

.ic-primer__copy:last-child { margin-bottom: 0; }

.ic-primer__copy strong {
  color: var(--color-navy, #001F3D);
  font-weight: 600;
}

.ic-primer__dismiss {
  position: absolute;
  top: 0.625rem;
  right: 0.625rem;
  width: 2rem;
  height: 2rem;
  padding: 0;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 6px;
  color: var(--color-burgundy, #6B2838);
  font-size: 1.375rem;
  line-height: 1;
  cursor: pointer;
  transition: background 150ms ease, border-color 150ms ease;
}

.ic-primer__dismiss:hover,
.ic-primer__dismiss:focus-visible {
  background: rgba(107, 40, 56, 0.08);
  border-color: rgba(107, 40, 56, 0.25);
  outline: none;
}

/* --- Task 31 — ISEE-direct shortcut (above the accordion) -------------- */
/* Toggle strip + compact direct-entry card. When OFF it reads as a single
   unobtrusive checkbox row above the 5-section accordion; when ON the row
   reveals two number fields (ISEE, optional ISPE) and the accordion below
   is omitted from render, so this card IS the whole precision answer. */
.ic-iseedirect {
  margin: 0 0 1rem;
  padding: 0.875rem 1rem;
  background: #F6EEDC;
  border: 1px solid rgba(107, 40, 56, 0.14);
  border-radius: 10px;
}

.ic-iseedirect--on {
  border-left: 3px solid var(--color-burgundy, #6B2838);
  padding-left: calc(1rem - 2px);
}

.ic-iseedirect__toggle {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  margin: 0;
  cursor: pointer;
}

.ic-iseedirect__toggle input[type="checkbox"] {
  flex: 0 0 auto;
  margin-top: 0.25rem;
  width: 1rem;
  height: 1rem;
  accent-color: var(--color-burgundy, #6B2838);
  cursor: pointer;
}

.ic-iseedirect__toggle-body {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
  flex: 1 1 auto;
}

.ic-iseedirect__toggle-label {
  font-family: var(--font-heading, 'Outfit', sans-serif);
  font-weight: 600;
  font-size: 0.9375rem;
  color: var(--color-navy, #001F3D);
  line-height: 1.3;
}

.ic-iseedirect__toggle-hint {
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 0.8125rem;
  line-height: 1.45;
  color: rgba(0, 31, 61, 0.72);
}

.ic-iseedirect__fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
  margin-top: 0.875rem;
  padding-top: 0.875rem;
  border-top: 1px dashed rgba(107, 40, 56, 0.18);
}

.ic-iseedirect__fields[hidden] {
  display: none;
}

@media (max-width: 520px) {
  .ic-iseedirect__fields {
    grid-template-columns: 1fr;
  }
}

/* --- Task 26 — Smart CTA card (below uni rows) ------------------------- */
/* Warm Parchment fill so it reads as editorial, not alarm. Mandatory
   variant picks up a burgundy accent bar — the legal stakes warrant
   stronger visual weight without shouting. */
.ic-cta-card {
  margin: 1.5rem 0 0.5rem;
  padding: 1.25rem 1.25rem 1rem;
  background: #F6EEDC;
  border: 1px solid rgba(107, 40, 56, 0.18);
  border-radius: 12px;
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-areas:
    "body actions";
  gap: 1rem 1.5rem;
  align-items: start;
}

.ic-cta-card[data-mandatory="true"] {
  border-left: 4px solid var(--color-burgundy, #6B2838);
  padding-left: 1.125rem;
}

.ic-cta-card__body {
  grid-area: body;
  min-width: 0;
}

.ic-cta-card__title {
  margin: 0 0 0.375rem;
  font-family: var(--font-heading, 'Outfit', sans-serif);
  font-weight: 700;
  font-size: 1.0625rem;
  color: var(--color-navy, #001F3D);
  letter-spacing: -0.01em;
}

.ic-cta-card__lede {
  margin: 0 0 0.75rem;
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 0.9375rem;
  line-height: 1.5;
  color: var(--color-text-secondary, #4a5568);
}

.ic-cta-card__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}

.ic-cta-card__bullet {
  position: relative;
  padding-left: 1.25rem;
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--color-text-primary, #1f2937);
}

.ic-cta-card__bullet::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.5625rem;
  width: 0.5rem;
  height: 0.5rem;
  background: var(--color-burgundy, #6B2838);
  border-radius: 999px;
  opacity: 0.55;
}

.ic-cta-card__bullet[data-severity="high"]::before {
  opacity: 0.95;
  background: var(--color-burgundy, #6B2838);
}

.ic-cta-card__actions {
  grid-area: actions;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  align-items: stretch;
  min-width: 9rem;
}

.ic-cta-card__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.625rem 1rem;
  background: var(--color-burgundy, #6B2838);
  color: #fff;
  text-decoration: none;
  border-radius: 8px;
  font-family: var(--font-heading, 'Outfit', sans-serif);
  font-weight: 700;
  font-size: 0.9375rem;
  transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
  white-space: nowrap;
}

.ic-cta-card__cta:hover,
.ic-cta-card__cta:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(107, 40, 56, 0.22);
  outline: none;
}

.ic-cta-card__dismiss {
  appearance: none;
  background: transparent;
  border: 0;
  padding: 0.375rem 0.75rem;
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 0.8125rem;
  color: var(--color-text-secondary, #64748b);
  cursor: pointer;
  border-radius: 6px;
  transition: color 0.18s ease, background 0.18s ease;
}

.ic-cta-card__dismiss:hover,
.ic-cta-card__dismiss:focus-visible {
  color: var(--color-navy, #001F3D);
  background: rgba(0, 31, 61, 0.06);
  outline: none;
}

/* Accordion --------------------------------------------------------------- */

.ic-accordion {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin: 1.75rem 0 1.5rem;
}

.ic-section {
  background: #fff;
  border: 1px solid rgba(0, 31, 61, 0.1);
  border-radius: 10px;
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.ic-section[open] {
  border-color: rgba(107, 40, 56, 0.3);
  box-shadow: 0 1px 6px rgba(107, 40, 56, 0.06);
}

.ic-section__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.125rem;
  cursor: pointer;
  list-style: none;
  user-select: none;
}

.ic-section__summary::-webkit-details-marker {
  display: none;
}

.ic-section__summary::after {
  content: '\203A';
  font-family: var(--font-heading, 'Outfit', sans-serif);
  font-size: 1.25rem;
  color: var(--color-text-secondary, #64748b);
  transform: rotate(90deg);
  transition: transform 0.2s ease;
  margin-left: 0.25rem;
}

.ic-section[open] .ic-section__summary::after {
  transform: rotate(-90deg);
}

.ic-section__summary:hover,
.ic-section__summary:focus-visible {
  background: rgba(246, 238, 220, 0.5);
  outline: none;
}

.ic-section__title {
  flex: 1 1 auto;
  font-family: var(--font-heading, 'Outfit', sans-serif);
  font-weight: 700;
  font-size: 1rem;
  color: var(--color-navy, #001F3D);
}

.ic-section__pill {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.625rem;
  border-radius: 999px;
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  white-space: nowrap;
  border: 1px solid transparent;
}

.ic-section__pill[data-status="complete"] {
  background: rgba(46, 125, 122, 0.12);
  color: var(--color-teal, #2E7D7A);
  border-color: rgba(46, 125, 122, 0.3);
}

.ic-section__pill[data-status="needs-info"] {
  background: rgba(217, 155, 71, 0.14);
  color: #8a5a14;
  border-color: rgba(217, 155, 71, 0.45);
}

.ic-section__pill[data-status="skipped"] {
  background: rgba(100, 116, 139, 0.08);
  color: var(--color-text-secondary, #64748b);
  border-color: rgba(100, 116, 139, 0.25);
}

.ic-section__body {
  padding: 0 1.125rem 1.125rem;
  border-top: 1px dashed rgba(0, 31, 61, 0.08);
  padding-top: 0.875rem;
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}

.ic-section__description {
  margin: 0;
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 0.875rem;
  color: var(--color-text-primary, #1e293b);
  line-height: 1.5;
}

.ic-section__placeholder {
  margin: 0;
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 0.8125rem;
  color: var(--color-text-secondary, #64748b);
  line-height: 1.5;
}

.ic-section__help-link {
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 0.75rem;
  color: var(--color-text-secondary, #64748b);
  text-decoration: underline;
  text-decoration-color: rgba(100, 116, 139, 0.4);
  text-underline-offset: 3px;
  align-self: flex-start;
}

.ic-section__help-link:hover,
.ic-section__help-link:focus-visible {
  color: var(--color-burgundy, #6B2838);
  text-decoration-color: var(--color-burgundy, #6B2838);
  outline: none;
}

.ic-uni-list--precision {
  margin-top: 0.5rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(0, 31, 61, 0.08);
}

/* Screen-reader utility (used for the "Remove" header). */
.ic-sr-only {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* --- Household members table (Task 18) --------------------------------- */

.ic-members {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--font-body, 'Inter', sans-serif);
  margin: 0.25rem 0 0.75rem;
}

.ic-members thead th {
  text-align: left;
  padding: 0.5rem 0.625rem;
  font-size: 0.6875rem;
  font-weight: 600;
  color: var(--color-text-secondary, #64748b);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  border-bottom: 1px solid rgba(0, 31, 61, 0.1);
}

.ic-members__th-actions {
  width: 2.5rem;
}

.ic-members__row {
  border-bottom: 1px solid rgba(0, 31, 61, 0.06);
}

.ic-members__row:last-child {
  border-bottom: 0;
}

.ic-members__cell {
  padding: 0.5rem 0.625rem;
  vertical-align: middle;
}

.ic-members__cell--actions {
  width: 2.5rem;
  text-align: center;
}

.ic-members__cell--check {
  white-space: nowrap;
}

/* Compact input variant — the table is dense, so full-size inputs would
   dominate. Drops padding + font-size without changing border/focus style. */
.ic-field__input--compact {
  padding: 0.4rem 0.6rem;
  font-size: 0.875rem;
  min-width: 0;
  width: 100%;
}

.ic-members__checkbox {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  cursor: pointer;
  font-size: 0.8125rem;
  color: var(--color-text-primary, #1e293b);
}

.ic-members__checkbox input[disabled] + .ic-members__checkbox-text {
  color: var(--color-text-secondary, #64748b);
}

.ic-members__remove {
  background: transparent;
  border: 1px solid rgba(107, 40, 56, 0.25);
  color: var(--color-burgundy, #6B2838);
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 50%;
  font-size: 0.875rem;
  line-height: 1;
  cursor: pointer;
  padding: 0;
  transition: background 0.15s ease, border-color 0.15s ease;
}

.ic-members__remove:hover,
.ic-members__remove:focus-visible {
  background: rgba(107, 40, 56, 0.08);
  border-color: var(--color-burgundy, #6B2838);
  outline: none;
}

.ic-members__add {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.5rem 0.875rem;
  background: transparent;
  border: 1px dashed rgba(0, 31, 61, 0.28);
  border-radius: 6px;
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--color-navy, #001F3D);
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease;
}

.ic-members__add:hover,
.ic-members__add:focus-visible {
  border-color: var(--color-burgundy, #6B2838);
  background: rgba(246, 238, 220, 0.6);
  color: var(--color-burgundy, #6B2838);
  outline: none;
}

/* --- Nucleo preview ---------------------------------------------------- */

.ic-nucleo-preview {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.75rem;
  padding: 0.75rem 0.875rem;
  margin-top: 0.75rem;
  background: rgba(246, 238, 220, 0.55);
  border: 1px solid rgba(0, 31, 61, 0.08);
  border-radius: 8px;
}

.ic-nucleo-preview__lead {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
}

.ic-nucleo-preview__label {
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 0.6875rem;
  font-weight: 600;
  color: var(--color-text-secondary, #52525b);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.ic-nucleo-preview__count {
  font-family: var(--font-heading, 'Outfit', sans-serif);
  font-weight: 700;
  font-size: 0.9375rem;
  color: var(--color-navy, #001F3D);
  font-variant-numeric: tabular-nums;
}

.ic-nucleo-preview__toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 0.8125rem;
  color: var(--color-text-primary, #1e293b);
  cursor: pointer;
}

.ic-nucleo-preview__flag {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.625rem;
  background: rgba(217, 155, 71, 0.14);
  color: #8a5a14;
  border: 1px solid rgba(217, 155, 71, 0.45);
  border-radius: 999px;
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  white-space: nowrap;
}

/* `display: inline-flex` above shadows the user-agent `[hidden]` rule, so
   explicitly restore display:none when the hidden attribute is present. */
.ic-nucleo-preview__flag[hidden] { display: none; }

/* --- Parental status (Task 19) ---------------------------------------- */

.ic-parental-status {
  margin: 1.25rem 0 0;
  padding: 1.125rem 1.25rem 1rem;
  border: 1px solid rgba(107, 40, 56, 0.22);
  border-radius: 12px;
  background: #fff;
}
.ic-parental-status__legend {
  padding: 0 0.5rem;
  font-family: var(--font-heading, "Outfit"), "Outfit", sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-burgundy, #6B2838);
}
.ic-parental-status__hint {
  margin: 0.35rem 0 0.9rem;
  font-family: var(--font-body, "Inter"), system-ui, sans-serif;
  font-size: 0.875rem;
  line-height: 1.55;
  color: rgba(0, 31, 61, 0.78);
}
.ic-parental-status__options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem 1rem;
}
.ic-parental-status__option {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.4rem 0.1rem;
  font-family: var(--font-body, "Inter"), system-ui, sans-serif;
  font-size: 0.92rem;
  line-height: 1.4;
  color: var(--color-navy, #001F3D);
  cursor: pointer;
}
.ic-parental-status__option input[type="radio"] {
  margin: 0;
  accent-color: var(--color-burgundy, #6B2838);
  transform: translateY(-1px);
}

/* --- Non-custodial sub-form (Task 19) --------------------------------- */

.ic-noncustodial {
  margin: 1rem 0 0;
  padding: 1.125rem 1.25rem;
  background: var(--color-cream, #F6EEDC);
  border: 1px solid rgba(107, 40, 56, 0.22);
  border-left: 3px solid var(--color-burgundy, #6B2838);
  border-radius: 0 12px 12px 0;
}
.ic-noncustodial__header {
  margin-bottom: 1rem;
}
.ic-noncustodial__title {
  margin: 0 0 0.35rem;
  font-family: var(--font-heading, "Outfit"), "Outfit", sans-serif;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--color-burgundy, #6B2838);
}
.ic-noncustodial__lede {
  margin: 0;
  font-family: var(--font-body, "Inter"), system-ui, sans-serif;
  font-size: 0.85rem;
  line-height: 1.5;
  color: rgba(0, 31, 61, 0.8);
}
.ic-noncustodial__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
  gap: 0.75rem;
  margin-bottom: 1rem;
}
.ic-noncustodial__grid .ic-field {
  margin: 0;
}

.ic-exclusion-criteria {
  margin: 0;
  padding: 0.875rem 1rem;
  background: #fff;
  border: 1px solid rgba(107, 40, 56, 0.18);
  border-radius: 10px;
}
.ic-exclusion-criteria__legend {
  padding: 0 0.4rem;
  font-family: var(--font-heading, "Outfit"), "Outfit", sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-burgundy, #6B2838);
}
.ic-exclusion-criteria__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0.45rem 1rem;
  margin-top: 0.5rem;
}
.ic-exclusion-criteria__option {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: flex-start;
  gap: 0.55rem;
  padding: 0.3rem 0;
  font-family: var(--font-body, "Inter"), system-ui, sans-serif;
  font-size: 0.88rem;
  line-height: 1.45;
  color: var(--color-navy, #001F3D);
  cursor: pointer;
}
.ic-exclusion-criteria__option input[type="checkbox"] {
  margin: 0;
  accent-color: var(--color-burgundy, #6B2838);
  transform: translateY(2px);
}

.ic-exclusion-banner {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 0.875rem;
  padding: 0.55rem 0.95rem;
  background: rgba(46, 125, 122, 0.1);
  border: 1px solid var(--color-teal, #2E7D7A);
  border-radius: 999px;
  font-family: var(--font-body, "Inter"), system-ui, sans-serif;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--color-teal, #2E7D7A);
}
.ic-exclusion-banner__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.1rem;
  height: 1.1rem;
  border-radius: 50%;
  background: var(--color-teal, #2E7D7A);
  color: #fff;
  font-size: 0.7rem;
  font-weight: 700;
}
/* inline-flex shadows UA [hidden]; restore explicitly. */
.ic-exclusion-banner[hidden] { display: none; }

/* --- Income section (Task 20) ----------------------------------------- */

.ic-income {
  margin-top: 0.75rem;
}
.ic-income__controls {
  display: flex;
  align-items: flex-end;
  gap: 1rem;
  margin: 0.75rem 0 1.125rem;
  padding: 0.875rem 1rem;
  background: #fff;
  border: 1px solid rgba(0, 31, 61, 0.08);
  border-radius: 10px;
}
.ic-income__year {
  flex: 0 0 auto;
  min-width: 9rem;
  margin: 0;
}
.ic-income__rates {
  flex: 1 1 auto;
  padding: 0.45rem 0.75rem;
  background: var(--color-cream, #F6EEDC);
  border-radius: 8px;
  font-family: var(--font-body, "Inter"), system-ui, sans-serif;
  font-size: 0.85rem;
  line-height: 1.4;
  color: rgba(0, 31, 61, 0.85);
}
.ic-income__rate-label {
  font-weight: 600;
  color: var(--color-burgundy, #6B2838);
  letter-spacing: 0.01em;
}
.ic-income__rate-value {
  font-weight: 600;
  color: var(--color-navy, #001F3D);
}

.ic-income__members {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.ic-income__member {
  padding: 1rem 1.125rem 1.125rem;
  background: #fff;
  border: 1px solid rgba(0, 31, 61, 0.08);
  border-left: 3px solid var(--color-burgundy, #6B2838);
  border-radius: 0 10px 10px 0;
}
.ic-income__member-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.875rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px dashed rgba(107, 40, 56, 0.18);
}
.ic-income__member-title {
  margin: 0;
  font-family: var(--font-heading, "Outfit"), "Outfit", sans-serif;
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--color-burgundy, #6B2838);
}
.ic-income__currency {
  margin: 0;
  min-width: 11rem;
}
.ic-income__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.625rem 0.875rem;
}
.ic-income__field {
  margin: 0;
}

.ic-income__total {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  margin: 1rem 0 0.5rem;
  padding: 0.75rem 1rem;
  background: rgba(107, 40, 56, 0.06);
  border: 1px solid rgba(107, 40, 56, 0.22);
  border-radius: 10px;
}
.ic-income__total-label {
  font-family: var(--font-heading, "Outfit"), "Outfit", sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-burgundy, #6B2838);
}
.ic-income__total-value {
  font-family: var(--font-display, var(--font-heading, "Outfit")), "Outfit", sans-serif;
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--color-navy, #001F3D);
}

/* --- Task 21 — Movable assets ----------------------------------------- */

.ic-assets {
  display: block;
}
.ic-assets__controls {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: flex-end;
  margin: 1rem 0 0.75rem;
}
.ic-assets__year,
.ic-assets__currency {
  min-width: 12rem;
}
.ic-assets__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem 1rem;
  margin-top: 0.5rem;
}
.ic-assets__field {
  min-width: 0;
}
.ic-assets__caveat {
  display: block;
  margin-top: 0.35rem;
  font-family: var(--font-body, "Inter"), "Inter", sans-serif;
  font-size: 0.72rem;
  line-height: 1.4;
  color: var(--color-burgundy, #6B2838);
  font-style: italic;
  opacity: 0.82;
}
.ic-assets__total {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  margin: 1rem 0 0.5rem;
  padding: 0.75rem 1rem;
  background: rgba(107, 40, 56, 0.06);
  border: 1px solid rgba(107, 40, 56, 0.22);
  border-radius: 10px;
}
.ic-assets__total-label {
  font-family: var(--font-heading, "Outfit"), "Outfit", sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-burgundy, #6B2838);
}
.ic-assets__total-value {
  font-family: var(--font-display, var(--font-heading, "Outfit")), "Outfit", sans-serif;
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--color-navy, #001F3D);
}

/* --- Task 22 — Properties --------------------------------------------- */

.ic-properties {
  display: block;
}
.ic-properties__list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin: 0.75rem 0;
}
.ic-properties__row {
  border: 1px solid rgba(107, 40, 56, 0.22);
  border-left: 3px solid var(--color-burgundy, #6B2838);
  border-radius: 10px;
  padding: 0.75rem 1rem;
  background: #FFFFFF;
}
.ic-properties__row-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr) minmax(0, 0.9fr);
  gap: 0.75rem 1rem;
}
.ic-properties__flags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.25rem;
  margin-top: 0.6rem;
}
.ic-properties__flag {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-family: var(--font-body, "Inter"), "Inter", sans-serif;
  font-size: 0.85rem;
  color: var(--color-navy, #001F3D);
  position: relative;
}
.ic-properties__flag input[type="checkbox"] {
  accent-color: var(--color-burgundy, #6B2838);
}
.ic-properties__hint {
  display: none;
  position: absolute;
  left: 0;
  top: calc(100% + 0.25rem);
  z-index: 2;
  max-width: 22rem;
  padding: 0.55rem 0.75rem;
  font-size: 0.75rem;
  line-height: 1.4;
  font-style: italic;
  color: var(--color-burgundy, #6B2838);
  background: #F6EEDC;
  border: 1px solid rgba(107, 40, 56, 0.25);
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0, 31, 61, 0.08);
}
.ic-properties__flag:hover .ic-properties__hint,
.ic-properties__flag:focus-within .ic-properties__hint {
  display: block;
}
.ic-properties__remove {
  margin-top: 0.6rem;
  padding: 0.35rem 0.75rem;
  font-family: var(--font-heading, "Outfit"), "Outfit", sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-burgundy, #6B2838);
  background: transparent;
  border: 1px solid rgba(107, 40, 56, 0.35);
  border-radius: 6px;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}
.ic-properties__remove:hover {
  background: rgba(107, 40, 56, 0.08);
}
.ic-properties__add {
  padding: 0.55rem 1rem;
  font-family: var(--font-heading, "Outfit"), "Outfit", sans-serif;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--color-burgundy, #6B2838);
  background: transparent;
  border: 1px dashed rgba(107, 40, 56, 0.45);
  border-radius: 8px;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.ic-properties__add:hover {
  background: rgba(107, 40, 56, 0.06);
  border-color: var(--color-burgundy, #6B2838);
}
.ic-properties__total {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  margin: 1rem 0 0.5rem;
  padding: 0.75rem 1rem;
  background: rgba(107, 40, 56, 0.06);
  border: 1px solid rgba(107, 40, 56, 0.22);
  border-radius: 10px;
}
.ic-properties__total-label {
  font-family: var(--font-heading, "Outfit"), "Outfit", sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-burgundy, #6B2838);
}
.ic-properties__total-value {
  font-family: var(--font-display, var(--font-heading, "Outfit")), "Outfit", sans-serif;
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--color-navy, #001F3D);
}

/* --- Task 23 — Special situations ------------------------------------- */

.ic-special {
  display: block;
}
.ic-special__groups {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
  margin-top: 0.75rem;
}
.ic-special__group {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  padding: 0.9rem 1rem;
  background: #F6EEDC;
  border: 1px solid rgba(107, 40, 56, 0.18);
  border-radius: 10px;
}
.ic-special__group-title {
  margin: 0 0 0.25rem;
  font-family: var(--font-heading, "Outfit"), "Outfit", sans-serif;
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-burgundy, #6B2838);
}
.ic-special__flag {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  padding: 0.45rem 0.55rem;
  background: #FFFFFF;
  border: 1px solid rgba(0, 31, 61, 0.1);
  border-radius: 8px;
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease;
}
.ic-special__flag:hover {
  background: rgba(232, 71, 107, 0.04);
  border-color: rgba(107, 40, 56, 0.4);
}
.ic-special__flag input[type="checkbox"] {
  margin-top: 0.2rem;
  accent-color: var(--color-burgundy, #6B2838);
}
.ic-special__flag-body {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}
.ic-special__flag-label {
  font-family: var(--font-body, "Inter"), "Inter", sans-serif;
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--color-navy, #001F3D);
}
.ic-special__flag-hint {
  font-family: var(--font-body, "Inter"), "Inter", sans-serif;
  font-size: 0.74rem;
  line-height: 1.35;
  color: rgba(0, 31, 61, 0.68);
}
.ic-special__child-age {
  margin-top: 0.4rem;
}
.ic-special__inheritance {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  margin-top: 1rem;
  padding: 0.9rem 1rem;
  background: #FFFFFF;
  border: 1px solid rgba(107, 40, 56, 0.22);
  border-left: 3px solid var(--color-burgundy, #6B2838);
  border-radius: 10px;
}
.ic-special__inheritance-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem 1rem;
}
/* CLAUDE.md gotcha — display:grid shadows the UA [hidden] rule; explicit
   override so hidden state actually hides the subgrid. */
.ic-special__inheritance-fields[hidden] {
  display: none;
}
.ic-special__surcharges {
  margin-top: 1rem;
  padding: 0.75rem 1rem;
  background: rgba(107, 40, 56, 0.06);
  border: 1px solid rgba(107, 40, 56, 0.22);
  border-radius: 10px;
}
.ic-special__surcharges-label {
  display: block;
  margin-bottom: 0.35rem;
  font-family: var(--font-heading, "Outfit"), "Outfit", sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-burgundy, #6B2838);
}
.ic-special__surcharge-ul {
  margin: 0;
  padding-left: 1.1rem;
  font-family: var(--font-body, "Inter"), "Inter", sans-serif;
  font-size: 0.85rem;
  color: var(--color-navy, #001F3D);
}
.ic-special__surcharge-ul li {
  margin: 0.1rem 0;
}
.ic-special__surcharge-empty {
  font-family: var(--font-body, "Inter"), "Inter", sans-serif;
  font-size: 0.82rem;
  color: rgba(0, 31, 61, 0.62);
}

/* --- Task 27 — Scenarios bar (save/load/rename/delete) ------------------ */
/* Sits above the Precision accordion. Visually a thin parchment band with
   burgundy accents — the same Renaissance editorial language used by the
   uni rows and CTA card, scaled down because this is a "filing drawer"
   surface not a primary content panel. */

.ic-scenarios {
  margin: 0 0 1rem 0;
  padding: 0.75rem 1rem;
  background: #F6EEDC;
  border: 1px solid rgba(107, 40, 56, 0.18);
  border-radius: var(--radius-md);
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  font-family: var(--font-body);
}

.ic-scenarios__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.ic-scenarios__title {
  margin: 0;
  font-family: var(--font-heading);
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--color-navy);
  letter-spacing: -0.01em;
}

.ic-scenarios__open-save,
.ic-scenarios__save-btn,
.ic-scenarios__cancel-btn,
.ic-scenarios__rename-ok,
.ic-scenarios__rename-cancel {
  font-family: var(--font-body);
  font-size: 0.85rem;
  font-weight: 500;
  padding: 0.4rem 0.85rem;
  border-radius: var(--radius-md);
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
  border: 1px solid transparent;
}

.ic-scenarios__open-save,
.ic-scenarios__save-btn,
.ic-scenarios__rename-ok {
  background: #6B2838;
  color: #FFFFFF;
  border-color: #6B2838;
}

.ic-scenarios__open-save:hover,
.ic-scenarios__save-btn:hover,
.ic-scenarios__rename-ok:hover {
  background: #551f2d;
  border-color: #551f2d;
}

.ic-scenarios__cancel-btn,
.ic-scenarios__rename-cancel {
  background: transparent;
  color: #6B2838;
  border-color: rgba(107, 40, 56, 0.3);
}

.ic-scenarios__cancel-btn:hover,
.ic-scenarios__rename-cancel:hover {
  background: rgba(107, 40, 56, 0.08);
}

.ic-scenarios__save-form,
.ic-scenarios__rename-form {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.ic-scenarios__save-form input,
.ic-scenarios__rename-form input {
  flex: 1 1 200px;
  min-width: 0;
  padding: 0.45rem 0.7rem;
  border: 1px solid rgba(0, 31, 61, 0.22);
  border-radius: var(--radius-md);
  font-family: var(--font-body);
  font-size: 0.9rem;
  color: var(--color-navy);
  background: #FFFFFF;
}

.ic-scenarios__save-form input:focus,
.ic-scenarios__rename-form input:focus {
  outline: 2px solid rgba(107, 40, 56, 0.4);
  outline-offset: 1px;
  border-color: #6B2838;
}

.ic-scenarios__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.ic-scenarios__slot {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  background: #FFFFFF;
  border: 1px solid rgba(107, 40, 56, 0.25);
  border-radius: var(--radius-md);
  padding: 0.25rem 0.3rem 0.25rem 0.6rem;
  overflow: hidden;
}

.ic-scenarios__slot--renaming {
  padding: 0.25rem 0.35rem;
  flex: 1 1 260px;
}

.ic-scenarios__load {
  background: transparent;
  border: none;
  color: var(--color-navy);
  font-family: var(--font-body);
  font-size: 0.9rem;
  font-weight: 500;
  padding: 0.25rem 0.4rem;
  cursor: pointer;
  transition: color 0.15s ease;
}

.ic-scenarios__load:hover {
  color: #6B2838;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

.ic-scenarios__rename,
.ic-scenarios__delete {
  background: transparent;
  border: none;
  color: rgba(0, 31, 61, 0.55);
  font-family: var(--font-body);
  font-size: 0.85rem;
  line-height: 1;
  padding: 0.25rem 0.35rem;
  cursor: pointer;
  border-radius: var(--radius-md);
  transition: background-color 0.15s ease, color 0.15s ease;
}

.ic-scenarios__rename:hover {
  background: rgba(107, 40, 56, 0.1);
  color: #6B2838;
}

.ic-scenarios__delete:hover {
  background: rgba(107, 40, 56, 0.15);
  color: #6B2838;
}

.ic-scenarios__empty {
  margin: 0;
  font-size: 0.85rem;
  color: rgba(0, 31, 61, 0.65);
  font-style: italic;
  line-height: 1.5;
}

.ic-scenarios__header-actions {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.ic-scenarios__open-compare {
  font-family: var(--font-body);
  font-size: 0.85rem;
  font-weight: 500;
  padding: 0.4rem 0.85rem;
  border-radius: var(--radius-md);
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
  background: transparent;
  color: var(--color-navy);
  border: 1px solid rgba(0, 31, 61, 0.25);
}

.ic-scenarios__open-compare:hover {
  background: rgba(0, 31, 61, 0.06);
  border-color: rgba(0, 31, 61, 0.4);
}

/* --- Task 28 — Compare panel ------------------------------------------ */
/* Sits below the scenarios bar. Two-column grid with a header row and
   label-value-value rows. Diff cells carry a rose halo — same palette
   as the smart CTA card (shared rose→burgundy vocabulary for "pay
   attention to this"). */

.ic-compare {
  margin: 0 0 1rem 0;
  padding: 1rem 1.15rem;
  background: #FFFFFF;
  border: 1px solid rgba(107, 40, 56, 0.22);
  border-radius: var(--radius-lg);
  box-shadow: 0 2px 12px rgba(0, 31, 61, 0.06);
  font-family: var(--font-body);
}

.ic-compare__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.85rem;
}

.ic-compare__title {
  margin: 0;
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 600;
  color: var(--color-navy);
  letter-spacing: -0.01em;
}

.ic-compare__close {
  background: transparent;
  border: none;
  color: rgba(0, 31, 61, 0.5);
  font-size: 1.2rem;
  line-height: 1;
  padding: 0.25rem 0.5rem;
  border-radius: var(--radius-md);
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.ic-compare__close:hover {
  background: rgba(107, 40, 56, 0.08);
  color: #6B2838;
}

.ic-compare__selectors {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.ic-compare__selector-label {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  font-size: 0.78rem;
  color: rgba(0, 31, 61, 0.7);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 600;
}

.ic-compare__select {
  font-family: var(--font-body);
  font-size: 0.95rem;
  padding: 0.5rem 0.7rem;
  border: 1px solid rgba(0, 31, 61, 0.22);
  border-radius: var(--radius-md);
  background: #FFFFFF;
  color: var(--color-navy);
  text-transform: none;
  letter-spacing: normal;
  font-weight: 400;
}

.ic-compare__select:focus {
  outline: 2px solid rgba(107, 40, 56, 0.4);
  outline-offset: 1px;
  border-color: #6B2838;
}

.ic-compare__grid {
  display: grid;
  grid-template-columns: 1.1fr 1fr 1fr;
  gap: 0;
  border: 1px solid rgba(0, 31, 61, 0.1);
  border-radius: var(--radius-md);
  overflow: hidden;
}

.ic-compare__row {
  display: contents;
}

.ic-compare__row-label,
.ic-compare__cell {
  padding: 0.65rem 0.85rem;
  font-size: 0.9rem;
  color: var(--color-navy);
  border-bottom: 1px solid rgba(0, 31, 61, 0.08);
  border-right: 1px solid rgba(0, 31, 61, 0.08);
  background: #FFFFFF;
  transition: background-color 0.15s ease;
}

.ic-compare__row-label {
  font-weight: 500;
  background: #F6EEDC;
  color: rgba(0, 31, 61, 0.85);
  border-right-color: rgba(107, 40, 56, 0.12);
}

.ic-compare__cell:last-child {
  border-right: none;
}

.ic-compare__row:last-child .ic-compare__row-label,
.ic-compare__row:last-child .ic-compare__cell {
  border-bottom: none;
}

.ic-compare__row--head .ic-compare__row-label,
.ic-compare__cell--head {
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  background: linear-gradient(180deg, #F6EEDC 0%, rgba(246, 238, 220, 0.7) 100%);
  color: rgba(0, 31, 61, 0.75);
}

.ic-compare__cell--diff {
  background: rgba(232, 71, 107, 0.08);
  box-shadow: inset 0 0 0 1.5px rgba(107, 40, 56, 0.35);
  color: #6B2838;
  font-weight: 500;
}

/* --- Reduced motion ---------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
  .ic-uni-row,
  .ic-field__input,
  .ic-toggle-precision,
  .ic-universal-cta,
  .ic-mobile-cta,
  .ic-cta-card__cta,
  .ic-scenarios__open-save,
  .ic-scenarios__save-btn,
  .ic-scenarios__cancel-btn,
  .ic-scenarios__rename-ok,
  .ic-scenarios__rename-cancel,
  .ic-scenarios__load,
  .ic-scenarios__rename,
  .ic-scenarios__delete,
  .ic-section,
  .ic-section__summary::after {
    transition: none;
  }
  .ic-uni-row:hover,
  .ic-universal-cta:hover,
  .ic-mobile-cta:hover,
  .ic-cta-card__cta:hover {
    transform: none;
  }
}

/* --- Mobile ------------------------------------------------------------ */

@media (max-width: 720px) {
  #mi-isee.ic {
    margin: 1.5rem 0 1rem;
    padding: 1.25rem 1.125rem;
  }
  .ic-controls {
    flex-direction: column;
    align-items: stretch;
    gap: 1rem;
  }
  .ic-field,
  .ic-field--compact {
    min-width: 0;
    flex: 1 1 auto;
  }
  .ic-toggle-precision,
  .ic-show-more {
    width: 100%;
  }
  .ic-uni-row {
    grid-template-columns: 1fr auto;
    grid-template-areas:
      "name amount"
      "severity severity"
      "guidance guidance";
    gap: 0.25rem 1rem;
    padding: 0.875rem;
  }
  .ic-uni-row__name     { grid-area: name; }
  .ic-uni-row__amount   { grid-area: amount; justify-self: end; }
  .ic-uni-row__severity { grid-area: severity; }
  .ic-uni-row__guidance { grid-area: guidance; }

  .ic-nudge {
    flex-direction: column;
    align-items: stretch;
  }
  .ic-nudge__actions {
    flex-direction: column;
    align-items: stretch;
  }
  .ic-nudge__btn {
    width: 100%;
  }

  /* Precision shell mobile reflow — stack header items vertically so the
     universal CTA lands below the title instead of crowding it. */
  .ic--precision .ic__header--precision {
    flex-direction: column;
    gap: 1rem;
  }
  .ic-universal-cta {
    width: 100%;
    align-items: center;
    text-align: center;
    padding: 0.75rem 1rem;
  }

  /* Placement 4 reveal: Precision gets a sticky bottom CTA on mobile. Add
     breathing room at the bottom of the Precision pane so the fixed bar
     never covers the last accordion or uni row. */
  .ic--precision {
    padding-bottom: 4.5rem;
  }
  .ic-mobile-cta {
    display: flex;
  }

  /* Task 26: stack the CTA card body + actions vertically on mobile so
     the Book button spans full-width instead of hugging the right edge. */
  .ic-cta-card {
    grid-template-columns: 1fr;
    grid-template-areas:
      "body"
      "actions";
    gap: 0.75rem;
  }
  .ic-cta-card__actions {
    align-items: stretch;
  }
  .ic-cta-card__cta {
    width: 100%;
  }
  .ic-section__summary {
    padding: 0.875rem 1rem;
    gap: 0.625rem;
  }
  .ic-section__title {
    font-size: 0.9375rem;
  }

  /* Members table — stack each row as a card, hide the header row.
     data-label attributes on each <td> act as the pseudo-header. */
  .ic-members,
  .ic-members thead,
  .ic-members tbody,
  .ic-members__row,
  .ic-members__cell {
    display: block;
    width: 100%;
  }
  .ic-members thead {
    position: absolute;
    left: -9999px;
  }
  .ic-members__row {
    padding: 0.625rem 0.75rem;
    margin-bottom: 0.625rem;
    background: #fff;
    border: 1px solid rgba(0, 31, 61, 0.08);
    border-radius: 8px;
    position: relative;
  }
  .ic-members__cell {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.375rem 0;
    border-bottom: 1px dashed rgba(0, 31, 61, 0.06);
  }
  .ic-members__cell:last-child {
    border-bottom: 0;
  }
  .ic-members__cell::before {
    content: attr(data-label);
    flex: 0 0 auto;
    font-size: 0.6875rem;
    font-weight: 600;
    color: var(--color-text-secondary, #64748b);
    text-transform: uppercase;
    letter-spacing: 0.04em;
  }
  .ic-members__cell--actions {
    position: absolute;
    top: 0.375rem;
    right: 0.375rem;
    width: auto;
    padding: 0;
    border: 0;
  }
  .ic-members__cell--actions::before {
    content: '';
  }
  .ic-members__cell--actions[aria-hidden="true"] {
    display: none;
  }
  .ic-field__input--compact {
    flex: 1 1 auto;
    max-width: 60%;
  }
  .ic-nucleo-preview {
    flex-direction: column;
    align-items: flex-start;
  }
  /* Task 19 — collapse parental + non-custodial grids on narrow viewports */
  .ic-parental-status__options,
  .ic-noncustodial__grid,
  .ic-exclusion-criteria__grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .ic-noncustodial {
    padding: 1rem;
  }

  /* Task 20 — income section mobile reflow. Stack year/rate, the member
     header, and the 9-field grid so labels + inputs stay above their values
     instead of cramping. */
  .ic-income__controls {
    flex-direction: column;
    align-items: stretch;
  }
  .ic-income__member-header {
    flex-direction: column;
    align-items: stretch;
  }
  .ic-income__currency {
    min-width: 0;
  }
  .ic-income__grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .ic-income__total {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
  }
  .ic-assets__controls {
    flex-direction: column;
    align-items: stretch;
  }
  .ic-assets__year,
  .ic-assets__currency {
    min-width: 0;
  }
  .ic-assets__grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .ic-assets__total {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
  }
  .ic-properties__row-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .ic-properties__total {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
  }
  .ic-special__groups {
    grid-template-columns: minmax(0, 1fr);
  }
  .ic-special__inheritance-fields {
    grid-template-columns: minmax(0, 1fr);
  }
  .ic-scenarios__header {
    flex-direction: column;
    align-items: stretch;
    gap: 0.5rem;
  }
  .ic-scenarios__save-form input,
  .ic-scenarios__rename-form input {
    flex: 1 1 100%;
  }
  .ic-compare__selectors {
    grid-template-columns: 1fr;
  }
  .ic-compare__grid {
    grid-template-columns: 1fr 1fr;
  }
  .ic-compare__row-label {
    grid-column: 1 / -1;
    border-right: none;
  }
}

/* ============================================================ */
/* Task 29 — Print consultant summary                           */
/* ============================================================ */

/* Print button lives alongside Save/Compare in the scenarios bar. Same
   subdued pill language — the report is the artefact, not the button. */
.ic-scenarios__open-print {
  appearance: none;
  border: 1px solid rgba(107, 40, 56, 0.22);
  background: #FFF;
  color: #6B2838;
  font: 500 0.85rem/1 var(--font-body, Inter, sans-serif);
  padding: 0.45rem 0.85rem;
  border-radius: var(--radius-md, 8px);
  cursor: pointer;
  transition: background 150ms ease, border-color 150ms ease;
}
.ic-scenarios__open-print:hover,
.ic-scenarios__open-print:focus-visible {
  background: rgba(232, 196, 201, 0.22);
  border-color: rgba(107, 40, 56, 0.45);
  outline: none;
}

/* The report lives in-DOM but stays invisible on screen. Only the
   print stylesheet flips it to block. Keeping it out of the screen
   layout means accidental visits (by a script) don't break the
   section it's parented under. */
.ic-print-report {
  display: none;
}

/* ---------- @media print ----------------------------------------- */
@media print {
  /* Hide every piece of page chrome + the interactive ISEE surface.
     Only the dedicated report becomes visible; the result fits 2-3
     US-Letter / A4 pages with no manual CSS gymnastics. */
  .navbar,
  #navbar,
  footer,
  .mi-footer,
  .ic-primer,
  .ic-iseedirect,
  .ic-universal-cta,
  .ic-cta-card,
  .ic-mobile-cta,
  .ic-scenarios,
  .ic-scenarios__open-save,
  .ic-scenarios__open-compare,
  .ic-scenarios__open-print,
  .ic-scenarios__load,
  .ic-scenarios__rename,
  .ic-scenarios__delete,
  .ic-compare,
  .ic-accordion,
  .ic-controls,
  .ic-uni-list,
  .ic__header,
  .ic-toggle-precision,
  [data-action="open-print"] {
    display: none !important;
  }

  /* The ISEE section itself needs to relax its backdrop so the report
     lands on a plain white canvas — saves toner and keeps the
     consultant's copy legible after faxing / scanning. */
  #mi-isee {
    background: #FFF !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  .ic-print-report {
    display: block;
    color: #000;
    font: 11pt/1.45 Georgia, "Times New Roman", serif;
    padding: 0.5in;
  }

  .ic-print-report__title {
    font: 700 20pt/1.2 Georgia, serif;
    margin: 0 0 0.1in;
    color: #001F3D;
  }
  .ic-print-report__meta {
    font: 400 10pt/1.3 Georgia, serif;
    color: #555;
    margin: 0 0 0.25in;
  }
  .ic-print-report__heading {
    font: 700 13pt/1.25 Georgia, serif;
    color: #6B2838;
    border-bottom: 1px solid #6B2838;
    padding-bottom: 2pt;
    margin: 0.2in 0 0.1in;
    page-break-after: avoid;
  }
  .ic-print-report__subtitle {
    font: 700 11pt/1.25 Georgia, serif;
    color: #001F3D;
    margin: 0.15in 0 0.05in;
  }

  .ic-print-report__table {
    width: 100%;
    border-collapse: collapse;
    margin: 0.05in 0 0.1in;
    page-break-inside: avoid;
  }
  .ic-print-report__table th,
  .ic-print-report__table td {
    border-bottom: 1px solid #CCC;
    padding: 3pt 6pt;
    text-align: left;
    vertical-align: top;
    font-size: 10.5pt;
  }
  .ic-print-report__table th[scope="row"] {
    width: 40%;
    font-weight: 600;
    color: #333;
  }

  .ic-print-report__members,
  .ic-print-report__checklist ul,
  .ic-print-report__triggers ul {
    margin: 0.05in 0 0.1in 0.25in;
    padding: 0;
  }
  .ic-print-report__members li,
  .ic-print-report__checklist li,
  .ic-print-report__triggers li {
    margin-bottom: 3pt;
    page-break-inside: avoid;
  }

  .ic-print-report__footer {
    margin-top: 0.25in;
    border-top: 1px solid #999;
    padding-top: 4pt;
    font-size: 9pt;
    color: #555;
  }
  .ic-print-report__empty {
    font-style: italic;
    color: #555;
  }

  /* Larger page break discipline — every major section gets its own
     break context so a half-cut checklist doesn't orphan on page 1. */
  .ic-print-report__outputs,
  .ic-print-report__checklist,
  .ic-print-report__triggers {
    page-break-inside: avoid;
  }
}
