@font-face {
    font-family: 'Wathelmina';
    src: url('/static/fonts/Wathelmina.otf') format('opentype');
    font-display: swap;
}

body {
    font-family: sans-serif;
    margin: 0;
    padding: 20px;
    color: #333;
    background: radial-gradient(ellipse at top, #1b2a4a 0%, #0b1330 60%, #070c1e 100%);
    background-attachment: fixed;
    min-height: 100vh;
}

.header {
    text-align: center;
    margin-bottom: 30px;
    padding: 20px 60px 20px 0;
}

.header h1 {
    font-family: 'Wathelmina', cursive;
    font-size: 3em;
    color: #cfeeff;
    text-shadow: 0 0 12px rgba(180, 220, 255, 0.7), 0 0 24px rgba(120, 180, 255, 0.4);
    margin: 0;
}

.header .subtitle {
    font-family: 'Wathelmina', cursive;
    font-size: 2em;
    color: #a8cdf0;
    margin-top: 4px;
}

.sort-links { margin-bottom: 20px; text-align: left; }
.sort-links a { 
    margin-right: 15px; 
    text-decoration: none; 
    color: #cfeeff; 
    font-size: 0.9em;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}
.sort-links a.active { font-weight: bold; color: #fff; text-shadow: 0 0 8px rgba(180,220,255,0.6); }

.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 20px; }

.karte { background: #fdfdfb; border-radius: 10px; overflow: hidden; box-shadow: 0 2px 12px rgba(20, 40, 90, 0.35); text-decoration: none; color: inherit; display: block; transition: transform 0.15s, box-shadow 0.2s; }
.karte:hover { transform: translateY(-3px); box-shadow: 0 0 18px 4px rgba(140, 200, 255, 0.55), 0 6px 18px rgba(20, 40, 90, 0.5); }

.bild-wrap { position: relative; }
.bild-wrap img { width: 100%; height: 140px; object-fit: cover; display: block; background: #ddd; }

.revanche-overlay {
    position: absolute;
    inset: 0;
    background: rgba(10, 20, 50, 0.85);
    color: #cfeeff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 10px;
    font-size: 0.9em;
    opacity: 0;
    transition: opacity 0.25s;
}
.karte:hover .revanche-overlay { opacity: 1; }

.inhalt { padding: 10px 12px; }
.titel { font-weight: bold; margin-bottom: 4px; }
.personen { font-size: 0.85em; color: #666; margin-bottom: 4px; }

.termin { font-size: 0.85em; }
.termin-offen { color: #888; }
.termin-vorgeschlagen { color: #8a5a00; }
.termin-fest { color: #285c22; font-weight: 500; }

.nav { position: fixed; top: 20px; right: 20px; z-index: 20; }
.nav-toggle { display: none; }
.nav-burger { display: block; font-size: 1.8em; color: #cfeeff; cursor: pointer; }
.nav-links {
    display: none;
    flex-direction: column;
    position: absolute;
    top: 2.2em;
    right: 0;
    background: #0b1330;
    padding: 14px;
    border-radius: 8px;
    z-index: 10;
    min-width: 180px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.4);
}
.nav-toggle:checked ~ .nav-links { display: flex; }
.nav-links a { color: #cfeeff; text-decoration: none; font-size: 1.2em; font-weight: 600; letter-spacing: 0.02em; padding: 4px 0; }
.nav-links a:hover { text-decoration: underline; }
.nav-links a.active { color: #fff; text-shadow: 0 0 10px rgba(180, 220, 255, 0.7); border-bottom: 2px solid #cfeeff; padding-bottom: 2px; }

.panel {
    background: #fdfdfb;
    padding: 20px 24px;
    border-radius: 10px;
    max-width: 700px;
    margin: 0 auto 20px auto;
    color: #333;
}
.panel h2 { margin-top: 0; color: #222; }
.panel a { color: #2a5db0; }
.panel table { width: 100%; border-collapse: collapse; }
.panel th { text-align: left; background: #eee; padding: 8px; }
.panel td { padding: 8px; border-top: 1px solid #eee; }
.panel label { display: block; margin-bottom: 12px; }
.panel input, .panel select, .panel textarea { width: 100%; padding: 6px; box-sizing: border-box; }

