/* ============================================================================
 * PROWERB Branding-Overlay für ONLYOFFICE DocSpace (Community Edition)
 * ============================================================================
 *
 * WARUM DIESE DATEI EXISTIERT
 * DocSpace Community Edition (self-hosted, kostenlos) hat keinen Branding-Tab.
 * Beleg: ONLYOFFICE-Changelog Version 3.0.0 (30.07.2024), wörtlich:
 * "There is no the Branding tab in the free Community version." Bis
 * einschließlich Version 3.7 nicht zurückgenommen. Branding läuft deshalb
 * ausschließlich über diese CSS-Datei, injiziert per nginx sub_filter
 * (siehe nginx/conf.d/prowerb-branding.conf) VOR </head>, damit sie nach
 * allen DocSpace-eigenen Stylesheets in der Kaskade lädt.
 *
 * WIE DIESE DATEI AUFGEBAUT IST (zwei Ebenen, absichtlich getrennt)
 *
 * EBENE A — CSS-Custom-Properties (hohe Trefferwahrscheinlichkeit).
 * DocSpace selbst ist intern bereits auf CSS-Variablen aufgebaut (Datei
 * packages/shared/styles/theme.scss im Repo ONLYOFFICE/DocSpace-client,
 * sowie components/theme-provider in ONLYOFFICE/docspace-ui-kit-react).
 * Diese Variablen sind KEINE Vermutung, sondern am 2026-08-11 direkt im
 * Quellcode verifiziert (Stand: @docspace/shared v3.7.1 / Branch "master",
 * deckungsgleich mit "bis Version 3.7" aus der Ausgangslage). Zentrale Funde:
 *   - `* { font-family: var(--font-family); }` (ThemeProvider.scss) — EIN
 *     Variablen-Override auf --font-family reicht für die komplette Schrift.
 *   - `html, body { background-color: var(--background-color);
 *     color: var(--text-color); }`
 *   - Akzent-/Button-Farben laufen über --color-scheme-main-accent,
 *     --color-scheme-text-accent, --color-scheme-main-buttons,
 *     --color-scheme-text-buttons (werden von React per
 *     `element.style.setProperty(...)` INLINE gesetzt — deshalb hier
 *     zwingend mit !important überschreiben, sonst gewinnt der Inline-Style).
 *   - Die Login-Seite hat einen eigenen, sehr granularen Satz an
 *     --login-*-Variablen (siehe Abschnitt 4).
 * Diese Ebene ist robust gegenüber Layout-Refactorings, weil sie nicht an
 * generierte Klassennamen gebunden ist, sondern an offiziell benannte
 * Theme-Tokens.
 *
 * EBENE B — generische Selektoren (Fallback, geringere Trefferwahrschein-
 * lichkeit). Elementtypen, ARIA-Rollen und Attributselektoren als zweite
 * Verteidigungslinie für alles, was NICHT über eine Custom-Property läuft
 * (z. B. Komponenten, die Farben fest in generiertem styled-components-CSS
 * verdrahtet haben statt über var(...) zu lesen). Explizit NICHT verwendet:
 * generierte Hash-Klassen (z. B. sc-a1b2c3 o. Ä.) — die ändern sich bei
 * praktisch jedem Build und sind hier absichtlich vermieden.
 *
 * NACH JEDEM DOCSPACE-UPDATE ZU PRÜFEN (siehe auch docs/branding.md):
 *   1. Existieren --color-scheme-*, --accent-*, --login-*, --font-family,
 *      --background-color, --text-color, --link-color noch unter denselben
 *      Namen? (DevTools: Elemente-Panel, :root bzw. <body> anschauen, oder
 *      Suche im ausgelieferten CSS-Bundle nach "--login-title-color" o. Ä.)
 *   2. Rendert die Login-Seite weiterhin zwei Logo-Bilder mit den IDs
 *      #logo-image-light / #logo-image-dark? (Abschnitt 5)
 *   3. Trägt das Kopfzeilen-Logo weiterhin die Klassen .header-logo-wrapper /
 *      .header-logo-icon? (Abschnitt 6)
 *   4. Trägt das eingeklappte Menü weiterhin .burger-logo / .logo-icon_svg?
 *      (Abschnitt 6)
 *   5. Visueller Abgleich Kontrast nach jedem Update (Abschnitt 2 protokolliert
 *      die berechneten Werte — bei Farbwechsel neu berechnen).
 *
 * ============================================================================
 */

/* ============================================================================
 * 1) SCHRIFTEN — lokal gehostet, keine Google-Fonts-Requests zur Laufzeit
 * ============================================================================
 * Herkunft, Lizenz (SIL OFL 1.1) und Prüfprotokoll: branding/fonts/README.md
 * Pfade sind absolut unter /prowerb-branding/fonts/ — ausgeliefert von
 * nginx/conf.d/prowerb-branding.conf. font-display: swap verhindert
 * unsichtbaren Text (FOIT) während des Ladens.
 */

@font-face {
  font-family: "Krona One";
  src: url("/prowerb-branding/fonts/KronaOne-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Montserrat";
  src: url("/prowerb-branding/fonts/Montserrat-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Montserrat";
  src: url("/prowerb-branding/fonts/Montserrat-Medium.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Montserrat";
  src: url("/prowerb-branding/fonts/Montserrat-SemiBold.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Montserrat";
  src: url("/prowerb-branding/fonts/Montserrat-Bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* ============================================================================
 * 2) MARKENFARBEN & TOKENS — Single Source of Truth
 * ============================================================================
 * Verbindliche Markenwerte, unverändert aus der Markenvorgabe übernommen:
 *   PROWERB-Rot        #EE171D  — Signalfarbe: Akzente, aktive Zustände,
 *                                  Buttons. Rot ist Signal, NICHT Fläche —
 *                                  deshalb taucht --prowerb-red in dieser
 *                                  Datei niemals als großflächige
 *                                  background-color wieder (nur Buttons,
 *                                  Linien, Text, Fokusringe, kleine Badges).
 *   PROWERB-Ink         #211F1E  — Träger, Text, dunkle Flächen
 *   Markenhintergrund    #F7F6F5  — helle Flächen
 *
 * KONTRASTPRÜFUNG (WCAG 2.1, relative Luminanz nach Spezifikation,
 * berechnet 2026-08-11 — bei Farbänderung neu berechnen):
 *
 *   Weiß (#FFFFFF) auf PROWERB-Rot (#EE171D):        4,40 : 1
 *     -> besteht AA für großen Text (>=18pt bzw. >=14pt fett, Soll 3:1)
 *        und für UI-Komponenten/Fokusringe (Soll 3:1).
 *     -> besteht NICHT AA für normalen Fließtext (Soll 4,5:1).
 *     => Konsequenz in dieser Datei: weißer Text auf Rot wird NUR für
 *        Buttons/Badges mit Montserrat SemiBold/Bold ab 14px eingesetzt
 *        (siehe Abschnitt 3, --prowerb-on-red-min-size als Kommentar-
 *        Hinweis), nicht für kleinen Fließtext.
 *
 *   Weiß (#FFFFFF) auf PROWERB-Ink (#211F1E):         16,41 : 1  -> AA/AAA ok
 *   PROWERB-Ink (#211F1E) auf Markenhintergrund
 *     (#F7F6F5):                                      15,21 : 1  -> AA/AAA ok
 *   PROWERB-Ink (#211F1E) auf Weiß (#FFFFFF):          16,41 : 1  -> AA/AAA ok
 *
 *   PROWERB-Rot (#EE171D) als TEXT/Link auf
 *     Markenhintergrund (#F7F6F5):                     4,07 : 1
 *   PROWERB-Rot (#EE171D) als TEXT/Link auf Weiß:       4,40 : 1
 *     -> beide UNTER 4,5:1 (AA, normaler Text), aber UEBER 3:1 (AA, großer
 *        Text / UI-Komponenten). Mitigation in Abschnitt 7: Links werden
 *        zusätzlich unterstrichen (nicht nur über Farbe unterschieden,
 *        WCAG SC 1.4.1) und primär für Aktionen/Navigation eingesetzt,
 *        nicht für dichten Fließtext. Bei sehr kleinem Fließtext (<14px)
 *        bewusst KEIN reiner Rot-Text, sondern Ink mit rotem Unterstrich-
 *        Akzent — siehe Abschnitt 7.
 *
 *   PROWERB-Rot (#EE171D) auf PROWERB-Ink (#211F1E):    3,73 : 1
 *     -> besteht AA für UI-Komponenten/großen Text (3:1), NICHT für
 *        normalen Fließtext. Wird nur für Icons/Fokus-Outlines auf dunklen
 *        Flächen verwendet, nicht für Fließtext auf Ink-Hintergrund.
 *
 * Nachrechenbar mit: relative Luminanz L = 0.2126*R+0.7152*G+0.0722*B
 * (R/G/B linearisiert), Kontrast = (L1+0.05)/(L2+0.05), L1 >= L2.
 */

:root {
  /* Markenfarben */
  --prowerb-red: #ee171d;
  --prowerb-red-rgb: 238, 23, 29;
  --prowerb-ink: #211f1e;
  --prowerb-ink-rgb: 33, 31, 30;
  --prowerb-bg: #f7f6f5;
  --prowerb-white: #ffffff;

  /* Abgeleitete Zustände (Hover/Active um 8–12% Richtung Ink abgedunkelt,
     rechnerisch statt als weiteres, nicht abgestimmtes Markenrot geraten) */
  --prowerb-red-hover: #d21418;
  --prowerb-red-active: #b81216;

  /* Schrift-Stacks */
  --prowerb-font-heading: "Krona One", "Segoe UI", Arial, sans-serif;
  --prowerb-font-body: "Montserrat", "Segoe UI", Arial, sans-serif;

  /* Fokusring-Breite als Token, damit Abschnitt 8 (Fokuszustände) und
     etwaige Anpassungen an einer Stelle geändert werden können */
  --prowerb-focus-ring-width: 2px;
}

/* ============================================================================
 * 3) BASISTYPOGRAFIE — Ebene A: bekannte DocSpace-Variablen
 * ============================================================================
 * `* { font-family: var(--font-family); }` ist eine verifizierte,
 * universelle Regel in DocSpace selbst (ThemeProvider.scss). Ein Override
 * dieser EINEN Variable reicht, um die Fließtext-Schrift app-weit zu
 * tauschen. --font-family wird von React zusätzlich als Inline-Style auf
 * <body> gesetzt — deshalb !important.
 */
:root,
body {
  --font-family: var(--prowerb-font-body) !important;
  --background-color: var(--prowerb-bg) !important;
  --text-color: var(--prowerb-ink) !important;
}

/* Ebene B (Fallback): falls ein Teilbaum --font-family nicht erbt oder ein
   Fremd-Widget eigene Schriftregeln mitbringt. */
body,
input,
textarea,
select,
button {
  font-family: var(--prowerb-font-body);
}

/* Überschriften: Krona One. h1–h6 sind Ebene B (generische Elementtypen);
   [role="heading"] deckt Fälle ab, in denen DocSpace aus Barrierefreiheits-
   Gründen <div role="heading" aria-level="…"> statt echter h-Tags nutzt
   (in modernen React-UI-Kits verbreitet). !important nötig, weil DocSpace-
   eigene styled-components-Regeln für Headings über eine generierte Klasse
   (Spezifität 0,1,0) eine reine Typselektor-Regel sonst schlagen. */
h1,
h2,
h3,
h4,
h5,
h6,
[role="heading"] {
  font-family: var(--prowerb-font-heading) !important;
  /* Krona One ist eine reine Display-/Versalschrift ohne echte Kursive und
     mit sehr eigenem Rhythmus — Letter-Spacing leicht öffnen, das ist bei
     dieser Schriftfamilie in Headline-Größe gängige Praxis und verbessert
     die Lesbarkeit, ändert aber keine Markenfarbe/-form. */
  letter-spacing: 0.01em;
}

/* ============================================================================
 * 4) LOGIN-SEITE — Ebene A: verifizierte --login-*-Variablen
 * ============================================================================
 * Erster Eindruck für Banken — deshalb eigener, ausführlicher Abschnitt.
 * Alle Variablennamen sind aus packages/shared/styles/theme.scss (DocSpace-
 * client) verifiziert, Stand 2026-08-11. Sie existieren je einmal im
 * `.light`- und einmal im `.dark`-Scope; wir setzen sie hier scope-
 * unabhängig auf :root, was beide überschreibt (spätere, gleich- oder
 * höherspezifische Regel gewinnt).
 */
:root,
body.light,
body.dark,
html[data-theme="light"],
html[data-theme="dark"] {
  --login-header-color: var(--prowerb-ink) !important;
  --login-title-color: var(--prowerb-ink) !important;
  --login-text-color: var(--prowerb-ink) !important;
  --login-logo-color: var(--prowerb-ink) !important;
  --login-or-text-color: var(--prowerb-ink) !important;
  --login-or-line-color: rgba(var(--prowerb-ink-rgb), 0.18) !important;
  --login-help-btn: var(--prowerb-ink) !important;
  --login-register-background-color: var(--prowerb-bg) !important;
  --login-simple-nav-background-color: var(--prowerb-bg) !important;
  --login-invite-text-color: var(--prowerb-ink) !important;
  --login-invite-border-color: rgba(var(--prowerb-ink-rgb), 0.18) !important;
  --login-back-title-color: var(--prowerb-ink) !important;
  /* --login-register-text-color verweist in DocSpace bereits direkt auf
     var(--accent-main) — wird also automatisch rot, sobald Abschnitt 5
     --accent-main überschreibt. Keine separate Zeile nötig. */

  /* Bewusst NICHT überschrieben: --login-error-color, --login-captcha-
     error-color, --login-captcha-error-border, --login-wizard-generate-
     password-color. Fehler-/Validierungsfarben sollen sich klar von der
     Markenfarbe unterscheiden, damit Nutzer:innen "Fehler" nicht mit
     "Markenakzent" verwechseln — bewusste Entscheidung, kein Versehen. */
}

/* Ebene B: Login-Hintergrund und -Karte generisch absichern, falls die
   Login-App eine <main>/<body>-Fläche nutzt, die nicht über
   --background-color läuft. Attributselektor auf autocomplete/type deckt
   die Login-Formularfelder ab, unabhängig von Klassennamen. */
body {
  background-color: var(--prowerb-bg);
}

input[type="email"],
input[type="password"],
input[type="text"][name*="login" i],
input[autocomplete="username"],
input[autocomplete="current-password"],
input[autocomplete="new-password"] {
  font-family: var(--prowerb-font-body);
  color: var(--prowerb-ink);
}

/* ============================================================================
 * 5) AKZENT- & BUTTON-FARBEN — Ebene A: verifizierte Theme-Tokens
 * ============================================================================
 * DocSpace berechnet Akzentfarben aus vier Basis-Variablen, die React PER
 * INLINE-STYLE auf :root UND <body> setzt (components/theme-provider,
 * docspace-ui-kit-react) — deshalb zwingend !important, sonst verliert
 * jede externe Stylesheet-Regel gegen den Inline-Style:
 *   --color-scheme-main-accent   Akzentfarbe (Links, aktive Icons, Ränder)
 *   --color-scheme-text-accent   Textfarbe für akzentuierten Text
 *   --color-scheme-main-buttons  Hintergrund primärer Buttons
 *   --color-scheme-text-buttons  Textfarbe auf primären Buttons
 * Daraus leitet DocSpace intern (theme.scss) --accent-main, --accent-text,
 * --accent-button, --accent-button-text ab — die wir zusätzlich direkt
 * überschreiben, für den Fall, dass die Inline-Properties (z. B. weil kein
 * Custom-Color-Theme aktiv ist) gar nicht erst gesetzt werden und DocSpace
 * sonst auf seinen Standard-Blauton zurückfiele.
 *
 * WICHTIG — Rot ist Signal, nicht Fläche: Diese Variablen steuern laut
 * DocSpace-Quellcode ausschließlich Buttons, Links, Fokus-/Aktiv-Zustände
 * und kleinteilige UI-Elemente (Filter-Tags, Floating-Button, Avatar-Hover-
 * Overlay) — NICHT großflächige Hintergründe. Es wird hier bewusst KEINE
 * Regel ergänzt, die --prowerb-red als --background-color o. Ä. einsetzt.
 */
:root,
body {
  --color-scheme-main-accent: var(--prowerb-red) !important;
  --color-scheme-text-accent: var(--prowerb-red) !important;
  --color-scheme-main-buttons: var(--prowerb-red) !important;
  --color-scheme-text-buttons: var(--prowerb-white) !important;

  --accent-main: var(--prowerb-red) !important;
  --accent-text: var(--prowerb-red) !important;
  --accent-button: var(--prowerb-red) !important;
  --accent-button-text: var(--prowerb-white) !important;

  --link-color: var(--prowerb-red) !important;

  --button-color-base: var(--prowerb-ink) !important;
  --button-color-base-hover: var(--prowerb-ink) !important;
  --button-color-base-active: var(--prowerb-ink) !important;
  --button-background-base: var(--prowerb-white) !important;
  --button-background-base-hover: var(--prowerb-bg) !important;

  --input-border-focus: var(--prowerb-red) !important;
}

/* Ebene B: generische Buttons/Links/ARIA-Rollen als zweite Verteidigungs-
 * linie, falls einzelne Komponenten Farben fest verdrahtet statt über
 * var(--accent-*) zu lesen. Bewusst NICHT als background auf großflächige
 * Container (div, section, main) angewendet — nur auf tatsächlich
 * interaktive/kleinteilige Elemente, damit Rot Signal bleibt.
 *
 * Hinweis Kontrast: weißer Text auf --prowerb-red erreicht 4,40:1 (siehe
 * Abschnitt 2) — ausreichend für Buttons mit Montserrat SemiBold/Bold ab
 * 14px, wie sie DocSpace für Button-Beschriftungen durchgehend verwendet.
 * Bei zusätzlichen, sehr kleinen (<14px) roten Flächen mit weißem Text
 * diesen Kontrast erneut prüfen. */
button[type="submit"],
button[class*="primary" i],
[role="button"][class*="primary" i],
a[class*="button" i][class*="primary" i] {
  background-color: var(--prowerb-red);
  color: var(--prowerb-white);
  border-color: var(--prowerb-red);
  font-family: var(--prowerb-font-body);
  font-weight: 600;
}

button[type="submit"]:hover,
button[class*="primary" i]:hover,
[role="button"][class*="primary" i]:hover {
  background-color: var(--prowerb-red-hover);
  border-color: var(--prowerb-red-hover);
}

button[type="submit"]:active,
button[class*="primary" i]:active,
[role="button"][class*="primary" i]:active {
  background-color: var(--prowerb-red-active);
  border-color: var(--prowerb-red-active);
}

/* ============================================================================
 * 6) LOGOS — Ebene A: verifizierte IDs/Klassennamen aus dem DocSpace-Quellcode
 * ============================================================================
 * Diese Selektoren sind KEIN Rätselraten, sondern 1:1 aus dem Quellcode
 * übernommen (Stand 2026-08-11, @docspace/shared 3.7.1 / master):
 *   - Login-Seite (packages/login/src/components/Logo/index.tsx):
 *     <img id="logo-image-light" class="logo-wrapper logo-wrapper--light">
 *     <img id="logo-image-dark"  class="logo-wrapper logo-wrapper--dark">
 *     Beide Bilder werden IMMER beide gerendert; welches sichtbar ist,
 *     steuert DocSpace selbst über Theme-CSS. Wir tauschen bei BEIDEN das
 *     Bild aus (per nginx-Interception auf /logo.ashx, siehe
 *     nginx/conf.d/prowerb-branding.conf) und sichern hier zusätzlich per
 *     CSS die Zielgröße ab, damit unser Logo (Seitenverhältnis ≈5,5:1,
 *     branding/assets/README.md) nicht in DocSpace' eigenes 810×92-Slot-
 *     Seitenverhältnis (≈8,8:1) gezwungen wird.
 *   - Kopfzeile, eingeloggt (packages/client/.../NavMenu/sub-components/
 *     header.js): <a class="header-logo-wrapper"><img class="header-logo-icon">
 *   - Eingeklapptes Menü (docspace-ui-kit-react, components/article/
 *     sub-components/Header.tsx): <img class="burger-logo"> bzw.
 *     <img class="logo-icon_svg">
 */
#logo-image-light,
#logo-image-dark,
.logo-wrapper {
  height: 44px;
  width: auto;
  max-width: min(386px, 60vw);
  object-fit: contain;
}

.header-logo-icon,
.logo-icon_svg,
.burger-logo {
  height: 32px;
  width: auto;
  max-width: 100%;
  object-fit: contain;
}

/* Mobile: DocSpace verwendet für die Login-Seite selbst 24px Logo-Höhe auf
   kleinen Screens (siehe Logo/index.tsx: logoHeight = isMobile ? 24 : 44).
   Wir übernehmen dieselbe Schwelle, damit unser Logo im selben Rhythmus
   skaliert. 24px entspricht exakt der in der Markenvorgabe genannten
   Mindestgröße — kleiner wird bewusst nicht skaliert. */
@media (max-width: 600px) {
  #logo-image-light,
  #logo-image-dark,
  .logo-wrapper {
    height: 24px;
    max-width: min(211px, 70vw);
  }

  .header-logo-icon,
  .logo-icon_svg,
  .burger-logo {
    height: 24px;
  }
}

/* ============================================================================
 * 7) LINKS — Kontrast-Mitigation (siehe Berechnung in Abschnitt 2)
 * ============================================================================
 * PROWERB-Rot als Textfarbe liegt bei 4,07–4,40:1 auf hellem Grund — unter
 * der 4,5:1-Schwelle für normalen Fließtext, aber über 3:1 für UI-
 * Komponenten/große Schrift. WCAG SC 1.4.1 verlangt zusätzlich, Links nicht
 * NUR über Farbe zu kennzeichnen — deshalb hier durchgehend Unterstrich
 * statt reiner Farbmarkierung. Für generischen <a>-Fließtext (potenziell
 * <14px) zusätzlich als Sicherheitsnetz keine reine Rot-auf-Hell-Fläche
 * ohne Unterstreichung.
 */
a {
  color: var(--prowerb-red);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
  font-family: var(--prowerb-font-body);
}

a:hover {
  color: var(--prowerb-red-hover);
}

a:active {
  color: var(--prowerb-red-active);
}

/* Navigationslinks/Menüpunkte, die DocSpace typischerweise ohne
   Unterstreichung als eigenständige UI-Elemente stylt (nav, [role="menuitem"],
   [role="tab"]) - hier zählt der 3:1-UI-Komponenten-Massstab, Unterstrich
   wäre optisch falsch. Bewusst getrennt von normalem Fliesstext-Link oben. */
nav a,
[role="menuitem"],
[role="tab"],
[role="navigation"] a {
  text-decoration: none;
}

nav a[aria-current],
[role="tab"][aria-selected="true"],
[aria-current="page"] {
  color: var(--prowerb-red);
  font-weight: 600;
}

/* ============================================================================
 * 8) FOKUSZUSTÄNDE — Barrierefreiheit, Ebene B (generisch, elementtypbasiert)
 * ============================================================================
 * :focus-visible statt :focus, damit der Ring nur bei Tastaturnavigation
 * erscheint (kein Ring nach Maus-Klick) — Standardverhalten moderner
 * Browser und barrierefreiheitsfreundlich. 2px Kontur in PROWERB-Rot auf
 * praktisch jedem Hintergrund dieser Datei (Weiß/Hintergrund/Ink) erfüllt
 * den 3:1-Massstab für Non-Text-Contrast (WCAG 2.1 SC 1.4.11): Rot auf Ink
 * 3,73:1, Rot auf Weiß/Hintergrund 4,07–4,40:1 (siehe Abschnitt 2).
 */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[role="button"]:focus-visible,
[tabindex]:focus-visible {
  outline: var(--prowerb-focus-ring-width) solid var(--prowerb-red);
  outline-offset: 2px;
}

/* ============================================================================
 * 9) RESPONSIVE / MOBILGERÄTE — allgemeine Absicherung
 * ============================================================================
 * Keine der obigen Regeln verwendet feste Pixelbreiten für Container-
 * Elemente (nur Logo-Höhen, s. Abschnitt 6, mit max-width in vw/min()
 * kombiniert). Diese Zeilen fangen zusätzlich lange, unbrechbare Inhalte
 * (z. B. E-Mail-Adressen in Login-Feldern) auf schmalen Viewports ab.
 */
* {
  box-sizing: border-box;
}

body,
input,
textarea {
  max-width: 100vw;
  overflow-wrap: break-word;
}

/* ============================================================================
 * 10) DUNKLES THEME — Kontrast-Gegenprobe
 * ============================================================================
 * DocSpace unterscheidet Light/Dark über body.light / body.dark bzw.
 * html[data-theme="light|dark"] (theme-provider/index.tsx). Alle Farb-
 * Overrides oben sind Theme-unabhängig auf :root/body gesetzt und gelten
 * daher in BEIDEN Modi identisch. Das ist beabsichtigt: PROWERB-Rot auf
 * PROWERB-Ink (dunkles Theme, Buttons/Akzente) liegt bei 3,73:1 (Abschnitt
 * 2) — ausreichend für Buttons/Fokusringe, nicht für Fließtext. Für
 * Fließtext im dunklen Theme bleibt --text-color bewusst NICHT auf Rot
 * gesetzt (nur --prowerb-white via DocSpace' eigenem --text-color: white
 * im .dark-Scope, den wir hier nicht anfassen).
 */

/* ===========================================================================
   NACHTRAEGLICHE KORREKTUREN
   Empirisch an der laufenden Instanz gemessen (DocSpace 3.7.2.1), nicht
   geraten. Stehen bewusst am Dateiende, damit sie in der Kaskade gewinnen.
   =========================================================================== */

/* 1) Logo auf Login- und Wizard-Seite -------------------------------------
   Gemessen: .logo-wrapper ist 21,9 x 44 px bei object-fit: contain. DocSpace
   bemisst diesen Slot fuer ein kompaktes, nahezu quadratisches Zeichen. Das
   PROWERB-Logo ist horizontal (800 x 146, Verhaeltnis rund 5,5:1) und
   schrumpft darin auf etwa 22 x 4 px -- praktisch unsichtbar und deutlich
   unter der Mindestgroesse von 24 px aus den Markenregeln.
   Die Klasse .logo-wrapper traegt keinen Build-Hash und ist damit
   updatestabil.

   Zweite Ursache, empirisch gefunden: Die gelieferten SVG trugen nur ein
   viewBox, aber keine width/height am Wurzelelement. Der Browser vergibt dann
   eine Ersatz-Eigengroesse (hier 300 x 55) und object-fit skaliert die
   Zeichnung nicht auf die Box hoch -- das Logo blieb ein Splitter in einer
   korrekt bemessenen Box. Die Assets tragen die Masse jetzt explizit; an der
   Zeichnung selbst wurde nichts geaendert. */
.logo-wrapper {
	width: 240px !important;
	max-width: 100% !important;
	height: 44px !important;
	object-fit: contain !important;
	object-position: center !important;
}

/* 2) Ueberschriften in Krona One ------------------------------------------
   Gemessen: DocSpace rendert Ueberschriften als <p> mit CSS-Modules-Klassen,
   nicht als h1/h2. Elementselektoren allein greifen deshalb nie -- vor dieser
   Korrektur war Krona One auf der gesamten Seite an null Stellen aktiv.
   Der Hash am Ende der Klassennamen aendert sich bei jedem DocSpace-Build,
   der Praefix davor nicht. Darum Teilstring-Selektoren statt exakter Klassen.
   Krona One gibt es nur in Schnitt 400; ohne die Gewichtsangabe wuerde der
   Browser einen unsauberen Fettschnitt simulieren.

   Bewusst NUR auf echte Headlines. Krona One baut deutlich breiter als
   Montserrat: auf der Formular-Zwischenueberschrift lief der Text dadurch auf
   drei Zeilen und drueckte das Layout auseinander. Zwischenueberschriften und
   Labels bleiben deshalb in Montserrat. Die Marke sieht Krona One fuer
   Headlines vor, nicht fuer Beschriftungen. */
h1, h2,
.greeting-title,
[class*="greeting-title"] {
	font-family: "Krona One", "Montserrat", "Segoe UI", Arial, sans-serif !important;
	font-weight: 400 !important;
	letter-spacing: 0;
}

/* 3) Umbrechende Beschriftungen -------------------------------------------
   Gemessen: Montserrat baut breiter als die Originalschrift. DocSpace vergibt
   der Beschriftungsspalte eine feste Breite von 59 px; darin brechen
   "Language" und "Timezone" auf zwei Zeilen um, "Domain" nicht. Das war eine
   Regression durch den Schriftwechsel, kein Fehler von DocSpace.
   Loesung: Spalte an den Inhalt anpassen statt Schrift zu verkleinern. */
[class*="infoWrapper"] {
	grid-template-columns: auto minmax(0, 1fr) !important;
	column-gap: 16px;
	align-items: center;
}
