/* ===================================================================
   BMS — App Theme Layer (global)
   Diselaraskan dengan logo Koperasi Indonesia: hijau daun, kuning emas,
   merah (merah-putih), putih. Dimuat PALING AKHIR agar menyatukan tampilan
   seluruh modul (admin, anggota, pengurus, guest) tanpa mengubah layout.
   =================================================================== */

:root {
    /* ---- Brand palette (override design tokens style.css) ---- */
    --primary:        #0B431F;   /* hijau tua: navbar, heading */
    --primary-light:  #15723A;
    --secondary:      #18803A;   /* hijau aksi: tombol, fokus, aksen */
    --secondary-light:#23A148;
    --accent:         #EFB60E;   /* kuning emas: roda gigi/bintang */

    --success:        #15803D;  --success-soft: #d8f0de;
    --warning:        #EFB60E;  --warning-soft: #fdf3d2;
    --danger:         #D81E27;  --danger-soft:  #fde0e1;
    --info:           #0E7490;  --info-soft:    #d2f0f5;

    --shadow-glow:    0 0 20px rgba(24,128,58,.16);

    /* ---- Bootstrap 5.3 variable remap ---- */
    --bs-primary:               #18803A;
    --bs-primary-rgb:           24,128,58;
    --bs-link-color:            #18803A;
    --bs-link-color-rgb:        24,128,58;
    --bs-link-hover-color:      #B8860B;
    --bs-primary-text-emphasis: #0B431F;
    --bs-primary-bg-subtle:     #e3f2e8;
    --bs-primary-border-subtle: #bfe0c9;
}

/* Selection */
::selection { background: var(--primary); color: var(--accent); }

/* ===================== BUTTONS (Bootstrap remap) ===================== */
.btn { font-weight: 600; transition: all .2s cubic-bezier(.16,1,.3,1); }
.btn:hover { transform: translateY(-1px); }

.btn-primary {
    --bs-btn-bg: #18803A; --bs-btn-border-color: #18803A;
    --bs-btn-hover-bg: #15723A; --bs-btn-hover-border-color: #15723A;
    --bs-btn-active-bg: #0B431F; --bs-btn-active-border-color: #0B431F;
    --bs-btn-disabled-bg: #18803A; --bs-btn-disabled-border-color: #18803A;
}
.btn-outline-primary {
    --bs-btn-color: #18803A; --bs-btn-border-color: #18803A;
    --bs-btn-hover-bg: #18803A; --bs-btn-hover-border-color: #18803A;
    --bs-btn-active-bg: #15723A; --bs-btn-active-border-color: #15723A;
}
.btn-success {
    --bs-btn-bg: #15803D; --bs-btn-border-color: #15803D;
    --bs-btn-hover-bg: #116631; --bs-btn-hover-border-color: #116631;
    --bs-btn-active-bg: #0e5429;
}
.btn-warning {
    --bs-btn-bg: #EFB60E; --bs-btn-border-color: #EFB60E; --bs-btn-color: #3a2c00;
    --bs-btn-hover-bg: #d8a40b; --bs-btn-hover-border-color: #d8a40b; --bs-btn-hover-color: #3a2c00;
    --bs-btn-active-bg: #c2920a; --bs-btn-active-color: #3a2c00;
}
.btn-danger {
    --bs-btn-bg: #D81E27; --bs-btn-border-color: #D81E27;
    --bs-btn-hover-bg: #b0151d; --bs-btn-hover-border-color: #b0151d;
    --bs-btn-active-bg: #930f16;
}
.btn-info {
    --bs-btn-bg: #0E7490; --bs-btn-border-color: #0E7490; --bs-btn-color: #fff;
    --bs-btn-hover-bg: #0b5e75; --bs-btn-hover-border-color: #0b5e75; --bs-btn-hover-color: #fff;
}

/* ===================== COLOR UTILITIES ===================== */
.bg-primary   { --bs-bg-opacity: 1; background-color: #18803A !important; }
.bg-success   { background-color: #15803D !important; }
.bg-warning   { background-color: #EFB60E !important; }
.bg-danger    { background-color: #D81E27 !important; }
.text-primary { color: #18803A !important; }
.text-success { color: #15803D !important; }
.text-warning { color: #C2920A !important; }
.text-danger  { color: #D81E27 !important; }
.border-primary { border-color: #18803A !important; }
.link-primary { color: #18803A !important; }
a { color: #18803A; }
a:hover { color: #B8860B; }

/* navbar/sidebar dark brand surfaces that use bg-primary */
.navbar.bg-primary, .bg-primary-custom { background: linear-gradient(100deg, #0B431F, #15723A) !important; }
.navbar-dark-modern { background: linear-gradient(100deg, #0B431F, #15723A) !important; }

/* ===================== CARDS ===================== */
.card {
    border: 1px solid rgba(11,67,31,.08);
    border-radius: 1rem;
    box-shadow: 0 1px 2px rgba(11,67,31,.04), 0 8px 24px rgba(11,67,31,.05);
    transition: box-shadow .3s ease, transform .3s ease;
}
.card:hover { box-shadow: 0 10px 30px rgba(11,67,31,.10); }
.card-header { border-bottom: 1px solid rgba(11,67,31,.07); font-weight: 600; }

/* stat card primary gradient -> green */
.stat-primary { background: linear-gradient(135deg, #18803A, #0B431F) !important; }
.stat-success { background: linear-gradient(135deg, #15803D, #116631) !important; }
.stat-warning { background: linear-gradient(135deg, #EFB60E, #C2920A) !important; }
.stat-danger  { background: linear-gradient(135deg, #D81E27, #B0151D) !important; }

/* dashboard menu cards */
.dashboard-menu-card { border-radius: 1rem; transition: all .3s cubic-bezier(.16,1,.3,1); }
.dashboard-menu-card:hover { transform: translateY(-6px); border-color: #18803A; box-shadow: 0 14px 30px rgba(11,67,31,.12); }

/* ===================== TABLES ===================== */
.table-responsive { border-radius: 1rem; }
.table thead th {
    background: #0B431F; color: rgba(255,255,255,.85);
    text-transform: uppercase; font-size: .72rem; letter-spacing: .06em;
    font-weight: 600; border-bottom: none; white-space: nowrap;
}
.table thead th:first-child { border-top-left-radius: .6rem; }
.table thead th:last-child  { border-top-right-radius: .6rem; }
.table-hover tbody tr { transition: background .15s ease; }
.table-hover tbody tr:hover { background: #f2f8f3; }

/* ===================== FORMS ===================== */
.form-control, .form-select {
    border-radius: .6rem; border: 1.5px solid #e2e8e2; transition: all .15s ease;
}
.form-control:focus, .form-select:focus {
    border-color: #18803A; box-shadow: 0 0 0 .2rem rgba(24,128,58,.15);
}
.form-check-input:checked { background-color: #18803A; border-color: #18803A; }
.form-check-input:focus { border-color: #18803A; box-shadow: 0 0 0 .2rem rgba(24,128,58,.15); }
.input-group-text { border-radius: .6rem; }

/* ===================== BADGES ===================== */
.badge { font-weight: 600; letter-spacing: .02em; }
.badge.bg-primary { background-color: #18803A !important; }
.badge.bg-success { background-color: #15803D !important; }
.badge.bg-warning { background-color: #EFB60E !important; color: #3a2c00 !important; }
.badge.bg-danger  { background-color: #D81E27 !important; }

/* ===================== NAV / TABS / PILLS / PAGINATION ===================== */
.nav-pills .nav-link.active, .nav-pills .show > .nav-link { background-color: #18803A; }
.nav-tabs .nav-link.active { color: #18803A; border-bottom-color: #fff; }
.nav-tabs .nav-link:hover { border-color: transparent transparent #18803A; }
.page-link { color: #18803A; border-radius: .5rem; margin: 0 2px; border: none; }
.page-item.active .page-link { background-color: #18803A; border-color: #18803A; }
.list-group-item.active { background-color: #18803A; border-color: #18803A; }

/* ===================== MODALS / DROPDOWNS / ALERTS ===================== */
.modal-content { border: none; border-radius: 1.1rem; box-shadow: 0 30px 70px rgba(11,67,31,.25); overflow: hidden; }
.modal-header { border-bottom: 1px solid rgba(11,67,31,.08); }
.modal-footer { border-top: 1px solid rgba(11,67,31,.08); }
.dropdown-menu { border: none; border-radius: .9rem; box-shadow: 0 12px 34px rgba(11,67,31,.14); padding: .4rem; }
.dropdown-item { border-radius: .55rem; padding: .55rem .85rem; transition: background .15s ease; }
.dropdown-item:active, .dropdown-item.active { background-color: #18803A; }
.alert { border: none; border-radius: .8rem; }
.alert-success { background: #d8f0de; color: #0e5429; }
.alert-warning { background: #fdf3d2; color: #7a5c02; }
.alert-danger  { background: #fde0e1; color: #93131a; }
.alert-info    { background: #d2f0f5; color: #0b5563; }

/* progress */
.progress { border-radius: 50rem; background: #eef3ee; }
.progress-bar { background-color: #18803A; }

/* ===================== INTERACTIVITY / POLISH ===================== */
html { scroll-behavior: smooth; }

/* Smooth fade-in for main content */
@keyframes appFadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
main, .container > .card, .content-fade { animation: appFadeIn .45s ease both; }

/* Nicer scrollbar */
* { scrollbar-width: thin; scrollbar-color: #b9cdbe transparent; }
*::-webkit-scrollbar { width: 10px; height: 10px; }
*::-webkit-scrollbar-thumb { background: #b9cdbe; border-radius: 50rem; border: 2px solid transparent; background-clip: content-box; }
*::-webkit-scrollbar-thumb:hover { background: #18803A; background-clip: content-box; }

@media (prefers-reduced-motion: reduce) {
    main, .container > .card, .content-fade { animation: none; }
    .btn:hover, .card:hover, .dashboard-menu-card:hover { transform: none; }
    html { scroll-behavior: auto; }
}
