/* HAFRA Admin - gaya tambahan di atas Bootstrap 5 (mobile-first)
   Palet mengikuti logo: gradasi biru -> ungu, aksen hijau. */
:root {
  --brand-blue: #1640d0;
  --brand-purple: #7b37c8;
  --brand: #3d3bd4;            /* titik tengah gradasi, untuk teks & elemen solid */
  --brand-hover: #2f2db3;
  --brand-green: #2be84a;      /* aksen di atas latar gelap */
  --brand-green-dark: #10913a; /* aksen hijau di atas latar putih (kontras cukup) */
  --brand-gradient: linear-gradient(160deg, var(--brand-blue) 0%, var(--brand-purple) 100%);
  --sidebar-w: 252px;

  --bs-primary: #3d3bd4;
  --bs-primary-rgb: 61, 59, 212;
  --bs-link-color: #3d3bd4;
  --bs-link-color-rgb: 61, 59, 212;
  --bs-link-hover-color: #2f2db3;
  --bs-link-hover-color-rgb: 47, 45, 179;
}

.bg-brand { background: var(--brand-gradient) !important; }
.text-brand { color: var(--brand) !important; }
.text-accent { color: var(--brand-green-dark) !important; }

.btn-brand {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--brand);
  --bs-btn-border-color: transparent;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--brand-hover);
  --bs-btn-hover-border-color: transparent;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--brand-hover);
  --bs-btn-disabled-bg: var(--brand);
  --bs-btn-focus-shadow-rgb: 61, 59, 212;
  background-image: linear-gradient(120deg, var(--brand-blue), var(--brand-purple));
  font-weight: 500;
}
.btn-brand:hover, .btn-brand:active { background-image: none; }

.form-control:focus, .form-select:focus {
  border-color: #8f8de8;
  box-shadow: 0 0 0 .2rem rgba(61, 59, 212, .2);
}

.min-vw-0 { min-width: 0; }

/* ---------------- Sidebar ---------------- */
.sidebar { background: var(--brand-gradient); color: #fff; }
.sidebar .brand-name { font-weight: 700; letter-spacing: .08em; }
.sidebar .nav-link {
  color: rgba(255, 255, 255, .86);
  padding: .5rem 1rem;
  border-left: 3px solid transparent;
}
.sidebar .nav-link:hover { color: #fff; background: rgba(255, 255, 255, .08); }
.sidebar .nav-link.active {
  color: #fff;
  background: rgba(255, 255, 255, .16);
  border-left-color: var(--brand-green);
  font-weight: 500;
}
.sidebar .nav-link.disabled { color: rgba(255, 255, 255, .5); }
.sidebar .badge-soon { background: rgba(255, 255, 255, .18); color: rgba(255, 255, 255, .85); font-weight: 500; }
.sidebar-group {
  font-size: .7rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .6);
  padding: 1rem 1rem .25rem;
}

@media (min-width: 992px) {
  .sidebar {
    width: var(--sidebar-w);
    position: sticky;
    top: 0;
    height: 100vh;
    overflow-y: auto;
    flex-shrink: 0;
  }
}
@media (max-width: 991.98px) {
  .sidebar.offcanvas-lg { --bs-offcanvas-color: #fff; --bs-offcanvas-bg: var(--brand-blue); background: var(--brand-gradient); }
}

/* ---------------- Kartu dashboard ---------------- */
.stat-card { position: relative; overflow: hidden; }
.stat-card::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 3px; background: linear-gradient(90deg, var(--brand-blue), var(--brand-purple)); }
.stat-card .stat-value { color: #1d1b4f; }

/* ---------------- Halaman login & error ---------------- */
.auth-bg { background: var(--brand-gradient); }
.auth-wrap { min-height: 100vh; }
.auth-card { max-width: 380px; border: 0; }
.auth-brand { font-weight: 700; letter-spacing: .12em; color: #1d1b4f; }

/* Tombol ikon mata di kolom password */
.pw-toggle { border-color: var(--bs-border-color); color: #6c6a8f; }
.pw-toggle:hover, .pw-toggle:focus { background: #f1f0fb; color: var(--brand); border-color: var(--bs-border-color); }
