/* Token desain terpadu Snouvier (Kaca Salju, dua tema).
   BERKAS HASIL GENERATOR, JANGAN DIEDIT TANGAN. Sumber nilai:
   lib/core/theme/gf_tokens.dart (GfTokens) lewat
   lib/core/theme/gf_tokens_css.dart. Tulis ulang site/gf-tokens.css dengan:
     UPDATE_GF_CSS=1 flutter test test/core/theme/gf_css_tokens_test.dart
   Tes yang sama gagal bila isi berkas berbeda dari GfTokens.
   Dua tema: terang (langit pagi bersalju) di :root, gelap (senja bersalju) lewat
   prefers-color-scheme atau [data-theme="dark"]. Font: Figtree (OFL,
   fonts/OFL.txt), variable WOFF2 subset Latin yang di-host sendiri. */

@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 300 900;
  font-display: swap;
  src: url('fonts/figtree-latin-wght.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2190-2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  color-scheme: light;
  --gf-font-sans: 'Figtree', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;

  /* Warna netral */
  --gf-bg: #EEF3F9;
  --gf-surface: #FFFFFF;
  --gf-surface-2: #DFEAF5;
  --gf-border: #BCCBDD;
  --gf-border-input: #6E8299;
  --gf-text: #1C2E44;
  --gf-text-2: #46596E;
  --gf-text-3: #56697E; /* keterangan; lulus 4,5:1 di bg, surface, surface-2 */
  --gf-text-disabled: #9AA9BA; /* hanya teks kontrol mati */
  --gf-inverse: #1C2E44;
  --gf-on-inverse: #FFFFFF;

  /* Merek dan aksi */
  --gf-ink: #2F5D8A; /* tombol utama (pil) */
  --gf-on-ink: #FFFFFF;
  --gf-primary: #2B67A3;
  --gf-on-primary: #FFFFFF;
  --gf-primary-pressed: #22538A;
  --gf-primary-soft: #DAE7F5;
  --gf-on-primary-soft: #1F4F80;
  --gf-brand-logo: #4A8ACB; /* logo, grafik, ilustrasi; bukan teks kecil */
  --gf-highlight: #4FC3E0;
  --gf-on-highlight: #0F2A44;
  --gf-highlight-soft: #D8F1F8;
  --gf-on-highlight-soft: #0B5A73;

  /* Status */
  --gf-success: #1F7A50;
  --gf-on-success: #FFFFFF;
  --gf-success-soft: #DCF0E7;
  --gf-on-success-soft: #145C3A;
  --gf-warning: #8F5A08;
  --gf-on-warning: #FFFFFF;
  --gf-warning-soft: #FBEBCB;
  --gf-on-warning-soft: #7A4700;
  --gf-danger: #B8403A;
  --gf-on-danger: #FFFFFF;
  --gf-danger-text: #A6352E; /* teks merah ukuran kecil */
  --gf-danger-soft: #F7E0DE;
  --gf-on-danger-soft: #8C2A22;
  --gf-info: #46596E;
  --gf-info-soft: #DFEAF5;
  --gf-on-info-soft: #1C2E44;

  /* Navigasi */
  --gf-nav-bg: #F7F9FC;
  --gf-nav-text: #1C2E44;
  --gf-nav-icon: #56697E;
  --gf-nav-active: #2B67A3;
  --gf-nav-active-bg: #DAE7F5;

  /* Ubin menu tanpa foto */
  --gf-tile-warm: #D3E4F5;
  --gf-tile-sand: #DCE3EF;
  --gf-tile-rose: #E2DDF3;
  --gf-tile-sage: #D5ECEA;
  --gf-tile-ink: #2A4A6E;

  /* Langit latar, kaca beku, dan kartu sorotan */
  --gf-sky-top: #EEF3F9;
  --gf-sky-bottom: #EEF3F9;
  --gf-sky-glow-ice: #D6E8FA;
  --gf-sky-glow-aurora: #E4DEF7;
  --gf-sky-glow-mint: #D5EEEE;
  --gf-glass: #FFFFFFF2;
  --gf-glass-nav: #FFFFFF9E;
  --gf-glass-border: #C6D4E4F2;
  --gf-hero-start: #2E5A88;
  --gf-hero-end: #3C6A99;
  --gf-on-hero: #FFFFFF;
  --gf-hero-accent: #D6EBFC;
  --gf-shadow: #1C2E44;
  --gf-focus-ring: #2B67A3;

  /* Spasi (kelipatan 4) */
  --gf-space-4: 4px;
  --gf-space-8: 8px;
  --gf-space-12: 12px;
  --gf-space-16: 16px;
  --gf-space-24: 24px;
  --gf-space-32: 32px;
  --gf-space-48: 48px;

  /* Radius dan garis */
  --gf-radius-sm: 10px;
  --gf-radius-md: 16px;
  --gf-radius-lg: 20px;
  --gf-radius-xl: 24px;
  --gf-radius-full: 999px;
  --gf-stroke-card: 1px;
  --gf-stroke-input: 1.5px;
  --gf-stroke-focus: 2px;

  /* Tipografi: ukuran / tinggi baris / tebal */
  --gf-text-hero-size: 32px;
  --gf-text-hero-line: 36px;
  --gf-text-hero-weight: 800;
  --gf-text-display-size: 36px;
  --gf-text-display-line: 40px;
  --gf-text-display-weight: 800;
  --gf-text-h1-size: 24px;
  --gf-text-h1-line: 30px;
  --gf-text-h1-weight: 800;
  --gf-text-h2-size: 20px;
  --gf-text-h2-line: 26px;
  --gf-text-h2-weight: 700;
  --gf-text-h3-size: 17px;
  --gf-text-h3-line: 24px;
  --gf-text-h3-weight: 700;
  --gf-text-body-lg-size: 16px;
  --gf-text-body-lg-line: 24px;
  --gf-text-body-lg-weight: 500;
  --gf-text-body-size: 14px;
  --gf-text-body-line: 20px;
  --gf-text-body-weight: 500;
  --gf-text-label-size: 14px;
  --gf-text-label-line: 20px;
  --gf-text-label-weight: 700;
  --gf-text-caption-size: 12px;
  --gf-text-caption-line: 16px;
  --gf-text-caption-weight: 600;

  /* Gerak */
  --gf-motion-fast: 120ms;
  --gf-motion-medium: 200ms;
  --gf-motion-slow: 240ms;

  /* Lapisan */
  --gf-z-sticky: 10;
  --gf-z-side-panel: 20;
  --gf-z-sheet: 40;
  --gf-z-dialog: 60;
  --gf-z-system-banner: 80;
  --gf-z-toast: 100;
}

/* Tema gelap (senja bersalju): ikut perangkat, kecuali dipaksa terang. */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --gf-bg: #161F2B;
    --gf-surface: #1F2936;
    --gf-surface-2: #273242;
    --gf-border: #2F3B4B;
    --gf-border-input: #6A7E94;
    --gf-text: #E2E9F1;
    --gf-text-2: #AEBCCB;
    --gf-text-3: #93A3B4;
    --gf-text-disabled: #5C6B7C;
    --gf-inverse: #E2E9F1;
    --gf-on-inverse: #0F1A27;
    --gf-ink: #6FA2D3;
    --gf-on-ink: #0F1A27;
    --gf-primary: #8DBCE6;
    --gf-on-primary: #0F1A27;
    --gf-primary-pressed: #A6CCEE;
    --gf-primary-soft: #233A52;
    --gf-on-primary-soft: #C3DDF4;
    --gf-brand-logo: #8DBCE6;
    --gf-highlight: #6FD0EA;
    --gf-on-highlight: #0F1A27;
    --gf-highlight-soft: #1F3A47;
    --gf-on-highlight-soft: #BDEBF7;
    --gf-success: #67C595;
    --gf-on-success: #0F1A27;
    --gf-success-soft: #1E3A33;
    --gf-on-success-soft: #93D6B3;
    --gf-warning: #E3B867;
    --gf-on-warning: #0F1A27;
    --gf-warning-soft: #3A3426;
    --gf-on-warning-soft: #EBCB8C;
    --gf-danger: #E8857B;
    --gf-on-danger: #0F1A27;
    --gf-danger-text: #EF9A90;
    --gf-danger-soft: #3B2A2F;
    --gf-on-danger-soft: #F2B8B0;
    --gf-info: #AEBCCB;
    --gf-info-soft: #273242;
    --gf-on-info-soft: #E2E9F1;
    --gf-nav-bg: #1C2532;
    --gf-nav-text: #E2E9F1;
    --gf-nav-icon: #9FAEBF;
    --gf-nav-active: #CFE4F7;
    --gf-nav-active-bg: #2A4058;
    --gf-tile-warm: #23344A;
    --gf-tile-sand: #263247;
    --gf-tile-rose: #2D2E48;
    --gf-tile-sage: #20383F;
    --gf-tile-ink: #CFE0F0;
    --gf-sky-top: #1A2433;
    --gf-sky-bottom: #161F2B;
    --gf-sky-glow-ice: #6E9BD738;
    --gf-sky-glow-aurora: #9680D724;
    --gf-sky-glow-mint: #5AB9C31A;
    --gf-glass: #FFFFFF0D;
    --gf-glass-nav: #FFFFFF0A;
    --gf-glass-border: #FFFFFF17;
    --gf-hero-start: #2E4560;
    --gf-hero-end: #2F3550;
    --gf-on-hero: #E2E9F1;
    --gf-hero-accent: #B5D6F2;
    --gf-shadow: #03060B;
    --gf-focus-ring: #8DBCE6;
  }
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --gf-bg: #161F2B;
  --gf-surface: #1F2936;
  --gf-surface-2: #273242;
  --gf-border: #2F3B4B;
  --gf-border-input: #6A7E94;
  --gf-text: #E2E9F1;
  --gf-text-2: #AEBCCB;
  --gf-text-3: #93A3B4;
  --gf-text-disabled: #5C6B7C;
  --gf-inverse: #E2E9F1;
  --gf-on-inverse: #0F1A27;
  --gf-ink: #6FA2D3;
  --gf-on-ink: #0F1A27;
  --gf-primary: #8DBCE6;
  --gf-on-primary: #0F1A27;
  --gf-primary-pressed: #A6CCEE;
  --gf-primary-soft: #233A52;
  --gf-on-primary-soft: #C3DDF4;
  --gf-brand-logo: #8DBCE6;
  --gf-highlight: #6FD0EA;
  --gf-on-highlight: #0F1A27;
  --gf-highlight-soft: #1F3A47;
  --gf-on-highlight-soft: #BDEBF7;
  --gf-success: #67C595;
  --gf-on-success: #0F1A27;
  --gf-success-soft: #1E3A33;
  --gf-on-success-soft: #93D6B3;
  --gf-warning: #E3B867;
  --gf-on-warning: #0F1A27;
  --gf-warning-soft: #3A3426;
  --gf-on-warning-soft: #EBCB8C;
  --gf-danger: #E8857B;
  --gf-on-danger: #0F1A27;
  --gf-danger-text: #EF9A90;
  --gf-danger-soft: #3B2A2F;
  --gf-on-danger-soft: #F2B8B0;
  --gf-info: #AEBCCB;
  --gf-info-soft: #273242;
  --gf-on-info-soft: #E2E9F1;
  --gf-nav-bg: #1C2532;
  --gf-nav-text: #E2E9F1;
  --gf-nav-icon: #9FAEBF;
  --gf-nav-active: #CFE4F7;
  --gf-nav-active-bg: #2A4058;
  --gf-tile-warm: #23344A;
  --gf-tile-sand: #263247;
  --gf-tile-rose: #2D2E48;
  --gf-tile-sage: #20383F;
  --gf-tile-ink: #CFE0F0;
  --gf-sky-top: #1A2433;
  --gf-sky-bottom: #161F2B;
  --gf-sky-glow-ice: #6E9BD738;
  --gf-sky-glow-aurora: #9680D724;
  --gf-sky-glow-mint: #5AB9C31A;
  --gf-glass: #FFFFFF0D;
  --gf-glass-nav: #FFFFFF0A;
  --gf-glass-border: #FFFFFF17;
  --gf-hero-start: #2E4560;
  --gf-hero-end: #2F3550;
  --gf-on-hero: #E2E9F1;
  --gf-hero-accent: #B5D6F2;
  --gf-shadow: #03060B;
  --gf-focus-ring: #8DBCE6;
}

/* Kurangi animasi: semua transisi 0 ms. */
@media (prefers-reduced-motion: reduce) {
  :root {
    --gf-motion-fast: 0ms;
    --gf-motion-medium: 0ms;
    --gf-motion-slow: 0ms;
  }
}

/* Angka uang, jumlah, jam, dan nomor pesanan: tabular figures. */
.gf-num {
  font-variant-numeric: tabular-nums;
}
