/* Sistem Visual Sisih — token & tipografi.
   Sumber tunggal kebenaran warna. JANGAN pernah menulis hex langsung di komponen. */

/* Font: self-host, subset latin saja (mencakup é/è/ê EYD). Tak perlu latin-ext. */
@font-face {
  font-family: "Plus Jakarta Sans";
  src: url("../fonts/pjs-latin-var.woff2") format("woff2-variations");
  font-weight: 400 800;
  font-display: optional;        /* CLS nol; SW menjamin ketersediaan */
  unicode-range: U+0000-00FF, U+2013-2014, U+2018-201D, U+2022, U+2026;
}

/* Fallback bermetrik cocok → nol layout shift (dihitung terhadap Roboto). */
@font-face {
  font-family: "PJS-fallback";
  src: local("Roboto"), local("Helvetica Neue"), local("Arial");
  size-adjust: 108.2%;
  ascent-override: 95.9%;
  descent-override: 20.5%;
  line-gap-override: 0%;
}

:root {
  --ground:#FBFAF7; --surface:#FFFFFF;
  --ink:#1C1B18; --ink-2:#5A564E; --ink-3:#736E64;
  --line:#E5E2DA; --line-strong:#D5D1C7;
  --teal:#0F6F63; --teal-deep:#0B564C; --teal-soft:#E8F2F0;
  --income:#1F6B3A; --alert:#A8331F; --caution:#8A5A00;

  --r-lg:20px; --r-md:14px; --r-sm:10px;
  --tap:48px;                    /* target sentuh minimum */
  --safe-b:env(safe-area-inset-bottom, 0px);

  font-family: "Plus Jakarta Sans", "PJS-fallback", system-ui, sans-serif;
  font-size: 100%;               /* hormati setelan pengguna → SC 1.4.4 */
  -webkit-text-size-adjust: 100%;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --ground:#14130F; --surface:#1C1B17;
    --ink:#F2EFE9; --ink-2:#B4AEA3; --ink-3:#8B857A;
    --line:#2B2924; --line-strong:#3A382F;
    --teal:#4FD1BC; --teal-deep:#7FE3D2; --teal-soft:#16302C;
    --income:#6EE7A0; --alert:#FF9B85; --caution:#F5C453;
  }
}
:root[data-theme="dark"] {
  --ground:#14130F; --surface:#1C1B17;
  --ink:#F2EFE9; --ink-2:#B4AEA3; --ink-3:#8B857A;
  --line:#2B2924; --line-strong:#3A382F;
  --teal:#4FD1BC; --teal-deep:#7FE3D2; --teal-soft:#16302C;
  --income:#6EE7A0; --alert:#FF9B85; --caution:#F5C453;
}

/* SETIAP nominal rupiah wajib pakai kelas ini.
   Tanpa tabular-nums, Plus Jakarta Sans bergoyang parah (digit 1 = ½ lebar 0). */
.nominal {
  font-variant-numeric: tabular-nums lining-nums;
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: 0;             /* jangan pernah negatif pada angka */
  color: var(--ink);             /* pengeluaran TIDAK diwarnai */
}
.nominal--utama  { font-size: 1.75rem; font-weight: 700; letter-spacing: -.02em; }
.nominal--daftar { font-size: 1.0625rem; }
.nominal--masuk  { color: var(--income); }   /* hanya pemasukan */
.nominal--minus  { color: var(--alert); }    /* hanya saldo negatif */

.rp { margin-right: .18em; font-weight: 500; opacity: .72; }
