body {
    color: #fcfcfc;
    background-color: #202122;
    font-family: Arial, sans-serif;
    margin: 0;
}

/*
 * Hintergrundbild aus runtime-resources/wallpaper, konfiguriert ueber tourenbuch.ui.background-image
 * und ausgeliefert von WallpaperController. Die Klasse setzt GlobalModelAttributes nur, wenn ein
 * Bild konfiguriert und lesbar ist - andernfalls fragt der Browser die URL gar nicht erst ab.
 * Die URL ist relativ zu dieser Datei (/css/common.css), damit ein Context-Path erhalten bleibt.
 * Der Farbverlauf dunkelt das Bild ab, damit der Text lesbar bleibt.
 */
body.with-wallpaper {
    background-image: linear-gradient(rgba(32, 33, 34, 0.4), rgba(32, 33, 34, 0)),
                      url("../wallpaper/background");
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    background-attachment: fixed;
}

/*
 * Inhaltsflaechen bekommen einen eigenen Grund, damit Texte, Formulare und Tabellen auch
 * ueber dem Hintergrundbild lesbar bleiben. Ueberschriften, Kopfzeile und Navigation bleiben
 * absichtlich frei - dort bleibt das Bild sichtbar.
 */
.data-table,
.detail-box,
.login-container,
.filter-bar,
.section-header,
.error,
.info {
    background-color: #1f2021;
    border-radius: 4px;
}

/* Flaechen, die keinen eigenen Innenabstand mitbringen */
.detail-box,
.login-container {
    padding: 0.8em 1em;
}

/* Schmale Leisten kompakter halten */
.filter-bar,
.section-header {
    padding: 0.5em 0.8em;
}

a {
    color: #74c0fc;
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
}

.container {
    width: 90%;
    margin: 1em auto;
}

h1 {
    margin-bottom: 0.2em;
}

.version {
    margin-top: 2em;
    color: #888;
    font-size: 80%;
}

/* Header with logout */

.header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5em;
}

.user-info {
    display: flex;
    align-items: center;
    gap: 1em;
}

.logout-form {
    display: inline;
}

/* Navigation */

.main-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25em;
    margin: 1em 0;
    border-bottom: 1px solid #3a3b3c;
}

.main-nav a {
    padding: 0.5em 1em;
    color: #aaa;
    border: 1px solid transparent;
    border-bottom: none;
    border-radius: 4px 4px 0 0;
}

.main-nav a:hover {
    color: #fcfcfc;
    background-color: #2a2b2c;
    text-decoration: none;
}

.main-nav a.active {
    color: #fcfcfc;
    background-color: #2c2d2e;
    border-color: #3a3b3c;
}

/*
 * Reiner CSS-Umschalter (kein JS): Checkbox + Label als Hamburger. Auf Desktop ist die Nav
 * immer sichtbar, auf schmalen Viewports per Klick auf das Label ein-/ausklappbar.
 */
.nav-toggle-checkbox,
.nav-toggle-label {
    display: none;
}

@media (max-width: 700px) {
    .nav-toggle-label {
        display: inline-block;
        margin: 0.5em 0;
        padding: 0.4em 0.8em;
        border: 1px solid #3a3b3c;
        border-radius: 4px;
        cursor: pointer;
    }

    .main-nav {
        display: none;
        flex-direction: column;
    }

    .nav-toggle-checkbox:checked ~ .main-nav {
        display: flex;
    }
}

/* Login */

.login-container {
    max-width: 400px;
}

.login-form {
    margin-top: 1.5em;
}

.form-group {
    margin-bottom: 1em;
}

.form-group label {
    display: block;
    margin-bottom: 0.3em;
}

.form-group input,
.form-group select,
.form-group textarea {
    width: 100%;
    padding: 0.5em;
    font-size: 1em;
    box-sizing: border-box;
    background-color: #2c2d2e;
    color: #fcfcfc;
    border: 1px solid #555;
}

button {
    padding: 0.5em 1.5em;
    font-size: 1em;
    background-color: #2c2d2e;
    color: #fcfcfc;
    border: 1px solid #555;
    border-radius: 4px;
    cursor: pointer;
}

button:hover {
    background-color: #3a3b3c;
}

.error {
    color: #ff6b6b;
    margin-bottom: 1em;
    padding: 0.5em;
    border: 1px solid #ff6b6b;
}

.info {
    color: #69db7c;
    margin-bottom: 1em;
    padding: 0.5em;
    border: 1px solid #69db7c;
}

/* Tabellen */

.data-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 1em;
}

.data-table th,
.data-table td {
    text-align: left;
    padding: 0.6em 0.8em;
    border-bottom: 1px solid #3a3b3c;
}

.data-table th {
    color: #aaa;
    font-weight: normal;
    font-size: 90%;
}

.data-table tbody tr:hover {
    background-color: #2a2b2c;
}

/* Karten */

.card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1em;
    margin-top: 1em;
}

.detail-box h2 {
    margin-top: 0;
    font-size: 1.1em;
    color: #aaa;
    font-weight: normal;
}

.section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 1.5em;
}
