/*
 * TEXT CONTRAST — LIGHT THEME
 * Ensures all text is readable on the light theme.
 * Must load AFTER all other CSS to win the cascade.
 */

/* ════════════════════════════════════════════════════════════════════════════
 * GLOBAL TEXT — DARK ON WHITE
 * ════════════════════════════════════════════════════════════════════════════ */

html, body {
    color: #1f2937;
}

p, span, div, li, td, th, label, small, h1, h2, h3, h4, h5, h6 {
    color: #1f2937;
}

a {
    color: #0066cc;
}

a:hover {
    color: #0052a3;
}

/* ════════════════════════════════════════════════════════════════════════════
 * CONTENT AREA
 * ════════════════════════════════════════════════════════════════════════════ */

.content-wrapper,
.content-wrapper * {
    color: #1f2937;
}

/* Tables */
th, td {
    color: #1f2937;
}

thead {
    background-color: #f3f4f6;
}

thead th {
    color: #1f2937;
    background-color: #f3f4f6;
}

/* DataTables */
.dataTable thead th,
.dataTables_wrapper .dataTable thead th {
    color: #1f2937;
    background-color: #f3f4f6;
}

/* Cards */
.card-header {
    color: #1f2937;
    background-color: #f3f4f6;
}

.card-body,
.card-footer {
    color: #1f2937;
}

/* Forms */
.form-control {
    color: #1f2937;
}

.form-control::placeholder {
    color: #9ca3af;
}

input, textarea, select {
    color: #1f2937;
}

label {
    color: #1f2937;
}

/* Muted text */
.text-muted {
    color: #475569 !important;
}

small, .small {
    color: #475569;
}

/* Modals */
.modal-header {
    color: #1f2937;
    background-color: #f3f4f6;
}

.modal-body,
.modal-footer {
    color: #1f2937;
}

/* Alerts */
.alert {
    color: #1f2937;
}

/* Buttons — colored buttons keep white text */
.btn-primary,
.btn-success,
.btn-danger,
.btn-warning,
.btn-info {
    color: #ffffff !important;
}

/* Badges */
.badge-success,
.badge-danger,
.badge-warning,
.badge-info {
    color: #ffffff !important;
}

/* Dropdowns */
.dropdown-item {
    color: #1f2937;
}

.dropdown-item:hover,
.dropdown-item:focus {
    color: #ffffff;
    background: #0066cc;
}

/* ════════════════════════════════════════════════════════════════════════════
 * NAVBAR — LIGHT
 * ════════════════════════════════════════════════════════════════════════════ */

.main-header,
.main-header * {
    color: #1f2937;
}

.main-header .navbar-nav .nav-link {
    color: #1f2937;
}

/* ════════════════════════════════════════════════════════════════════════════
 * SIDEBAR — LIGHT (dark text on white background)
 * ════════════════════════════════════════════════════════════════════════════ */

aside.main-sidebar,
aside.main-sidebar * {
    color: #1e293b;
}

aside.main-sidebar a {
    color: #1e293b;
}

.sidebar,
.sidebar * {
    color: #1e293b;
}

.sidebar .nav-link {
    color: #1e293b;
}

.sidebar .nav-link.active {
    color: #4338ca;
}

.brand-link,
.brand-link * {
    color: #1e293b;
}

/* ════════════════════════════════════════════════════════════════════════════
 * SEMANTIC COLORS — PRESERVE
 * ════════════════════════════════════════════════════════════════════════════ */

.text-success {
    color: #15803d !important;
}

.text-danger {
    color: #dc2626 !important;
}

.text-warning {
    color: #d97706 !important;
}

.text-info {
    color: #0891b2 !important;
}

/* ════════════════════════════════════════════════════════════════════════════
 * CSS VARIABLES
 * ════════════════════════════════════════════════════════════════════════════ */

:root {
    --text-color: #1f2937;
    --text-muted: #475569;
    --dash-text: #1f2937;
    --dash-muted: #475569;
    --noc-text: #1e293b;
    --noc-muted: #475569;
    --premium-text-main: #1f2937;
    --premium-text-muted: #475569;
}

/* ════════════════════════════════════════════════════════════════════════════
 * INLINE STYLE OVERRIDES — dim colors on light background
 * ════════════════════════════════════════════════════════════════════════════ */

[style*="color: #64748b"],
[style*="color:#64748b"],
[style*="color: #94a3b8"],
[style*="color:#94a3b8"],
[style*="color: #cbd5e1"],
[style*="color:#cbd5e1"],
[style*="color: #adb5bd"],
[style*="color:#adb5bd"],
[style*="color: #737373"],
[style*="color:#737373"],
[style*="color: #9ca3af"],
[style*="color:#9ca3af"],
[style*="color: #6b7280"],
[style*="color:#6b7280"] {
    color: #475569 !important;
}

/* ════════════════════════════════════════════════════════════════════════════
 * CODE BLOCKS
 * ════════════════════════════════════════════════════════════════════════════ */

pre {
    background: #f3f4f6;
    color: #1f2937;
}

pre code {
    color: #1f2937;
}

code {
    background: #f0f0f0;
    color: #1f2937;
    padding: 2px 6px;
    border-radius: 3px;
}

/* ════════════════════════════════════════════════════════════════════════════
 * TERMINAL (NocTerm) — keeps its own dark styling intentionally
 * ════════════════════════════════════════════════════════════════════════════ */

.noc-term-titlebar {
    background: #1f2937;
    color: #e5e7eb;
    border-bottom-color: #374151;
}

.noc-term-titlebar .title {
    color: #f3f4f6;
}

.noc-term-titlebar .session-pill {
    color: #d1d5db;
    border-color: #4b5563;
}

.noc-term-titlebar .session-pill.live {
    color: #10b981;
    border-color: #10b98144;
}

.noc-term-drawer {
    background: #1f2937;
    border-top-color: #374151;
}

.noc-term-drawer .drawer-head {
    background: #1f2937;
    border-bottom-color: #111827;
    color: #d1d5db;
}

.noc-term-tabs {
    background: #1f2937;
    border-bottom-color: #111827;
}

.noc-term-tab {
    color: #9ca3af;
}

.noc-term-tab:hover {
    color: #f3f4f6;
    background: #111827;
}

.noc-term-tab.active {
    color: #fbbf24;
    border-bottom-color: #fbbf24;
    background: #111827;
}

/* ════════════════════════════════════════════════════════════════════════════
 * QUICK NAV PANEL (qnav-panel) — dark panel, white text
 * ════════════════════════════════════════════════════════════════════════════ */

.qnav-panel .qnav-label,
.qnav-panel .qnav-icon i,
.qnav-panel .qnav-link:hover .qnav-label,
.qnav-panel .qnav-toggle .qnav-label,
.qnav-restore i {
    color: #ffffff;
}

/* ════════════════════════════════════════════════════════════════════════════
 * DARK BACKGROUNDS — KEEP WHITE TEXT
 *
 * The `.content-wrapper *` rule above forces dark text on every descendant,
 * which makes elements with dark backgrounds (navy, primary, dark, etc.)
 * unreadable (black text on dark blue). These overrides re-assert white text
 * on the standard Bootstrap / AdminLTE dark-background utility classes and
 * common compound components.
 * ════════════════════════════════════════════════════════════════════════════ */

.bg-primary,
.bg-primary *,
.bg-secondary,
.bg-secondary *,
.bg-success,
.bg-success *,
.bg-danger,
.bg-danger *,
.bg-warning,
.bg-warning *,
.bg-info,
.bg-info *,
.bg-dark,
.bg-dark *,
.bg-navy,
.bg-navy *,
.bg-indigo,
.bg-indigo *,
.bg-purple,
.bg-purple *,
.bg-fuchsia,
.bg-fuchsia *,
.bg-pink,
.bg-pink *,
.bg-maroon,
.bg-maroon *,
.bg-orange,
.bg-orange *,
.bg-olive,
.bg-olive *,
.bg-teal,
.bg-teal *,
.bg-lime,
.bg-lime *,
.bg-black,
.bg-black *,
.bg-gradient-primary,
.bg-gradient-primary *,
.bg-gradient-success,
.bg-gradient-success *,
.bg-gradient-danger,
.bg-gradient-danger *,
.bg-gradient-info,
.bg-gradient-info *,
.bg-gradient-dark,
.bg-gradient-dark *,
.bg-gradient-navy,
.bg-gradient-navy * {
    color: #ffffff !important;
}

/* Exception: text-warning utility (yellow) renders unreadable on bright bg-warning;
   keep dark text on warning/orange/yellow/lime/olive (light backgrounds). */
.bg-warning,
.bg-warning *,
.bg-orange,
.bg-orange *,
.bg-lime,
.bg-lime *,
.bg-olive,
.bg-olive * {
    color: #1f2937 !important;
}

/* AdminLTE small-box / info-box dark variants */
.small-box.bg-primary, .small-box.bg-primary *,
.small-box.bg-secondary, .small-box.bg-secondary *,
.small-box.bg-success, .small-box.bg-success *,
.small-box.bg-danger, .small-box.bg-danger *,
.small-box.bg-info, .small-box.bg-info *,
.small-box.bg-dark, .small-box.bg-dark *,
.small-box.bg-navy, .small-box.bg-navy *,
.small-box.bg-indigo, .small-box.bg-indigo *,
.small-box.bg-purple, .small-box.bg-purple *,
.small-box.bg-maroon, .small-box.bg-maroon *,
.small-box.bg-teal, .small-box.bg-teal *,
.info-box-icon.bg-primary, .info-box-icon.bg-primary *,
.info-box-icon.bg-secondary, .info-box-icon.bg-secondary *,
.info-box-icon.bg-success, .info-box-icon.bg-success *,
.info-box-icon.bg-danger, .info-box-icon.bg-danger *,
.info-box-icon.bg-info, .info-box-icon.bg-info *,
.info-box-icon.bg-dark, .info-box-icon.bg-dark *,
.info-box-icon.bg-navy, .info-box-icon.bg-navy *,
.info-box-icon.bg-indigo, .info-box-icon.bg-indigo *,
.info-box-icon.bg-purple, .info-box-icon.bg-purple *,
.info-box-icon.bg-maroon, .info-box-icon.bg-maroon *,
.info-box-icon.bg-teal, .info-box-icon.bg-teal * {
    color: #ffffff !important;
}

/* AdminLTE card variants with colored headers */
.card-primary:not(.card-outline) > .card-header, .card-primary:not(.card-outline) > .card-header *,
.card-secondary:not(.card-outline) > .card-header, .card-secondary:not(.card-outline) > .card-header *,
.card-success:not(.card-outline) > .card-header, .card-success:not(.card-outline) > .card-header *,
.card-danger:not(.card-outline) > .card-header, .card-danger:not(.card-outline) > .card-header *,
.card-info:not(.card-outline) > .card-header, .card-info:not(.card-outline) > .card-header *,
.card-dark:not(.card-outline) > .card-header, .card-dark:not(.card-outline) > .card-header *,
.card-navy:not(.card-outline) > .card-header, .card-navy:not(.card-outline) > .card-header *,
.card-indigo:not(.card-outline) > .card-header, .card-indigo:not(.card-outline) > .card-header *,
.card-purple:not(.card-outline) > .card-header, .card-purple:not(.card-outline) > .card-header *,
.card-maroon:not(.card-outline) > .card-header, .card-maroon:not(.card-outline) > .card-header *,
.card-teal:not(.card-outline) > .card-header, .card-teal:not(.card-outline) > .card-header * {
    color: #ffffff !important;
}

/* Dark / colored buttons (the earlier rule covered primary/success/danger/warning/info; add the rest) */
.btn-dark, .btn-dark *,
.btn-secondary, .btn-secondary *,
.btn-navy, .btn-navy *,
.btn-indigo, .btn-indigo *,
.btn-purple, .btn-purple *,
.btn-maroon, .btn-maroon *,
.btn-teal, .btn-teal * {
    color: #ffffff !important;
}

/* Dark alerts */
.alert-primary, .alert-primary *,
.alert-secondary, .alert-secondary *,
.alert-success, .alert-success *,
.alert-danger, .alert-danger *,
.alert-info, .alert-info *,
.alert-dark, .alert-dark * {
    color: #ffffff !important;
}

/* Bootstrap-style dark badges already covered above; add pill variants */
.badge.bg-primary, .badge.bg-primary *,
.badge.bg-secondary, .badge.bg-secondary *,
.badge.bg-success, .badge.bg-success *,
.badge.bg-danger, .badge.bg-danger *,
.badge.bg-info, .badge.bg-info *,
.badge.bg-dark, .badge.bg-dark *,
.badge.bg-navy, .badge.bg-navy * {
    color: #ffffff !important;
}

/* Modal headers when explicitly dark-themed */
.modal-header.bg-primary, .modal-header.bg-primary *,
.modal-header.bg-success, .modal-header.bg-success *,
.modal-header.bg-danger, .modal-header.bg-danger *,
.modal-header.bg-info, .modal-header.bg-info *,
.modal-header.bg-dark, .modal-header.bg-dark *,
.modal-header.bg-navy, .modal-header.bg-navy * {
    color: #ffffff !important;
}

/* Inline dark backgrounds in style attributes (catches hero banners etc.) */
[style*="background:#1f2937"],
[style*="background: #1f2937"],
[style*="background-color:#1f2937"],
[style*="background-color: #1f2937"],
[style*="background:#0f172a"],
[style*="background: #0f172a"],
[style*="background-color:#0f172a"],
[style*="background-color: #0f172a"],
[style*="background:#1e293b"],
[style*="background: #1e293b"],
[style*="background-color:#1e293b"],
[style*="background-color: #1e293b"],
[style*="background:#0d2b6b"],
[style*="background: #0d2b6b"],
[style*="background:#001f3f"],
[style*="background: #001f3f"] {
    color: #ffffff !important;
}
[style*="background:#1f2937"] *,
[style*="background: #1f2937"] *,
[style*="background-color:#1f2937"] *,
[style*="background-color: #1f2937"] *,
[style*="background:#0f172a"] *,
[style*="background: #0f172a"] *,
[style*="background-color:#0f172a"] *,
[style*="background-color: #0f172a"] *,
[style*="background:#1e293b"] *,
[style*="background: #1e293b"] *,
[style*="background-color:#1e293b"] *,
[style*="background-color: #1e293b"] *,
[style*="background:#0d2b6b"] *,
[style*="background: #0d2b6b"] *,
[style*="background:#001f3f"] *,
[style*="background: #001f3f"] * {
    color: #ffffff !important;
}
