/* =====================================================================
   ERP THEME  ·  HisabPlus
   A reusable component layer for internal ERP pages.
   Built ON TOP of the app's existing design tokens (site.css), so it
   automatically adapts to every color theme + light/dark mode.

   Usage:  wrap page body in  .erp  and use the .erp-* classes below.
   Nothing here hardcodes a palette — all colors derive from app vars.
   ===================================================================== */

.erp {
    /* --- semantic tokens, derived from the active app theme --- */
    --erp-surface:  var(--card-color);
    --erp-surface-2: color-mix(in srgb, var(--card-color) 96%, var(--text-primary-color));
    --erp-ink:      var(--text-primary-color);
    --erp-muted:    var(--text-secondary-color);
    --erp-faint:    color-mix(in srgb, var(--text-secondary-color) 70%, transparent);
    --erp-line:     var(--card-border-color);
    --erp-line-strong: color-mix(in srgb, var(--card-border-color) 100%, var(--text-primary-color) 12%);

    --erp-accent:     var(--primary-color);
    --erp-accent-rgb: var(--primary-rgb);
    --erp-accent-soft: color-mix(in srgb, var(--primary-color) 12%, transparent);

    /* state colors — map onto app status tokens */
    --erp-in:    var(--success-color);
    --erp-out:   var(--danger-color);
    --erp-move:  var(--primary-color);
    --erp-warr:  var(--accent-color);

    --erp-radius:    14px;
    --erp-radius-sm: 8px;
    --erp-shadow: 0 1px 2px rgba(20,30,45,.05), 0 6px 20px rgba(20,30,45,.07);
    --erp-mono: ui-monospace, SFMono-Regular, "Cascadia Code", Menlo, Consolas, monospace;
}

/* ---------- section heading / eyebrow ---------- */
.erp-eyebrow {
    font-family: var(--erp-mono);
    font-size: 12px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--erp-accent);
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 14px;
}
.erp-eyebrow::before {
    content: "";
    width: 22px; height: 2px;
    background: var(--erp-accent);
    border-radius: 2px;
}

.erp-h2 {
    font-size: 13px;
    font-family: var(--erp-mono);
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--erp-faint);
    font-weight: 600;
    margin: 0 0 18px;
    display: flex;
    align-items: center;
    gap: 12px;
}
.erp-h2::after {
    content: "";
    flex: 1; height: 1px;
    background: var(--erp-line);
}

/* ---------- page header (title + subtitle + actions) ---------- */
.erp-pagehead {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 22px;
}
.erp-pagehead .erp-title {
    font-size: clamp(20px, 2.4vw, 26px);
    font-weight: 700;
    letter-spacing: -.02em;
    color: var(--erp-ink);
    margin: 0;
    display: flex;
    align-items: center;
    gap: 10px;
}
.erp-pagehead .erp-title i { color: var(--erp-accent); }
.erp-pagehead .erp-sub {
    font-size: 13.5px;
    color: var(--erp-muted);
    margin: 4px 0 0;
}

/* ---------- cards ---------- */
.erp-card {
    background: var(--erp-surface);
    border: 1px solid var(--erp-line);
    border-radius: var(--erp-radius);
    box-shadow: var(--erp-shadow);
    overflow: hidden;
}
.erp-card + .erp-card { margin-top: 20px; }

.erp-card-cap {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 18px;
    border-bottom: 1px solid var(--erp-line);
    background: var(--erp-surface-2);
}
.erp-card-cap .erp-cap-title {
    font-weight: 700;
    font-size: 14.5px;
    color: var(--erp-ink);
    letter-spacing: -.01em;
}
.erp-card-cap .erp-cap-desc {
    font-size: 13px;
    color: var(--erp-muted);
}
.erp-card-cap .erp-cap-desc { margin-inline-start: auto; }

/* ---------- tags ---------- */
.erp-tag {
    font-family: var(--erp-mono);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: 3px 9px;
    border-radius: 999px;
    white-space: nowrap;
    display: inline-block;
}
.erp-tag.std  { color: var(--erp-accent); background: var(--erp-accent-soft); }
.erp-tag.new  { color: var(--erp-warr);   background: color-mix(in srgb, var(--erp-warr) 14%, transparent); }

/* ---------- tables ---------- */
.erp-table {
    width: 100%;
    border-collapse: collapse;
    margin: 0;
}
.erp-table thead th {
    text-align: start;
    font-family: var(--erp-mono);
    font-size: 10.5px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--erp-faint);
    font-weight: 600;
    white-space: nowrap;
    padding: 12px 16px;
    background: color-mix(in srgb, var(--erp-accent) 4%, transparent);
    border-bottom: 1px solid var(--erp-line);
}
.erp-table tbody td {
    padding: 12px 16px;
    border-bottom: 1px solid var(--erp-line);
    vertical-align: middle;
    color: var(--erp-ink);
    font-size: 13.5px;
}
.erp-table tbody tr:last-child td { border-bottom: none; }
.erp-table tbody tr { transition: background .15s ease; }
.erp-table tbody tr:hover { background: color-mix(in srgb, var(--erp-accent) 4%, transparent); }
.erp-table .erp-cell-strong { font-weight: 600; color: var(--erp-ink); }
.erp-table .erp-cell-muted  { color: var(--erp-muted); font-size: 12.5px; }

/* ---------- pills / status ---------- */
.erp-pill {
    font-family: var(--erp-mono);
    font-size: 11.5px;
    font-weight: 600;
    padding: 3px 9px;
    border-radius: 6px;
    white-space: nowrap;
    display: inline-block;
    border: 1px solid transparent;
}
.erp-pill.in   { color: var(--erp-in);   background: color-mix(in srgb, var(--erp-in)  14%, transparent); border-color: color-mix(in srgb, var(--erp-in)  35%, transparent); }
.erp-pill.out  { color: var(--erp-out);  background: color-mix(in srgb, var(--erp-out) 14%, transparent); border-color: color-mix(in srgb, var(--erp-out) 35%, transparent); }
.erp-pill.move { color: var(--erp-move); background: var(--erp-accent-soft);                                border-color: color-mix(in srgb, var(--erp-move) 30%, transparent); }
.erp-pill.warr { color: var(--erp-warr); background: color-mix(in srgb, var(--erp-warr) 14%, transparent); border-color: color-mix(in srgb, var(--erp-warr) 35%, transparent); }

/* ---------- action buttons (icon) ---------- */
.erp-actions { display: inline-flex; gap: 8px; align-items: center; }
.erp-btn-icon {
    width: 32px; height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--erp-radius-sm);
    border: 1px solid transparent;
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
    text-decoration: none;
    cursor: pointer;
}
.erp-btn-icon i { pointer-events: none; }
.erp-btn-icon:hover { transform: translateY(-2px); box-shadow: 0 4px 10px rgba(0,0,0,.12); }
.erp-btn-icon.edit {
    color: var(--warning-color);
    background: color-mix(in srgb, var(--warning-color) 12%, transparent);
    border-color: color-mix(in srgb, var(--warning-color) 22%, transparent);
}
.erp-btn-icon.edit:hover  { background: var(--warning-color); color: #fff; }
.erp-btn-icon.delete {
    color: var(--danger-color);
    background: color-mix(in srgb, var(--danger-color) 12%, transparent);
    border-color: color-mix(in srgb, var(--danger-color) 22%, transparent);
}
.erp-btn-icon.delete:hover { background: var(--danger-color); color: #fff; }
.erp-btn-icon.view {
    color: var(--info-color);
    background: color-mix(in srgb, var(--info-color) 12%, transparent);
    border-color: color-mix(in srgb, var(--info-color) 22%, transparent);
}
.erp-btn-icon.view:hover { background: var(--info-color); color: #fff; }

/* Looks inert, but still receives clicks — the handler explains WHY it's blocked.
   pointer-events:none would swallow the click and leave the user guessing. */
.erp-btn-icon.is-disabled {
    color: var(--erp-faint);
    background: transparent;
    border-color: var(--erp-line);
    cursor: not-allowed;
    opacity: .6;
}
.erp-btn-icon.is-disabled:hover {
    transform: none;
    box-shadow: none;
    color: var(--erp-faint);
    background: transparent;
    border-color: var(--erp-line);
}

/* ---------- primary action button ---------- */
.erp-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 600;
    font-size: 13.5px;
    padding: 9px 18px;
    border-radius: 10px;
    border: 1px solid transparent;
    text-decoration: none;
    cursor: pointer;
    transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
.erp-btn.primary {
    background: linear-gradient(135deg, var(--erp-accent, #4f46e5) 0%, color-mix(in srgb, var(--erp-accent, #4f46e5) 85%, #000) 100%) !important;
    color: #ffffff !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18) !important;
}
.erp-btn.primary i {
    color: #ffffff !important;
}
.erp-btn.primary:hover {
    transform: translateY(-2px);
    filter: brightness(1.12);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.28) !important;
    color: #ffffff !important;
}
.erp-btn.ghost {
    background: transparent !important;
    color: var(--erp-ink) !important;
    border-color: var(--erp-line-strong) !important;
}
.erp-btn.ghost:hover {
    background: var(--erp-accent-soft) !important;
    border-color: var(--erp-accent) !important;
    color: var(--erp-accent) !important;
}


/* ---------- count badge (e.g. "how many items under this record") ----------
   Pastel, and it has to stay pastel in every theme AND in both modes. The trick
   is mixing toward --erp-surface (the card colour) rather than toward a fixed
   white or a transparent wash: surface is already light in light mode and dark
   in dark mode, so one rule yields a pale tint on white and a muted tint on
   black. Text mixes toward --erp-ink, which flips the same way, so contrast
   holds on both without a separate dark-mode block. */
.erp-count {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--erp-mono);
    font-size: 11.5px;
    font-weight: 600;
    padding: 3px 9px;
    border-radius: 999px;
    white-space: nowrap;
    color: color-mix(in srgb, var(--erp-accent) 72%, var(--erp-ink));
    background: color-mix(in srgb, var(--erp-accent) 13%, var(--erp-surface));
    border: 1px solid color-mix(in srgb, var(--erp-accent) 24%, var(--erp-surface));
}
.erp-count i { font-size: 10px; opacity: .75; }
/* nothing linked yet — keep it quiet rather than shouting a zero */
.erp-count.zero {
    color: var(--erp-faint);
    background: transparent;
    border-color: var(--erp-line);
}

/* count badge sits on the left, actions stay right */
.erp-item-foot .erp-count { margin-inline-end: auto; }

/* ---------- amount badge (money, not a count) ----------
   Customer due / supplier payable. Unlike .erp-count the colour carries meaning: owing money is
   not neutral. Mixed toward --erp-surface/--erp-ink like everything else so it stays pastel in
   every theme and readable in both modes. */
.erp-amount {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--erp-mono);
    font-size: 11.5px;
    font-weight: 600;
    padding: 3px 9px;
    border-radius: 999px;
    white-space: nowrap;
    color: color-mix(in srgb, var(--erp-out) 72%, var(--erp-ink));
    background: color-mix(in srgb, var(--erp-out) 13%, var(--erp-surface));
    border: 1px solid color-mix(in srgb, var(--erp-out) 24%, var(--erp-surface));
}
.erp-amount i { font-size: 10px; opacity: .75; }

/* settled — nothing owed, so say it quietly */
.erp-amount.settled {
    color: color-mix(in srgb, var(--erp-in) 72%, var(--erp-ink));
    background: color-mix(in srgb, var(--erp-in) 12%, var(--erp-surface));
    border-color: color-mix(in srgb, var(--erp-in) 22%, var(--erp-surface));
}
/* advance / credit balance — the other party is ahead */
.erp-amount.credit {
    color: color-mix(in srgb, var(--erp-accent) 72%, var(--erp-ink));
    background: color-mix(in srgb, var(--erp-accent) 12%, var(--erp-surface));
    border-color: color-mix(in srgb, var(--erp-accent) 22%, var(--erp-surface));
}

.erp-item-foot .erp-amount { margin-inline-end: auto; }

/* ---------- table / card view toggle ---------- */
.erp-viewtoggle {
    display: inline-flex;
    background: var(--erp-surface-2);
    border: 1px solid var(--erp-line);
    border-radius: 10px;
    padding: 3px;
    gap: 2px;
}
.erp-viewbtn {
    width: 34px; height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    background: transparent;
    color: var(--erp-muted);
    border-radius: 7px;
    cursor: pointer;
    transition: background .18s ease, color .18s ease;
}
.erp-viewbtn:hover { color: var(--erp-accent); background: var(--erp-accent-soft); }
.erp-viewbtn.active {
    background: var(--erp-surface);
    color: var(--erp-accent);
    box-shadow: 0 1px 3px rgba(20,30,45,.12);
}

/* ---------- pager (card view on Tabulator pages) ----------
   Tabulator renders its own footer inside the table element, which card view hides. These drive
   Tabulator's paging API instead, so remote paging still works. */
.erp-pager {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px;
    padding: 12px 4px 16px;
}
.erp-pager-info {
    font-size: 12.5px;
    color: var(--erp-muted);
    font-family: var(--erp-mono);
}
.erp-pager-controls {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
}
.erp-pager-size {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12.5px;
    color: var(--erp-muted);
    margin: 0 8px 0 0;
}
.erp-pager-size select {
    background: var(--erp-surface);
    border: 1px solid var(--erp-line-strong);
    border-radius: var(--erp-radius-sm);
    color: var(--erp-ink);
    padding: 3px 8px;
    font-size: 12.5px;
    cursor: pointer;
}
.erp-page-btn {
    min-width: 32px;
    height: 30px;
    padding: 0 9px;
    border: 1px solid var(--erp-line-strong);
    background: var(--erp-surface);
    color: var(--erp-ink);
    border-radius: var(--erp-radius-sm);
    font-size: 12.5px;
    cursor: pointer;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.erp-page-btn:hover:not(:disabled):not(.active) {
    background: var(--erp-accent-soft);
    border-color: var(--erp-accent);
    color: var(--erp-accent);
}
.erp-page-btn.active {
    background: var(--erp-accent);
    border-color: var(--erp-accent);
    color: #fff;
    font-weight: 600;
    cursor: default;
}
.erp-page-btn:disabled {
    opacity: .45;
    cursor: not-allowed;
}

/* ---------- card grid (card view for list pages) ---------- */
.erp-cardgrid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 16px;
}
.erp-item {
    background: var(--erp-surface);
    border: 1px solid var(--erp-line);
    border-radius: var(--erp-radius);
    box-shadow: var(--erp-shadow);
    padding: 16px;
    display: flex;
    flex-direction: column;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.erp-item:hover {
    transform: translateY(-3px);
    border-color: color-mix(in srgb, var(--erp-accent) 40%, transparent);
    box-shadow: 0 10px 26px rgba(20,30,45,.12);
}
.erp-item-head { display: flex; align-items: center; gap: 11px; }
.erp-item-avatar {
    width: 38px; height: 38px;
    flex: 0 0 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: var(--erp-accent-soft);
    color: var(--erp-accent);
    font-weight: 700;
    font-size: 15px;
}
.erp-item-title {
    font-weight: 700;
    font-size: 14.5px;
    color: var(--erp-ink);
    letter-spacing: -.01em;
    word-break: break-word;
}
.erp-item-desc {
    font-size: 12.5px;
    color: var(--erp-muted);
    margin: 12px 0 0;
    flex: 1;
    line-height: 1.55;
}
.erp-item-foot {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid var(--erp-line);
}

/* ---------- legend ---------- */
.erp-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 14px 22px;
    margin-top: 18px;
    font-size: 12.5px;
    color: var(--erp-muted);
    font-family: var(--erp-mono);
}
.erp-legend span { display: inline-flex; align-items: center; gap: 7px; }
.erp-legend i { width: 11px; height: 11px; border-radius: 3px; display: inline-block; }

/* ---------- DataTables integration (when .erp wraps a DataTable) ---------- */
.erp .dataTables_wrapper .dataTables_filter input,
.erp .dataTables_wrapper .dataTables_length select {
    background: var(--erp-surface);
    border: 1px solid var(--erp-line-strong);
    border-radius: var(--erp-radius-sm);
    color: var(--erp-ink);
    padding: 6px 12px;
}
.erp .dataTables_wrapper .dataTables_filter input:focus {
    outline: none;
    border-color: var(--erp-accent);
    box-shadow: 0 0 0 3px rgba(var(--erp-accent-rgb), .15);
}
.erp .dataTables_wrapper .dataTables_paginate .paginate_button.current {
    background: var(--erp-accent) !important;
    border-color: var(--erp-accent) !important;
    color: #fff !important;
    border-radius: 6px;
}
.erp .dataTables_wrapper .dataTables_info,
.erp .dataTables_wrapper .dataTables_length,
.erp .dataTables_wrapper .dataTables_filter { color: var(--erp-muted); font-size: 12.5px; }

/* --- Tabulator group calc rows in dark mode (AllReport etc.): kill the light-gray default --- */
/* Vendor tabulator_site.css sets background:#e2e2e2 !important at specificity (0,5,0);
   these selectors must stay at (0,6,0)+ to beat it. */
html[data-bs-theme="dark"] .tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs,
html[data-bs-theme="dark"] .tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs-top,
html[data-bs-theme="dark"] .tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs-bottom,
[data-bs-theme="dark"] .tabulator .tabulator-row.tabulator-calcs {
    background: #2c2c2c !important;
    color: #e9ecef !important;
}
html[data-bs-theme="dark"] .tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs .tabulator-cell {
    color: #e9ecef !important;
    border-color: #444 !important;
}
[data-bs-theme="dark"] .tabulator .tabulator-footer .tabulator-calcs-holder,
[data-bs-theme="dark"] .tabulator .tabulator-header .tabulator-calcs-holder {
    background: #2c2c2c !important;
}
[data-bs-theme="dark"] .tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row,
[data-bs-theme="dark"] .tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row {
    background: transparent !important;
    color: #e9ecef !important;
}

/* --- Soft Badges & Opacity Badge Utilities (Fixes font color matching background color) --- */
.badge.bg-soft-info,
.badge.bg-info.bg-opacity-10,
.bg-soft-info,
.bg-info.bg-opacity-10 {
    background-color: rgba(13, 202, 240, 0.15) !important;
}
.badge.bg-soft-info.text-info,
.badge.bg-info.bg-opacity-10.text-info,
.badge.bg-soft-info .text-info {
    color: #055160 !important;
}

.badge.bg-soft-success,
.badge.bg-success.bg-opacity-10,
.bg-soft-success,
.bg-success.bg-opacity-10 {
    background-color: rgba(25, 135, 84, 0.15) !important;
}
.badge.bg-soft-success.text-success,
.badge.bg-success.bg-opacity-10.text-success {
    color: #0f5132 !important;
}

.badge.bg-soft-danger,
.badge.bg-danger.bg-opacity-10,
.bg-soft-danger,
.bg-danger.bg-opacity-10 {
    background-color: rgba(220, 53, 69, 0.15) !important;
}
.badge.bg-soft-danger.text-danger,
.badge.bg-danger.bg-opacity-10.text-danger {
    color: #842029 !important;
}

.badge.bg-soft-warning,
.badge.bg-warning.bg-opacity-10,
.bg-soft-warning,
.bg-warning.bg-opacity-10 {
    background-color: rgba(255, 193, 7, 0.18) !important;
}
.badge.bg-soft-warning.text-warning,
.badge.bg-warning.bg-opacity-10.text-warning {
    color: #664d03 !important;
}

.badge.bg-soft-secondary,
.badge.bg-secondary.bg-opacity-10,
.bg-soft-secondary,
.bg-secondary.bg-opacity-10 {
    background-color: rgba(108, 117, 125, 0.15) !important;
}
.badge.bg-soft-secondary.text-secondary,
.badge.bg-secondary.bg-opacity-10.text-secondary {
    color: #41464b !important;
}

.badge.bg-soft-primary,
.badge.bg-primary.bg-opacity-10,
.bg-soft-primary,
.bg-primary.bg-opacity-10 {
    background-color: rgba(13, 110, 253, 0.15) !important;
}
.badge.bg-soft-primary.text-primary,
.badge.bg-primary.bg-opacity-10.text-primary {
    color: #084298 !important;
}

/* Dark mode overrides for soft badges */
[data-bs-theme="dark"] .badge.bg-soft-info,
[data-bs-theme="dark"] .badge.bg-info.bg-opacity-10,
body.dark-mode .badge.bg-soft-info,
body.dark-mode .badge.bg-info.bg-opacity-10 {
    background-color: rgba(13, 202, 240, 0.22) !important;
}
[data-bs-theme="dark"] .badge.bg-soft-info.text-info,
[data-bs-theme="dark"] .badge.bg-info.bg-opacity-10.text-info,
body.dark-mode .badge.bg-soft-info.text-info,
body.dark-mode .badge.bg-info.bg-opacity-10.text-info {
    color: #38bdf8 !important;
}

[data-bs-theme="dark"] .badge.bg-soft-success,
[data-bs-theme="dark"] .badge.bg-success.bg-opacity-10,
body.dark-mode .badge.bg-soft-success,
body.dark-mode .badge.bg-success.bg-opacity-10 {
    background-color: rgba(25, 135, 84, 0.22) !important;
}
[data-bs-theme="dark"] .badge.bg-soft-success.text-success,
[data-bs-theme="dark"] .badge.bg-success.bg-opacity-10.text-success,
body.dark-mode .badge.bg-soft-success.text-success,
body.dark-mode .badge.bg-success.bg-opacity-10.text-success {
    color: #4ade80 !important;
}

[data-bs-theme="dark"] .badge.bg-soft-danger,
[data-bs-theme="dark"] .badge.bg-danger.bg-opacity-10,
body.dark-mode .badge.bg-soft-danger,
body.dark-mode .badge.bg-danger.bg-opacity-10 {
    background-color: rgba(220, 53, 69, 0.22) !important;
}
[data-bs-theme="dark"] .badge.bg-soft-danger.text-danger,
[data-bs-theme="dark"] .badge.bg-danger.bg-opacity-10.text-danger,
body.dark-mode .badge.bg-soft-danger.text-danger,
body.dark-mode .badge.bg-danger.bg-opacity-10.text-danger {
    color: #f87171 !important;
}

[data-bs-theme="dark"] .badge.bg-soft-secondary,
[data-bs-theme="dark"] .badge.bg-secondary.bg-opacity-10,
body.dark-mode .badge.bg-soft-secondary,
body.dark-mode .badge.bg-secondary.bg-opacity-10 {
    background-color: rgba(108, 117, 125, 0.22) !important;
}
[data-bs-theme="dark"] .badge.bg-soft-secondary.text-secondary,
[data-bs-theme="dark"] .badge.bg-secondary.bg-opacity-10.text-secondary,
body.dark-mode .badge.bg-soft-secondary.text-secondary,
body.dark-mode .badge.bg-secondary.bg-opacity-10.text-secondary {
    color: #cbd5e1 !important;
}

[data-bs-theme="dark"] .badge.bg-soft-primary,
[data-bs-theme="dark"] .badge.bg-primary.bg-opacity-10,
body.dark-mode .badge.bg-soft-primary,
body.dark-mode .badge.bg-primary.bg-opacity-10 {
    background-color: rgba(13, 110, 253, 0.25) !important;
}
[data-bs-theme="dark"] .badge.bg-soft-primary.text-primary,
[data-bs-theme="dark"] .badge.bg-primary.bg-opacity-10.text-primary,
body.dark-mode .badge.bg-soft-primary.text-primary,
body.dark-mode .badge.bg-primary.bg-opacity-10.text-primary {
    color: #8bb9fe !important;
}

/* ==========================================================================
   ERP Mobile Responsive Styles (< 768px & < 576px)
   ========================================================================== */
@media (max-width: 767.98px) {
    .erp-pagehead {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 12px !important;
        margin-bottom: 16px !important;
    }

    .erp-pagehead .erp-title {
        font-size: 19px !important;
    }

    .erp-pagehead .d-flex {
        flex-wrap: wrap !important;
        gap: 8px !important;
        width: 100% !important;
    }

    .erp-pagehead .d-flex .btn {
        flex: 1 1 auto !important;
    }

    .erp-filter-bar,
    .erp-toolbar {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 8px !important;
    }

    .erp-stats-grid {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }

    .erp-table-wrap {
        border-radius: var(--erp-radius-sm, 8px) !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
    }

    .erp-table {
        min-width: 600px;
    }
}

@media (max-width: 575.98px) {
    .erp {
        padding: 0 !important;
    }

    .erp-card {
        border-radius: var(--erp-radius-sm, 8px) !important;
        padding: 12px 10px !important;
    }
}

/* Guided tour (intro.js) styling lives in admin-theme-adapter.css (dark-themed admin UI) — removed the
   conflicting light-theme override that used to live here and washed out the tooltip text/background. */

/* =====================================================================
   Page Watermark Clipart / Background Illustration Layer
   ===================================================================== */
.page-watermark-bg {
    position: absolute;
    right: 3%;
    top: 50%;
    transform: translateY(-50%) rotate(-6deg);
    pointer-events: none !important;
    user-select: none !important;
    z-index: 10;
    opacity: 0.08;
    color: var(--primary-color, currentColor);
    overflow: hidden;
    line-height: 1;
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.page-watermark-bg svg,
.page-watermark-bg i {
    width: 380px;
    height: 380px;
    font-size: 340px;
    display: block;
    filter: drop-shadow(0 15px 30px rgba(var(--primary-rgb, 78, 115, 223), 0.2));
}

[data-bs-theme="dark"] .page-watermark-bg {
    opacity: 0.12;
    color: var(--primary-color, #60a5fa);
}

.page-watermark-container {
    position: relative;
    overflow: hidden;
}

/* Full-page floating watermark overlay (Fixed to Screen/Viewport) */
.page-watermark-full {
    position: fixed !important;
    right: 4% !important;
    bottom: 5% !important;
    transform: rotate(-6deg) !important;
    pointer-events: none !important;
    user-select: none !important;
    z-index: 1030 !important; /* Above tables, cards and rows while below dropdowns & modals */
    opacity: 0.05;
    line-height: 1;
    mix-blend-mode: multiply;
    transition: opacity 0.3s ease;
    will-change: transform;
}


.page-watermark-full svg,
.page-watermark-full i {
    width: 480px;
    height: 480px;
    font-size: 450px;
    display: block;
}

[data-bs-theme="dark"] .page-watermark-full,
body.dark-mode .page-watermark-full {
    opacity: 0.03 !important;
    mix-blend-mode: screen;
}

/* Dynamic Soft Tints for Watermark Clipart */
.page-watermark-full.wm-indigo { color: #6366f1 !important; }
.page-watermark-full.wm-cyan   { color: #06b6d4 !important; }
.page-watermark-full.wm-emerald{ color: #10b981 !important; }
.page-watermark-full.wm-amber  { color: #f59e0b !important; }
.page-watermark-full.wm-rose   { color: #f43f5e !important; }
.page-watermark-full.wm-purple { color: #a855f7 !important; }
.page-watermark-full.wm-blue   { color: #3b82f6 !important; }
.page-watermark-full.wm-teal   { color: #14b8a6 !important; }
.page-watermark-full.wm-coral  { color: #fb7185 !important; }

[data-bs-theme="dark"] .page-watermark-full.wm-indigo { color: #818cf8 !important; }
[data-bs-theme="dark"] .page-watermark-full.wm-cyan   { color: #22d3ee !important; }
[data-bs-theme="dark"] .page-watermark-full.wm-emerald{ color: #34d399 !important; }
[data-bs-theme="dark"] .page-watermark-full.wm-amber  { color: #fbbf24 !important; }
[data-bs-theme="dark"] .page-watermark-full.wm-rose   { color: #fda4af !important; }
[data-bs-theme="dark"] .page-watermark-full.wm-purple { color: #c084fc !important; }
[data-bs-theme="dark"] .page-watermark-full.wm-blue   { color: #60a5fa !important; }
[data-bs-theme="dark"] .page-watermark-full.wm-teal   { color: #2dd4bf !important; }
[data-bs-theme="dark"] .page-watermark-full.wm-coral  { color: #fecdd3 !important; }

@media (max-width: 991.98px) {
    .page-watermark-full svg,
    .page-watermark-full i {
        width: 300px;
        height: 300px;
        font-size: 270px;
    }
}

@media (max-width: 768px) {
    .page-watermark-full {
        width: 180px;
        height: 180px;
        right: 2%;
        bottom: 2%;
        opacity: 0.04;
    }
    .page-watermark-full svg,
    .page-watermark-full i {
        width: 180px;
        height: 180px;
        font-size: 160px;
    }
}



