/*
 * Design D (Beta 0.7.19): hell, klar, kaum Rundungen.
 * Wird NACH app.css geladen und überschreibt das frühere dunkle Design.
 * Schriften bleiben unverändert (Inter / Roboto / Permanent Marker aus app.css).
 * Zum Abschalten: Link auf theme-d.css in includes/header.php entfernen.
 */
:root {
  --sm-bg: #F8F6F2;
  --sm-surface: #FFFFFF;
  --sm-surface-2: #F3EFE8;
  --sm-text: #212429;
  --sm-black: #2A2B2D;
  --bs-body-color: #212429;
  --bs-emphasis-color: #212429;
  --bs-heading-color: #212429;
  --sm-muted: #5B6472;
  --sm-border-dark: #E4DED2;
  --sm-border: #E4DED2;
  --sm-panel: #FFFFFF;
  --sm-red: #B5121B;
  --sm-red-dark: #8F0E15;
  --sm-radius: 5px;
  --sm-radius-lg: 6px;
  --sm-shadow: 0 1px 1px rgba(14,17,22,.04), 0 22px 44px -28px rgba(14,17,22,.30);
  --sm-glow: 0 10px 28px -10px rgba(181,18,27,.55), 0 6px 34px -8px rgba(255,217,59,.35);
}
html { background:#0B0C0E !important; }
body { background:transparent !important; color:var(--sm-text); }
/* Hintergrund-Muster: liegt fest hinter der Seite, wird gekachelt und scheint zu 15 % durch (Funktionen → Bilder der Seite). */
body::before {
  content:""; position:fixed; inset:0; z-index:0; pointer-events:none;
  background-image:var(--sm-bg-image, none); background-size:auto; background-position:top left; background-repeat:repeat; /* Muster wird gekachelt */
  opacity:.15;
}
main, .app-footer { position:relative; z-index:1; }
.text-secondary { color: var(--sm-muted) !important; }
.text-white, .text-light { color: var(--sm-text) !important; }
.border, .border-top, .border-bottom { border-color: var(--sm-border-dark) !important; }
hr { border-color: var(--sm-border-dark); opacity:1; }

/* ---------- Kopfleiste ---------- */
.app-navbar {
  background:#fff !important; border-bottom:1px solid var(--sm-border-dark);
  box-shadow:0 1px 1px rgba(14,17,22,.04), 0 18px 40px -26px rgba(14,17,22,.25) !important;
}
.app-navbar .navbar-brand, .app-navbar .navbar-brand strong { color:var(--sm-text) !important; }
.app-navbar .nav-link { color:var(--sm-muted) !important; border-radius:var(--sm-radius); font-weight:600; }
.app-navbar .nav-link:hover, .app-navbar .nav-link:focus { color:var(--sm-text) !important; background:var(--sm-surface-2); }
.app-navbar .nav-link.active, .app-navbar .nav-link[aria-current="page"] { color:#fff !important; background:var(--sm-text); }
.app-navbar .navbar-toggler { border:1px solid var(--sm-border-dark) !important; }
.app-navbar .navbar-toggler-icon { filter: invert(1) brightness(.2); }
.user-menu-button, .app-navbar .btn-light {
  background:var(--sm-red) !important; border-color:var(--sm-red) !important; color:#fff !important; box-shadow:var(--sm-glow);
}
.dropdown-menu, .user-dropdown-menu {
  background:#fff; border:1px solid var(--sm-border-dark); border-radius:var(--sm-radius-lg);
  box-shadow:var(--sm-shadow); --bs-dropdown-link-color:var(--sm-text); --bs-dropdown-link-hover-bg:var(--sm-surface-2); --bs-dropdown-link-hover-color:var(--sm-text);
}
.dropdown-header { color:var(--sm-muted); }
.dropdown-item { color:var(--sm-text); }
.dropdown-item.text-danger { color:var(--sm-red) !important; }
.dropdown-divider { border-color:var(--sm-border-dark); }
.online-dot { box-shadow:0 0 0 3px rgba(111,168,42,.18); }

/* Hinweiszeilen unter der Kopfleiste: schmal und eckig */
.stammtisch-topline { background:#FFD93B; color:#212429 !important; border-bottom:1px solid rgba(14,17,22,.15); }
.stammtisch-topline:hover, .stammtisch-topline:focus { background:#F5CB1F; color:#212429 !important; }
.assembly-topline { background:#212429; color:#fff !important; border-bottom:0; }
.assembly-topline:hover, .assembly-topline:focus { background:#1E242C; color:#fff !important; }

/* ---------- Karten und Boxen ---------- */
.panel, .feature-card, .drink-chip, .drink-choice, .modal-content, .order-card, .theke-summary, .theke-empty,
.member-pill, .function-card, .current-drink, .install-card, .news-post {
  background:var(--sm-surface); color:var(--sm-text); border:1px solid var(--sm-border-dark);
  border-radius:var(--sm-radius-lg); box-shadow:var(--sm-shadow);
}
.panel .panel, .member-pill, .drink-chip { box-shadow:none; }
.current-drink, .install-card { background:var(--sm-surface); }
.drink-choice.active { background:#FDEDEE; border-color:var(--sm-red); }
.drink-choice:hover { border-color:#BDB4A3; }
.news-post { border-left:3px solid var(--sm-red); }
.spiess-delegation-active, .spiess-delegation-notice { background:linear-gradient(90deg,rgba(181,18,27,.07),transparent 45%), #fff; border-left:4px solid var(--sm-red); }
.stat-number { color:var(--sm-text); }
.eyebrow { color:var(--sm-red) !important; }
.section-title, h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { color:var(--sm-text); text-shadow:none !important; }
.hero h1, .hero .lead { color:var(--sm-text) !important; }
.function-card:hover, a.panel:hover { border-color:#C9C0AE; }
.function-card-icon, .icon-tile, .placeholder-icon { background:#FDEDEE; color:var(--sm-red); border-radius:var(--sm-radius); }
.dashboard-news-panel { background:var(--sm-surface); }
.dashboard-news-row, .dashboard-news-row:hover { color:var(--sm-text) !important; }
.dashboard-news-row i { color:var(--sm-muted); }

/* ---------- Seitenmenü (Rechner) ---------- */
.side-nav { background:#fff; border:1px solid var(--sm-border-dark); border-radius:var(--sm-radius-lg); box-shadow:var(--sm-shadow); }
.side-user { border-bottom:1px solid var(--sm-border-dark); }
.side-nav a { color:#2B323D; border:1px solid transparent; border-radius:var(--sm-radius); font-weight:600; }
.side-nav a:hover { background:var(--sm-surface-2); border-color:transparent; color:var(--sm-text); }
.side-nav a.active { background:#FDEDEE; color:var(--sm-red); border-color:transparent; }
.badge-role { background:var(--sm-text); color:#fff; border-color:var(--sm-text); }

/* ---------- Knöpfe ---------- */
.btn { border-radius:var(--sm-radius); transition:transform .15s ease, box-shadow .15s ease, background-color .15s ease; }
.btn-brand { background:var(--sm-red); border-color:var(--sm-red); color:#fff; box-shadow:var(--sm-glow); }
.btn-brand:hover, .btn-brand:focus { background:var(--sm-red-dark); border-color:var(--sm-red-dark); color:#fff; }
.btn-dark { background:var(--sm-text); border-color:var(--sm-text); color:#fff; }
.btn-dark:hover, .btn-dark:focus { background:#262D37; border-color:#262D37; color:#fff; }
.btn-outline-dark, .btn-outline-secondary, .btn-soft { color:var(--sm-text); background:#fff; border-color:#CFC7B7; }
.btn-outline-dark:hover, .btn-outline-dark:focus, .btn-outline-secondary:hover, .btn-outline-secondary:focus, .btn-soft:hover, .btn-soft:focus {
  color:#fff; background:var(--sm-text); border-color:var(--sm-text);
}
.btn-outline-danger { color:var(--sm-red); border-color:#E3A6AA; background:#fff; }
.btn-outline-danger:hover, .btn-outline-danger:focus { color:#fff; background:var(--sm-red); border-color:var(--sm-red); }
.btn-outline-success { color:#3F6212; border-color:#A9CC7A; background:#fff; }
.btn-outline-success:hover, .btn-outline-success:focus { color:#212429; background:#B9DC79; border-color:#B9DC79; }
.btn-light { background:#fff; color:var(--sm-text); border-color:var(--sm-border-dark); }
.btn-close { filter:none; }
.modal .btn-close { filter:none; opacity:.7; }
.pwa-install-button { box-shadow:var(--sm-glow); }

/* ---------- Formulare ---------- */
.form-control, .form-select { background:#fff; color:var(--sm-text); border:1px solid #CFC7B7; border-radius:var(--sm-radius); }
.form-control::placeholder { color:#8A93A3; }
.form-control:focus, .form-select:focus { background:#fff; color:var(--sm-text); border-color:var(--sm-red); box-shadow:0 0 0 .2rem rgba(181,18,27,.14); }
.form-control:disabled, .form-select:disabled { background:var(--sm-surface-2); }
.form-label, .form-check-label { color:var(--sm-text); }
.form-text { color:var(--sm-muted); }
.form-check-input { background-color:#fff; border-color:#9C9382; }
.form-check-input:checked { background-color:var(--sm-red); border-color:var(--sm-red); }
.form-switch .form-check-input:not(:checked) { background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%239C9382'/%3e%3c/svg%3e"); }
.input-group-text { background:var(--sm-surface-2); color:var(--sm-text); border-color:#CFC7B7; }
.vote-option > .vote-bar { background:rgba(181,18,27,.12); }
.vote-option > .vote-bar-none { background:rgba(14,17,22,.07); }
.form-check.border:hover { border-color:var(--sm-red) !important; background-color:rgba(181,18,27,.04); }

/* ---------- Tabellen, Hinweise, Marken ---------- */
.table { --bs-table-color:var(--sm-text); --bs-table-bg:transparent; --bs-table-border-color:var(--sm-border-dark); --bs-table-striped-color:var(--sm-text); --bs-table-hover-color:var(--sm-text); --bs-table-hover-bg:#F3EFE8; }
.table thead th { color:var(--sm-muted); }
a:not(.btn):not(.nav-link):not(.navbar-brand):not(.mobile-bottom-nav a):not(.side-nav a):not(.dropdown-item):not(.function-card):not(.stammtisch-topline):not(.assembly-topline):not(.sektbar-topline) { color:var(--sm-red); }
a:not(.btn):not(.nav-link):not(.dropdown-item):hover { color:var(--sm-red-dark); }
.alert { border-radius:var(--sm-radius-lg); border:1px solid transparent; }
.alert-success { background:#EAF5D9; color:#2D4A0E; border-color:#CFE5AE; }
.alert-danger { background:#FDEAEA; color:#7F0D13; border-color:#F2C2C5; }
.alert-warning { background:#FFF5CF; color:#6B4E00; border-color:#F1DC8A; }
.alert-info, .alert-secondary { background:#EEF1F5; color:#2B323D; border-color:#D9DFE7; }
.badge { border-radius:var(--sm-radius); }
.badge.text-bg-secondary { background:#E4DED2 !important; color:#2B323D !important; }
.modal-header, .modal-footer { border-color:var(--sm-border-dark); }
.modal-backdrop { --bs-backdrop-bg:#212429; }
.progress { background:#E9E3D7; border-radius:var(--sm-radius); }
code, kbd { color:var(--sm-red); background:#F3EFE8; border-radius:var(--sm-radius); padding:.1rem .3rem; }
details > summary { cursor:pointer; }

/* ---------- Handy: untere Navigation ---------- */
.mobile-bottom-nav { background:rgba(255,255,255,.97); border-top:1px solid var(--sm-border-dark); box-shadow:0 -10px 30px -16px rgba(14,17,22,.25); }
.mobile-bottom-nav a { color:var(--sm-muted); }
.mobile-bottom-nav a.active { color:var(--sm-red); background:#FDEDEE; }

/* ---------- Fußzeile: dunkler Akzent ---------- */
.app-footer { background:#0B0D12; color:#98A1B2; }
.app-footer .version-note, .version-note { color:#98A1B2; }
.version-note:hover { color:#fff; }
.modal-content .btn-outline-secondary { color:var(--sm-text); }

/* ---------- Rundungen überall auf das Minimum ---------- */
.rounded, .rounded-1, .rounded-2, .rounded-3, .rounded-4, .rounded-5 { border-radius:var(--sm-radius) !important; }
.rounded-pill { border-radius:999px !important; }
.border.rounded.p-3, .form-check.border { border-radius:var(--sm-radius) !important; }
.panel, .feature-card, .modal-content, .side-nav, .drink-chip, .drink-choice, .order-card, .theke-summary, .theke-empty { border-radius:var(--sm-radius-lg); }
@media (max-width:575.98px){ .panel, .feature-card, .order-card { border-radius:var(--sm-radius-lg); } }

/* ---------- Texte, die im dunklen Design hell waren ---------- */
.side-nav, .side-user strong, .side-user b { color:var(--sm-text); }
.side-nav .text-secondary { color:var(--sm-muted) !important; }
.theke-summary, .theke-summary .text-secondary { color:var(--sm-text); }
.theke-summary .text-secondary { color:var(--sm-muted) !important; }
.cash-amount, .round-stat-time, .round-stat-date, .dashboard-personal-value, .personal-round-number { color:var(--sm-text); }
.cash-fee, .round-stat-time.cash-fee { color:var(--sm-red); }
.cash-note, .chronik-notes { color:#3A4350; }
.news-body, .news-body p, .news-body li { color:#1F2630; }
.news-body a, .wysiwyg-editor a { color:var(--sm-red); }
.wysiwyg-editor blockquote, .news-body blockquote { color:#3A4350; border-left-color:var(--sm-red); background:#F3EFE8; }
.wysiwyg-editor { background:#fff; color:var(--sm-text); border-color:#CFC7B7; }
.wysiwyg-toolbar { background:var(--sm-surface-2); border-color:#CFC7B7; }
.wysiwyg-btn, .wysiwyg-toolbar button { background:#fff; color:var(--sm-text); border:1px solid #CFC7B7; border-radius:var(--sm-radius); }
.wysiwyg-btn:hover, .wysiwyg-btn:focus-visible, .wysiwyg-toolbar button:hover { background:var(--sm-text); color:#fff; }
#newsUploadStatus { color:#3F6212; }
.user-dropdown-menu { background:#fff; }
.user-dropdown-menu .dropdown-header { color:var(--sm-muted); }
.user-dropdown-menu .dropdown-item { color:var(--sm-text); }
.user-dropdown-menu .dropdown-item:hover, .user-dropdown-menu .dropdown-item:focus { background:var(--sm-surface-2); color:var(--sm-text); }
.user-dropdown-menu .dropdown-item.text-danger { color:var(--sm-red); }
.drink-favorite-btn { color:#9C9382; }
.drink-favorite-btn.active { color:#D98F00; }
.pull-refresh-pill { background:#fff; color:var(--sm-text); border:1px solid var(--sm-border-dark); box-shadow:var(--sm-shadow); }
a { text-decoration-color:currentColor; }
.app-navbar .nav-link:hover, .app-navbar .nav-link:focus { color:var(--sm-text) !important; }
.navbar-brand strong { color:var(--sm-text); }
.hero h1, .public-hero h1 { color:var(--sm-text); }
.hero .lead, .public-hero .lead { color:var(--sm-muted); }
.stammtisch-topline, .stammtisch-topline:hover, .stammtisch-topline:focus { color:#212429 !important; }
.function-card, .function-card strong { color:var(--sm-text) !important; }
.function-card .text-secondary { color:var(--sm-muted) !important; }

/* ---------- Öffentliche Seiten: Startseite und Chronik ebenfalls hell ---------- */
html:has(body.home-page) { background-color:#0B0C0E !important; }
body.home-page { background-color:transparent !important; color:var(--sm-text) !important; }
body.home-page main, body.home-page .home-minimal { background-color:var(--sm-bg) !important; color:var(--sm-text) !important; }
body.home-page .home-minimal, body.home-page .home-minimal {
  background:radial-gradient(circle at 50% 8%, rgba(181,18,27,.10), rgba(255,217,59,.10) 38%, transparent 62%), var(--sm-bg) !important;
}
body.home-page .home-minimal-card, body.home-page h1 { color:var(--sm-text) !important; text-shadow:none; }
body.home-page .home-minimal-card .btn-light, body.home-page .home-minimal-card .btn-outline-light { background:#fff; color:var(--sm-text); border:1px solid #CFC7B7; }
.home-club-logo { filter:drop-shadow(0 14px 28px rgba(14,17,22,.18)); }
.home-page .eyebrow, .public-page .eyebrow { color:var(--sm-red); }
.hero, .public-hero {
  background:radial-gradient(circle at 82% 18%, rgba(255,217,59,.14), transparent 32%), radial-gradient(circle at 12% 0%, rgba(181,18,27,.08), transparent 36%), var(--sm-bg);
  color:var(--sm-text); border-bottom:1px solid var(--sm-border-dark);
}
.hero h1, .public-hero h1 { color:var(--sm-text) !important; text-shadow:none; }
.hero .lead, .public-hero .lead { color:var(--sm-muted) !important; }
.public-page main > section:not(.public-hero) { background:var(--sm-bg); }
.chronik-year { color:var(--sm-red); }
.chronik-notes { background:#fff; border-left-color:var(--sm-red); border-radius:0; color:#3A4350; }
.timeline-row:before { box-shadow:0 0 0 3px rgba(181,18,27,.12); }
.public-page .panel h2, .public-page .panel p { color:var(--sm-text); }
body.home-page .home-minimal-card { background-color:transparent !important; }
.public-page { background:transparent !important; color:var(--sm-text); }
.public-page main { background:var(--sm-bg) !important; color:var(--sm-text); }
.public-page .panel { background:#fff; }
.public-page .app-footer, .home-page .app-footer { background:#0B0D12; }
.badge.rounded-pill, .btn.rounded-pill { border-radius:var(--sm-radius) !important; }

/* ---------- Seitenrahmen: Inhalt als zentrierte helle Spalte auf dunklem Grund (wie bei Kellerkinder) ---------- */
:root { --sm-shell:1320px; }
.app-navbar, .stammtisch-topline, .assembly-topline, .sektbar-topline, main, .app-footer {
  position:relative; z-index:1; width:100%; max-width:var(--sm-shell); margin-left:auto; margin-right:auto;
}
.app-navbar { position:sticky; z-index:1030; }
main { background:var(--sm-bg); }
.app-navbar { box-shadow:0 1px 1px rgba(14,17,22,.04), 0 18px 40px -26px rgba(14,17,22,.25) !important; }
/* Schatten der Spalte liegt hinter den Inhalten, damit er die gelbe Zeile nicht abdunkelt */
body::after { content:""; position:fixed; top:0; bottom:0; left:50%; width:min(100%,var(--sm-shell)); transform:translateX(-50%); box-shadow:0 0 90px rgba(0,0,0,.6); z-index:0; pointer-events:none; }
/* In der Spalte bleibt seitlich Luft */
@media (min-width:1400px){
  .app-navbar > .container, main .container, .app-footer .container { max-width:calc(var(--sm-shell) - 48px); }
  .app-navbar, main, .app-footer { border-left:1px solid #1A1D22; border-right:1px solid #1A1D22; }
}

/* ---------- Seitenabstand: Inhalt klebt nicht mehr am Rand (app.css setzte padding:2rem 0 und nahm dem Container den seitlichen Abstand) ---------- */
.dashboard-shell { padding-left:calc(var(--bs-gutter-x, 1.5rem) * .5); padding-right:calc(var(--bs-gutter-x, 1.5rem) * .5); }
@media (max-width:575.98px){ .container { --bs-gutter-x:1.5rem; } }

/* ---------- Handy: Kopfleiste in einer Zeile, 10 px Luft nach oben ---------- */
@media (max-width:991.98px){
  .app-navbar { padding-top:calc(env(safe-area-inset-top, 0px) + 10px) !important; }
}
@media (max-width:575.98px){
  .app-navbar > .container { gap:.25rem; }
  .app-navbar .navbar-brand { margin-right:0; min-width:0; flex:0 1 auto; }
  .app-navbar .navbar-brand strong { font-size:.95rem; white-space:nowrap; }
  .header-club-logo { height:38px; }
  .user-menu-button { max-width:120px; padding:.3rem .5rem; font-size:.82rem; }
  .app-navbar .navbar-toggler { padding:.3rem .5rem; }
}
@media (max-width:389.98px){
  .app-navbar .navbar-brand strong { font-size:.82rem; }
  .header-club-logo { height:34px; }
  .app-navbar .online-dot { display:none; }
  .user-menu-button { max-width:96px; }
}

/* ---------- Weitere Stellen, die noch dunkel waren ---------- */
.drink-favorite-btn { background:#fff; border:1px solid #CFC7B7; color:#8A8272; box-shadow:0 1px 2px rgba(14,17,22,.08); }
.drink-favorite-btn:hover { border-color:#B5121B; color:#B5121B; }
.drink-favorite-btn.active { background:#FFF3C4; border-color:#E0B100; color:#B07A00; }
.member-card { background:#fff; border-color:var(--sm-border-dark); border-radius:var(--sm-radius-lg); color:var(--sm-text); }
.wysiwyg-shell { background:#fff; border-color:#CFC7B7; border-radius:var(--sm-radius); }

/* Kalender (0.7.28): Monatsraster mit bis zu drei Einträgen je Tag, Liste der nächsten Termine */
.cal-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); border-top:1px solid var(--sm-border); border-left:1px solid var(--sm-border); }
.cal-weekday { font-size:.75rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--sm-muted); text-align:center; padding:.35rem 0; background:var(--sm-surface-2); border-right:1px solid var(--sm-border); border-bottom:1px solid var(--sm-border); }
.cal-day { min-height:104px; padding:.25rem; border-right:1px solid var(--sm-border); border-bottom:1px solid var(--sm-border); background:#fff; display:flex; flex-direction:column; gap:2px; cursor:pointer; min-width:0; transition:background-color .15s ease; }
.cal-day:hover, .cal-day:focus-visible { background:#FBF9F5; outline:none; }
.cal-day:focus-visible { box-shadow:inset 0 0 0 2px var(--sm-red); }
.cal-day.is-weekend { background:#FCFBF8; }
.cal-day.is-other { background:var(--sm-surface-2); }
.cal-day.is-other .cal-num { color:#A49C8C; }
.cal-num { font-size:.8rem; font-weight:600; line-height:1.5rem; width:1.5rem; text-align:center; border-radius:50%; align-self:flex-end; }
.cal-day.is-today .cal-num { background:var(--sm-red); color:#fff; }
.cal-chip { display:block; width:100%; border:0; border-radius:3px; padding:1px 4px; font-size:.72rem; line-height:1.3; text-align:left; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; background:var(--cal-c); color:var(--cal-t); cursor:pointer; }
.cal-chip:hover { filter:brightness(1.08); }
.cal-chip-time { font-weight:700; }
.cal-more { font-size:.7rem; color:var(--sm-muted); padding-left:2px; }
.cal-badge { display:inline-block; border-radius:999px; padding:.15rem .6rem; font-size:.75rem; font-weight:600; background:var(--cal-c); color:var(--cal-t); }
/* Handy: Einträge als schmale Farbstreifen mit den Anfangsbuchstaben (ohne Uhrzeit); Antippen des Tages zeigt die Details */
@media (max-width:575.98px){
  .cal-panel { padding-left:.5rem !important; padding-right:.5rem !important; }
  .cal-day { min-height:64px; padding:2px 1px; }
  .cal-chip { font-size:.58rem; line-height:1.25; padding:0 2px; border-radius:2px; text-overflow:clip; font-weight:600; letter-spacing:-.01em; pointer-events:none; }
  .cal-chip-time { display:none; }
  .cal-more { font-size:.62rem; line-height:1; }
  .cal-num { align-self:center; font-size:.75rem; }
}
.cal-list li + li { margin-top:.5rem; }
.cal-list-item { display:flex; gap:.75rem; width:100%; text-align:left; background:#fff; border:1px solid var(--sm-border); border-left:5px solid var(--cal-c); border-radius:var(--sm-radius); padding:.6rem .75rem; color:var(--sm-text); transition:border-color .15s ease, transform .15s ease; }
.cal-list-item:hover { border-color:#C9C0AE; border-left-color:var(--cal-c); transform:translateY(-1px); }
.cal-list-date { flex:0 0 2.75rem; display:flex; flex-direction:column; align-items:center; line-height:1.1; font-size:.72rem; color:var(--sm-muted); }
.cal-list-date strong { font-size:1.35rem; color:var(--sm-text); }
.cal-list-wd { font-weight:700; text-transform:uppercase; }
.cal-list-body { min-width:0; flex:1; }
.cal-list-note { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cal-detail-row { display:flex; gap:.75rem; margin-top:.85rem; }
.cal-detail-row > i { color:var(--sm-muted); font-size:1.1rem; margin-top:.15rem; }
.cal-detail-value { white-space:pre-wrap; overflow-wrap:anywhere; }
.cal-cat-picker { display:flex; flex-wrap:wrap; gap:.4rem; }
.cal-cat-option { position:relative; cursor:pointer; margin:0; }
.cal-cat-option input { position:absolute; opacity:0; inset:0; }
.cal-cat-option span { display:inline-flex; align-items:center; gap:.35rem; border-radius:999px; padding:.3rem .75rem; font-size:.85rem; font-weight:600; background:var(--cal-c); color:var(--cal-t); opacity:.55; border:2px solid transparent; transition:opacity .15s ease; }
.cal-cat-option input:checked + span { opacity:1; border-color:var(--sm-text); }
.cal-cat-option input:checked + span::before { content:"\2713"; }
.cal-cat-option input:focus-visible + span { outline:2px solid var(--sm-red); outline-offset:2px; }

/* Hauptmenü in Gruppen (0.7.30): Termine, Getränke, Info, Funktionen mit Untermenüs */
.app-navbar .nav-group-toggle { background:none; border:0; width:100%; text-align:left; align-items:center; }
.app-navbar .nav-group-link, .app-navbar .nav-group-toggle { align-items:center; gap:.3rem; }
.nav-group-caret { font-size:.65em; opacity:.7; transition:transform .15s ease; }
.nav-group-toggle[aria-expanded="true"] .nav-group-caret { transform:rotate(180deg); }
.nav-group-menu { min-width:12rem; }
.nav-group-menu .dropdown-item { border-radius:var(--sm-radius); font-weight:500; }
.nav-group-menu .dropdown-item i { color:var(--sm-muted); }
.nav-group-menu .dropdown-item.active, .nav-group-menu .dropdown-item:active { background:var(--sm-surface-2); color:var(--sm-red); font-weight:600; }
.nav-group-menu .dropdown-item.active i { color:var(--sm-red); }
@media (min-width:992px){
  .nav-group { position:relative; }
  .nav-group > .nav-group-menu { margin-top:0; padding:.35rem; }
  /* Unsichtbare Brücke, damit das Menü beim Runterfahren mit der Maus offen bleibt */
  .nav-group > .nav-group-menu::before { content:""; position:absolute; left:0; right:0; top:-12px; height:12px; }
  .nav-group:hover > .nav-group-menu, .nav-group:has(> .nav-group-link:focus-visible) > .nav-group-menu { display:block; }
  .nav-group:hover .nav-group-caret { transform:rotate(180deg); }
}
@media (max-width:991.98px){
  .nav-group-menu { border:0; box-shadow:none; background:transparent; padding:0 0 .25rem 1rem; margin:0; }
}
.app-navbar .nav-link.active:hover, .app-navbar .nav-link.active:focus, .app-navbar .nav-link.active[aria-expanded="true"] { color:#fff !important; background:var(--sm-text); }
.app-navbar .nav-group-menu .dropdown-item { color:var(--sm-text) !important; }
.app-navbar .nav-group-menu .dropdown-item:hover, .app-navbar .nav-group-menu .dropdown-item:focus { background:var(--sm-surface-2); }
.app-navbar .nav-group-menu .dropdown-item.active { color:var(--sm-red) !important; }
@media (max-width:991.98px){ .app-navbar .nav-link.active { padding-left:.6rem; padding-right:.6rem; } }

/* Bilder der Seite (0.7.38): Vorschau Muster/Gruppenfoto, Gruppenfoto in der Chronik */
.site-image-panel { scroll-margin-top:110px; }
.site-image-pattern-preview { height:160px; border:1px solid var(--sm-border-dark); border-radius:var(--sm-radius); background-color:#0B0C0E; background-repeat:repeat; }
.site-image-photo-preview { display:block; width:100%; max-height:260px; object-fit:cover; border-radius:var(--sm-radius); border:1px solid var(--sm-border-dark); }
.chronik-group-photo { margin:0; padding:0; overflow:hidden; }
.chronik-group-photo img { display:block; width:100%; height:auto; }
.chronik-group-photo figcaption { padding:.6rem 1rem; font-size:.9rem; color:var(--sm-muted); text-align:center; }
