:root {
    --bg: #f8fafb;
    --card: #fff;
    --border: #e2e8f0;
    --accent: #0d9488;
    --accent-hover: #0f766e;
    --text: #334155;
    --muted: #64748b;
    --radius: 10px;
    --shadow: 0 1px 3px rgba(0,0,0,0.06);
}

/* Outfit lokal hosten (statt Google Fonts) */
@font-face {
    font-family: 'Outfit';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('assets/fonts/outfit/v15/QGYvz_MVcBeNP4NJuktqQ4E.woff2') format('woff2');
}
@font-face {
    font-family: 'Outfit';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('assets/fonts/outfit/v15/QGYvz_MVcBeNP4NJuktqQ4E.woff2') format('woff2');
}
@font-face {
    font-family: 'Outfit';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url('assets/fonts/outfit/v15/QGYvz_MVcBeNP4NJuktqQ4E.woff2') format('woff2');
}

/* Dark Mode */
[data-theme="dark"] {
    --bg: #1e293b;
    --card: #334155;
    --border: #475569;
    --accent: #2dd4bf;
    --accent-hover: #5eead4;
    --text: #f1f5f9;
    --muted: #94a3b8;
    --shadow: 0 1px 3px rgba(0,0,0,0.3);
}
[data-theme="dark"] input,
[data-theme="dark"] textarea,
[data-theme="dark"] select {
    background: #1e293b;
    border-color: #475569;
    color: #f1f5f9;
}
[data-theme="dark"] .msg.success { background: rgba(16, 185, 129, 0.2); color: #6ee7b7; }
[data-theme="dark"] .msg.error { background: rgba(239, 68, 68, 0.2); color: #fca5a5; }
[data-theme="dark"] .ort-rating.leer { color: var(--muted); }
[data-theme="dark"] .role-badge.role-admin { background: rgba(45, 212, 191, 0.2); color: #2dd4bf; }
[data-theme="dark"] .role-badge.role-wickler { background: rgba(96, 165, 250, 0.2); color: #93c5fd; }
[data-theme="dark"] .role-badge.role-superadmin { background: rgba(167, 139, 250, 0.2); color: #a78bfa; }
[data-theme="dark"] .standort-user-marker { background: #3b82f6; }
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
    font-family: 'Outfit', system-ui, sans-serif;
    margin: 0;
    background: var(--bg);
    color: var(--text);
    line-height: 1.6;
    font-size: 15px;
    min-height: 100vh;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    overflow-x: hidden;
}

.site-header {
    background: var(--card);
    border-bottom: 1px solid var(--border);
    padding: 0.75rem 1.5rem;
}
.site-header .container {
    max-width: 720px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.75rem 1.5rem;
}
.site-header .container-header {
    justify-content: center;
}
.site-header-beschreibung {
    margin: 0;
    font-size: 0.875rem;
    color: var(--muted);
    font-weight: 400;
    line-height: 1.4;
}
.nav {
    display: flex;
    gap: 1.25rem;
    flex-wrap: wrap;
}
.nav a {
    color: var(--muted);
    text-decoration: none;
    font-size: 0.9rem;
}
.nav a:hover { color: var(--accent); }

.nav-link-moderation { display: inline-flex; align-items: center; gap: 0.35rem; }
.nav-moderation-bell { display: inline-flex; color: #dc2626; }
.nav-moderation-bell-svg { flex-shrink: 0; vertical-align: middle; }

/* Theme-Toggle (Hell/Dunkel) */
.header-right { display: flex; align-items: center; gap: 0.5rem; }
.theme-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 10px;
    cursor: pointer;
    font-size: 1.25rem;
    color: var(--text);
    transition: background 0.2s, border-color 0.2s;
}
.theme-toggle:hover { background: var(--border); border-color: var(--muted); }
.theme-toggle:focus { outline: none; box-shadow: 0 0 0 3px rgba(13, 148, 136, 0.25); }
.theme-toggle-icon { display: block; line-height: 1; }
.theme-icon-dark { display: none; }
.theme-icon-light { display: block; }
[data-theme="dark"] .theme-icon-dark { display: block; }
[data-theme="dark"] .theme-icon-light { display: none; }

/* Menü-Toggle (Hamburger) – nur mobil sichtbar */
.menu-toggle {
    display: none;
    align-items: center;
    gap: 0.4rem;
    padding: 0.5rem 0.75rem;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 8px;
    font-size: 0.9rem;
    color: var(--text);
    cursor: pointer;
    font-family: inherit;
}
.menu-toggle-icon {
    width: 20px;
    height: 14px;
    position: relative;
    display: block;
}
.menu-toggle-icon::before,
.menu-toggle-icon::after,
.menu-toggle-icon { background: currentColor; border-radius: 1px; }
.menu-toggle-icon::before,
.menu-toggle-icon::after { content: ''; position: absolute; left: 0; right: 0; height: 2px; }
.menu-toggle-icon { height: 2px; top: 6px; }
.menu-toggle-icon::before { top: -6px; }
.menu-toggle-icon::after { top: 6px; }

.container { max-width: 720px; margin: 0 auto; padding: 0 1.5rem; }
.main { padding: 1.5rem 1.5rem 2rem; flex: 1; background: var(--bg); }
.section {
    background: var(--card);
    border-radius: var(--radius);
    padding: 1.5rem;
    margin-bottom: 1.5rem;
    border: 1px solid var(--border);
    box-shadow: var(--shadow);
}
.section h1 { margin: 0 0 0.5rem; font-size: 1.35rem; font-weight: 600; }
.section h2 { margin: 0 0 1rem; font-size: 1rem; font-weight: 600; color: var(--text); }
label { display: block; font-weight: 500; margin-bottom: 0.35rem; font-size: 0.875rem; }
input, textarea {
    width: 100%;
    padding: 0.65rem 0.85rem;
    border: 1px solid var(--border);
    border-radius: 8px;
    font-size: 0.9375rem;
    font-family: inherit;
    background: var(--card);
    margin-bottom: 1rem;
}
input:focus, textarea:focus {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(13, 148, 136, 0.15);
}
textarea { min-height: 78px; resize: vertical; }
.hint { font-size: 0.8125rem; color: var(--muted); margin-bottom: 1rem; }
.hint-newsletter-title {
    margin-top: 0;
    margin-bottom: 0;
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--accent);
}
.hint-newsletter-nudge { margin-top: 0; margin-bottom: 0; }
.btn {
    background: var(--accent);
    color: #fff;
    border: none;
    padding: 0.65rem 1.25rem;
    border-radius: 8px;
    font-size: 0.9375rem;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
}
.btn:hover { background: var(--accent-hover); }
.btn:disabled { opacity: 0.5; cursor: not-allowed; }
.btn-secondary { background: var(--muted); }
.btn-secondary:hover { background: var(--text); }
.btn-danger { background: #dc2626; }
.btn-danger:hover { background: #b91c1c; }
.btn-small { padding: 0.4rem 0.75rem; font-size: 0.8125rem; }
.msg { padding: 0.6rem 0.85rem; border-radius: 8px; font-size: 0.875rem; margin-bottom: 1rem; }
.msg.success { background: #ecfdf5; color: #065f46; }
.msg.error { background: #fef2f2; color: #991b1b; }
.site-footer {
    border-top: 1px solid var(--border);
    padding: 1rem 1.5rem;
    color: var(--muted);
    font-size: 0.875rem;
    text-align: center;
}
.site-footer .container { display: flex; flex-direction: column; align-items: center; }
.site-footer p { margin: 0; }
.site-footer .footer-links { margin-top: 0.5rem; text-align: center; }
.site-footer .footer-links a { color: var(--accent); text-decoration: none; }
.site-footer .footer-links a:hover { text-decoration: underline; }
.site-footer .footer-cookie-settings {
    background: none; border: none; padding: 0; font-size: inherit; color: var(--accent);
    cursor: pointer; text-decoration: none; font-family: inherit;
}
.site-footer .footer-cookie-settings:hover { text-decoration: underline; }

/* Desktop-Hinweis: Pop-up auf PC (nur bei Viewport ab 769px) */
@media (max-width: 768px) {
    .desktop-hint { display: none !important; }
}
@media (min-width: 769px) {
    .desktop-hint { display: flex; }
    .desktop-hint.desktop-hint-hidden { display: none !important; }
}
.desktop-hint[hidden] { display: none !important; }
.desktop-hint {
    position: fixed; left: 0; top: 0; right: 0; bottom: 0;
    z-index: 10000; align-items: center; justify-content: center;
    background: rgba(0, 0, 0, 0.4); padding: 1.5rem;
    box-sizing: border-box;
}
.desktop-hint-inner {
    max-width: 380px; width: 100%;
    padding: 1.5rem 1.25rem;
    background: var(--card); border: 1px solid var(--border);
    border-radius: var(--radius); box-shadow: 0 8px 32px rgba(0,0,0,0.2);
    display: flex; flex-direction: column; align-items: stretch; gap: 1rem;
}
.desktop-hint-text { margin: 0; font-size: 0.9375rem; color: var(--text); line-height: 1.5; text-align: center; }
.desktop-hint-close {
    align-self: center; min-width: 120px; padding: 0.5rem 1rem;
    border: 1px solid var(--border); border-radius: var(--radius);
    background: var(--accent); color: #fff; font-size: 0.9375rem;
    cursor: pointer; font-family: inherit;
}
.desktop-hint-close:hover { opacity: 0.9; }

/* Cookie-Banner */
.cookie-banner {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 9999;
    background: var(--card); border-top: 1px solid var(--border);
    box-shadow: 0 -4px 20px rgba(0,0,0,0.1); padding: 1rem 1.5rem;
    transition: transform 0.3s ease, opacity 0.3s ease;
}
.cookie-banner.cookie-banner-hidden {
    transform: translateY(100%); opacity: 0; pointer-events: none;
}
.cookie-banner-inner { max-width: 720px; margin: 0 auto; display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; justify-content: space-between; }
.cookie-banner-text { margin: 0; font-size: 0.875rem; color: var(--text); line-height: 1.5; flex: 1; min-width: 200px; }
.cookie-banner-text a { color: var(--accent); text-decoration: none; }
.cookie-banner-text a:hover { text-decoration: underline; }
.cookie-banner-buttons { display: flex; gap: 0.75rem; flex-shrink: 0; }
.cookie-banner-buttons .btn-cookie { white-space: nowrap; }

.form-section .btn { margin-top: 0.25rem; }
.form-section form > div:last-of-type { margin-bottom: 0; }

#map { height: 380px; border-radius: var(--radius); border: 1px solid var(--border); overflow: hidden; }
.ort-aktion-buttons { display: flex; flex-direction: column; gap: 0.5rem; margin-top: 0.5rem; width: 100%; max-width: none; }
.ort-aktion-buttons .btn { width: 100%; margin: 0; box-sizing: border-box; }
.karte-auswaehlen-wrap { margin-bottom: 1rem; }
#btn-standort-ermitteln { display: block; width: 100%; margin-top: 0.5rem; }
.karte-container h2 { font-size: 1rem; color: var(--accent); margin: 0 0 0.5rem 0; }
.search-wrap { position: relative; margin-bottom: 1rem; }
.search-wrap > label { font-size: 1rem; font-weight: 600; color: var(--accent); }
#btn-ort-suche { display: block; width: 100%; margin-top: 0.5rem; }
.search-oder {
    margin: 0.5rem 0;
    text-align: center;
    color: var(--muted);
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1;
}
.search-wrap .search-oder { margin: 0.5rem 0 !important; }
.search-wrap .ort-aktion-buttons { margin-top: 0; }
.ort-suche-row { display: flex; gap: 0.5rem; flex-wrap: wrap; align-items: center; }
.ort-suche-row input { flex: 1; min-width: 200px; margin-bottom: 0; }
.ort-suche-row .umgebung-btn { margin: 0; flex-shrink: 0; }
.ort-suche-row #btn-umgebung { flex: 0 0 100%; width: 100% !important; margin: 0; display: block; box-sizing: border-box; }
#btn-karte-auswaehlen { display: block; width: 100%; }
#btn-umgebung,
#btn-karte-auswaehlen,
#btn-standort-ermitteln {
    background: var(--accent);
    color: #fff;
    border: none;
}
#btn-umgebung:hover,
#btn-umgebung:focus,
#btn-karte-auswaehlen:hover,
#btn-karte-auswaehlen:focus,
#btn-standort-ermitteln:hover,
#btn-standort-ermitteln:focus {
    background: var(--accent-hover);
}
.search-results {
    position: absolute; left: 0; right: 0; top: 100%; margin-top: 2px;
    background: var(--card); border: 1px solid var(--border); border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08); max-height: 220px; overflow-y: auto; overflow-x: hidden;
    -webkit-overflow-scrolling: touch; z-index: 100; display: none;
}
.search-results.visible { display: block; }
.search-results .item { padding: 0.6rem 0.85rem; cursor: pointer; font-size: 0.875rem; border-bottom: 1px solid var(--border); }
.search-results .item:last-child { border-bottom: none; }
.search-results .item:hover { background: var(--bg); }
.search-results .item .poi-typ { color: var(--muted); font-size: 0.85em; }
.search-results .loading { padding: 0.75rem; color: var(--muted); text-align: center; }
.coord-status { font-size: 0.8125rem; color: var(--muted); margin-top: 0.35rem; }
.coord-status.ok { color: var(--accent); }

.orte-liste { list-style: none; padding: 0; margin: 0; }
.orte-liste li { padding: 0.85rem 0; border-bottom: 1px solid var(--border); }
.orte-liste li:last-child { border-bottom: none; }
.ort-item { padding: 0.85rem 0; display: flex; flex-direction: column; gap: 0; }
.ort-item-inhalt { flex: 1; }
.ort-item-footer {
        margin-top: 0.75rem;
        padding-top: 0.5rem;
        border-top: 1px solid var(--border);
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        gap: 0.5rem;
        align-items: center;
    }
    .ort-item-footer .btn-details-toggle,
    .ort-item-footer .btn-karte-eintrag,
    .ort-item-footer .btn-google-route {
        margin-top: 0;
        box-sizing: border-box;
        white-space: nowrap;
        flex: 0 0 auto;
        width: auto;
        max-width: none;
    }
.ort-item-footer .btn-details-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 8.5rem;
}
.ort-item-footer .btn-google-route {
    background: #0d9488;
    color: #fff;
    text-decoration: none;
    border: none;
    cursor: pointer;
    text-align: center;
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
}
.ort-item-footer .btn-google-route:hover,
.ort-item-footer .btn-google-route:focus { background: #0f766e; color: #fff; text-decoration: none; }
.ort-item-footer .btn-google-route:visited,
.ort-item-footer .btn-google-route:visited:hover { background: #0d9488; color: #fff; text-decoration: none; }
.ort-item-footer .btn-google-route:visited:focus { background: #0f766e; color: #fff; }
.ort-name { font-size: 1.125rem; font-weight: 600; }
.link-google-route { color: var(--accent); }
.ort-map-slot { margin-top: 0.5rem; }
.ort-map-slot:empty { display: none; }
.ort-item-klick { cursor: pointer; }
.ort-detail {
    margin-top: 0.75rem;
    padding: 1rem;
    background: var(--bg);
    border-radius: 8px;
    border-left: 3px solid var(--accent);
    display: none;
}
.ort-item-expanded .ort-detail { display: block; }
.ort-detail-dl { margin: 0; display: grid; grid-template-columns: auto 1fr; gap: 0.35rem 1.25rem; font-size: 0.875rem; }
.ort-detail-dl dt { color: var(--text); font-weight: 700; }
.ort-detail-dl dd { margin: 0; }
.ort-hilfreich-wrap { margin-top: 1rem; padding-top: 0.75rem; border-top: 1px solid var(--border); display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; font-size: 0.875rem; }
.ort-hilfreich-count { color: var(--muted); }
.btn-hilfreich {
  margin: 0;
  padding: 0.25rem 0.5rem;
  font-size: 0.8125rem;
  font-weight: normal;
  background: transparent;
  color: var(--muted);
  border: 1px solid var(--border);
  border-radius: 4px;
}
.btn-hilfreich:hover { color: var(--text); border-color: var(--muted); background: rgba(0,0,0,0.04); }
.btn-hilfreich.is-marked { background: transparent; color: var(--accent); border-color: var(--accent); }
.btn-hilfreich.is-marked:hover { background: var(--border); }
.ort-meta { margin-top: 0.35rem; margin-bottom: 0.35rem; display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.5rem; font-size: 0.875rem; }
.ort-meta .ort-meta-label { color: var(--accent); font-weight: 500; }
.ort-meta .ort-meta-value { color: var(--muted); }
.ort-meta .ort-kosten .ort-kostenlos { color: var(--muted); }
.ort-rating {
    font-size: 0.95rem;
    color: #f59e0b;
    margin-left: 0.35rem;
}
.ort-rating.leer { color: var(--muted); font-weight: normal; }
.ort-rating-zahl { font-size: 0.85rem; color: var(--muted); margin-left: 0.2rem; }
.ort-meta > *:first-child { margin-left: 0.35rem; }
.ort-meta .ort-kosten { padding: 0.15rem 0.4rem 0.15rem 0; border-radius: 4px; }
.ort-kosten.ort-betrag { background: var(--bg); color: var(--text); }
.ort-kosten .ort-kostenlos { background: none; padding: 0; }
.ort-meta .ort-art { margin-left: 0; }
.ort-barrierefrei-badge { font-size: 0.75rem; background: var(--accent); color: #fff; padding: 0.2rem 0.5rem; border-radius: 4px; margin-left: 0.35rem; }
.ort-erlaubnis-hinweis { font-size: 0.9em; color: var(--text-muted); font-style: italic; }
.ort-typ-block { margin-bottom: 0.75rem; }
.ort-typ-block label { display: block; margin-bottom: 0.25rem; }
.ort-typ-block select {
    width: 100%;
    max-width: 100%;
    padding: 0.65rem 0.75rem;
    border: 2px solid var(--accent);
    border-radius: var(--radius);
    background: var(--card);
    color: var(--text);
    font-weight: 600;
}
.ort-typ-block select:required:invalid {
    color: var(--muted);
    font-weight: 500;
}
.ort-typ-hinweis { margin: 0.75rem 0; padding: 0.75rem 1rem; background: var(--card); border: 1px solid var(--border); border-left: 4px solid var(--accent); border-radius: var(--radius); }
.ort-typ-hinweis p { margin: 0; font-size: 0.9rem; color: var(--text); }
.barrierefrei-block { margin-bottom: 0.35rem; margin-top: 0; }
.ausstattung-block,
.lage-gebaeude-block,
.zugaenglichkeit-block { margin-top: 1rem; margin-bottom: 0.5rem; }
.ausstattung-block h2,
.lage-gebaeude-block h2,
.zugaenglichkeit-block h2 { margin: 1.25rem 0 0.5rem; font-size: 1rem; font-weight: 600; color: var(--accent); }
.ausstattung-block h2:first-child,
.lage-gebaeude-block h2:first-child,
.zugaenglichkeit-block h2:first-child { margin-top: 0; }
.ausstattung-checkboxes { display: flex; flex-direction: column; gap: 0.4rem; }
.lage-gebaeude-freitext { margin-top: 0.6rem; }
.lage-gebaeude-freitext label { display: block; margin-bottom: 0.25rem; }
.ort-ausstattung-komma { font-size: 0.875rem; }
.ort-adresse { color: var(--muted); font-size: 0.875rem; }
.ort-beschreibung { margin-top: 0.3rem; font-size: 0.875rem; color: var(--muted); }
.btn-karte-eintrag { margin-top: 0; }
.eintrag-aktionen { margin-top: 0.5rem; }
.eintrag-aktionen a, .eintrag-aktionen button { margin-right: 0.5rem; font-size: 0.85rem; }
.form-grid { display: grid; gap: 1rem; grid-template-columns: 1fr 1fr; }
@media (max-width: 560px) { .form-grid { grid-template-columns: 1fr; } }
.form-actions-row { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; margin-top: 0.5rem; margin-bottom: 1rem; }
.form-actions-row .btn { margin: 0; }

.search-bar { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 1rem; }
.search-bar input { flex: 1; min-width: 200px; margin-bottom: 0; }
.search-bar .btn { margin: 0; }
.radius-label { font-size: 0.875rem; color: var(--muted); margin: 0; align-self: center; }
.radius-select {
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--border);
    border-radius: 8px;
    font-size: 0.9375rem;
    font-family: inherit;
    background: var(--card);
    margin: 0;
}
.umgebung-btn { white-space: nowrap; }

/* Startseite: Hero ohne Rahmen, zwei getrennte Suchblöcke */
.home-hero {
    text-align: center;
    padding: 1.25rem 1.5rem 2.25rem;
    background: transparent;
    margin-bottom: 0;
}
.home-logo-wrap { text-align: center; margin-bottom: 1.6rem; }
.home-logo-wrap .home-logo-link { display: inline-block; }

/* Startseite: Auswahl „Ort“ oder „Umgebung“, dann nur gewählter Bereich */
.home-choice-wrap { max-width: 480px; margin: 0 auto 0; }
.home-choice-lead {
    font-size: 1rem;
    color: var(--text);
    margin: 0 0 1rem;
    font-weight: 500;
}
.home-choice-cards {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.home-choice-card {
    display: block;
    width: 100%;
    text-align: left;
    padding: 1rem 1.25rem;
    background: var(--card);
    border: 2px solid var(--border);
    border-radius: var(--radius);
    cursor: pointer;
    font-family: inherit;
    transition: border-color 0.2s, background 0.2s, box-shadow 0.2s;
}
#home-choice-ort.home-choice-card,
#home-choice-umgebung.home-choice-card,
.home-choice-card.home-choice-card-small {
    background: rgba(13, 148, 136, 0.08);
    border-color: rgba(13, 148, 136, 0.28);
}
.home-choice-card:hover {
    border-color: var(--accent);
    background: var(--bg);
    box-shadow: 0 2px 8px rgba(13, 148, 136, 0.15);
}
#home-choice-ort.home-choice-card:hover,
#home-choice-umgebung.home-choice-card:hover,
.home-choice-card.home-choice-card-small:hover,
.home-choice-card.home-choice-card-small:focus {
    background: rgba(13, 148, 136, 0.14);
}
.home-choice-card:focus {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(13, 148, 136, 0.25);
}
.home-choice-card-title {
    display: block;
    font-size: 1rem;
    font-weight: 600;
    color: var(--text);
    margin-bottom: 0.2rem;
}
.home-choice-card-desc {
    display: block;
    font-size: 0.8125rem;
    color: var(--muted);
}
.home-choice-card-small {
    padding: 0.62rem 1.25rem;
    min-height: 0;
    text-decoration: none;
}
.home-choice-card-small .home-choice-card-title {
    margin-bottom: 0;
    font-size: 0.95rem;
}
.home-choice-card-small:hover .home-choice-card-title,
.home-choice-card-small:focus .home-choice-card-title {
    color: var(--accent-hover);
}
.home-suchblock-panel { max-width: 520px; margin: 0 auto 0; }
.home-back-link {
    display: inline-block;
    margin-bottom: 1rem;
    padding: 0;
    background: none;
    border: none;
    font-size: 0.875rem;
    color: var(--muted);
    cursor: pointer;
    font-family: inherit;
    text-decoration: none;
}
.home-back-link:hover { color: var(--accent); text-decoration: underline; }

/* Startseite: dezente Partner-Rotation zwischen Suche und Aktuelles */
.home-partner-rotator {
    max-width: 100%;
    margin: 0 auto 1.25rem;
    padding: 0;
    overflow: hidden;
}
.home-partner-rotator-title {
    margin: 0 0 0.5rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--accent);
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}
.home-partner-rotator-track {
    position: relative;
    min-height: 92px;
    max-width: 100%;
    overflow: hidden;
}
.home-partner-item {
    display: none;
    position: relative;
    align-items: center;
    gap: 0.75rem;
    padding: 0.7rem 0.85rem;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--card);
    text-decoration: none;
    color: inherit;
    opacity: 0;
    transition: opacity 0.25s ease;
    max-width: 100%;
    box-sizing: border-box;
    overflow: hidden;
}
.home-partner-item.is-active {
    display: flex;
    opacity: 1;
}
.home-partner-item:hover,
.home-partner-item:focus {
    border-color: var(--accent);
}
.home-partner-item-logo-wrap {
    width: 52px;
    height: 52px;
    border-radius: 8px;
    overflow: hidden;
    background: var(--bg);
    flex: 0 0 52px;
}
.home-partner-item-logo {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.home-partner-item-content {
    display: flex;
    flex-direction: column;
    min-width: 0;
    width: 0;
    flex: 1 1 auto;
    max-width: 100%;
    overflow: hidden;
}
.home-partner-item-badge {
    display: inline-block;
    position: absolute;
    right: 0.55rem;
    bottom: 0.45rem;
    margin: 0;
    padding: 0.08rem 0.38rem;
    border-radius: 999px;
    border: 1px solid var(--border);
    background: var(--bg);
    color: var(--muted);
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}
.home-partner-item-name {
    display: block;
    width: 100%;
    white-space: normal;
    font-size: 0.95rem;
    line-height: 1.3;
    color: var(--text);
    overflow-wrap: anywhere;
    word-break: break-word;
    hyphens: auto;
}
.home-partner-item-promoted {
    display: block;
    width: 100%;
    white-space: normal;
    font-size: 0.8rem;
    color: var(--muted);
    overflow-wrap: anywhere;
    word-break: break-word;
    hyphens: auto;
}
.home-partner-item-meta {
    display: block;
    width: 100%;
    white-space: normal;
    margin-top: 0.15rem;
    font-size: 0.72rem;
    color: var(--muted);
    overflow-wrap: anywhere;
    word-break: break-word;
    hyphens: auto;
}
.home-partner-rotator-dots {
    margin-top: 0.45rem;
    display: flex;
    justify-content: center;
    gap: 0.35rem;
}
.home-partner-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    border: none;
    background: var(--border);
    padding: 0;
    cursor: pointer;
}
.home-partner-dot.is-active {
    background: var(--accent);
}

.home-logo-subtitle {
    display: block;
    margin-top: 0;
    font-size: 0.8125rem;
    color: var(--muted);
    text-decoration: none;
}
.home-logo-subtitle:hover { color: var(--accent); text-decoration: underline; }
.home-restart-label {
    display: block;
    width: 100%;
    max-width: 520px;
    margin: 0 auto 0.75rem;
    padding: 0.35rem 0.8rem;
    border-radius: var(--radius);
    border: 1px solid rgba(13, 148, 136, 0.28);
    background: rgba(13, 148, 136, 0.1);
    color: var(--accent-hover);
    text-align: center;
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    line-height: 1.2;
}
.home-logo-link { display: inline-block; }
.home-logo {
    max-width: 220px;
    height: auto;
    display: block;
    margin: 0 auto 0.25rem;
}
.home-suchblock {
    max-width: 520px;
    margin: 0 auto 2rem;
    text-align: left;
}
.home-suchblock-umgebung {
    padding-top: 1.5rem;
    border-top: 1px solid var(--border);
}
.home-suchblock-panel.home-suchblock-umgebung { padding-top: 0; border-top: none; }
.home-suchblock:last-of-type { margin-bottom: 0; }
.home-suchblock-titel {
    font-size: 1rem;
    font-weight: 600;
    color: var(--text);
    margin: 0 0 0.5rem;
}
.home-suchblock-hint {
    font-size: 0.8125rem;
    color: var(--muted);
    margin: 0 0 0.75rem;
}
.home-suchblock-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}
.home-suchblock-inner input[type="text"] {
    flex: 1;
    min-width: 200px;
    margin-bottom: 0;
}
.home-suchblock-umgebung .home-suchblock-inner {
    gap: 0.5rem;
}
.home-suchblock-umgebung .radius-label { margin: 0; align-self: center; }
.home-suchblock-umgebung .radius-select { margin: 0; }
.karte-picker-hinweis { background: rgba(13, 148, 136, 0.08); padding: 0.75rem 1rem; border-radius: 8px; margin-bottom: 0.75rem; border-left: 3px solid var(--accent); }
.karte-picker-hinweis p { margin: 0; font-size: 0.9rem; }
.suchergebnisse-wrap { margin-bottom: 1.5rem; }
.suchergebnisse-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 1rem;
}
.suchergebnisse-header h2 { margin: 0; font-size: 1.1rem; font-weight: 600; }
.btn-karte { flex-shrink: 0; }
.home-map {
    height: 380px;
    border-radius: var(--radius);
    border: 1px solid var(--border);
    overflow: hidden;
    margin-top: 1rem;
    margin-bottom: 0;
}
.home-map-hidden { display: none !important; }

/* Startseiten-Popup (Overlay) */
.start-popup-overlay {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.5);
    padding: 1rem;
    box-sizing: border-box;
}
.start-popup-box {
    position: relative;
    max-width: 480px;
    width: 100%;
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 1.5rem 2.5rem 1.5rem 1.5rem;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
}
.start-popup-close {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: none;
    background: transparent;
    font-size: 1.5rem;
    line-height: 1;
    color: var(--muted);
    cursor: pointer;
    border-radius: 4px;
}
.start-popup-close:hover { color: var(--text); background: var(--border); }
.start-popup-inhalt { font-size: 1rem; line-height: 1.5; }

/* Startseite: letzte Neuigkeiten (dezent unten) */
.home-neuigkeiten {
    margin-top: 2.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--border);
    max-width: 560px;
    margin-left: auto;
    margin-right: auto;
}
.home-neuigkeiten-title {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--accent);
    text-align: center;
    margin: 0 0 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}
.home-neuigkeiten-list { display: flex; flex-direction: column; gap: 1rem; }
.home-neuigkeit-item {
    margin: 0;
    padding: 0;
    border: none;
}
.home-neuigkeit-datum {
    font-size: 0.75rem;
    color: var(--muted);
    display: block;
    margin-bottom: 0.2rem;
}
.home-neuigkeit-titel {
    font-size: 0.9375rem;
    font-weight: 600;
    margin: 0 0 0.25rem;
    line-height: 1.3;
}
.home-neuigkeit-titel a {
    color: var(--text);
    text-decoration: none;
}
.home-neuigkeit-titel a:hover { color: var(--accent); text-decoration: underline; }
.home-neuigkeit-titel a.link-inhalts-style {
    color: var(--accent);
    font-weight: 500;
}
.home-neuigkeit-titel a.link-inhalts-style:hover,
.home-neuigkeit-titel a.link-inhalts-style:focus {
    color: var(--accent-hover);
    text-decoration: underline;
}
.home-neuigkeit-inhalt {
    font-size: 0.9375rem;
    line-height: 1.55;
    margin: 0;
    color: var(--text);
}
.home-neuigkeiten-more {
    margin: 0.75rem 0 0;
    font-size: 0.8125rem;
}
.home-neuigkeiten-more a { color: var(--accent); }
.home-neuigkeiten-more a.link-inhalts-style {
    color: var(--accent);
    font-weight: 500;
    text-decoration: none;
}
.home-neuigkeiten-more a.link-inhalts-style:hover,
.home-neuigkeiten-more a.link-inhalts-style:focus {
    color: var(--accent-hover);
    text-decoration: underline;
}

/* Ladeanzeige Mitte */
.lade-overlay {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    background: rgba(248, 250, 251, 0.92);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s, visibility 0.2s;
}
.lade-overlay.lade-overlay-aktiv {
    opacity: 1;
    visibility: visible;
}
.lade-spinner {
    width: 48px;
    height: 48px;
    border: 4px solid var(--border);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: lade-spin 0.9s linear infinite;
}
.lade-text {
    margin: 0;
    font-size: 0.95rem;
    color: var(--muted);
    font-weight: 500;
}
@keyframes lade-spin {
    to { transform: rotate(360deg); }
}

.home-error {
    background: #fef2f2;
    color: #991b1b;
    padding: 0.75rem 1rem;
    border-radius: 8px;
    margin-bottom: 1rem;
}

/* Inhaltsseiten: gleiches Layout und Stil wie Startseite (z. B. Was ist Wickelkompass, zukünftige Seiten).
   Verwendung: <section class="page-hero"> + Logo-Link (home-logo-link, home-logo) + <h1 class="page-title"> + <div class="content-block"> mit Inhalt */
.page-hero {
    text-align: center;
    padding: 2rem 1.5rem 2.5rem;
    background: transparent;
    margin-bottom: 0;
}
.page-hero .home-logo { margin-bottom: 1.25rem; }
.page-hero .page-title {
    font-size: 1.35rem;
    font-weight: 600;
    color: var(--text);
    margin: 0 0 1.5rem;
}
.content-block {
    max-width: 520px;
    margin: 0 auto 2rem;
    text-align: left;
}
.content-block:last-of-type { margin-bottom: 0; }
.content-block h2 {
    font-size: 1rem;
    font-weight: 600;
    color: var(--accent);
    margin: 1.25rem 0 0.5rem;
}
.content-block h2:first-child { margin-top: 0; }
.content-block p { margin: 0 0 0.75rem; }
.content-block ul { margin: 0 0 0.75rem; padding-left: 1.25rem; }
.content-block li { margin-bottom: 0.35rem; }
.content-block .page-actions { margin-top: 1.5rem; }
.content-block .page-actions .btn { margin-right: 0.5rem; margin-bottom: 0.5rem; }
.content-block .inhaltsverzeichnis-links a {
    color: var(--accent);
    text-decoration: none;
    font-weight: 500;
}
.content-block .inhaltsverzeichnis-links a:hover,
.content-block .inhaltsverzeichnis-links a:focus {
    color: var(--accent-hover);
    text-decoration: underline;
}
.link-inhalts-style {
    color: var(--accent);
    text-decoration: none;
    font-weight: 500;
}
.link-inhalts-style:hover,
.link-inhalts-style:focus {
    color: var(--accent-hover);
    text-decoration: underline;
}

/* Neuigkeiten (öffentlich / Startseite): Links im Text wie Inhaltsverzeichnis */
.neuigkeit-inhalt a:not([class]),
.home-neuigkeit-inhalt a:not([class]) {
    color: var(--accent);
    text-decoration: none;
    font-weight: 500;
}
.neuigkeit-inhalt a:not([class]):hover,
.neuigkeit-inhalt a:not([class]):focus,
.home-neuigkeit-inhalt a:not([class]):hover,
.home-neuigkeit-inhalt a:not([class]):focus {
    color: var(--accent-hover);
    text-decoration: underline;
}

/* Admin Statistik: Links wie Inhaltsverzeichnis „Was ist Wickelkompass“ */
.content-block-statistik .admin-stat-toc-link,
.admin-statistik-page .admin-stat-toc-link {
    color: var(--accent);
    text-decoration: none;
    font-weight: 500;
}
.content-block-statistik .admin-stat-toc-link:hover,
.content-block-statistik .admin-stat-toc-link:focus,
.admin-statistik-page .admin-stat-toc-link:hover,
.admin-statistik-page .admin-stat-toc-link:focus {
    color: var(--accent-hover);
    text-decoration: underline;
}

.admin-besucher-filter {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
    margin: 0.5rem 0 0.75rem;
    padding: 0.65rem 0.75rem;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--card);
    box-sizing: border-box;
}
.admin-besucher-filter label {
    font-weight: 500;
    color: var(--text);
    margin: 0;
    font-size: 0.9375rem;
}
.admin-besucher-filter .admin-besucher-zeitraum-select {
    flex: 1 1 auto;
    min-width: min(100%, 14rem);
    max-width: 22rem;
    padding: 0.5rem 0.75rem;
    min-height: 40px;
    border: 1px solid var(--border);
    border-radius: 8px;
    font-size: 0.9375rem;
    font-family: inherit;
    color: var(--text);
    background: var(--bg);
    box-sizing: border-box;
    cursor: pointer;
    appearance: auto;
}
[data-theme="dark"] .admin-besucher-filter .admin-besucher-zeitraum-select {
    background: var(--bg);
    color: var(--text);
    border-color: var(--border);
}
.admin-besucher-filter .admin-besucher-zeitraum-select:hover {
    border-color: var(--accent);
}
.admin-besucher-filter .admin-besucher-zeitraum-select:focus {
    outline: 2px solid var(--accent);
    outline-offset: 1px;
}
.admin-besucher-filter .btn { margin: 0; flex-shrink: 0; }
.admin-besucher-reset-form {
    margin: 0.35rem 0 0.75rem;
}
@media (max-width: 480px) {
    .admin-besucher-filter .admin-besucher-zeitraum-select {
        min-height: 44px;
        font-size: 16px;
        max-width: none;
        width: 100%;
    }
    .admin-besucher-filter { flex-direction: column; align-items: stretch; }
}

/* Kontakt: Thema-Dropdown wie Admin-Besucher-Statistik (Rahmen + Select) */
.admin-besucher-filter--single-field {
    margin-top: 0.35rem;
    flex-direction: column;
    align-items: stretch;
}
.admin-besucher-filter--single-field .admin-besucher-zeitraum-select {
    max-width: none;
    width: 100%;
}

/* Anker für Scroll nach Zeitraum-Wechsel (Besucherstatistik) */
#admin-besucher-statistik-anchor {
    scroll-margin-top: 1rem;
}

/* Neuigkeiten-Seite */
.neuigkeiten-liste { list-style: none; padding: 0; margin: 0; }
.neuigkeit-item { padding: 1rem 0; border-bottom: 1px solid var(--border); }
.neuigkeit-item:last-child { border-bottom: none; }
.neuigkeit-datum { font-size: 0.8125rem; color: var(--muted); display: block; margin-bottom: 0.25rem; }
.neuigkeit-titel { font-size: 1rem; font-weight: 600; margin: 0 0 0.5rem; color: var(--text); }
.neuigkeit-inhalt { font-size: 0.9375rem; line-height: 1.55; }
.neuigkeit-inhalt p,
.home-neuigkeit-inhalt p {
    margin-bottom: 0;
    margin-top: 0;
}
.neuigkeit-inhalt ul,
.neuigkeit-inhalt ol,
.home-neuigkeit-inhalt ul,
.home-neuigkeit-inhalt ol {
    margin: 0;
    padding-left: 1.25rem;
}
.neuigkeit-inhalt li,
.home-neuigkeit-inhalt li {
    margin-bottom: 0.25rem;
}

/* Externer Newsletter (Brevo-Einbettung) */
.brevo-newsletter-page {
    max-width: 42rem;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    overflow-x: hidden;
}
.brevo-newsletter-page .sib-form {
    margin-top: 1rem;
}

/* Newsletter-Seitenhinweis an Home-Style anpassen */
.brevo-newsletter-page .hint {
    color: var(--text);
    font-size: 0.9375rem;
    line-height: 1.65;
}
.brevo-newsletter-page .hint a {
    color: var(--accent);
    text-decoration: none;
    font-weight: 600;
}
.brevo-newsletter-page .hint a:hover,
.brevo-newsletter-page .hint a:focus {
    color: var(--accent-hover);
    text-decoration: underline;
}
.brevo-newsletter-page iframe {
    background: transparent;
    border-radius: var(--radius);
}

/* Brevo: feste Inline-MaxBreiten/Min-Breiten robust verhindern */
.brevo-newsletter-page #sib-container,
.brevo-newsletter-page .sib-container--large,
.brevo-newsletter-page #sib-form-container,
.brevo-newsletter-page .sib-form-container,
.brevo-newsletter-page .sib-form {
    max-width: 100% !important;
    width: 100% !important;
    box-sizing: border-box;
    overflow-x: hidden !important;
}
.brevo-newsletter-page #sib-container * {
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box;
    overflow-x: hidden !important;
}
.brevo-newsletter-page #sib-container input,
.brevo-newsletter-page #sib-container textarea,
.brevo-newsletter-page #sib-container select {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box;
}
.brevo-newsletter-page #sib-container .sib-form-block__button,
.brevo-newsletter-page #sib-container button[type="submit"] {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
}

/* Brevo: Inline-feste Breiten (z. B. max-width:540px) zuverlässig überschreiben */
.brevo-newsletter-page #sib-container,
.brevo-newsletter-page .sib-container--large,
.brevo-newsletter-page #sib-form-container,
.brevo-newsletter-page .sib-form-container,
.brevo-newsletter-page .sib-form,
.brevo-newsletter-page .sib-form-message-panel {
    max-width: 100% !important;
    width: 100% !important;
    box-sizing: border-box;
}
.brevo-newsletter-page #sib-container * {
    max-width: 100% !important;
    box-sizing: border-box;
    min-width: 0 !important;
}
.brevo-newsletter-page #sib-container,
.brevo-newsletter-page .sib-form-container {
    overflow-x: hidden;
}

/* Brevo Newsletter: Mobile Optimierungen */
@media (max-width: 900px) {
    .brevo-newsletter-page {
        max-width: 100%;
        margin-left: 0;
        margin-right: 0;
        overflow-x: hidden;
        width: 100%;
        box-sizing: border-box;
    }
    .brevo-newsletter-page .sib-form {
        margin-top: 0.75rem;
    }
    .brevo-newsletter-page #sib-container,
    .brevo-newsletter-page .sib-container--large {
        max-width: 100% !important;
        width: 100% !important;
        box-sizing: border-box;
        overflow-x: hidden;
    }
    .brevo-newsletter-page #sib-form-container,
    .brevo-newsletter-page .sib-form-container {
        max-width: 100% !important;
        width: 100% !important;
        box-sizing: border-box;
        overflow-x: hidden;
    }
    .brevo-newsletter-page #sib-container form,
    .brevo-newsletter-page #sib-form,
    .brevo-newsletter-page form#sib-form {
        max-width: 100% !important;
        width: 100% !important;
        box-sizing: border-box;
    }
    .brevo-newsletter-page input,
    .brevo-newsletter-page select,
    .brevo-newsletter-page textarea {
        max-width: 100% !important;
        width: 100% !important;
        box-sizing: border-box;
        min-width: 0 !important;
    }
    /* Brevo-HTML enthält teils feste MaxBreiten (540px) in Inline-Styles – hier robust nachziehen */
    .brevo-newsletter-page #sib-container * {
        max-width: 100% !important;
        box-sizing: border-box;
    }
    .brevo-newsletter-page .sib-form-message-panel {
        max-width: 100% !important;
        width: 100% !important;
        box-sizing: border-box;
    }
    /* Brevo submit button vollbreit auf Mobile */
    .brevo-newsletter-page .sib-form .sib-form-block__button {
        width: 100% !important;
        box-sizing: border-box;
        display: block;
    }
    /* Captcha darf den Container nicht sprengen */
    .brevo-newsletter-page .g-recaptcha {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: auto;
        margin-right: auto;
        overflow: hidden;
    }
    .brevo-newsletter-page .sib-form__declaration {
        text-align: left;
    }
}

/* Portrait: Brevo Inline-MaxBreiten (540px) verursachen manchmal horizontales Überlaufen */
@media (max-width: 900px) and (orientation: portrait) {
    .brevo-newsletter-page {
        width: 100%;
        max-width: 100%;
        overflow-x: hidden;
        padding-left: 0;
        padding-right: 0;
    }
    .brevo-newsletter-page #sib-container,
    .brevo-newsletter-page .sib-container--large {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: hidden;
    }
    .brevo-newsletter-page #sib-form-container,
    .brevo-newsletter-page .sib-form-container {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: hidden;
    }
}

/* Iframe-Embed: immer innerhalb der Breite bleiben */
.brevo-newsletter-page iframe {
    width: 100%;
    max-width: 100%;
    display: block;
    border: 0;
    box-sizing: border-box;
}

/* Mobile: Iframe-Höhe so wählen, dass innen kein Scroll nötig ist */
@media (max-width: 900px) and (orientation: portrait) {
    .brevo-newsletter-page iframe {
        height: 900px;
    }
}

/* Neuigkeiten: Karten + Archiv */
.neuigkeiten-bereich-title { font-size: 1rem; font-weight: 600; margin: 1.25rem 0 0.75rem; padding-bottom: 0.35rem; border-bottom: 1px solid var(--border); color: var(--text); }
.neuigkeiten-bereich-title:first-child { margin-top: 0; }
.neuigkeiten-cards { display: flex; flex-direction: column; gap: 1rem; }
.neuigkeit-card {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 1rem 1.25rem;
    box-shadow: var(--shadow);
}
.neuigkeit-card-header { margin-bottom: 0.5rem; }
.neuigkeit-card .neuigkeit-titel { font-size: 1.05rem; margin: 0.25rem 0 0; }
.neuigkeiten-archiv .neuigkeiten-bereich-title { margin-bottom: 0.5rem; }
.neuigkeiten-archiv-toggle {
    display: inline-flex; align-items: center; width: 100%; padding: 0.5rem 0; margin: 0;
    background: none; border: none; border-bottom: 1px solid var(--border);
    font-size: 1rem; font-weight: 600; color: var(--text); cursor: pointer; text-align: left; font-family: inherit;
}
.neuigkeiten-archiv-toggle:hover { color: var(--accent); }
.neuigkeiten-archiv-toggle::after { content: ' ▼'; font-size: 0.75em; margin-left: 0.25rem; transition: transform 0.2s; display: inline-block; }
.neuigkeiten-archiv-toggle[aria-expanded="true"]::after { transform: rotate(-90deg); }
.neuigkeiten-archiv-list { margin-top: 0.75rem; }
.neuigkeiten-archiv-list.neuigkeiten-archiv-collapsed { display: none; }
.neuigkeiten-monat { font-size: 0.9375rem; font-weight: 600; color: var(--muted); margin: 1rem 0 0.5rem; padding: 0; }
.neuigkeiten-monat:first-child { margin-top: 0; }
.neuigkeit-card-archiv { margin-bottom: 0.75rem; }
.neuigkeiten-pagination { margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid var(--border); }
.neuigkeiten-pagination-info { margin: 0 0 0.75rem; font-size: 0.875rem; color: var(--muted); }
.neuigkeiten-pagination-list { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.neuigkeiten-pagination-list li { margin: 0; }
.neuigkeiten-pagination-list a { text-decoration: none; padding: 0.35rem 0.65rem; border-radius: 6px; color: var(--accent); }
.neuigkeiten-pagination-list a:hover { background: rgba(13, 148, 136, 0.1); }
.neuigkeiten-pagination-list .btn { margin: 0; text-decoration: none; }
.neuigkeiten-pagination-current { display: inline-block; padding: 0.35rem 0.65rem; font-weight: 600; color: var(--accent); background: rgba(13, 148, 136, 0.12); border-radius: 6px; }
.neuigkeit-form { margin-bottom: 1rem; }
.neuigkeit-form label { display: block; margin-bottom: 0.35rem; }
.neuigkeit-form input, .neuigkeit-form textarea { margin-bottom: 0.75rem; }
.admin-neuigkeiten-liste { list-style: none; padding: 0; margin: 0.5rem 0 0; font-size: 0.875rem; }
.admin-neuigkeiten-liste li { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; padding: 0.5rem 0; border-bottom: 1px solid var(--border); }
.admin-neuigkeiten-liste li time { color: var(--muted); font-size: 0.8125rem; }
.admin-neuigkeiten-liste .inline-form { margin-left: auto; }

/* Admin: Neuigkeiten-Archiv (interne Seite) */
.admin-neuigkeiten-archiv-liste { list-style: none; padding: 0; margin: 1rem 0 0; border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; background: var(--card); }
.admin-neuigkeiten-archiv-eintrag {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 1rem;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--border);
}
.admin-neuigkeiten-archiv-eintrag:last-child { border-bottom: none; }
.admin-neuigkeiten-archiv-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.5rem 0.75rem; min-width: 0; }
.admin-neuigkeiten-archiv-meta time { color: var(--muted); font-size: 0.8125rem; flex-shrink: 0; }
.admin-neuigkeiten-archiv-aktionen { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; flex-shrink: 0; }
.admin-neuigkeiten-archiv-aktionen .inline-form { display: inline; margin: 0; }

.form-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 1rem; }
.partner-save-actions {
    display: block;
    margin-top: 0.6rem;
}
.partner-save-actions .btn {
    display: inline-flex;
}

/* Partner & Werbung – öffentliche Seite */
.partner-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.partner-card {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 1rem 1.25rem;
    box-shadow: var(--shadow);
}
.partner-card-header {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-bottom: 0;
}
.partner-card-logo-wrap {
    width: 100%;
    max-width: 100%;
    border-radius: var(--radius);
    background: var(--bg);
    overflow: hidden;
}
.partner-card-logo {
    display: block;
    width: 100%;
    height: auto;
    max-height: 220px;
    object-fit: cover;
}
.partner-card-title-wrap {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-bottom: 0.7rem;
}
/* Spezifisch genug, damit .content-block h2 / .content-block p nicht überschreiben */
.partner-card .partner-card-title-wrap .partner-card-name {
    font-size: 1.3rem;
    font-weight: 600;
    margin: 0;
    line-height: 1.25;
}
.partner-card .partner-card-promoted {
    font-size: 0.875rem;
    color: var(--muted);
    margin: 0 0 0.5rem 0;
    padding-top: 0;
    line-height: 1.25;
}
.partner-card-body {
    margin-top: 0.35rem;
    font-size: 0.9375rem;
}
.partner-card-body p {
    margin: 0;
    line-height: 1.4;
}
.partner-card-footer {
    margin-top: 0.5rem;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.5rem;
}
.partner-badge {
    display: inline-block;
    padding: 0;
    border-radius: 999px;
    font-size: 0.6875rem;
    font-weight: 500;
    background: transparent;
    color: var(--muted);
}
.partner-linktype-wrap {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    opacity: 0.88;
    width: 100%;
    align-items: flex-start;
}
.partner-linktype {
    font-size: 0.75rem;
    color: var(--muted);
    line-height: 1.35;
    display: block;
    text-align: left;
}
.partner-card-footer .btn {
    width: 100%;
    text-align: center;
}

/* Partner & Werbung – Admin-Kartenansicht */
.content-block .partner-admin-list {
    list-style: none;
    padding-left: 0;
    margin: 0.5rem 0 0;
}
.partner-admin-card {
    position: relative;
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 0.85rem 1rem;
    padding-right: 2.75rem;
    box-shadow: var(--shadow);
}
.partner-admin-sort {
    position: absolute;
    top: 0.5rem;
    right: 0.55rem;
    min-width: 1.35rem;
    padding: 0.12rem 0.35rem;
    font-size: 0.65rem;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: 0.02em;
    color: var(--muted);
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 4px;
    text-align: center;
    user-select: none;
    opacity: 0.92;
}
.partner-admin-header {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.25rem 0.75rem;
}
.partner-admin-main {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}
.partner-admin-name {
    font-size: 0.95rem;
}
.partner-admin-promoted {
    font-size: 0.875rem;
    color: var(--muted);
}
.partner-admin-meta {
    font-size: 0.75rem;
    color: var(--muted);
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
}
.partner-admin-body {
    margin-top: 0.4rem;
    font-size: 0.875rem;
}
.partner-admin-footer {
    margin-top: 0.6rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}
.partner-admin-suche-wrap {
    margin: 0.25rem 0 0.9rem;
    width: 100%;
}
.partner-admin-suche-wrap .admin-suchfeld {
    max-width: none;
    width: 100%;
    box-sizing: border-box;
}

/* Admin: Newsletter */
.newsletter-admin-form label { display: block; margin-bottom: 0.25rem; }
.newsletter-admin-form input[type="text"] { width: 100%; max-width: 32rem; box-sizing: border-box; }
.newsletter-wysiwyg-wrap { border: 1px solid var(--border); border-radius: 6px; margin-bottom: 0.5rem; }
.newsletter-admin-form .ql-editor { min-height: 180px; }
.newsletter-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1rem; }
.admin-newsletter-list-title { margin-top: 1.5rem; margin-bottom: 0.5rem; font-size: 1rem; }
.admin-newsletter-liste { list-style: none; padding: 0; margin: 0.5rem 0 0; font-size: 0.875rem; }
.admin-newsletter-liste li { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; padding: 0.5rem 0; border-bottom: 1px solid var(--border); }
.admin-newsletter-liste li time { color: var(--muted); font-size: 0.8125rem; }
.admin-newsletter-liste .inline-form { margin-left: auto; display: inline-block; }
/* Archiv-Seite: Struktur und Basis */
.admin-newsletter-archiv .content-block { margin-left: auto; margin-right: auto; }
.admin-archiv-mobile-list { display: none; list-style: none; padding: 0; margin: 0; }
.admin-archiv-table-wrap { overflow-x: auto; margin-bottom: 1rem; }
.admin-table-archiv { width: 100%; font-size: 0.875rem; }
.admin-table-archiv th,
.admin-table-archiv td { padding: 0.6rem 0.75rem; text-align: left; border-bottom: 1px solid var(--border); vertical-align: middle; }
.admin-table-archiv th { font-weight: 600; background: var(--bg); color: var(--text); }
.admin-table-archiv .archiv-betreff { font-weight: 500; }
.admin-table-archiv .archiv-datum { white-space: nowrap; color: var(--muted); font-size: 0.8125rem; }
.admin-table-archiv .archiv-empfaenger { text-align: center; }
.admin-table-archiv .archiv-aktionen { white-space: nowrap; }
.admin-table-archiv .archiv-aktionen .btn { margin-right: 0.35rem; }
.admin-table-archiv .archiv-delete-form { display: inline; margin: 0; }
/* Aktionen in eigener Zeile unter den Daten – einheitliche Breite */
.admin-table-archiv .archiv-aktionen-row td {
    border-bottom: 1px solid var(--border);
    padding-top: 0.4rem;
    padding-bottom: 0.6rem;
    background: var(--bg);
    font-size: 0.8125rem;
}
.admin-table-archiv .archiv-data-row td { border-bottom: none; }
.admin-archiv-back { margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid var(--border); }

#orte-liste:empty { display: none; }
.orte-liste.section-list {
    background: var(--bg);
    list-style: none;
    margin: 0 0 1.5rem;
    padding: 0;
}

/* Sterne-Bewertung */
.kosten-block { margin-top: 0.35rem; margin-bottom: 0; }
.checkbox-row { display: inline-flex; align-items: center; gap: 0.5rem; margin: 0; font-weight: 500; cursor: pointer; }
.checkbox-row input { width: auto; margin: 0; }
.betrag-wrap { margin-top: 0.5rem; }
.bewertung-block { margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid var(--border); }
.bewertung-block h2,
.bewertung-block h3 { margin: 0 0 0.35rem; font-size: 1rem; font-weight: 600; color: var(--accent); }
.rating-hint { margin: 0 0 1rem; font-size: 0.875rem; color: var(--muted); }
.rating-row { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; }
.rating-row label { margin: 0; min-width: 100px; font-weight: 500; }
.stars { display: inline-flex; gap: 0.2rem; }
.stars button {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    font-size: 1.5rem;
    line-height: 1;
    color: var(--border);
}
.stars button:hover,
.stars button.active { color: #f59e0b; }
.stars button[data-value] { transition: color 0.15s; }
.review-textarea { min-height: 100px; }

/* Admin Standort-Test */
.admin-standort-aktuell { margin-bottom: 1.5rem; }
.admin-standort-aktuell h2 { margin: 0 0 0.35rem; font-size: 1.1rem; }
.standort-anzeige { margin-top: 1rem; }
.standort-anzeige p { margin: 0.4rem 0; }
.standort-anzeige code { background: var(--bg); padding: 0.15rem 0.4rem; border-radius: 4px; font-size: 0.9em; }
.standort-anzeige .error { color: #b91c1c; }
.standort-anzeige .ok { color: #0d9488; margin-top: 0.5rem; }
.standort-hinweis { font-size: 0.875rem; color: var(--muted); background: var(--bg); padding: 0.6rem 0.75rem; border-radius: 8px; margin: 0.5rem 0 1rem; border-left: 3px solid var(--accent); }
.standort-karte { margin-top: 0.75rem; min-height: 220px; }
.standort-karte:empty { min-height: 0; }
.admin-test-form .form-grid { margin-bottom: 1rem; }
.admin-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; }
.admin-actions .btn { margin: 0; }
.admin-checkbox { display: inline-flex; align-items: center; gap: 0.35rem; margin: 0; font-weight: normal; font-size: 0.875rem; }
.admin-checkbox input { width: auto; margin: 0; }
.admin-status { font-size: 0.875rem; color: var(--muted); margin-top: 0.5rem; }
.admin-status.error { color: #b91c1c; }
.admin-result { margin-top: 1rem; }
.admin-table-wrap { overflow-x: auto; margin-bottom: 1rem; }
.admin-table { width: 100%; border-collapse: collapse; font-size: 0.875rem; }
.admin-table th, .admin-table td { padding: 0.5rem 0.75rem; text-align: left; border-bottom: 1px solid var(--border); }
.admin-table th { font-weight: 600; background: var(--bg); }
.content-block-beitraege,
.content-block-rollen,
.content-block-nutzer { margin-top: 1.5rem; }
.content-block-beitraege h2,
.content-block-rollen h2,
.content-block-nutzer h2 { margin-top: 0; padding-bottom: 0.5rem; border-bottom: 1px solid var(--border); }

/* Admin: Alle Nutzer – Suchfeld bündig mit Nutzerkarten */
.admin-nutzer-suche-wrap { margin-bottom: 1rem; width: 100%; }
.admin-nutzer-suche {
    width: 100%;
    padding: 0.5rem 0.75rem;
    font-size: 1rem;
    border: 1px solid var(--border);
    border-radius: 6px;
    box-sizing: border-box;
}

/* Admin: auf-/zuklappbare Bereiche */
.admin-section-collapse .admin-section-head { margin: 0 0 0.5rem; padding: 0; border: none; }
.admin-section-toggle {
    display: flex; align-items: center; width: 100%; padding: 0.5rem 0; margin: 0;
    background: none; border: none; border-bottom: 1px solid var(--border);
    font-size: inherit; font-weight: 600; color: var(--text); cursor: pointer; text-align: left;
    font-family: inherit;
}
.admin-section-toggle:hover { color: var(--accent); }
.admin-section-toggle::after {
    content: ' ▼'; margin-left: 0.25rem; font-size: 0.75em; font-weight: 400; transition: transform 0.2s; display: inline-block;
}
.admin-section-toggle[aria-expanded="false"]::after { transform: rotate(-90deg); }
.admin-section-body { overflow: hidden; }
.admin-section-body.admin-section-collapsed { display: none; }

.admin-quick-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.admin-quick-actions .btn { margin: 0; }
.admin-statistik-subtitle { font-size: 1rem; font-weight: 600; margin: 0 0 0.5rem; color: var(--text); }

/* Admin Statistik: Unterbereiche auf-/zuklappbar (details/summary) */
.admin-stat-sub {
    margin-top: 0.75rem;
    border: 1px solid var(--border);
    border-radius: 8px;
    overflow: hidden;
    background: var(--bg);
}
.admin-stat-sub:first-child { margin-top: 0; }
.admin-stat-sub > .admin-stat-sub-summary {
    display: flex;
    align-items: center;
    width: 100%;
    padding: 0.55rem 0.75rem;
    margin: 0;
    list-style: none;
    cursor: pointer;
    font-size: 1rem;
    font-weight: 600;
    color: var(--text);
    font-family: inherit;
    background: var(--bg);
    border-bottom: 1px solid transparent;
    box-sizing: border-box;
}
.admin-stat-sub[open] > .admin-stat-sub-summary { border-bottom-color: var(--border); }
.admin-stat-sub > .admin-stat-sub-summary::-webkit-details-marker { display: none; }
.admin-stat-sub > .admin-stat-sub-summary::after {
    content: ' ▼';
    margin-left: 0.35rem;
    font-size: 0.75em;
    font-weight: 400;
    transition: transform 0.2s;
    display: inline-block;
}
.admin-stat-sub:not([open]) > .admin-stat-sub-summary::after { transform: rotate(-90deg); }
.admin-stat-sub > .admin-stat-sub-summary:hover { color: var(--accent); }
.admin-stat-sub-body { padding: 0.65rem 0.75rem 0.85rem; }
.admin-stat-sub-body > .hint:first-child { margin-top: 0; }

.admin-besucher-zahlen { list-style: none; padding-left: 0; margin: 0.5rem 0 1rem; line-height: 1.6; }
.admin-besucher-zahlen li { margin: 0.25rem 0; }
.muted { color: var(--muted); font-size: 0.875rem; }
.admin-table tr.in-radius { background: rgba(13, 148, 136, 0.06); }
.admin-table tr.out-radius { color: var(--muted); }
.admin-table .inline-form { display: inline; margin: 0; }
.role-badge { display: inline-block; padding: 0.2rem 0.5rem; border-radius: 6px; font-size: 0.75rem; font-weight: 500; }
.role-badge.role-admin { background: rgba(13, 148, 136, 0.2); color: var(--accent-hover); }
.role-badge.role-moderator { background: rgba(100, 116, 139, 0.2); color: var(--muted); }
.role-badge.role-user { background: var(--bg); color: var(--text); }
.role-badge.role-wickler { background: rgba(59, 130, 246, 0.2); color: #2563eb; }
.role-badge.role-superadmin { background: rgba(124, 58, 237, 0.2); color: #5b21b6; }
.status-badge { display: inline-block; padding: 0.2rem 0.5rem; border-radius: 6px; font-size: 0.75rem; font-weight: 500; }
.status-badge.status-ok { background: rgba(16, 185, 129, 0.2); color: #047857; }
.status-badge.status-pending { background: rgba(245, 158, 11, 0.2); color: #b45309; }
.status-badge.status-draft { background: rgba(100, 116, 139, 0.2); color: var(--muted); }
.status-freigeschaltet-von { display: block; font-size: 0.75rem; color: var(--muted); margin-top: 0.2rem; }
.btn-approve { background: var(--accent); color: #fff; border: none; }
.btn-approve:hover { background: var(--accent-hover); }
.btn-reject { background: #b45309; color: #fff; border: none; }
.btn-reject:hover { background: #92400e; }
.admin-actions-cell { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; }
.admin-beitrag-actions-row { background: var(--bg); }
.admin-beitrag-actions-cell {
    padding: 0.5rem 1rem;
    border-top: none;
    border-bottom: 1px solid var(--border);
    display: flex;
    flex-wrap: nowrap;
    gap: 0.5rem;
    align-items: stretch;
    width: 100%;
    box-sizing: border-box;
}
.admin-beitrag-actions-cell > * {
    flex: 1 1 0;
    min-width: 0;
}
/* Bearbeiten-Link wie Löschen-Button: Text zentriert platzieren */
.admin-beitrag-actions-cell > a.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    text-decoration: none;
}
.admin-beitrag-actions-cell .inline-form {
    display: flex;
    margin: 0;
    min-width: 0;
}
.admin-beitrag-actions-cell .inline-form .btn {
    flex: 1;
    width: 100%;
    min-width: 0;
}
.admin-beitrag-detail-row { background: var(--bg); }
.admin-beitrag-detail-row.admin-detail-collapsed { display: none; }
.admin-beitrag-detail-cell { padding: 0.75rem 1rem; vertical-align: top; border-top: none; border-bottom: 1px solid var(--border); }
.admin-beitrag-detail { font-size: 0.875rem; line-height: 1.5; }
.admin-beitrag-detail p { margin: 0 0 0.5rem; }
.admin-beitrag-detail p:last-child { margin-bottom: 0; }
.admin-detail-leer { color: var(--muted); }
.admin-beitrag-toggle-cell { vertical-align: middle; }
.admin-detail-toggle {
    display: inline-flex; align-items: center; gap: 0.35rem;
    padding: 0.35rem 0.5rem; margin: 0; margin-right: 0.5rem;
    background: var(--bg); border: 1px solid var(--border); border-radius: 6px;
    font-size: 0.8125rem; color: var(--text); cursor: pointer; font-family: inherit;
}
.admin-detail-toggle:hover { background: var(--border); }
.admin-detail-toggle-icon { font-size: 0.65rem; line-height: 1; }
.admin-beitrag-name { vertical-align: middle; }
.admin-table-beitraege .admin-beitrag-toggle-cell { min-width: 0; }

/* Admin: Pagination Wickelorte */
.admin-pagination { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--border); }
.admin-pagination-info { margin: 0 0 0.75rem; font-size: 0.875rem; color: var(--muted); }
.admin-pagination-list { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.admin-pagination-list li { margin: 0; }
.admin-pagination-list .btn { margin: 0; text-decoration: none; }
.admin-pagination-current { display: inline-block; padding: 0.35rem 0.65rem; font-weight: 600; color: var(--accent); background: rgba(13, 148, 136, 0.12); border-radius: 6px; }

/* Moderation: Details + Aktionen übersichtlich gruppiert, unter dem Eintrag */
.mod-aktionen-row { background: var(--bg); }
.mod-aktionen-row td { border-bottom: 1px solid var(--border); padding: 0.5rem 0.75rem; vertical-align: middle; }
.mod-aktionen-cell { vertical-align: middle; }
.mod-aktionen-wrap {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.5rem;
    width: 100%;
}
.mod-aktionen-wrap .admin-detail-toggle { margin: 0; width: 100%; }
.mod-aktionen-wrap .mod-action-form { display: block; margin: 0; width: 100%; }
.mod-aktionen-wrap .mod-action-form .btn { width: 100%; }
.mod-aktionen-wrap .btn-reject,
.mod-aktionen-wrap .btn-danger { width: 100%; margin: 0; }
.mod-card-aktionen {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--border);
}
.mod-card-aktionen .admin-detail-toggle-card { margin: 0; width: 100%; min-height: 44px; }
.mod-card-aktionen .mod-action-form { margin: 0; width: 100%; display: block; }
.mod-card-aktionen .mod-action-form .btn { width: 100%; min-height: 44px; margin: 0; }
.mod-card-aktionen .btn { flex: none; width: 100%; min-width: 0; min-height: 44px; margin: 0; box-sizing: border-box; }

/* Admin: Karten-Listen (mobile) + Desktop/Mobile Umschaltung – nur eine Ansicht sichtbar */
/* Alle Wickelorte + Alle Nutzer: immer Kartenansicht (wie mobil), Tabelle ausblenden */
.admin-beitraege-desktop { display: none !important; }
.admin-beitraege-mobile { display: flex !important; flex-direction: column; gap: 0.75rem; list-style: none; padding: 0; margin: 0; }
.content-block-beitraege .admin-beitraege-mobile { padding-left: 0; padding-right: 0; }
.content-block-beitraege .admin-beitraege-suche-wrap { width: 100%; }
.content-block-beitraege .admin-beitraege-suche-wrap .admin-suchfeld { max-width: none; width: 100%; box-sizing: border-box; }
.content-block-beitraege .admin-beitraege-status-wrap .radius-label { margin: 0; }
.content-block-beitraege .admin-beitraege-status-wrap .radius-select { min-height: 44px; padding: 0.75rem; box-sizing: border-box; }
.content-block-beitraege .admin-beitraege-status-links { display: flex; flex-wrap: nowrap; gap: 0.75rem; }
.content-block-beitraege .admin-beitraege-status-links .btn { white-space: nowrap; }
.admin-nutzer-desktop { display: none !important; }
.admin-nutzer-mobile { display: flex !important; flex-direction: column; gap: 0.75rem; list-style: none; padding: 0; margin: 0; }
.content-block-nutzer .admin-nutzer-mobile { padding-left: 0; padding-right: 0; }
/* Rollen verwalten: übersichtliches Karten-Layout */
.admin-rollen-hint { margin: 0 0 1rem; color: var(--muted); font-size: 0.9375rem; }
.admin-rollen-empty { margin: 0.5rem 0; color: var(--muted); }
.admin-rollen-suche-wrap { margin-bottom: 1rem; width: 100%; }
.content-block-rollen .admin-rollen-list { padding-left: 0; padding-right: 0; width: 100%; }
.content-block-rollen .admin-rollen-card { width: 100%; box-sizing: border-box; }
.admin-rollen-suche {
    width: 100%; max-width: 100%; box-sizing: border-box;
    padding: 0.6rem 0.75rem;
    font-size: 1rem;
    border: 1px solid var(--border);
    border-radius: 6px;
}
.admin-rollen-suche:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 2px rgba(13, 148, 136, 0.2); }
.admin-rollen-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.75rem; }
.admin-rollen-card {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 1rem 1.25rem;
    box-shadow: var(--shadow);
}
.admin-rollen-card-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 1rem;
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--border);
}
.admin-rollen-card-user { display: flex; flex-direction: column; gap: 0.15rem; min-width: 0; }
.admin-rollen-card-name { font-weight: 600; font-size: 1rem; color: var(--text); }
.admin-rollen-card-login { font-size: 0.8125rem; color: var(--muted); }
.admin-rollen-card-form-wrap { margin-top: 0; }
.admin-rollen-form { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem; }
.admin-rollen-label { font-size: 0.9375rem; font-weight: 500; color: var(--text); margin: 0; flex-shrink: 0; }
.admin-rollen-form-row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; flex: 1; min-width: 0; }
.admin-rollen-select {
    min-height: 44px; padding: 0.5rem 0.75rem;
    border: 1px solid var(--border); border-radius: 6px;
    font-size: 0.9375rem; font-family: inherit;
    min-width: 140px; max-width: 100%;
}
.admin-rollen-form-row .btn { flex-shrink: 0; }

.admin-cards-list { display: flex; flex-direction: column; gap: 0.75rem; }
.admin-card {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 1rem;
    box-shadow: var(--shadow);
}
.admin-card-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem; margin-bottom: 0.35rem; }
.admin-card-head strong { font-size: 0.9375rem; }
.admin-card-meta { font-size: 0.8125rem; color: var(--muted); margin-bottom: 0.5rem; }
.admin-card-detail { font-size: 0.875rem; line-height: 1.5; margin-top: 0.5rem; padding-top: 0.75rem; border-top: 1px solid var(--border); }
.admin-card-detail.admin-detail-collapsed { display: none; }
.admin-card-detail p { margin: 0 0 0.5rem; }
.admin-detail-toggle-card { width: 100%; justify-content: center; margin: 0.25rem 0; min-height: 44px; }
.admin-card-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.75rem; padding-top: 0.5rem; border-top: 1px solid var(--border); }
.admin-card-actions .btn { flex: 1; min-width: 120px; min-height: 44px; }
/* Bearbeiten-Link wie Löschen-Button: Text zentriert */
.admin-card-actions a.btn { display: inline-flex; align-items: center; justify-content: center; text-align: center; text-decoration: none; }
.admin-card-form { flex: 1; min-width: 0; }
.admin-card-form .btn { width: 100%; min-height: 44px; }
.admin-card-muted { font-size: 0.875rem; color: var(--muted); }
.form-set-role-card { display: flex; flex-direction: column; gap: 0.5rem; margin-top: 0.5rem; }
.form-set-role-card .role-select { width: 100%; min-height: 44px; padding: 0.5rem; }
.form-set-role-card .btn { width: 100%; min-height: 44px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.admin-suchfeld,
.meine-beitraege-suche-wrap input { width: 100%; max-width: 320px; padding: 0.5rem 0.75rem; border: 1px solid var(--border); border-radius: 6px; font-size: 0.9375rem; font-family: inherit; }
.admin-suchfeld:focus,
.meine-beitraege-suche-wrap input:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 2px rgba(13, 148, 136, 0.2); }
.form-set-role { display: inline-flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
.form-set-role .role-select { width: auto; margin: 0; padding: 0.35rem 0.5rem; }
.admin-map { height: 400px; border-radius: var(--radius); border: 1px solid var(--border); margin-top: 1rem; }
.standort-user-marker { background: #2563eb; color: #fff; border: 2px solid #fff; border-radius: 50%; font-size: 14px; line-height: 20px; text-align: center; box-shadow: 0 1px 4px rgba(0,0,0,0.3); }

/* Stadtsuche Autocomplete auf der Startseite */
.stadt-suggest-list {
    margin-top: 0.35rem;
    max-width: 320px;
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: 6px;
    box-shadow: var(--shadow);
    padding: 0.25rem 0;
    display: none;
    position: relative;
    z-index: 10;
}
.stadt-suggest-item {
    display: block;
    width: 100%;
    text-align: left;
    padding: 0.35rem 0.75rem;
    background: transparent;
    border: none;
    font-size: 0.9375rem;
    font-family: inherit;
    color: var(--text);
    cursor: pointer;
}
.stadt-suggest-item:hover,
.stadt-suggest-item:focus {
    background: var(--bg);
    outline: none;
}

/* ========== Mobile (max-width: 768px) ========== */
@media (max-width: 768px) {
    .container {
        padding-left: max(1rem, env(safe-area-inset-left));
        padding-right: max(1rem, env(safe-area-inset-right));
    }
    .main { padding: 1.25rem 1rem; }
    .site-header {
        padding: 0.6rem 1rem;
        padding-left: max(1rem, env(safe-area-inset-left));
        padding-right: max(1rem, env(safe-area-inset-right));
    }
    .site-header .container { gap: 0; align-items: stretch; flex-wrap: wrap; }
    .site-header .container-header { justify-content: center; }
    .menu-toggle {
        display: inline-flex;
        min-height: 44px;
    }
    .nav {
        display: none;
        flex-direction: column;
        width: 100%;
        order: 10;
        gap: 0;
        padding: 0.5rem 0 0;
        border-top: 1px solid var(--border);
        margin-top: 0.5rem;
    }
    .nav.nav-open { display: flex; }
    .nav a {
        font-size: 0.9rem;
        padding: 0.65rem 0.5rem;
        min-height: 44px;
        display: flex;
        align-items: center;
        border-radius: 6px;
    }
    .nav a:hover { background: var(--bg); }
    .section { padding: 1.25rem 1rem; margin-bottom: 1.25rem; }
    .section h1 { font-size: 1.2rem; }
    input, textarea {
        padding: 0.75rem 0.85rem;
        font-size: 16px;
        min-height: 44px;
    }
    textarea { min-height: 88px; }
    .btn {
        padding: 0.75rem 1.25rem;
        min-height: 44px;
        min-width: 44px;
    }
    .btn-small { padding: 0.5rem 0.85rem; min-height: 44px; }
    .home-hero { padding: 1.5rem 1rem 2rem; }
    .page-hero { padding: 1.5rem 1rem 2rem; background: var(--bg); }
    .page-hero .page-title { font-size: 1.2rem; margin-bottom: 1.25rem; }
    .content-block { margin-bottom: 1.5rem; padding: 0; background: var(--bg); border: none; box-shadow: none; }
    /* Impressum & Datenschutz: Buttons auf Mobil untereinander, volle Breite */
    .impressum-text .page-actions,
    .datenschutz-text .page-actions {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 0.5rem;
    }
    .impressum-text .page-actions .btn,
    .datenschutz-text .page-actions .btn {
        width: 100%;
        margin-right: 0;
        margin-bottom: 0;
        text-align: center;
        box-sizing: border-box;
    }
    .main { background: var(--bg); }
    html, body { background: var(--bg); }
    .home-logo { max-width: min(280px, 85vw); width: min(280px, 85vw); margin-bottom: 0.25rem; }
    .home-suchblock { margin-bottom: 1.5rem; max-width: 100%; }
    .home-suchblock-umgebung { padding-top: 1.25rem; }
    .home-suchblock-inner {
        flex-direction: column;
        align-items: stretch;
        gap: 0.6rem;
    }
    .home-choice-card { min-height: 56px; padding: 1rem 1.25rem; }
    .home-partner-rotator {
        width: 100%;
        max-width: 100%;
        margin-left: 0;
        margin-right: 0;
        padding: 0;
        box-sizing: border-box;
    }
    .home-suchblock-inner input[type="text"] { min-width: 0; width: 100%; }
    .home-suchblock-inner .btn { width: 100%; }
    .home-suchblock-umgebung .home-suchblock-inner .radius-label { order: -1; }
    .home-suchblock-umgebung .radius-select {
        width: 100%;
        padding: 0.75rem;
        min-height: 44px;
    }
    .suchergebnisse-header {
        flex-direction: column;
        align-items: stretch;
        gap: 0.5rem;
    }
    .suchergebnisse-header .btn-karte { width: 100%; }
    .home-map { height: 280px; margin-top: 0.75rem; }
    .ort-item { padding: 1rem 0; }
    .ort-item-footer { flex-direction: row; }
    .ort-item-footer .btn-details-toggle,
    .ort-item-footer .btn-karte-eintrag,
    .ort-item-footer .btn-google-route { min-height: 44px; width: auto; flex: 0 0 auto; }
    .search-results { max-height: min(65vh, 520px); }
    .search-results .item { min-height: 44px; padding: 0.75rem 0.85rem; }
    .ort-suche-row { flex-direction: column; }
    .ort-suche-row input { min-width: 0; }
    .ort-suche-row .umgebung-btn { width: 100%; }
    .admin-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; margin-left: -0.5rem; margin-right: -0.5rem; padding-left: 0.5rem; padding-right: 0.5rem; }
    .admin-table { min-width: 520px; }
    .admin-table th, .admin-table td { padding: 0.6rem 0.5rem; font-size: 0.8125rem; }
    .admin-table .btn-small { min-height: 44px; padding: 0.5rem 0.65rem; }
    .form-set-role { flex-direction: column; align-items: stretch; width: 100%; gap: 0.5rem; }
    .form-set-role .role-select { width: 100%; min-height: 44px; padding: 0.5rem 0.65rem; font-size: 16px; }
    .form-set-role .btn-small { width: 100%; min-height: 44px; }
    .admin-neuigkeiten-liste li { flex-direction: column; align-items: flex-start; gap: 0.35rem; padding: 0.75rem 0; }
    .admin-neuigkeiten-liste .inline-form { margin-left: 0; margin-top: 0.25rem; }
    .admin-neuigkeiten-liste .btn-small { min-height: 44px; width: 100%; }
    /* Admin-Backend Statistik im Dashboard (Beiträge pro Stadt / Wickler) – Breite wie Neuigkeiten */
    #section-statistik .admin-table-wrap {
        margin-left: 0;
        margin-right: 0;
        padding-left: 0;
        padding-right: 0;
    }
    #section-statistik .admin-table-statistik {
        min-width: 0;
        width: 100%;
    }
    /* Admin: Statistik-Seiten (Wickler/Städte) – Tabellen mobil besser lesbar, Breite wie Neuigkeiten */
    .content-block-statistik .admin-table-wrap {
        margin-left: 0;
        margin-right: 0;
        padding-left: 0;
        padding-right: 0;
    }
    .content-block-statistik .admin-table-statistik {
        min-width: 0;
        width: 100%;
    }
    .content-block-statistik .admin-table-statistik th,
    .content-block-statistik .admin-table-statistik td { padding: 0.6rem 0.5rem; font-size: 0.8125rem; }
    .admin-neuigkeiten-archiv-eintrag { flex-direction: column; align-items: flex-start; }
    .admin-neuigkeiten-archiv-aktionen { width: 100%; }
    .admin-neuigkeiten-archiv-aktionen .btn { min-height: 44px; }
    .admin-neuigkeiten-archiv-aktionen .inline-form .btn { width: 100%; }
    .neuigkeit-form input, .neuigkeit-form textarea { width: 100%; font-size: 16px; min-height: 44px; box-sizing: border-box; }
    .neuigkeit-form textarea { min-height: 120px; }
    .neuigkeit-form .btn { width: 100%; min-height: 44px; }
    .newsletter-admin-form input[type="text"] { width: 100%; max-width: none; font-size: 16px; min-height: 44px; }
    .newsletter-actions { flex-direction: column; }
    .newsletter-actions .btn { width: 100%; min-height: 44px; }
    .admin-newsletter-liste li { flex-direction: column; align-items: flex-start; gap: 0.35rem; padding: 0.75rem 0; }
    .admin-newsletter-liste .inline-form { margin-left: 0; margin-top: 0.25rem; }
    .admin-newsletter-liste .btn-small { min-height: 44px; width: 100%; }
    /* Archiv: auf Mobil Karten statt Tabelle */
    .admin-newsletter-archiv .admin-archiv-table-wrap { display: none; }
    .admin-newsletter-archiv .admin-archiv-mobile-list { display: block; list-style: none; padding: 0; margin: 1rem 0 1.5rem; }
    .admin-archiv-card {
        padding: 1rem;
        margin-bottom: 0.75rem;
        background: var(--card);
        border: 1px solid var(--border);
        border-radius: 8px;
    }
    .admin-archiv-card-head { font-weight: 600; margin-bottom: 0.5rem; word-break: break-word; }
    .admin-archiv-card-meta { font-size: 0.875rem; color: var(--muted); margin-bottom: 0.75rem; }
    .admin-archiv-card-meta span { display: block; }
    .admin-archiv-card-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; }
    .admin-archiv-card-actions .btn { min-height: 44px; }
    .admin-archiv-card-actions .inline-form { margin: 0; }
    .admin-actions { flex-direction: column; align-items: stretch; gap: 0.5rem; }
    .admin-actions .btn { width: 100%; min-height: 44px; }
    .admin-checkbox { min-height: 44px; align-items: center; }
    .admin-test-form .form-grid { grid-template-columns: 1fr; }
    .admin-test-form input, .admin-test-form select { min-height: 44px; font-size: 16px; }
    .admin-test-form .btn { min-height: 44px; width: 100%; }
    .admin-map { height: 280px; margin-top: 0.75rem; }
    .content-block h2 { font-size: 1rem; margin-top: 1rem; }
    .content-block h2:first-child { margin-top: 0; }
    .site-footer { padding: 0.85rem 1rem; font-size: 0.8125rem; }
    .cookie-banner { padding: 1rem; }
    .cookie-banner-inner { flex-direction: column; align-items: stretch; gap: 0.75rem; }
    .cookie-banner-buttons { flex-direction: column; }
    .cookie-banner-buttons .btn-cookie { width: 100%; min-height: 44px; }
    /* Admin-Backend mobil */
    .admin-table-beitraege { min-width: 480px; }
    .admin-beitrag-toggle-cell { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
    .admin-detail-toggle { min-height: 44px; padding: 0.5rem 0.75rem; font-size: 0.875rem; flex-shrink: 0; }
    .admin-beitrag-name { word-break: break-word; min-width: 0; }
    .admin-actions-cell { flex-direction: column; align-items: stretch; }
    .admin-actions-cell .btn-small,
    .admin-actions-cell .btn-approve,
    .admin-actions-cell .btn-reject,
    .admin-actions-cell .btn-danger { width: 100%; min-height: 44px; }
    .admin-actions-cell .inline-form { width: 100%; }
    .admin-actions-cell .inline-form .btn { width: 100%; min-height: 44px; }
    .admin-beitrag-detail-cell { padding: 1rem; font-size: 0.875rem; }
    .admin-beitrag-detail p { margin-bottom: 0.75rem; }
    .page-hero .content-block { padding: 1rem; }
    /* Rollen verwalten: Mobil – Formular untereinander */
    .admin-rollen-form { flex-direction: column; align-items: stretch; }
    .admin-rollen-label { margin-bottom: 0.25rem; }
    .admin-rollen-form-row { flex-direction: column; }
    .admin-rollen-select { width: 100%; min-height: 44px; font-size: 16px; }
    .admin-rollen-form-row .btn { width: 100%; min-height: 44px; }
    /* Admin: Auf Mobil nur Karten anzeigen */
    .admin-beitraege-desktop,
    .admin-nutzer-desktop { display: none !important; }
    .admin-beitraege-mobile,
    .admin-nutzer-mobile { display: flex !important; flex-direction: column; gap: 0.75rem; }
    /* Moderation/Admin: Beitrags-Box auf Mobil so breit wie die Linie unter der Überschrift (wie .content-block) */
    .content-block-beitraege {
        max-width: 520px;
        width: 100%;
        margin-left: auto;
        margin-right: auto;
    }
    /* Admin: Filter „Alle Wickelorte“ – mobil vertikal + Dropdown über Suche */
    .content-block-beitraege .admin-beitraege-filters {
        flex-direction: column;
        flex-wrap: nowrap;
        align-items: stretch !important;
        gap: 0.6rem !important;
    }
    .content-block-beitraege .admin-beitraege-status-wrap {
        order: -1;
    }
    .content-block-beitraege .admin-beitraege-status-links {
        flex-direction: column;
        flex-wrap: nowrap;
        gap: 0.6rem;
    }
    .content-block-beitraege .admin-beitraege-status-links .btn {
        width: 100%;
        white-space: normal;
        text-align: center;
    }

    /* Abgelehnte Beiträge: Mobile-Aktionen untereinander */
    .admin-beitraege-abgelehnt-mobile .admin-card-actions {
        flex-direction: column;
        align-items: stretch;
    }
    .admin-beitraege-abgelehnt-mobile .admin-card-actions .btn,
    .admin-beitraege-abgelehnt-mobile .admin-card-actions .admin-card-form {
        width: 100%;
    }
}

/* Desktop: Startseite und Layout verbessern (Mobile bleibt unverändert) */
@media (min-width: 769px) {
    .main { padding: 1.75rem 2rem 3rem; }
    .home-hero {
        max-width: 560px;
        margin-left: auto;
        margin-right: auto;
        padding: 1.5rem 2rem 3rem;
        text-align: center;
    }
    .home-logo {
        max-width: 390px;
        margin-bottom: 0.25rem;
    }
    .home-suchblock {
        max-width: 100%;
        margin-bottom: 2rem;
        text-align: left;
        padding: 1.5rem 1.75rem;
        background: var(--card);
        border-radius: var(--radius);
        border: 1px solid var(--border);
        box-shadow: var(--shadow);
    }
    .home-suchblock-umgebung {
        padding-top: 1.75rem;
        border-top: 1px solid var(--border);
        margin-top: 0;
    }
    .home-suchblock-titel {
        font-size: 1.05rem;
        margin-bottom: 0.6rem;
    }
    .home-suchblock-inner {
        gap: 0.6rem;
    }
    .home-suchblock-inner input[type="text"] {
        min-width: 240px;
        max-width: 320px;
    }
    /* Desktop: genau wie Mobile untereinander */
    .home-suchblock-umgebung .home-suchblock-inner {
        flex-direction: column;
        flex-wrap: nowrap;
        align-items: stretch;
        gap: 0.6rem;
    }
    .home-suchblock-umgebung .radius-label {
        margin: 0;
        align-self: flex-start;
    }
    .home-suchblock-umgebung .radius-select {
        width: 100%;
        margin-right: 0;
        padding: 0.75rem;
        min-height: 44px;
    }
    .home-suchblock-umgebung .home-suchblock-inner .btn {
        width: 100%;
        min-height: 44px;
    }

    /* Admin: Filter „Alle Wickelorte“ Desktop wie Mobile (vertikal + volle Breite) */
    .content-block-beitraege .admin-beitraege-filters {
        flex-direction: column !important;
        flex-wrap: nowrap !important;
        align-items: stretch !important;
        gap: 0.6rem !important;
    }
    .content-block-beitraege .admin-beitraege-status-wrap {
        order: -1;
        width: 100%;
    }
    .content-block-beitraege .admin-beitraege-suche-wrap {
        width: 100%;
    }
    .content-block-beitraege .admin-beitraege-status-links {
        flex-direction: column;
        width: 100%;
        gap: 0.6rem;
    }
    .content-block-beitraege .admin-beitraege-status-links .btn {
        width: 100%;
        white-space: normal;
        text-align: center;
    }
    .suchergebnisse-wrap {
        max-width: 720px;
        margin-left: auto;
        margin-right: auto;
        margin-bottom: 2rem;
    }
    .home-map { height: 420px; }
    /* Inhaltsseiten wie Startseite */
    .page-hero {
        max-width: 560px;
        margin-left: auto;
        margin-right: auto;
        padding: 2.5rem 2rem 3rem;
    }
    .content-block {
        max-width: 100%;
        margin-bottom: 2rem;
        padding: 1.5rem 1.75rem;
        background: var(--card);
        border-radius: var(--radius);
        border: 1px solid var(--border);
        box-shadow: var(--shadow);
    }
    .content-block:last-of-type { margin-bottom: 0; }
    .content-block h2 { font-size: 1.05rem; margin-top: 1.5rem; }
    /* Partner & Werbung: Auf Desktop Karten nebeneinander */

    /* Newsletter-Archiv: Desktop – Tabelle sichtbar, Karten ausgeblendet */
    .admin-newsletter-archiv.page-hero {
        max-width: 800px;
        margin-left: auto;
        margin-right: auto;
        padding: 2.5rem 2rem 3rem;
        text-align: left;
    }
    .admin-newsletter-archiv .admin-archiv-inner {
        max-width: 100%;
        padding: 0;
    }
    .admin-newsletter-archiv .admin-archiv-table-wrap {
        margin-top: 1rem;
        margin-bottom: 1.5rem;
        border: 1px solid var(--border);
        border-radius: 8px;
        overflow: hidden;
        background: var(--card);
    }
    .admin-newsletter-archiv .admin-table-archiv {
        margin: 0;
    }
    .admin-newsletter-archiv .admin-table-archiv th {
        padding: 0.75rem 1rem;
        border-bottom: 1px solid var(--border);
    }
    .admin-newsletter-archiv .admin-table-archiv td {
        padding: 0.75rem 1rem;
    }
    .admin-newsletter-archiv .admin-table-archiv .archiv-betreff {
        max-width: 280px;
        word-break: break-word;
    }
    .admin-newsletter-archiv .admin-archiv-back {
        margin-top: 1.5rem;
        padding-top: 1rem;
        border-top: 1px solid var(--border);
    }
}

/* Sehr kleine Displays */
@media (max-width: 380px) {
    .home-logo { max-width: min(260px, 88vw); width: min(260px, 88vw); }
    .nav a { font-size: 0.85rem; }
}
