/* Die Gestaltung des Editors — statisch, nicht zur Laufzeit eingefuegt
 *
 * PO-ENTSCHEIDUNG E-14 vom 17.08.2026: die Gestaltung des Editors einmal in
 * eine .css-Datei ziehen und die Einfuegung zur Laufzeit unterbinden. Kein
 * Nonce. Damit bleibt die Content-Security-Policy VOLLSTAENDIG in Caddy —
 * keine Sicherheitsgrenze wandert in den Code.
 *
 * WOHER DIESE ZEILEN KOMMEN: sie sind woertlich der Block, den Tiptap sonst
 * beim Start seines Editors als <style data-tiptap-style> in den Kopf der
 * Seite haengt. Nichts daran ist von mir; sie stehen hier nur an einer
 * anderen Stelle.
 *
 * WIE DIE EINFUEGUNG UNTERBUNDEN IST: nicht durch einen Eingriff in die
 * Fremdbibliothek, sondern durch ihren eigenen Schalter — `injectCSS: false`
 * in `editor/schreibwerkstatt.jsx`. Das ist der wichtige Unterschied zur
 * urspruenglichen Planung: es gibt nichts nachzuruesten und nichts, das ein
 * Update ueberschreiben koennte.
 *
 * BEI EINEM TIPTAP-UPDATE: diese Datei gegen den neuen Block abgleichen.
 * `tests/editor-stil-statisch.test.mjs` vergleicht beide und schlaegt an,
 * wenn sie auseinanderlaufen — man merkt es also, ohne daran zu denken.
 */

.ProseMirror {
  position: relative;
}

.ProseMirror {
  word-wrap: break-word;
  white-space: pre-wrap;
  white-space: break-spaces;
  -webkit-font-variant-ligatures: none;
  font-variant-ligatures: none;
  font-feature-settings: "liga" 0; /* the above doesn't seem to work in Edge */
}

.ProseMirror [contenteditable="false"] {
  white-space: normal;
}

.ProseMirror [contenteditable="false"] [contenteditable="true"] {
  white-space: pre-wrap;
}

.ProseMirror pre {
  white-space: pre-wrap;
}

img.ProseMirror-separator {
  display: inline !important;
  border: none !important;
  margin: 0 !important;
  width: 0 !important;
  height: 0 !important;
}

.ProseMirror-gapcursor {
  display: none;
  pointer-events: none;
  position: absolute;
  margin: 0;
}

.ProseMirror-gapcursor:after {
  content: "";
  display: block;
  position: absolute;
  top: -2px;
  width: 20px;
  border-top: 1px solid black;
  animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite;
}

@keyframes ProseMirror-cursor-blink {
  to {
    visibility: hidden;
  }
}

.ProseMirror-hideselection *::selection {
  background: transparent;
}

.ProseMirror-hideselection *::-moz-selection {
  background: transparent;
}

.ProseMirror-hideselection * {
  caret-color: transparent;
}

.ProseMirror-focused .ProseMirror-gapcursor {
  display: block;
}
