/*
 * Tema warna LPH Zamzami - Audit Management.
 * Primary: #214462  |  Accent: #16c37c
 * Dimuat SETELAH bootstrap.min.css supaya override di bawah ini menang.
 */

:root {
	--amb-primary: #214462;
	--amb-primary-dark: #182f44;
	--amb-primary-light: #2c5879;
	--amb-accent: #16c37c;
	--amb-accent-dark: #119c63;
	--amb-bg: #f4f6f9;
	--amb-sidebar-width: 250px;
}

body {
	background-color: var(--amb-bg);
	font-size: .925rem;
}

/* ---------------------------------------------------------------------- */
/* Override warna Bootstrap agar konsisten dengan palet aplikasi          */
/* ---------------------------------------------------------------------- */

.btn-primary {
	--bs-btn-bg: var(--amb-primary);
	--bs-btn-border-color: var(--amb-primary);
	--bs-btn-hover-bg: var(--amb-primary-dark);
	--bs-btn-hover-border-color: var(--amb-primary-dark);
	--bs-btn-active-bg: var(--amb-primary-dark);
	--bs-btn-active-border-color: var(--amb-primary-dark);
	--bs-btn-disabled-bg: var(--amb-primary);
	--bs-btn-disabled-border-color: var(--amb-primary);
}

.btn-success {
	--bs-btn-bg: var(--amb-accent);
	--bs-btn-border-color: var(--amb-accent);
	--bs-btn-hover-bg: var(--amb-accent-dark);
	--bs-btn-hover-border-color: var(--amb-accent-dark);
	--bs-btn-active-bg: var(--amb-accent-dark);
	--bs-btn-active-border-color: var(--amb-accent-dark);
}

.btn-outline-primary {
	--bs-btn-color: var(--amb-primary);
	--bs-btn-border-color: var(--amb-primary);
	--bs-btn-hover-bg: var(--amb-primary);
	--bs-btn-hover-border-color: var(--amb-primary);
	--bs-btn-active-bg: var(--amb-primary);
	--bs-btn-active-border-color: var(--amb-primary);
}

.btn-outline-primary.disabled {
    color: var(--amb-primary) !important;
    border-color: var(--amb-primary) !important;
}

.text-primary { color: var(--amb-primary) !important; }
.bg-primary { background-color: var(--amb-primary) !important; }
.border-primary { border-color: var(--amb-primary) !important; }
.bg-success { background-color: var(--amb-accent) !important; }
.text-success { color: var(--amb-accent-dark) !important; }

a { color: var(--amb-primary); }
a:hover { color: var(--amb-primary-dark); }

.form-control:focus, .form-select:focus {
	border-color: var(--amb-accent);
	box-shadow: 0 0 0 .2rem rgba(22, 195, 124, .2);
}

.form-check-input:checked {
    background-color: var(--amb-primary-light);
    border-color: var(--amb-primary-light);
}

.nav-link, .page-link {
	color: var(--amb-primary);
}

.active>.page-link, .page-link.active {
    background-color: var(--amb-primary-light);
    border-color: var(--amb-primary-light);
}

.spinner-border.text-accent { color: var(--amb-accent); }

/* ---------------------------------------------------------------------- */
/* Shell aplikasi: topbar + sidebar (Lampiran B Bagian 1.1 & 2.1)          */
/* ---------------------------------------------------------------------- */

.amb-topbar {
	background-color: var(--amb-primary);
	color: #fff;
	padding: .65rem 1.25rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	position: sticky;
	top: 0;
	z-index: 1030;
	box-shadow: 0 2px 6px rgba(0,0,0,.12);
}

.amb-topbar .brand {
	font-weight: 600;
	font-size: 1.05rem;
	color: #fff;
	text-decoration: none;
	display: flex;
	align-items: center;
	gap: .5rem;
}

/* Logo asli berwarna navy/indigo gelap -- kontras buruk jika langsung di atas
   topbar gelap (#214462), jadi dibungkus chip putih supaya kontrasnya terjamin
   apa pun warna latar di sekitarnya. */
.amb-topbar .brand-logo-chip {
	background-color: #fff;
	border-radius: .5rem;
	padding: .25rem .5rem;
	display: inline-flex;
	align-items: center;
	height: 38px;
	box-shadow: 0 1px 3px rgba(0,0,0,.25);
}

.amb-topbar .brand-logo-chip img {
	height: 100%;
	width: auto;
	display: block;
}

.amb-topbar .brand-text {
	white-space: nowrap;
}

@media (max-width: 575.98px) {
	.amb-topbar .brand-text { display: none; }
}

.amb-topbar .avatar {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background-color: var(--amb-accent);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: .85rem;
}

.amb-shell {
	display: flex;
	min-height: calc(100vh - 58px);
}

.amb-sidebar {
	width: var(--amb-sidebar-width);
	flex-shrink: 0;
	background-color: #fff;
	border-right: 1px solid #e3e7ed;
	padding: 1rem 0;
}

.amb-sidebar .nav-link {
	color: #44515f;
	padding: .65rem 1.25rem;
	border-radius: 0;
	display: flex;
	align-items: center;
	gap: .6rem;
	font-size: .9rem;
}

.amb-sidebar .nav-link:hover {
	background-color: #eef2f6;
}

.amb-nav-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	color: #8a94a0;
}

.amb-nav-icon svg {
	width: 100%;
	height: 100%;
}

.amb-sidebar .nav-link:hover .amb-nav-icon {
	color: #44515f;
}

.amb-sidebar .nav-link.active .amb-nav-icon {
	color: #fff;
}

.amb-sidebar .nav-link.active {
	background-color: var(--amb-primary);
	color: #fff;
	font-weight: 600;
	border-left: 4px solid var(--amb-accent);
}

.amb-sidebar .nav-section-title {
	font-size: .72rem;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: #9aa6b2;
	padding: .75rem 1.25rem .25rem;
}

.amb-content {
	flex: 1;
	padding: 1.5rem;
	min-width: 0;
}

@media (max-width: 991.98px) {
	.amb-sidebar {
		position: fixed;
		left: -100%;
		top: 58px;
		height: calc(100vh - 58px);
		z-index: 1040;
		transition: left .2s ease-in-out;
		overflow-y: auto;
	}
	.amb-sidebar.show { left: 0; }
	.amb-shell { display: block; }
}

/* ---------------------------------------------------------------------- */
/* Kartu KPI dashboard (Lampiran B 2.1)                                    */
/* ---------------------------------------------------------------------- */

.amb-kpi-card {
	border: none;
	border-radius: .6rem;
	padding: 1.1rem 1.25rem;
	color: #fff;
}
.amb-kpi-card .kpi-value { font-size: 2rem; font-weight: 700; line-height: 1; }
.amb-kpi-card .kpi-label { font-size: .82rem; opacity: .9; }

.amb-kpi-primary { background-color: var(--amb-primary); }
.amb-kpi-accent { background-color: var(--amb-accent); }
.amb-kpi-info { background-color: #4a7ba6; }
.amb-kpi-warning { background-color: #e0a32f; }

/* ---------------------------------------------------------------------- */
/* Badge status assignment/audit request                                  */
/* ---------------------------------------------------------------------- */

.badge-status-pending { background-color: #e0a32f; color: #fff; }
.badge-status-confirmed { background-color: var(--amb-primary); color: #fff; }
.badge-status-rejected { background-color: #d64545; color: #fff; }
.badge-status-progress { background-color: var(--amb-accent); color: #fff; }
.badge-status-completed { background-color: #4a7ba6; color: #fff; }
.badge-status-cancelled { background-color: #8a94a0; color: #fff; }
.badge-status-default { background-color: #8a94a0; color: #fff; }

/* Badge rekomendasi auditor (PRD Bagian 7.1 / Lampiran B 2.2) */
.amb-rec-ok { color: var(--amb-accent-dark); }
.amb-rec-warn { color: #b5790a; }
.amb-rec-block { color: #d64545; }

/* ---------------------------------------------------------------------- */
/* Halaman publik konfirmasi (Lampiran B 2.3)                              */
/* ---------------------------------------------------------------------- */

.amb-public-page {
	background-color: var(--amb-bg);
	background-image: url('../img/bg-zamzami.jpg');
	background-size: auto;
	background-repeat: repeat;
	min-height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 2rem 1rem;
}

.amb-public-card {
	max-width: 480px;
	width: 100%;
	background: #fff;
	border-radius: .75rem;
	box-shadow: 0 4px 20px rgba(33,68,98,.12);
	padding: 2rem;
}

.amb-public-card h1 {
	color: var(--amb-primary);
	font-size: 1.2rem;
	font-weight: 700;
	text-align: center;
	margin-bottom: .25rem;
}

.amb-public-logo {
	display: block;
	height: 84px;
	margin: 0 auto .5rem;
}

.amb-public-card .subtitle {
	text-align: center;
	color: #6c7686;
	font-size: .85rem;
	margin-bottom: 1.25rem;
}

/* ---------------------------------------------------------------------- */
/* Kalender (FullCalendar)                                                 */
/* ---------------------------------------------------------------------- */

.fc-event-pending_confirmation { background-color: #e0a32f; border-color: #e0a32f; }
.fc-event-confirmed { background-color: var(--amb-primary); border-color: var(--amb-primary); }
.fc-event-rejected { background-color: #d64545; border-color: #d64545; }
.fc-event-in_progress { background-color: var(--amb-accent); border-color: var(--amb-accent); }
.fc-event-completed { background-color: #4a7ba6; border-color: #4a7ba6; }
.fc-event-cancelled { background-color: #8a94a0; border-color: #8a94a0; }

/* ---------------------------------------------------------------------- */
/* Select2 -- header grup provinsi yang bisa diklik (pilih Kabupaten/Kota) */
/* ---------------------------------------------------------------------- */

.select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option[role=group] .select2-results__group {
	padding: .375rem;
	line-height: 1.9;
	color: var(--amb-primary-light);
	cursor: pointer;
	transition: background-color .1s ease-in-out;
}
/* Bukan digantung ke class yang di-toggle JS (mis. .amb-clickable-group) -- select2
   me-render ulang (hapus & ganti elemen) daftar hasil tiap kali admin mengetik di kotak
   pencarian, jadi class yang ditambahkan sekali via JS ke elemen lama hilang lagi begitu
   hasil pencarian dirender ulang. Berlaku permanen lewat selector saja supaya hover tetap
   jalan baik sebelum maupun sesudah mengetik pencarian. */
.select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option[role=group] .select2-results__group:hover {
	background-color: #e9ecef;
}

.select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option[role=group] .select2-results__options--nested .select2-results__option {
	padding: .375rem 1.75rem;
}
