:root {
    --primary-color: #007bff;
    --secondary-color: #f8f9fa;
    --success-color: #28a745;
    --warning-color: #ffc107;
    --danger-color:#dc3545;
    --text-color: #343a40;
    --fab-size: 60px;
}

body {
    font-family: Arial, sans-serif;
    background-color: #f4f4f4;
    margin: 0;
    height: 100vh;
    box-sizing: border-box;
    position: relative;
}

/* Container für alle Navigations-Buttons */
.dashboard-container {
    display: flex;
    flex-direction: column;
    gap: 15px; /* Abstand zwischen den Button-Zeilen */
    max-width: 600px; /* Maximale Breite für größere Bildschirme */
    margin: 0 auto;
    padding: 20px;
}

/* Basis-Stil für alle Navigations-Buttons */
.nav-button {
    padding: 15px;
    border: none;
    border-radius: 12px;
    cursor: pointer;
    text-align: left;
    transition: background-color 0.2s, transform 0.1s;
    color: var(--text-color);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.nav-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 10px rgba(0, 0, 0, 0.15);
}

/* --- Stil für den großen Button (Gesamtübersicht) --- */
.large-button {
    background-color: var(--primary-color);
    color: white;
    padding: 20px;
    text-align: center;
}

.large-button .button-title {
    display: block;
    font-size: 1.4em;
    font-weight: bold;
    margin-bottom: 5px;
}

.large-button .button-subtitle {
    display: block;
    font-size: 0.9em;
    opacity: 0.8;
}

/* --- Stil für die Paar-Container --- */
.button-pair-container {
    display: flex;
    gap: 15px; /* Abstand zwischen den Buttons im Paar */
}

/* --- Stil für die kleinen Buttons (Paarweise) --- */
.small-button {
    flex: 1; /* Lässt beide Buttons die Hälfte des Platzes einnehmen */
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background-color: white;
    padding: 25px 15px;
    font-size: 1em;
    font-weight: bold;
    height: 120px;
}

.small-button .material-symbols-outlined {
    font-size: 32px;
    color: var(--primary-color);
    margin-bottom: 8px;
}

/* --- Floating Action Button (FAB) --- */
.fab-button {
    position: fixed; /* Wichtig für die Positionierung */
    bottom: 30px;
    right: 30px;
    width: var(--fab-size);
    height: var(--fab-size);
    background-color: var(--primary-color);
    color: white;
    border: none;
    border-radius: 50%; /* Runde Form */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.25);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background-color 0.2s, transform 0.2s;
    z-index: 1000; /* Stellt sicher, dass der Button über allem liegt */
}

.fab-button:hover {
    background-color: #0056b3;
    transform: scale(1.05);
}

.fab-button .material-symbols-outlined {
    font-size: 30px;
}
/* Container für Icon und Überschrift, um sie in eine Reihe zu bringen */
.header-container {
    display: flex;
    flex-direction: column;
    align-items: left; /* Zentriert Icon und H1 vertikal */
    max-width: 600px;
    margin: 20px auto 0 auto;
    padding-left: 20px; /* Passt zum Padding des Formulars */
}

#back-button, #menu-trigger, #btn-main-menu {
    /* Stil für das Icon */
    display: block;
    font-size: 32px; /* Größe des Icons */
    margin-right: -10px;
    cursor: pointer; /* Zeigt an, dass es klickbar ist */
    color: #333;
    transition: color 0.2s;
}

#back-button:hover, #menu-trigger:hover, #btn-main-menu:hover {
    color: #007bff; /* Ändert die Farbe beim Hovern */
}

/* Rechnungsansicht */
#pdfViewer {
    width: 100%;
    height: 30vh;
    border: 1px solid #000;
    display: none; /* Standardmäßig versteckt */
}

form {
    max-width: 600px;
    margin: 0 auto;
    background: #fff;
    padding: 20px;
    border-radius: 8px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}

fieldset {
    border: 1px solid #ccc;
    padding: 15px;
    margin-bottom: 20px;
    border-radius: 4px;
}

legend {
    font-weight: bold;
    color: #333;
    padding: 0 10px;
}

label {
    display: block;
    margin-bottom: 5px;
    margin-top: 10px;
    font-weight: bold;
}

input[type="text"],
input[type="date"],
input[type="number"],
select,
textarea {
    width: 100%;
    padding: 8px;
    margin-bottom: 10px;
    border: 1px solid #ddd;
    border-radius: 4px;
    box-sizing: border-box; /* Stellt sicher, dass Padding und Border zur Gesamtbreite gehören */
}

button[type="submit"] {
    background-color: #007bff;
    color: white;
    padding: 10px 15px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 16px;
    width: 100%;
    /* margin-top: 20px; */
}

button[type="submit"]:hover {
    background-color: #0056b3;
}

/* Container, um Elemente nebeneinander zu gruppieren */
.field-group-inline {
    display: flex;
    gap: 20px; /* Abstand zwischen den Elementen */
    align-items: flex-end; /* Richtet die Elemente unten aus (wichtig für die Checkbox) */
}

.field-item {
    flex-grow: 1; /* Lässt die Input-Felder den verfügbaren Platz einnehmen */
}

/* Spezifische Styles für die Checkbox-Gruppe */
.checkbox-item {
    flex-grow: 0; /* Verhindert, dass die Checkbox den gesamten Platz einnimmt */
    display: flex;
    align-items: center;
    padding-bottom: 12px; /* Ausrichtung mit dem Input-Feld korrigieren */
}

.checkbox-item input[type="checkbox"] {
    width: 20px;
    height: 20px;
    margin-right: 5px;
    margin-bottom: 0;
}

.checkbox-item label {
    margin-top: 0;
    margin-bottom: 0;
    font-weight: normal; /* Labels für Checkboxen müssen nicht zwingend fett sein */
}

/* Container für das GIF */
#processing-indicator {
    text-align: center;
    padding: 15px;
    margin-top: 15px;
    border: 1px dashed #ccc;
    border-radius: 4px;
    /* Stellt sicher, dass es standardmäßig versteckt ist */
    display: none;
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    background-color: rgba(255, 255, 255, 0.9);
}
#processing-indicator img {
    width: 100%;
}

/* Klasse zum Verstecken */
.processing-hidden, .hidden {
    display: none !important;
}

/* Klasse zum Anzeigen (überschreibt .processing-hidden) */
.processing-active {
    display: block !important;
}

.processing-gif {
    width: 50px; /* Oder die gewünschte Größe */
    height: 50px;
}

/* Rechnungsübersicht */
#belegliste {
    list-style: none; /* Entfernt die Standard-Listenpunkte */
    padding: 0 20px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); /* Responsives Grid */
    gap: 20px; /* Abstand zwischen den Boxen */
    max-width: 1200px;
    margin: 0 auto;
}
.rechnung-box {
    position: relative;
    display: flex;
    align-items: center; /* Vertikal zentrieren */
    justify-content: space-between; /* Text links, Button rechts */
    
    padding: 15px; /* Behält das Padding */
    border: 1px solid #ddd;
    border-left: 5px solid var(--secondary-color); 
    border-radius: 6px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    transition: transform 0.2s, box-shadow 0.2s;
    cursor: pointer;
}
/* Indikatoren für Rechnungsstatid*/
.bearbeitet::before {
  content: "";
  position: absolute;
  left: -5px;      /* Gleicht die Breite des echten Rands aus */
  width: 5px;      /* Gleiche Breite wie der echte Rand */
  height: 50%;     /* Nur die obere Hälfte */
  border-top-left-radius: 6px;
}

.beihilfe-beantragt::before {
    top: 0;
    background-color: var(--primary-color);
}
.leistung-beantragt::before {
    bottom: 0;
    background-color: var(--primary-color );
}
.beihilfe-bezahlt::before {
    top: 0;
    background-color: var(--success-color);
}
.leistung-gezahlt::before {
    bottom: 0;
    background-color: var(--success-color);
}
.beihilfe-teilweise-bezahlt::before {
    top: 0;
    background-color: var(--warning-color);
}
.leistung-teilseise-bezahlt::before {
    bottom: 0;
    background-color: var(--warning-color);
}
.beihilfe-ignoriert::before {
    top: 0;
    background-color: var(--danger-color);
}
.leistung-ignoriert::before {
    bottom: 0;
    background-color: var(--danger-color);
}

/* Indikatoren für Antragsstatus*/
.antrag-gestellt {
    border-left: 5px solid var(--primary-color); 
}
.vollstaendig-gezahlt {
    border-left: 5px solid var(--success-color); 
}
.teilweise-gezahlt {
    border-left: 5px solid var(--warning-color); 
}
.enthaelt-ignorierte {
    border-left: 5px solid var(--danger-color); 
}

/* Stil für den Text-Inhalt (nimmt den verfügbaren Platz ein) */
.rechnung-box .text-content {
    flex-grow: 1; /* Nimmt den größten Teil des Platzes ein */
    margin-right: 15px; /* Abstand zum Button */
    /* Fügt eventuell ellipsis für lange Dateinamen hinzu */
    min-width: 0; /* Wichtig für flex und text-overflow */
}

/* Stil für den Navigations-Button */
.nav-arrow-button {
    background: none;
    border: none;
    color: #007bff; /* Primärfarbe für das Icon */
    cursor: pointer;
    padding: 8px;
    border-radius: 50%;
    flex-shrink: 0; /* Verhindert, dass der Button schrumpft */
    margin-left: auto; /* Stellt sicher, dass er ganz rechts ist */
}

.nav-arrow-button:hover {
    background-color: #e9f7ff; /* Leichter Hover-Effekt */
    color: #0056b3;
}

.nav-arrow-button .material-symbols-outlined {
    font-size: 28px; /* Machen Sie das Icon etwas größer */
    display: block;
}

/* Deaktiviert den Hover-Effekt der gesamten Box, wenn der Button gehovert wird, 
   um visuelles Durcheinander zu vermeiden */


.rechnung-box strong {
    /* Dateiname: Fett und etwas größer */
    display: block;
    font-size: 1.1em;
    color: #333;
    margin-bottom: 5px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis; /* Fügt ... hinzu, wenn der Text zu lang ist */
}

.rechnung-box small {
    /* Rechnungsdatum: Kleiner */
    display: block;
    font-size: 0.9em;
    color: #666;
}

#leer-meldung {
    text-align: center;
    color: #888;
    margin-top: 50px;
    font-style: italic;
}
/* Einzelpostenansicht */
.data-container {
    max-width: 600px;
    margin: 0 auto;
    background: #fff;
    padding: 25px;
    border-radius: 8px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}

/* Stil für die einzelnen Sektionen */
.data-group {
    border: 1px solid #ddd;
    padding: 15px;
    margin-bottom: 20px;
    border-radius: 4px;
}

.group-title {
    font-size: 1.2em;
    color: #007bff;
    margin-top: 0;
    margin-bottom: 15px;
    border-bottom: 2px solid #007bff;
    display: inline-block;
    padding-bottom: 5px;
}

/* Stil für eine einzelne Zeile (Label + Wert) */
.data-row {
    display: flex;
    justify-content: space-between; /* Label links, Wert rechts */
    padding: 10px 0;
    border-bottom: 1px dashed #eee;
}

.data-row:last-child {
    border-bottom: none;
}

.data-label {
    font-weight: bold;
    color: #555;
    flex-basis: 60%; /* Gibt dem Label etwas mehr Raum */
}

.data-value {
    font-weight: 600; /* Etwas dickerer Wert */
    color: #333;
    text-align: right;
    flex-basis: 40%;
}

/* Hervorhebung für den Ergebnisbetrag */
.data-row.highlight {
    background-color: #e9f7ff; /* Hellblauer Hintergrund */
    border-top: 2px solid #007bff;
    margin-top: 10px;
    padding: 12px 10px;
    border-radius: 4px;
}

.data-note {
    background-color: #f8f8f8;
    padding: 10px;
    border-radius: 4px;
    margin-top: 10px;
    border-left: 5px solid #ffc107; /* Gelber Akzent für Notiz */
}

.data-note p {
    margin: 0;
    font-style: italic;
    color: #666;
}

.action-button {
    background-color: #6c757d;
    color: white;
    padding: 10px 15px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 16px;
    width: 100%;
    margin-top: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.action-button:hover {
    background-color: #555;
}

.action-button .material-symbols-outlined {
    margin-right: 5px;
}
/* Form buttons container */
.form-buttons {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    margin-top: 20px;
}

/* Primary button style */
.btn-primary {
    background-color: var(--primary-color);
    color: white;
    padding: 10px 20px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 16px;
    display: flex;
    align-items: center;
    gap: 5px;
}

.btn-primary:hover {
    background-color: #0056b3;
}

/* Secondary button style */
.btn-secondary {
    background-color: var(--secondary-color);
    color: var(--text-color);
    padding: 10px 20px;
    border: 1px solid #ccc;
    border-radius: 4px;
    cursor: pointer;
    font-size: 16px;
    display: flex;
    align-items: center;
    gap: 5px;
}

.btn-secondary:hover {
    background-color: #e9ecef;
}
/* Dateiname über dem Formular */
.file-name-display {
    text-align: center;
    font-size: 0.9em;
    color: #6c757d;
    margin-bottom: 20px;
    padding-bottom: 10px;
    border-bottom: 1px solid #eee;
}

/* Stil für die Einzelposten-Sektion */
.single-items {
    padding: 0; /* Padding wird von den einzelnen Posten übernommen */
    border: none;
    box-shadow: none;
}

/* Stil für einen einzelnen Posten in der Liste */
.einzelposten-item {
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    padding: 15px;
    margin-bottom: 15px;
    background-color: #ffffff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.posten-title {
    font-size: 1em;
    color: #0056b3;
    margin-top: 0;
    margin-bottom: 10px;
    padding-bottom: 5px;
    border-bottom: 1px dashed #c0c0c0;
}

/* Hervorhebung für den Betrag auf Posten-Ebene */
.data-row.highlight-small {
    background-color: #f0faff; /* Leichter als das Gesamt-Highlight */
    border-top: 1px solid #007bff;
    padding: 8px 10px;
    margin-top: 5px;
}

/* Allgemeine Gesamt-Zeilen für bessere Sichtbarkeit */
.data-row.total-row {
    font-size: 1.1em;
    font-weight: bold;
    padding: 12px 0;
}

.no-items {
    text-align: center;
    color: #aaa;
    font-style: italic;
    padding: 20px;
}
/* Styling für die dynamischen Posten-Blöcke */
.einzelposten-block {
    border: 1px solid #c0c0c0;
    padding: 15px;
    margin-bottom: 20px;
    border-radius: 6px;
    background-color: #f9f9f9;
    position: relative;
}

.posten-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 0;
    margin-bottom: 15px;
    padding-bottom: 5px;
    border-bottom: 1px solid #e0e0e0;
}

/* Entfernen Button */
.remove-posten-button {
    background: #dc3545;
    color: white;
    border: none;
    padding: 5px 10px;
    border-radius: 4px;
    cursor: pointer;
    font-size: 0.8em;
}

.remove-posten-button:hover {
    background: #c82333;
}

/* Berechnete Zeile */
.calculated-row {
    padding: 10px;
    margin-top: 10px;
    border-top: 1px dashed #ccc;
    font-weight: bold;
    color: #007bff;
    text-align: right;
}

.submit-button {
    background-color: #28a745 !important;
    width: 100%;
    margin-top: 20px;
    padding: 12px;
}
/**
 * Infohäppchen in list entry box
 */
.infozeile {
    display: flex;
    justify-content: space-around;
}
.infozeile span{
    display: block;
    font-variant-caps: all-small-caps;
}
.infozeile span::first-letter {
    color: var(--primary-color);
}
/* Menüzeile */
.nav-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
    padding: 20px;
}
.nav-header h2 {
    margin: 0;
}

/* Dropdown Menü Styling */
.dropdown-content {
    position: absolute;
    right: 0;
    top: 40px;
    background: white;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    border-radius: 8px;
    z-index: 100;
    min-width: 150px;
}

.dropdown-content button, .aside-content button {
    width: 100%;
    padding: 12px;
    border: none;
    background: none;
    text-align: left;
    cursor: pointer;
}

.hidden { display: none !important; }

/* Logik für den Modus-Wechsel */
/* Wenn die Liste im Löschmodus ist: */
.rechnungs-liste.delete-mode .nav-arrow-button {
    display: none;
}

.rechnungs-liste.delete-mode .delete-item-button {
    display: block;
    color: #dc3545; /* Rot für Löschen */
}
/* Sidebar styling */
.aside-content {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    height: 100vh;
    background: white;
    padding: 20px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    
}
.aside-content button {
    width: 100%;
    padding: 12px;
    border: none;
    background: none;
    text-align: left;
    cursor: pointer;
    font-size: x-large;
}