/* =============================================================================
   PLENO — Soft Admin Theme
   Menyelaraskan tampilan admin Sneat dengan halaman publik pengumuman
   (http://localhost:9320/): navy #0a2342 + emas #c5a253, kanvas kertas hangat,
   sudut membulat, bayangan lembut, font Plus Jakarta Sans. Light mode.
   Di-load PALING AKHIR (setelah core.css/theme-default.css/demo.css) agar menang.
   ========================================================================== */

:root {
  --nv: #0a2342;   --nv-700: #13335a; --nv-600: #1c4474; --nv-100: #dbe4f0; --nv-50: #eef3f9;
  --gold: #c5a253; --gold-700: #9c7c34; --gold-600: #b08d3e; --gold-100: #f1e6cb; --gold-50: #faf6ec;
  --paper: #faf7f1; --paper-200: #f2ece0;
  --soft-border: #efe7d6;
  --soft-shadow: 0 1px 2px rgba(16,33,64,.05), 0 18px 40px -22px rgba(16,33,64,.28);
  --soft-shadow-sm: 0 1px 2px rgba(16,33,64,.06), 0 6px 18px -12px rgba(16,33,64,.22);
  --radius-card: 1.1rem;
  --radius-field: .85rem;
  --radius-btn: .7rem;

  /* Peta ulang primary Bootstrap/Sneat (default ungu #696cff) -> navy */
  --bs-primary: #0a2342;
  --bs-primary-rgb: 10, 35, 66;
  --bs-link-color: #1c4474;
  --bs-link-color-rgb: 28, 68, 116;
  --bs-link-hover-color: #0a2342;
  --bs-border-radius: .7rem;
  --bs-border-radius-lg: 1.1rem;
  --bs-body-font-family: "Plus Jakarta Sans", "Public Sans", system-ui, -apple-system, sans-serif;
}

/* ---------- Tipografi & kanvas kertas hangat ---------- */
body {
  font-family: var(--bs-body-font-family);
  color: #263449;
  background:
    radial-gradient(820px 360px at 50% -8%, rgba(197,162,83,.13), transparent 62%),
    radial-gradient(700px 380px at 92% 6%, rgba(28,68,116,.06), transparent 60%),
    linear-gradient(180deg, #fbf9f4 0%, #f6f1e8 100%) !important;
  background-attachment: fixed !important;
}
.bg-body, .layout-page, .content-wrapper { background: transparent !important; }
h1,h2,h3,h4,h5,h6, .fw-bold { letter-spacing: -0.01em; }
.text-heading, h4, h5, h6 { color: var(--nv); }

/* ---------- Kartu ---------- */
.card {
  background: #fff;
  border: 1px solid var(--soft-border);
  border-radius: var(--radius-card) !important;
  box-shadow: var(--soft-shadow);
  transition: box-shadow .2s ease, transform .2s ease;
}
.card:hover { box-shadow: 0 2px 4px rgba(16,33,64,.06), 0 26px 50px -26px rgba(16,33,64,.32); }
.card .card-header { border-bottom: 1px solid #f4eee2; background: transparent; }
.card .card-header h5, .card .card-title { color: var(--nv); font-weight: 700; }
.card-border-shadow-primary::after,
.card-border-shadow-primary { border-color: var(--soft-border); }

/* KPI cards ala landing: garis atas warna + hover angkat */
.kpi-card { position: relative; overflow: hidden; }
.kpi-card::before {
  content: ""; position: absolute; inset: 0 0 auto 0; height: 3px;
  background: linear-gradient(90deg, var(--gold-600), var(--gold), var(--gold-600));
}
.kpi-card.kpi-navy::before   { background: linear-gradient(90deg, var(--nv-600), var(--nv), var(--nv-600)); }
.kpi-card.kpi-success::before{ background: linear-gradient(90deg, #28c76f, #48da89, #28c76f); }
.kpi-card.kpi-danger::before { background: linear-gradient(90deg, #ea5455, #f08182, #ea5455); }

/* ---------- Navbar atas ---------- */
.layout-navbar {
  background: rgba(255,255,255,.82) !important;
  backdrop-filter: saturate(140%) blur(10px);
  border-bottom: 1px solid var(--soft-border);
  box-shadow: var(--soft-shadow-sm);
}
.layout-navbar .navbar { background: transparent !important; box-shadow: none !important; }
.layout-navbar,
.layout-navbar .nav-item .nav-link,
.layout-navbar i { color: var(--nv) !important; }

/* ---------- Sidebar / menu ---------- */
#layout-menu, .bg-menu-theme {
  background: rgba(255,255,255,.92) !important;
  border-right: 1px solid var(--soft-border);
  box-shadow: 0 8px 40px -24px rgba(16,33,64,.35);
}
.menu-vertical .menu-item .menu-link { border-radius: .7rem; color: #4b586b; transition: background-color .18s ease, color .18s ease; }
.menu-vertical .menu-item .menu-link:hover { background: var(--nv-50); color: var(--nv); }
.menu-vertical .menu-item.active > .menu-link {
  background: linear-gradient(90deg, var(--nv), var(--nv-600)) !important;
  color: #fff !important;
  box-shadow: 0 6px 16px -6px rgba(10,35,66,.55);
}
.menu-vertical .menu-item.active > .menu-link .menu-icon,
.menu-vertical .menu-item.active > .menu-link i { color: #fff !important; }
.menu-inner .menu-item.open > .menu-link.menu-toggle { background: var(--nv-50); color: var(--nv); }
.menu .app-brand .app-brand-text { color: var(--nv) !important; font-weight: 800; }

/* ---------- Tombol ---------- */
.btn { border-radius: var(--radius-btn); transition: transform .12s ease, box-shadow .18s ease, background-color .18s ease; }
.btn:active { transform: scale(.985); }
.btn-primary {
  --bs-btn-bg: var(--nv); --bs-btn-border-color: var(--nv);
  --bs-btn-hover-bg: var(--nv-600); --bs-btn-hover-border-color: var(--nv-600);
  --bs-btn-active-bg: var(--nv-700); --bs-btn-active-border-color: var(--nv-700);
  --bs-btn-disabled-bg: var(--nv); --bs-btn-disabled-border-color: var(--nv);
  box-shadow: 0 8px 18px -10px rgba(10,35,66,.6);
}
.btn-label-primary { --bs-btn-color: var(--nv); --bs-btn-bg: var(--nv-50); --bs-btn-border-color: transparent;
  --bs-btn-hover-bg: var(--nv); --bs-btn-hover-color:#fff; }
.btn-outline-primary { --bs-btn-color: var(--nv); --bs-btn-border-color: var(--nv);
  --bs-btn-hover-bg: var(--nv); --bs-btn-hover-border-color: var(--nv); --bs-btn-active-bg: var(--nv-600); }
.btn-warning, .btn-label-warning { --bs-btn-bg: var(--gold); --bs-btn-border-color: var(--gold);
  --bs-btn-hover-bg: var(--gold-600); --bs-btn-hover-border-color: var(--gold-600); --bs-btn-color:#3a2d09; }

/* ---------- Warna utilitas primary -> navy ---------- */
.text-primary { color: var(--nv) !important; }
.bg-primary { background-color: var(--nv) !important; }
.bg-label-primary { background-color: var(--nv-50) !important; color: var(--nv) !important; }
a { color: var(--nv-600); }
a:hover { color: var(--nv); }
.text-gold { color: var(--gold-700) !important; }
.bg-gold-soft { background: var(--gold-50) !important; color: var(--gold-700) !important; }

/* ---------- Form ---------- */
.form-control, .form-select, .input-group-text {
  border-radius: var(--radius-field);
  border-color: #e3ddd0;
  background-color: #fcfbf7;
  transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.form-control:focus, .form-select:focus {
  background-color: #fff;
  border-color: var(--nv-600);
  box-shadow: 0 0 0 .2rem rgba(28,68,116,.14);
}
.form-label { color: var(--nv); font-weight: 600; }

/* Select2 selaras */
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
  border-radius: var(--radius-field) !important; border-color: #e3ddd0 !important; background:#fcfbf7 !important; min-height: 42px;
}
.select2-container--default.select2-container--focus .select2-selection--single { border-color: var(--nv-600) !important; box-shadow: 0 0 0 .2rem rgba(28,68,116,.14); }
.select2-results__option--highlighted { background: var(--nv) !important; }

/* ---------- Tabel ---------- */
.table { --bs-table-color: #2b3852; }
.table > thead th, .table thead.table-light th {
  background: var(--paper) !important; color: var(--nv) !important;
  text-transform: uppercase; font-size: .72rem; letter-spacing: .04em; border-bottom: 1px solid var(--soft-border);
}
.table > :not(caption) > * > * { border-bottom-color: #f1ece1; }
.table-hover > tbody > tr:hover > * { background: var(--nv-50); }
.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
  background: var(--nv) !important; border-color: var(--nv) !important; color: #fff !important; border-radius: .5rem;
}
.dataTables_wrapper .dataTables_paginate .paginate_button:hover { background: var(--nv-50) !important; color: var(--nv) !important; border-radius: .5rem; }

/* ---------- Badge, pagination, dropdown ---------- */
.badge.bg-label-primary { background: var(--nv-50) !important; color: var(--nv) !important; }
.badge.bg-primary { background: var(--nv) !important; }
.badge { border-radius: .5rem; font-weight: 600; }
.page-item.active .page-link { background: var(--nv); border-color: var(--nv); }
.page-link { color: var(--nv-600); border-radius: .5rem; }
.dropdown-menu { border: 1px solid var(--soft-border); border-radius: .9rem; box-shadow: var(--soft-shadow); }
.dropdown-item:active, .dropdown-item.active { background: var(--nv); }

/* ---------- Avatar / initial ---------- */
.avatar .avatar-initial { border-radius: .7rem; }
.bg-label-primary .avatar-initial { color: var(--nv); }

/* ---------- Halaman auth (login) ---------- */
.authentication-wrapper .card { border-radius: 1.4rem !important; }
.authentication-wrapper .card .card-body { padding: 2.2rem 2rem; }
.authentication-wrapper h5 { color: var(--nv); font-weight: 800; letter-spacing: -0.01em; }
.authentication-wrapper .app-brand + * , .authentication-wrapper img.img-fluid { max-height: 84px; width: auto; }

/* ---------- Scrollbar tipis hangat ---------- */
* { scrollbar-width: thin; scrollbar-color: #d9cfb8 transparent; }
*::-webkit-scrollbar { width: 9px; height: 9px; }
*::-webkit-scrollbar-thumb { background: #ddd2ba; border-radius: 9px; }
*::-webkit-scrollbar-thumb:hover { background: var(--gold); }

/* ---------- Meja tinjau pimpinan: tabel tenang & mudah dipindai ---------- */
/* buang garis vertikal grid (table-bordered) — sisakan aturan horizontal saja */
.table-bordered > :not(caption) > * > * { border-left-width: 0 !important; border-right-width: 0 !important; }
.table > :not(caption) > * > * { padding: .85rem 1rem; vertical-align: middle; }
.table tbody td { font-variant-numeric: tabular-nums; }               /* angka rata & rapi */
.table thead th, thead.table-primary th, .table-primary {
  background: var(--paper) !important; color: var(--nv) !important; --bs-table-bg: var(--paper);
}
thead.table-primary th, .table thead th {
  text-transform: uppercase; font-size: .72rem; letter-spacing: .04em; font-weight: 700;
  border-bottom: 1px solid var(--soft-border) !important; white-space: nowrap;
}
.table-hover > tbody > tr { transition: background-color .12s ease; }

/* tombol success (Simpan Permanen / Approve) — hijau lembut selaras tema */
.btn-success {
  --bs-btn-bg: #28c76f; --bs-btn-border-color: #28c76f;
  --bs-btn-hover-bg: #22b362; --bs-btn-hover-border-color: #22b362;
  --bs-btn-active-bg: #1e9e57; --bs-btn-active-border-color: #1e9e57;
  box-shadow: 0 8px 18px -10px rgba(40,199,111,.55);
}

/* offcanvas filter & modal konfirmasi — konsisten lembut */
.offcanvas { border-left: 1px solid var(--soft-border); border-radius: 1.1rem 0 0 1.1rem; }
.offcanvas .offcanvas-header { border-bottom: 1px solid #f4eee2; }
.offcanvas .offcanvas-title, .modal-title { color: var(--nv); font-weight: 700; }
.modal-content { border: 1px solid var(--soft-border); border-radius: 1.1rem; box-shadow: var(--soft-shadow); }
.modal-header { border-bottom: 1px solid #f4eee2; }
.modal-footer { border-top: 1px solid #f4eee2; }

/* ---------- Divider & misc ---------- */
.divider .divider-text { color: #a99e83; }
hr { border-color: var(--soft-border); }
.footer .footer-container, .content-footer { color: #8a8069; }
