/* Nunito (display) + Nunito Sans (UI/body) + DM Mono (figures, IDs). Google Fonts substitutes — see readme. */
@import url("https://fonts.googleapis.com/css2?family=Nunito:wght@500;600;700;800;900&family=Nunito+Sans:opsz,wght@6..12,400;6..12,600;6..12,700;6..12,800&family=DM+Mono:wght@400;500&display=swap");

/* colors */
:root{
/* Brand blue — core */
--av-blue-50:#eaf6fc;--av-blue-100:#cfe9f7;--av-blue-200:#9fd3ef;--av-blue-300:#5fb6e0;--av-blue-400:#2398d0;--av-blue-500:#0083c0;--av-blue-600:#006fa4;--av-blue-700:#005a86;--av-blue-800:#0a4366;
/* Navy — from the wordmark & dark tile */
--av-navy-500:#4a5f82;--av-navy-600:#2c4468;--av-navy-700:#1d3050;--av-navy-800:#142a47;--av-navy-900:#0e2037;
--av-sky:#cfe6f7;
/* Complementary accents */
--av-cyan-100:#d6f5fc;--av-cyan-400:#2ec5e8;--av-cyan-600:#0e9bbd;
--av-mint-100:#d7f5ea;--av-mint-500:#14b88a;--av-mint-700:#0b7a5c;
--av-sun-100:#fff1d1;--av-sun-400:#ffbf47;--av-sun-700:#8f5a00;
--av-coral-100:#fde3e2;--av-coral-500:#f25f5c;--av-coral-700:#b3322f;
/* Cool neutrals */
--av-white:#ffffff;--av-gray-25:#f8fbfd;--av-gray-50:#f2f6f9;--av-gray-100:#e6edf3;--av-gray-200:#d3dde6;--av-gray-300:#b4c3d0;--av-gray-400:#8a9bab;--av-gray-500:#64768a;--av-gray-600:#4a5b6e;--av-gray-700:#34445a;

/* Semantic — text */
--text-strong:var(--av-navy-900);--text-body:var(--av-gray-700);--text-muted:var(--av-gray-500);--text-subtle:var(--av-gray-400);--text-inverse:var(--av-white);--text-inverse-muted:var(--av-sky);--text-brand:var(--av-blue-500);--text-link:var(--av-blue-600);
/* Semantic — surfaces */
--surface-page:#f5f9fc;--surface-card:var(--av-white);--surface-sunken:var(--av-gray-50);--surface-hover:var(--av-blue-50);--surface-selected:var(--av-blue-50);--surface-inverse:var(--av-navy-900);--surface-inverse-raised:var(--av-navy-800);--surface-brand:var(--av-blue-500);--surface-overlay:rgba(14,32,55,.48);
/* Semantic — borders */
--border-subtle:var(--av-gray-100);--border-default:var(--av-gray-200);--border-strong:var(--av-gray-300);--border-focus:var(--av-blue-500);--border-inverse:rgba(207,230,247,.16);
/* Semantic — actions */
--action-primary:var(--av-blue-500);--action-primary-hover:var(--av-blue-600);--action-primary-press:var(--av-blue-700);--action-secondary:var(--av-navy-900);--action-secondary-hover:var(--av-navy-700);
/* Semantic — vouch status */
--status-matched:var(--av-mint-500);--status-matched-bg:var(--av-mint-100);--status-matched-fg:var(--av-mint-700);
--status-review:var(--av-sun-400);--status-review-bg:var(--av-sun-100);--status-review-fg:var(--av-sun-700);
--status-mismatch:var(--av-coral-500);--status-mismatch-bg:var(--av-coral-100);--status-mismatch-fg:var(--av-coral-700);
--status-pending:var(--av-blue-500);--status-pending-bg:var(--av-blue-50);--status-pending-fg:var(--av-blue-700);
--status-neutral-bg:var(--av-gray-100);--status-neutral-fg:var(--av-gray-600);
/* Gradients */
--gradient-brand:linear-gradient(135deg,#0083c0 0%,#2ec5e8 100%);
--gradient-fresh:linear-gradient(135deg,#0083c0 0%,#14b88a 100%);
--gradient-deep:linear-gradient(155deg,#0e2037 0%,#0a4366 55%,#0083c0 100%);
--gradient-sky:linear-gradient(180deg,#eaf6fc 0%,#f5f9fc 60%,#ffffff 100%);
--gradient-glow:radial-gradient(60% 80% at 85% 0%,rgba(46,197,232,.28) 0%,rgba(46,197,232,0) 70%),radial-gradient(50% 70% at 0% 100%,rgba(20,184,138,.18) 0%,rgba(20,184,138,0) 70%);
}

/* typography */
:root{
--font-display:"Nunito",ui-rounded,"SF Pro Rounded",system-ui,sans-serif;
--font-body:"Nunito Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
--font-mono:"DM Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;
--weight-regular:400;--weight-semibold:600;--weight-bold:700;--weight-extrabold:800;--weight-black:900;
--text-2xs:11px;--text-xs:12px;--text-sm:13px;--text-base:15px;--text-md:17px;--text-lg:20px;--text-xl:24px;--text-2xl:30px;--text-3xl:38px;--text-4xl:48px;--text-5xl:64px;
--leading-tight:1.1;--leading-snug:1.25;--leading-normal:1.5;--leading-relaxed:1.65;
--tracking-tight:-0.02em;--tracking-snug:-0.01em;--tracking-normal:0;--tracking-wide:0.06em;
/* Semantic type roles */
--type-display:var(--weight-extrabold) var(--text-5xl)/var(--leading-tight) var(--font-display);
--type-h1:var(--weight-extrabold) var(--text-3xl)/var(--leading-tight) var(--font-display);
--type-h2:var(--weight-bold) var(--text-2xl)/var(--leading-snug) var(--font-display);
--type-h3:var(--weight-bold) var(--text-lg)/var(--leading-snug) var(--font-display);
--type-body:var(--weight-regular) var(--text-base)/var(--leading-normal) var(--font-body);
--type-body-sm:var(--weight-regular) var(--text-sm)/var(--leading-normal) var(--font-body);
--type-label:var(--weight-bold) var(--text-sm)/var(--leading-snug) var(--font-body);
--type-overline:var(--weight-extrabold) var(--text-2xs)/var(--leading-snug) var(--font-body);
--type-figure:var(--weight-regular) var(--text-base)/var(--leading-snug) var(--font-mono);
}

/* spacing */
:root{
--space-0:0;--space-0-5:2px;--space-1:4px;--space-1-5:6px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;
--radius-xs:6px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-2xl:32px;--radius-pill:999px;
--control-sm:32px;--control-md:40px;--control-lg:48px;
--sidebar-width:248px;--topbar-height:64px;--content-max:1200px;
}

/* effects */
:root{
--shadow-xs:0 1px 2px rgba(14,32,55,.06);
--shadow-sm:0 1px 2px rgba(14,32,55,.05),0 2px 6px rgba(14,32,55,.06);
--shadow-md:0 2px 4px rgba(14,32,55,.04),0 8px 20px rgba(14,32,55,.08);
--shadow-lg:0 4px 8px rgba(14,32,55,.05),0 20px 44px rgba(14,32,55,.12);
--shadow-brand:0 6px 18px rgba(0,131,192,.32);
--shadow-focus:0 0 0 3px rgba(0,131,192,.25);
--shadow-inset:inset 0 1px 2px rgba(14,32,55,.06);
--blur-glass:saturate(160%) blur(14px);
--surface-glass:rgba(255,255,255,.72);
--ease-out:cubic-bezier(.22,1,.36,1);--ease-in-out:cubic-bezier(.65,0,.35,1);--ease-spring:cubic-bezier(.34,1.56,.64,1);
--dur-fast:120ms;--dur-base:200ms;--dur-slow:320ms;
}

/* base */
*,*::before,*::after{box-sizing:border-box}
body{margin:0;font:var(--type-body);color:var(--text-body);background:var(--surface-page);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{color:var(--text-strong);font-family:var(--font-display);margin:0;letter-spacing:var(--tracking-snug)}
a{color:var(--text-link);text-decoration:none;font-weight:var(--weight-semibold)}a:hover{color:var(--av-blue-700);text-decoration:underline}
::selection{background:var(--av-blue-100);color:var(--text-strong)}
@keyframes av-spin{to{transform:rotate(360deg)}}
@keyframes av-pop{0%{transform:scale(.6);opacity:0}70%{transform:scale(1.08);opacity:1}100%{transform:scale(1)}}
@keyframes av-rise{from{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}

