Files
clemensandClaude Opus 4.8 c6a03c1a38 Tarif-Tabelle: hervorgehobene Zeile war keine Tabellenzeile mehr
Die aktuell gebuchte Tarifzeile trug class="hint-box success" auf dem <tr>.
.hint-box macht aus dem Element einen Flex-Container - auf einer Tabellenzeile
loest das die Spaltenaufteilung auf. Mit dem Grundstil aus main.css lagen die
Zellen noch nebeneinander und das fiel kaum auf; durch das in d18c55e
ergaenzte flex-direction: column standen sie dann untereinander.

Behoben an der Ursache statt am CSS: Die Zeile bekommt eine eigene Klasse
.tarif-aktuell und bleibt eine normale Tabellenzeile, die Hervorhebung laeuft
ueber Hintergrund und einen Akzentstreifen an der ersten Zelle. Zusaetzlich
ist die flex-direction-Regel jetzt auf div.hint-box eingegrenzt, damit die
Klasse auf einem Tabellenelement nicht erneut die Spalten zerstoeren kann.

Geprueft: http-smoke 34/0, role-matrix 55/0, settings-flow 15/0.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-22 17:48:17 +02:00

147 lines
4.5 KiB
CSS

/*
* Anpassungen der Kaffeeliste gegenueber dem HTML5-UP-Template (main.css).
* Bewusst eine eigene Datei, damit main.css unveraendert bleibt und bei einem
* Template-Update nicht mit eigenen Aenderungen kollidiert. Wird in header.php
* NACH main.css geladen.
*/
/* ---------------------------------------------------------------------------
* Formular-Abstaende
*
* Im Template hat das Label 1em Abstand nach unten, das Eingabefeld aber gar
* keinen. In einem Formular mit mehreren Feldern klebte das naechste Label
* dadurch direkt am Feld darueber und wirkte, als gehoere es zu diesem statt
* zum eigenen Feld. Jetzt gilt: Label eng am eigenen Feld, deutlicher Abstand
* zur naechsten Gruppe.
* ------------------------------------------------------------------------ */
label {
margin-bottom: 0.5em;
}
input[type="text"],
input[type="password"],
input[type="email"],
input[type="tel"],
input[type="search"],
input[type="url"],
input[type="number"],
input[type="date"],
input[type="datetime-local"],
input[type="file"],
select,
textarea {
margin-bottom: 1.5em;
}
/* Achtung: hier bewusst KEIN ".row > * > :last-child { margin-bottom: 0 }".
In einer Grid-Spalte ist das Eingabefeld das letzte Kind - genau dessen
unterer Abstand erzeugt die Trennung zur naechsten Formularzeile. */
/* In Tabellen und nebeneinanderliegenden Bedienelementen wuerde der
zusaetzliche Abstand die Zeilen auseinanderziehen. */
td label,
td input,
td select,
td textarea,
.form-inline label,
.form-inline input,
.form-inline select {
margin-bottom: 0;
}
/* ---------------------------------------------------------------------------
* Zahlen-, Datums- und Dateifelder
*
* main.css stylt diese Typen nicht, sie erschienen deshalb als kleine native
* Kaestchen zwischen den sonst einheitlich gestalteten Feldern. Hier wird das
* Aussehen der Textfelder uebernommen.
* ------------------------------------------------------------------------ */
input[type="number"],
input[type="date"],
input[type="datetime-local"] {
background: #ffffff;
border: solid 1px rgba(210, 215, 217, 0.75);
border-radius: 0.375em;
color: inherit;
display: block;
height: 2.75em;
outline: 0;
padding: 0 1em;
text-decoration: none;
width: 100%;
}
input[type="number"]:focus,
input[type="date"]:focus {
border-color: #38761d;
box-shadow: 0 0 0 1px #38761d;
}
/* In Tabellen (Striche/Einzahlungen erfassen) bleiben die Zahlenfelder
kompakt, sonst sprengen sie die Spaltenbreite. */
td input[type="number"] {
width: 100%;
min-width: 5em;
}
input[type="file"] {
display: block;
width: 100%;
}
/* ---------------------------------------------------------------------------
* Checkbox-Zeilen
*
* Checkbox und zugehoeriges Label stehen nebeneinander; ohne Ausgleich sitzt
* die Beschriftung nicht auf einer Linie mit den Feldern der Nachbarspalte.
* ------------------------------------------------------------------------ */
input[type="checkbox"] + label,
input[type="radio"] + label {
margin-bottom: 1.5em;
}
/* ---------------------------------------------------------------------------
* Hinweisboxen
*
* main.css definiert den Grundstil und die Varianten .info/.warning/.success,
* aber keine .error-Variante - obwohl sie in der App am haeufigsten verwendet
* wird. Ohne sie erscheinen Fehlermeldungen ungefaerbt wie neutrale Hinweise.
* Farbgebung analog zu den vorhandenen Varianten.
* ------------------------------------------------------------------------ */
.hint-box.error {
background: #fdecea;
border-left: 5px solid #d32f2f;
color: #7f1d1d;
}
/* Der Grundstil ist ein Flex-Container; Absaetze darin sollen unten keinen
zusaetzlichen Abstand erzeugen. */
.hint-box > :last-child {
margin-bottom: 0;
}
/* Mehrere Absaetze/Listen in einer Box sollen untereinander stehen statt
nebeneinander (Flex-Grundstil).
Bewusst auf div eingegrenzt: .hint-box macht aus einem Element einen
Flex-Container. Auf einer Tabellenzeile zerstoert das die Spalten - fuer
hervorgehobene Zeilen gibt es .tarif-aktuell weiter unten. */
div.hint-box {
flex-direction: column;
}
/* ---------------------------------------------------------------------------
* Hervorgehobene Tabellenzeile (aktuell gebuchter Tarif)
*
* Muss eine normale Tabellenzeile bleiben, damit die Zellen unter ihren
* Spaltenueberschriften stehen.
* ------------------------------------------------------------------------ */
tr.tarif-aktuell > td {
background: #e8fbe8;
color: #1b5e20;
font-weight: 600;
}
tr.tarif-aktuell > td:first-child {
box-shadow: inset 5px 0 0 0 #4caf50;
}