/* =============================================================================
   PurpleTeamAutomations — Theme system
   Dark mode: unchanged (default)
   Light mode: Lavender purple palette
   ============================================================================= */

:root {
    /* Lavender purple — light-mode brand palette */
    --lavender-50:  #faf5ff;
    --lavender-100: #f3e8ff;
    --lavender-200: #e9d5ff;
    --lavender-300: #d8b4fe;
    --lavender-400: #c084fc;
    --lavender-500: #a855f7;
    --lavender-600: #9333ea;
    --lavender-700: #7e22ce;
    --lavender-800: #6b21a8;
    --lavender-900: #581c87;
    --lavender-accent: #b57aff;
    --lavender-muted: #7c6b94;
    --lavender-surface: #fdfaff;
    --lavender-panel: rgba(255, 255, 255, 0.94);
    --lavender-border: rgba(168, 85, 247, 0.22);
    --lavender-glow: rgba(168, 85, 247, 0.14);

    --font-ui: Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    --font-mono: Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    --font-title: Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

    /* Kibana-style type scale — fixed sizes */
    --font-size-root: 14px;
    --font-size-body: 14px;
    --font-size-sm: 13px;
    --font-size-xs: 12px;
    --font-size-md: 14px;
    --font-size-lg: 16px;
    --font-size-xl: 18px;
    --font-size-2xl: 24px;
    --font-size-title: 18px;
    --font-size-nav: 14px;
    --font-size-table: 14px;
    --font-size-mono: 13px;
    --line-height-base: 1.5;
    --line-height-relaxed: 1.6;
    --letter-spacing-ui: 0;
}

@media (min-width: 1920px) {
    :root {
        --font-size-root: 14px;
        --font-size-nav: 14px;
        --font-size-table: 14px;
    }
}

@media (min-width: 2560px) {
    :root {
        --font-size-root: 14px;
        --font-size-title: 18px;
        --font-size-2xl: 24px;
    }
}

/* Global typography (dark + light) */
html {
    font-size: var(--font-size-root);
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

body {
    font-size: var(--font-size-body);
    font-family: var(--font-ui);
    line-height: var(--line-height-base);
    letter-spacing: var(--letter-spacing-ui);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

button, input, select, textarea, table, th, td, .nav-item, .nav-item-parent, .theme-toggle-btn {
    font-family: var(--font-ui);
}

h1, h2, h3, h4, h5, h6,
.page-title,
.section-title {
    font-family: var(--font-title);
}

h1, .page-title { font-size: var(--font-size-title); font-weight: 600; line-height: 1.35; }
h2 { font-size: var(--font-size-lg); font-weight: 600; line-height: 1.4; }
h3, .section-title { font-size: var(--font-size-sm); font-weight: 600; line-height: 1.45; }
h4, h5, h6 { font-size: var(--font-size-sm); font-weight: 600; }

.page-subtitle,
.meta-badge,
.badge-count,
.filter-label,
.users-meta-bar {
    font-family: var(--font-ui);
    font-size: var(--font-size-xs);
}

.mini-table,
.mini-table th,
.mini-table td,
.ga-table, .cps-table, .dp-table, .pc-table, .su-table,
.dash-alert-table, .nu-table, .pwe-table, .em-table, .oo-table,
.groups-table, .data-table, .dump-table {
    font-family: var(--font-ui);
    font-size: var(--font-size-table);
}

code, pre, kbd, samp, .font-mono {
    font-family: var(--font-ui);
    font-size: var(--font-size-mono);
}

/* Table cell colors — light mode (privileged-users standard) */
body.theme-light .mini-table tbody td .ga-sam,
body.theme-light .ga-table tbody td .ga-sam,
body.theme-light .nu-table tbody td .ga-sam,
body.theme-light .pwe-table tbody td .ga-sam,
body.theme-light .mini-table tbody td a.ga-sam,
body.theme-light .ga-table tbody td a.ga-sam,
body.theme-light .mini-table tbody td .users-col-id,
body.theme-light .mini-table tbody td .nu-col-user,
body.theme-light .mini-table tbody td .nu-col-user .nu-user-name,
body.theme-light .mini-table tbody td .pwe-col-user,
body.theme-light .mini-table tbody td .pwe-col-user .pwe-user-name,
body.theme-light .mini-table tbody td.su-col-user,
body.theme-light .mini-table tbody td.su-col-user .su-user-name,
body.theme-light .mini-table tbody td .su-col-user,
body.theme-light .mini-table tbody td .su-col-user .su-user-name,
body.theme-light .pc-table tbody td .pc-user-name,
body.theme-light .mini-table tbody td .ab-col-user,
body.theme-light .data-table tbody td .ga-sam {
    color: var(--lavender-800) !important;
    -webkit-text-fill-color: var(--lavender-800) !important;
    font-weight: 600;
}

body.theme-light .mini-table tbody td .nu-col-muted,
body.theme-light .mini-table tbody td .pwe-col-muted,
body.theme-light .mini-table tbody td .users-col-cn,
body.theme-light .mini-table tbody td .users-col-extra,
body.theme-light .mini-table tbody td .ab-col-domain {
    color: var(--lavender-900) !important;
    -webkit-text-fill-color: var(--lavender-900) !important;
    font-weight: 400;
}

body.theme-light .mini-table tbody tr.gpc-row-unread td {
    background: rgba(168, 85, 247, 0.08);
}
body.theme-light .mini-table .gpc-group-link {
    color: var(--lavender-900) !important;
}
body.theme-light .mini-table .gpc-group-link:hover {
    color: var(--lavender-800) !important;
}
body.theme-light .mini-table .gpc-group-dn {
    color: var(--lavender-900) !important;
}
body.theme-light .mini-table.attr-table tbody td.attr-key,
body.theme-light .attr-table tbody td.attr-key,
body.theme-light .mini-table.attr-table tbody td.attr-val,
body.theme-light .attr-table tbody td.attr-val,
body.theme-light .mini-table.attr-table tbody th,
body.theme-light .attr-table tbody th {
    color: var(--lavender-900) !important;
    -webkit-text-fill-color: var(--lavender-900) !important;
    font-weight: 400 !important;
}

/* =========================================================================
   LIGHT MODE — Lavender purple theme
   ========================================================================= */
body.theme-light {
    background: linear-gradient(-45deg, var(--lavender-50), var(--lavender-surface), var(--lavender-100), #ffffff) !important;
    background-size: auto !important;
    animation: none !important;
    color: var(--lavender-900) !important;
    /* Shell CSS variables — readable text on lavender panels */
    --text: #3b1859;
    --text-muted: #6b21a8;
    --panel: var(--lavender-panel);
    --panel-solid: #ffffff;
    --border: var(--lavender-border);
}

body.theme-light .hacker-sidebar {
    background: rgba(255, 255, 255, 0.98) !important;
    border-right-color: var(--lavender-border) !important;
}

body.theme-light .sidebar-toggle {
    background: var(--lavender-panel) !important;
    border-color: var(--lavender-border) !important;
    color: var(--lavender-600) !important;
}
body.theme-light .sidebar-toggle:hover {
    background: var(--lavender-100) !important;
    border-color: var(--lavender-400) !important;
    color: var(--lavender-800) !important;
}

body.theme-light .toggle-zone {
    background: rgba(233, 213, 255, 0.45) !important;
}

body.theme-light .menu-title {
    color: var(--lavender-700) !important;
    text-shadow: none !important;
}

body.theme-light .menu-section {
    color: var(--lavender-800) !important;
    font-weight: 700 !important;
    font-size: 11px !important;
    letter-spacing: 0.08em !important;
    border-top-color: var(--lavender-border) !important;
    background: linear-gradient(90deg, rgba(124, 58, 237, 0.06), transparent 72%);
}

body.theme-light .nav-item {
    color: var(--lavender-800) !important;
    font-size: var(--font-size-nav);
    font-weight: 600;
}

body.theme-light .nav-item:hover {
    background: var(--lavender-glow) !important;
    color: var(--lavender-900) !important;
    border-left-color: var(--lavender-500) !important;
}

body.theme-light .nav-item.active,
body.theme-light .nav-item.nav-sub.active {
    background: rgba(58, 125, 140, 0.14) !important;
    color: var(--lavender-700) !important;
    border-left-color: var(--lavender-500) !important;
    font-weight: 700;
}

body.theme-light .nav-item i {
    color: var(--lavender-600) !important;
}

body.theme-light .nav-item-parent {
    color: var(--lavender-800) !important;
    font-size: var(--font-size-nav);
    font-weight: 700;
}
body.theme-light .nav-group:hover > .nav-item-parent {
    color: var(--lavender-900) !important;
    background: var(--lavender-glow) !important;
}
body.theme-light .nav-group.has-active > .nav-item-parent {
    color: var(--lavender-900) !important;
}
body.theme-light .nav-item-parent i:first-of-type {
    color: var(--lavender-600) !important;
}
body.theme-light .nav-item-parent i.fa-chevron-down {
    color: var(--lavender-600) !important;
}
body.theme-light .nav-submenu {
    border-left-color: rgba(58, 125, 140, 0.35) !important;
}

body.theme-light .glass-panel,
body.theme-light .glass {
    background: var(--lavender-panel) !important;
    border-color: var(--lavender-border) !important;
    box-shadow: 0 8px 32px rgba(31, 60, 70, 0.08) !important;
}

body.theme-light .glass-card {
    background: rgba(255, 255, 255, 0.94) !important;
    border-color: var(--lavender-border) !important;
    box-shadow: 0 8px 32px rgba(31, 60, 70, 0.08) !important;
}

body.theme-light .cyber-input {
    background: #fff !important;
    border-color: var(--lavender-200) !important;
    color: var(--lavender-900) !important;
}
body.theme-light .cyber-input:focus {
    border-color: var(--lavender-500) !important;
    box-shadow: 0 0 0 3px var(--lavender-glow) !important;
}

/* Page chrome */
body.theme-light .page-title {
    background: linear-gradient(120deg, var(--lavender-600), var(--lavender-400), var(--lavender-700)) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    overflow: visible !important;
    white-space: normal !important;
}

body.theme-light .page-subtitle,
body.theme-light .meta-badge {
    font-size: var(--font-size-xs);
}
body.theme-light .page-subtitle {
    color: var(--lavender-800) !important;
}
body.theme-light .meta-badge {
    color: #166534 !important;
    background: rgba(220, 252, 231, 0.95) !important;
    border-color: rgba(22, 163, 74, 0.45) !important;
    font-weight: 600;
}
body.theme-light .panel-accent-red {
    border-right-color: #dc2626 !important;
}
body.theme-light .badge-count,
body.theme-light #ga-count,
body.theme-light #ga-page {
    color: var(--lavender-800) !important;
    font-weight: 600;
}

body.theme-light .section-title {
    color: var(--lavender-600) !important;
}

body.theme-light .panel-accent-purple,
body.theme-light .panel-accent-violet {
    border-right-color: var(--lavender-500) !important;
}
body.theme-light .panel-accent-cyan {
    border-right-color: var(--lavender-400) !important;
}

/* Common text/background utilities */
body.theme-light .text-slate-400,
body.theme-light .text-slate-500 { color: var(--lavender-800) !important; }
body.theme-light .text-slate-300 { color: var(--lavender-900) !important; }
body.theme-light .text-slate-200 { color: var(--lavender-900) !important; }
body.theme-light .text-slate-100 { color: var(--lavender-900) !important; }
body.theme-light .text-white { color: var(--lavender-900) !important; }
body.theme-light .text-slate-600 { color: var(--lavender-800) !important; }
body.theme-light .text-emerald-300 { color: #15803d !important; }
body.theme-light .text-sky-300 { color: #1d4ed8 !important; }
body.theme-light .text-cyan-300 { color: var(--lavender-700) !important; }
body.theme-light .text-amber-400 { color: #b45309 !important; }
body.theme-light .text-green-400 { color: #15803d !important; }

body.theme-light .bg-black\/20,
body.theme-light .bg-black\/40 { background-color: rgba(255, 255, 255, 0.78) !important; }

body.theme-light .border-white\/5,
body.theme-light .border-white\/10 { border-color: var(--lavender-border) !important; }

body.theme-light .border-blue-500\/10,
body.theme-light .border-blue-500\/20,
body.theme-light .border-purple-500\/20,
body.theme-light .border-purple-500\/30,
body.theme-light .border-indigo-500\/30 {
    border-color: var(--lavender-border) !important;
}

body.theme-light .divide-white\/5 > * { border-color: rgba(58, 125, 140, 0.15) !important; }

body.theme-light .custom-scrollbar::-webkit-scrollbar-thumb { background: var(--lavender-300) !important; }

body.theme-light .json-pre {
    background: var(--lavender-50) !important;
    border-color: var(--lavender-200) !important;
    color: var(--lavender-900) !important;
    font-size: var(--font-size-mono);
}

body.theme-light .report-row:hover { background: var(--lavender-glow) !important; }
body.theme-light .report-detail-row td { background: rgba(238, 246, 248, 0.85) !important; }

body.theme-light .search-input,
body.theme-light .form-input,
body.theme-light input.bg-slate-900,
body.theme-light input.bg-slate-800 {
    background: #fff !important;
    border-color: var(--lavender-200) !important;
    color: var(--lavender-900) !important;
    font-size: var(--font-size-sm);
}

body.theme-light .filter-select,
body.theme-light select {
    background: #fff !important;
    border-color: var(--lavender-200) !important;
    color: var(--lavender-900) !important;
    font-size: var(--font-size-sm);
}

/* Tables — readable on large screens */
body.theme-light .dump-table,
body.theme-light .groups-table,
body.theme-light table {
    font-size: var(--font-size-table);
}
body.theme-light .dump-table th,
body.theme-light .dump-table td,
body.theme-light .groups-table th,
body.theme-light .groups-table td {
    color: var(--lavender-800) !important;
}
body.theme-light .dump-table thead th,
body.theme-light .dump-table thead td {
    background: var(--lavender-100) !important;
    color: var(--lavender-700) !important;
}
body.theme-light .dump-table tbody tr:nth-child(odd) td {
    background: #ffffff !important;
}
body.theme-light .dump-table tbody tr:nth-child(even) td {
    background: var(--lavender-100) !important;
}
body.theme-light .dump-table tbody tr:hover td {
    background: rgba(168, 85, 247, 0.22) !important;
}

/* Tailwind purple / violet / indigo → Lavester in light mode */
body.theme-light [class*="text-purple"],
body.theme-light [class*="text-violet"],
body.theme-light [class*="text-indigo"] {
    color: var(--lavender-600) !important;
}

body.theme-light [class*="bg-purple"],
body.theme-light [class*="bg-violet"],
body.theme-light [class*="bg-indigo"] {
    background-color: rgba(58, 125, 140, 0.12) !important;
}

body.theme-light [class*="border-purple"],
body.theme-light [class*="border-violet"],
body.theme-light [class*="border-indigo"] {
    border-color: var(--lavender-border) !important;
}

body.theme-light .text-blue-400,
body.theme-light .text-cyan-400 {
    color: var(--lavender-500) !important;
}

body.theme-light .bg-slate-900,
body.theme-light .bg-slate-900\/80,
body.theme-light .bg-slate-800 {
    background-color: #fff !important;
}

body.theme-light .nav-link.active {
    background: var(--lavender-500) !important;
    border-color: var(--lavender-600) !important;
}

body.theme-light .nav-link:hover {
    border-color: var(--lavender-400) !important;
    color: var(--lavender-800) !important;
}

body.theme-light .user-pill {
    border-color: var(--lavender-border) !important;
    background: var(--lavender-glow) !important;
    color: var(--lavender-700) !important;
}
body.theme-light .user-pill:hover,
body.theme-light .user-pill.active {
    background: var(--lavender-500) !important;
    color: #fff !important;
}

body.theme-light .breadcrumb a {
    color: var(--lavender-600) !important;
    font-weight: 700;
}
body.theme-light .breadcrumb {
    color: var(--lavender-900) !important;
    font-weight: 600;
}

body.theme-light .btn-back {
    color: #1e3a8a !important;
    background: #dbeafe !important;
    border: 1px solid #2563eb !important;
    box-shadow: 0 2px 6px rgba(37, 99, 235, 0.18) !important;
    -webkit-text-fill-color: #1e3a8a !important;
}
body.theme-light .btn-back i {
    color: #1d4ed8 !important;
}
body.theme-light .btn-back:hover {
    color: #ffffff !important;
    background: #2563eb !important;
    border-color: #1d4ed8 !important;
    box-shadow: 0 4px 12px rgba(37, 99, 235, 0.28) !important;
    -webkit-text-fill-color: #ffffff !important;
}
body.theme-light .btn-back:hover i {
    color: #ffffff !important;
}
body.theme-light .btn-back-muted {
    color: #5b21b6 !important;
    background: #ede9fe !important;
    border: 1px solid #7c3aed !important;
    -webkit-text-fill-color: #5b21b6 !important;
}
body.theme-light .btn-back-muted:hover {
    color: #ffffff !important;
    background: #7c3aed !important;
    border-color: #6d28d9 !important;
    -webkit-text-fill-color: #ffffff !important;
}

/* Dashboard cards — Lavester accents in light */
body.theme-light .attack-path-card.tier0-card:hover {
    border-color: var(--lavender-500) !important;
    box-shadow: 0 0 24px var(--lavender-glow) !important;
}
body.theme-light .attack-path-card.tier0-card .apc-icon {
    background: linear-gradient(135deg, var(--lavender-500), var(--lavender-700)) !important;
    color: #fff !important;
}
body.theme-light .attack-path-card.tier0-card .apc-stats i,
body.theme-light .attack-path-card.tier0-card .apc-cta {
    color: var(--lavender-600) !important;
    border-color: var(--lavender-500) !important;
}
body.theme-light .attack-path-card.tier0-card:hover .apc-cta {
    background: var(--lavender-500) !important;
    color: #fff !important;
}

body.theme-light .page-icon.purple {
    background: linear-gradient(135deg, var(--lavender-500), var(--lavender-400)) !important;
}
body.theme-light .page-icon.red {
    background: linear-gradient(135deg, #dc2626, #f87171) !important;
}
body.theme-light .page-icon.amber {
    background: linear-gradient(135deg, #d97706, #fbbf24) !important;
}
body.theme-light .page-icon.cyan {
    background: linear-gradient(135deg, #0891b2, #22d3ee) !important;
}
body.theme-light .page-icon.green {
    background: linear-gradient(135deg, #059669, #34d399) !important;
}

/* Login page — light */
body.theme-light .glass-title {
    background: linear-gradient(115deg, var(--lavender-600) 0%, var(--lavender-400) 35%, var(--lavender-700) 70%, var(--lavender-500) 100%) !important;
    background-size: 200% auto !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    text-shadow: none !important;
    filter: none !important;
}

body.theme-light .ninjas-gradient {
    background: linear-gradient(90deg, var(--lavender-600), var(--lavender-500)) !important;
}
body.theme-light .ninjas-gradient:hover {
    box-shadow: 0 0 20px var(--lavender-glow) !important;
}

/* Login page light background */
body.theme-light:not(:has(.main-wrapper)) {
    background: linear-gradient(-45deg, var(--lavender-50), var(--lavender-surface), var(--lavender-100), #fafcfd) !important;
}
body.theme-light .grid-overlay {
    background-image: linear-gradient(rgba(58, 125, 140, 0.04) 1px, transparent 1px),
                      linear-gradient(90deg, rgba(58, 125, 140, 0.04) 1px, transparent 1px) !important;
}

/* Page-specific light overrides (outdated-os, ghost, email) */
body.theme-light .oo-kpi-violet,
body.theme-light .oo-hint i,
body.theme-light .oo-inline-title i {
    --oo-violet: var(--lavender-500);
    border-color: var(--lavender-border) !important;
    color: var(--lavender-600) !important;
}
body.theme-light .oo-kpi-violet .oo-kpi-icon {
    color: var(--lavender-500) !important;
    background: var(--lavender-glow) !important;
}
body.theme-light .oo-kpi-violet .oo-kpi-value {
    color: var(--lavender-700) !important;
}

body.theme-light .em-btn-primary {
    background: linear-gradient(135deg, var(--lavender-600), var(--lavender-500)) !important;
}
body.theme-light .em-btn-primary:hover {
    background: linear-gradient(135deg, var(--lavender-700), var(--lavender-600)) !important;
}

/* Large monitor typography boost (both themes) */
@media (min-width: 1920px) {
    .page-icon { width: 46px; height: 46px; min-width: 46px; max-width: 46px; flex: 0 0 46px; font-size: 1.15rem; }
    .page-header-inner > .page-icon {
        width: 46px !important; min-width: 46px !important; max-width: 46px !important;
        height: 46px !important; flex: 0 0 46px !important;
    }
    .attack-path-card .apc-title { font-size: var(--font-size-md); }
    .attack-path-card .apc-subtitle { font-size: var(--font-size-sm); line-height: var(--line-height-relaxed); }
    .gc-chip { font-size: var(--font-size-xs); padding: 8px 16px; }
}

@media (min-width: 2560px) {
    .hacker-sidebar { width: 290px; }
    .sidebar-content { width: 290px; }
    .page-header { padding: 16px 22px; gap: 18px; }
}

/* Theme toggle button */
.theme-toggle-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    margin-top: 12px;
    width: auto;
    max-width: fit-content;
    text-align: left;
    background: none;
    border: none;
    border-left: 3px solid transparent;
    cursor: pointer;
    font-family: var(--font-ui);
    font-weight: 700;
    font-size: var(--font-size-xs);
    color: #94a3b8;
    transition: 0.3s;
}

.theme-toggle-btn i { width: 20px; text-align: center; font-size: 1rem; }

body.theme-light .theme-toggle-btn { color: var(--lavender-muted) !important; }
body.theme-light .theme-toggle-btn i { color: var(--lavender-500) !important; }
.theme-toggle-btn:hover { background: rgba(59, 130, 246, 0.1); color: #fff; border-left-color: #3b82f6; }
body.theme-light .theme-toggle-btn:hover {
    background: var(--lavender-glow) !important;
    color: var(--lavender-900) !important;
    border-left-color: var(--lavender-500) !important;
}

body.theme-light .theme-toggle-btn.fixed {
    background: var(--lavender-panel) !important;
    border-color: var(--lavender-border) !important;
    color: var(--lavender-700) !important;
}
body.theme-light .theme-toggle-btn.fixed:hover {
    background: var(--lavender-100) !important;
    color: var(--lavender-900) !important;
}

/* Hamburger icon in sidebar */
.hacker-sidebar .toggle-zone .fa-bars {
    transition: transform 0.35s ease;
}
.hacker-sidebar:hover .toggle-zone .fa-bars {
    transform: rotate(90deg);
}

/* PassSpray parent + submenu in sidebar */
.nav-group { position: relative; }
.nav-item-parent {
    display: flex; align-items: center; gap: 15px; padding: 12px 10px;
    color: #94a3b8; font-family: var(--font-ui); font-weight: 600;
    font-size: var(--font-size-nav);
    border-left: 3px solid transparent; cursor: pointer; transition: 0.3s;
    list-style: none; border: none; background: none; width: 100%; text-align: left;
}
.nav-item-parent i:first-of-type { width: 25px; text-align: center; color: #3b82f6; font-size: 1.05rem; }
.nav-item-parent .fa-chevron-down { margin-left: auto; font-size: 10px; color: #64748b; transition: transform 0.2s; }

.nav-group:hover > .nav-item-parent { background: rgba(59, 130, 246, 0.08); color: #fff; }
.nav-submenu {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    padding-left: 0;
    border-left: 2px solid rgba(59, 130, 246, 0.3);
    margin-left: 10px;
    transition: max-height 0.45s ease-out, opacity 0.4s ease-out;
}
.nav-group.open > .nav-submenu {
    max-height: 600px;
    opacity: 1;
}
.nav-group.open > .nav-item-parent .fa-chevron-down { transform: rotate(-180deg); }
.nav-sub {
    padding: 8px 10px 8px 28px !important;
    font-size: var(--font-size-sm) !important;
}

/* Sidebar alignment */
.sidebar-content { padding-left: 4px !important; padding-right: 4px !important; }
.hacker-sidebar .menu-title { padding-left: 4px !important; }
.hacker-sidebar .nav-item { padding-left: 4px !important; padding-right: 4px !important; }
.hacker-sidebar .nav-item-parent { padding-left: 4px !important; padding-right: 4px !important; }
.hacker-sidebar .nav-submenu { margin-left: 4px !important; }
.hacker-sidebar .nav-sub { padding: 8px 4px 8px 20px !important; }
.hacker-sidebar .theme-toggle-btn { padding-left: 4px !important; padding-right: 4px !important; }

/* ── Light mode contrast: tables, buttons, badges ─────────────────────── */
body.theme-light .mini-table thead th,
body.theme-light .ga-table thead th,
body.theme-light .cps-table thead th,
body.theme-light .dp-table thead th,
body.theme-light .pc-table thead th,
body.theme-light .su-table thead th,
body.theme-light .dash-alert-table thead th,
body.theme-light .nu-table thead th,
body.theme-light .pwe-table thead th,
body.theme-light .em-table thead th,
body.theme-light .oo-table thead th,
body.theme-light .groups-table thead th,
body.theme-light .data-table thead th {
    background: var(--lavender-100) !important;
    color: var(--lavender-800) !important;
    border-bottom-color: var(--lavender-border) !important;
}
body.theme-light .mini-table thead th:hover,
body.theme-light .ga-table thead th:hover,
body.theme-light .cps-table thead th:hover,
body.theme-light .dp-table thead th:hover,
body.theme-light .pc-table thead th:hover,
body.theme-light .su-table thead th:hover,
body.theme-light .dash-alert-table thead th:hover,
body.theme-light .nu-table thead th:hover,
body.theme-light .pwe-table thead th:hover,
body.theme-light .em-table thead th:hover,
body.theme-light .oo-table thead th:hover,
body.theme-light .groups-table thead th:hover,
body.theme-light .data-table thead th:hover { color: var(--lavender-900) !important; }
body.theme-light .mini-table tbody td,
body.theme-light .ga-table tbody td,
body.theme-light .cps-table tbody td,
body.theme-light .dp-table tbody td,
body.theme-light .pc-table tbody td,
body.theme-light .su-table tbody td,
body.theme-light .dash-alert-table tbody td,
body.theme-light .nu-table tbody td,
body.theme-light .pwe-table tbody td,
body.theme-light .em-table tbody td,
body.theme-light .oo-table tbody td,
body.theme-light .groups-table tbody td,
body.theme-light .data-table tbody td {
    color: var(--lavender-900) !important;
    -webkit-text-fill-color: var(--lavender-900) !important;
    border-bottom-color: rgba(168, 85, 247, 0.12) !important;
    background: #ffffff !important;
}
body.theme-light .mini-table.attr-table tbody td.attr-key,
body.theme-light .attr-table tbody td.attr-key,
body.theme-light .mini-table.attr-table tbody td.attr-val,
body.theme-light .attr-table tbody td.attr-val,
body.theme-light .mini-table.attr-table tbody th,
body.theme-light .attr-table tbody th {
    color: var(--lavender-900) !important;
    -webkit-text-fill-color: var(--lavender-900) !important;
    font-weight: 400 !important;
}
body.theme-light .mini-table tbody tr:nth-child(even) td,
body.theme-light .ga-table tbody tr:nth-child(even) td,
body.theme-light .cps-table tbody tr:nth-child(even) td,
body.theme-light .dp-table tbody tr:nth-child(even) td,
body.theme-light .pc-table tbody tr:nth-child(even) td,
body.theme-light .su-table tbody tr:nth-child(even) td,
body.theme-light .dash-alert-table tbody tr:nth-child(even) td,
body.theme-light .nu-table tbody tr:nth-child(even) td,
body.theme-light .pwe-table tbody tr:nth-child(even) td,
body.theme-light .em-table tbody tr:nth-child(even) td,
body.theme-light .oo-table tbody tr:nth-child(even) td,
body.theme-light .groups-table tbody tr:nth-child(even) td,
body.theme-light .data-table tbody tr:nth-child(even) td {
    background: var(--lavender-100) !important;
}
body.theme-light .mini-table tbody tr.clickable-row:hover td,
body.theme-light .mini-table tbody tr:hover td,
body.theme-light .ga-table tbody tr.clickable-row:hover td,
body.theme-light .ga-table tbody tr:hover td,
body.theme-light .cps-table tbody tr:hover td,
body.theme-light .dp-table tbody tr:hover td,
body.theme-light .pc-table tbody tr:hover td,
body.theme-light .su-table tbody tr:hover td,
body.theme-light .dash-alert-table tbody tr:hover td,
body.theme-light .nu-table tbody tr:hover td,
body.theme-light .pwe-table tbody tr:hover td,
body.theme-light .em-table tbody tr:hover td,
body.theme-light .oo-table tbody tr:hover td,
body.theme-light .groups-table tbody tr:hover td,
body.theme-light .data-table tbody tr:hover td {
    background: rgba(168, 85, 247, 0.22) !important;
}
body.theme-light .mini-table tbody tr.selected td,
body.theme-light .groups-table tbody tr.selected td {
    background: rgba(168, 85, 247, 0.18) !important;
    color: var(--lavender-900) !important;
}
body.theme-light .mini-table .col-num,
body.theme-light .ga-table .col-num,
body.theme-light .groups-table .col-num { color: var(--lavender-700) !important; }

body.theme-light .btn-row {
    background: var(--lavender-glow) !important;
    border-color: var(--lavender-border) !important;
    color: var(--lavender-800) !important;
}
body.theme-light .btn-row:hover {
    background: var(--lavender-200) !important;
    color: var(--lavender-900) !important;
}

body.theme-light .flag-tag { font-weight: 700; }
body.theme-light .change-type-added {
    color: #15803d !important;
    background: rgba(34, 197, 94, 0.14) !important;
    border-color: rgba(34, 197, 94, 0.45) !important;
}
body.theme-light .change-type-removed {
    color: #b91c1c !important;
    background: rgba(239, 68, 68, 0.12) !important;
    border-color: rgba(239, 68, 68, 0.4) !important;
}
body.theme-light .change-type-updated {
    color: #a16207 !important;
    background: rgba(234, 179, 8, 0.16) !important;
    border-color: rgba(234, 179, 8, 0.45) !important;
}

body.theme-light .val-old { color: #b91c1c !important; }
body.theme-light .val-new { color: #15803d !important; }
body.theme-light .link { color: #1d4ed8 !important; }
body.theme-light .link:hover { color: #1e3a8a !important; }

body.theme-light .os-block summary {
    background: var(--lavender-100) !important;
    border-color: var(--lavender-border) !important;
    color: var(--lavender-900) !important;
    font-family: var(--font-ui) !important;
    font-weight: 800 !important;
    font-size: 13px !important;
}
body.theme-light .os-block summary .os-count {
    color: var(--lavender-700) !important;
    font-weight: 700 !important;
}
body.theme-light .os-block[open] summary {
    background: var(--lavender-200) !important;
    border-color: var(--lavender-500) !important;
    color: var(--lavender-900) !important;
}

body.theme-light .cell-error {
    color: #b91c1c !important;
    font-weight: 700 !important;
    background: rgba(239, 68, 68, 0.1);
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 11px;
}

body.theme-light .detail-meta,
body.theme-light .toolbar .badge-count {
    color: var(--lavender-800) !important;
}
body.theme-light .detail-meta code {
    color: var(--lavender-700) !important;
    background: var(--lavender-100) !important;
}

body.theme-light .gpc-empty {
    background: var(--lavender-50) !important;
    border-color: var(--lavender-border) !important;
}
body.theme-light .gpc-empty h3 { color: var(--lavender-900) !important; }
body.theme-light .gpc-empty p  { color: var(--lavender-800) !important; }
body.theme-light .gpc-empty code {
    color: var(--lavender-700) !important;
    background: var(--lavender-100) !important;
}

body.theme-light thead.bg-black\/40,
body.theme-light .bg-black\/40 {
    background-color: var(--lavender-100) !important;
}
body.theme-light .bg-white\/5 {
    background-color: var(--lavender-50) !important;
}
body.theme-light tbody.divide-white\/5 > tr,
body.theme-light .divide-white\/5 > * {
    border-color: rgba(168, 85, 247, 0.12) !important;
}

/* Automation Settings (/automation-settings) */
body.theme-light .border-slate-700\/50 {
    border-color: rgba(168, 85, 247, 0.22) !important;
}
body.theme-light .automation-page .glass-title {
    background: linear-gradient(115deg, #9333ea 0%, #c026d3 35%, #db2777 60%, #2563eb 85%, #0891b2 100%) !important;
    background-size: 220% auto !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
}
body.theme-light #modules-loading {
    color: #581c87 !important;
}
body.theme-light #modules-loading .text-slate-400,
body.theme-light #modules-loading p {
    color: #581c87 !important;
}

/* DB Backup / MongoDB Control Plane (/db-backup) */
body.theme-light .db-backup-page .font-\[\'Orbitron\'\] {
    background: linear-gradient(115deg, #9333ea 0%, #c026d3 35%, #7e22ce 100%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
}

/* /main — module launcher cards (light) */
body.theme-light .attack-path-card {
    background: rgba(255, 255, 255, 0.96) !important;
    border-color: var(--lavender-border) !important;
    box-shadow: 0 4px 18px rgba(31, 60, 70, 0.07) !important;
}
body.theme-light .attack-path-card .apc-title {
    color: var(--lavender-900) !important;
    font-weight: 800 !important;
}
body.theme-light .attack-path-card .apc-stats {
    color: var(--lavender-800) !important;
    font-weight: 700 !important;
}
body.theme-light .attack-path-card .apc-stats span {
    color: var(--lavender-800) !important;
}
body.theme-light .attack-path-card .apc-stats i {
    color: var(--lavender-600) !important;
}
body.theme-light .attack-path-card .apc-cta {
    color: var(--lavender-700) !important;
    border-color: var(--lavender-border) !important;
    font-weight: 700 !important;
}
body.theme-light .attack-path-card:hover {
    border-color: var(--lavender-500) !important;
    box-shadow: 0 8px 28px rgba(168, 85, 247, 0.14) !important;
}
body.theme-light .attack-path-card:hover .apc-cta {
    background: var(--lavender-500) !important;
    color: #fff !important;
    border-color: var(--lavender-600) !important;
}

/* Dashboard launcher — unified OPEN button on every card */
body.theme-light .dashboard-card-stack .attack-path-card .apc-cta,
body.theme-light .dashboard-card-stack .attack-path-card.ghost-card .apc-cta,
body.theme-light .dashboard-card-stack .attack-path-card.tier0-card .apc-cta,
body.theme-light .dashboard-card-stack .attack-path-card.priv-card .apc-cta,
body.theme-light .dashboard-card-stack .attack-path-card.email-card .apc-cta,
body.theme-light .dashboard-card-stack .attack-path-card.gpc-card .apc-cta,
body.theme-light .dashboard-card-stack .attack-path-card.domain-policy-card .apc-cta {
    color: var(--lavender-700) !important;
    border-color: var(--lavender-500) !important;
    background: rgba(124, 58, 237, 0.08) !important;
}
body.theme-light .dashboard-card-stack .attack-path-card:hover .apc-cta,
body.theme-light .dashboard-card-stack .attack-path-card.ghost-card:hover .apc-cta,
body.theme-light .dashboard-card-stack .attack-path-card.tier0-card:hover .apc-cta,
body.theme-light .dashboard-card-stack .attack-path-card.priv-card:hover .apc-cta,
body.theme-light .dashboard-card-stack .attack-path-card.email-card:hover .apc-cta,
body.theme-light .dashboard-card-stack .attack-path-card.gpc-card:hover .apc-cta,
body.theme-light .dashboard-card-stack .attack-path-card.domain-policy-card:hover .apc-cta {
    background: var(--lavender-500) !important;
    color: #fff !important;
    border-color: var(--lavender-600) !important;
}

/* /new-users — page chrome (table cells: dashboard-layout .mini-table) */
body.theme-light.page-new-users {
    background: var(--lavender-bg) !important;
    color: var(--lavender-900) !important;
}
body.theme-light.page-new-users .glass-panel {
    background: #fff !important;
    border-color: var(--lavender-border) !important;
}
body.theme-light.page-new-users .filter-container {
    background: #fff !important;
    border-color: var(--lavender-border) !important;
}
body.theme-light.page-new-users thead {
    background: var(--lavender-100) !important;
    color: var(--lavender-900) !important;
}
body.theme-light.page-new-users thead th {
    color: var(--lavender-900) !important;
}
body.theme-light.page-new-users .search-input {
    background: #fff !important;
    color: var(--lavender-900) !important;
    border-color: var(--lavender-border) !important;
}
body.theme-light.page-new-users h1 {
    color: var(--lavender-900) !important;
}
body.theme-light.page-new-users #search-result-count,
body.theme-light.page-new-users #pageInfo {
    color: var(--lavender-700) !important;
    font-weight: 700 !important;
}

/* /abuse — page chrome (table cells: dashboard-layout .mini-table) */
body.theme-light.page-abuse {
    background: var(--lavender-bg) !important;
    color: var(--lavender-900) !important;
}
body.theme-light.page-abuse .glass-panel {
    background: #fff !important;
    border-color: var(--lavender-border) !important;
}
body.theme-light.page-abuse .filter-container {
    background: #fff !important;
    border-color: var(--lavender-border) !important;
}
body.theme-light.page-abuse #hits-table thead {
    background: var(--lavender-100) !important;
    color: var(--lavender-900) !important;
}
body.theme-light.page-abuse #hits-table thead th {
    color: var(--lavender-900) !important;
}
body.theme-light.page-abuse .search-input {
    background: #fff !important;
    color: var(--lavender-900) !important;
    border-color: var(--lavender-border) !important;
}
body.theme-light.page-abuse h1 {
    color: var(--lavender-900) !important;
}
body.theme-light.page-abuse #table-count {
    color: var(--lavender-700) !important;
    font-weight: 700 !important;
}
