/* GEIST Button-Konvention — app-weit, additiv.
 *
 * Tom-Verankerung 2026-06-25: Buttons MUESSEN immer eine .btn-{primary|
 * secondary|danger|warning|success|link} Klasse haben. Sonst zeigen
 * Browser ihre weisse Default-Optik und der Button ist unsichtbar.
 *
 * Diese Datei wird per base.html VOR der App-eigenen app.css geladen.
 * App-eigene Buttons (.btn-frei, .btn-sonderpos, .btn-kda, .btn-ghost,
 * .btn-block, .btn-del, .btn-icon, .btn-print, .btn-ok, .btn-lg, .btn-sm,
 * .btn-row) bleiben unberuehrt — die hier definierten Klassen ueberlappen
 * absichtlich nicht mit App-Specials, sondern setzen den sicheren Default.
 *
 * Farbquelle = GEIST-CI (Logo-Navy, NICHT Royalblau):
 *   --geist-blue:    #2B61A1
 *   --geist-blue-d:  #2B61A1
 *   --geist-blue-l:  #eef3fd
 *   --geist-red:     #c0392b
 *   --geist-orange:  #d97706   (Amber-600 — weisser Text ergibt 3.1:1,
 *                              vorher #f59e0b mit nur 2.1:1)
 *   ACHTUNG: in diesem Kopf darf KEIN weiteres Kommentar-Ende stehen.
 *   CSS kennt keine verschachtelten Kommentare — ein zweites Kommentar-
 *   Ende hier
 *   beendet den Kopf vorzeitig, der Rest wird als CSS gelesen und der
 *   :root-Block darunter geht verloren. Folge: alle --geist-*-Farben
 *   undefiniert, jeder .btn-primary unsichtbar (weisse Schrift auf
 *   transparent). Genau das war der Fehler bis 01.09.2026.
 *   --geist-green:   #2a7a3b
 *   --geist-ink:     #1a1a1a
 *   --geist-line:    #d1d5db
 */

:root{
  --geist-blue:    #2B61A1;
  --geist-blue-d:  #2B61A1;
  --geist-blue-l:  #eef3fd;
  --geist-red:     #c0392b;
  --geist-red-d:   #962a1f;
  --geist-orange:  #d97706;  /* Amber-600 — weisser Text ergibt 3.1:1 (war #f59e0b/2.1:1) */
  --geist-orange-d:#b45309;  /* Amber-700 — Hover, weisser Text 5:1 */
  --geist-green:   #2a7a3b;
  --geist-green-d: #1f5a2c;
  --geist-ink:     #1a1a1a;
  --geist-line:    #d1d5db;
  --geist-line-d:  #9ca3af;
}

/* ─── Basis-Button ────────────────────────────────────────────────── */
.btn{
  display:inline-block;
  padding:6px 14px;
  font-size:13px;
  font-weight:600;
  line-height:1.35;
  border:1px solid var(--geist-line);
  border-radius:5px;
  background:#fff;
  color:var(--geist-ink);
  cursor:pointer;
  text-decoration:none;
  user-select:none;
  -webkit-appearance:none;
  appearance:none;
  transition:background .12s ease, border-color .12s ease, color .12s ease, box-shadow .12s ease;
}
.btn:hover{
  background:#f3f4f6;
  border-color:var(--geist-line-d);
  text-decoration:none;
}
.btn:focus-visible{
  outline:none;
  /* Fokus-Ring = Logo-Navy #2B61A1 (43,97,161). Bis 08.09.2026 stand hier
     das alte Royalblau — der letzte CI-Rest, sichtbar bei jedem
     Tastatur-Fokus. Der alte Zahlenwert steht bewusst NICHT im Text:
     sonst findet ihn jede Farb-Suche wieder und meldet einen Rest, den
     es nicht mehr gibt. rgba() braucht Zahlen, deshalb Literal statt
     var(--geist-blue). */
  box-shadow:0 0 0 3px rgba(43,97,161,.35);
}
.btn:disabled,
.btn[disabled],
.btn.is-disabled{
  opacity:.55;
  cursor:not-allowed;
  pointer-events:none;
}

/* ─── .btn-primary — Hauptaktion (Royalblau / weisse Schrift) ─── */
.btn-primary{
  background:var(--geist-blue);
  border-color:var(--geist-blue);
  color:#fff;
}
.btn-primary:hover{
  background:var(--geist-blue-d);
  border-color:var(--geist-blue-d);
  color:#fff;
}

/* ─── .btn-secondary — Zweitaktion (weiss / Royalblau-Border) ─── */
.btn-secondary{
  background:#fff;
  border-color:var(--geist-blue);
  color:var(--geist-blue);
}
.btn-secondary:hover{
  background:var(--geist-blue-l);
  border-color:var(--geist-blue-d);
  color:var(--geist-blue-d);
}

/* ─── .btn-danger — Loeschen/Abbruch (rot / weisse Schrift) ─── */
.btn-danger{
  background:var(--geist-red);
  border-color:var(--geist-red);
  color:#fff;
}
.btn-danger:hover{
  background:var(--geist-red-d);
  border-color:var(--geist-red-d);
  color:#fff;
}

/* ─── .btn-warning — Sonderaktion (orange / weisse Schrift) ─── */
/* z.B. "Mit echter Nr senden" / "Live-Write-Back ausloesen" */
.btn-warning{
  background:var(--geist-orange);
  border-color:var(--geist-orange);
  color:#fff;
}
.btn-warning:hover{
  background:var(--geist-orange-d);
  border-color:var(--geist-orange-d);
  color:#fff;
}

/* ─── .btn-success — Bestaetigung (gruen / weisse Schrift) ─── */
/* HINWEIS: Erfolgs-Status-Badges nutzen weiter Royalblau (--ok=#2B61A1),
 * .btn-success ist nur fuer Buttons, bei denen explizit "gruen" gewollt
 * ist (Tom-Befund 25.06.). Im Zweifel .btn-primary bevorzugen. */
.btn-success{
  background:var(--geist-green);
  border-color:var(--geist-green);
  color:#fff;
}
.btn-success:hover{
  background:var(--geist-green-d);
  border-color:var(--geist-green-d);
  color:#fff;
}

/* ─── .btn-link — Text-Link statt Button-Box ─────────────────── */
.btn-link{
  display:inline;
  padding:0;
  border:0;
  background:transparent;
  color:var(--geist-blue);
  font-weight:500;
  text-decoration:underline;
  cursor:pointer;
}
.btn-link:hover{
  background:transparent;
  color:var(--geist-blue-d);
  border:0;
}

/* ─── .btn-sm — kleiner Modus (zusaetzlich zu .btn-*) ─────────── */
.btn-sm{
  padding:3px 9px;
  font-size:12px;
}

/* ─── HARTER SAFETY-NET: raw <button> ohne Klasse → sichtbar ───
 * Browser-Default ist weiss/grau. Wir ueberschreiben den Default
 * NUR fuer Buttons OHNE jegliche .btn-/.button-/.cron-chip-/.qtab-/
 * .geist-btn-/.kd-detail-x-/.slot-/.kda-/.brandtxt-Klasse. So bleiben
 * App-spezifische Custom-Buttons unberuehrt, aber „vergessene"
 * Raw-Buttons fallen sofort auf — sie bekommen Royalblau-Sekundaer.
 *
 * Selektor-Trick: :not()-Liste deckt die in der Audit gesehenen
 * App-Klassen ab. Wird ein neuer Custom-Button-Stil eingefuehrt,
 * BITTE in die :not()-Liste aufnehmen ODER eine .btn-*-Klasse vergeben.
 */
button:not([class]),
button[class=""]{
  display:inline-block;
  padding:6px 14px;
  font-size:13px;
  font-weight:600;
  line-height:1.35;
  border:1px solid var(--geist-blue);
  border-radius:5px;
  background:var(--geist-blue-l);
  color:var(--geist-blue-d);
  cursor:pointer;
  -webkit-appearance:none;
  appearance:none;
}
button:not([class]):hover,
button[class=""]:hover{
  background:#dde7fb;
  border-color:var(--geist-blue-d);
}
