:root {
  /* Token v1.1 (design/SPEC 15), selaras CSS publik main.herbanusa.id (dibaca Design 23 Okt 2026):
     --hijau #1f8f78, --hijau-tua #0f4d40, --lime #96c63e, --latar #f1f4ef, --hitam #10201b, --abu #5f6d67.
     Pemetaan portal saja; CSS situs utama tidak diubah. Putih di atas #1f8f78 hanya 3.99:1 -> aksen, BUKAN teks kecil. */
  --color-primary: #0F4D40;
  --color-primary-hover: #0A3A30;
  --color-primary-soft: #E3EFE9;
  --color-accent: #1F8F78;
  --color-lime: #96C63E;
  --color-bg: #F1F4EF;
  --color-surface: #FFFFFF;
  --color-text: #10201B;
  --color-text-muted: #5F6D67;
  --color-border: #D3DBD5;
  --color-border-input: #5F6D67;
  --color-success: #0F4D40;
  --color-warning-bg: #FFF4D6;
  --color-warning-text: #6B4A00;
  --color-danger: #B3261E;
  --color-info-bg: #E3EFE9;
  --color-info-text: #0F4D40;
  --color-admin: #10201B;
  --color-focus: #0B5FD8;
  /* Manrope tidak dimuat dari CDN. Dipakai bila terpasang di perangkat; selain itu fallback sistem.
     Self-host berkas font menunggu keputusan Q15 (lisensi + persetujuan Arif). */
  --font-primary: Manrope, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

*, *::before, *::after {
  box-sizing: border-box;
}

body {
  font-family: var(--font-primary);
  font-size: 1rem;
  line-height: 1.5;
  margin: 0;
  padding: 0;
  background-color: var(--color-bg);
  color: var(--color-text);
  -webkit-font-smoothing: antialiased;
}

input, button, select, textarea {
  font-family: inherit;
  font-size: inherit;
}

a {
  color: var(--color-primary);
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

button {
  cursor: pointer;
  border: none;
  background: none;
}

/* Utilities */
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
