/* Copied from /workspace/work/munilink-brand-kit/tokens/tokens.css (generated from tokens.json). Only the @font-face src lines differ: self-hosted woff2 subsets of the kit fonts (Inter wght 400-600, Outfit wght 500-700, Latin). */
@font-face { font-family: "Outfit"; src: url("assets/fonts/Outfit-sub.woff2") format("woff2"); font-weight: 500 700; font-display: swap; }
@font-face { font-family: "Inter"; src: url("assets/fonts/Inter-sub.woff2") format("woff2"); font-weight: 400 600; font-display: swap; }
/* MuniLink brand tokens v1. Prefix --ml-. */
:root {
  --ml-slate-950: #020617;
  --ml-slate-900: #0f172a;
  --ml-slate-850: #131d31;
  --ml-panel-from: #101b30;
  --ml-panel-to: #0b1324;
  --ml-slate-800: #1e293b;
  --ml-line: #263449;
  --ml-slate-700: #334155;
  --ml-slate-500: #64748b;
  --ml-slate-400: #94a3b8;
  --ml-slate-200: #e2e8f0;
  --ml-slate-50: #f8fafc;
  --ml-cyan-400: #22d3ee;
  --ml-cyan-300: #67e8f9;
  --ml-cyan-500: #06b6d4;
  --ml-cyan-700: #0e7490;
  --ml-cyan-900: #164e63;
  --ml-cyan-950: #083344;
  --ml-cyan-edge: #155e75;
  --ml-cyan-50: #cffafe;
  --ml-red-700: #b91c1c;
  --ml-red-300: #fca5a5;
  --ml-amber-400: #fbbf24;
  --ml-green-400: #4ade80;
  --ml-white: #ffffff;
  --ml-slate-300: #cbd5e1;
  --ml-slate-600: #475569;
  /* semantic aliases */
  --ml-ground: var(--ml-slate-950);
  --ml-surface: var(--ml-slate-900);
  --ml-surface-2: var(--ml-slate-850);
  --ml-rule: var(--ml-slate-800);
  --ml-hairline: var(--ml-line);
  --ml-border: var(--ml-slate-700);
  --ml-border-strong: var(--ml-slate-500);
  --ml-text-muted: var(--ml-slate-400);
  --ml-text: var(--ml-slate-200);
  --ml-text-strong: var(--ml-slate-50);
  --ml-accent: var(--ml-cyan-400);
  --ml-accent-light: var(--ml-cyan-700);
  --ml-sample: var(--ml-red-700);
  --ml-finding: var(--ml-red-300);
  --ml-warn: var(--ml-amber-400);
  --ml-pass: var(--ml-green-400);
  --ml-font-display: Outfit, Inter, ui-sans-serif, system-ui, sans-serif;
  --ml-font-text: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --ml-tracking-display: -0.02em;
  --ml-leading-display: 1.05;
  --ml-leading-text: 1.4;
  --ml-space: 8px;
  --ml-radius-sm: 8px;
  --ml-radius-md: 14px;
  --ml-radius-lg: 18px;
  --ml-radius-max: 20px;
  --ml-radius-pill: 999px;
  --ml-glow: radial-gradient(circle, rgba(34,211,238,0.16) 0%, rgba(34,211,238,0.05) 38%, rgba(2,6,23,0) 68%);
  --ml-grid: linear-gradient(rgba(148,163,184,0.06) 1px, transparent 1px), linear-gradient(90deg, rgba(148,163,184,0.06) 1px, transparent 1px);
}
/* Shared brand primitives */
.ml-logo { mix-blend-mode: lighten; -webkit-mask-image: radial-gradient(circle at 50% 46%, #000 52%, transparent 71%); mask-image: radial-gradient(circle at 50% 46%, #000 52%, transparent 71%); }
.ml-mark { mix-blend-mode: lighten; -webkit-mask-image: radial-gradient(circle, #000 55%, transparent 74%); mask-image: radial-gradient(circle, #000 55%, transparent 74%); }
.ml-sample-band { background: var(--ml-red-700); color: var(--ml-white); font-family: var(--ml-font-text); font-weight: 600; text-align: center; }
.ml-accent { color: var(--ml-accent); }
.ml-num { font-variant-numeric: tabular-nums; }
