@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');
/* DigiRocket dark mode - "light black" / charcoal background + lime accents.
   Activated by `body.dark-mode`. */

/* ---- App-wide typography: ONE consistent font everywhere (Inter, like major
   sites). Applied to every element EXCEPT Font Awesome icons (which need their
   own icon font), so monospace numbers, headings, inputs — all match. ---- */
*:not(.fa):not(.fas):not(.far):not(.fab):not(.fa-solid):not(.fa-regular):not(.fa-brands):not([class*="fa-"]) {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
                 Helvetica, Arial, sans-serif !important;
}
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; letter-spacing: -0.01em; }

/* ---- Borders: a touch darker so cards / rows / dividers stand out (light mode) ---- */
body:not(.dark-mode) .card { border-color: #d1d5db !important; }
body:not(.dark-mode) .border,
body:not(.dark-mode) .border-b,
body:not(.dark-mode) .border-t,
body:not(.dark-mode) [class*="border-gray"] { border-color: #d1d5db !important; }
body:not(.dark-mode) [style*="#262d33"],
body:not(.dark-mode) [style*="#2a2f36"],
body:not(.dark-mode) [style*="#333b43"] { border-color: #cbd5e1 !important; }
body:not(.dark-mode) table td, body:not(.dark-mode) table th,
body:not(.dark-mode) .trow { border-color: #d1d5db !important; }

/* `background` shorthand also removes the light gradient IMAGE on <body> */
body.dark-mode { background: #1b1e20 !important; color: #e2e8f0; }
body.dark-mode.bg-gradient-to-br { background: #1b1e20 !important; }

/* Page background gradients on inner elements -> light black */
body.dark-mode .bg-gradient-to-br { background: #1b1e20 !important; }

/* Headers -> slightly darker charcoal gradient */
body.dark-mode .gradient-bg,
body.dark-mode .custom-gradient {
    background: linear-gradient(135deg, #2a2e31 0%, #1b1e20 100%) !important;
}

/* Cards / panels -> charcoal (a bit lighter than page to stand out) */
body.dark-mode .bg-white,
body.dark-mode .section-card,
body.dark-mode .glass-card,
body.dark-mode .stats-card,
body.dark-mode .glass-effect,
body.dark-mode .metric-card,
body.dark-mode .chart-container,
body.dark-mode .table-container {
    background-color: #25282b !important;
    border-color: #3a4045 !important;
}
body.dark-mode .bg-gray-50,
body.dark-mode .bg-gray-100,
body.dark-mode .bg-slate-50 { background-color: #2a2e31 !important; }

/* Text */
body.dark-mode .text-gray-900,
body.dark-mode .text-gray-800,
body.dark-mode .text-gray-700 { color: #f1f5f9 !important; }
body.dark-mode .text-gray-600,
body.dark-mode .text-gray-500,
body.dark-mode .text-gray-400 { color: #a8b3bd !important; }
/* metric cards use text-black -> make icons + labels light in dark mode */
body.dark-mode .text-black { color: #e2e8f0 !important; }
/* metric card icons (incl. the lime card whose icon got forced dark) -> light */
body.dark-mode .metric-card i { color: #e2e8f0 !important; }
/* metric card labels: opacity-75 made the black text dim/gray on dark cards -> brighten */
body.dark-mode .metric-card .opacity-75 { opacity: 1 !important; color: #cbd5e1 !important; }
/* "Trending" / "Live Data" sub-labels were too dim -> clear bright green */
body.dark-mode .metric-card .text-green-300 { color: #86efac !important; }
body.dark-mode .metric-card i.text-green-300 { color: #86efac !important; }

/* Inputs / selects */
body.dark-mode input,
body.dark-mode select,
body.dark-mode textarea {
    background-color: #2a2e31 !important;
    color: #f1f5f9 !important;
    border-color: #3a4045 !important;
}

/* Tables */
body.dark-mode .enhanced-table thead th,
body.dark-mode thead.bg-gradient-to-r {
    background: #2a2e31 !important;
    color: #cbd5e1 !important;
    border-color: #3a4045 !important;
}
body.dark-mode .enhanced-table tbody tr:hover,
body.dark-mode tbody tr:hover { background: #30353a !important; }
body.dark-mode table td, body.dark-mode table th { color: #e2e8f0; border-color: #3a4045 !important; }

/* Borders / dividers */
body.dark-mode [class*="border-gray"],
body.dark-mode .border { border-color: #3a4045 !important; }
body.dark-mode .divide-y > :not([hidden]) ~ :not([hidden]) { border-color: #3a4045 !important; }

/* Dim glaring light badge tints */
body.dark-mode .bg-blue-100,
body.dark-mode .bg-green-100,
body.dark-mode .bg-purple-100,
body.dark-mode .bg-orange-100 { filter: brightness(0.6) saturate(1.15); }

/* Dropdown menus */
body.dark-mode .dropdown-content { background-color: #25282b !important; border-color: #3a4045 !important; }
body.dark-mode .dropdown-item { color: #e2e8f0 !important; }
body.dark-mode .dropdown-item:hover { background-color: #30353a !important; }

/* Form labels (hardcoded dark gray in <style>) -> light */
body.dark-mode .form-group label { color: #cbd5e1 !important; }
body.dark-mode label { color: #cbd5e1 !important; }

/* Native date-picker calendar icon is dark by default -> make it white in dark mode */
body.dark-mode input[type="date"]::-webkit-calendar-picker-indicator {
    filter: invert(1) brightness(1.8);
    cursor: pointer;
}

/* Light gradient header strips inside cards (from-gray-50 ...) -> dark.
   Targets bg-gradient-to-r ONLY (not the page body which is bg-gradient-to-br). */
body.dark-mode .bg-gradient-to-r.from-gray-50 {
    background-image: none !important;
    background-color: #2a2e31 !important;
}

/* ====================================================================
   LIGHT MODE overrides for the hardcoded-dark Helpdesk / PMO pages
   (board, ticket, chat, email-inbox, assigned-tasks). These pages set
   dark colours inline regardless of theme, so when dark-mode is OFF we
   flip the content surfaces to light. The brand topbar stays dark.
   ==================================================================== */
body:not(.dark-mode) { background:#f6f7fb !important; color:#1f2937 !important; }

/* cards / panels / inputs */
body:not(.dark-mode) .card { background:#ffffff !important; border-color:#e5e7eb !important; box-shadow:0 1px 3px rgba(0,0,0,.06) !important; }
/* the dark pages force .bg-white / .bg-gray-* dark INLINE (unscoped); restore
   them to light so e.g. the team-filter chips (bg-white) aren't dark-on-dark */
body:not(.dark-mode) .bg-white { background:#ffffff !important; }
body:not(.dark-mode) .bg-gray-100 { background:#f3f4f6 !important; }
body:not(.dark-mode) .bg-gray-50 { background:#f9fafb !important; }
body:not(.dark-mode) .bg-gray-800 { background:#1f2937 !important; }   /* selected chip stays dark w/ white text */
/* BUT: dark topbars / coloured headers use `bg-white bg-opacity-10` as a subtle
   light OVERLAY on a dark background (e.g. the "Helpdesk" nav button). Don't turn
   those into solid-white boxes — keep them as translucent overlays. */
body:not(.dark-mode) .topbar .bg-white,
body:not(.dark-mode) .gradient-bg .bg-white,
body:not(.dark-mode) .custom-gradient .bg-white,
body:not(.dark-mode) .bg-opacity-10.bg-white,
body:not(.dark-mode) .bg-white.bg-opacity-10,
body:not(.dark-mode) .bg-white.bg-opacity-20 { background:rgba(255,255,255,.12) !important; }
/* topbar text/links stay readable white on the dark bar (don't touch the lime
   brand icon, which keeps its own inline colour) */
body:not(.dark-mode) .topbar .text-white,
body:not(.dark-mode) .topbar a,
body:not(.dark-mode) .topbar span:not([style*="color"]) { color:#ffffff !important; }
body:not(.dark-mode) input,
body:not(.dark-mode) select,
body:not(.dark-mode) textarea { background:#ffffff !important; color:#1f2937 !important; border-color:#d1d5db !important; }
body:not(.dark-mode) input::placeholder,
body:not(.dark-mode) textarea::placeholder { color:#9ca3af !important; }

/* Kanban board */
body:not(.dark-mode) .kanban .kcol { background:#eef1f5 !important; border-color:#e2e6eb !important; }
body:not(.dark-mode) .kcol.is-empty { background:#f1f3f7 !important; }
body:not(.dark-mode) .kcol-head .name { color:#374151 !important; }
body:not(.dark-mode) .kcol-head .cnt,
body:not(.dark-mode) .tnum,
body:not(.dark-mode) .jkey { background:#e5e7eb !important; border-color:#d1d5db !important; color:#4b5563 !important; }
body:not(.dark-mode) .kcard { background:#ffffff !important; border-color:#e5e7eb !important; box-shadow:0 1px 2px rgba(0,0,0,.08) !important; }
body:not(.dark-mode) .kcard:hover { background:#fbfdff !important; border-color:#cbd5e1 !important; }
body:not(.dark-mode) .ktitle,
body:not(.dark-mode) .tk-title { color:#111827 !important; }
body:not(.dark-mode) .kcover { background:#f3f4f6 !important; border-color:#e5e7eb !important; color:#4b5563 !important; }
body:not(.dark-mode) .kfilters { background:#ffffff !important; border-color:#e5e7eb !important; }
body:not(.dark-mode) .fchip,
body:not(.dark-mode) .sort-btn,
body:not(.dark-mode) .ksearch input { background:#f3f4f6 !important; border-color:#d1d5db !important; color:#374151 !important; }
body:not(.dark-mode) .kdue { background:#f3f4f6 !important; color:#4b5563 !important; }
body:not(.dark-mode) .kchk { color:#6b7280 !important; }
body:not(.dark-mode) .kadd-btn { color:#6b7280 !important; }
body:not(.dark-mode) .kadd-btn:hover { background:#f3f4f6 !important; color:#374151 !important; }
body:not(.dark-mode) .kempty { color:#9ca3af !important; }
body:not(.dark-mode) .team-chip { background:rgba(13,148,136,0.10) !important; color:#0f766e !important; }
body:not(.dark-mode) .av,
body:not(.dark-mode) .av-sm,
body:not(.dark-mode) .mk-av { background:#e5e7eb !important; color:#374151 !important; }
body:not(.dark-mode) .kopen,
body:not(.dark-mode) .karch,
body:not(.dark-mode) .kclose { background:#f3f4f6 !important; border-color:#d1d5db !important; }
body:not(.dark-mode) .notif-panel { background:#ffffff !important; border-color:#e5e7eb !important; }
body:not(.dark-mode) .notif-item { border-color:#f1f3f5 !important; }
body:not(.dark-mode) .notif-item:hover { background:#f6f8fb !important; }
body:not(.dark-mode) .notif-item .nt,
body:not(.dark-mode) .notif-panel .nhead { color:#111827 !important; }
body:not(.dark-mode) .arch-head,
body:not(.dark-mode) .arch-row { background:#ffffff !important; border-color:#e5e7eb !important; }
body:not(.dark-mode) .nm-list { background:#f9fafb !important; border-color:#e5e7eb !important; }
body:not(.dark-mode) .nm-check { color:#374151 !important; }

/* Ticket detail: thread + chat bubbles + mini-kanban + side controls */
body:not(.dark-mode) .thread { background:#f3f4f6 !important; }
body:not(.dark-mode) .bubble.theirs { background:#ffffff !important; border-color:#e5e7eb !important; color:#1f2937 !important; }
body:not(.dark-mode) .bubble.theirs .body { color:#1f2937 !important; }
body:not(.dark-mode) .road .dot { background:#e5e7eb !important; color:#9ca3af; }
body:not(.dark-mode) .tac-btn { background:#f3f4f6 !important; border-color:#d1d5db !important; color:#374151 !important; }
body:not(.dark-mode) .achip { background:#f3f4f6 !important; border-color:#d1d5db !important; color:#374151 !important; }
body:not(.dark-mode) .member-list,
body:not(.dark-mode) .mention-box { background:#f9fafb !important; border-color:#e5e7eb !important; }
body:not(.dark-mode) .mention-item { color:#1f2937 !important; }
body:not(.dark-mode) .mention-item:hover,
body:not(.dark-mode) .mention-item.sel { background:#eef2f7 !important; }
body:not(.dark-mode) .mcol { background:#eef1f5 !important; border-color:#e2e6eb !important; }
body:not(.dark-mode) .mkcard { background:#ffffff !important; border-color:#e5e7eb !important; }
body:not(.dark-mode) .mkcard .t { color:#111827 !important; }
body:not(.dark-mode) .file-chip,
body:not(.dark-mode) .attach-btn { background:#f3f4f6 !important; border-color:#d1d5db !important; color:#374151 !important; }

/* Tables (assigned-tasks) */
body:not(.dark-mode) .trow:hover { background:#f6f8fb !important; }
body:not(.dark-mode) thead th { color:#6b7280 !important; }

/* Login + ghost buttons + dividers (used on login + email-inbox) */
body:not(.dark-mode) .btn-ghost { background:#f3f4f6 !important; border-color:#d1d5db !important; color:#374151 !important; }
body:not(.dark-mode) .divider { color:#9ca3af !important; }
body:not(.dark-mode) .divider:before,
body:not(.dark-mode) .divider:after { background:#e5e7eb !important; }
body:not(.dark-mode) code { background:#f3f4f6 !important; border-color:#e5e7eb !important; color:#0f766e !important; }

/* Staff chat: their bubbles + contacts column on light */
body:not(.dark-mode) .reply-quote { background:rgba(0,0,0,.04) !important; }
body:not(.dark-mode) .reply-banner { background:#f3f4f6 !important; border-color:#e5e7eb !important; }

/* Mini-kanban "Board position" empty cells + column headers */
body:not(.dark-mode) .mk-empty { border-color:#e5e7eb !important; color:#9ca3af !important; }
body:not(.dark-mode) .kchk-bar { background:#e5e7eb !important; }
body:not(.dark-mode) .mcol-head .name { color:#374151 !important; }

/* ---- CRITICAL: the dark pages force Tailwind text utilities light INLINE
   (e.g. .text-gray-700 { color:#e6e8eb !important }) regardless of theme, so
   in light mode the text was invisible on white. Restore readable dark text. */
body:not(.dark-mode) .text-gray-900,
body:not(.dark-mode) .text-gray-800,
body:not(.dark-mode) .text-gray-700 { color:#1f2937 !important; }
body:not(.dark-mode) .text-gray-600,
body:not(.dark-mode) .text-gray-500 { color:#4b5563 !important; }
body:not(.dark-mode) .text-gray-400,
body:not(.dark-mode) .text-gray-300 { color:#6b7280 !important; }
/* hand-rolled heading / label colours from inline styles */
body:not(.dark-mode) .lbl,
body:not(.dark-mode) label { color:#4b5563 !important; }
/* roadmap stepper labels + assorted hand-rolled light text on dark pages */
body:not(.dark-mode) .road .lbl { color:#374151 !important; }
body:not(.dark-mode) .road .who { color:#9ca3af !important; }
body:not(.dark-mode) .kdate,
body:not(.dark-mode) .meta,
body:not(.dark-mode) .kchk { color:#6b7280 !important; }

/* ====================================================================
   READABILITY: nudge up the tiniest text sizes app-wide (both themes),
   so small labels / badges / metas / avatars are easier to read. Kept
   modest (1-2px) so card and column layouts don't break.
   ==================================================================== */
.text-xs { font-size:12.5px !important; line-height:1.45 !important; }
.pill, .tnum, .jkey, .kdate, .kchk, .meta, .nm-check, .team-chip,
.kcover, .kdue, .step, .notif-item .ns,
.kcol-head .name, .mcol-head .name { font-size:12px !important; }
.kcol-head .name, .mcol-head .name { letter-spacing:.04em; }
.av, .av-sm, .mk-av, .javf .wl { font-size:11px !important; }
.ktitle, .tk-title { font-size:14.5px !important; }
.kcard .body, .bubble .body { font-size:14px !important; }
/* the relative time / muted captions were 10-11px in a few spots */
.kfoot .kdate, .who { font-size:11.5px !important; }


/* ============================================================
   AUTO-GENERATED light-mode overrides (from contrast scan).
   Flips unscoped dark backgrounds -> light and light gray text
   -> dark on every dark-theme.css page. Brand/overlay/topbar
   elements are intentionally skipped. ============================ */
body:not(.dark-mode) #kanToast { background:#ffffff !important; }
body:not(.dark-mode) .achip { background:#f3f4f6 !important; }
body:not(.dark-mode) .arch-head { background:#ffffff !important; }
body:not(.dark-mode) .arch-head .cnt { background:#f3f4f6 !important; }
body:not(.dark-mode) .arch-row { background:#ffffff !important; }
body:not(.dark-mode) .attach-btn { background:#f3f4f6 !important; }
body:not(.dark-mode) .attach-btn:hover { background:#f3f4f6 !important; }
body:not(.dark-mode) .av { background:#f3f4f6 !important; }
body:not(.dark-mode) .av-i { background:#f3f4f6 !important; }
body:not(.dark-mode) .av-sm { background:#f3f4f6 !important; }
body:not(.dark-mode) .badge-admin { background:#f3f4f6 !important; }
body:not(.dark-mode) .btn-ghost { background:#f3f4f6 !important; }
body:not(.dark-mode) .bubble.client { background:#f3f4f6 !important; }
body:not(.dark-mode) .bubble.theirs { background:#f3f4f6 !important; }
body:not(.dark-mode) .card { background:#ffffff !important; }
body:not(.dark-mode) .chat-card { background:#ffffff !important; }
body:not(.dark-mode) .chip { background:#f3f4f6 !important; }
body:not(.dark-mode) .compose { background:#ffffff !important; }
body:not(.dark-mode) .compose .icon-btn { background:#f3f4f6 !important; }
body:not(.dark-mode) .compose .icon-btn:hover { background:#f3f4f6 !important; }
body:not(.dark-mode) .compose .status-select { background:#f3f4f6 !important; }
body:not(.dark-mode) .contact.active { background:#f3f4f6 !important; }
body:not(.dark-mode) .contact:hover { background:#f3f4f6 !important; }
body:not(.dark-mode) .divider:after { background:#f3f4f6 !important; }
body:not(.dark-mode) .divider:before { background:#f3f4f6 !important; }
body:not(.dark-mode) .fchip { background:#f3f4f6 !important; }
body:not(.dark-mode) .file-chip { background:#ffffff !important; }
body:not(.dark-mode) .gbar { background:#f3f4f6 !important; }
body:not(.dark-mode) .gdots:hover { background:#f3f4f6 !important; }
body:not(.dark-mode) .gmenu-fixed { background:#ffffff !important; }
body:not(.dark-mode) .gmenu-fixed button:hover { background:#f3f4f6 !important; }
body:not(.dark-mode) .grp .cnt { background:#f3f4f6 !important; }
body:not(.dark-mode) .gtbl input { background:#ffffff !important; }
body:not(.dark-mode) .gtrack { background:#ffffff !important; }
body:not(.dark-mode) .hindi-box { background:#ffffff !important; }
body:not(.dark-mode) .javf.unassigned { background:#f3f4f6 !important; }
body:not(.dark-mode) .kadd-btn:hover { background:#ffffff !important; }
body:not(.dark-mode) .kadd-cancel { background:#f3f4f6 !important; }
body:not(.dark-mode) .kadd-form textarea { background:#ffffff !important; }
body:not(.dark-mode) .kanban::-webkit-scrollbar-thumb { background:#f3f4f6 !important; }
body:not(.dark-mode) .karch { background:#f3f4f6 !important; }
body:not(.dark-mode) .kcard { background:#ffffff !important; }
body:not(.dark-mode) .kcard:hover { background:#f3f4f6 !important; }
body:not(.dark-mode) .kchk-bar { background:#f3f4f6 !important; }
body:not(.dark-mode) .kclose { background:#f3f4f6 !important; }
body:not(.dark-mode) .kclose:hover { background:#f3f4f6 !important; }
body:not(.dark-mode) .kcol { background:#ffffff !important; }
body:not(.dark-mode) .kcol-body::-webkit-scrollbar-thumb { background:#f3f4f6 !important; }
body:not(.dark-mode) .kcol-collapse:hover { background:#f3f4f6 !important; }
body:not(.dark-mode) .kcol-head .cnt { background:#f3f4f6 !important; }
body:not(.dark-mode) .kcol.drop-ok { background:#ffffff !important; }
body:not(.dark-mode) .kcol.is-empty { background:#ffffff !important; }
body:not(.dark-mode) .kcol.wip-over .wip { background:#ffffff !important; }
body:not(.dark-mode) .kcover { background:#ffffff !important; }
body:not(.dark-mode) .kdue { background:#f3f4f6 !important; }
body:not(.dark-mode) .kdue.overdue { background:#ffffff !important; }
body:not(.dark-mode) .kdue.soon { background:#f3f4f6 !important; }
body:not(.dark-mode) .kfilters { background:#ffffff !important; }
body:not(.dark-mode) .kfilters select { background:#f3f4f6 !important; }
body:not(.dark-mode) .kopen { background:#f3f4f6 !important; }
body:not(.dark-mode) .ksearch input { background:#f3f4f6 !important; }
body:not(.dark-mode) .mcol { background:#ffffff !important; }
body:not(.dark-mode) .mcol.drop-ok { background:#ffffff !important; }
body:not(.dark-mode) .member-list { background:#f3f4f6 !important; }
body:not(.dark-mode) .mention-box { background:#ffffff !important; }
body:not(.dark-mode) .mention-item.sel { background:#f3f4f6 !important; }
body:not(.dark-mode) .mention-item:hover { background:#f3f4f6 !important; }
body:not(.dark-mode) .mk-av { background:#f3f4f6 !important; }
body:not(.dark-mode) .mkan::-webkit-scrollbar-thumb { background:#f3f4f6 !important; }
body:not(.dark-mode) .mkcard { background:#ffffff !important; }
body:not(.dark-mode) .modal-card { background:#ffffff !important; }
body:not(.dark-mode) .nm-list { background:#ffffff !important; }
body:not(.dark-mode) .notif-item:hover { background:#f3f4f6 !important; }
body:not(.dark-mode) .notif-panel { background:#ffffff !important; }
body:not(.dark-mode) .notif-panel .nhead { background:#ffffff !important; }
body:not(.dark-mode) .pick:hover { background:#f3f4f6 !important; }
body:not(.dark-mode) .picker { background:#f3f4f6 !important; }
body:not(.dark-mode) .reports-dropdown { background:#ffffff !important; }
body:not(.dark-mode) .reports-row.no-file .row-icon { background:#f3f4f6 !important; }
body:not(.dark-mode) .reports-row:hover { background:#f3f4f6 !important; }
body:not(.dark-mode) .restore-btn { background:#f3f4f6 !important; }
body:not(.dark-mode) .sort-btn { background:#f3f4f6 !important; }
body:not(.dark-mode) .sort-btn.active { background:#f3f4f6 !important; }
body:not(.dark-mode) .ss-flow span { background:#f3f4f6 !important; }
body:not(.dark-mode) .ss-ico { background:#ffffff !important; }
body:not(.dark-mode) .ss-pill { background:#ffffff !important; }
body:not(.dark-mode) .ss-steps:before { background:#f3f4f6 !important; }
body:not(.dark-mode) .stat { background:#ffffff !important; }
body:not(.dark-mode) .tac-btn { background:#f3f4f6 !important; }
body:not(.dark-mode) .thread { background:#ffffff !important; }
body:not(.dark-mode) .tnum { background:#f3f4f6 !important; }
body:not(.dark-mode) .trow:hover { background:#f3f4f6 !important; }
body:not(.dark-mode) .video-player { background:#ffffff !important; }
body:not(.dark-mode) .wi { background:#ffffff !important; }
body:not(.dark-mode) .wip { background:#f3f4f6 !important; }
body:not(.dark-mode) body { background:#ffffff !important; }
body:not(.dark-mode) code { background:#f3f4f6 !important; }
body:not(.dark-mode) input { background:#f3f4f6 !important; }
body:not(.dark-mode) input[type=text] { background:#f3f4f6 !important; }
body:not(.dark-mode) select { background:#f3f4f6 !important; }
body:not(.dark-mode) textarea { background:#f3f4f6 !important; }
body:not(.dark-mode) #kanToast { color:#374151 !important; }
body:not(.dark-mode) #ssCard { color:#374151 !important; }
body:not(.dark-mode) .acc-closed { color:#1f2937 !important; }
body:not(.dark-mode) .achip { color:#374151 !important; }
body:not(.dark-mode) .arch-head .cnt { color:#1f2937 !important; }
body:not(.dark-mode) .arch-head .name { color:#1f2937 !important; }
body:not(.dark-mode) .arch-row .t { color:#374151 !important; }
body:not(.dark-mode) .attach-btn { color:#1f2937 !important; }
body:not(.dark-mode) .av { color:#374151 !important; }
body:not(.dark-mode) .av-i { color:#1f2937 !important; }
body:not(.dark-mode) .av-sm { color:#374151 !important; }
body:not(.dark-mode) .badge-admin { color:#1f2937 !important; }
body:not(.dark-mode) .btn-ghost { color:#374151 !important; }
body:not(.dark-mode) .bubble .meta .who { color:#1f2937 !important; }
body:not(.dark-mode) .bubble.client { color:#374151 !important; }
body:not(.dark-mode) .bubble.client .atts .att { color:#374151 !important; }
body:not(.dark-mode) .bubble.client .meta { color:#374151 !important; }
body:not(.dark-mode) .bubble.client .meta .who { color:#1f2937 !important; }
body:not(.dark-mode) .bubble.theirs { color:#374151 !important; }
body:not(.dark-mode) .bubble.theirs .body { color:#374151 !important; }
body:not(.dark-mode) .bubble.theirs .meta { color:#1f2937 !important; }
body:not(.dark-mode) .chat-card { color:#374151 !important; }
body:not(.dark-mode) .chat-card .chat-sub { color:#1f2937 !important; }
body:not(.dark-mode) .chat-card .text-gray-400 { color:#1f2937 !important; }
body:not(.dark-mode) .chat-card .text-gray-500 { color:#1f2937 !important; }
body:not(.dark-mode) .chat-card .text-gray-700 { color:#374151 !important; }
body:not(.dark-mode) .chat-card .text-gray-800 { color:#374151 !important; }
body:not(.dark-mode) .chat-card h3 { color:#374151 !important; }
body:not(.dark-mode) .chip { color:#1f2937 !important; }
body:not(.dark-mode) .compose .icon-btn { color:#374151 !important; }
body:not(.dark-mode) .compose .status-select { color:#374151 !important; }
body:not(.dark-mode) .compose textarea { color:#374151 !important; }
body:not(.dark-mode) .contact .nm { color:#374151 !important; }
body:not(.dark-mode) .detail-row .k { color:#1f2937 !important; }
body:not(.dark-mode) .detail-row .v { color:#374151 !important; }
body:not(.dark-mode) .empty-hint { color:#1f2937 !important; }
body:not(.dark-mode) .fchip { color:#1f2937 !important; }
body:not(.dark-mode) .file-chip { color:#1f2937 !important; }
body:not(.dark-mode) .glabel { color:#374151 !important; }
body:not(.dark-mode) .gmenu-fixed button { color:#374151 !important; }
body:not(.dark-mode) .grp .cnt { color:#1f2937 !important; }
body:not(.dark-mode) .gtbl input { color:#374151 !important; }
body:not(.dark-mode) .gtick-lbl { color:#1f2937 !important; }
body:not(.dark-mode) .info-label { color:#1f2937 !important; }
body:not(.dark-mode) .javbar .lbl { color:#1f2937 !important; }
body:not(.dark-mode) .javf.unassigned { color:#1f2937 !important; }
body:not(.dark-mode) .kacc-closed { color:#1f2937 !important; }
body:not(.dark-mode) .kadd-btn:hover { color:#374151 !important; }
body:not(.dark-mode) .kadd-cancel { color:#1f2937 !important; }
body:not(.dark-mode) .karch { color:#1f2937 !important; }
body:not(.dark-mode) .kcard .ktitle { color:#374151 !important; }
body:not(.dark-mode) .kchk { color:#1f2937 !important; }
body:not(.dark-mode) .kcol-collapse:hover { color:#374151 !important; }
body:not(.dark-mode) .kcol-head .cnt { color:#1f2937 !important; }
body:not(.dark-mode) .kcol-head .name { color:#374151 !important; }
body:not(.dark-mode) .kcover { color:#1f2937 !important; }
body:not(.dark-mode) .kdue { color:#1f2937 !important; }
body:not(.dark-mode) .kfilters select { color:#1f2937 !important; }
body:not(.dark-mode) .kopen { color:#1f2937 !important; }
body:not(.dark-mode) .ksearch input { color:#374151 !important; }
body:not(.dark-mode) .mcheck { color:#1f2937 !important; }
body:not(.dark-mode) .mcol-head .name { color:#374151 !important; }
body:not(.dark-mode) .mention-item { color:#374151 !important; }
body:not(.dark-mode) .mk-av { color:#374151 !important; }
body:not(.dark-mode) .mkacc-closed { color:#1f2937 !important; }
body:not(.dark-mode) .nm-check { color:#1f2937 !important; }
body:not(.dark-mode) .notif-item .notif-sub { color:#1f2937 !important; }
body:not(.dark-mode) .notif-item .ns { color:#1f2937 !important; }
body:not(.dark-mode) .notif-item .nt { color:#374151 !important; }
body:not(.dark-mode) .notif-panel .nhead { color:#374151 !important; }
body:not(.dark-mode) .pick { color:#1f2937 !important; }
body:not(.dark-mode) .reports-empty { color:#1f2937 !important; }
body:not(.dark-mode) .reports-head .total { color:#1f2937 !important; }
body:not(.dark-mode) .reports-head h3 { color:#374151 !important; }
body:not(.dark-mode) .reports-row { color:#374151 !important; }
body:not(.dark-mode) .reports-row .row-period { color:#374151 !important; }
body:not(.dark-mode) .reports-row .row-reason { color:#1f2937 !important; }
body:not(.dark-mode) .reports-row .row-time { color:#1f2937 !important; }
body:not(.dark-mode) .reports-row.no-file .row-icon { color:#1f2937 !important; }
body:not(.dark-mode) .reports-row.no-file .row-period { color:#1f2937 !important; }
body:not(.dark-mode) .reports-sep { color:#1f2937 !important; }
body:not(.dark-mode) .restore-btn { color:#1f2937 !important; }
body:not(.dark-mode) .road .lbl { color:#1f2937 !important; }
body:not(.dark-mode) .road .who { color:#1f2937 !important; }
body:not(.dark-mode) .sort-btn { color:#1f2937 !important; }
body:not(.dark-mode) .ss-flow span { color:#1f2937 !important; }
body:not(.dark-mode) .ss-step span { color:#1f2937 !important; }
body:not(.dark-mode) .ss-sub { color:#1f2937 !important; }
body:not(.dark-mode) .stat .lbl { color:#1f2937 !important; }
body:not(.dark-mode) .step { color:#1f2937 !important; }
body:not(.dark-mode) .step b { color:#374151 !important; }
body:not(.dark-mode) .strat li { color:#374151 !important; }
body:not(.dark-mode) .strat p { color:#374151 !important; }
body:not(.dark-mode) .tac-btn { color:#1f2937 !important; }
body:not(.dark-mode) .text-gray-500 { color:#1f2937 !important; }
body:not(.dark-mode) .text-gray-600 { color:#1f2937 !important; }
body:not(.dark-mode) .text-gray-700 { color:#374151 !important; }
body:not(.dark-mode) .text-gray-800 { color:#374151 !important; }
body:not(.dark-mode) .tick-sent { color:#1f2937 !important; }
body:not(.dark-mode) .tk-title { color:#374151 !important; }
body:not(.dark-mode) .tnum { color:#1f2937 !important; }
body:not(.dark-mode) .wi { color:#374151 !important; }
body:not(.dark-mode) .wl { color:#1f2937 !important; }
body:not(.dark-mode) body { color:#374151 !important; }
body:not(.dark-mode) input { color:#374151 !important; }
body:not(.dark-mode) input[type=text] { color:#374151 !important; }
body:not(.dark-mode) label { color:#1f2937 !important; }
body:not(.dark-mode) select { color:#374151 !important; }
body:not(.dark-mode) textarea { color:#374151 !important; }

/* ---- Fix: status tags inside the notif dropdown were getting their colour
   clobbered by the parent .nt text override. Make them solid, high-contrast. */
body:not(.dark-mode) .ntag.resolved { background:#16a34a !important; color:#ffffff !important; }
body:not(.dark-mode) .ntag.overdue  { background:#dc2626 !important; color:#ffffff !important; }
.ntag { font-size:10.5px !important; letter-spacing:.03em; }
/* general safety: badges/pills keep their own text colour even when a parent
   container text-colour override is in play (light mode) */
body:not(.dark-mode) .pill,
body:not(.dark-mode) .ntag,
body:not(.dark-mode) .team-chip,
body:not(.dark-mode) [class*="st-"],
body:not(.dark-mode) [class*="pr-"] { /* let their own rules set colour */ }

/* ---- Light mode: teal text (PMO client-name links + section headings) was
   too light on white. Use a darker, clearly-visible teal. ---- */
body:not(.dark-mode) .text-teal-600 { color:#0f766e !important; }
body:not(.dark-mode) .text-teal-500 { color:#0d9488 !important; }
body:not(.dark-mode) .pmo-table a.text-teal-600,
body:not(.dark-mode) td a.text-teal-600 { color:#115e59 !important; font-weight:600 !important; }
/* generic: any light green/teal links on white -> darker */
body:not(.dark-mode) .text-green-400,
body:not(.dark-mode) .text-green-300,
body:not(.dark-mode) .text-teal-400,
body:not(.dark-mode) .text-teal-300 { color:#0f766e !important; }

/* Access toggle: light mode uses #115E59 (set inline); dark mode keeps the
   original lime green. */
body.dark-mode .access-toggle-input:checked + .access-toggle-slider { background:#C4F82A !important; }

/* ---- Dark-mode form polish: brighten faint placeholders and give inputs a
   clear lime focus ring (teal was too dim on dark backgrounds). ---- */
body.dark-mode input::placeholder,
body.dark-mode textarea::placeholder { color:#8b96a3 !important; opacity:1 !important; }
body.dark-mode input:focus,
body.dark-mode textarea:focus,
body.dark-mode select:focus {
    border-color:#C9F31D !important;
    box-shadow:0 0 0 3px rgba(201,243,29,0.15) !important;
}

/* ---- Empty-state text: keep it legible (not too faint) in light mode. ---- */
body:not(.dark-mode) .empty-state,
body:not(.dark-mode) td.empty-state { color:#6b7280 !important; }
