diff --git a/assets/css/custom.css b/assets/css/custom.css
index ee3b18b..6f73be7 100644
--- a/assets/css/custom.css
+++ b/assets/css/custom.css
@@ -729,6 +729,33 @@ a.byline-author:hover, a.journal-author:hover { color: var(--accent); }
.entry-foot a { color: var(--color-text-muted); text-decoration: none; }
.entry-foot a:hover { color: var(--accent); }
+/* Wiki-Links in Library-Einträgen */
+.wikilink { color: var(--section-color, var(--accent)); text-decoration: underline; text-decoration-style: dotted; text-underline-offset: 0.2em; }
+.wikilink:hover { text-decoration-style: solid; }
+.wikilink-missing { color: var(--color-text-muted); border-bottom: 1px dashed currentColor; }
+
+/* Querverweise: „Siehe auch" + „Erwähnt in" */
+.entry-links { margin-top: var(--spacing-md); padding: 0.7em 1em;
+ background: color-mix(in oklab, var(--section-color, var(--accent)) 8%, transparent);
+ border-left: 3px solid var(--section-color, var(--accent)); border-radius: 0 8px 8px 0; }
+.entry-links + .entry-links { margin-top: 0.5em; }
+.entry-links ul { list-style: none; margin: 0.3em 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.25em 0.8em; }
+.entry-links li { font-size: var(--font-size-small); }
+.entry-links a { color: var(--section-color, var(--accent)); text-decoration: none; }
+.entry-links a:hover { text-decoration: underline; text-underline-offset: 0.2em; }
+.entry-links-label { font-size: var(--font-size-small); font-weight: 600; color: var(--color-text-muted); text-transform: uppercase; letter-spacing: 0.04em; }
+
+/* Library-Übersicht: Suchfeld + A-Z-Index */
+.lib-filter { margin-bottom: var(--spacing-md); display: flex; flex-direction: column; gap: 0.6em; }
+.lib-search { width: 100%; padding: 0.45em 0.8em; border: 1px solid var(--color-border); border-radius: 6px;
+ background: var(--color-bg-secondary); color: var(--color-text-primary); font-size: var(--font-size-base); font-family: inherit; }
+.lib-search:focus { outline: none; border-color: var(--section-color, var(--accent)); }
+.lib-az { display: flex; flex-wrap: wrap; gap: 0.25em; }
+.lib-az button { padding: 0.15em 0.45em; border: 1px solid var(--color-border); border-radius: 4px;
+ background: transparent; color: var(--color-text-muted); font-size: var(--font-size-small); cursor: pointer; font-family: inherit; line-height: 1.5; }
+.lib-az button:hover { border-color: var(--section-color, var(--accent)); color: var(--color-text-primary); }
+.lib-az button.active { background: var(--section-color, var(--accent)); border-color: var(--section-color, var(--accent)); color: white; }
+
/* ── Software-Landing: Werkzeuge getrennt von Texten ── */
.software-h { font-family: var(--font-family-serif); margin: var(--spacing-md) 0 var(--spacing-sm); }
.software-tools { margin-bottom: var(--spacing-lg); }
diff --git a/layouts/library/list.html b/layouts/library/list.html
index 850e3f4..a15ee97 100644
--- a/layouts/library/list.html
+++ b/layouts/library/list.html
@@ -5,21 +5,47 @@
{{ .Content }}
{{ $pages := where site.RegularPages "Section" "library" }}
- {{ $groups := dict }}
- {{ range $pages }}
- {{ $g := .Params.group | default "Allgemein" }}
- {{ $existing := index $groups $g | default slice }}
- {{ $groups = merge $groups (dict $g ($existing | append .)) }}
- {{ end }}
{{ if $pages }}
+ {{/* A-Z Buchstaben aus vorhandenen Titeln */}}
+ {{ $letters := slice }}
+ {{ range $pages }}
+ {{ $first := substr (upper .Title) 0 1 }}
+ {{ $first = replace $first "Ä" "A" }}
+ {{ $first = replace $first "Ö" "O" }}
+ {{ $first = replace $first "Ü" "U" }}
+ {{ if not (in $letters $first) }}{{ $letters = $letters | append $first }}{{ end }}
+ {{ end }}
+ {{ $letters = sort $letters }}
+
+
+
+
+
+ {{ range $letters }}{{ end }}
+
+
+
+ {{/* Gruppen aufbauen */}}
+ {{ $groups := dict }}
+ {{ range $pages }}
+ {{ $g := .Params.group | default "Allgemein" }}
+ {{ $existing := index $groups $g | default slice }}
+ {{ $groups = merge $groups (dict $g ($existing | append .)) }}
+ {{ end }}
+
{{ range $g, $ps := $groups }}
{{ $g }}
{{ range sort $ps "Title" }}
- -
+ {{ $norm := lower .Title }}
+ {{ $norm = replace $norm "ä" "a" }}
+ {{ $norm = replace $norm "ö" "o" }}
+ {{ $norm = replace $norm "ü" "u" }}
+ {{ $norm = replace $norm "ß" "ss" }}
+
-
{{ .LinkTitle }}
{{ with .Params.summary }} — {{ . }}{{ end }}
@@ -28,6 +54,40 @@
{{ end }}
+
+
{{ else }}
Noch keine Einträge — der erste entsteht im Redaktions-Editor.
{{ end }}
diff --git a/layouts/library/single.html b/layouts/library/single.html
index c4b3d52..8a8fa35 100644
--- a/layouts/library/single.html
+++ b/layouts/library/single.html
@@ -1,5 +1,5 @@
{{ define "main" }}
-
+