/* AirCards design tokens — Wallet minimal (docs/design-system.md §2–§5).
   Components consume the semantic --ac-* layer only. The two dark blocks must stay
   identical; scripts/test_design_tokens.mjs checks this and every contrast pair. */
:root{
  /* Primitives */
  --ac-white:#FFFFFF;
  --ac-gray-25:#FAFAFB;--ac-gray-50:#F6F6F8;--ac-gray-100:#EEEEF1;--ac-gray-200:#E8E8EC;--ac-gray-300:#D4D4DA;
  --ac-gray-400:#A1A1AA;--ac-gray-450:#8E8E98;--ac-gray-500:#71717A;--ac-gray-550:#63636E;--ac-gray-600:#62626C;
  --ac-gray-700:#3F3F46;--ac-gray-750:#2A2A2E;--ac-gray-800:#26262B;--ac-gray-850:#1C1C20;--ac-gray-900:#151518;
  --ac-gray-950:#0A0A0B;--ac-gray-50-dark:#FAFAFA;--ac-gray-150:#E4E4E7;
  --ac-blue-50:#EEF3FF;--ac-blue-300:#7AA2FF;--ac-blue-200:#A0BEFF;--ac-blue-600:#2A5FE6;--ac-blue-700:#1F4FCC;--ac-blue-950:#14203A;
  --ac-rose-400:#FB7185;--ac-rose-600:#E11D48;
  --ac-green-400:#4ADE80;--ac-green-700:#15803D;--ac-green-50:#ECFDF3;--ac-green-950:#0F2A1A;
  --ac-amber-400:#FACC15;--ac-amber-700:#A16207;--ac-amber-50:#FEF7E6;--ac-amber-950:#2A230B;
  --ac-red-400:#F87171;--ac-red-700:#C81E1E;--ac-red-50:#FEF1F1;--ac-red-950:#2E1212;

  /* Semantic colors — light */
  --ac-bg:var(--ac-white);
  --ac-surface:var(--ac-gray-50);
  --ac-surface-raised:var(--ac-white);
  --ac-fg:var(--ac-gray-950);
  --ac-fg-muted:var(--ac-gray-600);
  --ac-fg-subtle:var(--ac-gray-450);
  --ac-border:var(--ac-gray-200);
  --ac-border-strong:var(--ac-gray-300);
  --ac-border-input:var(--ac-gray-450);
  --ac-primary:var(--ac-gray-950);
  --ac-primary-hover:var(--ac-gray-750);
  --ac-primary-fg:var(--ac-white);
  --ac-secondary:var(--ac-gray-50);
  --ac-secondary-hover:var(--ac-gray-100);
  --ac-accent:var(--ac-blue-600);
  --ac-accent-hover:var(--ac-blue-700);
  --ac-accent-soft:var(--ac-blue-50);
  --ac-focus:var(--ac-accent);
  --ac-like:var(--ac-rose-600);
  --ac-success:var(--ac-green-700);--ac-success-bg:var(--ac-green-50);
  --ac-warning:var(--ac-amber-700);--ac-warning-bg:var(--ac-amber-50);
  --ac-danger:var(--ac-red-700);--ac-danger-bg:var(--ac-red-50);--ac-danger-fg:var(--ac-white);
  --ac-overlay:rgb(10 10 11 / .48);
  --ac-header-bg:color-mix(in srgb,var(--ac-bg) 86%,transparent);
  --ac-shadow-sm:0 1px 2px rgb(10 10 11 / .06);
  --ac-shadow-md:0 8px 24px -8px rgb(10 10 11 / .18);
  --ac-shadow-lg:0 24px 48px -16px rgb(10 10 11 / .28);
  --ac-theme-color:#FFFFFF;
  color-scheme:light;

  /* Support page local theme (approved warm-white/amber, docs/donation.md); body content only. */
  --ac-support-warm:#FCF3E3;--ac-support-gold:#785126;--ac-support-line:#E7D5B5;--ac-support-button:#70502D;--ac-support-on:#FFFFFF;--ac-support-heart:#D64250;

  /* Typography */
  --ac-font-sans:"Inter Variable","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans","Noto Sans CJK SC","Microsoft YaHei","Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;
  --ac-font-mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --ac-text-xs:12px;--ac-leading-xs:16px;
  --ac-text-sm:13px;--ac-leading-sm:18px;
  --ac-text-base-sm:14px;--ac-leading-base-sm:20px;
  --ac-text-base:16px;--ac-leading-base:24px;
  --ac-text-lg:18px;--ac-leading-lg:28px;
  --ac-text-xl:20px;--ac-leading-xl:28px;
  --ac-text-2xl:24px;--ac-leading-2xl:32px;
  --ac-text-3xl:30px;--ac-leading-3xl:36px;
  --ac-text-4xl:36px;--ac-leading-4xl:40px;
  --ac-text-5xl:48px;--ac-leading-5xl:52px;
  --ac-text-6xl:60px;--ac-leading-6xl:62px;
  --ac-text-page-title:clamp(30px,3.6vw,48px);
  --ac-text-hero:clamp(36px,5vw,56px);
  --ac-tracking-tight:-0.03em;--ac-tracking-snug:-0.02em;--ac-tracking-label:.06em;
  --ac-weight-regular:400;--ac-weight-medium:500;--ac-weight-semibold:600;

  /* Space (4px grid) */
  --ac-space-0_5:2px;--ac-space-1:4px;--ac-space-2:8px;--ac-space-3:12px;--ac-space-4:16px;--ac-space-5:20px;
  --ac-space-6:24px;--ac-space-8:32px;--ac-space-10:40px;--ac-space-12:48px;--ac-space-16:64px;--ac-space-20:80px;--ac-space-24:96px;

  /* Layout */
  --ac-container:1280px;--ac-container-wide:1440px;--ac-container-prose:720px;
  --ac-gutter:clamp(16px,4vw,48px);
  --ac-header-height:64px;
  --ac-control-sm:36px;--ac-control-md:44px;--ac-control-lg:48px;

  /* Shape */
  --ac-radius-xs:4px;--ac-radius-sm:6px;--ac-radius-md:8px;--ac-radius-lg:10px;--ac-radius-xl:14px;--ac-radius-full:9999px;
  --ac-radius-card:3.714953271% / calc(3.714953271% * var(--card-display-ratio,1.585139319));

  /* Layers */
  --ac-z-base:0;--ac-z-sticky:20;--ac-z-dropdown:50;--ac-z-overlay:80;--ac-z-modal:90;--ac-z-toast:100;--ac-z-flight:110;

  /* Motion */
  --ac-duration-fast:150ms;--ac-duration-base:220ms;--ac-duration-slow:480ms;
  --ac-ease-standard:cubic-bezier(.2,0,0,1);--ac-ease-emphasized:cubic-bezier(.22,.8,.22,1);
}

/* Semantic colors — dark (explicit choice). Keep identical to the media block below. */
:root[data-theme="dark"]{
  --ac-bg:var(--ac-gray-950);
  --ac-surface:var(--ac-gray-900);
  --ac-surface-raised:var(--ac-gray-850);
  --ac-fg:var(--ac-gray-50-dark);
  --ac-fg-muted:var(--ac-gray-400);
  --ac-fg-subtle:var(--ac-gray-500);
  --ac-border:var(--ac-gray-800);
  --ac-border-strong:var(--ac-gray-700);
  --ac-border-input:var(--ac-gray-550);
  --ac-primary:var(--ac-gray-50-dark);
  --ac-primary-hover:var(--ac-gray-150);
  --ac-primary-fg:var(--ac-gray-950);
  --ac-secondary:var(--ac-gray-850);
  --ac-secondary-hover:var(--ac-gray-800);
  --ac-accent:var(--ac-blue-300);
  --ac-accent-hover:var(--ac-blue-200);
  --ac-accent-soft:var(--ac-blue-950);
  --ac-like:var(--ac-rose-400);
  --ac-success:var(--ac-green-400);--ac-success-bg:var(--ac-green-950);
  --ac-warning:var(--ac-amber-400);--ac-warning-bg:var(--ac-amber-950);
  --ac-danger:var(--ac-red-400);--ac-danger-bg:var(--ac-red-950);--ac-danger-fg:var(--ac-gray-950);
  --ac-overlay:rgb(0 0 0 / .64);
  --ac-shadow-sm:0 1px 2px rgb(0 0 0 / .5);
  --ac-shadow-md:0 8px 24px -8px rgb(0 0 0 / .6);
  --ac-shadow-lg:0 24px 48px -16px rgb(0 0 0 / .7);
  --ac-theme-color:#0A0A0B;
  color-scheme:dark;
  --ac-support-warm:#2C251D;--ac-support-gold:#EBC998;--ac-support-line:#66513A;--ac-support-button:#EBC998;--ac-support-on:#2C251D;--ac-support-heart:#FF7A85;
}
/* Semantic colors — dark (system preference, no explicit light choice). */
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --ac-bg:var(--ac-gray-950);
  --ac-surface:var(--ac-gray-900);
  --ac-surface-raised:var(--ac-gray-850);
  --ac-fg:var(--ac-gray-50-dark);
  --ac-fg-muted:var(--ac-gray-400);
  --ac-fg-subtle:var(--ac-gray-500);
  --ac-border:var(--ac-gray-800);
  --ac-border-strong:var(--ac-gray-700);
  --ac-border-input:var(--ac-gray-550);
  --ac-primary:var(--ac-gray-50-dark);
  --ac-primary-hover:var(--ac-gray-150);
  --ac-primary-fg:var(--ac-gray-950);
  --ac-secondary:var(--ac-gray-850);
  --ac-secondary-hover:var(--ac-gray-800);
  --ac-accent:var(--ac-blue-300);
  --ac-accent-hover:var(--ac-blue-200);
  --ac-accent-soft:var(--ac-blue-950);
  --ac-like:var(--ac-rose-400);
  --ac-success:var(--ac-green-400);--ac-success-bg:var(--ac-green-950);
  --ac-warning:var(--ac-amber-400);--ac-warning-bg:var(--ac-amber-950);
  --ac-danger:var(--ac-red-400);--ac-danger-bg:var(--ac-red-950);--ac-danger-fg:var(--ac-gray-950);
  --ac-overlay:rgb(0 0 0 / .64);
  --ac-shadow-sm:0 1px 2px rgb(0 0 0 / .5);
  --ac-shadow-md:0 8px 24px -8px rgb(0 0 0 / .6);
  --ac-shadow-lg:0 24px 48px -16px rgb(0 0 0 / .7);
  --ac-theme-color:#0A0A0B;
  color-scheme:dark;
  --ac-support-warm:#2C251D;--ac-support-gold:#EBC998;--ac-support-line:#66513A;--ac-support-button:#EBC998;--ac-support-on:#2C251D;--ac-support-heart:#FF7A85;
}}
