html,
|
body {
|
margin: 0;
|
min-height: 100%;
|
background: var(--md-sys-color-surface, #ffffff);
|
color: var(--md-sys-color-on-surface, #1a1a1a);
|
font-family: system-ui, -apple-system, 'Segoe UI', sans-serif;
|
}
|
|
.bibliothek-app-rahmen {
|
padding: 24px;
|
/* Dauerhaft Platz für die schwebende Auswahl-Leiste — so verschiebt sich
|
auch am Listenende nichts, wenn sie erscheint. */
|
padding-bottom: 96px;
|
max-width: 1100px;
|
margin: 0 auto;
|
}
|
|
.kopf {
|
display: flex;
|
align-items: center;
|
justify-content: space-between;
|
gap: 16px;
|
margin-bottom: 16px;
|
}
|
|
.kopf-aktionen {
|
display: flex;
|
gap: 8px;
|
align-items: center;
|
}
|
|
.theme-select {
|
min-width: 150px;
|
}
|
|
.hinweis {
|
background: var(--md-sys-color-secondary-container, #e6e0ec);
|
color: var(--md-sys-color-on-secondary-container, #1d1b20);
|
padding: 12px 16px;
|
border-radius: 8px;
|
margin-bottom: 16px;
|
}
|
|
/* --- Kompakte Katalog-Liste --- */
|
|
.suche {
|
display: block;
|
max-width: 420px;
|
margin-bottom: 12px;
|
}
|
|
dh-tab {
|
display: block;
|
}
|
|
/* Inhalt eines nicht gewählten Reiters (die Komponente setzt die Klasse ebenfalls). */
|
[slot='tab-content'].hidden {
|
display: none;
|
}
|
|
.leer {
|
padding: 16px 4px;
|
opacity: 0.7;
|
}
|
|
.liste {
|
border: 1px solid var(--md-sys-color-outline-variant, #cac4d0);
|
border-radius: 8px;
|
overflow: hidden;
|
}
|
|
/*
|
* Die Trennlinie sitzt auf der Gruppe (Tool + seine Zusatzinhalte), nicht auf der
|
* einzelnen Zeile — so wirken zusammengehörige Einträge als ein Block.
|
*/
|
.liste > bibliothek-zeile {
|
display: block;
|
border-bottom: 1px solid var(--md-sys-color-outline-variant, #e7e0ec);
|
}
|
|
.liste > bibliothek-zeile:last-child {
|
border-bottom: none;
|
}
|
|
.zeile {
|
display: flex;
|
align-items: center;
|
justify-content: space-between;
|
gap: 16px;
|
padding: 8px 16px;
|
}
|
|
.zeile-auswahl {
|
display: flex;
|
align-items: center;
|
flex: 0 0 28px;
|
}
|
|
/* Bei knapper Breite lieber abschneiden als umbrechen — sonst franst die Liste aus. */
|
.zeile-info {
|
display: flex;
|
flex-direction: column;
|
min-width: 0;
|
flex: 1 1 auto;
|
overflow: hidden;
|
}
|
|
.zeile-info > * {
|
white-space: nowrap;
|
overflow: hidden;
|
text-overflow: ellipsis;
|
}
|
|
.warnung {
|
padding: 12px 16px;
|
margin-bottom: 16px;
|
border-radius: 8px;
|
border: 1px solid var(--md-sys-color-error, #b00020);
|
background: var(--md-sys-color-error-container, rgba(176, 0, 32, 0.12));
|
color: var(--md-sys-color-on-error-container, #410002);
|
}
|
|
/*
|
* Schwebt über dem Inhalt statt ihn zu verschieben: Beim Anhaken soll die Liste
|
* an Ort und Stelle bleiben. Bleibt beim Blättern sichtbar — bei langen Listen
|
* ist die Auswahl sonst aus dem Blick.
|
*
|
* Bewusst eine gewöhnliche erhobene Fläche statt der umgekehrten Farbe: Auf
|
* einer umgekehrten Fläche greift keine der Button-Gestaltungen des Themes,
|
* die Schaltflächen wären dann nicht mehr als solche zu erkennen.
|
*/
|
.auswahl-leiste {
|
position: fixed;
|
bottom: 24px;
|
left: 50%;
|
transform: translateX(-50%);
|
z-index: 10;
|
display: flex;
|
align-items: center;
|
gap: 12px;
|
padding: 8px;
|
border-radius: var(--md-sys-shape-corner-large, 16px);
|
border: 1px solid var(--md-sys-color-outline-variant, #cac4d0);
|
background: var(--md-sys-color-surface-container-high);
|
color: var(--md-sys-color-on-surface);
|
box-shadow:
|
0 3px 5px -1px rgba(0, 0, 0, 0.2),
|
0 6px 10px 0 rgba(0, 0, 0, 0.14),
|
0 1px 18px 0 rgba(0, 0, 0, 0.12);
|
max-width: calc(100vw - 32px);
|
}
|
|
.auswahl-anzahl {
|
font-weight: 500;
|
}
|
|
.zeile-name {
|
font-weight: 600;
|
display: flex;
|
align-items: center;
|
gap: 8px;
|
}
|
|
.lizenz-marke,
|
.intern-marke {
|
flex-shrink: 0;
|
}
|
|
.zeile-meta {
|
font-size: 0.85em;
|
opacity: 0.7;
|
}
|
|
/* Handhabungs-Hinweise stehen unter den Metadaten, etwas zurückgenommen. */
|
.zeile-hinweis {
|
font-size: 0.85em;
|
color: var(--md-sys-color-on-surface-variant, #49454f);
|
font-style: italic;
|
}
|
|
/*
|
* Aktionen in festen Spalten, damit gleichartige Schaltflächen über alle Zeilen
|
* hinweg exakt untereinander stehen. Fehlt eine Aktion, bleibt ihre Spalte leer.
|
* Reihenfolge: Plug-ins | Anleitung | Herunterladen [| Prüfen | Bearbeiten | Löschen]
|
*/
|
.zeile-aktionen {
|
display: grid;
|
grid-template-columns: 84px 48px;
|
gap: 8px;
|
align-items: center;
|
flex-shrink: 0;
|
}
|
|
.liste.verwaltung .zeile-aktionen {
|
grid-template-columns: 84px 48px 84px 108px 88px;
|
}
|
|
.aktion {
|
display: flex;
|
justify-content: center;
|
align-items: center;
|
min-width: 0;
|
}
|
|
.aktion dh-button {
|
max-width: 100%;
|
}
|
|
/* --- Zusatzinhalte: eingerückt, ohne eigene Trennlinie --- */
|
|
.zeile-eingerueckt {
|
padding-left: 44px;
|
padding-top: 4px;
|
padding-bottom: 4px;
|
}
|
|
.intern-marke {
|
font-size: 0.72em;
|
font-weight: 500;
|
text-transform: uppercase;
|
letter-spacing: 0.04em;
|
padding: 2px 8px;
|
border-radius: 999px;
|
background: var(--md-sys-color-primary-container, #ffe4cc);
|
color: var(--md-sys-color-on-primary-container, #4a1e00);
|
}
|
|
.lizenz-marke {
|
font-size: 0.72em;
|
font-weight: 500;
|
text-transform: uppercase;
|
letter-spacing: 0.04em;
|
padding: 2px 8px;
|
border-radius: 999px;
|
background: var(--md-sys-color-tertiary-container, #ffd9a0);
|
color: var(--md-sys-color-on-tertiary-container, #2b1700);
|
}
|
|
.status-ok {
|
color: var(--md-sys-color-primary, #ff8014);
|
}
|
|
.status-fehler {
|
color: var(--md-sys-color-error, #b00020);
|
}
|
|
.status-ausstehend {
|
font-style: italic;
|
}
|
|
.signatur-gut {
|
color: var(--md-sys-color-primary, #ff8014);
|
}
|
|
.signatur-unklar {
|
color: var(--md-sys-color-error, #b00020);
|
}
|
|
.warnhinweis {
|
color: var(--md-sys-color-error, #b00020);
|
opacity: 1;
|
}
|
|
.anleitung {
|
color: var(--md-sys-color-primary, #ff8014);
|
font-size: 0.9em;
|
text-decoration: none;
|
white-space: nowrap;
|
}
|
|
.anleitung:hover {
|
text-decoration: underline;
|
}
|
|
/* --- Formular --- */
|
|
dh-card {
|
display: block;
|
margin-bottom: 16px;
|
}
|
|
[slot='actions'] {
|
display: flex;
|
flex-wrap: wrap;
|
gap: 8px;
|
align-items: center;
|
}
|
|
.umzug {
|
margin-top: 24px;
|
padding-top: 16px;
|
border-top: 1px solid var(--md-sys-color-outline-variant, #cac4d0);
|
}
|
|
.umzug h3 {
|
margin: 0 0 4px;
|
font-size: 1em;
|
}
|
|
.umzug-aktionen {
|
display: flex;
|
flex-wrap: wrap;
|
gap: 8px;
|
margin: 12px 0 8px;
|
}
|
|
.einstellungen-infos {
|
margin: 20px 0 0;
|
display: grid;
|
grid-template-columns: max-content 1fr;
|
gap: 4px 16px;
|
font-size: 0.9em;
|
}
|
|
.einstellungen-infos dt {
|
opacity: 0.7;
|
}
|
|
.einstellungen-infos dd {
|
margin: 0;
|
font-family: ui-monospace, 'Cascadia Code', Consolas, monospace;
|
word-break: break-all;
|
}
|
|
.feldhinweis {
|
display: block;
|
font-size: 0.8em;
|
opacity: 0.7;
|
margin-top: 4px;
|
}
|
|
.fehler {
|
color: var(--md-sys-color-error, #b00020);
|
margin-right: auto;
|
}
|