/**
 * Microfinance Core — Phase 4 global design tokens (Trust & Growth)
 * Load before style.css on every page.
 */

:root {
    /* Brand core */
    --mf-primary:        #1E3A8A;
    --mf-primary-dark:   #172554;
    --mf-primary-light:  #DBEAFE;
    --mf-secondary:      #0D9488;
    --mf-accent:         #D97706;
    --mf-success:        #059669;
    --mf-warning:        #D97706;
    --mf-danger:         #DC2626;
    --mf-info:           #0284C7;
    --mf-bg:             #F8FAFC;
    --mf-surface:        #FFFFFF;
    --mf-border:         #E2E8F0;
    --mf-border-input:   #CBD5E1;
    --mf-text:           #0F172A;
    --mf-text-muted:     #64748B;
    --mf-row-stripe:     #F1F5F9;
    --mf-row-hover:      #DBEAFE;

    /* Module accents */
    --mf-module-ledger:     #1E40AF;
    --mf-module-customers:  #0D9488;
    --mf-module-loans:      #7C3AED;
    --mf-module-vault:      #B45309;
    --mf-module-reports:    #0284C7;
    --mf-module-savings:    #0D9488;
    --mf-module-transactions: #1E3A8A;
    --mf-module-operations: #475569;
    --mf-module-accounts:   #1E3A8A;
    --mf-module-dashboard:  #1E3A8A;

    /* Legacy aliases (style.css + templates) */
    --primary:             var(--mf-primary);
    --primary-dark:        var(--mf-primary-dark);
    --primary-color:       var(--mf-primary);
    --primary-light:       var(--mf-primary-light);
    --secondary:           var(--mf-secondary);
    --success:             var(--mf-success);
    --danger:              var(--mf-danger);
    --gold:                var(--mf-accent);
    --warning:             var(--mf-warning);
    --info:                var(--mf-info);
    --border:              var(--mf-border);
    --muted:               var(--mf-text-muted);
    --bg-light:            var(--mf-bg);
    --shadow:              0 2px 8px rgba(15, 23, 42, 0.06);
    --shadow-lg:           0 10px 25px rgba(15, 23, 42, 0.12);

    /* Layout */
    --navbar-height-top:     50px;
    --navbar-height-bottom:  42px;
    --context-bar-height:    38px;
    --total-nav-height:      calc(var(--navbar-height-top) + var(--navbar-height-bottom) + var(--context-bar-height));

    /* Bootstrap 5 overrides */
    --bs-primary:            #1E3A8A;
    --bs-primary-rgb:        30, 58, 138;
    --bs-secondary:          #0D9488;
    --bs-secondary-rgb:      13, 148, 136;
    --bs-success:            #059669;
    --bs-success-rgb:        5, 150, 105;
    --bs-danger:             #DC2626;
    --bs-danger-rgb:         220, 38, 38;
    --bs-warning:            #D97706;
    --bs-warning-rgb:        217, 119, 6;
    --bs-info:               #0284C7;
    --bs-info-rgb:           2, 132, 199;
    --bs-body-bg:            #F8FAFC;
    --bs-body-color:         #0F172A;
    --bs-border-color:       #E2E8F0;
    --bs-link-color:         #1E3A8A;
    --bs-link-hover-color:   #172554;
}

/* ------------------------------------------------------------------ */
/* Base                                                                 */
/* ------------------------------------------------------------------ */

body {
    background-color: var(--mf-bg);
    color: var(--mf-text);
}

/* ------------------------------------------------------------------ */
/* Buttons                                                            */
/* ------------------------------------------------------------------ */

.btn-primary {
    background-color: var(--mf-primary);
    border-color: var(--mf-primary);
}
.btn-primary:hover,
.btn-primary:focus {
    background-color: var(--mf-primary-dark);
    border-color: var(--mf-primary-dark);
}

.btn-success {
    background-color: var(--mf-success);
    border-color: var(--mf-success);
}

.btn-warning {
    background-color: var(--mf-warning);
    border-color: var(--mf-warning);
    color: #fff;
}

.btn-danger {
    background-color: var(--mf-danger);
    border-color: var(--mf-danger);
}

.btn-outline-primary {
    color: var(--mf-primary);
    border-color: var(--mf-primary);
}
.btn-outline-primary:hover {
    background-color: var(--mf-primary);
    border-color: var(--mf-primary);
    color: #fff;
}

.btn-outline-success {
    color: var(--mf-success);
    border-color: var(--mf-success);
}
.btn-outline-success:hover {
    background-color: var(--mf-success);
    border-color: var(--mf-success);
    color: #fff;
}

/* ------------------------------------------------------------------ */
/* Forms                                                              */
/* ------------------------------------------------------------------ */

.form-control,
.form-select {
    border: 1.5px solid var(--mf-border-input);
    border-radius: 8px;
    background-color: var(--mf-surface);
    color: var(--mf-text);
}

.form-control:focus,
.form-select:focus {
    border-color: var(--mf-primary);
    box-shadow: 0 0 0 3px rgba(30, 58, 138, 0.15);
}

.form-control.is-valid,
.form-select.is-valid {
    border-color: var(--mf-success);
    box-shadow: 0 0 0 3px rgba(5, 150, 105, 0.12);
}

.form-control.is-invalid,
.form-select.is-invalid {
    border-color: var(--mf-danger);
    box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.12);
}

.form-label {
    color: var(--mf-text);
    font-weight: 600;
}

/* ------------------------------------------------------------------ */
/* Tables — global banking report style                                 */
/* ------------------------------------------------------------------ */

.table,
.admin-table,
.report-table,
.gl-table,
.accounts-table {
    border-collapse: separate;
    border-spacing: 0;
}

.table thead th,
.admin-table thead th,
.admin-table th,
.report-table thead th,
.report-table th,
.gl-table thead th,
.accounts-table thead th,
.accounts-table th {
    background: var(--mf-primary-dark) !important;
    color: #fff !important;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    border: none !important;
    padding: 0.7rem 1rem;
    vertical-align: middle;
}

.table tbody tr:nth-child(even),
.admin-table tbody tr:nth-child(even),
.report-table tbody tr:nth-child(even),
.gl-table tbody tr:nth-child(even),
.accounts-table tbody tr:nth-child(even) {
    background-color: var(--mf-row-stripe);
}

.table tbody tr:nth-child(odd),
.admin-table tbody tr:nth-child(odd),
.report-table tbody tr:nth-child(odd),
.gl-table tbody tr:nth-child(odd),
.accounts-table tbody tr:nth-child(odd) {
    background-color: var(--mf-surface);
}

.table-hover tbody tr:hover,
.admin-table tbody tr:hover,
.report-table tbody tr:hover,
.gl-table tbody tr:hover,
.accounts-table tbody tr:hover {
    background-color: var(--mf-row-hover) !important;
}

.table tfoot td,
.table tfoot th,
.report-table tfoot td,
.admin-table tfoot td {
    background: var(--mf-primary-light);
    color: var(--mf-primary-dark);
    font-weight: 700;
    border-top: 2px solid var(--mf-primary);
}

.table td,
.admin-table td,
.report-table td,
.gl-table tbody td,
.accounts-table td {
    border-top: 1px solid var(--mf-border);
    vertical-align: middle;
    padding: 0.65rem 1rem;
}

/* ------------------------------------------------------------------ */
/* Cards & sections                                                   */
/* ------------------------------------------------------------------ */

.card {
    background: var(--mf-surface);
    border: 1px solid var(--mf-border);
}

.card-header {
    background: var(--mf-surface);
    border-bottom: 1px solid var(--mf-border);
    color: var(--mf-text);
}

/* ------------------------------------------------------------------ */
/* Module nav pills (shared pattern)                                    */
/* ------------------------------------------------------------------ */

.ledger-font    { --module-accent: var(--mf-module-ledger); }
.customers-font,
.cust-font      { --module-accent: var(--mf-module-customers); }
.loans-font     { --module-accent: var(--mf-module-loans); }
.vault-font     { --module-accent: var(--mf-module-vault); }
.reports-font   { --module-accent: var(--mf-module-reports); }
.savings-font   { --module-accent: var(--mf-module-savings); }
.txn-font       { --module-accent: var(--mf-module-transactions); }
.ops-font       { --module-accent: var(--mf-module-operations); }
.accounts-font  { --module-accent: var(--mf-module-accounts); }

.ledger-nav .nav-link,
.cust-nav .nav-link,
.customers-nav .nav-link,
.loans-nav .nav-link,
.vault-nav .nav-link,
.reports-nav .nav-link,
.savings-nav .nav-link,
.txn-nav .nav-link,
.ops-nav .nav-link,
.accounts-nav .nav-link {
    color: var(--mf-text-muted);
    border-radius: 6px;
    transition: background 0.2s, color 0.2s;
}

.ledger-nav .nav-link.active,
.cust-nav .nav-link.active,
.customers-nav .nav-link.active,
.loans-nav .nav-link.active,
.vault-nav .nav-link.active,
.reports-nav .nav-link.active,
.savings-nav .nav-link.active,
.txn-nav .nav-link.active,
.ops-nav .nav-link.active,
.accounts-nav .nav-link.active,
.loans-nav .nav-link:hover,
.txn-nav .nav-link:hover {
    background: var(--module-accent, var(--mf-primary)) !important;
    color: #fff !important;
}

/* ------------------------------------------------------------------ */
/* Top navbar                                                         */
/* ------------------------------------------------------------------ */

.navbar-top {
    background: linear-gradient(180deg, var(--mf-primary) 0%, var(--mf-primary-dark) 100%);
    border-bottom: 2px solid var(--mf-accent);
}

.navbar-bottom {
    background-color: var(--mf-primary-dark);
}

.navbar-bottom .nav-link:hover,
.navbar-bottom .nav-link.active {
    background-color: rgba(255, 255, 255, 0.12) !important;
    color: #fff !important;
}

/* ------------------------------------------------------------------ */
/* Alerts & badges                                                    */
/* ------------------------------------------------------------------ */

.alert-success { background: #ECFDF5; color: #065F46; border-left: 4px solid var(--mf-success); }
.alert-danger  { background: #FEF2F2; color: #991B1B; border-left: 4px solid var(--mf-danger); }
.alert-warning { background: #FFFBEB; color: #92400E; border-left: 4px solid var(--mf-warning); }
.alert-info    { background: #EFF6FF; color: #1E40AF; border-left: 4px solid var(--mf-info); }

.badge.bg-success, .badge-success { background-color: var(--mf-success) !important; }
.badge.bg-danger, .badge-danger   { background-color: var(--mf-danger) !important; }
.badge.bg-warning, .badge-warning { background-color: var(--mf-warning) !important; color: #fff; }

/* ------------------------------------------------------------------ */
/* Dropdowns                                                          */
/* ------------------------------------------------------------------ */

.dropdown-item:hover {
    background: var(--mf-primary-light);
    color: var(--mf-primary-dark);
}

.dropdown-header {
    color: var(--mf-accent);
}
