.bg-grd-primary {
	background-image: linear-gradient(310deg,#7928ca,#ff0080) !important;
}

.bg-grd-success {
	background-image: linear-gradient( 310deg,#17ad37,#98ec2d) !important;
}

.bg-grd-danger {
	background: linear-gradient(310deg, #ee0979, #ff6a00) !important;
}

.bg-grd-info {
	background-image: linear-gradient(310deg, #00c6fb 0%, #005bea 100%) !important;
}

.bg-grd-warning {
	background: linear-gradient(310deg, #f7971e, #ffd200) !important;
}

.bg-grd-voilet {
	background: linear-gradient(310deg, #3494e6, #ec6ead) !important;
}

.bg-grd-royal {
	background-image: linear-gradient(-20deg, #2b5876 0%, #4e4376 100%) !important;
}

.bg-grd-branding {
    background-image: linear-gradient(#2af598 0%, #009efd 100%) !important;
}

.bg-grd-deep-blue {
	background-image: linear-gradient(to right, #6a11cb 0%, #2575fc 100%) !important;
}

/* ---------- LoanMart UI polish (Phase C) ---------- */
body { -webkit-font-smoothing: antialiased; }
.page-container { animation: lm-fade .25s ease-out; }
@keyframes lm-fade { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
.card { border: 0; box-shadow: 0 1px 3px rgba(16,24,40,.08), 0 1px 2px rgba(16,24,40,.04); transition: box-shadow .2s; }
.card:hover { box-shadow: 0 4px 12px rgba(16,24,40,.08); }
.card-body { overflow-x: auto; }
.page-title-box h4 { font-weight: 600; letter-spacing: -.01em; }
.table > thead > tr > th { position: sticky; top: 0; z-index: 1; background: var(--bs-light, #f8f9fa); font-weight: 600; white-space: nowrap; }
.table td { vertical-align: middle; }
.table-sm td, .table-sm th { padding: .35rem .5rem; }
.dataTables_wrapper .dataTables_filter input { border-radius: 2rem; padding-left: .9rem; min-width: 220px; }
.dataTables_wrapper .dataTables_info { color: #6c757d; }
.badge { font-weight: 500; letter-spacing: .02em; padding: .35em .6em; }
.lm-age { font-variant-numeric: tabular-nums; }
tr.lm-overdue td { background: rgba(255,193,7,.12); }
tr.lm-late td { background: rgba(220,53,69,.10); }
.lm-toasts .alert { min-width: 280px; max-width: 420px; animation: lm-slide .25s ease-out; }
@keyframes lm-slide { from { opacity: 0; transform: translateX(24px); } to { opacity: 1; transform: none; } }
.btn { transition: transform .08s ease, box-shadow .15s ease; }
.btn:active { transform: scale(.98); }
.form-control:focus, .form-select:focus { box-shadow: 0 0 0 .2rem rgba(13,110,253,.12); }
.form-control:user-invalid, .form-select:user-invalid, .was-validated .form-control:invalid, .was-validated .form-select:invalid { border-color: #dc3545; }  /* only after the user has touched the field */
.lm-req { font-weight: 700; }
.lm-kpi { display: flex; align-items: center; gap: .9rem; }
.lm-kpi .lm-kpi-icon { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; font-size: 1.3rem; }
.lm-kpi .lm-kpi-value { font-size: 1.5rem; font-weight: 700; line-height: 1; }
.lm-kpi .lm-kpi-label { color: #6c757d; font-size: .8rem; }
.lm-queue .table td { padding: .45rem .5rem; }
@media (max-width: 767px) { .page-title-box .breadcrumb { display: none; } .dataTables_wrapper .dataTables_filter input { min-width: 0; width: 100%; } }
@media print { .sidenav-menu, .app-topbar, .dataTables_filter, .dataTables_length, .dataTables_paginate, .btn, .lm-toasts { display: none !important; } .page-content { margin: 0 !important; } }
/* Lead wizard */
.wizard-steps div { cursor: default; }
.wizard-steps .done { background: #e8f5e9; color: #2e7d32; cursor: pointer; }
.wizard-steps .done::before { content: "\2713\00a0"; }
.lm-summary { position: fixed; right: 16px; bottom: 16px; width: 300px; z-index: 1020; border-left: 4px solid #0d6efd; }
@media (max-width: 991px) { .lm-summary { display: none; } }
.step.was-validated :invalid { border-color: #dc3545; }
/* Document thumbnails */
.lm-doc { display: inline-flex; flex-direction: column; align-items: center; width: 96px; margin: 2px 6px 6px 0; text-decoration: none; color: #6c757d; font-size: .75rem; vertical-align: top; }
.lm-doc-img, .lm-doc-ph { width: 96px; height: 72px; object-fit: cover; border: 1px solid #dee2e6; border-radius: .375rem; background: #f8f9fa; }
.lm-doc-ph { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .15rem; }
.lm-doc-ph i { font-size: 1.5rem; }
.lm-doc:hover .lm-doc-img, .lm-doc:hover .lm-doc-ph { border-color: #0d6efd; box-shadow: 0 0 0 .15rem rgba(13,110,253,.15); }
.lm-doc-cap { margin-top: .2rem; }

/* =====================================================================
   LoanMart design layer — one place for the look. Overrides the theme.
   ===================================================================== */
:root {
  --lm-primary: #1f6fb2;        /* logo blue */
  --lm-primary-600: #185b93;
  --lm-primary-50: #eaf3fb;
  --lm-ink: #1c2434;            /* headings */
  --lm-text: #334155;           /* body */
  --lm-muted: #64748b;
  --lm-line: #e6eaf0;           /* hairlines */
  --lm-surface: #ffffff;
  --lm-canvas: #f4f6f9;         /* page background */
  --lm-radius: 14px;
  --lm-radius-sm: 10px;
  --lm-shadow: 0 1px 2px rgba(16,24,40,.04), 0 2px 8px rgba(16,24,40,.06);
  --lm-shadow-lg: 0 8px 24px rgba(16,24,40,.10);
  --bs-primary: var(--lm-primary);
  --bs-primary-rgb: 31,111,178;
  --bs-link-color: var(--lm-primary);
  --bs-body-color: var(--lm-text);
  --bs-body-bg: var(--lm-canvas);
  --bs-border-color: var(--lm-line);
}
body { color: var(--lm-text); background: var(--lm-canvas); font-size: .9rem; }
h1, h2, h3, h4, h5, h6, .h4, .h5 { color: var(--lm-ink); font-weight: 600; letter-spacing: -.01em; }

/* ---- Page header */
.page-title-box { padding: .25rem 0 1rem; margin-bottom: .25rem; }
.page-title-box h4 { font-size: 1.35rem; margin: 0; }
.breadcrumb { font-size: .8rem; }
.breadcrumb-item a { color: var(--lm-muted); text-decoration: none; }
.breadcrumb-item.active { color: var(--lm-ink); }

/* ---- Cards */
.card, .rounded-4.card { border: 0; border-radius: var(--lm-radius) !important; box-shadow: var(--lm-shadow); background: var(--lm-surface); margin-bottom: 1.25rem; }
.card:hover { box-shadow: var(--lm-shadow); }               /* no lift-on-hover: tables inside jitter */
.card-header { background: transparent; border-bottom: 1px solid var(--lm-line); padding: .9rem 1.25rem; }
.card-header .card-title, .card-header h5 { font-size: 1rem; font-weight: 600; color: var(--lm-ink); }
.card-body { padding: 1.25rem; }
.card .card { box-shadow: none; border: 1px solid var(--lm-line); }  /* nested cards flatten */

/* ---- Tables: borders → hairlines, hover rows, calm header */
.table { --bs-table-striped-bg: #fafbfd; --bs-table-hover-bg: var(--lm-primary-50); border-color: var(--lm-line); }
.table > :not(caption) > * > * { border-bottom: 1px solid var(--lm-line); padding: .6rem .75rem; }
.table-bordered > :not(caption) > * > * { border-width: 0 0 1px 0; }   /* kill vertical grid lines */
.table > thead > tr > th { background: #f8fafc; color: var(--lm-muted); font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; border-bottom: 1px solid var(--lm-line) !important; }
.table thead tr:nth-child(2) th { text-transform: none; letter-spacing: 0; padding-top: .25rem; padding-bottom: .5rem; }  /* filter rows */
.table tbody tr:last-child > * { border-bottom: 0; }
.table-striped > tbody > tr:nth-of-type(odd) > * { --bs-table-accent-bg: #fafbfd; }
.table tbody tr:hover > * { --bs-table-accent-bg: var(--lm-primary-50); }
.table .btn-sm { padding: .2rem .6rem; font-size: .75rem; }
.dataTables_wrapper .dataTables_length select { border-radius: 2rem; padding-right: 1.6rem; }
.dataTables_wrapper .dataTables_paginate .paginate_button.current { background: var(--lm-primary) !important; border-color: var(--lm-primary) !important; color: #fff !important; border-radius: 8px; }
.dataTables_wrapper .dataTables_paginate .paginate_button { border-radius: 8px; }
div.dt-container .dt-paging .dt-paging-button.current { background: var(--lm-primary); border-color: var(--lm-primary); color: #fff; border-radius: 8px; }
.wonlost td, .wonlost th { color: var(--lm-text) !important; }

/* ---- Forms: quiet inputs, readonly distinguishable, labels as captions */
label, .form-label { font-size: .78rem; font-weight: 600; color: var(--lm-muted); margin-bottom: .3rem; letter-spacing: .01em; }
.form-control, .form-select { border-radius: var(--lm-radius-sm); border: 1px solid #d9dee7; background: #fff; color: var(--lm-ink); padding: .5rem .8rem; font-size: .875rem; transition: border-color .15s, box-shadow .15s; }
.form-control:hover:not([readonly]):not(:disabled), .form-select:hover { border-color: #b9c3d2; }
.form-control:focus, .form-select:focus { border-color: var(--lm-primary); box-shadow: 0 0 0 3px rgba(31,111,178,.14); }
.form-control[readonly], .form-control:disabled { background: #f6f8fb; color: var(--lm-text); border-color: #e9edf3; cursor: default; }
.form-control::placeholder { color: #a3adbd; text-transform: none; }
.form-group { margin-bottom: 1rem; }
textarea.form-control { min-height: 84px; }
.form-check-input:checked { background-color: var(--lm-primary); border-color: var(--lm-primary); }
.is-valid, .form-control.is-valid { border-color: #2e9e6b !important; background-image: none; }

/* ---- Buttons */
.btn { border-radius: var(--lm-radius-sm); font-weight: 600; font-size: .85rem; padding: .5rem 1rem; letter-spacing: .01em; box-shadow: none; }
.btn-sm { padding: .3rem .7rem; font-size: .78rem; border-radius: 8px; }
.btn-primary { background: var(--lm-primary); border-color: var(--lm-primary); }
.btn-primary:hover, .btn-primary:focus { background: var(--lm-primary-600); border-color: var(--lm-primary-600); }
.btn-outline-primary { color: var(--lm-primary); border-color: #c7d9ea; }
.btn-outline-primary:hover { background: var(--lm-primary-50); color: var(--lm-primary-600); border-color: var(--lm-primary); }
.btn-light, .btn-outline-secondary { background: #fff; border-color: #d9dee7; color: var(--lm-text); }
.btn-light:hover, .btn-outline-secondary:hover { background: #f1f4f8; border-color: #c3ccd9; color: var(--lm-ink); }
.btn-success { background: #1f9d61; border-color: #1f9d61; }
.btn-warning { color: #3d2e00; }
.buttons .btn + .btn, .step_bottom_btns .btn + .btn { margin-left: .5rem; }
.step_bottom_btns { padding: 1rem 0 0; border-top: 1px solid var(--lm-line); margin-top: 1rem; }

/* ---- Badges: soft tints instead of solid blocks */
.badge { border-radius: 999px; padding: .35em .7em; font-size: .72rem; font-weight: 600; letter-spacing: .02em; }
.badge.bg-primary { background: var(--lm-primary-50) !important; color: var(--lm-primary-600) !important; }
.badge.bg-success { background: #e6f6ee !important; color: #1b7a4a !important; }
.badge.bg-warning { background: #fff4d6 !important; color: #8a5a00 !important; }
.badge.bg-danger  { background: #fdecec !important; color: #b42318 !important; }
.badge.bg-info    { background: #e3f3fb !important; color: #0b6b8f !important; }
.badge.bg-secondary { background: #eef1f5 !important; color: #475467 !important; }
.badge.bg-light   { background: #f1f4f8 !important; color: var(--lm-muted) !important; }

/* ---- Alerts / toasts */
.alert { border: 0; border-radius: var(--lm-radius-sm); box-shadow: var(--lm-shadow-lg); }

/* ---- Sidebar & topbar */
.side-nav .side-nav-link { border-radius: 10px; margin: 2px 10px; padding: .55rem .9rem; transition: background .15s, color .15s; }
.side-nav .side-nav-link:hover { background: rgba(255,255,255,.06); }
.side-nav .menuitem-active > .side-nav-link, .side-nav .side-nav-link.active { background: rgba(255,255,255,.12); color: #fff !important; }
.side-nav .side-nav-link .menu-icon { font-size: 1.05rem; }
.side-nav-title { font-size: .68rem; letter-spacing: .1em; opacity: .6; }
.side-nav .badge { font-size: .65rem; }

/* ---- Wizard steps */
.wizard-steps { gap: .5rem !important; margin-bottom: 1.25rem !important; }
.wizard-steps div { border: 1px solid var(--lm-line) !important; border-radius: 999px !important; background: #fff !important; color: var(--lm-muted) !important; font-size: .8rem; font-weight: 600; padding: .55rem .9rem !important; }
.wizard-steps .active { background: var(--lm-primary) !important; border-color: var(--lm-primary) !important; color: #fff !important; box-shadow: 0 4px 12px rgba(31,111,178,.25); }
.wizard-steps .done { background: #e6f6ee !important; border-color: #cdeedd !important; color: #1b7a4a !important; }
.step { border: 0 !important; padding: .25rem 0 !important; margin: 0 !important; }
.step_body h5, .step_body h6, .step_body .fw-bold.fs-5 { font-size: .95rem; margin: 1rem 0 .75rem; padding-bottom: .35rem; border-bottom: 1px solid var(--lm-line); }

/* ---- KPI tiles & queue (Phase C components) */
.lm-kpi .lm-kpi-icon { border-radius: 12px; }
.lm-kpi .lm-kpi-value { color: var(--lm-ink); }
.lm-queue .table td { padding: .55rem .75rem; }
.lm-summary { border-radius: var(--lm-radius-sm); box-shadow: var(--lm-shadow-lg); border-left-color: var(--lm-primary); }

/* ---- Offcanvas panels (Vahan / PAN / Aadhaar) */
.offcanvas { border-left: 0; box-shadow: var(--lm-shadow-lg); }
.offcanvas-header { border-bottom: 1px solid var(--lm-line); }
.offcanvas .table th { color: var(--lm-muted); font-weight: 500; text-transform: none; letter-spacing: 0; font-size: .8rem; }

/* ---- Misc */
.lm-doc-img, .lm-doc-ph { border-radius: var(--lm-radius-sm); }
.progress { border-radius: 999px; background: #eef1f5; }
.progress-bar { border-radius: 999px; }
pre.bg-light { background: #f6f8fb !important; border: 1px solid var(--lm-line); border-radius: var(--lm-radius-sm); font-size: .78rem; }
hr { border-color: var(--lm-line); opacity: 1; }
.text-muted { color: var(--lm-muted) !important; }
/* ---- Fix-ups after first render */
.page-title-box { padding-left: 1.5rem; padding-right: 1.5rem; }
.side-nav .side-nav-link:hover { background: #f1f4f8; }
.side-nav .menuitem-active > .side-nav-link, .side-nav .side-nav-link.active { background: var(--lm-primary-50) !important; color: var(--lm-primary-600) !important; }
.side-nav .menuitem-active > .side-nav-link .menu-icon, .side-nav .side-nav-link.active .menu-icon { color: var(--lm-primary-600) !important; }
/* the theme points these at a Tabler glyph the bundled font lacks → use MDI */
.side-nav .menu-arrow::before { font-family: "Material Design Icons" !important; content: "\F0142" !important; }
.breadcrumb-item + .breadcrumb-item::before { font-family: inherit !important; content: "/" !important; color: #b4bccb; }
.menuitem-active > .side-nav-link > .menu-arrow::before, .side-nav-link[aria-expanded="true"] > .menu-arrow::before { transform: rotate(90deg); display: inline-block; }
/* queue ageing: accent bar + faint tint instead of a solid pink block */
tr.lm-overdue td, tr.lm-late td { background: transparent; }
tr.lm-overdue td:first-child { box-shadow: inset 3px 0 0 #f0b429; }
tr.lm-late td:first-child { box-shadow: inset 3px 0 0 #e5484d; }
tr.lm-late { background: #fff8f8; }
tr.lm-overdue { background: #fffcf3; }
.lm-kpi-value { font-size: 1.5rem; font-weight: 700; line-height: 1.1; color: var(--lm-ink); }
.lm-kpi-label { color: var(--lm-muted); font-size: .8rem; }
.lm-avatar { width: 72px; height: 72px; border-radius: 50%; background: var(--lm-primary-50); color: var(--lm-primary-600); display: grid; place-items: center; font-weight: 700; font-size: 1.5rem; }
.dropdown-menu { border: 0; border-radius: var(--lm-radius-sm); box-shadow: var(--lm-shadow-lg); padding: .35rem; }
.dropdown-item { border-radius: 8px; padding: .5rem .75rem; }
.dropdown-item:hover { background: var(--lm-primary-50); color: var(--lm-primary-600); }
.dropdown-header.bg-primary { background: var(--lm-primary) !important; border-radius: 8px 8px 0 0; margin: -.35rem -.35rem .35rem; }
/* the theme uppercases every .form-control — keep that for names/plates/PAN, not for these */
input[type="email"].form-control, input[type="password"].form-control, input[type="url"].form-control, textarea.form-control, select.form-control, .form-select, input[type="date"].form-control, input[type="month"].form-control, input[type="number"].form-control { text-transform: none; }

/* =====================================================================
   Round 2 (Nov 2026): typeface, number-plate chip, stage track, fixes.
   ===================================================================== */
:root { --lm-font: "IBM Plex Sans", "Noto Sans", system-ui, sans-serif; --bs-font-sans-serif: var(--lm-font); --bs-body-font-family: var(--lm-font); }
body, .btn, .form-control, .form-select { font-family: var(--lm-font); }
.table td, .lm-kpi-value, .lm-age { font-variant-numeric: tabular-nums; }

/* Table headers: sentence case, always readable (dashboards painted them white on white). */
.table > thead > tr > th { color: var(--lm-muted) !important; text-transform: none; letter-spacing: 0; font-size: .78rem; }

/* Topbar: light, one hairline; the search is the only thing in it that asks for attention. */
.app-topbar { background: #fff !important; border-bottom: 1px solid var(--lm-line); box-shadow: none; }
.app-topbar .app-search .form-control { background: var(--lm-canvas); border: 1px solid transparent; color: var(--lm-ink); min-width: 300px; text-transform: none; }
.app-topbar .app-search .form-control:focus { background: #fff; border-color: var(--lm-primary); }
.app-topbar .nav-user h6 { color: var(--lm-ink); }
.lm-avatar-sm { width: 32px; height: 32px; font-size: .85rem; display: inline-grid; }

/* Number plate: every registration number looks like the thing staff read off the car. */
.lm-plate { display: inline-flex; align-items: stretch; border: 1.5px solid var(--lm-ink); border-radius: 5px; background: #fff; color: #111827; font-size: .78rem; font-weight: 600; letter-spacing: .07em; line-height: 1; white-space: nowrap; overflow: hidden; vertical-align: middle; }
.lm-plate::before { content: "IND"; display: flex; align-items: flex-end; padding: 0 3px 3px; background: #1d4ed8; color: #fff; font-size: .5rem; font-weight: 600; letter-spacing: .03em; }
.lm-plate > span { padding: .3rem .5rem; }

/* Stage track: where the file is on its way from lead to RC. */
.lm-track { display: flex; list-style: none; margin: .9rem 0 0; padding: 0; max-width: 640px; }
.lm-track li { flex: 1; position: relative; padding-top: 1.15rem; font-size: .78rem; font-weight: 400; color: var(--lm-muted); }
.lm-track li::before { content: ""; position: absolute; top: .32rem; left: 0; right: 0; height: 2px; background: #d9dee7; }
.lm-track li::after { content: ""; position: absolute; top: 0; left: 0; width: .75rem; height: .75rem; border-radius: 50%; background: #fff; border: 2px solid #c3ccd9; }
.lm-track li:last-child { flex: 0 0 auto; }
.lm-track li:last-child::before { display: none; }
.lm-track .done { color: var(--lm-text); }
.lm-track .done::before, .lm-track .done::after { background: var(--lm-primary); border-color: var(--lm-primary); }
.lm-track .now { color: var(--lm-ink); font-weight: 600; }
.lm-track .now::after { border-color: var(--lm-primary); box-shadow: 0 0 0 4px var(--lm-primary-50); }
.lm-history summary { cursor: pointer; }
.lm-history-more { color: var(--lm-primary); margin-left: .35rem; }

/* File screens: the wizard's inputs match every other input (they had a hard border and drop shadow). */
html body .step .step_body input, html body .step .step_body textarea, html body .step .step_body select { border: 1px solid #d9dee7; box-shadow: none; }
html body .step .step_body input[readonly], html body .step .step_body textarea[readonly] { background: #f6f8fb; border-color: #e9edf3; }
html body .step .step_body input:focus, html body .step .step_body textarea:focus { border-color: var(--lm-primary); box-shadow: 0 0 0 3px rgba(31,111,178,.14); }

:focus-visible { outline: 2px solid var(--lm-primary); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } }
.app-topbar .app-search .input-group { flex-wrap: nowrap; position: relative; width: 340px; }
.app-topbar .app-search .form-control { border-radius: 999px !important; padding-left: 2.4rem; height: 38px; min-width: 0; }
.app-topbar .app-search .input-group-append { position: absolute; left: .3rem; top: 50%; transform: translateY(-50%); z-index: 5; }
.app-topbar .app-search .btn-icon { background: none; border: 0; color: var(--lm-muted); padding: .3rem .55rem; }
.app-topbar .app-search { max-width: none; overflow: visible; align-items: center; margin-right: 0; }
.app-topbar .app-search .app-search-box { display: block; }
/* the theme gives selects a dark border + offset shadow; make them one family with the inputs */
select.form-control:not([size]):not([multiple]) { border: 1px solid #cdd4de; box-shadow: none; }
html body .step .step_body input:not([readonly]), html body .step .step_body textarea:not([readonly]) { border-color: #cdd4de; }
