/* ===== Profit Maximizer: neon / glass / 3D theme ===== */
:root {
  --neon-cyan: #00e5ff;
  --neon-pink: #ff2bd6;
  --neon-lime: #39ff88;
  --neon-amber: #ffb020;
  --neon-violet: #9d6bff;
  --neon-red: #ff4d6d;
  --bg-0: #070a1a;
  --bg-1: #0d1230;
  --glass: rgba(20, 26, 60, .55);
  --glass-border: rgba(140, 160, 255, .18);
  --text-dim: #8d96c4;
  --bs-body-bg: var(--bg-0);
  --bs-body-color: #e6e9ff;
  --bs-link-color: #6fe9ff;
  --bs-link-color-rgb: 111, 233, 255;
  --bs-link-hover-color: #ff7be5;
  --bs-link-hover-color-rgb: 255, 123, 229;
  --bs-border-color: rgba(140, 160, 255, .15);
  --bs-secondary-color: var(--text-dim);
  --bs-success-rgb: 57, 255, 136;
  --bs-primary-rgb: 0, 229, 255;
  --bs-danger-rgb: 255, 77, 109;
}
[data-bs-theme=dark] {
  --bs-body-bg: var(--bg-0);
  --bs-body-color: #e6e9ff;
  --bs-tertiary-bg: rgba(30, 38, 85, .6);
  --bs-secondary-bg: rgba(30, 38, 85, .6);
  --bs-border-color: rgba(140, 160, 255, .15);
  --bs-link-color: #6fe9ff;
  --bs-link-color-rgb: 111, 233, 255;
  --bs-link-hover-color: #ff7be5;
  --bs-link-hover-color-rgb: 255, 123, 229;
  --bs-secondary-color: var(--text-dim);
}

body {
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  min-height: 100vh;
  background:
    radial-gradient(900px 600px at 8% -10%, rgba(0, 229, 255, .16), transparent 60%),
    radial-gradient(800px 600px at 100% 0%, rgba(255, 43, 214, .14), transparent 60%),
    radial-gradient(900px 700px at 50% 120%, rgba(157, 107, 255, .16), transparent 60%),
    linear-gradient(180deg, var(--bg-1), var(--bg-0)) fixed;
  background-attachment: fixed;
}
body::before {  /* perspective grid floor */
  content: ""; position: fixed; inset: auto 0 0 0; height: 45vh; z-index: -1; pointer-events: none;
  background:
    linear-gradient(rgba(0, 229, 255, .10) 1px, transparent 1px) 0 0 / 60px 60px,
    linear-gradient(90deg, rgba(255, 43, 214, .08) 1px, transparent 1px) 0 0 / 60px 60px;
  transform: perspective(500px) rotateX(60deg); transform-origin: bottom;
  mask-image: linear-gradient(to top, black, transparent 85%);
  -webkit-mask-image: linear-gradient(to top, black, transparent 85%);
}
h1, h2, h3, h4, h5, .navbar-brand, .kpi-value { font-family: "Space Grotesk", "Inter", sans-serif; letter-spacing: -.01em; }
h3 { font-weight: 700; }
.page-title {
  background: linear-gradient(90deg, #fff, var(--neon-cyan) 45%, var(--neon-pink));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.text-muted { color: var(--text-dim) !important; }
.text-success { color: var(--neon-lime) !important; text-shadow: 0 0 12px rgba(57, 255, 136, .35); }
.text-primary { color: var(--neon-cyan) !important; text-shadow: 0 0 12px rgba(0, 229, 255, .35); }
.text-danger { color: var(--neon-red) !important; text-shadow: 0 0 12px rgba(255, 77, 109, .35); }

/* ---- navbar ---- */
.navbar.neon-nav {
  background: rgba(8, 11, 30, .72) !important; backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--glass-border); box-shadow: 0 8px 30px rgba(0, 0, 0, .35);
  position: sticky; top: 0; z-index: 1030;
}
.navbar.neon-nav::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--neon-cyan), var(--neon-pink), transparent);
}
.navbar-brand i { color: var(--neon-cyan); filter: drop-shadow(0 0 6px var(--neon-cyan)); }
.navbar .nav-link { color: #c8cdf5 !important; transition: color .2s, text-shadow .2s; }
.navbar .nav-link:hover, .navbar .nav-link.active { color: #fff !important; text-shadow: 0 0 10px var(--neon-cyan); }

/* ---- glass cards / tables ---- */
.card {
  background: var(--glass); border: 1px solid var(--glass-border); border-radius: 1rem;
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 10px 40px rgba(0, 0, 0, .35), inset 0 1px 0 rgba(255, 255, 255, .06);
  overflow: hidden;
}
.card-header {
  background: linear-gradient(90deg, rgba(0, 229, 255, .10), rgba(255, 43, 214, .06)) !important;
  border-bottom: 1px solid var(--glass-border); color: #fff; letter-spacing: .02em;
}
.table { --bs-table-bg: transparent; --bs-table-color: #e6e9ff; --bs-table-striped-bg: rgba(255, 255, 255, .03);
  --bs-table-hover-bg: rgba(0, 229, 255, .06); --bs-table-border-color: rgba(140, 160, 255, .1); }
.table-light, .table > thead.table-light th, thead.table-light {
  --bs-table-bg: rgba(15, 20, 50, .85); --bs-table-color: #9fb0ff; --bs-table-border-color: rgba(140, 160, 255, .15);
}
.table > thead th { font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; font-weight: 600; }
.table tbody tr { transition: background .15s; }
.table tbody tr:hover { background: rgba(0, 229, 255, .05); }
.list-group { --bs-list-group-bg: transparent; --bs-list-group-color: #e6e9ff; --bs-list-group-border-color: rgba(140, 160, 255, .1);
  --bs-list-group-action-hover-bg: rgba(0, 229, 255, .07); --bs-list-group-action-hover-color: #fff; }
.list-group-item { transition: background .15s, transform .15s; }
.list-group-flush .list-group-item:hover { background: rgba(0, 229, 255, .05); transform: translateX(3px); }
.bg-light, .text-bg-light { background-color: rgba(30, 38, 85, .6) !important; color: #e6e9ff !important; }
pre.bg-light { border: 1px solid var(--glass-border); border-radius: .5rem; }
.form-control, .form-select {
  background-color: rgba(10, 14, 38, .7); border-color: rgba(140, 160, 255, .22); color: #e6e9ff;
}
.form-control:focus, .form-select:focus {
  background-color: rgba(10, 14, 38, .9); color: #fff; border-color: var(--neon-cyan);
  box-shadow: 0 0 0 .2rem rgba(0, 229, 255, .2), 0 0 18px rgba(0, 229, 255, .25);
}
.form-control::placeholder { color: #6b74a6; }
.alert { border-radius: .75rem; backdrop-filter: blur(8px); }
.alert-info { background: rgba(0, 229, 255, .08); border-color: rgba(0, 229, 255, .35); color: #bff6ff; }

/* ---- buttons ---- */
.btn-primary {
  --bs-btn-color: #04121a; --bs-btn-hover-color: #04121a; --bs-btn-active-color: #04121a;
  background: linear-gradient(135deg, var(--neon-cyan), var(--neon-violet) 60%, var(--neon-pink));
  border: 0; font-weight: 600; border-radius: .75rem;
  box-shadow: 0 6px 24px rgba(0, 229, 255, .35), 0 2px 0 rgba(255, 255, 255, .25) inset;
  transition: transform .15s, box-shadow .2s, filter .2s;
}
.btn-primary:hover { transform: translateY(-2px); filter: brightness(1.1);
  box-shadow: 0 10px 34px rgba(255, 43, 214, .45), 0 2px 0 rgba(255, 255, 255, .25) inset; }
.btn-primary:active { transform: translateY(0); }
.btn-outline-secondary, .btn-outline-primary, .btn-outline-dark {
  --bs-btn-color: #c8cdf5; --bs-btn-border-color: rgba(140, 160, 255, .35);
  --bs-btn-hover-bg: rgba(0, 229, 255, .12); --bs-btn-hover-border-color: var(--neon-cyan); --bs-btn-hover-color: #fff;
}

/* ---- KPI cards (3D) ---- */
.kpi-row { perspective: 1200px; }
.kpi {
  --accent: var(--neon-cyan); --accent-rgb: 0, 229, 255;
  position: relative; padding: 1.25rem 1.35rem; border-radius: 1.1rem; overflow: hidden;
  background:
    linear-gradient(145deg, rgba(var(--accent-rgb), .16), rgba(14, 18, 48, .75) 55%),
    rgba(14, 18, 48, .7);
  border: 1px solid rgba(var(--accent-rgb), .35);
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, .03) inset,
    0 1px 0 rgba(255, 255, 255, .12) inset,
    0 18px 40px rgba(0, 0, 0, .45),
    0 0 28px rgba(var(--accent-rgb), .18);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  transform-style: preserve-3d; transition: transform .25s ease, box-shadow .25s ease;
  will-change: transform;
}
.kpi:hover { box-shadow: 0 1px 0 rgba(255, 255, 255, .15) inset, 0 26px 60px rgba(0, 0, 0, .55), 0 0 44px rgba(var(--accent-rgb), .38); }
.kpi::before {  /* neon top edge */
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px;
  background: linear-gradient(90deg, transparent, var(--accent), transparent);
  box-shadow: 0 0 14px var(--accent);
}
.kpi-glow {
  position: absolute; width: 220px; height: 220px; border-radius: 50%; right: -70px; top: -90px; pointer-events: none;
  background: radial-gradient(circle, rgba(var(--accent-rgb), .45), transparent 65%); filter: blur(10px);
  transition: transform .3s;
}
.kpi > *:not(.kpi-glow) { position: relative; transform: translateZ(30px); }
.kpi-icon {
  position: absolute !important; right: 1.1rem; top: 1rem; font-size: 1.5rem; color: var(--accent);
  filter: drop-shadow(0 0 8px var(--accent)); transform: translateZ(50px) !important;
}
.kpi-label { font-size: .72rem; text-transform: uppercase; letter-spacing: .12em; color: #aab3e6; font-weight: 600; }
.kpi-label span { color: #6f78ad; font-weight: 500; letter-spacing: .04em; text-transform: none; }
.kpi-value {
  font-size: 1.85rem; font-weight: 700; color: #fff; margin-top: .35rem; line-height: 1.1;
  text-shadow: 0 0 18px rgba(var(--accent-rgb), .75), 0 0 2px rgba(var(--accent-rgb), .9);
}
.kpi-value-xl { font-size: 2.9rem; }
.kpi-value-sm { font-size: 1.25rem; font-weight: 600; }
.kpi-sub { font-size: .78rem; color: var(--text-dim); margin-top: .35rem; }
.kpi-rev { --accent: var(--neon-lime); --accent-rgb: 57, 255, 136; }
.kpi-sav { --accent: var(--neon-cyan); --accent-rgb: 0, 229, 255; }
.kpi-risk { --accent: var(--neon-red); --accent-rgb: 255, 77, 109; }
.kpi-cap { --accent: var(--neon-violet); --accent-rgb: 157, 107, 255; }
.kpi-total {
  --accent: var(--neon-pink); --accent-rgb: 255, 43, 214;
  background:
    radial-gradient(120% 140% at 0% 0%, rgba(0, 229, 255, .22), transparent 50%),
    radial-gradient(120% 140% at 100% 100%, rgba(255, 43, 214, .28), transparent 55%),
    rgba(14, 18, 48, .78);
  border: 1px solid transparent;
  background-clip: padding-box;
}
.kpi-total::after {  /* animated gradient border */
  content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1.5px; pointer-events: none;
  background: conic-gradient(from var(--ang, 0deg), var(--neon-cyan), var(--neon-violet), var(--neon-pink), var(--neon-amber), var(--neon-cyan));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  animation: spin-border 6s linear infinite;
}
.kpi-total .kpi-value {
  background: linear-gradient(90deg, #fff, #bff8ff 30%, #ffc2f3);
  -webkit-background-clip: text; background-clip: text; color: transparent;
  text-shadow: none; filter: drop-shadow(0 0 14px rgba(255, 43, 214, .55)) drop-shadow(0 0 4px rgba(0, 229, 255, .6));
}
@property --ang { syntax: "<angle>"; initial-value: 0deg; inherits: false; }
@keyframes spin-border { to { --ang: 360deg; } }
.kpi-bar { display: flex; height: 8px; border-radius: 99px; overflow: hidden; margin-top: .9rem; background: rgba(255, 255, 255, .06); }
.kpi-bar .seg { display: block; height: 100%; }
.seg-rev { background: var(--neon-lime); box-shadow: 0 0 10px var(--neon-lime); }
.seg-sav { background: var(--neon-cyan); box-shadow: 0 0 10px var(--neon-cyan); }
.seg-risk { background: var(--neon-red); box-shadow: 0 0 10px var(--neon-red); }
@media (prefers-reduced-motion: reduce) { .kpi, .kpi-total::after { transition: none; animation: none; } }

/* ---- opportunities ---- */
.opp-table td { vertical-align: top; }
.opp-title { font-weight: 600; text-decoration: none; }
.opp-detail { max-width: 70ch; }
.status-addressed { opacity: .5; }
.status-addressed .opp-title { text-decoration: line-through; }
.status-not_addressed { opacity: .5; }
.status-select { min-width: 9rem; }
.badge { border-radius: 99px; padding: .4em .75em; }
.cat-badge { font-weight: 600; color: #fff; border: 1px solid rgba(255, 255, 255, .15); }
.cat-revenue-leakage { background: rgba(255, 77, 109, .22); color: #ff9db0; box-shadow: 0 0 12px rgba(255, 77, 109, .35); }
.cat-revenue-opportunity { background: rgba(57, 255, 136, .18); color: #8dffbf; box-shadow: 0 0 12px rgba(57, 255, 136, .3); }
.cat-cost-savings { background: rgba(0, 229, 255, .18); color: #8ff3ff; box-shadow: 0 0 12px rgba(0, 229, 255, .3); }
.cat-collections-risk { background: rgba(255, 176, 32, .2); color: #ffd27a; box-shadow: 0 0 12px rgba(255, 176, 32, .3); }
.cat-trend { background: rgba(157, 107, 255, .22); color: #c9b2ff; box-shadow: 0 0 12px rgba(157, 107, 255, .3); }
.cat-operations { background: rgba(32, 201, 151, .2); color: #8ef0d2; }
.cat-data-quality { background: rgba(140, 150, 190, .2); color: #c6cbe6; }
.sev-high { background: rgba(255, 77, 109, .18); color: #ff9db0; border: 1px solid rgba(255, 77, 109, .4); }
.sev-medium { background: rgba(255, 176, 32, .15); color: #ffd27a; border: 1px solid rgba(255, 176, 32, .35); }
.sev-low { background: rgba(140, 150, 190, .15); color: #c6cbe6; border: 1px solid rgba(140, 150, 190, .3); }

/* ---- upload ---- */
.dropzone {
  display: block; border: 2px dashed rgba(0, 229, 255, .45); border-radius: 1rem; padding: 2.5rem; text-align: center;
  cursor: pointer; background: rgba(0, 229, 255, .04); transition: all .2s;
}
.dropzone i { color: var(--neon-cyan); filter: drop-shadow(0 0 10px var(--neon-cyan)); }
.dropzone.hover, .dropzone:hover { border-color: var(--neon-pink); background: rgba(255, 43, 214, .07); box-shadow: 0 0 30px rgba(255, 43, 214, .25) inset; }

::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: linear-gradient(var(--neon-cyan), var(--neon-pink)); border-radius: 99px; }
::-webkit-scrollbar-track { background: transparent; }
.kpi-label { padding-right: 2.2rem; }
a { text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: 3px; }
.kpi:not(.kpi-total) .kpi-value { font-size: clamp(1.4rem, 1.9vw, 1.85rem); }

/* ---- opportunity types panel ---- */
.type-item { --accent: var(--neon-cyan); --accent-rgb: 0, 229, 255; padding: .7rem 1rem; color: #e6e9ff; border-left: 3px solid transparent !important; }
.type-item:hover { text-decoration: none !important; border-left-color: var(--accent) !important; background: rgba(var(--accent-rgb), .07) !important; }
.type-icon { width: 2.3rem; height: 2.3rem; flex: none; display: inline-flex; align-items: center; justify-content: center; border-radius: .7rem;
  color: var(--accent); background: rgba(var(--accent-rgb), .12); border: 1px solid rgba(var(--accent-rgb), .35);
  box-shadow: 0 0 14px rgba(var(--accent-rgb), .25); font-size: 1.05rem; }
.type-label { font-weight: 600; }
.type-count { background: rgba(var(--accent-rgb), .16); color: var(--accent); border: 1px solid rgba(var(--accent-rgb), .4); min-width: 2rem; }
.type-value { font-family: "Space Grotesk", sans-serif; font-weight: 700; color: #fff; line-height: 1.1; min-width: 5.5rem;
  text-shadow: 0 0 10px rgba(var(--accent-rgb), .55); }
.tcat-revenue-opportunity { --accent: var(--neon-lime); --accent-rgb: 57, 255, 136; }
.tcat-revenue-leakage { --accent: var(--neon-red); --accent-rgb: 255, 77, 109; }
.tcat-cost-savings { --accent: var(--neon-cyan); --accent-rgb: 0, 229, 255; }
.tcat-collections-risk { --accent: var(--neon-amber); --accent-rgb: 255, 176, 32; }
.tcat-trend { --accent: var(--neon-violet); --accent-rgb: 157, 107, 255; }
.tcat-operations { --accent: #20c997; --accent-rgb: 32, 201, 151; }
.tcat-data-quality { --accent: #a3abd6; --accent-rgb: 163, 171, 214; }
.filter-chip { display: inline-flex; align-items: center; gap: .5rem; padding: .35rem .8rem; border-radius: 99px;
  background: rgba(0, 229, 255, .12); border: 1px solid rgba(0, 229, 255, .4); color: #bff6ff; }

/* =================== LIGHT THEME (html[data-theme="light"]) =================== */
html[data-theme="light"] {
  --neon-cyan: #0891b2; --neon-pink: #db2777; --neon-lime: #059669; --neon-amber: #d97706;
  --neon-violet: #7c3aed; --neon-red: #e11d48;
  --bg-0: #f4f6fb; --bg-1: #ffffff;
  --glass: rgba(255, 255, 255, .82); --glass-border: rgba(30, 41, 90, .10);
  --text-dim: #5b6488;
  --bs-body-bg: var(--bg-0); --bs-body-color: #1b2140; --bs-emphasis-color: #0f1430;
  --bs-tertiary-bg: #eef1f8; --bs-secondary-bg: #eef1f8;
  --bs-border-color: rgba(30, 41, 90, .12);
  --bs-link-color: #0e7490; --bs-link-color-rgb: 14, 116, 144;
  --bs-link-hover-color: #be185d; --bs-link-hover-color-rgb: 190, 24, 93;
  --bs-secondary-color: var(--text-dim);
  --bs-success-rgb: 5, 150, 105; --bs-primary-rgb: 8, 145, 178; --bs-danger-rgb: 225, 29, 72;
}
html[data-theme="light"] body {
  background:
    radial-gradient(900px 600px at 8% -10%, rgba(8, 145, 178, .10), transparent 60%),
    radial-gradient(800px 600px at 100% 0%, rgba(219, 39, 119, .08), transparent 60%),
    radial-gradient(900px 700px at 50% 120%, rgba(124, 58, 237, .08), transparent 60%),
    linear-gradient(180deg, var(--bg-1), var(--bg-0)) fixed;
}
html[data-theme="light"] body::before { opacity: .45; }
html[data-theme="light"] .page-title { background-image: linear-gradient(90deg, #0f1430, var(--neon-cyan) 45%, var(--neon-pink)); }
html[data-theme="light"] .text-success, html[data-theme="light"] .text-primary, html[data-theme="light"] .text-danger { text-shadow: none; }
html[data-theme="light"] .navbar.neon-nav { background: rgba(255, 255, 255, .85) !important; box-shadow: 0 6px 24px rgba(30, 41, 90, .08); }
html[data-theme="light"] .navbar-brand { color: #0f1430 !important; }
html[data-theme="light"] .navbar-brand i { filter: none; }
html[data-theme="light"] .navbar .nav-link { color: #3b4468 !important; }
html[data-theme="light"] .navbar .nav-link:hover { color: var(--neon-pink) !important; text-shadow: none; }
html[data-theme="light"] .card { box-shadow: 0 10px 30px rgba(30, 41, 90, .08), inset 0 1px 0 #fff; }
html[data-theme="light"] .card-header {
  background: linear-gradient(90deg, rgba(8, 145, 178, .08), rgba(219, 39, 119, .05)) !important; color: #0f1430;
}
html[data-theme="light"] .table { --bs-table-color: #1b2140; --bs-table-striped-bg: rgba(30, 41, 90, .025);
  --bs-table-hover-bg: rgba(8, 145, 178, .05); --bs-table-border-color: rgba(30, 41, 90, .08); }
html[data-theme="light"] .table-light, html[data-theme="light"] .table > thead.table-light th, html[data-theme="light"] thead.table-light {
  --bs-table-bg: #f1f4fa; --bs-table-color: #4b5580; --bs-table-border-color: rgba(30, 41, 90, .10);
}
html[data-theme="light"] .list-group { --bs-list-group-color: #1b2140; --bs-list-group-border-color: rgba(30, 41, 90, .08);
  --bs-list-group-action-hover-color: #0f1430; }
html[data-theme="light"] .bg-light, html[data-theme="light"] .text-bg-light { background-color: #eef1f8 !important; color: #1b2140 !important; }
html[data-theme="light"] .form-control, html[data-theme="light"] .form-select { background-color: #fff; border-color: rgba(30, 41, 90, .18); color: #1b2140; }
html[data-theme="light"] .form-control:focus, html[data-theme="light"] .form-select:focus { background-color: #fff; color: #0f1430; }
html[data-theme="light"] .form-control::placeholder { color: #8a92b2; }
html[data-theme="light"] .alert-info { background: rgba(8, 145, 178, .08); color: #0e5163; }
html[data-theme="light"] .btn-primary { --bs-btn-color: #fff; --bs-btn-hover-color: #fff; --bs-btn-active-color: #fff;
  box-shadow: 0 6px 20px rgba(8, 145, 178, .25), 0 2px 0 rgba(255, 255, 255, .25) inset; }
html[data-theme="light"] .btn-outline-secondary, html[data-theme="light"] .btn-outline-primary, html[data-theme="light"] .btn-outline-dark {
  --bs-btn-color: #3b4468; --bs-btn-border-color: rgba(30, 41, 90, .22); --bs-btn-hover-bg: rgba(8, 145, 178, .08); --bs-btn-hover-color: #0f1430;
}
/* KPI cards: white tiles with colored edge + soft lift */
html[data-theme="light"] .kpi {
  background: linear-gradient(145deg, rgba(var(--accent-rgb), .10), #fff 60%), #fff;
  border-color: rgba(var(--accent-rgb), .30);
  box-shadow: 0 1px 0 #fff inset, 0 14px 32px rgba(30, 41, 90, .10), 0 0 22px rgba(var(--accent-rgb), .12);
}
html[data-theme="light"] .kpi:hover { box-shadow: 0 20px 44px rgba(30, 41, 90, .16), 0 0 30px rgba(var(--accent-rgb), .22); }
html[data-theme="light"] .kpi::before { box-shadow: none; }
html[data-theme="light"] .kpi-glow { opacity: .45; }
html[data-theme="light"] .kpi-icon { filter: none; }
html[data-theme="light"] .kpi-label { color: #4b5580; }
html[data-theme="light"] .kpi-label span { color: #8a92b2; }
html[data-theme="light"] .kpi-value { color: #0f1430; text-shadow: none; }
html[data-theme="light"] .kpi-rev { --accent-rgb: 5, 150, 105; }
html[data-theme="light"] .kpi-sav { --accent-rgb: 8, 145, 178; }
html[data-theme="light"] .kpi-risk { --accent-rgb: 225, 29, 72; }
html[data-theme="light"] .kpi-cap { --accent-rgb: 124, 58, 237; }
html[data-theme="light"] .kpi-total {
  --accent-rgb: 219, 39, 119;
  background:
    radial-gradient(120% 140% at 0% 0%, rgba(8, 145, 178, .14), transparent 50%),
    radial-gradient(120% 140% at 100% 100%, rgba(219, 39, 119, .14), transparent 55%), #fff;
}
html[data-theme="light"] .kpi-total .kpi-value {
  background-image: linear-gradient(90deg, #0f1430, var(--neon-cyan) 55%, var(--neon-pink)); filter: none;
}
html[data-theme="light"] .kpi-bar { background: rgba(30, 41, 90, .08); }
html[data-theme="light"] .seg-rev, html[data-theme="light"] .seg-sav, html[data-theme="light"] .seg-risk { box-shadow: none; }
/* badges */
html[data-theme="light"] .cat-badge { border-color: transparent; box-shadow: none; }
html[data-theme="light"] .cat-revenue-leakage { background: #ffe4ea; color: #be123c; }
html[data-theme="light"] .cat-revenue-opportunity { background: #d1fae5; color: #047857; }
html[data-theme="light"] .cat-cost-savings { background: #cffafe; color: #0e7490; }
html[data-theme="light"] .cat-collections-risk { background: #fef3c7; color: #b45309; }
html[data-theme="light"] .cat-trend { background: #ede9fe; color: #6d28d9; }
html[data-theme="light"] .cat-operations { background: #ccfbf1; color: #0f766e; }
html[data-theme="light"] .cat-data-quality { background: #e5e7f0; color: #4b5580; }
html[data-theme="light"] .sev-high { background: #ffe4ea; color: #be123c; border-color: #fecdd6; }
html[data-theme="light"] .sev-medium { background: #fef3c7; color: #b45309; border-color: #fde68a; }
html[data-theme="light"] .sev-low { background: #eef1f8; color: #4b5580; border-color: #dde2ef; }
/* types panel */
html[data-theme="light"] .type-item { color: #1b2140; }
html[data-theme="light"] .type-icon { box-shadow: none; }
html[data-theme="light"] .type-value { color: #0f1430; text-shadow: none; }
html[data-theme="light"] .tcat-revenue-opportunity { --accent-rgb: 5, 150, 105; }
html[data-theme="light"] .tcat-revenue-leakage { --accent-rgb: 225, 29, 72; }
html[data-theme="light"] .tcat-cost-savings { --accent-rgb: 8, 145, 178; }
html[data-theme="light"] .tcat-collections-risk { --accent-rgb: 217, 119, 6; }
html[data-theme="light"] .tcat-trend { --accent-rgb: 124, 58, 237; }
html[data-theme="light"] .tcat-operations { --accent: #0f766e; --accent-rgb: 15, 118, 110; }
html[data-theme="light"] .tcat-data-quality { --accent: #5b6488; --accent-rgb: 91, 100, 136; }
html[data-theme="light"] .filter-chip { background: rgba(8, 145, 178, .08); border-color: rgba(8, 145, 178, .3); color: #0e5163; }
html[data-theme="light"] .dropzone { background: rgba(8, 145, 178, .03); }
html[data-theme="light"] .dropzone i { filter: none; }
.theme-toggle { background: none; border: 0; color: inherit; padding: 0 .25rem; font-size: 1.1rem; }
.theme-toggle.theme-tip-target {
  position: relative;
  z-index: 1060;
  color: var(--bs-info);
  animation: theme-tip-pulse 1.2s ease-in-out infinite alternate;
}
@keyframes theme-tip-pulse {
  to { filter: drop-shadow(0 0 8px currentColor); transform: scale(1.2); }
}
@media (prefers-reduced-motion: reduce) {
  .theme-toggle.theme-tip-target { animation: none; outline: 2px solid currentColor; outline-offset: 3px; }
}