/* Fundraising Fit Check: page-specific styles. Reuses tokens from /styles.css. */
.ffc-hero{ position: relative; overflow: hidden; padding-block: var(--space-9) var(--space-6); }
.ffc-hero-inner{ max-width: 820px; margin-inline: auto; text-align: center; }
.ffc-hero h1{ font-size: clamp(36px, 5.6vw, 60px); font-weight: 700; letter-spacing: -0.02em; margin-bottom: var(--space-4); }
.ffc-sub{ font-size: clamp(17px, 2.2vw, 20px); color: var(--ink-500); max-width: 620px; margin: 0 auto var(--space-4); }
.ffc-note{ max-width: 680px; margin: var(--space-4) auto 0; font-size: 14px; line-height: 1.65; color: var(--ink-500); padding: 4px 0 4px var(--space-4); border-left: 3px solid var(--orange-300); text-align: left; }
.ffc-note strong{ color: var(--ink-700); }
.ffc-app{ max-width: 760px; margin-inline: auto; scroll-margin-top: 90px; }
[hidden]{ display: none !important; }

.ffc-progress{ margin-bottom: var(--space-6); }
.ffc-prog-top{ display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-4); flex-wrap: wrap; margin-bottom: 8px; }
.ffc-prog-text{ font-weight: 800; color: var(--ink-900); font-size: 14.5px; }
.ffc-prog-cat{ font-size: 13.5px; font-weight: 700; color: var(--orange-700); }
.ffc-track{ height: 10px; background: var(--ink-100); border-radius: 999px; overflow: hidden; }
.ffc-fill{ height: 100%; border-radius: 999px; background: linear-gradient(90deg, var(--orange-400), var(--orange-600)); transition: width .35s var(--ease); }
.ffc-fill.is-low{ background: linear-gradient(90deg, #F59E0B, #EA580C); }
.ffc-fill.is-mid{ background: linear-gradient(90deg, var(--orange-400), var(--orange-600)); }
.ffc-fill.is-high{ background: linear-gradient(90deg, #22C55E, #15803D); }
@media (prefers-reduced-motion: reduce){ .ffc-fill{ transition: none; } }

.ffc-fieldset{ border: 0; padding: 0; margin: 0; min-width: 0; }
.ffc-legend{ font-family: var(--font-display); font-weight: 700; font-size: clamp(22px, 3.2vw, 30px); line-height: 1.25; letter-spacing: -0.01em; color: var(--ink-900); padding: 0; margin-bottom: var(--space-2); float: left; width: 100%; }
.ffc-hint{ clear: both; color: var(--ink-500); font-size: 15px; margin: 0 0 var(--space-4); }
.ffc-options{ clear: both; display: flex; flex-direction: column; gap: 10px; margin-top: var(--space-4); }
.ffc-opt{ position: relative; }
.ffc-opt input{ position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.ffc-opt label{ display: block; padding: 15px 18px 15px 52px; border: 1.5px solid var(--line); border-radius: var(--r-lg); background: var(--paper); font-size: 16px; font-weight: 600; color: var(--ink-700); line-height: 1.4; position: relative; transition: border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease); }
.ffc-opt label::before{ content: ""; position: absolute; left: 18px; top: 50%; width: 20px; height: 20px; margin-top: -10px; border-radius: 50%; border: 2px solid var(--ink-300); background: var(--paper); }
.ffc-opt:hover label{ border-color: var(--orange-400); }
.ffc-opt input:checked + label{ border-color: var(--orange-500); background: var(--orange-50); color: var(--ink-900); }
.ffc-opt input:checked + label::before{ border-color: var(--orange-600); background: radial-gradient(circle, var(--orange-600) 0 5px, var(--paper) 6px); }
.ffc-opt input:focus-visible + label{ outline: 3px solid var(--orange-400); outline-offset: 2px; }
.ffc-opt.is-unsure label{ font-weight: 500; color: var(--ink-500); border-style: dashed; }
.ffc-actions{ display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: var(--space-6); padding-top: var(--space-5); border-top: 1px solid var(--line); }
.ffc-actions .ffc-spacer{ flex: 1; }
.ffc-link-btn{ font: inherit; font-weight: 700; font-size: 14.5px; color: var(--ink-500); background: transparent; border: 0; padding: 10px 6px; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.ffc-link-btn:hover{ color: var(--orange-700); }
.ffc-msg{ margin: var(--space-3) 0 0; min-height: 1.3em; font-weight: 600; font-size: 14.5px; color: #B91C1C; }
@media (max-width: 520px){ .ffc-actions .btn{ width: 100%; } .ffc-actions .ffc-spacer{ display: none; } .ffc-link-btn{ width: 100%; text-align: center; } }

/* Results */
.ffc-results{ max-width: 860px; margin-inline: auto; scroll-margin-top: 90px; animation: ffc-in .45s var(--ease); }
@keyframes ffc-in{ from{ opacity: 0; transform: translateY(10px); } to{ opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce){ .ffc-results{ animation: none; } }
.ffc-kicker{ font-size: 13.5px; font-weight: 700; color: var(--ink-500); margin: 0 0 var(--space-2); }
.ffc-level{ padding-bottom: var(--space-5); border-bottom: 1px solid var(--line); }
.ffc-level-name{ font-size: clamp(32px, 5.4vw, 52px); font-weight: 800; letter-spacing: -0.02em; margin: 0 0 var(--space-2); background: linear-gradient(135deg, var(--orange-600), var(--orange-700)); -webkit-background-clip: text; background-clip: text; color: transparent; outline: none; }
.lv-ready .ffc-level-name{ background: linear-gradient(135deg, #22C55E, #15803D); -webkit-background-clip: text; background-clip: text; }
.lv-early .ffc-level-name{ background: linear-gradient(135deg, #F59E0B, #C2410C); -webkit-background-clip: text; background-clip: text; }
.lv-none .ffc-level-name{ background: none; color: var(--ink-900); -webkit-text-fill-color: var(--ink-900); }
.ffc-score{ font-size: 17px; color: var(--ink-700); margin: 0 0 var(--space-3); }
.ffc-score strong{ font-family: var(--font-display); font-size: 26px; color: var(--ink-900); }
.ffc-level-sum{ font-size: 17px; line-height: 1.7; color: var(--ink-700); margin: 0 0 var(--space-3); max-width: 680px; }
.ffc-cap{ margin: 0 0 var(--space-3); padding: 10px 14px; border-left: 3px solid var(--orange-500); background: var(--orange-50); border-radius: var(--r-md); font-size: 14.5px; color: var(--ink-700); }
.ffc-muted{ color: var(--ink-500); }
.ffc-h3{ font-family: var(--font-body); font-size: 12.5px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-300); margin: var(--space-6) 0 var(--space-3); }
.ffc-cats{ list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5) var(--space-8); }
.ffc-cat-top{ display: flex; justify-content: space-between; gap: var(--space-3); font-size: 15px; font-weight: 600; color: var(--ink-900); margin-bottom: 8px; }
.ffc-cat-top strong{ font-variant-numeric: tabular-nums; white-space: nowrap; }
.ffc-cat-sub{ display: block; font-size: 12.5px; color: var(--ink-500); margin-top: 6px; }
.ffc-two{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--space-8); }
.ffc-list{ list-style: none; margin: 0; padding: 0; }
.ffc-list li{ position: relative; padding: 8px 0 8px 20px; font-size: 15px; line-height: 1.6; color: var(--ink-700); }
.ffc-list li::before{ content: ""; position: absolute; left: 2px; top: 17px; width: 7px; height: 7px; border-radius: 50%; background: var(--orange-500); }
.ffc-list em{ font-style: normal; color: var(--ink-500); }
.ffc-tag{ display: inline-block; font-size: 11px; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; padding: 2px 8px; border-radius: 999px; background: var(--ink-100); color: var(--ink-700); vertical-align: 1px; }
.ffc-tag-crit{ background: #FEF2F2; color: #B91C1C; }
.ffc-steps{ margin: 0; padding: 0; list-style: none; counter-reset: s; }
.ffc-steps li{ counter-increment: s; position: relative; padding: var(--space-4) 0 var(--space-4) 44px; border-top: 1px solid var(--line); font-size: 15.5px; line-height: 1.6; color: var(--ink-700); }
.ffc-steps li:last-child{ border-bottom: 1px solid var(--line); }
.ffc-steps li::before{ content: counter(s); position: absolute; left: 0; top: 14px; width: 28px; height: 28px; border-radius: 50%; background: var(--orange-50); color: var(--orange-700); font-weight: 800; font-size: 14px; display: flex; align-items: center; justify-content: center; }
.ffc-steps a{ display: block; margin-top: 4px; font-weight: 700; font-size: 14.5px; color: var(--orange-700); }
.ffc-details{ margin-top: var(--space-5); border-top: 1px solid var(--line); }
.ffc-details summary{ cursor: pointer; padding: var(--space-4) 0; font-weight: 700; color: var(--ink-900); }
.ffc-res-actions{ display: flex; flex-wrap: wrap; gap: 12px; margin-top: var(--space-5); }
.ffc-action-msg{ margin: var(--space-3) 0 0; font-weight: 700; font-size: 14.5px; min-height: 1.4em; }
.ffc-action-msg.is-ok{ color: #15803D; }
.ffc-disclaimer{ margin: var(--space-5) 0 0; padding: 4px 0 4px var(--space-4); border-left: 3px solid var(--orange-300); font-size: 13.5px; line-height: 1.65; color: var(--ink-500); }
@media (max-width: 700px){ .ffc-cats, .ffc-two{ grid-template-columns: 1fr; } .ffc-res-actions .btn{ width: 100%; } }

/* Print */
#ffc-print-root{ display: none; }
@media print{
  body > *:not(#ffc-print-root){ display: none !important; }
  #ffc-print-root{ display: block !important; color: #111; font: 12pt/1.5 Arial, sans-serif; }
  #ffc-print-root h1{ font-size: 19pt; margin: 0 0 4pt; }
  #ffc-print-root h2{ font-size: 13pt; margin: 14pt 0 4pt; }
  #ffc-print-root .pp-meta{ color: #555; }
  #ffc-print-root table{ width: 100%; border-collapse: collapse; font-size: 10.5pt; }
  #ffc-print-root th, #ffc-print-root td{ border: 1px solid #bbb; padding: 4pt 6pt; text-align: left; }
  #ffc-print-root .pp-disc{ font-size: 10pt; color: #333; border-left: 3px solid #999; padding-left: 8pt; }
}
