/* gdw-chat: Oberflächenanpassungen ohne Änderung am Image.
 * Wird auf dem Server von Nginx per sub_filter als <link> in den <head> eingefügt
 * (deploy/nginx-*.conf) und vom api-Container unter /assets/gdw.css ausgeliefert
 * (Bind-Mount in beiden Compose-Overrides). Farben und Schriftfamilie kommen aus
 * interface.theme in librechat.yaml; hier stehen nur Dinge, die das Theme nicht kann.
 * Stand 23.10.2026, Vorgaben von gdw.de. */

/* Plus im Eingabefeld (Anhang-Menü): kein Schalter je Rolle vorhanden, deshalb für alle aus.
 * Dokumente kommen über den Agent-Builder. */
[data-testid="composer-palette-button"] { display: none !important; }

/* Kontaktzeile unter dem Agentennamen auf der Startseite (zeigt sonst das Dienstkonto).
 * Klassen aus client/src/components/Agents/AgentContact.tsx und Chat/Landing.tsx. */
.text-text-secondary.flex.items-center.gap-1.animate-fadeIn.mt-2.max-w-md.justify-center { display: none !important; }

/* Überschrift auf der Startseite: "Der GdW-Assistent". Der Artikel kommt per CSS, weil der
 * Agentenname selbst "GdW-Assistent" bleiben muss: er steht auch im Platzhalter
 * "Nachricht an …" und in der Kopfzeile, wo ein "Der" falsch wäre. Selektor: Wrapper des
 * Namens in Chat/Landing.tsx plus das SplitText-Element (packages/client, .split-parent). */
.flex.flex-col.items-center.gap-0.p-2 > p.split-parent::before {
  content: "Der ";
}

/* Logo auf der Startseite ohne Kreis: LibreChat legt einen runden Ring (.shadow-stroke::after)
 * und eine helle Kreisfläche hinter das Avatar-Bild. Das Signet ist freigestellt (PNG mit
 * Transparenz) und steht so direkt auf dem Hintergrund. */
.flex.flex-col.items-center.gap-0.p-2 .shadow-stroke::after { display: none !important; }
.flex.flex-col.items-center.gap-0.p-2 .shadow-stroke { background: transparent !important; box-shadow: none !important; }

/* Logo über dem Titel statt links daneben, und größer (Wunsch 23.10.2026). Landing.tsx legt
 * Icon und Titel ab Tablet-Breite nebeneinander (md:flex-row); hier wieder untereinander. */
.flex.flex-col.items-center.gap-0.p-2 > .flex.items-center.justify-center.gap-2 {
  flex-direction: column !important;
  gap: 0.75rem !important;
}
.flex.flex-col.items-center.gap-0.p-2 > .flex.items-center.justify-center.gap-2 > .relative.size-10 {
  width: 3.25rem !important;
  height: 3.25rem !important;
  margin-bottom: 0 !important;
}

/* Gesprächsstarter (client/src/components/Chat/Input/ConversationStarters.tsx): statt frei
 * umbrechender Pillen ein gleichmäßiges Raster, zwei Spalten gleicher Breite, gleiche Höhe,
 * Ecken und Grünton wie die Buttons; bei schmalen Fenstern eine Spalte. */
.mt-2.mb-8.flex.w-full.flex-wrap.items-stretch.justify-center.gap-2.px-4 {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.625rem !important;
  /* gleiche Breite wie das Eingabefeld darunter: selber Container, kein eigener Seitenrand */
  max-width: none;
  margin: 0 0 1rem !important;
  padding: 0 0.4rem !important; /* Innenabstand des Eingabefelds, damit die Kanten fluchten */
}
@media (max-width: 640px) {
  .mt-2.mb-8.flex.w-full.flex-wrap.items-stretch.justify-center.gap-2.px-4 { grid-template-columns: minmax(0, 1fr); }
}
.mt-2.mb-8.flex.w-full.flex-wrap.items-stretch.justify-center.gap-2.px-4 > button {
  max-width: none !important;
  border-radius: 0.625rem !important;
  border: 1px solid rgb(108 182 68 / 0.45);
  background: rgb(108 182 68 / 0.08) !important;
  padding: 0.7rem 0.9rem !important;
  min-height: 3rem;
}
.mt-2.mb-8.flex.w-full.flex-wrap.items-stretch.justify-center.gap-2.px-4 > button:hover {
  background: rgb(108 182 68 / 0.18) !important;
}

/* Beschreibung unter dem Agentennamen auf der Startseite: breiter, ruhigerer Zeilenabstand,
 * gedämpfte Farbe (Klassen aus client/src/components/Chat/Landing.tsx). */
.animate-fadeIn.mt-4.max-w-md.text-center.text-sm {
  max-width: 38rem;
  line-height: 1.6;
  padding: 0 1rem;
  opacity: 0.85;
}

/* ---- Anmeldeseite, Variante „C Geteilt" (26.10.2026, aus acht Vorschlägen gewählt) ----
 * Links eine Fläche im Dunkelblaugrau von gdw.de mit Signet, Titel und der Liste der
 * Dokumentarten (die vier Themenordner aus Dokumente/Unterlagen-GdW), rechts nur der Knopf.
 * Markup: client/src/components/Auth/AuthLayout.tsx; nur dort gibt es den Wrapper
 * ".relative.flex.min-h-screen.flex-col". <main> wird ein Grid mit vier Zeilen
 * (1fr auto auto 1fr): die Pseudoelemente (Signet+Titel, Liste) stehen in Spalte 1,
 * Zeilen 2 und 3, der Login-Container in Spalte 2 über alle Zeilen; so sind beide Seiten
 * ohne Rechnerei senkrecht zentriert. Die Fläche ist ein Verlauf auf <main> (44 % Breite,
 * gleich der ersten Spalte). Überschrift "Willkommen zurück" -> "Anmelden" ersetzt Nginx im
 * Sprachpaket (deploy/nginx-*.conf). Unter 900 px: Fläche als Band oben, Liste ausgeblendet. */
.relative.flex.min-h-screen.flex-col > .mt-6.h-10.w-full { display: none; } /* Logo-Zeile oben: das Signet steht in der Fläche */
.relative.flex.min-h-screen.flex-col > [role="contentinfo"] { display: none; } /* leere Fußzeile (keine Richtlinien-Links) */
.relative.flex.min-h-screen.flex-col > .absolute.bottom-0.left-0 { display: none; } /* Hell/Dunkel-Schalter: nach dem Login in den Einstellungen */
.relative.flex.min-h-screen.flex-col > main {
  display: grid !important;
  grid-template-columns: minmax(0, 44fr) minmax(0, 56fr);
  grid-template-rows: 1fr auto auto 1fr;
  background: linear-gradient(90deg, #395a6c 44%, transparent 44%);
}
html.dark .relative.flex.min-h-screen.flex-col > main { background: linear-gradient(90deg, #2b4452 44%, transparent 44%); }
.relative.flex.min-h-screen.flex-col > main::before {
  content: "Der GdW-Assistent";
  grid-area: 2 / 1;
  background: url(/assets/logo.svg) no-repeat 3rem 0 / 76px auto;
  padding: 6.25rem 3rem 0; /* Platz für das Signet (76 px + Abstand) */
  color: #fff;
  font-size: 1.75rem; font-weight: 600; line-height: 1.2;
}
.relative.flex.min-h-screen.flex-col > main::after {
  /* Nach jedem Hex-Escape ein Leerzeichen, das CSS verschluckt: sonst frisst \00a0 folgende Hex-Buchstaben (B, D, A …). */
  content: "Antworten aus den internen Unterlagen des GdW:\A \A \2713 \00a0 Grundsatzpapiere\A \2713 \00a0 Tarifverträge und Betriebsvereinbarungen\A \2713 \00a0 Betriebs-Regelungsabsprachen und Personalentwicklungskonzept\A \2713 \00a0 Arbeits- und Dienstanweisungen, Hausverfügungen\A \2713 \00a0 Datenschutzregelungen\A \A Die Dokumente bleiben auf dem eigenen Server.";
  grid-area: 3 / 1;
  padding: 1rem 3rem 0;
  color: rgb(255 255 255 / 0.9);
  white-space: pre-line;
  font-size: 1rem; line-height: 1.6;
}
.relative.flex.min-h-screen.flex-col > main > div { grid-column: 2; grid-row: 1 / -1; justify-self: center; align-self: center; }
/* Überschrift rechts in derselben Größe wie links, Untertitel darunter */
.relative.flex.min-h-screen.flex-col main h1 { font-size: 1.75rem !important; line-height: 1.2 !important; margin-bottom: 1.25rem !important; }
.relative.flex.min-h-screen.flex-col main h1::after {
  content: "Sie erhalten einen Anmeldelink per E-Mail. Ein Passwort gibt es nicht.";
  display: block; margin-top: 0.75rem;
  font-size: 1rem; font-weight: 400; line-height: 1.6;
  color: rgb(var(--text-secondary)); /* Theme-Token ist ein RGB-Tripel */
}
/* Der eine Knopf (SocialButton.tsx): grün und voll statt Umriss, Briefsymbol statt OpenID-Logo */
.relative.flex.min-h-screen.flex-col a[data-testid="openid"] {
  justify-content: center; gap: 0.6rem;
  border: none; border-radius: 0.3rem;
  background: #6cb644 !important; color: #fff !important;
  font-weight: 600; padding: 0.8rem 1.25rem;
}
.relative.flex.min-h-screen.flex-col a[data-testid="openid"]:hover { background: #5c9e38 !important; }
.relative.flex.min-h-screen.flex-col a[data-testid="openid"] > svg { display: none; }
.relative.flex.min-h-screen.flex-col a[data-testid="openid"] > p { margin: 0 !important; }
.relative.flex.min-h-screen.flex-col a[data-testid="openid"]::before {
  content: ""; width: 1.15rem; height: 1.15rem; flex: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E") center / contain no-repeat;
}
/* Fußzeile im Login-Container statt der leeren Upstream-Fußzeile */
.relative.flex.min-h-screen.flex-col > main > div::after {
  content: "GdW Bundesverband deutscher Wohnungs- und Immobilienunternehmen e. V.";
  display: block; margin-top: 2rem;
  text-align: center;
  font-size: 0.78rem; line-height: 1.6;
  color: rgb(var(--text-secondary));
}
@media (max-width: 900px) {
  .relative.flex.min-h-screen.flex-col > main,
  html.dark .relative.flex.min-h-screen.flex-col > main { display: block !important; background: none; }
  .relative.flex.min-h-screen.flex-col > main::before {
    display: block;
    background-color: #395a6c;
    background-position: 1.5rem 1.5rem; background-size: 52px auto;
    padding: 5.5rem 1.5rem 1.5rem;
    font-size: 1.4rem;
  }
  html.dark .relative.flex.min-h-screen.flex-col > main::before { background-color: #2b4452; }
  .relative.flex.min-h-screen.flex-col > main::after { display: none; }
  .relative.flex.min-h-screen.flex-col > main > div { margin: 1.5rem auto 0; }
}

/* Open Sans, Hausschrift von gdw.de (SIL Open Font License), selbst gehostet aus branding/fonts. */
@font-face { font-family: "Open Sans"; font-style: normal; font-weight: 400; font-display: swap;
  src: url(/assets/fonts/OpenSans-Regular-latin.woff2) format("woff2");
  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: "Open Sans"; font-style: normal; font-weight: 400; font-display: swap;
  src: url(/assets/fonts/OpenSans-Regular-latin-ext.woff2) format("woff2");
  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: "Open Sans"; font-style: italic; font-weight: 400; font-display: swap;
  src: url(/assets/fonts/OpenSans-Italic-latin.woff2) format("woff2");
  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: "Open Sans"; font-style: italic; font-weight: 400; font-display: swap;
  src: url(/assets/fonts/OpenSans-Italic-latin-ext.woff2) format("woff2");
  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: "Open Sans"; font-style: normal; font-weight: 600; font-display: swap;
  src: url(/assets/fonts/OpenSans-SemiBold-latin.woff2) format("woff2");
  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: "Open Sans"; font-style: normal; font-weight: 600; font-display: swap;
  src: url(/assets/fonts/OpenSans-SemiBold-latin-ext.woff2) format("woff2");
  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: "Open Sans"; font-style: normal; font-weight: 700; font-display: swap;
  src: url(/assets/fonts/OpenSans-Bold-latin.woff2) format("woff2");
  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: "Open Sans"; font-style: normal; font-weight: 700; font-display: swap;
  src: url(/assets/fonts/OpenSans-Bold-latin-ext.woff2) format("woff2");
  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; }
