/* ============================================================================
   luxury-bridge.css — TOKEN BRIDGE Soft-Material → Luxury (keystone migrasi L, 2026-07-20)
   ----------------------------------------------------------------------------
   MASALAH: modul yang dikonversi ke Luxury (boq/master-skus/…) masih memuat
   style.css (dipakai chrome shared) + banyak inline-style JS-injected memakai token
   LEGACY (var(--surface)/--foreground/--border/--bauhaus-*). Di halaman [data-lux]
   token legacy itu = warna Soft-Material (cream/gelap salah) → CAMPUR REGISTER (langgar
   Buku 14). Menambal 100+ inline style per file = mahal & rawan.
   SOLUSI: remap token legacy → nilai Luxury, HANYA di bawah [data-lux]. Semua referensi
   legacy (kartu, judul, panel JS-injected) otomatis jadi Luxury — NOL edit JS.
   PAKAI: muat file ini di modul yang SUDAH ber-data-lux (SETELAH luxury.css +
   luxury-components.css). Halaman born-Luxury (app-klien/hub) TIDAK memuatnya (tak perlu).
   Dwi-mode: nilai --lux-* sudah berubah sendiri per mode (luxury.css) → bridge ikut.
   ============================================================================ */

:root[data-lux] {
  /* Permukaan & latar */
  --background: var(--lux-bg);
  --surface: var(--lux-surface);
  --surface-2: var(--lux-surface-2);
  --surface-3: var(--lux-surface-2);
  --bg-tint-1: var(--lux-surface-2);
  --bg-tint-2: var(--lux-surface-2);

  /* Teks */
  --foreground: var(--lux-fg);
  --foreground-muted: var(--lux-fg-muted);
  --foreground-subtle: var(--lux-fg-dim);
  --foreground-disabled: var(--lux-fg-dim);

  /* Garis */
  --border: var(--lux-border);
  --border-strong: var(--lux-border-strong);
  --border-focus: var(--lux-gold);

  /* Primer/CTA — di Luxury = emas */
  --primary: var(--lux-gold);
  --primary-hover: var(--lux-gold);
  --primary-foreground: var(--lux-cta-ink);

  /* Aksen semantik — pakai token Luxury (fallback ke bauhaus bila belum ada) */
  --success: var(--lux-success);
  --warning: var(--lux-warning);
  --danger: var(--lux-danger);
  --info: var(--lux-info);
  --success-bg: color-mix(in srgb, var(--lux-success) 14%, transparent);
  --warning-bg: color-mix(in srgb, var(--lux-warning) 14%, transparent);
  --danger-bg: color-mix(in srgb, var(--lux-danger) 14%, transparent);
  --info-bg: color-mix(in srgb, var(--lux-info) 14%, transparent);
  --success-border: color-mix(in srgb, var(--lux-success) 30%, transparent);
  --warning-border: color-mix(in srgb, var(--lux-warning) 30%, transparent);
  --danger-border: color-mix(in srgb, var(--lux-danger) 30%, transparent);
  --info-border: color-mix(in srgb, var(--lux-info) 30%, transparent);

  /* Shadow neumorphic → shadow Luxury (flat elevated, bukan emboss cream) */
  --neu-out: var(--lux-shadow-card);
  --neu-out-sm: var(--lux-shadow-card);
  --neu-out-lg: var(--lux-shadow-elevated);
  --neu-in: none;
}

/* ============ PRINT-GUARD (money+print, 2026-07-20) ============
   Dokumen cetak resmi (SPK/invoice/kontrak) WAJIB kertas: latar putih, teks hitam.
   Bridge me-remap token di [data-lux] tanpa peduli media → tanpa guard ini, blok
   @media print yang kebetulan pakai var(--surface)/--foreground akan tercetak GELAP.
   Guard: saat CETAK, kembalikan token legacy ke nilai kertas-aman. (formal-doc-print.css
   sudah hardcoded #fff/#000 = tak terpengaruh; guard ini jaring utk token inline modul.) */
@media print {
  :root[data-lux] {
    --background: #ffffff;
    --surface: #ffffff;
    --surface-2: #ffffff;
    --surface-3: #f5f5f5;
    --bg-tint-1: #ffffff;
    --bg-tint-2: #ffffff;
    --foreground: #000000;
    --foreground-muted: #333333;
    --foreground-subtle: #555555;
    --border: #cccccc;
    --border-strong: #999999;
    --primary: #000000;
    --primary-foreground: #ffffff;
    --neu-out: none;
    --neu-out-sm: none;
    --neu-out-lg: none;
  }
}
