/* pilanda_theme_fonts.css
 *
 * Schrift (Entscheid Hagspiel, 15.06.2026): EINE Schrift überall —
 *   "Noto Sans" für UI / Headings / Body / Caption.
 * KEIN Mono, KEINE zweite Schrift. Begründung: Noto Sans hat eine
 * normale (ovale, NICHT geschlitzte) Null und volle Mehrsprachigkeit;
 * eine Familie = kohärent + schlank. Für ausgerichtete Zahlen in
 * Tabellen/Gantt/Datum sorgt `font-variant-numeric: tabular-nums`
 * (gleiche Ziffernbreite, normale Null) — ersetzt jeden Mono-Bedarf.
 *
 * SELF-HOSTED (kein Google-CDN-@import — Ladezeit/Datenschutz).
 * Variable woff2 unter pilanda_theme/public/fonts/noto-sans/,
 * bedient unter /assets/pilanda_theme/fonts/... Subsets latin +
 * latin-ext (letzteres trägt ä/ö/ü/ß via unicode-range).
 * font-display:swap → System-Fallback bis der Webfont da ist.
 *
 * Aufgeräumt 15.06.2026: die ungenutzten Alt-Schriften (inter/,
 * jetbrains-mono/, source-sans-3/, roboto-mono/) wurden gelöscht —
 * es bleibt allein Noto Sans (+ ggf. noto-sans-mono als Reserve).
 */

/* ---------------- Noto Sans (alles) ------------------------- */
@font-face {
    font-family: "Noto Sans";
    font-style: normal;
    font-display: swap;
    font-weight: 100 900;
    src: url("/assets/pilanda_theme/fonts/noto-sans/noto-sans-latin-wght-normal.woff2") format("woff2-variations");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: "Noto Sans";
    font-style: normal;
    font-display: swap;
    font-weight: 100 900;
    src: url("/assets/pilanda_theme/fonts/noto-sans/noto-sans-latin-ext-wght-normal.woff2") format("woff2-variations");
    unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: "Noto Sans";
    font-style: italic;
    font-display: swap;
    font-weight: 100 900;
    src: url("/assets/pilanda_theme/fonts/noto-sans/noto-sans-latin-wght-italic.woff2") format("woff2-variations");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: "Noto Sans";
    font-style: italic;
    font-display: swap;
    font-weight: 100 900;
    src: url("/assets/pilanda_theme/fonts/noto-sans/noto-sans-latin-ext-wght-italic.woff2") format("woff2-variations");
    unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
    /* EINE Schrift überall — Noto Sans (System-Fallback im Stack). */
    --pp-font-display: "Noto Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    --pp-font-heading: var(--pp-font-display);
    --pp-font-body:    var(--pp-font-display);
    --pp-font-caption: var(--pp-font-display);
    /* "mono"-Slot bleibt als Alias = Noto Sans; Zahlen-Ausrichtung
     * kommt über font-variant-numeric: tabular-nums, nicht über eine
     * Monospace-Familie. */
    --pp-font-mono:    var(--pp-font-display);

    --pp-font-features-display: normal;
    --pp-font-variant-numeric:  tabular-nums;

    /* Gewichts-Disziplin: dezent. Text 400, UI 500, Headings max 600.
     * 700 nur sehr sparsam. */
    --pp-weight-regular:  400;
    --pp-weight-medium:   500;
    --pp-weight-semibold: 600;
    --pp-weight-bold:     600;  /* UI-Decke: „Bold ≤600"-Regel (CLAUDE.md). 700 bewusst nicht im UI. */

    /* Zeilenhöhen (line-height) — Skala statt Hartkodierung. */
    --pp-lh-tight:   1.2;     /* Display / große Headings */
    --pp-lh-snug:    1.35;    /* Headings / kompakte UI */
    --pp-lh-normal:  1.55;    /* Body (Standard) */
    --pp-lh-relaxed: 1.7;     /* lange Fließtexte */

    /* Laufweite (letter-spacing) — Skala statt Hartkodierung. */
    --pp-tracking-tighter: -0.02em;  /* sehr große Headings */
    --pp-tracking-tight:   -0.01em;  /* Headings */
    --pp-tracking-snug:    -0.005em; /* Body */
    --pp-tracking-normal:  0;
    --pp-tracking-wide:    0.08em;   /* Labels / Buttons */
    --pp-tracking-caps:    0.14em;   /* Eyebrows / Caps-Labels */
}

body,
.page-container,
.page-body,
.layout-main-section,
.main-section {
    font-family: var(--pp-font-body);
    font-weight: var(--pp-weight-regular);
    line-height: var(--pp-lh-normal);
    letter-spacing: var(--pp-tracking-snug);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6,
.page-head .page-title,
.workspace-title,
.section-head {
    font-family: var(--pp-font-heading);
    font-weight: var(--pp-weight-semibold);
    line-height: var(--pp-lh-tight);
    letter-spacing: var(--pp-tracking-tight);
}

/* Tabellen / Gantt / Datum / Zahlen-Zellen: gleiche Schrift (Noto Sans),
 * aber tabellarische Ziffern für saubere Ausrichtung + normale Null. */
code, kbd, pre, samp,
.kbd,
.tabular-num,
[data-tabular],
table td, table th,
.ppx-datagrid td, .ppx-datagrid th,
[class*="gantt"] {
    font-variant-numeric: var(--pp-font-variant-numeric);
}
