/* ------------------------------------------------------------------
   Roboto selbst gehostet, 2026-09-13.
   Bis zum Authelia-Update lieferte MUI Roboto mit -- das Login sah auf
   jedem Geraet gleich aus. Die Tailwind-Fassung bringt keinen Webfont mehr
   mit; diese Datei nannte zwar "Inter" an erster Stelle, lud sie aber nie.
   Ergebnis: jedes Geraet nahm seinen Systemfont (iOS San Francisco,
   Windows Segoe UI) -- die Maske wirkte dadurch fremd.
   Google Fonts direkt einzubinden scheitert an der CSP (style-src 'self'),
   deshalb liegen die Dateien unter /var/www/assets/login-fonts/ und werden
   ueber eine eigene nginx-location ausgeliefert. Nur die lateinischen
   Subsets, 2 Dateien, zusammen rund 72 KB.
   ------------------------------------------------------------------ */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/login-fonts/roboto-KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/login-fonts/roboto-KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(/login-fonts/roboto-KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(/login-fonts/roboto-KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/login-fonts/roboto-KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/login-fonts/roboto-KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ============================================================
   TJCreate – Authelia Login Theme
   Ergänzt Authelias natives `theme: dark` (lesbare helle Schrift)
   um das TJCreate-Branding. Wird per nginx sub_filter in
   auth.tjcreate.de eingebunden (alias /var/www/assets/...).
   Hinweis: Theme MUSS in configuration.yml `dark` sein – sonst
   rendert MUI dunkle Schrift auf dunklem Grund.
   ============================================================ */

:root {
  --tj-bg:          #0f1418;   /* Grundfläche */
  --tj-text:        #eef3f5;   /* Haupttext */
  --tj-teal:        #42b7c8;   /* Akzent / Fokus */
  --tj-teal-strong: #23899a;   /* Primär-Button */
  --tj-teal-hover:  #2aa2b5;   /* Button hover */
  --tj-link:        #63c8d7;   /* Links */
  --tj-link-hover:  #8bd9e5;
  --tj-radius:      10px;
  color-scheme: dark;
}

/* Grundfläche – ruhiges, gleichmäßiges Dunkel (kein Verlauf →
   keine Nähte zwischen body und #root). */
html,
body,
#root {
  background: var(--tj-bg) !important;
  color: var(--tj-text) !important;
  font-family: "Roboto", "Inter", "Segoe UI", system-ui, -apple-system, sans-serif !important;
}

/* Teal-Akzentleiste oben über die volle Breite */
body::before {
  content: "";
  position: fixed;
  inset: 0 0 auto;
  height: 5px;
  background: linear-gradient(90deg, #23899a 0%, #42b7c8 50%, #63c8d7 100%);
  z-index: 10;
}

/* Logo – mittig, mit dezentem teal Schimmer */
img[alt="Logo"] {
  content: url("/tjcreate-login-logo.png") !important;
  width: 120px !important;
  height: 120px !important;
  object-fit: contain !important;
  margin-bottom: 16px !important;
  filter: drop-shadow(0 6px 18px rgba(66, 183, 200, 0.18));
}

/* Eingabefelder – abgerundet, teal Fokus */
input,
fieldset {
  border-radius: var(--tj-radius) !important;
}
input:focus,
fieldset:has(input:focus) {
  border-color: var(--tj-teal) !important;
}

/* Sicherheitsnetz: sichtbarer Eingabetext IMMER hell – unabhängig von
   MUI-Theme-Zuständen. */
input,
/* Browser-Autofill (Passwort-Manager) – die häufigste „manchmal dunkle
   Schrift"-Ursache: der Browser färbt autofilled Felder selbst ein
   (heller/gelber BG + dunkler Text). Hier erzwungen hell auf dunklem Grund. */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
  -webkit-text-fill-color: var(--tj-text) !important;
  caret-color: var(--tj-text) !important;
  -webkit-box-shadow: 0 0 0 1000px #161c21 inset !important;
  box-shadow: 0 0 0 1000px #161c21 inset !important;
  transition: background-color 9999s ease-in-out 0s !important;
}

/* Textauswahl in Markenfarbe */
::selection {
  background: rgba(66, 183, 200, 0.35);
  color: #ffffff;
}

/* MUI Fokus-/Checkbox-/Outline-Akzent */

/* Primär-Button „Anmelden" */
#sign-in-button {
  min-height: 48px !important;
  border-radius: var(--tj-radius) !important;
  background: var(--tj-teal-strong) !important;
  box-shadow: 0 6px 18px rgba(35, 137, 154, 0.30) !important;
  font-weight: 650 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  transition: background 0.15s ease, box-shadow 0.15s ease, transform 0.05s ease !important;
}
#sign-in-button:hover {
  background: var(--tj-teal-hover) !important;
  box-shadow: 0 8px 22px rgba(42, 162, 181, 0.38) !important;
}
#sign-in-button:active {
  transform: translateY(1px) !important;
}

/* Links: „Passwort zurücksetzen", „Betrieben mit Authelia" */
#reset-password-button,
a {
  color: var(--tj-link) !important;
  transition: color 0.15s ease !important;
}
#reset-password-button:hover,
a:hover {
  color: var(--tj-link-hover) !important;
}

/* Mobile-First Feinschliff (Touch-Ziele ≥ 44px) */
@media (max-width: 600px) {
  body::before { height: 4px; }
  img[alt="Logo"] {
    width: 104px !important;
    height: 104px !important;
    margin-bottom: 12px !important;
  }
  #sign-in-button { min-height: 50px !important; }
}

/* Bewegung reduzieren respektieren */
@media (prefers-reduced-motion: reduce) {
  #sign-in-button,
  #reset-password-button,
  a { transition: none !important; }
}

/* ------------------------------------------------------------------
   Authelia-Tailwind-Anpassung, 2026-09-13.
   Authelia rendert das Login nicht mehr mit MUI, sondern mit Tailwind.
   Die .Mui-*-Regeln wurden am 2026-09-13 entfernt: es laeuft nur eine einzige
   Authelia-Instanz (alle sechs auth.*-Domains proxen auf dieselbe), und die
   ist Tailwind-basiert. Die Regeln trafen also nachweislich nichts mehr.

   Zwei Dinge regelt Tailwind selbst und darf nicht ueberschrieben werden:
   - Der Platzhalter traegt die Klasse "placeholder-transparent". Eine eigene
     ::placeholder-Farbe (besonders -webkit-text-fill-color) macht ihn wieder
     sichtbar -- dann stehen Label und Platzhalter doppelt uebereinander.
     Auf iOS/Safari faellt das am staerksten auf.
   - Label, Fokusrahmen und Fokusring haengen alle an --primary bzw. --ring.
     Ein Ueberschreiben dieser beiden Variablen faerbt alles drei auf einmal.
   ------------------------------------------------------------------ */
:root {
  --primary: var(--tj-teal);
  --ring:    var(--tj-teal);
}

/* Tailwind faerbt das schwebende Label ueber die Utility-Klasse
   "text-primary". Die liest NICHT die --primary-Variable von oben, sondern
   einen eigenen, fest kompilierten Wert -- deshalb blieb das Label blau,
   obwohl Rahmen und Fokusring bereits die Markenfarbe hatten.
   Direkt ueberschreiben ist hier der einzige zuverlaessige Weg. */
.text-primary {
  color: var(--tj-teal) !important;
}

/* Der Platzhalter traegt von Authelia "color: transparent". Weiter oben setzt
   diese Datei aber -webkit-text-fill-color auf dem Input (noetig gegen die
   dunkle Autofill-Schrift der Passwortmanager) -- und text-fill-color schlaegt
   color beim Zeichnen. Der Platzhalter wurde dadurch wieder sichtbar und stand
   doppelt unter dem gleichlautenden Label. Hier gezielt zurueckgenommen. */
input::placeholder {
  color: transparent !important;
  -webkit-text-fill-color: transparent !important;
}

/* ------------------------------------------------------------------
   Schwebendes Label wie vor dem Authelia-Update (2026-09-13).

   Bis zum Umbau auf Tailwind rendete Authelia mit MUI: Das Label sass
   mittig im leeren Feld und wanderte beim Fokussieren nach oben. Die neue
   Fassung setzt es dauerhaft klein nach oben (Klassen "top-1 text-xs"),
   wodurch leere Felder nackt wirken.

   Nachgebaut ueber den Geschwister-Selektor -- das Markup hat die Reihenfolge
   <input class="peer"> gefolgt von <label>, also reicht "+" und es braucht
   kein :has() (laeuft damit auch auf aelteren Safari-Versionen).
   Sobald das Feld fokussiert oder gefuellt ist, greift diese Regel nicht mehr
   und Authelias Normalzustand (klein, oben, Markenfarbe) uebernimmt wieder.
   Die Animation kommt aus Authelias eigener "transition-all duration-200".
   ------------------------------------------------------------------ */
input:placeholder-shown:not(:focus) + label {
  top: 50% !important;
  transform: translateY(-50%);
  font-size: 1rem !important;
  line-height: 1.2;
  color: #7d929b !important;
}
