/* ============================================================
   TYPO.CSS – Schrift-Hierarchie für Signika (Google Fonts, 300–700)
   ------------------------------------------------------------
   Wird NACH allen Seiten-Stilen geladen und ordnet die Stärken:
     300 leicht   Nebentexte, Hinweise, Untertitel, Platzhalter
     400 normal   Fließtext, Eingaben, Menüpunkte
     500 mittel   Beschriftungen, Knöpfe, Tabellenköpfe, Titel in Listen
     600 halbfett Seiten-/Dialogtitel, aktive Elemente, Summen, Kennzahlen
     700 fett     nur Warnungen und große Zahlen
   Die Schrift selbst: Einstellungen → Layout → Schriftarten
   (Standard Signika, siehe assets/layout-stil.js).
   ============================================================ */
:root {
  --fw-leicht: 300;
  --fw-normal: 400;
  --fw-mittel: 500;
  --fw-halb: 600;
  --fw-fett: 700;
  /* Laufweite: Signika ist schon breit – Großbuchstaben nur leicht sperren */
  --ls-caps: .02em;        /* Menü, Reiter, Tabellenköpfe, Beschriftungen */
  --ls-klein: .05em;       /* sehr kleine Überschriften (11 px) */
}

body { font-weight: var(--fw-normal); font-optical-sizing: auto; }
b, strong { font-weight: var(--fw-halb); }
input, select, textarea { font-weight: var(--fw-normal); }
::placeholder { font-weight: var(--fw-leicht); }

/* ---------- Überschriften ---------- */
h1, .dashboard-title { font-weight: var(--fw-halb); letter-spacing: -.01em; }
h2 { font-weight: var(--fw-halb); letter-spacing: -.005em; }
.dialog-inner h2, dialog h2 { font-weight: var(--fw-halb); letter-spacing: 0; }
h3, .thd-h, .dashboard-panel-title, .hd-karte h3 { font-weight: var(--fw-halb); }
h4 { font-weight: var(--fw-mittel); }
.thd-h2, .es-gruppe, .es-farben-bereich, .nk-titel { font-weight: var(--fw-mittel); letter-spacing: var(--ls-caps); }
.va-form-box > legend, legend { font-weight: var(--fw-halb); letter-spacing: var(--ls-caps); }
.dashboard-panel-desc, .es-farbgruppe-info, .thd-einl-text { font-weight: var(--fw-leicht); }

/* ---------- Menü ---------- */
.nav-group-title { font-weight: var(--fw-mittel); letter-spacing: var(--ls-klein); }
.nav-item, .nav-item-parent { font-weight: var(--fw-normal); }
.nav-item-parent > span { font-weight: var(--fw-mittel); letter-spacing: var(--ls-caps); }
.nav-subitem { font-weight: var(--fw-leicht); }
.nav-item.active, .nav-item-parent.active, .nav-subitem.active { font-weight: var(--fw-halb); }
.header-mobile-title, .dropdown-name { font-weight: var(--fw-halb); }

/* ---------- Knöpfe, Reiter, Chips ---------- */
button, .btn { font-weight: var(--fw-mittel); letter-spacing: 0; }
.btn-primary, .btn-submit { font-weight: var(--fw-halb); }
.btn-cancel, .dashboard-action-btn, .funktionen-container .btn { font-weight: var(--fw-mittel); }
.tab-button, .view-tab-btn { font-weight: var(--fw-mittel); letter-spacing: var(--ls-caps); }
.tab-button.active, .tab-button.is-active { font-weight: var(--fw-halb); }
.stock-chip, .badge, .th-status, .th-baustein, .be-an-chip, select.th-status-farbe { font-weight: var(--fw-mittel); }
.stock-chip.is-active { font-weight: var(--fw-halb); }
.stock-chip-count { font-weight: var(--fw-normal); }
.tw-add-btn { font-weight: var(--fw-mittel); }

/* ---------- Formulare ---------- */
.field label, .letter-label, .mobile-label { font-weight: var(--fw-mittel); letter-spacing: var(--ls-caps); }
.field-hint, .field label small, .field-label small { font-weight: var(--fw-leicht); }
.es-check, label.es-check { font-weight: var(--fw-normal); letter-spacing: 0; text-transform: none; }

/* ---------- Tabellen & Listen ---------- */
th, .fz-k-tabelle th, .fz-i-tabelle th, table.ek-pos th, table.an-pos th, table.pr-teile th, table.pr-buchungen th, .th-anmelde-table th {
  font-weight: var(--fw-mittel); letter-spacing: var(--ls-caps);
}
td { font-weight: var(--fw-normal); }
.table-entry-title { font-weight: var(--fw-mittel); letter-spacing: 0; }
.table-entry-subtitle, .text-muted, .thd-small, .thd-new-sub, .thd-leer, .empty-inline { font-weight: var(--fw-leicht); }
.empty strong { font-weight: var(--fw-halb); }
th.col-nummer { font-weight: var(--fw-mittel); font-size: 12px; }
td.col-nummer, td.col-nummer .table-link { font-weight: var(--fw-leicht); font-variant-numeric: tabular-nums; }   /* Nummern dünn */
.detail-list-heading, .detail-section-title { font-weight: var(--fw-mittel); }
.detail-list-value { font-weight: var(--fw-normal); }

/* ---------- Karten (Kanban, Dashboard) ---------- */
.be-spalte-kopf { font-weight: var(--fw-halb); letter-spacing: var(--ls-caps); }
.be-karte-name { font-weight: var(--fw-halb); }
.be-karte-ort, .be-karte-kopf, .be-karte-text { font-weight: var(--fw-leicht); }
.thd-new-titel, .thd-link { font-weight: var(--fw-halb); }
.thd-list strong { font-weight: var(--fw-mittel); }
.thd-list small { font-weight: var(--fw-leicht); }
.thd-list li.is-dringend .thd-todo { font-weight: var(--fw-halb); }

/* ---------- Zahlen ---------- */
.vkd-volumen b, .hd-zahl b, .thd-kachel b, .thd-we-zahl, .la-kennzahlen b, .pr-bestand-zahl, .db-karte-zahl, .workflow-card-count,
.es-m-code-gross, .abd-bereich-kopf > b, .ze-gross, .fz-kennzeichen {
  font-weight: var(--fw-halb); font-variant-numeric: tabular-nums; letter-spacing: -.01em;
}
.an-summe-gesamt, .th-summe, .an-c-ges { font-weight: var(--fw-halb); }
.an-summe > div:not(.an-summe-gesamt) { font-weight: var(--fw-normal); }
.text-right, .ek-c-zahl, .an-c-ges { font-variant-numeric: tabular-nums; }

/* Warnungen dürfen fett sein */
.be-faellig, .pr-bestand-neg, .la-rot, .ek-spaet, .iv-rot, .fz-rot { font-weight: var(--fw-fett); }
.pr-bestand-niedrig, .la-warn, .iv-orange, .fz-orange { font-weight: var(--fw-halb); }

/* ---------- Einstellungen: Muster/Titel etwas leichter ---------- */
.es-farbe-name, .es-stil-name, .es-muster-titel, .es-fb-titel, .es-wahl-titel, .es-konto-name, .es-rolle-titel { font-weight: var(--fw-halb); }
.es-farbe-nr, .es-muster-kicker, .es-m-legende, .es-m-feld-l, .es-picker-gruppe, .db-farbreihe h5, .db-regel h5 { font-weight: var(--fw-mittel); }

/* ---------- Anmeldung ---------- */
.login-card h1 { font-weight: var(--fw-halb); }
.hd-name { font-weight: var(--fw-halb); }

/* ---------- Laufweite der übrigen Großbuchstaben-Texte angleichen ---------- */
.es-farbe-nr, .es-muster-kicker, .es-m-legende, .es-m-feld-l, .nk-beispiel-label, .thd-einl-titel, .db-regel h5 { letter-spacing: var(--ls-klein); }
.es-muster-knopf, .fz-kennzeichen, .detail-list-heading, .detail-section-title, .th-status, .badge, .user-name { letter-spacing: var(--ls-caps); }
.stock-chip { letter-spacing: 0; }
