/* Grundlayout der öffentlichen Seiten (Anmeldung, Familie, Login, Chlaus, Datenschutz).
   Baut auf /shared/theme.css auf. */

body { padding: 2.5rem 1rem 5rem; }
.wrap { max-width: 640px; margin: 0 auto; }

.seitenkopf { text-align: center; margin-bottom: 2.5rem; }
.seitenkopf .wappen { width: 72px; height: 72px; margin: 0 auto 1rem; display: block; }
.seitenkopf .wappen-link { display: inline-block; }
.seitenkopf .eyebrow {
  text-transform: uppercase; letter-spacing: .12em; font-size: 12px; color: var(--gold);
  font-weight: 600; margin: 0 0 6px;
}
.seitenkopf h1 { font-size: 28px; font-weight: 700; margin: 0 0 6px; line-height: 1.2; }
.seitenkopf .sub { color: var(--ink-soft); font-size: 14px; margin: 0; }

.karte {
  background: var(--paper); border: 1px solid var(--border-soft); border-radius: 6px;
  padding: 24px; margin-bottom: 1.25rem;
}
.karte h2 { font-size: 20px; margin: 0 0 12px; line-height: 1.25; }
.karte h3 { font-size: 16px; margin: 18px 0 8px; }
.karte p { margin: 0 0 12px; }
.karte p:last-child { margin-bottom: 0; }
.aktionen { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.karte .meldung:last-child { margin-bottom: 0; }

.feld { margin-bottom: 16px; }
.feld:last-child { margin-bottom: 0; }

.laden { text-align: center; color: var(--ink-soft); font-size: 14px; padding: 2rem 0; }

.spinner {
  display: inline-block; width: 14px; height: 14px; border-radius: 50%;
  border: 2px solid currentColor; border-right-color: transparent;
  animation: drehen .8s linear infinite; vertical-align: -2px;
}
@keyframes drehen { to { transform: rotate(360deg); } }

.nur-sr {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

.status {
  display: inline-block; padding: 3px 12px; border-radius: 20px; font-size: 13px; font-weight: 600;
  background: var(--pine); color: #fff; vertical-align: middle;
}
.status.aus { background: #fff; color: var(--ink-soft); border: 1px solid var(--border-soft); }

dl.zusammenfassung {
  display: grid; grid-template-columns: max-content 1fr; gap: 6px 16px; margin: 0; font-size: 14px;
}
dl.zusammenfassung dt { color: var(--ink-soft); font-weight: 500; }
dl.zusammenfassung dd { margin: 0; white-space: pre-line; overflow-wrap: anywhere; }
@media (max-width: 480px) {
  dl.zusammenfassung { grid-template-columns: 1fr; gap: 0; }
  dl.zusammenfassung dd { margin-bottom: 8px; }
}

dialog {
  border: 1px solid var(--border-soft); border-radius: 6px; padding: 24px; max-width: 460px;
  width: calc(100% - 2rem); background: var(--paper); color: var(--ink);
}
dialog::backdrop { background: rgba(42, 36, 32, .45); }
dialog h2 { font-size: 20px; margin: 0 0 12px; }

.fuss { margin-top: 2.5rem; text-align: center; font-size: 13px; color: var(--ink-soft); }
.fuss a { color: var(--ink-soft); }
.fuss p { margin: 4px 0; }

.btn:focus-visible, a:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
