:root {
  --siap-primary: #0A2F6B;
  --siap-secondary: #1B8A3E;
  --siap-accent: #F9D923;
  --siap-bg: #F0F7F4;
  --siap-text: #1a1a2e;
  --siap-muted: #5a6577;
  --siap-surface: #ffffff;
  --primary: #0A2F6B !important;
  --secondary: #1B8A3E !important;
  --accent: #F9D923 !important;
  --bs-primary: #0A2F6B;
  --bs-success: #1B8A3E;
  color-scheme: light;
}
body {
  background-color: #F0F7F4 !important;
  color: #1a1a2e !important;
}
.navbar, .topbar, .sidebar, aside.sidebar, .bg-primary, .admin-header,
.bg-blue-600, .bg-blue-700, .bg-indigo-600, .bg-indigo-700 {
  background: linear-gradient(90deg, #0A2F6B, #1B8A3E) !important;
  color: #fff !important;
}
/* SIAP AHI: gradasi hijau SPMB ke hijau tua, hanya untuk sidebar utama. */
.sidebar, aside.sidebar {
  background: linear-gradient(180deg, #006C58 0%, #005342 48%, #003C32 100%) !important;
  background-image: linear-gradient(180deg, #006C58 0%, #005342 48%, #003C32 100%) !important;
  border-color: rgba(255,255,255,.14) !important;
  color: #ffffff !important;
}
.sidebar .sidebar-header { border-bottom-color: rgba(255,255,255,.16) !important; }
.sidebar .nav-link, .sidebar a { color: rgba(255,255,255,.88) !important; }
.sidebar .nav-link:hover, .sidebar .nav-link.active,
.sidebar .sidebar-menu .nav-link:hover, .sidebar .sidebar-menu .nav-link.active {
  background: rgba(255,255,255,.14) !important;
  color: #ffffff !important;
  border-left-color: #f9d923 !important;
}
.sidebar .nav-link, .sidebar a { color: rgba(255,255,255,.85) !important; }
.sidebar .nav-link:hover, .sidebar .nav-link.active {
  color: #fff !important;
  background: rgba(255,255,255,.12) !important;
}
.text-primary { color: #0A2F6B !important; }
.text-success { color: #1B8A3E !important; }
.text-muted, .text-secondary { color: #5a6577 !important; }
.btn-primary, button.btn-primary {
  background: linear-gradient(90deg, #0A2F6B, #1B8A3E) !important;
  border-color: #0A2F6B !important;
  color: #fff !important;
}
.btn-success {
  background-color: #1B8A3E !important;
  border-color: #1B8A3E !important;
  color: #fff !important;
}
.btn-outline-primary {
  color: #0A2F6B !important;
  border-color: #0A2F6B !important;
}
.btn-outline-primary:hover {
  background: #0A2F6B !important;
  color: #fff !important;
}
.card, .table-card, .stat-card {
  background: #ffffff !important;
  color: #1a1a2e !important;
}
.page-header h4, .page-title,
.main-content h1, .main-content h2, .main-content h3, .main-content h4,
.table-card h1, .table-card h2, .table-card h3, .table-card h4 {
  color: #0A2F6B !important;
}
/* Hero landing: teks putih selalu terbaca */
.spmb-hero, .spmb-hero h1, .spmb-hero h2, .spmb-hero .lead, .spmb-hero p, .spmb-hero span {
  color: #ffffff !important;
  opacity: 1 !important;
}
.hero, .hero h1, .hero h2, .hero h3, .hero .lead, .hero p, .hero-badge {
  color: #ffffff !important;
  text-shadow: 0 1px 3px rgba(0,0,0,.25);
}
.hero h1 { opacity: 1 !important; font-weight: 800 !important; }
.hero .btn-ghost {
  background: transparent !important;
  color: #ffffff !important;
  border: 2px solid rgba(255,255,255,.85) !important;
}
.hero .btn-ghost:hover {
  background: rgba(255,255,255,.15) !important;
  color: #ffffff !important;
}
.hero .btn-gold {
  background: #F9D923 !important;
  color: #0A2F6B !important;
  font-weight: 700 !important;
}
a:not(.btn):not(.nav-link):not(.dropdown-item) { color: #0A2F6B; }
.form-control:focus, .form-select:focus {
  border-color: #0A2F6B !important;
  box-shadow: 0 0 0 0.2rem color-mix(in srgb, #0A2F6B 25%, transparent) !important;
}
.table thead th {
  background: color-mix(in srgb, #0A2F6B 8%, #ffffff) !important;
  color: #0A2F6B !important;
}
.main-content, .wrapper, .content-area {
  background: #F0F7F4 !important;
  color: #1a1a2e !important;
}
/* Pastikan kontras teks */
p, span, label, td, li, .form-label, .small {
  color: inherit;
}
.bg-blue-500, .bg-blue-600, .bg-blue-700, .bg-blue-800 {
  background-color: #0A2F6B !important;
  background-image: none !important;
  color: #fff !important;
}
.bg-green-600, .bg-green-700 { background-color: #1B8A3E !important; color: #fff !important; }
.text-blue-600, .text-blue-700, .text-blue-800 { color: #0A2F6B !important; }
.siap-back-link {
  display: block; text-align: center; padding: 8px 12px; margin: 8px 10px;
  background: linear-gradient(90deg, #0A2F6B, #1B8A3E);
  color: #fff !important; border-radius: 10px; text-decoration: none !important;
  font-weight: 600; font-size: 13px;
}

/* Header app (gelap) saja */
.navbar.navbar-dark .navbar-brand,
.navbar.navbar-dark .navbar-brand span,
.mobile-topbar .mobile-app-name {
  color: #ffffff !important;
  text-shadow: 0 1px 2px rgba(0,0,0,.4);
  font-weight: 700 !important;
}
.navbar.navbar-dark .nav-link,
.navbar.navbar-dark .dropdown-toggle,
.navbar.navbar-dark .btn-link {
  color: #ffffff !important;
}
/* Landing site-nav: gradient header, teks putih */
.site-nav {
  background: linear-gradient(90deg, #0A2F6B, #1B8A3E) !important;
  border-bottom: none !important;
}
.site-nav .navbar-brand,
.site-nav .navbar-brand span,
.site-nav a.navbar-brand,
.site-nav .brand-school-name {
  color: #ffffff !important;
  text-shadow: 0 1px 3px rgba(0,0,0,.35) !important;
  font-weight: 800 !important;
}
.site-nav .navbar-brand img {
  background: transparent !important;
  border-radius: 0 !important;
  padding: 0 !important;
}
.site-nav .nav-link:not(.btn-nav-login) {
  color: rgba(255,255,255,.92) !important;
}
.site-nav .btn-nav-login,
.site-nav a.btn-nav-login,
.site-nav .nav-link.btn-nav-login,
.site-nav .btn-nav-login span {
  background: #F9D923 !important;
  color: #0A2F6B !important;
  font-weight: 700 !important;
  border-radius: 999px !important;
  border: none !important;
  box-shadow: 0 4px 14px rgba(249, 217, 35, 0.4) !important;
}
/* Tombol & teks kontras */
.btn-primary, .btn-success, .btn-nav-login {
  color: #ffffff !important;
}
.btn-outline-primary {
  color: #0A2F6B !important;
  border-color: #0A2F6B !important;
  background: transparent !important;
}
.btn-outline-primary:hover {
  background: #0A2F6B !important;
  color: #ffffff !important;
}
.btn-outline-light, .btn-gold {
  color: #0A2F6B !important;
}
.hero .btn-outline-light {
  border-color: rgba(255,255,255,.85) !important;
  color: #ffffff !important;
  background: transparent !important;
}
.hero .btn-outline-light:hover {
  background: rgba(255,255,255,.15) !important;
  color: #ffffff !important;
}
.hero .btn-gold, .hero .btn-warning {
  background: #F9D923 !important;
  color: #0A2F6B !important;
  border: none !important;
  font-weight: 700 !important;
}