/* ============================================================================
   fs139 — DAS BENACHRICHTIGUNGS-FENSTER LIEGT IMMER GANZ OBEN
   ----------------------------------------------------------------------------
   Problem (21.08.2026, Screenshot "Kampagne erstellen"): Das aufgeklappte Panel
   verschwand hinter dem Seiteninhalt. Ursache war NICHT das Panel selbst,
   sondern sein z-index: die Basis steht auf 100 (talent.css), portal-v87-fixes
   hebt sie auf 200 — im Portal gibt es aber Ebenen bis 100050 (Modale,
   Editor-Overlays, Header). Nur die MOBIL-Dateien hoben das Panel auf 4100,
   auf dem Desktop blieb es bei 200.

   Diese Datei wird in BEIDEN Portalen als LETZTES Stylesheet geladen und
   gewinnt damit gegen alle vorherigen !important-Regeln gleicher Spezifitaet.
   Der Wert liegt bewusst am oberen Ende des 32-Bit-Bereichs, damit auch
   kuenftige Overlays nicht versehentlich darueber landen.

   Die zweite Haelfte des Fixes steckt im JS (ttHebeNotifNachOben): ein z-index
   nuetzt nichts, wenn ein Vorfahre einen eigenen Stacking-Context aufmacht
   (transform / filter / backdrop-filter / will-change). Deshalb wird das Panel
   beim Oeffnen zusaetzlich direkt an <body> gehaengt.
   ========================================================================= */

/* Spezifitaet bewusst hoch: portal-mobile-admin.css nutzt
   "html body #admin-notif-panel.tt-notif-panel" (0,2,2) und wuerde eine
   schlankere Regel hier schlagen, obwohl diese Datei spaeter laedt.
   Die doppelte Klasse hebt uns sicher darueber. */
html body .tt-notif-panel.tt-notif-panel.tt-notif-panel,
html body #tt-notif-panel.tt-notif-panel.tt-notif-panel,
html body #admin-notif-panel.tt-notif-panel.tt-notif-panel {
  z-index: 2147483000 !important;
}

html body .tt-notif-backdrop.tt-notif-backdrop.tt-notif-backdrop,
html body #tt-notif-backdrop.tt-notif-backdrop.tt-notif-backdrop,
html body #admin-notif-backdrop.tt-notif-backdrop.tt-notif-backdrop {
  z-index: 2147482999 !important;
}

/* Sicherheitsnetz: liegt das Panel (noch) in einem Container mit eigener
   Schichtung, darf es dort nicht abgeschnitten werden. */
html body .tt-notif-panel { isolation: auto !important; }

/* ----------------------------------------------------------------------------
   fs139b — DIE PROFIL-MENÜS EBENSO
   Der Header traegt backdrop-filter: blur(10px) (ui.css:1621, portal-facelift
   .css:980). backdrop-filter oeffnet einen eigenen Stacking-Context — jedes
   darin liegende position:fixed/absolute-Menue ist gefangen und kann nicht
   ueber spaeter gemalten Inhalt steigen, egal wie hoch sein z-index steht.
   Das Admin-Menue wird darum per JS an <body> gehaengt (portal-v87-patches.js);
   dadurch greift der alte Nachfahren-Selektor nicht mehr, die Sichtbarkeit
   haengt jetzt an einer Klasse AM MENUE.
   ------------------------------------------------------------------------- */

html body > .tt-admin-profile-menu.is-open,
html body .tt-admin-profile.is-open .tt-admin-profile-menu {
  display: block !important;
}

/* Talent: die konkurrierenden Regeln stehen als
   "html body #dashboard-view .talent-profile-menu" (portal-v93-professional.css:2355/2737)
   — eine ID schlaegt jede Zahl von Klassen, die Ladereihenfolge hilft da nicht.
   Deshalb hier dieselbe ID mitfuehren.
   Zusaetzlich: .talent-header ist position:fixed/sticky MIT z-index (100) und damit
   selbst ein Stacking-Context. Alles darin ist auf diese 100 gedeckelt, egal welchen
   z-index das Dropdown bekommt. Solange das Menue offen ist, heben wir darum den
   HEADER an — dann steigt das darin verankerte Dropdown mit. */
html body #dashboard-view .talent-header:has(.talent-profile-menu[open]),
html body #dashboard-view.talent-shell .talent-header:has(.talent-profile-menu[open]) {
  z-index: 2147482900 !important;
  overflow: visible !important;
}
html body #dashboard-view .talent-profile-menu[open] {
  z-index: 2147482901 !important;
  overflow: visible !important;
}
html body #dashboard-view .talent-profile-dropdown,
html body #dashboard-view .talent-profile-menu[open] .talent-profile-dropdown {
  z-index: 2147482902 !important;
}

html body .tt-admin-profile-menu {
  z-index: 2147482900 !important;
}



/* ================================================================================
   fs155 — HILFE AN DEN STEUERFELDERN + EINMALIGER HINWEIS (Talent-Portal).
   Bewusst hier, weil diese Datei ZULETZT geladen wird: Der Tooltip haengt am <body>
   und muss ueber dem Profil-Fenster liegen, ohne von globalen Regeln ueberschrieben
   zu werden. Knoepfe ohne Schatten und ohne Rundung — Hausvorgabe.
   ================================================================================ */
button.tt-hilfe {
  display: inline-flex; align-items: center; justify-content: center;
  width: 15px; height: 15px; margin-left: 6px; padding: 0;
  border: 1px solid #94a3b8; background: transparent; color: #64748b;
  font: 600 10px/1 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  border-radius: 50%;            /* Ausnahme: als Symbol rund, nicht als Schaltflaeche */
  cursor: help; vertical-align: middle; box-shadow: none !important;
  flex: 0 0 auto;
}
/* fs160b — PLATZIERUNG DES FRAGEZEICHENS.
   Ausgangslage: Die Beschriftung im Profil ist ein Raster (display:grid, siehe
   portal-facelift.css:6248). Jedes Kind bekommt automatisch eine eigene Rasterzeile,
   der Knopf landete also in Zeile 2 und schob das Eingabefeld in Zeile 3 — die beiden
   Felder standen 18px tiefer als ihre Nachbarn.

   Was NICHT funktioniert hat (alles im laufenden Portal nachgemessen):
   - Ein umschliessendes <span>: zerstoert die Typografie, sie haengt an
     `label > span:first-child`.
   - Text und Knopf per grid-row/grid-column in dieselbe Zeile zwingen: bringt den
     Versatz von 18px auf 2px, aber nicht auf 0. Die Zeile blieb hartnaeckig 19px hoch
     statt 17,34px — und zwar auch dann noch, wenn man dem Knopf jeden Abstand nimmt,
     ihn auf 12px verkleinert und die Beschriftung am Dehnen hindert. Weder Text noch
     Knopf bestimmten die Hoehe; die Ursache liegt tiefer im Regelwerk und war es nicht
     wert, weiter aufgedroeselt zu werden.

   Was funktioniert: den Knopf aus dem Fluss nehmen. Ein absolut positioniertes Element
   ist kein Rasterkind mehr und kann die Zeilenhoehe gar nicht beeinflussen. Gemessen:
   Zeile wieder 17,34px, Versatz exakt 0 bei beiden Feldern. Der Knopf sitzt buendig am
   rechten Ende der Beschriftungszeile. */
html body #talent-profile-modal .tt-profile-grid label:has(> button.tt-hilfe) {
  position: relative !important;
}
html body #talent-profile-modal .tt-profile-grid label > button.tt-hilfe {
  position: absolute !important;
  top: 0 !important; right: 2px !important; left: auto !important;
  width: 15px !important; height: 15px !important;
  margin: 0 !important;
}

button.tt-hilfe:hover, button.tt-hilfe:focus-visible { border-color: #0f172a; color: #0f172a; outline: none; }

.tt-hilfe-tipp {
  position: fixed; z-index: 2147483600; max-width: 320px;
  background: #0f172a; color: #f8fafc; padding: 10px 12px;
  font: 400 12px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  box-shadow: 0 10px 30px rgba(15, 23, 42, .28); pointer-events: none;
}
.tt-hilfe-tipp strong { display: block; margin-bottom: 4px; font-size: 12.5px; }
.tt-hilfe-tipp .tt-hilfe-wo { display: block; margin-top: 7px; color: #a5b4fc; }

/* Einmaliger Hinweis nach dem Login */
.tt-steuer-hinweis {
  position: fixed; inset: 0; z-index: 2147483500;
  display: flex; align-items: center; justify-content: center; padding: 20px;
  background: rgba(15, 23, 42, .55);
  opacity: 0; transition: opacity .22s ease;
}
.tt-steuer-hinweis.tt-steuer-offen { opacity: 1; }
.tt-steuer-karte {
  background: #fff; max-width: 520px; width: 100%; padding: 26px 28px 22px;
  box-shadow: 0 24px 60px rgba(0, 0, 0, .25);
  transform: translateY(8px); transition: transform .22s ease;
  max-height: 88vh; overflow-y: auto;
}
.tt-steuer-hinweis.tt-steuer-offen .tt-steuer-karte { transform: none; }
.tt-steuer-karte h2 { margin: 0 0 8px; font-size: 19px; font-weight: 700; color: #0f172a; }
.tt-steuer-intro { margin: 0 0 16px; font-size: 14px; line-height: 1.55; color: #475569; }
.tt-steuer-punkt { border-left: 3px solid #111827; padding: 9px 0 9px 12px; margin-bottom: 12px; }
.tt-steuer-punkt strong { display: block; font-size: 13.5px; color: #0f172a; margin-bottom: 3px; }
.tt-steuer-punkt .tt-steuer-was { display: block; font-size: 13px; line-height: 1.5; color: #334155; }
.tt-steuer-punkt .tt-steuer-wo { display: block; font-size: 12.5px; line-height: 1.5; color: #64748b; margin-top: 5px; }
.tt-steuer-fuss { margin: 4px 0 18px; font-size: 12px; color: #94a3b8; }
.tt-steuer-aktionen { display: flex; gap: 10px; justify-content: flex-end; }
.tt-steuer-aktionen button {
  font: 600 13px/1 inherit; padding: 10px 16px; cursor: pointer;
  border-radius: 0 !important; box-shadow: none !important;
}
.tt-steuer-spaeter { border: 1px solid #cbd5e1; background: #fff; color: #475569; }
.tt-steuer-los { border: 1px solid #111827; background: #111827; color: #fff; }
@media (max-width: 560px) {
  .tt-steuer-karte { padding: 20px 18px 18px; }
  .tt-steuer-aktionen { flex-direction: column-reverse; }
  .tt-steuer-aktionen button { width: 100%; }
}
