/* Type system v5.1 (8 Oct 2026) — one rule for every site, agent and app.
Sentences (headlines, paragraphs, an agent talking, an app's page title) are Newsreader.
Anything you scan or click (data, numbers, codes, labels, tables, buttons, menus, what the user types) is Inter.
Two fonts only. Regular data never below 15px, hints never below 14px.

   Use: link this file once (it loads both fonts from Google Fonts), then put a class on any element,
   e.g. <h1 class="t-h1">, <p class="t-voice">, <td class="t-data">, <span class="t-num">0.85</span>.
   Night mode: set data-theme="dark" on <html>. Colours are CSS variables (--t-text …).
   Works in any web app, including React and Tailwind projects: import this file once and use the t-* classes
   (or the --t-* variables) next to your other classes. This one file is the whole type system. */
@import url("https://fonts.googleapis.com/css2?family=Inter:opsz,wght@14..32,400..700&family=Newsreader:opsz,wght@6..72,400..600&display=swap");
:root{
  --t-serif:"Newsreader", ui-serif, Georgia, serif;
  --t-sans:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --t-bg:#fcfcfb;
  --t-panel:#ffffff;
  --t-sunk:#f0f0ef;
  --t-line:#ededec;
  --t-line2:#e3e3e1;
  --t-text:#141413;
  --t-text2:#3d3d3a;
  --t-muted:#73726c;
  --t-dim:#a8a7a2;
  --t-btn:#141413;
  --t-btn-ink:#ffffff;
  --t-ok:#2b7a4b;
  --t-warn:#9a6012;
  --t-bad:#b0382c;
}
:root[data-theme="dark"]{
  --t-bg:#1b1b1a;
  --t-panel:#212120;
  --t-sunk:#262625;
  --t-line:#2c2c2b;
  --t-line2:#363634;
  --t-text:#f2f2f0;
  --t-text2:#cfcfcb;
  --t-muted:#95948f;
  --t-dim:#64635f;
  --t-btn:#f2f2f0;
  --t-btn-ink:#141413;
  --t-ok:#73c995;
  --t-warn:#e0b061;
  --t-bad:#ec8b7f;
}
body{font-family:var(--t-sans);font-size:15px;line-height:1.5;color:var(--t-text);background:var(--t-bg);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
.t-h1{font-family:var(--t-serif);font-size:56px;font-weight:400;line-height:1.05;letter-spacing:-0.02em;color:var(--t-text)} /* Site headline (38 on phones) · site */
.t-h2{font-family:var(--t-serif);font-size:36px;font-weight:400;line-height:1.15;letter-spacing:-0.015em;color:var(--t-text)} /* Site section headline (28 on phones) · site */
.t-h3{font-family:var(--t-serif);font-size:20px;font-weight:500;line-height:1.35;letter-spacing:0;color:var(--t-text)} /* Small headline, card title · site */
.t-lede{font-family:var(--t-serif);font-size:21px;font-weight:400;line-height:1.6;letter-spacing:0;color:var(--t-text2)} /* Intro paragraph under H1 (19 on phones) · site */
.t-body{font-family:var(--t-serif);font-size:18px;font-weight:400;line-height:1.65;letter-spacing:0;color:var(--t-text2)} /* Paragraphs · site */
.t-body-sm{font-family:var(--t-serif);font-size:17px;font-weight:400;line-height:1.6;letter-spacing:0;color:var(--t-muted)} /* Short descriptions, notes · site */
.t-voice{font-family:var(--t-serif);font-size:19px;font-weight:400;line-height:1.6;letter-spacing:0;color:var(--t-text)} /* The agent talking · agent */
.t-page-title{font-family:var(--t-serif);font-size:28px;font-weight:400;line-height:1.2;letter-spacing:-0.01em;color:var(--t-text)} /* App page title · app */
.t-desc{font-family:var(--t-serif);font-size:17px;font-weight:400;line-height:1.55;letter-spacing:0;color:var(--t-muted)} /* App page description, empty states · app */
.t-message{font-family:var(--t-sans);font-size:16px;font-weight:400;line-height:1.55;letter-spacing:0;color:var(--t-text)} /* What the user types or sent · agent */
.t-sheet-title{font-family:var(--t-sans);font-size:17px;font-weight:600;line-height:1.45;letter-spacing:0;color:var(--t-text)} /* Result card title, app section title · agent, app */
.t-data-name{font-family:var(--t-sans);font-size:16px;font-weight:600;line-height:1.45;letter-spacing:0;color:var(--t-text)} /* Company or record name in a list · agent, app */
.t-data{font-family:var(--t-sans);font-size:15px;font-weight:400;line-height:1.5;letter-spacing:0;color:var(--t-muted);font-variant-numeric:tabular-nums slashed-zero} /* Data details, table cells (never smaller) · all */
.t-num{font-family:var(--t-sans);font-size:15px;font-weight:400;line-height:1.5;letter-spacing:0;color:var(--t-text);font-variant-numeric:tabular-nums slashed-zero} /* Numbers, scores, codes, IDs (tabular figures, slashed zero) · all */
.t-label{font-family:var(--t-sans);font-size:15px;font-weight:400;line-height:1.4;letter-spacing:0;color:var(--t-muted)} /* Labels, menus, tabs, secondary buttons, eyebrow · all */
.t-button{font-family:var(--t-sans);font-size:15px;font-weight:500;line-height:1;letter-spacing:0;color:var(--t-btn-ink)} /* Primary button only (secondary buttons use label) · all */
.t-th{font-family:var(--t-sans);font-size:14px;font-weight:500;line-height:1.4;letter-spacing:0;color:var(--t-muted);font-variant-numeric:tabular-nums slashed-zero} /* Table header · app */
.t-badge{font-family:var(--t-sans);font-size:14px;font-weight:500;line-height:1.3;letter-spacing:0;color:var(--t-ok)} /* Status badge · app */
.t-hint{font-family:var(--t-sans);font-size:14px;font-weight:400;line-height:1.5;letter-spacing:0;color:var(--t-dim)} /* Hints, captions, status (never smaller) · all */
@media (max-width:760px){.t-h1{font-size:38px}.t-h2{font-size:28px}.t-lede{font-size:19px}}
