/**
 * site-text.css
 * 
 * PURPOSE: Global text-style override layer — loaded AFTER all other stylesheets
 * so these rules win for consistent typography across the entire app.
 * 
 * This file consolidates and standardizes text styling (font-family, font-size scale,
 * font-weight, line-height, color, letter-spacing) that was previously scattered
 * across Razor views and CSS files. Acts as single source of truth for typography.
 * 
 * Load Order: This must be the LAST stylesheet <link> in Views/Shared/_Layout.cshtml
 * Specificity: Uses !important only where necessary to override Bootstrap/theme defaults.
 */

/* ===== CSS CUSTOM PROPERTIES (Font & Typographic Scale) ===== */
/* Reuses existing :root variables already defined in site.css */
:root {
    /* Font families — from @import in site.css */
    --font-display: 'Poppins', sans-serif;
    --font-body: 'DM Sans', sans-serif;
    
    /* Typographic scale for text sizing (derived from actual usage) */
    --font-size-display: 2rem;        /* stat-value */
    --font-size-h1: 1.7rem;           /* page-title */
    --font-size-h2: 1.4rem;           /* section headers, h2 */
    --font-size-h3: 1.25rem;          /* card titles, subheadings */
    --font-size-h4: 1.1rem;           /* section-header-label */
    --font-size-h5: 1rem;             /* card-header, modal-title */
    --font-size-base: 0.9375rem;      /* form inputs, body text */
    --font-size-sm: 0.875rem;         /* subtitle, small text, alerts */
    --font-size-xs: 0.8125rem;        /* form labels, badges */
    --font-size-xxs: 0.78rem;         /* footer, validation messages */
    --font-size-tiny: 0.72rem;        /* badge text, table headers */
    --font-size-micro: 0.65rem;       /* required badge, tiny text */
    
    /* Line height scale */
    --line-height-tight: 1;           /* stat values, compact numbers */
    --line-height-normal: 1.2;        /* headings */
    --line-height-relaxed: 1.5;       /* form inputs */
    --line-height-loose: 1.6;         /* body paragraphs, content */
    --line-height-very-loose: 1.65;   /* modal body, accordions */
    
    /* Letter spacing scale */
    --letter-spacing-tight: -0.04em;  /* display numbers */
    --letter-spacing-snug: -0.03em;   /* headings */
    --letter-spacing-normal: 0;       /* default */
    --letter-spacing-wide: 0.02em;    /* form labels */
    --letter-spacing-wider: 0.03em;   /* badges, uppercase */
    --letter-spacing-widest: 0.06em;  /* uppercase labels, table headers */
    --letter-spacing-spaced: 0.08em;  /* section header labels */
    
    /* Color palette for text (from site.css :root) */
    --text-primary: #e8eaf0;
    --text-secondary: #8b90a0;
    --text-muted: #50556a;
    --text-link: #5aaeff;
    --text-link-hover: #82c4ff;
    --danger: #ff5c6a;
    --success: #34d399;
    --warning: #f59e0b;
}

/* Light theme text color overrides */
html[data-theme="light"] {
    --text-primary: #1a1c24;
    --text-secondary: #4b5060;
    --text-muted: #8b90a0;
    --text-link: #1a6fd4;
    --text-link-hover: #0f52a8;
    --danger: #d93848;
    --success: #1a9e6e;
    --warning: #c47d06;
}


/* ===== HEADINGS & PAGE TITLES ===== */
/* UNIFIED: selectors below were previously 100% IDENTICAL duplicate rules and
   have been merged into single grouped rules. Only the property that genuinely
   differed (margin) is kept as a small, separate follow-up rule. This is a
   zero-visual-change refactor — every computed value is unchanged.
   DIFFERENCE call-outs are documented further down for near-duplicates that
   were intentionally NOT merged because their values are not actually equal. */

/* h1 == .page-title == .auth-heading (page-title is always applied to an
   <h1>; auth-heading was previously hardcoded to 1.65rem — copy/paste drift
   from h1's 1.7rem — and has now been aligned to the same shared scale).
   Only the margin differs per context, kept as separate follow-up rules. */
h1,
.page-title,
.auth-heading {
    font-family: var(--font-display) !important;
    font-size: var(--font-size-h1) !important;
    font-weight: 700 !important;
    letter-spacing: var(--letter-spacing-snug) !important;
    color: var(--text-primary) !important;
    line-height: var(--line-height-normal) !important;
}

.page-title {
    margin: 0 !important;
}

.auth-heading {
    margin-bottom: 0.35rem !important;
}

/* h2 == .section-header (section-header is always applied to an <h2>).
   Only .section-header adds bottom spacing on top of the shared heading style. */
h2,
.section-header {
    font-family: var(--font-display) !important;
    font-size: var(--font-size-h2) !important;
    font-weight: 700 !important;
    letter-spacing: var(--letter-spacing-snug) !important;
    color: var(--text-primary) !important;
    line-height: var(--line-height-normal) !important;
}

.section-header {
    margin-bottom: 1.25rem !important;
}

/* Standard h3–h6 elements (shared weight/letter-spacing/color/line-height,
   individual font-size per level — already a single consolidated rule) */
h3, h4, h5, h6 {
    font-family: var(--font-display) !important;
    font-weight: 600 !important;
    letter-spacing: var(--letter-spacing-snug) !important;
    color: var(--text-primary) !important;
    line-height: var(--line-height-normal) !important;
}

h3 {
    font-size: var(--font-size-h3) !important;
}

h4 {
    font-size: var(--font-size-h4) !important;
}

h5 {
    font-size: var(--font-size-h5) !important;
}

h6 {
    font-size: 1rem !important;
}

/* .page-subtitle == .auth-subheading for font-size/color/line-height — the
   ONLY real difference is the margin (direction + value), which depends on
   layout context (subtitle sits directly under a page title; auth-subheading
   needs extra bottom space before the form). Shared text style merged below,
   margins kept separate on purpose. */
.page-subtitle,
.auth-subheading {
    font-size: var(--font-size-sm) !important;
    color: var(--text-secondary) !important;
    line-height: var(--line-height-loose) !important;
}

.page-subtitle {
    margin-top: 0.25rem !important;
}

.auth-subheading {
    margin-bottom: 2rem !important;
}

/* Section header uppercase labels.
   ⚠ DIFFERENCE vs the headings above: uses --text-secondary (not
   --text-primary) and --letter-spacing-spaced (not --letter-spacing-snug),
   plus an uppercase transform. This is an intentionally distinct "label"
   style (not a heading) and correctly remains its own rule. */
.section-header-label {
    font-family: var(--font-display) !important;
    font-size: var(--font-size-h4) !important;
    font-weight: 600 !important;
    color: var(--text-secondary) !important;
    letter-spacing: var(--letter-spacing-spaced) !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
}


/* ===== BODY TEXT & PARAGRAPHS ===== */
body {
    font-family: var(--font-body) !important;
    color: var(--text-primary) !important;
    line-height: var(--line-height-loose) !important;
    font-size: var(--font-size-base) !important;
}

p {
    color: var(--text-primary) !important;
    line-height: var(--line-height-loose) !important;
    font-size: var(--font-size-base) !important;
    font-family: var(--font-body) !important;
}

/* Plain text display blocks (read-only answers) */
.answer-display {
    color: var(--text-primary) !important;
    font-size: var(--font-size-base) !important;
    line-height: var(--line-height-loose) !important;
    font-family: var(--font-body) !important;
}

/* Small/secondary body text */
.text-muted,
.text-secondary {
    color: var(--text-secondary) !important;
}

/* Muted text utility */
.small-label-container {
    font-size: var(--font-size-xs) !important;
    font-weight: 500 !important;
    color: var(--text-secondary) !important;
    letter-spacing: var(--letter-spacing-wide) !important;
    text-transform: uppercase !important;
}


/* ===== LINKS & NAVIGATION ===== */
a,
.link {
    color: var(--text-link) !important;
    text-decoration: none;
    transition: color 0.18s cubic-bezier(0.4,0,0.2,1);
}

a:hover,
.link:hover {
    color: var(--text-link-hover) !important;
    text-decoration: underline;
}

/* Small links */
.link-sm,
.small-link {
    font-size: var(--font-size-sm) !important;
    color: var(--text-link) !important;
}

.small-link:hover {
    color: var(--text-link-hover) !important;
}

/* Navigation links (menu items) */
.dash-nav-links > li > a {
    display: flex !important;
    align-items: center !important;
    font-size: 0.85rem !important;
    font-weight: 600 !important;
    color: var(--text-secondary) !important;
    text-decoration: none !important;
    white-space: nowrap !important;
    letter-spacing: normal !important;
    transition: color 0.18s cubic-bezier(0.4,0,0.2,1), background 0.18s cubic-bezier(0.4,0,0.2,1), border-color 0.18s cubic-bezier(0.4,0,0.2,1) !important;
}

.dash-nav-links > li > a:hover {
    color: var(--text-primary) !important;
    background: rgba(255,255,255,0.10) !important;
}

.dash-nav-links > li > a.active {
    color: var(--text-primary) !important;
    background: rgba(61,158,255,0.1) !important;
    font-weight: 600 !important;
}

.nav-link.active {
    font-weight: 600 !important;
    color: #3d9eff !important;
}

/* Navbar brand */
.navbar-brand {
    font-family: var(--font-display) !important;
    font-weight: 700 !important;
    font-size: 1.05rem !important;
    color: var(--text-primary) !important;
    text-decoration: none !important;
    letter-spacing: -0.02em !important;
    display: flex !important;
    align-items: center !important;
}

/* User chip in navbar */
.nav-user-chip {
    font-size: var(--font-size-xs) !important;
    color: var(--text-secondary) !important;
}

/* Logout button */
.nav-logout {
    font-size: var(--font-size-xxs) !important;
    font-weight: 500 !important;
    color: var(--text-secondary) !important;
    text-decoration: none !important;
}

.nav-logout:hover {
    color: var(--danger) !important;
}

/* Footer links */
.site-footer a {
    color: var(--text-muted) !important;
    text-decoration: underline;
}

.site-footer a:hover {
    color: var(--text-secondary) !important;
}

/* Auth footer links */
.auth-footer {
    font-size: var(--font-size-sm) !important;
    color: var(--text-muted) !important;
    text-align: center !important;
    line-height: var(--line-height-loose) !important;
}


/* ===== BUTTONS & LINK-BUTTONS ===== */
/* Unified button size (approved style-guide proposal, 2026-10-29):
   font-size reuses --font-size-sm (0.875rem) app-wide, matching the
   unified padding/radius now set on .btn in site.css. */
.btn {
    font-family: var(--font-body) !important;
    font-weight: 500 !important;
    font-size: var(--font-size-sm) !important;
    text-decoration: none !important;
    letter-spacing: 0.01em !important;
    line-height: var(--line-height-normal) !important;
    color: inherit !important;
}

.btn-primary {
    font-weight: 700 !important;
    color: #fff !important;
}

/* .btn-sm: size no longer overridden — unified with base .btn above. */

.btn-ghost {
    color: var(--text-link) !important;
    text-decoration: none !important;
}

.btn-danger {
    color: #ffffff !important;
    font-weight: 600 !important;
}

.btn_success {
    color: #FFFFFF !important;
    font-weight: 500 !important;
}

/* Button disabled state */
.btn:disabled {
    color: var(--text-muted) !important;
    opacity: 0.6 !important;
}


/* ===== FORM ELEMENTS & LABELS ===== */
.form-label {
    display: block !important;
    font-size: var(--font-size-xs) !important;
    font-weight: 500 !important;
    color: var(--text-secondary) !important;
    letter-spacing: var(--letter-spacing-wide) !important;
    margin-bottom: 0.4rem !important;
    font-family: var(--font-body) !important;
}

/* Form input/textarea text */
.form-input,
.form-control,
textarea,
input[type="email"],
input[type="password"],
input[type="text"],
input[type="number"],
input[type="date"],
input[type="time"] {
    font-family: var(--font-body) !important;
    font-size: var(--font-size-base) !important;
    font-weight: 400 !important;
    color: var(--text-primary) !important;
    line-height: var(--line-height-relaxed) !important;
    letter-spacing: 0 !important;
}

/* Input placeholder text */
.form-input::placeholder,
.form-control::placeholder,
textarea::placeholder,
input::placeholder {
    color: var(--text-muted) !important;
    font-weight: 400 !important;
}

/* Form check (radio/checkbox) labels */
.form-check-label {
    font-size: var(--font-size-sm) !important;
    color: var(--text-secondary) !important;
    cursor: pointer !important;
    user-select: none !important;
    font-family: var(--font-body) !important;
    font-weight: 400 !important;
}

/* Fieldset legend */
legend {
    font-size: var(--font-size-xs) !important;
    font-weight: 600 !important;
    color: var(--text-secondary) !important;
    letter-spacing: var(--letter-spacing-widest) !important;
    text-transform: uppercase !important;
}


/* ===== VALIDATION & ERROR TEXT ===== */
.field-validation-error,
.text-danger {
    display: block !important;
    font-size: var(--font-size-xxs) !important;
    color: var(--danger) !important;
    margin-top: 0.3rem !important;
    font-family: var(--font-body) !important;
    font-weight: 400 !important;
    line-height: var(--line-height-normal) !important;
}

/* Required asterisk (inline, not block) */
.form-label .text-danger,
label .text-danger {
    display: inline !important;
    font-size: 1em !important;
    font-weight: 700 !important;
    color: var(--danger) !important;
    margin-left: 0.2em !important;
    vertical-align: baseline !important;
    line-height: inherit !important;
}

/* Validation summary box */
.validation-summary-errors {
    font-size: var(--font-size-sm) !important;
    color: var(--danger) !important;
    font-family: var(--font-body) !important;
    font-weight: 400 !important;
    line-height: var(--line-height-loose) !important;
}


/* ===== TABLES ===== */
.table-dark {
    font-size: var(--font-size-sm) !important;
    color: var(--text-primary) !important;
    font-family: var(--font-body) !important;
}

.table-dark th {
    font-size: var(--font-size-tiny) !important;
    font-weight: 600 !important;
    color: var(--text-muted) !important;
    letter-spacing: var(--letter-spacing-widest) !important;
    text-transform: uppercase !important;
}

.table-dark td {
    font-size: var(--font-size-base) !important;
    color: var(--text-primary) !important;
    line-height: var(--line-height-loose) !important;
}

.table-responsive table td {
    font-size: var(--font-size-sm) !important;
    color: var(--text-primary) !important;
}

/* Responsive table buttons */
.table-responsive table .btn-sm {
    font-size: var(--font-size-sm) !important;
}


/* ===== CARDS & PANELS ===== */
.card {
    color: var(--text-primary) !important;
}

.card-header,
.card-header-title {
    font-family: var(--font-display) !important;
    font-size: var(--font-size-h5) !important;
    font-weight: 600 !important;
    color: var(--text-primary) !important;
    line-height: var(--line-height-normal) !important;
    letter-spacing: 0 !important;
}


/* ===== ALERTS & BADGES ===== */
.alert {
    font-size: var(--font-size-sm) !important;
    color: var(--text-primary) !important;
    font-family: var(--font-body) !important;
    font-weight: 400 !important;
    line-height: var(--line-height-loose) !important;
}

.alert-success {
    color: #fff !important;
    font-size: 13px !important;
    letter-spacing: 2px !important;
    text-transform: uppercase !important;
    font-weight: 600 !important;
}

.alert-danger {
    color: var(--danger) !important;
    font-size: var(--font-size-sm) !important;
}

.alert-info {
    color: #5aaeff !important;
    font-size: var(--font-size-sm) !important;
}

.alert-login {
    font-size: var(--font-size-sm) !important;
    text-align: center !important;
    text-transform: uppercase !important;
}

/* Badge component */
.badge {
    display: inline-flex !important;
    align-items: center !important;
    font-size: var(--font-size-tiny) !important;
    font-weight: 600 !important;
    letter-spacing: var(--letter-spacing-wider) !important;
    font-family: var(--font-body) !important;
}

/* Confidence badge base styles (text) */
.badge-confidence {
    font-size: 0.75rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.03em !important;
    text-transform: uppercase !important;
    font-family: var(--font-body) !important;
}

/* Classification badge text styles */
.badge-classification {
    font-size: 0.7rem !important;
    font-weight: 600 !important;
    text-transform: lowercase !important;
    font-family: var(--font-body) !important;
}

/* SQL review table text */
.sql-review-table {
    font-size: var(--font-size-sm) !important;
    color: var(--text-primary) !important;
    font-family: var(--font-body) !important;
}

.sql-review-table th {
    color: var(--text-secondary) !important;
    font-weight: 600 !important;
}

.sql-review-table td {
    font-size: var(--font-size-base) !important;
    color: var(--text-primary) !important;
}

.code-cell {
    font-family: 'Cascadia Code', 'Consolas', monospace !important;
    font-size: 0.78rem !important;
}

/* Assumptions list text */
.assumption-list {
    color: var(--text-secondary) !important;
    font-size: 0.82rem !important;
    line-height: 1.7 !important;
    font-family: var(--font-body) !important;
}

/* System section title text */
.sql-system-title {
    font-size: 1.35rem !important;
    font-weight: 700 !important;
    color: var(--text-primary) !important;
    line-height: 1.2 !important;
}

/* Required field badge */
.badge-required {
    font-size: var(--font-size-micro) !important;
    font-weight: 600 !important;
    letter-spacing: var(--letter-spacing-wider) !important;
    text-transform: uppercase !important;
    line-height: 1.5 !important;
}

/* Color variants */
.badge-blue,
.badge-green,
.badge-red,
.badge-grey,
.badge-warning,
.badge-success,
.badge-primary,
.badge-secondary {
    font-size: var(--font-size-tiny) !important;
    font-weight: 600 !important;
    letter-spacing: var(--letter-spacing-wider) !important;
}


/* ===== MODALS ===== */
.modal-title {
    font-family: var(--font-display) !important;
    font-size: var(--font-size-h5) !important;
    font-weight: 600 !important;
    color: var(--text-primary) !important;
    letter-spacing: -0.01em !important;
    line-height: var(--line-height-normal) !important;
}

.modal-body {
    font-size: var(--font-size-base) !important;
    color: var(--text-secondary) !important;
    line-height: var(--line-height-very-loose) !important;
    font-family: var(--font-body) !important;
    font-weight: 400 !important;
}

.modal-header .btn-close {
    opacity: 0.6 !important;
}

.modal-header .btn-close:hover {
    opacity: 1 !important;
}


/* ===== STAT CARDS & DASHBOARD ELEMENTS ===== */
/* Large display number */
.stat-value {
    font-family: var(--font-display) !important;
    font-size: var(--font-size-display) !important;
    font-weight: 700 !important;
    letter-spacing: var(--letter-spacing-tight) !important;
    color: var(--text-primary) !important;
    line-height: var(--line-height-tight) !important;
}

/* Stat label (uppercase) */
.stat-label {
    font-size: var(--font-size-tiny) !important;
    font-weight: 500 !important;
    color: var(--text-secondary) !important;
    letter-spacing: var(--letter-spacing-widest) !important;
    text-transform: uppercase !important;
}

.stat-delta {
    font-size: var(--font-size-xs) !important;
    display: flex !important;
    align-items: center !important;
    font-weight: 500 !important;
}

.delta-up {
    color: var(--success) !important;
}

.delta-neu {
    color: var(--text-muted) !important;
}


/* ===== ACCORDIONS ===== */
.accordion-button {
    font-family: var(--font-display) !important;
    font-size: var(--font-size-h5) !important;
    font-weight: 600 !important;
    color: var(--text-primary) !important;
    line-height: var(--line-height-normal) !important;
    letter-spacing: 0 !important;
}

.accordion-body {
    font-size: var(--font-size-base) !important;
    color: var(--text-primary) !important;
    line-height: var(--line-height-very-loose) !important;
    font-family: var(--font-body) !important;
    font-weight: 400 !important;
}

.accordion-body .stat-label,
.accordion-body .page-subtitle {
    color: var(--text-secondary) !important;
}


/* ===== QUESTIONNAIRE / FORM SUBMISSION ELEMENTS ===== */
.question-block label {
    font-weight: 500 !important;
    font-size: var(--font-size-base) !important;
    color: var(--text-primary) !important;
    font-family: var(--font-body) !important;
    display: flex !important;
    align-items: center !important;
    gap: 0.5rem !important;
}

.question-block .text-muted.small {
    font-size: var(--font-size-sm) !important;
    color: var(--text-secondary) !important;
}


/* ===== AUTH / LOGIN PAGE SPECIAL CASES ===== */
/* Divider text */
.auth-divider {
    font-size: var(--font-size-xxs) !important;
    letter-spacing: var(--letter-spacing-wider) !important;
    text-transform: uppercase !important;
    color: var(--text-muted) !important;
}

/* Brand name */
.auth-brand-name {
    font-family: var(--font-display) !important;
    font-size: 1.25rem !important;
    font-weight: 700 !important;
    color: var(--text-primary) !important;
    letter-spacing: -0.02em !important;
}

.auth-brand-mark {
    font-family: var(--font-display) !important;
    font-weight: 800 !important;
    font-size: 1.1rem !important;
    color: #fff !important;
    letter-spacing: -0.03em !important;
}


/* ===== FOOTER ===== */
.site-footer {
    font-size: var(--font-size-xxs) !important;
    color: var(--text-muted) !important;
    font-family: var(--font-body) !important;
    font-weight: 400 !important;
    line-height: 60px !important;
}


/* ===== UTILITY TEXT CLASSES ===== */
/* Small text for secondary info */
small,
.small {
    font-size: var(--font-size-sm) !important;
    color: var(--text-secondary) !important;
    font-family: var(--font-body) !important;
    font-weight: 400 !important;
}

/* Strong/bold text */
strong,
.font-weight-bold,
.fw-bold {
    font-weight: 700 !important;
}

.fw-semibold {
    font-weight: 600 !important;
}

.fw-normal {
    font-weight: 400 !important;
}


/* ===== MIGRATED INLINE STYLES ===== */
/* Auth brand highlight (e.g. "Altruion" in login heading) */
.auth-brand-highlight {
    color: #a0b799 !important;
    font-weight: inherit !important;
    font-size: inherit !important;
}

/* Debug/warning banner text */
.debug-warning-text {
    color: red !important;
    font-size: 0.85em !important;
    font-family: monospace !important;
    font-weight: 400 !important;
}

/* Debug warning box content text */
.debug-warning-box-text {
    color: #856404 !important;
    margin: 0 !important;
    font-size: var(--font-size-base) !important;
    font-weight: 400 !important;
}

/* SQL output box text styling */
.sql-output {
    white-space: pre-wrap !important;
    color: var(--text-primary) !important;
    font-size: 0.82rem !important;
    line-height: 1.6 !important;
    font-family: 'Courier New', monospace !important;
    font-weight: 400 !important;
    letter-spacing: 0 !important;
}

/* Page subtitle with tight margin override */
.page-subtitle--tight {
    font-size: var(--font-size-sm) !important;
    color: var(--text-secondary) !important;
    line-height: var(--line-height-loose) !important;
    margin-top: -0.5rem !important;
    margin-bottom: 1rem !important;
}

/* Section header with tight margin */
.section-header--tight {
    font-family: var(--font-display) !important;
    font-size: var(--font-size-h2) !important;
    font-weight: 700 !important;
    letter-spacing: var(--letter-spacing-snug) !important;
    color: var(--text-primary) !important;
    line-height: var(--line-height-normal) !important;
    margin-bottom: 1rem !important;
}

/* Confidence badge large variant */
.badge-confidence-lg {
    font-size: 0.85rem !important;
    padding: 0.4rem 1rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.03em !important;
}

/* Confidence badge small variant */
.badge-confidence-sm {
    font-size: 0.68rem !important;
    padding: 0.2rem 0.55rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.03em !important;
}

/* Validation error text (inline) */
.validation-error-inline {
    display: none;
    font-size: 0.875em;
    color: var(--danger);
    font-weight: 400;
}

/* Custom badge sizes */
.badge--micro {
    font-size: 0.6rem !important;
    font-weight: 600 !important;
    letter-spacing: var(--letter-spacing-wider) !important;
}

.badge--tiny {
    font-size: 0.65rem !important;
    font-weight: 600 !important;
    letter-spacing: var(--letter-spacing-wider) !important;
}

.badge--small {
    font-size: 0.7rem !important;
    font-weight: 600 !important;
    letter-spacing: var(--letter-spacing-wider) !important;
}

/* Loading overlay messages */
.overlay-message {
    font-size: 1.1rem !important;
    font-weight: 600 !important;
    color: #333 !important;
}

.overlay-message-subtext {
    font-size: 0.9rem !important;
    color: #666 !important;
    font-weight: 400 !important;
}


/* ===== LIGHT THEME OVERRIDES ===== */
/* When user selects light theme, adjust text colors accordingly */
html[data-theme="light"] {
    color-scheme: light;
}

html[data-theme="light"] .page-title,
html[data-theme="light"] h1,
html[data-theme="light"] h2,
html[data-theme="light"] h3,
html[data-theme="light"] h4,
html[data-theme="light"] h5,
html[data-theme="light"] h6,
html[data-theme="light"] .section-header,
html[data-theme="light"] .auth-heading,
html[data-theme="light"] .stat-value {
    color: #1a1c24 !important;
}

html[data-theme="light"] body,
html[data-theme="light"] p,
html[data-theme="light"] .answer-display {
    color: #1a1c24 !important;
}

html[data-theme="light"] .page-subtitle,
html[data-theme="light"] .auth-subheading,
html[data-theme="light"] .section-header-label,
html[data-theme="light"] .text-secondary,
html[data-theme="light"] .form-label,
html[data-theme="light"] .form-check-label,
html[data-theme="light"] .stat-label {
    color: #4b5060 !important;
}

html[data-theme="light"] .text-muted {
    color: #8b90a0 !important;
}

html[data-theme="light"] a,
html[data-theme="light"] .link {
    color: #1a6fd4 !important;
}

html[data-theme="light"] a:hover,
html[data-theme="light"] .link:hover {
    color: #0f52a8 !important;
}

html[data-theme="light"] .alert {
    color: #1a1c24 !important;
}

html[data-theme="light"] .auth-brand-highlight {
    color: #3d7d4d !important;
}

html[data-theme="light"] .debug-warning-text {
    color: #cc0000 !important;
}

html[data-theme="light"] .debug-warning-box-text {
    color: #664400 !important;
}

html[data-theme="light"] .sql-output {
    color: #1a1c24 !important;
}
