:root {
    --bs-body-font-family: 'Source Sans 3', system-ui, sans-serif;
  --bs-body-font-size: 0.875rem;
    --erp-heading-font-family: 'Manrope', 'Source Sans 3', sans-serif;
    --erp-brand-blue: #087ba9;
    --erp-brand-green: #477d20;
    --erp-brand-gold: #e8ad25;
    --bs-primary: var(--erp-brand-blue);
    --bs-primary-rgb: 8, 123, 169;
    --bs-success: var(--erp-brand-green);
    --bs-success-rgb: 71, 125, 32;
    --bs-warning: var(--erp-brand-gold);
    --bs-warning-rgb: 232, 173, 37;
    --bs-info: #16a7d1;
    --bs-info-rgb: 22, 167, 209;
    --bs-link-color: #087ba9;
    --bs-link-hover-color: #075f83;
    --bs-focus-ring-color: rgba(7, 137, 191, 0.25);
    --erp-bg: #f2f8fa;
    --erp-sidebar-bg: #12394b;
    --erp-sidebar-text: #d2e6ec;
    --erp-sidebar-hover: #1b4c60;
    --erp-sidebar-active: #087ba9;
  --erp-card-bg: #ffffff;
    --erp-border: #d9e7eb;
    --erp-text-muted: #607984;
  --erp-topbar-bg: #ffffff;
}

[data-bs-theme="dark"] {
    --bs-primary: #58c4e1;
    --bs-primary-rgb: 88, 196, 225;
    --bs-success: #8bc85b;
    --bs-success-rgb: 139, 200, 91;
    --bs-warning: #f2c14b;
    --bs-warning-rgb: 242, 193, 75;
    --bs-info: #43c2df;
    --bs-info-rgb: 67, 194, 223;
    --bs-link-color: #58c4e1;
    --bs-link-hover-color: #9cdeed;
    --bs-focus-ring-color: rgba(22, 167, 209, 0.3);
    --erp-bg: #0b202a;
    --erp-sidebar-bg: #071820;
    --erp-sidebar-text: #c5dce3;
    --erp-sidebar-hover: #153745;
    --erp-sidebar-active: #087ba9;
    --erp-card-bg: #112d39;
    --erp-border: #294854;
    --erp-text-muted: #9bb6c0;
    --erp-topbar-bg: #102a35;
}

body { 
  background-color: var(--erp-bg); 
  color: var(--bs-body-color); 
  font-family: var(--bs-body-font-family); 
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--erp-heading-font-family);
}

.btn-primary {
    --bs-btn-bg: var(--erp-brand-blue);
    --bs-btn-border-color: var(--erp-brand-blue);
    --bs-btn-hover-bg: #06668c;
    --bs-btn-hover-border-color: #065b7d;
    --bs-btn-active-bg: #055573;
    --bs-btn-active-border-color: #054d69;
    --bs-btn-disabled-bg: var(--erp-brand-blue);
    --bs-btn-disabled-border-color: var(--erp-brand-blue);
}

.btn-success {
    --bs-btn-bg: var(--erp-brand-green);
    --bs-btn-border-color: var(--erp-brand-green);
    --bs-btn-hover-bg: #3e6e1c;
    --bs-btn-hover-border-color: #39651a;
    --bs-btn-active-bg: #365f18;
    --bs-btn-active-border-color: #325817;
}

.btn-outline-primary {
    color: var(--erp-brand-blue);
    border-color: var(--erp-brand-blue);
    --bs-btn-color: var(--erp-brand-blue);
    --bs-btn-border-color: var(--erp-brand-blue);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--erp-brand-blue);
    --bs-btn-hover-border-color: var(--erp-brand-blue);
    --bs-btn-focus-shadow-rgb: 8, 123, 169;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--erp-brand-blue);
    --bs-btn-active-border-color: var(--erp-brand-blue);
    --bs-btn-disabled-color: var(--erp-brand-blue);
    --bs-btn-disabled-border-color: var(--erp-brand-blue);
}

.btn-outline-success {
    color: var(--erp-brand-green);
    border-color: var(--erp-brand-green);
    --bs-btn-color: var(--erp-brand-green);
    --bs-btn-border-color: var(--erp-brand-green);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--erp-brand-green);
    --bs-btn-hover-border-color: var(--erp-brand-green);
    --bs-btn-focus-shadow-rgb: 71, 125, 32;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--erp-brand-green);
    --bs-btn-active-border-color: var(--erp-brand-green);
    --bs-btn-disabled-color: var(--erp-brand-green);
    --bs-btn-disabled-border-color: var(--erp-brand-green);
}

.btn-outline-info {
    color: #087ba9;
    border-color: #16a7d1;
    --bs-btn-color: #087ba9;
    --bs-btn-border-color: #16a7d1;
    --bs-btn-hover-color: #073748;
    --bs-btn-hover-bg: #16a7d1;
    --bs-btn-hover-border-color: #16a7d1;
    --bs-btn-focus-shadow-rgb: 22, 167, 209;
    --bs-btn-active-color: #073748;
    --bs-btn-active-bg: #16a7d1;
    --bs-btn-active-border-color: #16a7d1;
}

.btn-warning {
    --bs-btn-color: #2a1b00;
    --bs-btn-bg: var(--bs-warning);
    --bs-btn-border-color: var(--bs-warning);
    --bs-btn-hover-color: #2a1b00;
    --bs-btn-hover-bg: #d49b18;
    --bs-btn-hover-border-color: #c99016;
    --bs-btn-active-color: #2a1b00;
    --bs-btn-active-bg: #c99016;
    --bs-btn-active-border-color: #bd8714;
    --bs-btn-disabled-color: #2a1b00;
    --bs-btn-disabled-bg: var(--bs-warning);
    --bs-btn-disabled-border-color: var(--bs-warning);
}

[data-bs-theme="dark"] .btn-outline-primary {
    color: #58c4e1;
    border-color: #58c4e1;
    --bs-btn-color: #58c4e1;
    --bs-btn-border-color: #58c4e1;
    --bs-btn-disabled-color: #58c4e1;
    --bs-btn-disabled-border-color: #58c4e1;
}

[data-bs-theme="dark"] .btn-outline-success {
    color: #91c968;
    border-color: #91c968;
    --bs-btn-color: #91c968;
    --bs-btn-border-color: #91c968;
    --bs-btn-disabled-color: #91c968;
    --bs-btn-disabled-border-color: #91c968;
}

[data-bs-theme="dark"] .btn-outline-info {
    color: #58c4e1;
    border-color: #58c4e1;
    --bs-btn-color: #58c4e1;
    --bs-btn-border-color: #58c4e1;
    --bs-btn-hover-color: #073748;
    --bs-btn-hover-bg: #58c4e1;
    --bs-btn-hover-border-color: #58c4e1;
}

/* Sidebar */
.sidebar { 
  background: var(--erp-sidebar-bg); 
  min-height: 100vh; 
  color: var(--erp-sidebar-text); 
  overflow-y: auto; /* Prevents links from being cut off */
}
.sidebar .brand {
    padding: 1.25rem 1rem; border-bottom: 1px solid var(--erp-sidebar-hover);
    font-weight: 700; font-size: 1.05rem; color:#fff; line-height:1.25;
    display: flex; align-items: center; gap: 10px;
}
.sidebar .brand img { max-height: 32px; border-radius: 4px; }
.sidebar .brand small { color:#a7c9d3; font-weight:400; font-size:.72rem; display:block; }

.sidebar .nav-group-header {
    color: #8bb7c5; font-size: 0.7rem; letter-spacing: 0.08em; 
    text-transform: uppercase; font-weight: 700; padding: 1rem 1.25rem 0.25rem 1.25rem;
}
[data-bs-theme="dark"] .sidebar .nav-group-header { color: #8fb7c3; }

/* Added 'a' tag to increase specificity and override Bootstrap defaults */
a.sidebar-link {
    color: var(--erp-sidebar-text) !important; 
    padding:.7rem 1rem !important; 
    border-radius:.4rem !important;
    margin:2px 8px !important; 
    font-size:.85rem !important; 
    display:flex !important; 
    align-items:center !important; 
    gap:.55rem !important; 
    font-weight: 500 !important;
    background-color: transparent !important; 
    text-decoration: none !important;
}
a.sidebar-link:hover { background-color: var(--erp-sidebar-hover) !important; color:#fff !important; }
a.sidebar-link.active { background-color: var(--erp-sidebar-active) !important; color:#fff !important; font-weight:600 !important; }

/* Topbar */
.topbar {
    background:var(--erp-topbar-bg); border-bottom:1px solid var(--erp-border);
    padding:.65rem 1rem; position:sticky; top:0; z-index:1020;
}

/* Cards & Components */
.kpi-card {
    background-color: var(--erp-card-bg); border: 1px solid var(--erp-border); border-radius:.75rem;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}
.card { background-color: var(--erp-card-bg); border: 1px solid var(--erp-border); }
.table-light { background-color: var(--erp-card-bg) !important; color: var(--erp-text-muted) !important; border-color: var(--erp-border) !important; }
.table > :not(caption) > * > * { background-color: transparent !important; }
.table-light, .table-light th, .table-light a {
    color: var(--erp-text-muted) !important; font-weight: 600 !important;
}
.table-light a:hover { color: var(--bs-primary) !important; }

.icon-box {
    width:42px; height:42px; display:inline-flex; align-items:center;
    justify-content:center; border-radius:.5rem; font-size:1.1rem;
}
.progress { height:6px; border-radius:3px; background-color: var(--erp-border); }
.section-title {
    text-transform:uppercase; letter-spacing:.05em;
    font-size:.72rem; font-weight:700; color:var(--erp-text-muted); margin-bottom:.75rem;
}

/* Kanban & Task specific */
.kanban-col { background: var(--erp-bg); border: 1px solid var(--erp-border); border-radius:.6rem; min-height:300px; }
.task-card { background: var(--erp-card-bg); border: 1px solid var(--erp-border); border-left:3px solid #94a3b8; border-radius:.5rem; margin-bottom:.55rem; }

/* Dark mode tweaks for Bootstrap components */
[data-bs-theme="dark"] .form-control, [data-bs-theme="dark"] .form-select {
    background-color: var(--erp-bg); border-color: var(--erp-border); color: #e2e8f0;
}
[data-bs-theme="dark"] .form-control:focus, [data-bs-theme="dark"] .form-select:focus {
    background-color: var(--erp-bg); color: #e2e8f0; border-color: var(--bs-primary);
}
[data-bs-theme="dark"] .form-label, 
[data-bs-theme="dark"] .modal-title,
[data-bs-theme="dark"] .accordion-button {
    color: #e2e8f0 !important;
}
[data-bs-theme="dark"] .accordion-button:not(.collapsed) {
    background-color: var(--erp-card-bg); color: #fff !important;
}
[data-bs-theme="dark"] .accordion-item {
    background-color: var(--erp-card-bg); border-color: var(--erp-border) !important;
}
[data-bs-theme="dark"] .btn-light { background-color: var(--erp-border); border-color: var(--erp-border); color: #e2e8f0; }
[data-bs-theme="dark"] .bg-light {
    background-color: var(--erp-card-bg) !important;
    color: #e2e8f0 !important;
}
[data-bs-theme="dark"] .modal-title { color: #ffffff !important; }

@media (max-width: 991.98px) { .sidebar { min-height:auto; } }
/* Fix Pagination visibility in Dark Mode */
[data-bs-theme="dark"] .page-link {
    background-color: var(--erp-card-bg);
    border-color: var(--erp-border);
    color: #e2e8f0;
}
[data-bs-theme="dark"] .page-item.active .page-link {
    background-color: var(--erp-sidebar-active);
    border-color: var(--erp-sidebar-active);
    color: #fff;
}
[data-bs-theme="dark"] .page-item.disabled .page-link {
    background-color: var(--erp-border);
    border-color: var(--erp-border);
    color: var(--erp-text-muted);
}
[data-bs-theme="dark"] .page-link:hover {
    background-color: var(--erp-sidebar-hover);
    border-color: var(--erp-border);
    color: #fff;
}

/* CRM lead-list toolbar */
.crm-toolbar-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 1rem;
}
.crm-toolbar-header h5 { font-weight: 700; }
.crm-toolbar-actions,
.crm-utility-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: .5rem;
}
.crm-toolbar-actions { flex: 1; }
.crm-utility-actions { margin-right: .25rem; }
.crm-bulk-bar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .65rem;
    padding: .65rem .75rem;
    margin-bottom: 1rem;
    border: 1px solid var(--erp-border);
    border-radius: .55rem;
    background: var(--erp-bg);
}
.crm-toolbar-label {
    color: var(--erp-text-muted);
    font-size: .78rem;
    font-weight: 700;
    white-space: nowrap;
}
.crm-bulk-form {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .5rem;
    flex: 1;
}
.crm-bulk-action { min-width: 150px; }
.crm-bulk-value { min-width: 170px; }
.crm-filter-bar {
    display: grid;
    grid-template-columns: minmax(220px, 1.6fr) minmax(200px, 1.4fr) minmax(170px, 1fr) minmax(90px, .55fr);
    align-items: end;
    gap: .75rem;
    padding: .85rem;
    border: 1px solid var(--erp-border);
    border-radius: .65rem;
    background: var(--erp-card-bg);
}
.crm-filter-bar .form-label {
    display: block;
    color: var(--erp-text-muted);
    font-weight: 600;
}
.crm-filter-bar .form-control,
.crm-filter-bar .form-select,
.crm-filter-bar .input-group-text {
    min-height: 38px;
}
.crm-filter-bar .input-group-text {
    color: var(--erp-text-muted);
    background: var(--erp-bg);
    border-color: var(--erp-border);
}
.crm-status-tag-box {
    min-height: 38px;
    height: auto;
    padding: .3rem .5rem;
    cursor: text;
}
.crm-status-tag-box:focus-within {
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 .2rem var(--bs-focus-ring-color);
}
.crm-status-tag-input {
    min-width: 90px;
    padding: .15rem .25rem;
    outline: none;
    background: transparent;
    color: var(--bs-body-color);
}
.crm-status-tag-input::placeholder { color: var(--erp-text-muted); }
.crm-status-tag-box .btn {
    font-size: .72rem;
    line-height: 1.4;
}
#statusSuggestions {
    z-index: 1050;
    max-height: 240px;
    overflow-y: auto;
}

@media (max-width: 991.98px) {
    .crm-filter-bar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .crm-filter-search,
    .crm-filter-status { grid-column: span 2; }
    .crm-filter-domain { grid-column: span 2; }
}
@media (max-width: 575.98px) {
    .crm-toolbar-header {
        flex-direction: column;
        align-items: stretch;
    }
    .crm-toolbar-actions {
        justify-content: space-between;
        align-items: stretch;
    }
    .crm-utility-actions {
        justify-content: flex-start;
        margin-right: 0;
    }
    .crm-new-lead { flex: 1 0 100%; }
    .crm-filter-bar { grid-template-columns: minmax(0, 1fr); }
    .crm-filter-search,
    .crm-filter-status { grid-column: auto; }
    .crm-filter-domain { grid-column: auto; }
    .crm-bulk-form { flex-basis: 100%; }
    .crm-bulk-action,
    .crm-bulk-value { flex: 1 1 140px; }
}

.crm-pagination-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: .85rem 1.25rem;
    margin-top: 1.15rem;
    padding-top: 1rem;
    border-top: 1px solid var(--erp-border);
}
.crm-pagination-summary {
    color: var(--erp-text-muted);
    font-size: .84rem;
}
.crm-pagination-summary strong {
    color: var(--bs-body-color);
    font-weight: 700;
}
#paginationContainer {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin-left: auto;
}
.crm-pagination-list {
    display: flex;
    align-items: center;
    gap: .3rem;
}
.crm-pagination-list .page-link {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: .4rem;
    min-width: 2.25rem;
    min-height: 2.25rem;
    padding: .35rem .65rem;
    border: 1px solid transparent;
    border-radius: .45rem !important;
    background: transparent;
    color: var(--erp-text-muted);
    font-size: .82rem;
    font-weight: 600;
    text-decoration: none;
    box-shadow: none;
    transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.crm-pagination-list .page-link:hover:not(:disabled) {
    border-color: var(--erp-border);
    background: var(--erp-bg);
    color: var(--bs-primary);
}
.crm-pagination-list .page-item.active .page-link {
    border-color: var(--bs-primary);
    background: var(--bs-primary);
    color: #fff;
}
.crm-pagination-list .page-item.disabled .page-link,
.crm-pagination-list .page-link:disabled {
    opacity: .45;
    cursor: not-allowed;
}
.crm-pagination-list .crm-pagination-direction .page-link {
    padding-inline: .7rem;
    border-color: var(--erp-border);
    background: var(--erp-card-bg);
    color: var(--bs-body-color);
}
.crm-pagination-ellipsis .page-link {
    min-width: 1.5rem;
    padding-inline: .2rem;
    cursor: default;
}
.crm-page-position {
    display: none;
    color: var(--erp-text-muted);
    font-size: .78rem;
    white-space: nowrap;
}
[data-bs-theme="dark"] .crm-pagination-list .crm-pagination-direction .page-link {
    border-color: var(--erp-border);
    background: var(--erp-card-bg);
    color: #e2e8f0;
}
[data-bs-theme="dark"] .crm-pagination-list .page-item.active .page-link {
    border-color: var(--erp-sidebar-active);
    background: var(--erp-sidebar-active);
    color: #fff;
}
@media (max-width: 767.98px) {
    .crm-pagination-footer {
        align-items: flex-start;
        flex-direction: column;
    }
    #paginationContainer {
        justify-content: space-between;
        width: 100%;
        margin-left: 0;
    }
    .crm-page-position { display: inline; }
}
@media (max-width: 575.98px) {
    .crm-pagination-list { gap: .15rem; }
    .crm-pagination-list .page-link {
        min-width: 2rem;
        min-height: 2rem;
        padding: .3rem .45rem;
        font-size: .78rem;
    }
    .crm-pagination-list .crm-pagination-direction .page-link span { display: none; }
    .crm-pagination-list .crm-pagination-direction .page-link { min-width: 2rem; }
    .crm-pagination-ellipsis { display: none; }
    .crm-pagination-number:not(.active) { display: none; }
}
/* Pulsing notification for New Leads */
.blink-alert {
  animation: pulse-border 0.25s ease-in-out infinite;
}
@keyframes pulse-border {
  /* 0% { box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.7); border-color: #3b82f6; } */
  0% { box-shadow: 0 0 0 0 rgba(236, 214, 16, 0.7); border-color: #e4b90c; } 
  70% { box-shadow: 0 0 0 8px rgba(59, 130, 246, 0); border-color: #e9cf6a; }
  100% { box-shadow: 0 0 0 0 rgba(59, 130, 246, 0); border-color: #f8dd71; }
}