/* Shared light and dark themes. Management Insights follows the page theme. */
.dashboard-loader { display: inline-block; position: relative; width: 24px; height: 24px; vertical-align: middle; color: var(--brand); }
.dashboard-loader::before, .dashboard-loader::after { content: ""; position: absolute; border-radius: 50%; border: 2px solid var(--line); }
.dashboard-loader::before { inset: 0; border-top-color: currentColor; animation: dashboard-loader-spin 1.2s linear infinite; }
.dashboard-loader::after { inset: 6px; border-right-color: currentColor; animation: dashboard-loader-spin .8s linear infinite reverse; }
.decision-card-footer .dashboard-loader { width: 20px; height: 20px; }
@keyframes dashboard-loader-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .dashboard-loader::before, .dashboard-loader::after { animation: none; } }
.theme-toggle { display: inline-grid; place-items: center; flex: 0 0 44px; width: 44px; height: 44px; padding: 10px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); color: var(--ink); cursor: pointer; }
.theme-toggle:hover { background: var(--surface-muted); }
.theme-toggle:focus-visible { outline: 3px solid var(--brand); outline-offset: 3px; }
.theme-toggle svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.theme-sun, html[data-bs-theme="dark"] .theme-moon { display: none; }
html[data-bs-theme="dark"] .theme-sun { display: block; }
.guest-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; }

html[data-bs-theme="dark"] body {
  color-scheme: dark;
  --page: #101820;
  --surface: #18232e;
  --surface-muted: #202e3b;
  --text: #dbe4ee;
  --ink: #f1f5f9;
  --muted: #a7b6c6;
  --line: #354657;
  --line-strong: #52667a;
  --brand: #54d6a0;
  --brand-dark: #7ce5b6;
  --brand-deep: #163d2e;
  --brand-soft: #203e35;
  --primary: #7ce5b6;
  --par: #ff9b98;
  --bs-body-color: var(--text);
  --bs-body-bg: var(--surface);
  --bs-border-color: var(--line);
  --bs-secondary-color: var(--muted);
  --bs-tertiary-bg: var(--surface-muted);
  --bs-emphasis-color: var(--ink);
  --bs-link-color: var(--brand);
  --bs-link-hover-color: var(--brand-dark);
}
html[data-bs-theme="dark"] body { background: var(--page); }
html[data-bs-theme="dark"] :is(.admin-sidebar, .admin-topbar, .guest-header, .admin-menu-button, .notification-bell, .filter-wrapper, .kpi-card, .action-item, .client-section, .client-mobile-card, .global-search-panel, .modal-content, .notification-menu, .management-section, .dashboard-context) { background: var(--surface) !important; color: var(--text); border-color: var(--line); }
html[data-bs-theme="dark"] :is(.admin-nav-link, .form-label, .decision-card-heading, .kpi-label, .client-table thead th, .global-search-input input, .notification-bell) { color: var(--text); }
html[data-bs-theme="dark"] :is(.admin-nav-link.active, .admin-nav-link:hover, .admin-subnav a.active, .admin-subnav a:hover) { color: var(--brand); background: var(--brand-soft); }
html[data-bs-theme="dark"] :is(.kpi-subcard, .par-aging-bucket, .kpi-icon, .client-table thead th, .applied-filter-label, .global-search-input) { background: var(--surface-muted); color: var(--text); border-color: var(--line); }
html[data-bs-theme="dark"] :is(.decision-card, .applied-filters, .dashboard-context button.applied-filter-label) { border-color: var(--line); }
html[data-bs-theme="dark"] :is(.form-control, .form-select) { background-color: var(--surface); color: var(--text); border-color: var(--line-strong); }
html[data-bs-theme="dark"] :is(.form-control, .global-search-input input)::placeholder { color: var(--muted); }
html[data-bs-theme="dark"] .table { --bs-table-bg: var(--surface); --bs-table-color: var(--text); --bs-table-border-color: var(--line); --bs-table-striped-bg: var(--surface-muted); --bs-table-striped-color: var(--text); --bs-table-hover-bg: var(--surface-muted); --bs-table-hover-color: var(--ink); }
html[data-bs-theme="dark"] .btn-outline-secondary { --bs-btn-color: var(--text); --bs-btn-border-color: var(--line-strong); --bs-btn-hover-bg: var(--surface-muted); --bs-btn-hover-color: var(--ink); }
html[data-bs-theme="dark"] .admin-app .decision-status { color: var(--text); background: var(--surface-muted); }
html[data-bs-theme="dark"] .risk-mover > div:last-child strong { color: var(--ink); }


html[data-bs-theme] .management-insights { background: var(--surface); color: var(--text); border-color: var(--line); border-top-color: var(--brand); }
html[data-bs-theme] .management-insights :is(h2, h3) { color: var(--ink); }
html[data-bs-theme] .management-insights :is(.form-label, .insight-source, .insight-empty) { color: var(--text); }
html[data-bs-theme] .management-insights .form-control { background-color: var(--surface-muted); color: var(--text); border-color: var(--line-strong); }
html[data-bs-theme] .management-insights .form-control::placeholder { color: var(--muted); }
html[data-bs-theme] .management-insights :is(a, summary) { color: var(--brand); }
html[data-bs-theme] .management-insights .btn-outline-secondary { --bs-btn-color: var(--text); --bs-btn-border-color: var(--line-strong); --bs-btn-hover-bg: var(--surface-muted); --bs-btn-hover-color: var(--ink); }
html[data-bs-theme="dark"] .management-insights #insightError { color: #ffaaa7; }
html[data-bs-theme="light"] .management-insights #insightError { color: #a12626; }

/* Dashboard accents need their own dark surfaces, rather than pale light-mode fills. */
html[data-bs-theme="dark"] .admin-app .decision-card.signal-good .decision-status { color: #92ebbf; background: #203e35; }
html[data-bs-theme="dark"] .admin-app .decision-card.signal-warning .decision-status { color: #f5cc86; background: #463720; }
html[data-bs-theme="dark"] .admin-app .decision-card.signal-critical .decision-status { color: #ffb4af; background: #482d33; }
html[data-bs-theme="dark"] .admin-app :is(.metric-unit, .dashboard-context .applied-filter-label) { background: var(--surface-muted); border-color: var(--line); color: var(--text); }
html[data-bs-theme="dark"] .admin-app .dashboard-context button.applied-filter-label { background: var(--brand-soft); border-color: #3c6454; color: #92ebbf; }
html[data-bs-theme="dark"] .admin-app .dashboard-context button.applied-filter-label:hover { background: #294d40; }
html[data-bs-theme="dark"] .admin-app .dashboard-context button.applied-filter-label > span { background: #315545; color: #b1f3d4; }
html[data-bs-theme="dark"] .admin-app .dashboard-context .data-freshness { color: var(--muted); }
html[data-bs-theme="dark"] .admin-app .par-aging-bucket { background: var(--surface-muted); border-color: var(--line); color: var(--text); }
html[data-bs-theme="dark"] .admin-app .par-aging-bucket[data-balance-state="active"] { background: #35272f; border-color: #775057; }
html[data-bs-theme="dark"] .admin-app .par-aging-bucket[data-balance-state="active"] strong { color: #ffb4af; }
html[data-bs-theme="dark"] .admin-app .kpi-past-due > strong { color: #ffb4af; }
html[data-bs-theme="dark"] .admin-app .kpi-to-collect.balance-negative > strong,
html[data-bs-theme="dark"] .admin-app .kpi-to-collect.balance-negative .metric-caption { color: #f5cc86; }
html[data-bs-theme="dark"] .admin-app .kpi-collection .kpi-icon { color: #92ebbf; background: #203e35; }
html[data-bs-theme="dark"] .admin-app .kpi-to-collect .kpi-icon { color: #a2dff6; background: #203e50; }
html[data-bs-theme="dark"] .admin-app .par-aging-bucket[data-balance-state="empty"] strong { color: var(--muted); }
html[data-bs-theme="dark"] .admin-app .par-aging-bucket:hover { background: #263e39; border-color: #6ca68d; }
html[data-bs-theme="dark"] .admin-app .aging-meter { background: #465464; }
html[data-bs-theme="dark"] .admin-app .aging-meter > span { background: #ee918d; }
html[data-bs-theme="dark"] .admin-app .aging-link { color: var(--muted); }
html[data-bs-theme="dark"] .admin-app :is(.decision-comparison > strong, .kpi-card .kpi-subcard > strong) { color: var(--text); }
html[data-bs-theme="dark"] .admin-app :is(.decision-card-footer, .action-item-actions) { border-color: var(--line); }
html[data-bs-theme="dark"] .admin-app .priority-attention { color: #a2dff6; background: #203e50; }
html[data-bs-theme="dark"] .admin-app .priority-high { color: #f5cc86; background: #463720; }
html[data-bs-theme="dark"] .admin-app .priority-critical { color: #ffb4af; background: #482d33; }
html[data-bs-theme="dark"] .admin-app .action-item-actions .priority-call { background: var(--surface-muted); color: var(--text); border-color: var(--line-strong); }
html[data-bs-theme="dark"] .admin-app .action-item-actions .priority-details { color: var(--text); }
html[data-bs-theme="dark"] .admin-app .action-item-actions :is(.priority-call, .priority-details):hover { color: var(--ink); background: #304354; }
html[data-bs-theme="dark"] .admin-app .action-item-actions .priority-note { color: #102a22; }
html[data-bs-theme="dark"] .btn-primary { --bs-btn-color: #102a22; --bs-btn-hover-color: #102a22; --bs-btn-active-color: #fff; --bs-btn-disabled-color: #102a22; }
html[data-bs-theme="dark"] .btn-outline-primary { --bs-btn-hover-color: #102a22; --bs-btn-active-color: #102a22; }
html[data-bs-theme="dark"] .admin-app .global-search-input { background: var(--surface-muted); color: var(--text); border-color: var(--line); }
html[data-bs-theme="dark"] .admin-app .global-search-input:focus-within { background: var(--surface-muted); border-color: var(--brand); box-shadow: 0 0 0 3px #54d6a026; }
html[data-bs-theme="dark"] .admin-app .global-search-input input { background: transparent; color: var(--ink); caret-color: var(--brand); }
html[data-bs-theme="dark"] .admin-app .global-search-input input::placeholder { color: var(--muted); opacity: 1; }
html[data-bs-theme="dark"] .admin-app .global-search-input svg { stroke: var(--muted); }
html[data-bs-theme="dark"] .admin-app .global-search-result { background: var(--surface); color: var(--ink); }
html[data-bs-theme="dark"] .admin-app .global-search-result:is(:hover, :focus-visible) { background: var(--brand-soft); outline-color: var(--brand); }
html[data-bs-theme="dark"] .admin-app .global-search-input input:-webkit-autofill { -webkit-text-fill-color: var(--ink); box-shadow: 0 0 0 1000px var(--surface-muted) inset; }

/* Client details: keep every tab on the same dark palette as the dialog header. */
html[data-bs-theme="dark"] .admin-app #clientContactModal :is(.modal-body, .client-detail-tabs, .risk-status-item, .daily-collection-card, .client-image-section, .client-comments-card, .client-comment) { background: var(--surface); color: var(--text); border-color: var(--line); }
html[data-bs-theme="dark"] .admin-app #clientContactModal :is(.client-sticky-summary, .contact-number, .client-detail-tabs .nav-tabs, .loan-summary-card, .loan-schedule-heading > span, .client-image-empty, .client-image-upload-form, .client-comments-card > form, .client-comment-replies .client-comment, .empty-state) { background: var(--surface-muted); color: var(--text); border-color: var(--line); }
html[data-bs-theme="dark"] .admin-app #clientContactModal .client-initials { background: var(--brand-soft); border-color: #3c6454; color: #92ebbf; }
html[data-bs-theme="dark"] .admin-app #clientContactModal .client-detail-tabs .nav-link { color: var(--muted); }
html[data-bs-theme="dark"] .admin-app #clientContactModal .client-detail-tabs .nav-link:hover { color: var(--ink); background: #304354; }
html[data-bs-theme="dark"] .admin-app #clientContactModal .client-detail-tabs .nav-link.active { color: #92ebbf; background: var(--brand-soft); border-color: #3c6454; }
html[data-bs-theme="dark"] .admin-app #clientContactModal .client-tab-count { background: #354657; color: var(--text); }
html[data-bs-theme="dark"] .admin-app #clientContactModal :is(.client-risk-value.has-risk, .client-sticky-summary > div:first-child strong) { color: #ffb4af; }
html[data-bs-theme="dark"] .admin-app #clientContactModal .client-risk-value.is-clear { color: #92ebbf; }
html[data-bs-theme="dark"] .admin-app #clientContactModal :is(.client-action-call, .client-primary-actions .btn-outline-secondary) { background: var(--surface-muted); color: var(--text); border-color: var(--line-strong); }
html[data-bs-theme="dark"] .admin-app #clientContactModal :is(.client-action-call, .client-primary-actions .btn-outline-secondary):hover { background: #304354; color: var(--ink); }
html[data-bs-theme="dark"] .admin-app #clientContactModal :is(.client-comment p, .client-image-empty strong, .loan-schedule-table th) { color: var(--text); }
html[data-bs-theme="dark"] .admin-app #clientContactModal :is(.loan-schedule-table thead, .loan-schedule-table th, .loan-schedule-table tbody tr:nth-child(even), .loan-schedule-table tbody td:first-child, .loan-schedule-table thead tr:first-child th:first-child) { background: var(--surface-muted); border-color: var(--line); }
html[data-bs-theme="dark"] .admin-app #clientContactModal :is(.loan-schedule-table tbody td:first-child, .loan-schedule-table thead tr:first-child th:first-child) { box-shadow: 1px 0 var(--line); }
html[data-bs-theme="dark"] .admin-app #clientContactModal .client-image-link.btn { background: var(--brand-soft); border-color: #3c6454; color: #92ebbf; }
html[data-bs-theme="dark"] .admin-app #clientContactModal .client-comment-replies { border-color: #3c6454; }
html[data-bs-theme="dark"] .admin-app #clientContactModal .btn-close { filter: invert(1); opacity: .8; }
html[data-bs-theme="dark"] .admin-app #clientContactModal .btn-close:hover { background-color: #d5dce3; opacity: 1; }

/* Elevate complete cards; grouped figures and list rows share their parent shadow. */
.admin-app { --card-shadow: 0 3px 12px rgba(16, 24, 40, .08), 0 1px 3px rgba(16, 24, 40, .05); }
html[data-bs-theme="dark"] .admin-app { --card-shadow: 0 4px 16px rgba(0, 0, 0, .3), 0 1px 4px rgba(0, 0, 0, .22); }
html[data-bs-theme] .admin-app .app-shell :is(.filter-wrapper, .decision-grid, .kpi-par-aging-card, .collections-panel, .action-queue, .risk-movers, .client-section, .management-section, .client-mobile-card) { box-shadow: var(--card-shadow); }
