Files
fs a101b0c3ec Stadionzeitung, Veranstaltungen, News-Artikel, Lightbox und Anzeigen-Verteilung
Stadionzeitung: Live-Seiten (Tabellen, Ergebnisse, Vorschau, Termine, News,
Kontakt, Historie, Sportheim, Partner, Momente, Impressum), automatisches Cover,
Swipe-Viewer mit Vollbildmodus und die Druckfassung als Falt-Heft. Anzeigen
kommen jetzt aus dem Bestand und werden gleichmäßig verteilt, nie mehr als zwei
hintereinander (vorher vier Blöcke à fünf). Die Doppelseiten-Regel rechnet das
Skript selbst, statt sie von Hand zu prüfen.

Veranstaltungen: Bereich /veranstaltungen mit Detailseite pro Fest, Lebenszyklus
über das Datum (Ankündigung vor dem Fest, Rückblick danach), Galerie mit
Lightbox. veranstaltungen.json ist dritte Termin-Quelle, damit ein Fest nie
doppelt gepflegt wird.

News-Artikel als dritte dynamische Prefix-Route, gemeinsamer detail-head.

Behobene Fehler:
- Wappen-Kontexte setzten Zeilen-Layout auf .crest statt auf die Zeile; das
  Wappen wurde zum Grid, Vereinsname und Tore rutschten darunter zusammen
  (Ergebnis-Rückblick, Vorschau, Cover).
- --header-h (60px) unterschätzt die Kopfleiste um 32px (Logo 72px + 20px
  Versatz): neues abgeleitetes --header-space, sonst klebten Zurück-Links
  unter dem Logo.
- base_url in der Produktions-Config ohne www, während .htaccess auf www
  umleitet; preflight prüft das jetzt.
- .lightbox brauchte display:none mit (0,2,0), sonst lag das Overlay offen.

Neue Werkzeuge: bin/anzeige-add.php (Anzeigen-Bestand), bin/veranstaltung-bilder.php
(Plakate und Galerien, Alt-Texte folgen der Quelldatei), bin/qr.php (Druck-QR mit
Warnung, wenn base_url nicht auf die echte Domain zeigt).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NzeVVgMCrzCDJAKeLEdKr7
2026-07-31 14:55:27 +02:00

53 lines
2.4 KiB
CSS

/*
Name: shadowfox
Author: overdodactyl (http://github.com/overdodactyl)
Original shadowfox color scheme by Firefox
*/
.cm-s-shadowfox.CodeMirror { background: #2a2a2e; color: #b1b1b3; }
.cm-s-shadowfox div.CodeMirror-selected { background: #353B48; }
.cm-s-shadowfox .CodeMirror-line::selection, .cm-s-shadowfox .CodeMirror-line > span::selection, .cm-s-shadowfox .CodeMirror-line > span > span::selection { background: #353B48; }
.cm-s-shadowfox .CodeMirror-line::-moz-selection, .cm-s-shadowfox .CodeMirror-line > span::-moz-selection, .cm-s-shadowfox .CodeMirror-line > span > span::-moz-selection { background: #353B48; }
.cm-s-shadowfox .CodeMirror-gutters { background: #0c0c0d ; border-right: 1px solid #0c0c0d; }
.cm-s-shadowfox .CodeMirror-guttermarker { color: #555; }
.cm-s-shadowfox .CodeMirror-linenumber { color: #939393; }
.cm-s-shadowfox .CodeMirror-cursor { border-left: 1px solid #fff; }
.cm-s-shadowfox span.cm-comment { color: #939393; }
.cm-s-shadowfox span.cm-atom { color: #FF7DE9; }
.cm-s-shadowfox span.cm-quote { color: #FF7DE9; }
.cm-s-shadowfox span.cm-builtin { color: #FF7DE9; }
.cm-s-shadowfox span.cm-attribute { color: #FF7DE9; }
.cm-s-shadowfox span.cm-keyword { color: #FF7DE9; }
.cm-s-shadowfox span.cm-error { color: #FF7DE9; }
.cm-s-shadowfox span.cm-number { color: #6B89FF; }
.cm-s-shadowfox span.cm-string { color: #6B89FF; }
.cm-s-shadowfox span.cm-string-2 { color: #6B89FF; }
.cm-s-shadowfox span.cm-meta { color: #939393; }
.cm-s-shadowfox span.cm-hr { color: #939393; }
.cm-s-shadowfox span.cm-header { color: #75BFFF; }
.cm-s-shadowfox span.cm-qualifier { color: #75BFFF; }
.cm-s-shadowfox span.cm-variable-2 { color: #75BFFF; }
.cm-s-shadowfox span.cm-property { color: #86DE74; }
.cm-s-shadowfox span.cm-def { color: #75BFFF; }
.cm-s-shadowfox span.cm-bracket { color: #75BFFF; }
.cm-s-shadowfox span.cm-tag { color: #75BFFF; }
.cm-s-shadowfox span.cm-link:visited { color: #75BFFF; }
.cm-s-shadowfox span.cm-variable { color: #B98EFF; }
.cm-s-shadowfox span.cm-variable-3 { color: #d7d7db; }
.cm-s-shadowfox span.cm-link { color: #737373; }
.cm-s-shadowfox span.cm-operator { color: #b1b1b3; }
.cm-s-shadowfox span.cm-special { color: #d7d7db; }
.cm-s-shadowfox .CodeMirror-activeline-background { background: rgba(185, 215, 253, .15) }
.cm-s-shadowfox .CodeMirror-matchingbracket { outline: solid 1px rgba(255, 255, 255, .25); color: white !important; }