/*
 * Design-Tokens der GroupsSUITE.
 *
 * HERKUNFT — hier beginnt keine Änderung.
 * Diese Datei ist eine Kopie des Abschnitts «Tokens» aus
 * groupscamp/app/assets/stylesheets/application.css, samt der @font-face-Blöcke.
 * GroupsCAMP ist die Quelle: Wer einen Wert ändern will, ändert ihn dort und
 * kopiert ihn hierher, nie umgekehrt. Sonst laufen die beiden Oberflächen
 * auseinander, und niemand merkt es, weil jede für sich stimmig aussieht.
 *
 * Eine Kopie statt eines gemeinsamen Pakets ist bei zwei Abnehmern die ehrliche
 * Lösung: Ein Paket kostet mehr Pflege, als es an Abweichung verhindert. Ab dem
 * dritten Modul kippt diese Rechnung.
 *
 * EINZIGE ERGÄNZUNG gegenüber GroupsCAMP sind die sechs --fs-*-Werte weiter
 * unten. GroupsCAMP hat keine Typo-Skala, sondern rund achtzehn von Hand
 * gewählte Grössen; herausgezogen sind nur die sechs, aus denen die
 * Dashboard-Hülle besteht. Die übrigen bleiben, wo sie sind.
 */

/* --- Schriften, selbst gehostet -------------------------------------------
   Kein CDN. Wir werben mit Schweizer Datenhaltung, und eine Anfrage an
   fonts.googleapis.com bei jedem Seitenaufruf widerspricht dem — unabhängig
   davon, wie die Schrift aussieht. Die vier Schnitte liegen in
   app/assets/fonts/; Propshaft löst die logischen Namen unten auf. */
@font-face {
  font-family: "Geist";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/geist-400-ef522b10.woff2") format("woff2");
}
@font-face {
  font-family: "Geist";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/geist-500-6130dfc0.woff2") format("woff2");
}
@font-face {
  font-family: "Geist";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/geist-600-fe000689.woff2") format("woff2");
}
@font-face {
  font-family: "Geist";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/geist-700-626e99f5.woff2") format("woff2");
}

:root {
  --primary: #2563eb;
  --primary-d: #1d4ed8;
  --lime: #6dc30e;

  --bg: #0f172a;
  --panel: #1e293b;
  --panel-2: #243044;

  --line: rgba(255, 255, 255, 0.09);
  --line-2: rgba(255, 255, 255, 0.14);

  --ink: #f1f5f9;
  --t2: #cbd5e1;
  --t3: #94a3b8;
  --t4: #64748b;

  --ok: #16a34a;
  --err: #ef4444;

  --radius: 14px;
  --accent: var(--primary);

  /* Eine UI-Schrift, keine Serife — wie in der GroupsLINK-Signatur. */
  --font-sans: "Geist", "Helvetica Neue", Arial, sans-serif;

  /* Die sechs Grössen, aus denen die Hülle besteht. Siehe Kopfkommentar: eine
     Ergänzung, kein Bestand von GroupsCAMP. Werte in rem gegen die 14px-Basis
     ganz unten. */
  --fs-title: 1.6rem;        /* Seitentitel */
  --fs-brand: 1.25rem;       /* Wortmarke in der Kopfzeile */
  --fs-panel-title: 1.15rem; /* Kartentitel */
  --fs-body: 1rem;           /* Fliesstext */
  --fs-sub: 0.82rem;         /* Nebentext, E-Mail-Adresse, Kachelbeschreibung */
  --fs-chip: 0.78rem;        /* Chips und Marken */
}

/* Rollenakzent, am Bildschirm über data-role gesetzt. Der Launcher kennt
   team/host/guest; team trägt denselben Akzent wie in GroupsCAMP, die übrigen
   bleiben auf --primary. teacher und parent stehen hier, damit die Datei in
   beiden Repos dieselbe ist. */
[data-role="team"] { --accent: #6366f1; }
[data-role="teacher"] { --accent: #2563eb; }
[data-role="parent"] { --accent: #16a34a; }

/* Grundgrösse. Die gesamte rem-Skala hängt an dieser Zeile — ohne sie ist jeder
   aus GroupsCAMP übernommene Wert um den Faktor 16/14 zu gross. */
html { font-size: 14px; }
