/* variables.css — GhostStat design tokens (from style-guide.html), approved v8.
   Layers on Bootstrap 5 by overriding its CSS variables. Font: Open Sans (local). */
@font-face{font-family:'Open Sans';font-weight:300;font-display:swap;src:url('../assets/fonts/opensans-300.woff2') format('woff2')}
@font-face{font-family:'Open Sans';font-weight:400;font-display:swap;src:url('../assets/fonts/opensans-400.woff2') format('woff2')}
@font-face{font-family:'Open Sans';font-weight:600;font-display:swap;src:url('../assets/fonts/opensans-600.woff2') format('woff2')}
@font-face{font-family:'Open Sans';font-weight:700;font-display:swap;src:url('../assets/fonts/opensans-700.woff2') format('woff2')}

:root{
  /* palette */
  --accent:#1FA463; --accent-2:#178A52; --accent-soft:#E7F5EC;
  --bg:#F7F9FB; --card:#FFFFFF; --ink:#1A1D24; --ink-2:#3C4350; --muted:#8C95A1; --muted-2:#AAB2BD;
  --line:#E9EDF3; --line-2:#D0D4DA;
  --green:#2ECC71; --indigo:#3E2DBA; --blue:#2A6FE8; --cyan:#29C5E8; --yellow:#FFC83A; --coral:#FF6B6B; --violet:#6C4BE8;
  --pos:#1FA463; --neg:#E0533D;
  /* shadow (approved: chartcard --sh-1) */
  --sh-1:0 1px 2px rgba(16,24,40,.04),0 1px 3px rgba(16,24,40,.05);
  --sh-2:0 10px 34px rgba(16,24,40,.12);
  /* radius (approved: 6px cards) */
  --r-sm:4px; --r-card:6px; --r-md:10px; --r-lg:16px; --pill:999px;
  --font:'Open Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --topbar:58px; --sidebar:240px; --content-max:1340px;

  /* admin Style-editor overridable (server injects saved values) */
  --gs-accent:var(--accent); --gs-r-card:var(--r-card);
  --gs-sh-card:var(--sh-1); --gs-sh-card-h:0 2px 5px rgba(16,24,40,.10);

  /* aliases used by existing partials */
  --gs-primary:var(--accent); --gs-primary-hover:var(--accent-2); --gs-primary-tint:var(--accent-soft);
  --gs-ink:var(--ink); --gs-ink-2:var(--ink-2); --gs-ink-3:var(--muted);
  --gs-line:var(--line); --gs-surface:#fff; --gs-bg:var(--bg); --gs-error:var(--neg);

  /* Bootstrap 5 variable overrides */
  --bs-primary:var(--accent); --bs-primary-rgb:31,164,99;
  --bs-body-bg:var(--bg); --bs-body-color:var(--ink);
  --bs-body-font-family:var(--font); --bs-body-font-size:14px;
  --bs-border-color:var(--line); --bs-border-radius:var(--gs-r-card); --bs-border-radius-sm:var(--r-sm);
  --bs-link-color:var(--accent); --bs-link-hover-color:var(--accent-2);
  --bs-secondary-color:var(--muted);
}
