/* testauto/design/tokens.css — SATU-SATUNYA rumah token desain testauto.
   Dua konsumen: (1) web (`/design/tokens.css`, di-link base.html/login.html)
   dan (2) `testauto/report_html.py` (di-INLINE saat generate — report wajib tetap
   file mandiri yang bisa di-share/dibuka file://).
   JANGAN definisikan token di style.css atau di _CSS report: dua salinan =
   drift (pelajaran SSOT, CLAUDE.md). Warna verdict/lifecycle SELALU dari
   data, tak pernah dihitung CSS (north-star Pilar B).

   REDESIGN 2026-07-18 (claude design handoff): palet digeser dari
   amber-on-slate ke navy "instrumen presisi" (ink-navy di kertas hangat).
   NAMA token dipertahankan supaya style.css/report_html.py/guard tak berubah;
   hanya NILAI yang bergeser. Token additif baru (--surface-2, --border-strong,
   --text-faint, --accent-soft, --shadow-sm, --font-heading, --log-dim) dipakai
   layar redesign. Sumbu verdict tetap: PASS hijau, FAIL merah — sisanya
   di-render tipografis/mono di template, bukan lewat warna baru. */

:root {
  color-scheme: light;
  /* permukaan — kertas hangat */
  --bg: #efece4;
  --bg-raised: #ffffff;
  --bg-inset: #ece8df;
  --surface-2: #f6f3ec;          /* additif: hover baris/panel halus */
  --border: #dcd7cc;
  --border-strong: #c4bdaf;      /* additif: garis grid tabel */
  /* tinta */
  --text: #14203a;
  --text-dim: #586277;
  --text-faint: #8a91a1;         /* additif: caption/meta paling redup */
  /* aksi */
  --accent: #173257;
  --accent-hover: #1f4478;
  --accent-contrast: #ffffff;
  --accent-soft: rgba(47, 91, 208, 0.09);  /* additif: wrapper aksi-aktif */
  --link: #2f5bd0;
  --focus: #2f5bd0;
  --shadow: 0 1px 2px rgba(20, 32, 58, 0.05), 0 10px 30px rgba(20, 32, 58, 0.06);
  --shadow-sm: 0 1px 2px rgba(20, 32, 58, 0.06);  /* additif */
  --shadow-lg: 0 24px 60px rgba(20, 32, 58, 0.20);
  --canvas-glow: radial-gradient(ellipse 900px 500px at 15% -10%, rgba(23, 50, 87, 0.05), transparent 60%);

  /* lifecycle skenario (badge/stepper) — netral kecuali verdict */
  --draft: #586277;
  --kalibrasi: #7a5a12;
  --perlu-review: #a52318;
  --siap-verifikasi: #2f5bd0;
  --terverifikasi: #12654a;

  /* verdict per-langkah (report + agregat web) — sumbu bukti: hijau/merah */
  --v-pass: #12654a;
  --v-fail: #a52318;
  --v-review: #7a5a12;
  --v-buntu: #9a4a1f;
  --v-skip: #586277;
  --v-error: #5a3ea8;
  /* --ai = provenance (langkah ber-AI), SUMBU BEDA dari --v-error walau nilai
     bisa sama — token terpisah supaya `.ai-label` tak numpang verdict ERROR
     (CLAUDE.md temuan review Task 6 #5). */
  --ai: #5a3ea8;

  /* konsol log run — SENGAJA gelap di KEDUA tema (konsol ya konsol). */
  --log-bg: #0c1622;
  --log-text: #7fdb9b;
  --log-dim: #4d6b5c;            /* additif: timestamp/meta di konsol */

  --font-heading: "Archivo", "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;
  --font-sans: "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;
  --font-mono: "JetBrains Mono", "IBM Plex Mono", "Berkeley Mono", ui-monospace, "Cascadia Code", monospace;
}

[data-theme="dark"] {
  color-scheme: dark;
  --bg: #0b0f16;
  --bg-raised: #141a24;
  --bg-inset: #0c1219;
  --surface-2: #10151d;
  --border: #28303d;
  --border-strong: #3a4351;
  --text: #e7ebf3;
  --text-dim: #98a2b4;
  --text-faint: #697283;
  --accent: #2f4f86;
  --accent-hover: #3a5e9c;
  --accent-contrast: #ffffff;
  --accent-soft: rgba(112, 152, 243, 0.12);
  --link: #7098f3;
  --focus: #7098f3;
  --shadow: 0 1px 2px rgba(0, 0, 0, 0.4), 0 16px 48px rgba(0, 0, 0, 0.4);
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
  --shadow-lg: 0 28px 70px rgba(0, 0, 0, 0.6);
  --canvas-glow: radial-gradient(ellipse 900px 500px at 15% -10%, rgba(47, 79, 134, 0.10), transparent 60%);

  --draft: #98a2b4;
  --kalibrasi: #d9a441;
  --perlu-review: #ef6b62;
  --siap-verifikasi: #7098f3;
  --terverifikasi: #3ecb84;

  --v-pass: #3ecb84;
  --v-fail: #ef6b62;
  --v-review: #d9a441;
  --v-buntu: #ec9a5a;
  --v-skip: #7a8395;
  --v-error: #b58ce0;
  --ai: #b58ce0;

  --log-bg: #0c1622;
  --log-text: #7fdb9b;
  --log-dim: #4d6b5c;
}
