/* Findzy foundations. Scoped components let legacy screens migrate independently. */
:root {
  --fz-font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --fz-mono: ui-monospace, SFMono-Regular, Consolas, monospace;
  --fz-space-1: .25rem;
  --fz-space-2: .5rem;
  --fz-space-3: .75rem;
  --fz-space-4: 1rem;
  --fz-space-5: 1.5rem;
  --fz-space-6: 2rem;
  --fz-space-7: 3rem;
  --fz-space-8: 5rem;
  --fz-text-sm: .875rem;
  --fz-text-base: 1rem;
  --fz-text-lg: 1.25rem;
  --fz-heading: clamp(2rem, 5vw, 4.5rem);
  --fz-leading: 1.6;
  --fz-radius: .75rem;
  --fz-radius-sm: .375rem;
  --fz-container: 76rem;
  --fz-reading: 68ch;
  --fz-z-header: 1000;
  --fz-z-overlay: 1100;
  --fz-duration: 150ms;
  --fz-easing: ease-out;
  --fz-bg: #f6f8fc;
  --fz-surface: #ffffff;
  --fz-muted: #eaf0f8;
  --fz-text: #17243b;
  --fz-secondary: #485872;
  --fz-border: #c4cedd;
  --fz-accent: #47c8ff;
  --fz-link: #34495e;
  --fz-accent-hover: #7be0ff;
  --fz-on-accent: #0c111a;
  --fz-focus: #34495e;
  --fz-shadow: 0 12px 32px rgb(23 36 59 / 8%);
  --fz-scheme: light;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-fz-theme="light"]) {
    --fz-bg: #0a0f18;
    --fz-surface: #0c111a;
    --fz-muted: #1b2433;
    --fz-text: #eaf0ff;
    --fz-secondary: #a9b7d1;
    --fz-border: #455674;
    --fz-accent: #47c8ff;
    --fz-link: #47c8ff;
    --fz-accent-hover: #7be0ff;
    --fz-on-accent: #0c111a;
    --fz-focus: #47c8ff;
    --fz-shadow: 0 12px 32px rgb(0 0 0 / 20%);
    --fz-scheme: dark;
  }
}

:root[data-fz-theme="dark"] {
  --fz-bg: #0a0f18;
  --fz-surface: #0c111a;
  --fz-muted: #1b2433;
  --fz-text: #eaf0ff;
  --fz-secondary: #a9b7d1;
  --fz-border: #455674;
  --fz-accent: #47c8ff;
    --fz-link: #47c8ff;
  --fz-accent-hover: #7be0ff;
  --fz-on-accent: #0c111a;
  --fz-focus: #47c8ff;
  --fz-shadow: 0 12px 32px rgb(0 0 0 / 20%);
  --fz-scheme: dark;
}

.fz-ui {
  font: var(--fz-text-base)/var(--fz-leading) var(--fz-font);
  color: var(--fz-text);
  color-scheme: var(--fz-scheme);
  user-select: text;
}
.fz-ui *, .fz-ui *::before, .fz-ui *::after { box-sizing: border-box; }
.fz-ui [hidden] { display: none !important; }
.fz-ui :focus-visible { outline: 3px solid var(--fz-focus) !important; outline-offset: 3px; }
.fz-ui a { color: var(--fz-link); text-underline-offset: .2em; }
.fz-ui a:hover { text-decoration: underline; }
.fz-ui :is(h1, h2, h3, p) { color: inherit; letter-spacing: normal; }
.fz-ui p { line-height: var(--fz-leading); }
.fz-container { width: min(var(--fz-container), calc(100% - 2 * var(--fz-space-5))); margin-inline: auto; }
.fz-section { padding-block: var(--fz-space-8); }
.fz-heading { max-width: 20ch; font-size: var(--fz-heading); line-height: 1.1; letter-spacing: -.04em !important; }
.fz-lead { max-width: var(--fz-reading); color: var(--fz-secondary) !important; font-size: var(--fz-text-lg); }
.fz-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); gap: var(--fz-space-5); }
.fz-card { padding: var(--fz-space-6); border: 1px solid var(--fz-border); border-radius: var(--fz-radius); background: var(--fz-surface); }
.fz-card > :first-child { margin-top: 0; }
.fz-card > :last-child { margin-bottom: 0; }
.fz-badge { display: inline-flex; padding: var(--fz-space-1) var(--fz-space-3); border-radius: var(--fz-radius-sm); background: var(--fz-muted); color: var(--fz-text); font-size: var(--fz-text-sm); }
.fz-ui .fz-button {
  display: inline-flex; justify-content: center; align-items: center; gap: var(--fz-space-2);
  min-height: 44px; padding: .625rem var(--fz-space-4); border: 1px solid transparent;
  border-radius: var(--fz-radius-sm); background: var(--fz-accent); color: var(--fz-on-accent);
  margin: 0; box-shadow: none; transform: none; text-transform: none; letter-spacing: normal;
  font: 600 var(--fz-text-sm)/1.4 var(--fz-font); text-decoration: none; cursor: pointer;
  transition: background-color var(--fz-duration) var(--fz-easing);
}
.fz-ui .fz-button:hover { background: var(--fz-accent-hover); text-decoration: none; }
.fz-ui .fz-button--secondary { background: var(--fz-surface); color: var(--fz-text); border-color: var(--fz-border) !important; }
.fz-ui .fz-button--secondary:hover { background: var(--fz-muted); }
.fz-ui .fz-button:disabled { opacity: .6; cursor: not-allowed; }
.fz-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--fz-space-3); }
.fz-field { display: grid; gap: var(--fz-space-2); }
.fz-field :is(input, textarea, select), .fz-select {
  width: 100%; min-height: 44px; padding: .625rem var(--fz-space-3); border: 1px solid var(--fz-border);
  border-radius: var(--fz-radius-sm); background: var(--fz-surface); color: var(--fz-text); font: inherit;
}
.fz-field small { color: var(--fz-secondary); }
.fz-accordion { padding: var(--fz-space-4); border-bottom: 1px solid var(--fz-border); }
.fz-accordion summary { cursor: pointer; font-weight: 600; min-height: 44px; align-content: center; }
.fz-breadcrumb ol { display: flex; flex-wrap: wrap; gap: var(--fz-space-2); list-style: none; padding: 0; font-size: var(--fz-text-sm); }
.fz-breadcrumb li + li::before { content: "/"; margin-right: var(--fz-space-2); color: var(--fz-secondary); }
.fz-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }

@media (prefers-reduced-motion: reduce) {
  .fz-ui *, .fz-ui *::before, .fz-ui *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media print {
  .fz-ui { --fz-text: #000; --fz-secondary: #333; --fz-surface: #fff; --fz-bg: #fff; --fz-accent: #000; color: #000; }
  .fz-card { box-shadow: none; break-inside: avoid; }
}

/* Shared footer: the legacy classes remain hooks for realtime navigation. */
.fz-footer.footer { display: block; padding: var(--fz-space-7) 0; background: var(--fz-bg); color: var(--fz-text); border-top: 1px solid var(--fz-border); box-shadow: none; user-select: text; }
.fz-footer__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); gap: var(--fz-space-6); }
.fz-footer h2 { margin: 0 0 var(--fz-space-3); font-size: var(--fz-text-base); color: var(--fz-text); }
.fz-footer .fz-footer__brand { color: var(--fz-text); font-size: 1.5rem; font-weight: 750; letter-spacing: -.04em; }
.fz-footer p { margin-block: var(--fz-space-2); font-size: var(--fz-text-sm); color: var(--fz-secondary); }
.fz-footer ul { list-style: none; margin: 0; padding: 0; }
.fz-footer a { display: inline-flex; align-items: center; min-height: 44px; margin: 0; color: var(--fz-secondary); overflow-wrap: anywhere; }
.fz-footer__identity > a { display: flex; }
.fz-under-footer.under-footer { display: block; padding: var(--fz-space-3) 0; background: var(--fz-bg); color: var(--fz-secondary); border-top: 1px solid var(--fz-border); box-shadow: none; }
.fz-under-footer__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--fz-space-4); font-size: var(--fz-text-sm); }
.fz-under-footer nav { display: flex; flex-wrap: wrap; gap: var(--fz-space-4); }
.fz-under-footer a { display: inline-flex; align-items: center; min-height: 44px; margin: 0; color: var(--fz-secondary); font-size: var(--fz-text-sm); }
@media print { .fz-footer.footer, .fz-under-footer.under-footer { display: none; } }
