/**
 * Quantrex Academy — Premium Typography System
 * UI: Inter · Questions/Options: Literata (editorial) · Body UI: Source Sans 3
 * Math: STIX Two Math + KaTeX · Chemistry: unicode + mhchem
 */

:root {
  --qx-font-display: "Inter", "Source Sans 3", system-ui, sans-serif;
  --qx-font-ui: "Source Sans 3", "Inter", system-ui, sans-serif;
  --qx-font-question: "Literata", "STIX Two Text", "Georgia", "Times New Roman", serif;
  --qx-font-body: "Source Sans 3", "Inter", system-ui, sans-serif;
  --qx-font-math: "STIX Two Math", "STIX Two Text", "Cambria Math", "Latin Modern Math", "Literata", serif;
  --qx-font-mono: "JetBrains Mono", "SF Mono", "Consolas", ui-monospace, monospace;

  --qx-fw-regular: 400;
  --qx-fw-medium: 500;
  --qx-fw-semibold: 600;
  --qx-fw-bold: 700;

  --qx-ls-tight: -0.025em;
  --qx-ls-snug: -0.015em;
  --qx-ls-normal: -0.008em;
  --qx-ls-wide: 0.02em;

  --qx-lh-tight: 1.28;
  --qx-lh-snug: 1.42;
  --qx-lh-body: 1.62;
  --qx-lh-question: 1.72;

  --qx-fs-q: 0.96875rem;    /* 15.5px stem — balanced */
  --qx-fs-opt: 0.9375rem;   /* 15px options */
  --qx-fs-sol: 0.9375rem;   /* 15px solutions */
  --qx-fs-ui: 0.9375rem;    /* 15px UI */
}

html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-feature-settings: "kern" 1, "liga" 1, "calt" 1, "onum" 0;
  font-size: 16px;
}

body,
.main,
.content,
#app-main {
  font-family: var(--qx-font-ui) !important;
  font-weight: var(--qx-fw-regular);
  letter-spacing: var(--qx-ls-normal);
  line-height: var(--qx-lh-body);
  color: var(--text, #0f172a);
  font-size: var(--qx-fs-ui);
}

/* ── UI headings / nav ── */
h1, h2, h3, h4, h5, h6,
.page-head h1,
.logo-text,
.dash-greet-left h1,
.ds strong,
.sec-title,
.cpyqb-exam-bank-head h1,
.cpyqb-marks-head h1,
.qx-all-topics-label,
.qx-subject-hero h1,
.btn-primary,
.btn-soft,
.qx-top-exam,
.nav-item,
.chip,
.tag,
.subj-card strong,
.ch-card strong {
  font-family: var(--qx-font-display) !important;
  font-weight: var(--qx-fw-bold);
  letter-spacing: var(--qx-ls-tight);
  line-height: var(--qx-lh-tight);
}

button,
.btn-primary,
.btn-soft,
.mtk-btn,
.qx-bm-btn,
.qx-diff-chip,
input,
select,
label {
  font-family: var(--qx-font-ui) !important;
  letter-spacing: var(--qx-ls-snug);
}

/* ═══════════════════════════════════════════════════
   QUESTIONS · OPTIONS · SOLUTIONS — beautiful reading
   ═══════════════════════════════════════════════════ */

.mtk-q-text,
.qx-prac-q,
.qx-content.qx-q-text-only,
.qx-question-body,
.qx-q-seg-text,
.q-text,
.q-card .q-text,
.qa-q,
.mtk-main .mtk-q-text,
.allen-practice .mtk-q-text {
  font-family: var(--qx-font-question) !important;
  font-size: var(--qx-fs-q) !important;
  font-weight: 500 !important;
  line-height: var(--qx-lh-question) !important;
  letter-spacing: -0.01em !important;
  font-optical-sizing: auto;
  color: inherit !important;
}

.mtk-opt-text,
.qx-prac-opt-text,
.qa-opt,
#qaOpts .qx-content,
#qxOpts .mtk-opt-text,
.mtk-opt .qx-content,
.qx-prac-opt .qx-content,
.qx-letter-opt {
  font-family: var(--qx-font-question) !important;
  font-size: var(--qx-fs-opt) !important;
  font-weight: 450 !important;
  line-height: 1.68 !important;
  letter-spacing: -0.008em !important;
  color: inherit !important;
}

.sol-body,
.qx-sol-body,
.qx-sol-step-body,
.qx-sol-para,
.qx-sol-shortcut-text,
.qx-content.sol-body,
.mtk-sol .qx-content,
.result-box .qx-content {
  font-family: var(--qx-font-question) !important;
  font-size: var(--qx-fs-sol) !important;
  font-weight: 450 !important;
  line-height: 1.8 !important;
  letter-spacing: -0.006em !important;
}

/* Subject-tinted solution badges stay UI font */
.qx-sol-badge,
.qx-sol-shortcut-title,
.qx-sol-step-label {
  font-family: var(--qx-font-ui) !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
}

/* Paper meta chips — compact UI */
.qx-paper-meta,
.qx-paper-chip,
.tag {
  font-family: var(--qx-font-ui) !important;
  font-size: 0.75rem !important;
  font-weight: 600 !important;
}

/* ── KaTeX + MathJax + MathML ── */
.katex,
.katex * {
  font-family: var(--qx-font-math) !important;
  font-style: normal !important;
  text-rendering: geometricPrecision;
  -webkit-font-smoothing: antialiased;
}

.katex {
  font-size: 1em !important; /* match surrounding text — not oversized */
  line-height: 1.35 !important;
}

.katex-display {
  margin: 0.55em 0 !important;
  overflow-x: auto;
  overflow-y: hidden;
  text-align: left !important;
  padding: 2px 0;
  font-size: 1.02em !important;
}

/* Chemistry mhchem */
.katex .mord.mhchem,
.katex .mhchem,
.ce {
  font-family: var(--qx-font-math) !important;
  font-size: 1em !important;
}

math,
.MathJax,
mjx-container {
  font-family: var(--qx-font-math) !important;
  font-size: 1em !important;
}

/* Chemistry unicode formulas in plain text */
.qx-content,
.mtk-q-text,
.sol-body {
  font-variant-numeric: lining-nums;
}

/* Dark mode readability */
[data-theme="dark"] .mtk-q-text,
[data-theme="dark"] .qx-prac-q,
[data-theme="dark"] .mtk-opt-text,
[data-theme="dark"] .qx-prac-opt-text,
[data-theme="dark"] .sol-body,
[data-theme="dark"] .qx-sol-body,
.mtk-test-root[data-test-theme="dark"] .mtk-q-text,
.mtk-test-root[data-test-theme="dark"] .mtk-opt-text,
.mtk-test-root[data-test-theme="dark"] .sol-body {
  color: #f1f5f9 !important;
}

.mtk-test-root[data-test-theme="light"] .mtk-q-text,
.mtk-test-root[data-test-theme="light"] .mtk-opt-text,
.mtk-test-root[data-test-theme="light"] .qx-prac-q {
  color: #0f172a !important;
}

/* Mobile comfort */
@media (max-width: 640px) {
  :root {
    --qx-fs-q: 0.9375rem;
    --qx-fs-opt: 0.90625rem;
    --qx-fs-sol: 0.90625rem;
  }
}
