/* Monitoring and mixed public/commercial registry */
.admin-section-nav {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
  margin: 22px 0 28px;
  padding: 6px;
  border-radius: 18px;
  background: #e9ebef;
}
.admin-section-tab {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 52px;
  padding: 10px 16px;
  border: 0;
  border-radius: 14px;
  background: transparent;
  color: #777c88;
  font: inherit;
  font-weight: 500;
  cursor: pointer;
  transition: color 160ms ease, background-color 160ms ease, box-shadow 160ms ease, transform 140ms ease;
}
.admin-section-tab small {
  min-width: 26px;
  padding: 3px 8px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .62);
  color: inherit;
  font-size: 12px;
}
.admin-section-tab.active { background: #fff; color: #22242a; box-shadow: 0 3px 12px rgba(27, 31, 39, .08); }
.admin-section-tab:active { transform: scale(.985); }
.admin-monitor-metrics { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin: 22px 0 4px; }
.admin-monitor-metrics article { display: grid; gap: 3px; padding: 16px; border-radius: 16px; background: #f2f4f6; }
.admin-monitor-metrics strong { font-size: 24px; }
.admin-monitor-metrics span { color: var(--muted, #697080); font-size: 13px; }
.admin-monitor-panel {
  margin: 0;
  padding: 24px;
  border: 1px solid var(--line, #d9dde3);
  border-radius: 24px;
  background: #fff;
}
.admin-monitor-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.admin-monitor-head h2 { margin: 4px 0 8px; }
.admin-monitor-head p { margin: 0; color: var(--muted, #697080); }
.admin-monitor-source-form {
  display: grid;
  grid-template-columns: repeat(4, minmax(160px, 1fr));
  gap: 12px;
  align-items: end;
  margin: 22px 0 12px;
}
.admin-monitor-source-form .field { margin: 0; }
.admin-monitor-keywords { grid-column: span 2; }
.admin-monitor-checkbox {
  display: flex;
  min-width: 0;
  min-height: 48px;
  gap: 8px;
  align-items: flex-start;
  padding-top: 14px;
  line-height: 1.35;
  white-space: normal;
}
.admin-monitor-checkbox input { flex: 0 0 auto; margin-top: 2px; }
.admin-monitor-status { margin: 12px 0 18px; padding: 12px 14px; border-radius: 14px; background: #f2f4f6; }
.admin-monitor-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.admin-monitor-grid > div { min-width: 0; }
.admin-monitor-source, .admin-monitor-run {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 0;
  border-top: 1px solid var(--line, #e1e4e8);
}
.admin-monitor-source div, .admin-monitor-run { min-width: 0; }
.admin-monitor-source strong, .admin-monitor-source small, .admin-monitor-source a,
.admin-monitor-run strong, .admin-monitor-run span, .admin-monitor-run small { display: block; }
.admin-monitor-source a { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-monitor-source { align-items: stretch; flex-direction: column; }
.admin-monitor-source-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; width: 100%; }
.admin-monitor-run { display: grid; grid-template-columns: auto 1fr auto; }
.admin-monitor-run.failed { color: #8d2f2f; }
.admin-monitor-preview { margin: 16px 0 22px; padding: 18px; border: 1px solid var(--line, #d9dde3); border-radius: 18px; background: #f7f8fa; }
.admin-monitor-preview-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.admin-monitor-preview-head strong, .admin-monitor-preview-head span { display: block; }
.admin-monitor-preview-head span { color: var(--muted, #697080); }
.admin-monitor-preview-list { display: grid; gap: 10px; margin-top: 14px; }
.admin-monitor-candidate { display: grid; grid-template-columns: auto 1fr; gap: 12px; padding: 14px; border-radius: 14px; background: #fff; }
.admin-monitor-candidate strong, .admin-monitor-candidate small, .admin-monitor-candidate p { display: block; margin: 0 0 4px; }
.admin-monitor-candidate small, .admin-monitor-candidate p { color: var(--muted, #697080); }
.admin-monitor-candidates-head { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--line, #d9dde3); }
.admin-monitor-candidates-head h3, .admin-monitor-candidates-head p { margin: 0; }
.admin-monitor-candidates-head p { margin-top: 4px; color: var(--muted, #697080); }
.admin-monitor-candidates-head > span { padding: 6px 10px; border-radius: 999px; background: #fff0c8; color: #795500; font-size: 13px; }
.admin-monitor-candidates { display: grid; gap: 10px; margin-top: 14px; }
.admin-monitor-program { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(220px, 1fr) auto; align-items: center; gap: 16px; padding: 16px; border: 1px solid var(--line, #d9dde3); border-radius: 16px; }
.admin-monitor-program-main { min-width: 0; }
.admin-monitor-program-main > strong, .admin-monitor-program-main > small, .admin-monitor-program-meta > strong, .admin-monitor-program-meta > small { display: block; }
.admin-monitor-program-main > strong { margin: 8px 0 3px; }
.admin-monitor-program-main > small, .admin-monitor-program-meta > small { color: var(--muted, #697080); }
.admin-monitor-program-actions { display: flex; gap: 8px; }
.admin-badge.preview-new { background: #e3f4e8; color: #25623a; }
.admin-badge.preview-changed { background: #fff0c8; color: #795500; }
.admin-badge.preview-duplicate { background: #f3e7ff; color: #61358a; }
.admin-badge.preview-unchanged { background: #eceef1; color: #606672; }
.admin-badge.kind-commercial { background: #fff2d8; color: #6f4b00; }
.admin-badge.kind-nonprofit { background: #eee6ff; color: #55328f; }
.admin-badge.kind-employer { background: #e4f2ff; color: #1f527d; }
.admin-badge.monitor-applications-expiring, .admin-badge.monitor-check-due { background: #fff0c8; color: #795500; }
.admin-badge.monitor-applications-closed { background: #f8dddd; color: #8b2d2d; }

@media (max-width: 1100px) {
  .admin-monitor-source-form { grid-template-columns: 1fr 1fr; }
  .admin-monitor-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .admin-section-nav { grid-template-columns: 1fr; }
  .admin-section-tab { justify-content: space-between; }
  .admin-monitor-metrics { grid-template-columns: 1fr 1fr; }
  .admin-monitor-panel { padding: 18px; border-radius: 18px; }
  .admin-monitor-head { display: block; }
  .admin-monitor-head .button { margin-top: 16px; width: 100%; }
  .admin-monitor-source-form, .admin-monitor-grid { grid-template-columns: 1fr; }
  .admin-monitor-keywords { grid-column: auto; }
  .admin-monitor-source, .admin-monitor-preview-head { align-items: stretch; flex-direction: column; }
  .admin-monitor-source-actions { width: 100%; }
  .admin-monitor-source-actions .button { flex: 1; }
  .admin-monitor-run { grid-template-columns: 1fr; gap: 4px; }
  .admin-monitor-candidates-head { align-items: flex-start; flex-direction: column; }
  .admin-monitor-program { grid-template-columns: 1fr; }
  .admin-monitor-program-actions .button { flex: 1; }
}

@font-face {
  font-family: "YS Text";
  src: url("assets/fonts/ys-text-regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "YS Text";
  src: url("assets/fonts/ys-text-medium.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "YS Text";
  src: url("assets/fonts/ys-text-bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

:root {
  --text: #17181b;
  --muted: #73777f;
  --border: #dfe1e5;
  --background: #fff;
  --surface: #fff;
  --accent: #303136;
  --accent-soft: #eceef0;
  --error: #b42318;
  --progress: #42c878;
  --font: "YS Text", Arial, sans-serif;
  --motion-out: cubic-bezier(.22, 1, .36, 1);
  --motion-in-out: cubic-bezier(.77, 0, .175, 1);
  --number-pop-duration: 500ms;
  --number-pop-distance: 8px;
  --number-pop-stagger: 70ms;
  --tooltip-open-duration: 150ms;
  --tooltip-close-duration: 50ms;
  --tooltip-open-delay: 80ms;
  --panel-open-duration: 400ms;
  --panel-close-duration: 350ms;
  --shake-dur-a: 80ms;
  --shake-dur-b: 60ms;
  --revert-hold: 3000ms;
  --question-reveal-enter: 500ms;
  --question-reveal-exit: 120ms;
  --clarification-modal-open: 250ms;
  --clarification-modal-close: 150ms;
}

* { box-sizing: border-box; }
body { margin: 0; background: var(--background); color: var(--text); font-family: var(--font); font-weight: 400; line-height: 1.45; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
a { color: var(--accent); }
.hidden { display: none !important; }

.topbar {
  display: flex;
  min-height: 64px;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 12px 24px;
  border-bottom: 1px solid var(--border);
  background: var(--surface);
}
.brand { display: flex; align-items: center; gap: 10px; color: var(--text); text-decoration: none; }
.brand-logo { display: block; width: 180px; height: 30px; flex: 0 0 180px; overflow: hidden; }
.brand-logo img { display: block; width: 192.5px; max-width: none; height: auto; transform: translate(-5.8px, -11.3px); }
.brand small { display: block; }
.brand small { color: var(--muted); font-size: 12px; }
.topbar-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.topbar-tab, .catalog-link {
  min-height: 38px;
  padding: 8px 12px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
  text-decoration: none;
}
.catalog-link { display: flex; align-items: center; gap: 8px; }
.catalog-link b { padding: 2px 6px; background: var(--accent-soft); }
.topbar-catalog-link {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  gap: 9px;
  padding: 8px 14px;
  border: 1px solid var(--border);
  border-radius: 6px;
  color: var(--text);
  font-weight: 500;
  text-decoration: none;
  transition: border-color 160ms ease, background-color 160ms ease, transform 140ms var(--motion-out);
}
.topbar-catalog-link b { min-width: 26px; color: var(--muted); font-size: 12px; text-align: center; }
.topbar-catalog-link:active { transform: scale(.98); }

.hero { width: min(960px, calc(100% - 32px)); margin: 0 auto; padding: 72px 0; }
.hero-copy { max-width: 720px; }
.hero h1 { margin: 0; font-size: clamp(40px, 7vw, 72px); line-height: 1.05; }
.hero-lead { color: var(--muted); font-size: 18px; }
.hero-actions, .trust-row { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 24px; }
.trust-row { color: var(--muted); font-size: 13px; }
.hero-visual { display: none; }

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

.home-hero {
  width: min(1340px, calc(100% - 48px));
  padding: 34px 0 72px;
}
.home-stories {
  display: flex;
  justify-content: center;
  gap: 22px;
  padding: 4px 4px 28px;
  overflow-x: auto;
  scrollbar-width: none;
}
.home-stories::-webkit-scrollbar { display: none; }
.home-story {
  width: 112px;
  flex: 0 0 112px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #303238;
  text-align: center;
}
.home-story > span {
  display: block;
  width: 92px;
  height: 92px;
  margin: 0 auto 9px;
  padding: 3px;
  overflow: hidden;
  border: 2px solid #1aa36f;
  border-radius: 50%;
  background: #fff;
  transition: border-color 160ms ease, transform 160ms var(--motion-out);
}
.home-story img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.home-story b { display: block; font-size: 13px; font-weight: 500; line-height: 1.25; }
.home-story:active > span { transform: scale(.96); }
.home-story:focus-visible { outline: 2px solid #1458c8; outline-offset: 5px; border-radius: 4px; }

.home-hero-copy { max-width: 1120px; margin: 52px auto 0; text-align: center; }
.home-hero h1 {
  max-width: 1100px;
  margin: 0 auto;
  font-size: 58px;
  font-weight: 500;
  line-height: 1.08;
  letter-spacing: 0;
}
.home-hero h1 mark { padding: 0 .08em .04em; background: #dfff00; color: inherit; }
.home-search {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  max-width: 1020px;
  margin: 54px auto 0;
  padding: 8px;
  border-radius: 8px;
  background: #f1f2f4;
}
.home-search input {
  width: 100%;
  min-width: 0;
  height: 58px;
  padding: 0 20px;
  border: 0;
  background: transparent;
  color: var(--text);
  font-size: 18px;
  outline: 0;
}
.home-search input::placeholder { color: #9296a0; opacity: 1; }
.home-search:focus-within { box-shadow: 0 0 0 3px rgba(255, 204, 0, .55); }
.home-search button {
  min-width: 132px;
  height: 58px;
  padding: 0 24px;
  border: 0;
  border-radius: 12px;
  background: #25272c;
  color: #fff;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(31, 33, 37, .12);
  transition: background-color 160ms ease, box-shadow 160ms ease, transform 140ms var(--motion-out);
}
.home-search button:active { transform: scale(.97); }
.home-search button[aria-busy="true"] { color: #d8dbe1; cursor: wait; }
.home-search-hint { margin: 12px 0 0; color: var(--muted); font-size: 13px; }
.home-hero-actions { justify-content: center; margin-top: 28px; }
.button.home-calculator-button {
  min-height: 58px;
  gap: 10px;
  padding: 12px 24px;
  border: 1px solid #fc0;
  border-radius: 12px;
  background: #fc0;
  color: #202124;
  font-size: 16px;
  font-weight: 600;
  box-shadow: 0 4px 12px rgba(255, 204, 0, .22);
  transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 140ms var(--motion-out);
}
.home-catalog-button {
  display: inline-flex;
  min-height: 58px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 12px 24px;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #f1f2f4;
  color: #202124;
  font-size: 16px;
  font-weight: 600;
  text-decoration: none;
  transition: background-color 160ms ease, border-color 160ms ease, transform 140ms var(--motion-out);
}
.home-action-arrow { font-size: 20px; line-height: 1; transition: transform 160ms var(--motion-out); }
.home-search button:focus-visible,
.home-calculator-button:focus-visible,
.home-catalog-button:focus-visible { outline: 3px solid rgba(255, 204, 0, .8); outline-offset: 3px; }
.home-calculator-button.is-loading { cursor: wait; transform: none; }
.home-calculator-button .button-loading-track { background: rgba(31, 33, 37, .18); }
.home-calculator-button .button-loading-track > span { background: #202124; }
.button.home-calculator-button:active { border-color: #f2c200; background: #f2c200; box-shadow: 0 2px 6px rgba(255, 204, 0, .2); transform: scale(.97); }
.home-catalog-button:active { border-color: #dedfe2; background: #dedfe2; transform: scale(.97); }

.home-search-results { margin-top: 66px; border-top: 1px solid var(--border); padding-top: 34px; }
.home-results-head { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; }
.home-results-head h2 { margin: 0; font-size: 30px; font-weight: 500; }
.home-results-head p { margin: 0; color: var(--muted); }
.home-program-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 22px; }
.home-program-card {
  display: grid;
  min-height: 270px;
  grid-template-rows: auto auto 1fr auto;
  gap: 14px;
  padding: 22px;
  border: 1px solid transparent;
  border-radius: 6px;
  background: #f3f4f5;
  color: var(--text);
  text-decoration: none;
  transition: border-color 160ms ease, background-color 160ms ease, transform 140ms var(--motion-out);
}
.home-program-card:active { transform: scale(.99); }
.home-program-labels { display: flex; flex-wrap: wrap; gap: 6px; }
.home-program-labels span { padding: 5px 8px; border-radius: 4px; background: #fff; color: #686d76; font-size: 12px; }
.home-program-labels span:first-child { background: #e1f4e9; color: #087748; }
.home-program-card h3 { margin: 0; font-size: 23px; font-weight: 500; line-height: 1.18; }
.home-program-card p { margin: 0; color: #626873; line-height: 1.48; }
.home-program-card footer { display: flex; align-items: end; justify-content: space-between; gap: 14px; }
.home-program-card footer strong { font-size: 14px; line-height: 1.3; }
.home-program-card footer span { display: grid; width: 40px; height: 40px; flex: 0 0 40px; place-items: center; border-radius: 50%; background: #25272c; color: #fff; font-size: 20px; }
.home-results-all { display: inline-flex; align-items: center; gap: 8px; margin-top: 24px; color: #1458c8; font-weight: 500; text-decoration: none; }
.home-results-empty { grid-column: 1 / -1; padding: 36px 20px; border-top: 1px solid var(--border); color: var(--muted); text-align: center; }

@media (hover: hover) and (pointer: fine) {
  .topbar-catalog-link:hover { border-color: #aeb3bc; background: #f7f8f9; }
  .home-story:hover > span { border-color: #1458c8; transform: translateY(-2px); }
  .home-search button:hover { background: #15171a; box-shadow: 0 4px 12px rgba(31, 33, 37, .2); }
  .button.home-calculator-button:hover { border-color: #ffd633; background: #ffd633; box-shadow: 0 6px 16px rgba(255, 204, 0, .3); }
  .home-catalog-button:hover { border-color: #dfe1e5; background: #e8e9ec; }
  .home-calculator-button:hover .home-action-arrow,
  .home-catalog-button:hover .home-action-arrow { transform: translateX(3px); }
  .home-program-card:hover { border-color: #c8ccd3; background: #fff; }
}

@media (max-width: 1020px) {
  .home-stories { justify-content: flex-start; }
  .home-hero h1 { font-size: 46px; }
  .home-program-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  padding: 12px 22px;
  border: 0;
  border-radius: 16px;
  background: var(--surface);
  color: var(--text);
  font-weight: 500;
  text-decoration: none;
  transition: transform 140ms cubic-bezier(.23, 1, .32, 1), background-color 160ms ease;
}
.button:active { transform: scale(.98); }
.button-primary { background: var(--accent); color: #fff; }
.button-primary.is-loading {
  cursor: wait;
  opacity: .78;
  transform: none;
  min-width: 264px;
  display: grid;
  gap: 8px;
  text-align: left;
}
.button-loading-copy { line-height: 1.1; }
.button-loading-track {
  display: block;
  width: 100%;
  height: 4px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255, 255, 255, .28);
}
.button-loading-track > span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: #fff;
  transition: width 260ms cubic-bezier(.22, 1, .36, 1);
}

.calculator-shell {
  width: min(1040px, calc(100% - 32px));
  margin: 32px auto 80px;
  overflow: hidden;
  border: 0;
  border-radius: 30px;
  background: #f1f2f4;
}
.calculator-head { display: flex; align-items: center; gap: 16px; padding: 24px 32px 12px; border: 0; }
.back-home { display: grid; width: 36px; height: 36px; flex: 0 0 36px; place-items: center; padding: 0; border: 0; background: transparent; color: #858897; }
.back-home svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.back-home:active { transform: scale(.94); }
.progress-wrap { flex: 1; }
.progress-meta { display: flex; justify-content: space-between; margin-bottom: 6px; color: var(--muted); font-size: 13px; }
.progress-track { height: 7px; overflow: hidden; border-radius: 999px; background: #dfe2e7; }
.progress-track i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--progress);
  transition: width 240ms cubic-bezier(.77, 0, .175, 1);
}
.calculator-focus { display: flex; align-items: center; gap: 12px; margin: 12px 32px 0; padding: 12px 16px; border: 0; border-radius: 14px; background: #fff; }

.form-step { display: none; padding: 42px 54px 28px; }
.form-step.active { display: block; }
.eyebrow { margin: 0 0 10px; color: var(--accent); font-size: 12px; font-weight: 700; text-transform: uppercase; }
.form-step h2, .section-heading h2, .dialog-head h2 { margin: 0; }
.form-step h2 { max-width: 760px; font-size: clamp(32px, 5vw, 48px); font-weight: 500; line-height: 1.08; letter-spacing: -.03em; }
.step-intro { max-width: 700px; margin: 14px 0 40px; color: var(--muted); font-size: 16px; }
.field-grid { display: grid; gap: 24px 20px; }
.two-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.three-cols { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.field { display: flex; flex-direction: column; gap: 9px; font-size: 14px; font-weight: 500; }
.field small { color: var(--muted); font-size: 12px; font-weight: 400; }
.field input, .field select, .field textarea, .catalog-tools input, .catalog-tools select {
  width: 100%;
  min-height: 54px;
  padding: 12px 16px;
  border: 2px solid #e3e5eb;
  border-radius: 16px;
  background: var(--surface);
  color: var(--text);
  transition: border-color 150ms ease, background-color 150ms ease;
}
.field input:focus, .field select:focus, .field textarea:focus {
  border-color: #303136;
  background: #fff;
  outline: 0;
}
.field input:disabled, .field select:disabled, .field textarea:disabled { background: #e8e9ed; color: #9a9ca7; cursor: not-allowed; }
.field input::placeholder, .field textarea::placeholder { color: #9295a4; opacity: 1; }
.input-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.base-income-field, .income-field { margin-top: 24px; }
.money-input { position: relative; }
.money-input input { padding-right: 40px; }
.money-input b { position: absolute; top: 14px; right: 16px; color: var(--muted); }

.primary-help-copy { display: none !important; }
.primary-help-anchor { display: inline-flex; align-items: center; gap: 6px; }
.primary-help-button, .choice-help-button, .status-help {
  width: 22px;
  height: 22px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--surface);
  color: var(--muted);
}
.primary-help-toast {
  position: fixed;
  z-index: 1000;
  width: min(420px, calc(100vw - 40px));
  padding: 14px 16px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: var(--surface);
  box-shadow: 0 12px 32px rgba(20, 21, 24, .12);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.primary-help-toast.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.primary-help-toast.is-popover {
  right: auto;
  bottom: auto;
  width: min(430px, calc(100vw - 24px));
  max-height: min(320px, calc(100vh - 24px));
  margin: 0;
  overflow: auto;
  filter: blur(1px);
  transform: scale(.98);
  transform-origin: var(--help-origin-x, center) var(--help-origin-y, bottom);
  transition: opacity var(--tooltip-close-duration) ease-out, transform var(--tooltip-close-duration) ease-out, filter var(--tooltip-close-duration) ease-out, visibility 0s linear var(--tooltip-close-duration);
}
.primary-help-toast.is-popover.is-open {
  filter: blur(0);
  transform: scale(1);
  transition: opacity var(--tooltip-open-duration) ease-out var(--tooltip-open-delay), transform var(--tooltip-open-duration) ease-out var(--tooltip-open-delay), filter var(--tooltip-open-duration) ease-out var(--tooltip-open-delay), visibility 0s linear 0s;
}
.primary-help-toast.is-mobile-panel {
  right: 14px;
  bottom: max(14px, env(safe-area-inset-bottom));
  left: 14px;
  width: auto;
  max-height: min(48vh, 360px);
  overflow: auto;
  filter: blur(2px);
  transform: translateY(50%);
  transition: opacity var(--panel-close-duration) var(--motion-out), transform var(--panel-close-duration) var(--motion-out), filter var(--panel-close-duration) var(--motion-out), visibility 0s linear var(--panel-close-duration);
}
.primary-help-toast.is-mobile-panel.is-open {
  filter: blur(0);
  transform: translateY(0);
  transition: opacity var(--panel-open-duration) var(--motion-out), transform var(--panel-open-duration) var(--motion-out), filter var(--panel-open-duration) var(--motion-out), visibility 0s linear 0s;
}
.primary-help-toast.motion-instant { transition: none !important; }
.primary-help-toast p { margin: 0; color: var(--muted); font-size: 13px; }

@media (prefers-reduced-motion: reduce) {
  .home-search button,
  .home-calculator-button,
  .home-catalog-button,
  .home-action-arrow { transform: none !important; transition-duration: 0s; }
  .primary-help-toast,
  .primary-help-toast.is-popover,
  .primary-help-toast.is-mobile-panel { filter: none; transform: none; transition: opacity 120ms ease; }
  .boolean-toggle-indicator { transition: opacity 120ms ease; }
  .progress-track i { transition: none; }
  .number-pop-digit { animation: none; }
  .validation-error-surface.is-shaking { animation: none; }
  .clarification-text-line,
  .clarification-text-reveal.is-hiding .clarification-text-line { filter: none; transform: none; transition: opacity 120ms ease; }
}

.native-select-proxy {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}
.animated-select { position: relative; width: 100%; font-weight: 400; }
.animated-select-trigger {
  display: flex;
  width: 100%;
  min-height: 54px;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 16px;
  border: 2px solid #e3e5eb;
  border-radius: 16px;
  background: var(--surface);
  color: var(--text);
  text-align: left;
  transition: border-color 150ms ease, background-color 150ms ease;
}
.animated-select[data-open="true"] .animated-select-trigger,
.animated-select-trigger:focus-visible { border-color: #303136; background: #fff; outline: 0; }
.animated-select-chevron svg { width: 16px; height: 16px; fill: none; stroke: currentColor; }
.animated-select-panel { display: none; position: absolute; z-index: 20; top: calc(100% + 6px); right: 0; left: 0; }
.animated-select[data-open="true"] .animated-select-panel { display: block; }
.animated-select-panel-inner { overflow: hidden; border: 1px solid var(--border); border-radius: 18px; background: var(--surface); }
.animated-select-option { width: 100%; min-height: 48px; padding: 11px 18px; border: 0; background: var(--surface); text-align: left; }
.animated-select-option:hover, .animated-select-option[aria-selected="true"] { background: var(--accent-soft); }

.binary-options.boolean-toggle-source { display: none; }
.boolean-toggle {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  padding: 4px;
  border-radius: 18px;
  background: #e8e9ed;
}
.boolean-toggle-indicator {
  position: absolute;
  top: 4px;
  bottom: 4px;
  left: 4px;
  z-index: 0;
  width: calc(50% - 4px);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 2px 8px rgba(28, 29, 33, .1);
  opacity: 0;
  pointer-events: none;
  transform: translateX(0);
  transition: transform 220ms cubic-bezier(.77, 0, .175, 1), opacity 120ms ease;
}
.boolean-toggle[data-answered="true"] .boolean-toggle-indicator { opacity: 1; }
.boolean-toggle[data-value="yes"] .boolean-toggle-indicator,
.boolean-toggle[data-value="male"] .boolean-toggle-indicator { transform: translateX(100%); }
.boolean-toggle-choice {
  position: relative;
  z-index: 1;
  min-height: 46px;
  border: 0;
  border-radius: 14px;
  background: transparent;
  color: #8b8d9b;
  font-weight: 500;
  transition: transform 140ms cubic-bezier(.23, 1, .32, 1), background-color 160ms ease, color 160ms ease, box-shadow 160ms ease;
}
.boolean-toggle-choice:active { transform: scale(.98); }
.boolean-toggle-choice[aria-pressed="true"] {
  background: transparent;
  color: #27282d;
  box-shadow: none;
}
.boolean-toggle.validation-error-surface { outline: 1px solid var(--error); }
.boolean-toggle[data-disabled="true"] { opacity: .5; pointer-events: none; }

.choice-grid, .tag-grid { display: grid; gap: 12px; }
.choice-group, .family-question { min-width: 0; margin: 28px 0 0; padding: 0; border: 0; }
.choice-group legend, .family-question legend { padding: 0; }
.family-question > legend,
.family-followup-title {
  color: var(--text);
  font-size: 17px;
  font-weight: 400;
  line-height: 1.35;
}
.choice-group > .choice-grid { margin-top: 18px; }
.family-builder { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; align-items: start; }
.family-builder .family-question .input-row { grid-template-columns: 1fr; }
.family-question > .boolean-toggle { margin-top: 18px; }
.family-followup-title { margin: 0; }
.family-subquestion { display: grid; gap: 16px; }
.children-age-groups:not(.hidden) { display: grid; gap: 20px; }
.children-age-groups .family-subquestion + .family-subquestion { padding-top: 20px; border-top: 1px solid var(--border); }
.family-finance-row {
  display: grid;
  grid-template-columns: minmax(340px, .65fr) minmax(0, 1.35fr);
  gap: 20px;
  margin-top: 24px;
  align-items: stretch;
}
.family-total {
  display: inline-flex;
  min-width: 300px;
  margin-top: 24px;
  padding: 14px 20px 14px 14px;
  align-items: center;
  gap: 14px;
  border-radius: 30px;
  background: #eaf8df;
}
.family-finance-row .family-total { width: 100%; min-width: 0; margin-top: 0; }
.family-finance-row .base-income-field { margin-top: 0; justify-content: flex-end; }
.family-total-icon {
  display: grid;
  width: 46px;
  height: 46px;
  flex: 0 0 46px;
  place-items: center;
  border-radius: 50%;
  background: #acd400;
  color: #fff;
}
.family-total-copy { display: flex; min-width: 0; flex-direction: column; line-height: 1.25; }
.family-total-label { display: flex; align-items: center; gap: 6px; color: #5f665b; font-size: 14px; }
.family-total strong { color: var(--text); font-size: 20px; font-weight: 500; }
.number-pop-value { display: inline-flex; }
.number-pop-digit {
  display: inline-block;
  animation: number-pop-in var(--number-pop-duration) cubic-bezier(.34, 1.45, .64, 1) both;
  animation-delay: calc(var(--number-index) * var(--number-pop-stagger));
  will-change: transform, opacity, filter;
}
@keyframes number-pop-in {
  from { opacity: 0; filter: blur(2px); transform: translateY(var(--number-pop-distance)); }
  to { opacity: 1; filter: blur(0); transform: translateY(0); }
}
@media (min-width: 761px) {
  .family-builder > .family-question {
    --family-question-heading-space: 70px;
    position: relative;
    padding: 20px 20px 22px;
    border-radius: 20px;
    background: var(--surface);
    box-shadow: 0 0 0 1px var(--border);
  }
  .family-builder > .family-question > legend {
    position: absolute;
    top: 20px;
    right: 20px;
    left: 20px;
    display: flex;
    width: auto;
    min-height: var(--family-question-heading-space);
    align-items: flex-start;
  }
  .family-builder > .family-question > .boolean-toggle {
    margin-top: var(--family-question-heading-space);
  }
  .family-builder > .family-question > .boolean-toggle,
  .family-builder > .family-question > .family-followup .boolean-toggle,
  .family-builder > .family-question > .family-followup input {
    min-height: 54px;
  }
  .family-builder > .family-question > .family-followup:not(.hidden) {
    margin-top: 12px;
  }
  #relativesCountField:not(.hidden),
  #spouseLivingField:not(.hidden) {
    display: grid;
    grid-template-rows: 58px 54px;
    gap: 0;
  }
  #relativesCountField > span,
  #spouseLivingField > .family-followup-title {
    display: flex;
    min-height: 58px;
    margin: 0;
    align-items: flex-start;
  }
  #childrenAgeGroups:not(.hidden) { margin-top: 20px; }
  #minorChildrenQuestion:not(.hidden),
  #adultChildrenQuestion:not(.hidden) { display: grid; gap: 16px; }
  #adultChildrenQuestion > .family-followup-title {
    min-height: auto;
    margin: 0;
  }
  #adultChildrenCountField:not(.hidden) { display: grid; gap: 8px; }
}
.choice-grid.three-cols { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tag-grid { grid-template-columns: 1fr 1fr; }
.choice-card-wrap { position: relative; }
.choice-card {
  position: relative;
  display: block;
  min-height: 148px;
  height: 100%;
  overflow: hidden;
  padding: 18px 142px 18px 18px;
  border: 1px solid transparent;
  border-radius: 16px;
  background: var(--surface);
  cursor: pointer;
}
.choice-card-wrap .choice-card { padding-right: 142px; }
.choice-card-wrap .choice-help-button { position: absolute; top: 14px; right: 14px; }
.choice-card input { position: relative; z-index: 2; margin: 0; }
.choice-illustration {
  position: absolute;
  right: 6px;
  bottom: -8px;
  z-index: 1;
  width: 132px;
  height: 112px;
  object-fit: contain;
  object-position: right bottom;
  pointer-events: none;
  user-select: none;
}
.choice-card b, .choice-card small { display: block; }
.choice-card b { position: relative; z-index: 2; margin-top: 18px; font-size: 15px; font-weight: 500; line-height: 1.25; }
.choice-card small { margin-top: 5px; color: var(--muted); font-size: 12px; }
.choice-card:has(input:checked) { border-color: var(--accent); background: var(--accent); color: #fff; }
.choice-card:has(input:checked) small { color: #c9cbd0; }
.tag-grid label { cursor: pointer; }
.tag-grid span { display: block; min-height: 52px; padding: 14px 16px; border: 1px solid transparent; border-radius: 16px; background: #fff; }
.tag-grid input:checked + span { border-color: var(--accent); background: var(--accent); color: #fff; }

.conditional { display: none; }
.conditional.visible { display: block; }
.family-composition, .adaptive-explanation, .household-summary { margin-top: 24px; padding: 20px; border: 0; border-radius: 20px; background: #fff; }
.status-panel { margin-top: 12px; overflow: hidden; border: 0; border-radius: 20px; background: #fff; }
.status-panel summary { padding: 18px 20px; cursor: pointer; }
.status-options { padding: 18px 20px; border-top: 1px solid #eceef0; }
.status-tooltip { position: fixed; z-index: 1000; display: none; max-width: 320px; padding: 12px; background: #222; color: #fff; }
.status-tooltip.visible { display: block; }
.extended-statuses { margin-top: 28px; }

.form-nav { display: flex; justify-content: space-between; gap: 10px; padding: 22px 54px 48px; }
.form-nav .button:first-child { visibility: hidden; }

.clarification-review { margin: 18px 0; padding: 14px 16px; border: 0; border-radius: 16px; background: #fff; }
.clarification-text-reveal { overflow: hidden; }
.clarification-text-line {
  opacity: 0;
  filter: blur(3px);
  transform: translateY(12px);
  transition: opacity var(--question-reveal-enter) var(--motion-in-out), transform var(--question-reveal-enter) var(--motion-in-out), filter var(--question-reveal-enter) var(--motion-in-out);
}
.clarification-text-line--2 { transition-delay: 40ms; }
.clarification-subject-label {
  margin: 0 0 12px;
  color: var(--muted);
  font-size: 14px;
  font-weight: 500;
}
.clarification-text-reveal.is-shown .clarification-text-line { opacity: 1; filter: blur(0); transform: translateY(0); }
.clarification-text-reveal.is-hiding .clarification-text-line {
  opacity: 0;
  filter: blur(2px);
  transform: translateY(-4px);
  transition-duration: var(--question-reveal-exit);
  transition-delay: 0ms;
}
.clarification-text-reveal.motion-instant .clarification-text-line { opacity: 1; filter: none; transform: none; transition: none; }
.clarification-reference h2 { max-width: 780px; margin: 28px 0; font-size: clamp(32px, 5vw, 48px); font-weight: 500; line-height: 1.08; letter-spacing: -.03em; }
.clarification-official { margin: 20px 0; }
.clarification-official summary { cursor: pointer; font-weight: 600; }
.clarification-official div { margin-top: 10px; padding: 18px; border: 0; border-radius: 16px; background: #fff; color: var(--muted); }
.clarification-help-modal {
  width: min(620px, calc(100% - 32px));
  max-height: calc(100vh - 32px);
  margin: auto;
  padding: 0;
  overflow: visible;
  border: 0;
  border-radius: 22px;
  background: transparent;
  color: var(--text);
}
.clarification-help-modal::backdrop {
  background: rgba(17, 18, 21, 0);
  transition: background-color var(--clarification-modal-close) ease-out;
}
.clarification-help-modal.is-open::backdrop {
  background: rgba(17, 18, 21, .42);
  transition-duration: var(--clarification-modal-open);
}
.clarification-help-modal-card {
  position: relative;
  max-height: calc(100vh - 32px);
  padding: 32px;
  overflow: auto;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 24px 80px rgba(17, 18, 21, .2);
  opacity: 0;
  transform: scale(.96);
  transition: opacity var(--clarification-modal-close) var(--motion-out), transform var(--clarification-modal-close) var(--motion-out);
}
.clarification-help-modal.is-open .clarification-help-modal-card {
  opacity: 1;
  transform: scale(1);
  transition-duration: var(--clarification-modal-open);
}
.clarification-help-modal-close {
  position: absolute;
  top: 14px;
  right: 14px;
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #f1f2f4;
  color: #737784;
  font-size: 24px;
  line-height: 1;
  transition: transform 140ms var(--motion-out), background-color 160ms ease;
}
.clarification-help-modal-close:active { transform: scale(.94); }
.clarification-help-modal-content { padding-right: 32px; color: var(--muted); }
.clarification-help-modal-content p { margin: 0; }
.clarification-help-modal-content p + p { margin-top: 18px; }
.clarification-help-modal-content strong { color: var(--text); font-weight: 500; }
.clarification-answer-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-top: 32px; }
.clarification-answer-list button { display: flex; min-height: 54px; align-items: center; gap: 10px; padding: 11px 16px; border: 1px solid transparent; border-radius: 16px; background: var(--surface); text-align: left; transition: transform 140ms cubic-bezier(.23, 1, .32, 1), background-color 160ms ease, color 160ms ease; }
.clarification-answer-list button:active { transform: scale(.98); }
.clarification-answer-list button b { flex: 1; }
.clarification-answer-list button i { font-style: normal; }
.clarification-answer-list button.selected { border-color: var(--accent); background: var(--accent); color: #fff; }
.clarification-answer-list .clarification-random-fill {
  border-color: #d9dce1;
  background: #fff;
  color: #555963;
}
.clarification-question-back, .clarification-edit { margin-top: 16px; padding: 8px 0; border: 0; background: transparent; color: var(--accent); }
.clarification-question-back:disabled { opacity: .4; cursor: default; }
.clarification-value-form { display: grid; grid-template-columns: 1fr auto auto; align-items: end; gap: 10px; margin-top: 24px; }
.clarification-value-form input { min-height: 54px; padding: 12px 16px; border: 2px solid #e3e5eb; border-radius: 16px; background: #fff; transition: border-color 150ms ease, background-color 150ms ease; }
.clarification-value-form input:focus { border-color: #303136; background: #fff; outline: 0; }

@media (hover: hover) and (pointer: fine) {
  .field input:not(:disabled):hover,
  .field select:not(:disabled):hover,
  .field textarea:not(:disabled):hover,
  .animated-select-trigger:not(:disabled):hover,
  .clarification-value-form input:not(:disabled):hover { background: #e9eaee; }
  .field input:not(:disabled):focus,
  .field select:not(:disabled):focus,
  .field textarea:not(:disabled):focus,
  .animated-select[data-open="true"] .animated-select-trigger,
  .animated-select-trigger:focus-visible,
  .clarification-value-form input:not(:disabled):focus { background: #fff; }
  .results-tabs button:not(.active):hover { color: var(--text); }
  .questionnaire-receipt button:not(:disabled):hover { background: #e1e3e7; }
  .clarification-help-modal-close:hover { background: #e6e7ea; }
}

.results-head,
.questionnaire-receipt,
.result-card-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 20px;
}

.results-head { margin-bottom: 24px; }
.results-head > div:first-child { min-width: 0; }
.results-accounting { margin: 14px 0 0; color: var(--muted); font-size: 17px; }
.results-head h2 {
  max-width: 820px;
  margin: 0;
  font-size: clamp(38px, 5vw, 64px);
  font-weight: 500;
  line-height: 1.03;
  letter-spacing: -.045em;
}
.results-head .step-intro { max-width: 760px; margin: 14px 0 0; color: var(--muted); font-size: 18px; }
.results-count {
  display: grid;
  min-width: 84px;
  min-height: 84px;
  place-items: center;
  padding: 12px;
  border-radius: 24px;
  background: var(--accent);
  color: #fff;
  text-align: center;
}
.results-count strong,
.results-count small { display: block; }
.results-count strong { min-width: 2ch; font-size: 28px; font-variant-numeric: tabular-nums; font-weight: 500; line-height: 1; }
.results-count small { margin-top: 4px; font-size: 12px; }

.questionnaire-receipt {
  align-items: center;
  margin-bottom: 16px;
  padding: 18px 20px;
  border: 0;
  border-radius: 20px;
  background: #fff;
}
.questionnaire-receipt > div {
  display: flex;
  min-width: 0;
  align-items: baseline;
  gap: 8px 12px;
  flex-wrap: wrap;
}
.questionnaire-receipt > div > span { color: var(--muted); }
.questionnaire-receipt strong { font-size: 17px; font-weight: 500; }
.questionnaire-receipt small { flex-basis: 100%; color: var(--muted); font-size: 13px; }
.questionnaire-receipt button {
  min-height: 42px;
  padding: 9px 16px;
  border: 0;
  border-radius: 14px;
  background: var(--accent-soft);
  color: var(--text);
  white-space: nowrap;
}
.questionnaire-receipt button:disabled { opacity: .55; cursor: default; }

.results-note {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px 18px;
  border-radius: 18px;
  background: #fff7df;
  color: #5f4b1e;
  font-size: 14px;
}
.results-note b {
  display: grid;
  width: 26px;
  height: 26px;
  flex: 0 0 26px;
  place-items: center;
  border-radius: 50%;
  background: #ffe29a;
  color: #735713;
  font-size: 13px;
}

.results-value-summary {
  display: block;
  margin-top: 18px;
  padding: 22px 24px;
  border: 1px solid #dfe3e8;
  border-radius: 16px;
  background: #fff;
}
.results-value-summary strong {
  display: flex;
  max-width: 100%;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 5px 9px;
  font-size: 25px;
  font-weight: 650;
  line-height: 1.2;
  overflow-wrap: anywhere;
}
.results-value-amount { font-size: 36px; font-weight: 750; line-height: 1; }
.results-value-amount [data-result-counter] {
  display: inline-block;
  min-width: 8ch;
  font-variant-numeric: tabular-nums;
}

.results-tabs {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 4px;
  margin: 24px 0 16px;
  padding: 4px;
  border-radius: 18px;
  background: #e8e9ed;
}
.results-tabs button {
  position: relative;
  display: grid;
  overflow: hidden;
  min-width: 0;
  min-height: 64px;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  padding: 11px 13px 9px;
  border: 0;
  border-radius: 14px;
  background: transparent;
  color: #676b75;
  font-weight: 500;
  text-align: left;
  transition: transform 140ms var(--motion-out), color 160ms ease, background-color 160ms ease, box-shadow 160ms ease;
}
.results-tabs button::before {
  position: absolute;
  inset: 0 0 auto;
  height: 4px;
  background: #9297a1;
  content: "";
}
.results-tabs button[data-result-filter="match"]::before { background: #28a862; }
.results-tabs button[data-result-filter="maybe"]::before { background: #a5bd2d; }
.results-tabs button[data-result-filter="no"]::before { background: #e0a039; }
.results-tabs button[data-result-filter="unavailable"]::before { background: #8e929c; }
.results-tabs button.active { color: var(--text); box-shadow: 0 3px 12px rgba(36, 39, 46, .09); }
.results-tabs button[data-result-filter="match"].active { background: #dcf5e6; }
.results-tabs button[data-result-filter="maybe"].active { background: #eff3cf; }
.results-tabs button[data-result-filter="no"].active { background: #ffead0; }
.results-tabs button[data-result-filter="unavailable"].active { background: #dfe1e6; }
.results-tab-copy { display: grid; min-width: 0; gap: 2px; }
.results-tab-copy > span { min-width: 0; line-height: 1.18; overflow-wrap: anywhere; }
.results-tab-copy > small { color: #8a8e97; font-size: 11px; font-weight: 500; line-height: 1; }
.results-tabs button[data-result-filter="match"] .results-tab-copy > small { color: #238b53; }
.results-tabs button[data-result-filter="maybe"] .results-tab-copy > small { color: #768718; }
.results-tabs button[data-result-filter="no"] .results-tab-copy > small { color: #9a6819; }
.results-tabs button strong {
  display: inline;
  min-width: 0;
  height: auto;
  flex: 0 0 auto;
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: inherit;
  font-size: 13px;
  font-weight: 650;
}
.results-tabs button:active { transform: scale(.98); }
.results-tabs button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

.result-group-description { margin: 0 0 14px; color: var(--muted); font-size: 15px; }
.result-list { display: grid; gap: 16px; }
.result-catalog {
  display: grid;
  grid-template-columns: minmax(250px, 310px) minmax(0, 1fr);
  align-items: start;
  gap: 16px;
}
.result-catalog-rail {
  position: sticky;
  top: 16px;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  min-width: 0;
  height: calc(100vh - 32px);
  max-height: calc(100vh - 32px);
  align-content: start;
  gap: 10px;
}
.result-catalog-summary {
  display: grid;
  gap: 3px;
  padding: 17px 18px;
  border-radius: 8px;
  background: #e1f6e9;
}
.result-catalog-summary strong { font-size: 20px; font-weight: 650; }
.result-catalog-summary span { color: #416653; font-size: 12px; line-height: 1.35; }
.result-catalog--maybe .result-catalog-summary { background: #f2f3db; }
.result-catalog--maybe .result-catalog-summary span { color: #626b2f; }
.result-catalog--no .result-catalog-summary { background: #fff0dd; }
.result-catalog--no .result-catalog-summary span { color: #76542d; }
.result-catalog--unavailable .result-catalog-summary { background: #e9eaee; }
.result-catalog--unavailable .result-catalog-summary span { color: #62656d; }
.result-catalog-programs {
  display: grid;
  min-height: 0;
  align-content: start;
  grid-auto-rows: max-content;
  gap: 12px;
  padding: 4px 10px 14px 4px;
  overflow: auto;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}
.result-catalog-featured-group,
.result-catalog-commercial-group {
  display: grid;
  gap: 12px;
  margin-top: 4px;
  padding-top: 18px;
  border-top: 1px solid #cfdced;
}
.result-catalog-commercial-group { border-top-color: #ead7ad; }
.result-catalog-featured-heading,
.result-catalog-commercial-heading {
  display: grid;
  gap: 4px;
  padding: 0 4px 2px;
}
.result-catalog-featured-heading span,
.result-catalog-commercial-heading span {
  color: #4f6f9c;
  font-size: 11px;
  font-weight: 650;
  line-height: 1.2;
  text-transform: uppercase;
}
.result-catalog-commercial-heading span { color: #815d17; }
.result-catalog-featured-heading h3,
.result-catalog-commercial-heading h3 {
  margin: 0;
  color: #172d4b;
  font-size: 17px;
  font-weight: 650;
  line-height: 1.25;
}
.result-catalog-commercial-heading h3 { color: #4b3511; }
.result-catalog-row {
  display: flex;
  width: 100%;
  min-height: 108px;
  min-width: 0;
  height: max-content;
  align-self: start;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
  padding: 20px 18px;
  border: 1px solid transparent;
  border-radius: 24px;
  background: #fff;
  color: var(--text);
  cursor: pointer;
  font: inherit;
  text-align: left;
  box-shadow: 0 10px 28px rgba(35, 38, 45, .07);
  transition: border-color 160ms ease, box-shadow 160ms ease, transform 140ms var(--motion-out);
}
.result-catalog-row--featured {
  border-color: #d6e2f1;
  background: #f7faff;
  box-shadow: 0 10px 28px rgba(32, 79, 139, .08);
}
.result-catalog-row--commercial {
  border-color: #ead7ad;
  background: #fffbf2;
  box-shadow: 0 10px 28px rgba(126, 88, 18, .08);
}
.result-catalog-row.active {
  border-color: #2aa866;
  box-shadow: 0 0 0 1px #2aa866 inset, 0 12px 30px rgba(32, 134, 82, .12);
}
.result-catalog--maybe .result-catalog-row.active {
  border-color: #9aaa2b;
  box-shadow: 0 0 0 1px #9aaa2b inset, 0 12px 30px rgba(125, 139, 33, .12);
}
.result-catalog--no .result-catalog-row.active {
  border-color: #d69835;
  box-shadow: 0 0 0 1px #d69835 inset, 0 12px 30px rgba(169, 111, 25, .12);
}
.result-catalog--unavailable .result-catalog-row.active {
  border-color: #8e929c;
  box-shadow: 0 0 0 1px #8e929c inset, 0 12px 30px rgba(80, 84, 94, .1);
}
.result-catalog-row:active { transform: scale(.98); }
.result-catalog-row:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.result-catalog-row-copy { display: grid; width: 100%; min-width: 0; gap: 4px; }
.result-catalog-row-badge {
  display: inline-flex;
  width: max-content;
  max-width: 100%;
  margin-bottom: 3px;
  padding: 4px 6px;
  border-radius: 6px;
  background: #e3edfb;
  color: #285c9f;
  font-size: 10px;
  font-weight: 650;
  line-height: 1.15;
  overflow-wrap: anywhere;
}
.result-catalog-row-badge--commercial {
  background: #fff0c9;
  color: #6f4b00;
}
.result-catalog-row-title {
  display: block;
  max-width: 100%;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.3;
  overflow-wrap: anywhere;
}
.result-catalog-row strong { display: block; max-width: 100%; font-size: 15px; font-weight: 650; line-height: 1.25; overflow-wrap: anywhere; }
.result-catalog-card { min-width: 0; }
.result-catalog-card .result-card { min-width: 0; }
.result-card {
  position: relative;
  overflow: hidden;
  margin: 0;
  padding: 24px;
  border: 1px solid #e2e4e8;
  border-radius: 22px;
  background: #fff;
}
.result-card::before {
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  content: "";
}
.result-card--yes::before { background: #42c878; }
.result-card--maybe::before { background: #efbd4e; }
.result-card--no::before { background: #d9897f; }
.result-card--unavailable::before { background: #9a9da6; }
.result-card-top > div { min-width: 0; }
.result-card-top h3 { margin: 12px 0 8px; font-size: 23px; font-weight: 500; line-height: 1.2; letter-spacing: -.02em; }
.result-card-top > div > h3:first-child { margin-top: 0; }
.result-description { width: 100%; max-width: none; margin: 0; color: var(--muted); line-height: 1.55; }
.result-amount {
  flex: 0 0 auto;
  max-width: 250px;
  padding: 10px 12px;
  border-radius: 14px;
  background: #f1f2f4;
  color: var(--text);
  font-size: 17px;
  font-weight: 500;
  line-height: 1.25;
  text-align: right;
}
.result-badge {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 6px 10px;
  border-radius: 999px;
  background: #dbf5e5;
  color: #187648;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.2;
}
.result-badge.draft,
.result-badge.maybe { background: #fff0c7; color: #805f0c; }
.result-badge.no { background: #f7e3e0; color: #99463c; }
.result-badge.unavailable { background: #eceef1; color: #555861; }

.result-exclusion-reason {
  display: grid;
  gap: 4px;
  margin-top: 18px;
  padding: 14px 16px;
  border-radius: 16px;
  background: #f1f2f4;
  color: #555861;
  font-size: 14px;
}

.result-review-status {
  display: grid;
  gap: 4px;
  margin-top: 18px;
  padding: 14px 16px;
  border-radius: 16px;
  font-size: 14px;
}
.result-review-status b { font-weight: 500; }
.result-review-status span { color: var(--muted); }
.result-review-status.confirmed { background: #eef9f2; }
.result-review-status.draft { background: #fff7df; }

.reason-list { display: grid; gap: 9px; margin: 18px 0 0; padding: 0; list-style: none; }
.reason-list li { position: relative; padding-left: 26px; color: #4f535b; }
.reason-list li::before {
  position: absolute;
  top: 0;
  left: 2px;
  color: #1b8a52;
  font-weight: 600;
  content: "✓";
}
.reason-list li.pending::before { color: #9a7111; content: "?"; }
.reason-list li.failed::before { color: #aa4f45; content: "×"; }
.result-evidence { margin-top: 12px; }
.result-evidence summary { cursor: pointer; color: #555963; font-size: 14px; }

.result-details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 22px;
  padding-top: 20px;
  border-top: 1px solid var(--border);
}
.result-detail-section { min-width: 0; }
.result-detail-tile {
  position: relative;
  display: block;
  overflow: hidden;
  width: 100%;
  min-height: 142px;
  padding: 18px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #f4f2ff;
  color: var(--text);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color 160ms ease, background-color 160ms ease;
}
.result-detail-section--location .result-detail-tile { background: #fff5fe; }
.result-detail-section--documents .result-detail-tile { background: #f7f6ff; }
.result-detail-section--receipt .result-detail-tile { background: #f2fcf6; }
.result-detail-section--faq .result-detail-tile { background: #f7f7ff; }
.result-detail-tile-title {
  position: relative;
  z-index: 1;
  display: block;
  max-width: 58%;
  font-size: 16px;
  font-weight: 650;
  line-height: 1.3;
  overflow-wrap: anywhere;
}
.result-detail-tile-art {
  position: absolute;
  right: 8px;
  bottom: -8px;
  width: min(44%, 168px);
  height: 108px;
  object-fit: contain;
  object-position: right bottom;
  pointer-events: none;
  user-select: none;
}
.result-detail-tile:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.result-detail-dialog {
  width: min(720px, calc(100% - 32px));
  max-height: min(760px, calc(100vh - 32px));
  overflow: hidden;
  border: 0;
  border-radius: 8px;
  box-shadow: 0 24px 70px rgba(20, 24, 32, .24);
}
.result-detail-dialog::backdrop { background: rgba(17, 18, 21, .42); }
.result-detail-dialog-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  padding: 22px 24px 18px;
  border-bottom: 1px solid var(--border);
}
.result-detail-dialog-head p { margin: 0 0 5px; color: var(--muted); font-size: 13px; }
.result-detail-dialog-head h2 { margin: 0; font-size: 25px; line-height: 1.15; }
.result-detail-dialog-head button {
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 50%;
  background: #f0f1f3;
  color: #4b4f57;
  font: inherit;
  font-size: 24px;
  cursor: pointer;
}
.result-detail-dialog-head button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.result-detail-dialog-body {
  max-height: calc(min(760px, 100vh - 32px) - 104px);
  overflow: auto;
  padding: 24px;
  color: #4f535b;
  overflow-wrap: anywhere;
}
.result-detail-prose { display: grid; gap: 14px; }
.result-detail-prose p { margin: 0; line-height: 1.65; }
.result-detail-prose strong { color: var(--text); font-weight: 650; }
.result-faq-list { display: grid; }
.result-faq-item { padding: 18px 0; border-bottom: 1px solid var(--border); }
.result-faq-item:first-child { padding-top: 0; }
.result-faq-item:last-child { padding-bottom: 0; border-bottom: 0; }
.result-faq-item h3 { margin: 0 0 8px; color: var(--text); font-size: 17px; font-weight: 650; }
.result-faq-item p { margin: 0; line-height: 1.6; }
.result-link,
.source-missing { display: inline-flex; margin-top: 18px; font-size: 14px; }
.result-link { font-weight: 500; text-underline-offset: 3px; }
.source-missing { color: var(--muted); }
.result-actions {
  display: grid;
  grid-template-columns: minmax(0, 360px);
  gap: 10px;
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--border);
}
.result-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  padding: 13px 18px;
  border: 0;
  border-radius: 16px;
  font: inherit;
  font-weight: 500;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: transform 140ms var(--motion-out), background-color 160ms ease, color 160ms ease;
}
.result-action:active { transform: scale(.97); }
.result-action:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.result-action--self { background: #f0f1f3; color: #27282d; }
@media (hover: hover) and (pointer: fine) {
  .result-action--self:not(:disabled):hover { background: #e6e7ea; }
}
.empty-state { padding: 32px 20px; border-radius: 20px; background: #fff; color: var(--muted); text-align: center; }
.restart-row { display: flex; justify-content: space-between; gap: 12px; margin-top: 24px; }

.steps-section { padding: 50px 24px; }
.steps-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
footer { display: none; }

dialog { width: min(1100px, calc(100% - 32px)); max-height: 90vh; padding: 0; border: 1px solid var(--border); background: var(--surface); }
dialog::backdrop { background: rgba(0, 0, 0, .35); }
.dialog-head { display: flex; justify-content: space-between; gap: 16px; padding: 20px; border-bottom: 1px solid var(--border); }
.dialog-head button { border: 0; background: transparent; font-size: 24px; }
.catalog-tools, .admin-tools { display: grid; grid-template-columns: 2fr 1fr; gap: 10px; padding: 16px 20px; }
.catalog-list, .admin-program-list { padding: 0 20px 20px; }
.catalog-card, .government-card, .admin-program-card { margin-top: 12px; padding: 16px; border: 1px solid var(--border); }
.catalog-pagination, .admin-pagination { display: flex; justify-content: center; align-items: center; gap: 12px; padding: 16px; }
.workspace-page { width: min(1180px, calc(100% - 32px)); margin: 0 auto; padding: 48px 0; }
.workspace-page-head { display: flex; justify-content: space-between; gap: 20px; }
.admin-metrics, .update-analysis-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.admin-metrics article, .update-analysis-grid article { padding: 14px; border: 1px solid var(--border); background: var(--surface); }
.admin-edit-dialog { padding: 20px; }
.admin-edit-actions { display: flex; justify-content: flex-end; gap: 10px; }
.admin-source-review-info { margin: 14px 0; padding: 14px; border-radius: 12px; background: #f4f5f7; }
.admin-source-review-info:empty { display: none; }
.admin-source-review-info strong, .admin-source-review-info span { display: block; }
.admin-source-review-info p { margin: 8px 0 0; color: var(--muted); }
.admin-review-cell { min-width: 160px; }
.admin-review-cell small { display: block; margin-top: 4px; color: var(--muted); }

/* Administrative programme registry */
.admin-page.workspace-page {
  width: min(1440px, calc(100% - 48px));
  padding: 36px 0 64px;
}
.admin-page .workspace-page-head { align-items: flex-start; }
.admin-page .workspace-page-head > div { max-width: 760px; }
.admin-page .workspace-page-head h2 {
  margin: 0;
  font-size: clamp(34px, 4vw, 48px);
  font-weight: 500;
  line-height: 1.04;
  letter-spacing: 0;
}
.admin-page .workspace-page-head > div > p:last-child {
  margin: 14px 0 0;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.5;
}
.admin-page .workspace-page-head .button {
  min-height: 42px;
  padding: 9px 14px;
  border: 1px solid #e1e3e7;
  border-radius: 12px;
  font-size: 14px;
}
.admin-storage-status {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 36px;
  margin: 24px 0 0;
  padding: 7px 12px;
  border: 1px solid #dfe3e7;
  border-radius: 999px;
  background: #fff;
  color: #5f6672;
  font-size: 13px;
}
.admin-storage-status::before {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #43b978;
  box-shadow: 0 0 0 4px #e1f5e9;
  content: "";
}
.admin-page .admin-section-nav {
  margin: 22px 0 20px;
  border: 1px solid #e1e3e7;
  background: #f1f2f4;
}
.admin-page .admin-section-tab { min-height: 46px; font-size: 14px; }
.admin-page .button { cursor: pointer; }
.admin-badge {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 4px 8px;
  border-radius: 999px;
  background: #eceef1;
  color: #5c626d;
  font-size: 11px;
  line-height: 1.2;
}
.admin-badge.active, .admin-badge.source-confirmed, .admin-badge.monitor-ok { background: #dcf3e5; color: #24613b; }
.admin-badge.announced, .admin-badge.review, .admin-badge.draft, .admin-badge.generated-review,
.admin-badge.monitor-stale, .admin-badge.monitor-review, .admin-badge.monitor-expiring { background: #fff0c8; color: #795500; }
.admin-badge.closed, .admin-badge.monitor-expired, .admin-badge.monitor-source-failed, .admin-badge.source-missing { background: #f5dcda; color: #7e332d; }
.admin-page .admin-metrics {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
  margin: 0 0 20px;
}
.admin-page .admin-metric {
  position: relative;
  display: grid;
  align-content: space-between;
  gap: 14px;
  min-height: 110px;
  overflow: hidden;
  padding: 18px;
  border: 1px solid #e2e4e8;
  border-radius: 18px;
  background: #fff;
}
.admin-page .admin-metric::before {
  position: absolute;
  top: 0;
  right: 18px;
  left: 18px;
  height: 3px;
  border-radius: 0 0 4px 4px;
  background: #d5d8de;
  content: "";
}
.admin-page .admin-metric[data-tone="success"]::before { background: #48bf7d; }
.admin-page .admin-metric[data-tone="warning"]::before { background: #e7b94c; }
.admin-page .admin-metric[data-tone="danger"]::before { background: #db746b; }
.admin-page .admin-metric strong { font-size: 30px; font-weight: 500; line-height: 1; letter-spacing: -.025em; }
.admin-page .admin-metric div { display: grid; gap: 3px; }
.admin-page .admin-metric span { color: #5f6672; font-size: 13px; line-height: 1.25; }
.admin-page .admin-metric small { color: #9095a0; font-size: 11px; line-height: 1.25; }
.admin-registry-workbench {
  padding: 22px;
  border: 1px solid #e1e3e7;
  border-radius: 22px;
  background: #f5f6f7;
}
.admin-registry-workbench-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 18px;
}
.admin-registry-workbench-head h2 { margin: 0; font-size: 22px; font-weight: 500; letter-spacing: -.02em; }
.admin-registry-workbench-head .catalog-summary { margin: 6px 0 0; color: var(--muted); font-size: 13px; }
.admin-registry-workbench .admin-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}
.admin-registry-workbench .admin-actions .button {
  min-height: 40px;
  padding: 8px 13px;
  border: 1px solid #dfe2e6;
  border-radius: 11px;
  font-size: 13px;
}
.admin-registry-workbench .admin-actions .button-primary { border-color: #303136; }
.admin-filter-panel {
  overflow: hidden;
  border: 1px solid #e0e3e7;
  border-radius: 17px;
  background: #fff;
}
.admin-filter-primary {
  display: grid;
  grid-template-columns: minmax(300px, 2fr) repeat(3, minmax(170px, 1fr));
  gap: 10px;
  padding: 12px;
}
.admin-filter-primary .search-box {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  min-height: 44px;
  padding: 0 14px;
  border: 1px solid #dfe2e7;
  border-radius: 12px;
  background: #f7f8f9;
  color: #7b818d;
}
.admin-filter-primary .search-box:focus-within {
  border-color: #303136;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(48, 49, 54, .07);
}
.admin-filter-primary .search-box span { flex: 0 0 auto; font-size: 18px; }
.admin-filter-primary .search-box input {
  width: 100%;
  min-width: 0;
  height: 42px;
  padding: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--text);
  font: inherit;
  font-size: 14px;
}
.admin-filter-primary select,
.admin-filter-field select {
  width: 100%;
  min-height: 44px;
  padding: 9px 38px 9px 13px;
  border: 1px solid #dfe2e7;
  border-radius: 12px;
  outline: 0;
  appearance: none;
  background-color: #f7f8f9;
  background-image: linear-gradient(45deg, transparent 50%, #777d88 50%), linear-gradient(135deg, #777d88 50%, transparent 50%);
  background-position: calc(100% - 17px) 19px, calc(100% - 12px) 19px;
  background-repeat: no-repeat;
  background-size: 5px 5px, 5px 5px;
  color: var(--text);
  font: inherit;
  font-size: 13px;
  cursor: pointer;
  transition: border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease;
}
.admin-filter-primary select:focus,
.admin-filter-field select:focus {
  border-color: #303136;
  background-color: #fff;
  box-shadow: 0 0 0 3px rgba(48, 49, 54, .07);
}
.admin-advanced-filters { border-top: 1px solid #e6e8eb; }
.admin-advanced-filters > summary {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 46px;
  padding: 10px 14px;
  color: #4d535e;
  font-size: 13px;
  cursor: pointer;
  list-style: none;
}
.admin-advanced-filters > summary::-webkit-details-marker { display: none; }
.admin-advanced-filters > summary::after {
  margin-left: auto;
  color: #7d838f;
  content: "+";
  font-size: 20px;
  line-height: 1;
}
.admin-advanced-filters[open] > summary::after { content: "−"; }
.admin-advanced-filters > summary small { color: #969ba5; font-size: 12px; }
.admin-page .admin-tools {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  padding: 4px 12px 14px;
}
.admin-filter-field { display: grid; gap: 6px; min-width: 0; }
.admin-filter-field > span { color: #747a86; font-size: 11px; font-weight: 500; }
.admin-registry-workbench .update-analysis { margin-top: 16px; }
.admin-table-wrap {
  overflow: auto;
  margin-top: 16px;
  border: 1px solid var(--border);
  border-radius: 22px;
  background: #fff;
}
.admin-table { width: 100%; min-width: 1280px; border-spacing: 0; border-collapse: separate; }
.admin-table th {
  position: sticky;
  top: 0;
  z-index: 1;
  padding: 13px 16px;
  border-bottom: 1px solid var(--border);
  background: #f6f7f8;
  color: #747985;
  font-size: 12px;
  font-weight: 500;
  text-align: left;
}
.admin-table td { padding: 18px 16px; border-bottom: 1px solid #eceef1; vertical-align: top; }
.admin-table tbody tr:last-child td { border-bottom: 0; }
.admin-table td strong, .admin-table td small { display: block; }
.admin-table td small { margin-top: 6px; color: var(--muted); font-size: 12px; line-height: 1.35; }
.admin-program-main-cell { width: 31%; min-width: 340px; }
.admin-program-main-cell > strong { font-size: 16px; line-height: 1.3; }
.admin-program-main-cell > p { margin: 7px 0 12px; color: #626874; font-size: 13px; line-height: 1.45; }
.admin-program-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.admin-program-id-cell { width: 15%; min-width: 200px; }
.admin-program-id-cell code {
  display: inline-block;
  max-width: 230px;
  overflow: hidden;
  color: #24262c;
  font: 600 13px/1.3 ui-monospace, SFMono-Regular, Consolas, monospace;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.admin-program-id-cell small { max-width: 230px; overflow: hidden; text-overflow: ellipsis; }
.admin-table .admin-badge { display: inline-flex; margin: 0 5px 5px 0; white-space: nowrap; }
.admin-source-cell { width: 16%; min-width: 190px; }
.admin-source-cell > a { display: block; color: #1f6f55; font-weight: 500; line-height: 1.35; overflow-wrap: anywhere; }
.admin-passport-cell { width: 15%; min-width: 190px; }
.admin-passport-value { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.admin-passport-value strong { font-size: 16px; }
.admin-passport-value span { color: var(--muted); font-size: 12px; }
.admin-passport-track { height: 7px; margin-top: 9px; overflow: hidden; border-radius: 999px; background: #e7e9ed; }
.admin-passport-track > span { display: block; height: 100%; border-radius: inherit; background: #d85f55; }
.admin-passport-track > span.partial { background: #d6aa3c; }
.admin-passport-track > span.good { background: #40be78; }
.admin-open-program { min-width: 132px; }

.admin-program-dialog { width: min(1120px, calc(100% - 32px)); padding: 0; overflow: hidden; border: 0; border-radius: 26px; box-shadow: 0 24px 80px rgba(20, 24, 32, .24); }
.admin-program-dialog > form { max-height: 90vh; overflow: auto; padding: 0 28px 28px; }
.admin-program-dialog-head {
  position: sticky;
  top: 0;
  z-index: 3;
  align-items: flex-start;
  margin: 0 -28px 24px;
  padding: 24px 28px 20px;
  background: rgba(255, 255, 255, .96);
  backdrop-filter: blur(18px);
}
.admin-program-dialog-head h2 { max-width: 720px; margin: 4px 0 5px; font-size: clamp(25px, 3vw, 38px); line-height: 1.06; }
.admin-program-dialog-subtitle { margin: 0; color: var(--muted); }
.admin-program-dialog-actions { display: flex; align-items: center; gap: 8px; }
.admin-program-dialog-actions .button { font-size: 14px; }
.admin-program-dialog-actions > button { width: 44px; height: 44px; border-radius: 50%; color: #747985; cursor: pointer; transition: background-color 160ms ease, transform 140ms var(--motion-out); }
.admin-program-dialog-actions > button:active { transform: scale(.96); }
.admin-passport-identity {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1px;
  margin-bottom: 20px;
  overflow: hidden;
  border-radius: 18px;
  background: #dfe2e7;
}
.admin-passport-identity > div { min-width: 0; padding: 15px; background: #f3f4f6; }
.admin-passport-identity span, .admin-passport-identity strong { display: block; }
.admin-passport-identity span { margin-bottom: 6px; color: var(--muted); font-size: 11px; }
.admin-passport-identity strong { overflow: hidden; font: 600 12px/1.4 ui-monospace, SFMono-Regular, Consolas, monospace; text-overflow: ellipsis; }
.admin-passport-identity .admin-copy-id { grid-column: 1 / -1; min-height: 44px; border-radius: 0; background: #fff; }
.admin-program-form-section { margin-top: 16px; padding: 22px; border-radius: 20px; background: #f3f4f6; }
.admin-program-form-section .field { margin-top: 14px; }
.admin-program-form-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.admin-program-form-heading h3 { margin: 3px 0 0; font-size: 20px; }
.admin-passport-score { padding: 7px 11px; border-radius: 999px; background: #f5dcda; color: #7e332d; font-size: 12px; white-space: nowrap; }
.admin-passport-score.partial { background: #fff0c8; color: #795500; }
.admin-passport-score.good { background: #dcf3e5; color: #24613b; }
.admin-program-readonly-meta { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.admin-program-readonly-meta span { padding: 7px 10px; border-radius: 999px; background: #fff; color: var(--muted); font-size: 12px; }
.admin-program-readonly-meta strong { color: #33363d; }
.admin-program-dialog .admin-edit-actions {
  position: sticky;
  bottom: 0;
  z-index: 2;
  margin: 20px -28px -28px;
  padding: 18px 28px;
  border-top: 1px solid var(--border);
  background: rgba(255, 255, 255, .96);
  backdrop-filter: blur(18px);
}

@media (hover: hover) and (pointer: fine) {
  .result-detail-tile:hover { border-color: #b8b9c3; }
  .result-catalog-row:hover { border-color: #aeb4bd; }
  .result-catalog-row--featured:not(.active):hover { border-color: #9eb9da; }
  .result-catalog-row.active:hover { border-color: #238e57; }
  .result-catalog--maybe .result-catalog-row.active:hover { border-color: #879624; }
  .result-catalog--no .result-catalog-row.active:hover { border-color: #bc8128; }
  .result-catalog--unavailable .result-catalog-row.active:hover { border-color: #777b84; }
  .admin-table tbody tr:hover td { background: #fafbfb; }
  .admin-program-dialog-actions > button:hover { background: #f0f1f3; }
  .admin-registry-workbench .admin-actions .button-ghost:hover { background: #eceef1; }
  .admin-advanced-filters > summary:hover { background: #fafbfb; }
}

@media (max-width: 1100px) {
  .result-catalog { grid-template-columns: minmax(230px, 280px) minmax(0, 1fr); }
  .admin-filter-primary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-filter-primary .search-box { grid-column: 1 / -1; }
  .admin-page .admin-tools { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-page .admin-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .admin-registry-workbench-head { align-items: stretch; flex-direction: column; }
  .admin-registry-workbench .admin-actions { justify-content: flex-start; }
  .admin-passport-identity { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  .result-catalog { grid-template-columns: 1fr; }
  .result-catalog-rail { position: static; height: auto; max-height: none; }
  .result-catalog-programs {
    display: flex;
    margin-right: -10px;
    padding-right: 10px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x proximity;
  }
  .result-catalog-featured-group,
  .result-catalog-commercial-group {
    display: flex;
    flex: 0 0 auto;
    align-items: stretch;
    gap: 12px;
    margin: 0;
    padding: 0 0 0 16px;
    border-top: 0;
    border-left: 1px solid #cfdced;
  }
  .result-catalog-commercial-group { border-left-color: #ead7ad; }
  .result-catalog-featured-heading,
  .result-catalog-commercial-heading {
    width: 180px;
    flex: 0 0 180px;
    align-content: center;
    padding: 16px;
    border-radius: 18px;
    background: #eaf1fb;
    scroll-snap-align: start;
  }
  .result-catalog-commercial-heading { background: #fff4d9; }
  .result-catalog-row { width: min(42vw, 280px); flex: 0 0 min(42vw, 280px); scroll-snap-align: start; }
  .result-card-top { flex-direction: column; }
  .result-amount { max-width: 100%; text-align: left; }
}

@media (max-width: 720px) {
  .admin-page.workspace-page { width: min(100% - 20px, 1440px); padding-top: 20px; }
  .admin-page .workspace-page-head { gap: 14px; flex-direction: column; }
  .admin-page .workspace-page-head .button { align-self: flex-start; }
  .admin-page .admin-tools, .admin-page .admin-metrics, .admin-filter-primary { grid-template-columns: 1fr; }
  .admin-filter-primary .search-box { grid-column: auto; }
  .admin-registry-workbench { padding: 14px; border-radius: 18px; }
  .admin-registry-workbench .admin-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .admin-registry-workbench .admin-actions .button-primary { grid-column: 1 / -1; }
  .admin-advanced-filters > summary { align-items: flex-start; flex-direction: column; gap: 3px; padding-right: 40px; }
  .admin-advanced-filters > summary::after { position: absolute; right: 26px; }
  .admin-program-dialog { width: calc(100% - 12px); max-height: calc(100vh - 12px); border-radius: 20px; }
  .admin-program-dialog > form { max-height: calc(100vh - 12px); padding: 0 16px 20px; }
  .admin-program-dialog-head { align-items: flex-start; margin: 0 -16px 18px; padding: 18px 16px 15px; }
  .admin-program-dialog-head h2 { font-size: 25px; }
  .admin-program-dialog-actions .button { display: none; }
  .admin-passport-identity { grid-template-columns: 1fr; }
  .admin-program-form-section { padding: 18px; }
  .admin-program-form-heading { display: block; }
  .admin-passport-score { display: inline-block; margin-top: 10px; }
  .admin-program-dialog .admin-edit-actions { margin: 18px -16px -20px; padding: 14px 16px; }
  .admin-program-dialog .admin-edit-actions .button { flex: 1; }
}

.validation-error-surface,
[aria-invalid="true"] { border-color: var(--error) !important; }
.validation-error-surface.is-shaking {
  animation: validation-error-shake 280ms var(--motion-out) both;
  will-change: transform;
}
.validation-error-message {
  margin-top: 5px;
  color: var(--error);
  font-size: 12px;
  opacity: 0;
  transition: opacity 160ms ease;
}
.is-error-wrap .validation-error-message { opacity: 1; }
.field-error { border-color: var(--error) !important; }

@keyframes validation-error-shake {
  0%, 100% { transform: translateX(0); }
  28.57% { transform: translateX(-6px); }
  57.14% { transform: translateX(6px); }
  78.57% { transform: translateX(-4px); }
}

@media (max-width: 760px) {
  .topbar { min-height: 58px; align-items: center; padding: 10px 14px; }
  .topbar-actions .topbar-tab { display: none; }
  .topbar .brand small { display: none; }
  .topbar .brand-logo { width: 132px; height: 24px; flex-basis: 132px; }
  .topbar .brand-logo img { width: 141px; transform: translate(-4.2px, -8.3px); }
  .topbar-catalog-link { min-height: 38px; padding: 7px 10px; font-size: 13px; }
  .topbar-catalog-link b { display: none; }
  .hero { padding: 48px 0; }
  .home-hero { width: 100%; padding: 20px 0 52px; overflow: hidden; }
  .home-stories { gap: 10px; padding: 2px 16px 24px; }
  .home-story { width: 82px; flex-basis: 82px; }
  .home-story > span { width: 70px; height: 70px; margin-bottom: 7px; }
  .home-story b { font-size: 11px; }
  .home-hero-copy { margin: 30px 16px 0; }
  .home-hero h1 { font-size: 36px; line-height: 1.1; }
  .home-search { grid-template-columns: minmax(0, 1fr) auto; gap: 6px; margin-top: 34px; padding: 6px; }
  .home-search input { height: 54px; padding: 0 12px; font-size: 16px; }
  .home-search button { width: auto; min-width: 92px; height: 54px; padding: 0 16px; }
  .home-search-hint { text-align: left; }
  .home-hero-actions { display: grid; gap: 8px; }
  .home-calculator-button, .home-catalog-button { width: 100%; }
  .home-search-results { margin: 46px 16px 0; padding-top: 24px; }
  .home-results-head { display: block; }
  .home-results-head h2 { font-size: 25px; }
  .home-results-head p { margin-top: 5px; }
  .home-program-grid { grid-template-columns: 1fr; }
  .home-program-card { min-height: 238px; padding: 18px; }
  .home-program-card h3 { font-size: 21px; }
  .home-program-card footer { flex-direction: row; }
  .calculator-shell { width: calc(100% - 20px); margin: 16px auto 0; }
  .calculator-head { padding: 14px; }
  .form-step { padding: 30px 20px 18px; }
  .form-step[data-step="2"] .step-intro { margin-bottom: 24px; }
  .two-cols, .three-cols, .choice-grid.three-cols, .tag-grid, .family-builder, .steps-grid, .admin-metrics, .update-analysis-grid { grid-template-columns: 1fr; }
  .family-builder > .family-question { margin-top: 28px; }
  .family-builder > .family-question:first-child { margin-top: 0; }
  .family-builder > .family-question > .family-followup:not(.hidden) { margin-top: 20px; }
  .family-finance-row { grid-template-columns: 1fr; gap: 18px; }
  .family-total { display: flex; width: 100%; min-width: 0; }
  .input-row { grid-template-columns: 1fr; }
  .form-nav { padding: 16px 20px 24px; }
  .clarification-answer-list, .clarification-value-form { grid-template-columns: 1fr; }
  .results-head, .questionnaire-receipt, .result-card-top, .workspace-page-head, footer { flex-direction: column; }
  .results-head h2 { font-size: clamp(36px, 11vw, 52px); }
  .results-count { min-width: 72px; min-height: 72px; border-radius: 20px; }
  .questionnaire-receipt { align-items: stretch; }
  .questionnaire-receipt button { width: 100%; }
  .results-value-summary { padding: 18px; }
  .results-value-summary strong { font-size: 21px; }
  .results-value-amount { font-size: 30px; }
  .results-tabs {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    overflow: visible;
    gap: 3px;
    padding: 3px;
  }
  .results-tabs button {
    min-height: 82px;
    grid-template-columns: 1fr;
    align-content: center;
    gap: 4px;
    padding: 10px 4px 7px;
    text-align: center;
  }
  .results-tab-copy { gap: 3px; }
  .results-tab-copy > span { font-size: 10px; line-height: 1.12; }
  .results-tab-copy > small { font-size: 10px; }
  .results-tabs button strong { font-size: 11px; }
  .result-catalog { grid-template-columns: 1fr; }
  .result-catalog-rail { position: static; height: auto; max-height: none; }
  .result-catalog-summary { padding: 14px 16px; }
  .result-catalog-programs {
    display: flex;
    margin-right: -10px;
    padding-right: 10px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x proximity;
  }
  .result-catalog-row { width: min(64vw, 230px); min-height: 108px; flex: 0 0 min(64vw, 230px); scroll-snap-align: start; }
  .result-catalog-featured-heading,
  .result-catalog-commercial-heading { width: min(48vw, 176px); flex-basis: min(48vw, 176px); }
  .result-card { padding: 20px; }
  .result-actions { grid-template-columns: 1fr; }
  .result-amount { max-width: 100%; text-align: left; }
  .result-details { grid-template-columns: 1fr; }
  .result-detail-tile { min-height: 132px; }
  .result-detail-tile-art { width: min(44%, 150px); height: 98px; }
  .result-detail-dialog { width: calc(100% - 16px); max-height: calc(100vh - 16px); }
  .result-detail-dialog-head { padding: 18px 18px 15px; }
  .result-detail-dialog-head h2 { font-size: 22px; }
  .result-detail-dialog-body { max-height: calc(100vh - 112px); padding: 20px 18px; }
  .restart-row { flex-direction: column; }
  .restart-row .button { width: 100%; }
  .catalog-tools, .admin-tools { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .results-tabs button { transition: none; }
  .clarification-help-modal::backdrop { transition: none; }
  .clarification-help-modal-card { transform: none; transition: opacity 120ms ease; }
}
