/* Supporter:innen-Portal im gleichen visuellen System wie die Kandi-Ansicht. */
body.support-page {
  --s-bg: #f5f7fa;
  --s-surface: #fff;
  --s-surface-soft: #f8fafc;
  --s-line: #dfe5eb;
  --s-line-strong: #cbd4de;
  --s-text: #142033;
  --s-muted: #667386;
  --s-navy: #18334d;
  --s-navy-soft: #eaf1f7;
  --s-red-soft: #fff0f2;
  --s-shadow: 0 10px 30px rgb(31 48 65 / 7%);
  min-height: 100vh;
  padding-bottom: 0;
  background: #fff;
  color: var(--ink);
}

.support-page :is(button, a, input, select, textarea, summary):focus-visible {
  outline: 3px solid color-mix(in srgb, var(--red) 42%, transparent);
  outline-offset: 2px;
}

.support-page .topbar {
  position: sticky;
  top: 0;
  z-index: 40;
  min-height: 64px;
  padding: 0 24px;
  border-bottom: 1px solid var(--s-line);
  background: rgb(255 255 255 / 94%);
  box-shadow: 0 1px 5px rgb(25 43 60 / 4%);
  backdrop-filter: blur(14px);
}

.support-who-avatar {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  border-radius: 50%;
  background: var(--s-navy);
  color: #fff;
  font-size: .72rem;
  font-weight: 750;
}
.support-who-avatar:empty { display: none; }
.support-who { max-width: 220px; overflow: hidden; color: var(--s-text); font-size: .82rem; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.support-who:empty { display: none; }

.support-layout { min-height: calc(100vh - 64px); }
.support-eyebrow { margin: 0; color: var(--red); font-size: .68rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }

/* Registrierung */
#supportRegister { max-width: 1120px; margin: 0 auto; padding: clamp(30px, 6vw, 76px) 28px; }
.support-auth-shell {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(380px, .95fr);
  min-height: 610px;
  overflow: hidden;
  border: 1px solid var(--s-line);
  border-radius: 24px;
  background: var(--s-surface);
  box-shadow: 0 22px 70px rgb(18 39 59 / 12%);
}
.support-auth-story {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  background: #b51446;
}
.support-auth-story img { display: block; width: 100%; height: 100%; object-fit: cover; }
.support-auth-card { align-self: center; padding: clamp(34px, 5vw, 64px); }
.support-auth-card h1 { margin-top: 7px; color: var(--s-text); font-size: 2rem; }
.support-auth-card .lead { margin-top: 10px; color: var(--s-muted); font-size: .92rem; }
.support-auth-card .field { margin-top: 18px; }
.support-auth-card .field input { min-height: 48px; border-color: var(--s-line-strong); background: var(--s-surface); }
.support-auth-card .btn-pri { min-height: 48px; }
.support-page #supportLoginOpen { margin-top: 13px; color: var(--red); }
.support-private-link { margin-top: 23px; color: var(--s-muted); font-size: .8rem; text-align: center; }
.support-private-link a { color: var(--red); font-weight: 650; }
.support-auth-card .device-note { margin-top: 11px; color: var(--s-muted); font-size: .73rem; }

/* App-Rahmen */
#supportApp:not([hidden]) {
  display: grid;
  grid-template-columns: 230px minmax(0, 1fr);
  min-height: calc(100vh - 64px);
  background: var(--s-bg);
}
.support-sidebar {
  position: sticky;
  top: 64px;
  display: flex;
  align-self: start;
  flex-direction: column;
  width: 230px;
  height: calc(100vh - 64px);
  padding: 22px 14px 18px;
  border-right: 1px solid var(--s-line);
  background: var(--s-surface);
}
.support-nav-label { padding: 0 12px 9px; color: #8b96a3; font-size: .67rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.support-page .support-nav { display: flex; flex-direction: column; gap: 5px; margin: 0; overflow: visible; border: 0; }
.support-page .support-nav button {
  position: relative;
  display: flex;
  flex: none;
  align-items: center;
  gap: 8px;
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  border: 0;
  border-radius: 9px;
  color: #5d6979;
  font-size: .82rem;
  text-align: left;
}
.support-page .support-nav button span { width: 23px; font-size: 1.15rem; text-align: center; }
.support-page .support-nav button b { font-weight: 600; }
.support-page .support-nav button:hover { background: var(--s-surface-soft); color: var(--s-text); }
.support-page .support-nav button.on { border: 0; background: var(--s-red-soft); color: var(--red); }
.support-page .support-nav button.on::before { position: absolute; top: 9px; bottom: 9px; left: -14px; width: 3px; border-radius: 0 4px 4px 0; background: var(--red); content: ""; }
.support-sidebar-mark { margin-top: auto; padding: 18px 12px 0; border-top: 1px solid var(--s-line); color: var(--s-muted); font-size: .72rem; font-weight: 600; }
.support-content { justify-self: center; width: min(1080px, 100%); min-width: 0; padding: 34px 38px 72px; }
.support-page-head { margin-bottom: 24px; }
.support-page-head h1 { margin-top: 3px; color: var(--s-text); font-size: clamp(1.8rem, 3vw, 2.45rem); letter-spacing: -.04em; }
.support-page-head .lead { max-width: 720px; margin-top: 7px; color: var(--s-muted); font-size: .95rem; }

/* Bestehende Funktionsflächen */
.support-page .calendar-subscribe { margin: 0 0 16px; padding: 17px 19px; border-color: #cbdde9; border-radius: 13px; background: #eef6fb; box-shadow: none; }
.support-page .calendar-subscribe-icon { display: grid; width: 39px; height: 39px; place-items: center; border-radius: 10px; background: var(--s-surface); font-size: 1.1rem; }
#supportEvents { display: grid; gap: 14px; }
.support-page .support-event,
.support-page .support-card {
  margin: 0;
  padding: 20px;
  border-color: var(--s-line);
  border-radius: 14px;
  background: var(--s-surface);
  box-shadow: var(--s-shadow);
}
.support-page details.support-event-group { padding: 0; overflow: hidden; }
.support-event-group > summary {
  display: flex;
  align-items: center;
  gap: 11px;
  min-height: 72px;
  padding: 15px 18px;
  list-style: none;
  cursor: pointer;
}
.support-event-group > summary::-webkit-details-marker { display: none; }
.support-event-group > summary:hover { background: var(--s-surface-soft); }
.support-event-summary-icon { display: grid; width: 38px; height: 38px; place-items: center; flex: none; border-radius: 10px; background: var(--s-navy-soft); font-size: 1rem; }
.support-event-summary-copy { display: flex; flex: 1; flex-direction: column; min-width: 0; }
.support-event-title { color: var(--s-text); font-size: 1.02rem; font-weight: 700; line-height: 1.25; }
.support-event-summary-copy small { margin-top: 3px; color: var(--s-muted); font-size: .72rem; font-weight: 550; }
.support-event-chevron { margin-left: auto; color: var(--s-muted); font-size: 1.25rem; line-height: 1; transition: transform .18s; }
.support-event-group[open] > summary { border-bottom: 1px solid var(--s-line); }
.support-event-group[open] > summary .support-event-chevron { transform: rotate(180deg); }
.support-event-body { padding: 0 18px 18px; }
.support-event-body > .support-event-desc:first-child { margin-top: 15px; }
.support-page .support-event h2 { margin: 0; color: var(--s-text); font-size: 1.08rem; }
.support-page .support-event-desc { max-width: 850px; margin: 7px 0 16px; color: var(--s-muted); font-size: .85rem; }
.support-page .support-event .cat { margin-top: 18px; }
.support-page .event-slot { min-height: 62px; align-items: center; }
.support-page .fslot { border-color: var(--s-line); border-radius: 9px; }
.support-page .myslot { border-radius: 9px; }
.support-page .support-donate { margin-top: 16px; padding: 18px; border-color: #b8dfc3; border-radius: 13px; background: #edf8f0; }
.support-page .support-donate-icon { background: #238443; }
.support-page .support-donate a { color: #176d35; }
.support-page .flyer-plan-intro,
.support-page .flyer-plan-form-panel,
.support-page .flyer-district-card,
.support-page .flyer-own-plan { border-color: var(--s-line); background: var(--s-surface); box-shadow: 0 4px 16px rgb(31 48 65 / 4%); }
.support-page .flyer-plan-intro { padding: 20px; border-radius: 14px; }
.support-page .flyer-district-grid { gap: 14px; }
.support-page .support-profile { margin: 0; border-color: var(--s-line); border-radius: 14px; background: var(--s-surface); box-shadow: var(--s-shadow); }
.support-page .support-profile > summary { min-height: 58px; padding: 16px 20px; }
.support-page .support-profile > *:not(summary) { margin-right: 20px; margin-left: 20px; }
.support-page .support-profile .field input { border-color: var(--s-line-strong); background: var(--s-surface-soft); }
.support-page .support-profile > .btn-pri { width: calc(100% - 40px); min-height: 46px; margin-top: 18px; }
.support-page #supportLogoutBtn { margin: 4px 20px 12px; color: var(--red); }
.support-page .support-help { margin-top: 14px; padding: 18px 20px; border-color: #cbdde9; border-radius: 13px; background: #eef6fb; }

/* Login-Dialog */
.support-page #supportLogin { width: min(480px, calc(100vw - 32px)); padding: 0; overflow: hidden; border: 1px solid var(--s-line); border-radius: 16px; background: var(--s-surface); color: var(--s-text); box-shadow: 0 24px 70px rgb(10 25 39 / 22%); }
.support-page #supportLogin form { padding: 24px; }
.support-page #supportLogin h2 { margin: 0 0 18px; color: var(--s-text); }
.support-page #supportLogin input { border-color: var(--s-line-strong); background: var(--s-surface-soft); }

@media (max-width: 900px) {
  #supportApp:not([hidden]) { grid-template-columns: 206px minmax(0, 1fr); }
  .support-sidebar { width: 206px; }
  .support-content { padding-right: 26px; padding-left: 26px; }
}

@media (max-width: 700px) {
  body.support-page { padding-bottom: calc(72px + env(safe-area-inset-bottom)); }
  .support-page .topbar { min-height: 56px; padding: 0 15px; }
  .support-who { display: none; }
  .support-layout { min-height: calc(100vh - 56px); }
  #supportRegister { padding: 20px 15px 30px; }
  .support-auth-shell { display: block; min-height: 0; border-radius: 17px; }
  .support-auth-story { min-height: 0; }
  .support-auth-card { padding: 28px 22px 32px; }

  #supportApp:not([hidden]) { display: block; min-height: calc(100vh - 56px); }
  .support-sidebar { position: fixed; top: auto; right: 0; bottom: 0; left: 0; z-index: 45; display: block; width: 100%; height: calc(70px + env(safe-area-inset-bottom)); padding: 0 4px env(safe-area-inset-bottom); border-top: 1px solid var(--s-line); border-right: 0; background: rgb(255 255 255 / 97%); box-shadow: 0 -7px 24px rgb(27 46 62 / 8%); backdrop-filter: blur(14px); }
  .support-nav-label,
  .support-sidebar-mark { display: none; }
  .support-page .support-nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; height: 70px; }
  .support-page .support-nav button { justify-content: center; flex-direction: column; gap: 2px; min-height: 70px; padding: 6px 2px 5px; border-radius: 0; font-size: .63rem; line-height: 1.12; text-align: center; }
  .support-page .support-nav button span { width: auto; font-size: 1.15rem; line-height: 1.2; }
  .support-page .support-nav button.on { background: transparent; }
  .support-page .support-nav button.on::before { top: 0; right: 31%; bottom: auto; left: 31%; width: auto; height: 3px; border-radius: 0 0 4px 4px; }
  .support-content { width: 100%; padding: 23px 15px 28px; }
  .support-page-head { margin-bottom: 18px; }
  .support-page-head h1 { font-size: 1.72rem; }
  .support-page-head .lead { font-size: .86rem; }
  .support-page .calendar-subscribe { padding: 15px; }
  .support-page .calendar-subscribe-icon { display: none; }
  .support-page .calendar-subscribe-actions { align-items: stretch; flex-direction: column; }
  .support-page .calendar-btn { min-height: 42px; }
  .support-page .support-event,
  .support-page .support-card { padding: 16px; }
  .support-page details.support-event-group { padding: 0; }
  .support-event-group > summary { min-height: 66px; padding: 13px 14px; }
  .support-event-body { padding: 0 14px 14px; }
  .support-page .event-slot { align-items: stretch; flex-direction: column; }
  .support-page .event-slot .fbtn { align-self: flex-start; }
  .support-page .fslot { align-items: flex-start; flex-direction: column; }
  .support-page .fslot .fbtn { align-self: stretch; min-height: 42px; }
}

@media (prefers-reduced-motion: reduce) {
  .support-page *,
  .support-page *::before,
  .support-page *::after { scroll-behavior: auto !important; transition: none !important; }
}
