:root {
  --bg: #131729;
  --bg-soft: #1d223a;
  --card: rgba(255, 250, 242, 0.96);
  --card-strong: #fffdf8;
  --text: #211d24;
  --muted: #6f6570;
  --primary: #7a2343;
  --primary-strong: #631a36;
  --gold: #f4c86a;
  --gold-deep: #d6a23d;
  --line: rgba(30, 24, 35, 0.12);
  --success: #2e8a57;
  --success-soft: #eaf7ef;
  --danger: #a33f49;
  --danger-soft: #fff1f3;
  --shadow: 0 28px 80px rgba(4, 8, 20, 0.35);
  --radius: 22px;
  --radius-sm: 14px;
  --maxw: 1080px;
}
* { box-sizing: border-box; }
html, body { margin:0; padding:0; }
body {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--text);
  background:
    radial-gradient(circle at 12% 12%, rgba(244, 200, 106, 0.16), transparent 24%),
    radial-gradient(circle at 85% 7%, rgba(122, 35, 67, 0.24), transparent 20%),
    radial-gradient(circle at 50% 100%, rgba(244, 200, 106, 0.08), transparent 30%),
    linear-gradient(180deg, #0f1323 0%, #1a1f35 45%, #15192a 100%);
  min-height: 100vh;
}
.page-shell { max-width: var(--maxw); margin: 0 auto; padding: 28px 18px 56px; }
.hero-card {
  position: relative;
  overflow: hidden;
  border-radius: 28px;
  padding: 34px 28px;
  margin-bottom: 22px;
  color: #fff9ef;
  background: linear-gradient(135deg, rgba(122,35,67,0.96), rgba(29,34,58,0.95) 58%, rgba(13,17,31,0.97));
  box-shadow: var(--shadow);
  border: 1px solid rgba(255,255,255,0.08);
}
.hero-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at top right, rgba(244,200,106,0.25), transparent 30%),
    radial-gradient(circle at 20% 90%, rgba(255,255,255,0.08), transparent 24%);
  pointer-events: none;
}
.hero-text { position: relative; z-index: 1; max-width: 760px; }
.hero-glow {
  position: absolute;
  right: -80px;
  top: -60px;
  width: 280px;
  height: 280px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(244,200,106,0.28), rgba(244,200,106,0) 70%);
  filter: blur(5px);
}
.kicker {
  margin: 0 0 10px;
  font-size: 0.84rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 800;
  color: #ffe7ac;
}
h1, h2, h3 { margin: 0; line-height: 1.08; }
h1 { font-size: clamp(2.1rem, 4.6vw, 3.8rem); letter-spacing: -0.04em; }
h2 { font-size: clamp(1.55rem, 2.2vw, 2rem); margin-bottom: 8px; }
h3 { font-size: 1.1rem; }
.hero-copy {
  margin: 14px 0 18px;
  font-size: clamp(1rem, 1.8vw, 1.18rem);
  line-height: 1.65;
  color: rgba(255,249,239,0.92);
}
.hero-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.hero-meta span {
  display: inline-flex;
  align-items: center;
  padding: 10px 14px;
  border-radius: 999px;
  background: rgba(255,255,255,0.1);
  border: 1px solid rgba(255,255,255,0.12);
  font-size: 0.95rem;
}
.card {
  background: var(--card);
  backdrop-filter: blur(10px);
  border-radius: var(--radius);
  padding: 26px;
  box-shadow: 0 18px 45px rgba(8,10,20,0.22);
  border: 1px solid rgba(255,255,255,0.5);
}
.card + .card { margin-top: 20px; }
.card-success { background: linear-gradient(180deg, var(--card-strong), #fffaf0); }
.section-head {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: flex-start;
  margin-bottom: 18px;
}
.section-head.single { justify-content: flex-start; }
.badge, .info-chip {
  display: inline-flex;
  align-items: center;
  padding: 7px 12px;
  border-radius: 999px;
  font-size: 0.82rem;
  font-weight: 800;
}
.badge {
  margin-bottom: 12px;
  color: #fff8e3;
  background: linear-gradient(135deg, var(--gold-deep), var(--primary));
}
.badge-success { background: linear-gradient(135deg, var(--success), #59a876); }
.info-chip {
  white-space: nowrap;
  color: var(--primary);
  background: rgba(122, 35, 67, 0.09);
  border: 1px solid rgba(122,35,67,0.14);
}
.subtle, .hint { color: var(--muted); line-height: 1.6; }
.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 22px;
}
.field { display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; }
label { font-weight: 700; }
input:not([type=checkbox]):not([type=radio]), textarea {
  width: 100%;
  border: 1px solid rgba(32,26,35,0.14);
  background: rgba(255,255,255,0.82);
  border-radius: 14px;
  padding: 14px 15px;
  font: inherit;
  color: var(--text);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.55);
}
input:focus, textarea:focus, button:focus, a:focus {
  outline: 3px solid rgba(244, 200, 106, 0.38);
  outline-offset: 2px;
  border-color: rgba(122,35,67,0.28);
}
.shift-group {
  margin: 24px 0 0;
  padding: 0;
  border: 0;
}
.shift-group legend {
  display: inline-block;
  margin-bottom: 12px;
  padding: 0;
  font-size: 1rem;
  font-weight: 800;
  color: var(--primary-strong);
}
.shift-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.shift-list.compact { grid-template-columns: 1fr; }
.shift-card {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
  padding: 14px 16px;
  border-radius: 16px;
  border: 1px solid rgba(33,29,36,0.08);
  background: linear-gradient(180deg, rgba(255,255,255,0.9), rgba(255,249,242,0.92));
  cursor: pointer;
  transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease;
}
.shift-card:hover { transform: translateY(-1px); box-shadow: 0 10px 22px rgba(17,22,38,0.08); }
.shift-card.disabled { opacity: .78; cursor: not-allowed; }
.shift-card:has(input:checked) {
  border-color: rgba(122,35,67,0.45);
  background: linear-gradient(180deg, rgba(255,243,232,0.96), rgba(255,251,244,0.96));
  box-shadow: 0 14px 24px rgba(122,35,67,0.10);
}
.shift-left { display: flex; align-items: center; gap: 12px; min-width: 0; }
.shift-left input { width: 18px; height: 18px; accent-color: var(--primary); }
.shift-label { line-height: 1.45; font-weight: 600; }
.status-pill {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 7px 10px;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 800;
  white-space: nowrap;
}
.is-open { background: rgba(46, 138, 87, 0.12); color: #237245; }
.is-limited { background: rgba(244, 200, 106, 0.22); color: #8b5e09; }
.is-full { background: rgba(163, 63, 73, 0.10); color: var(--danger); }
.newsletter-row {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 14px 16px;
  margin: 10px 0 14px;
  border-radius: 16px;
  background: rgba(122,35,67,0.04);
  border: 1px solid rgba(122,35,67,0.08);
}
.newsletter-row input { margin-top: 2px; accent-color: var(--primary); }
.legal-box {
  margin-top: 18px;
  padding: 18px;
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(255,252,247,0.98), rgba(251,245,236,0.98));
  border: 1px solid rgba(33,29,36,0.08);
  color: var(--muted);
  line-height: 1.65;
}
.legal-box p { margin: 0 0 10px; }
.legal-box p:last-child { margin-bottom: 0; }
.actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 20px;
}
.compact-actions { align-items: center; }
.button {
  appearance: none;
  border: 0;
  border-radius: 14px;
  background: linear-gradient(135deg, var(--primary), #9f365f);
  color: #fff;
  text-decoration: none;
  font-weight: 800;
  font-size: 0.98rem;
  padding: 14px 18px;
  cursor: pointer;
  box-shadow: 0 14px 28px rgba(122,35,67,0.24);
}
.button:hover { filter: brightness(1.04); }
.button-secondary {
  background: linear-gradient(135deg, #eae0c5, #f2d392);
  color: #49321f;
  box-shadow: none;
}
.alert {
  margin-bottom: 18px;
  padding: 16px 18px;
  border-radius: 16px;
  background: var(--danger-soft);
  color: #6d2230;
  border: 1px solid rgba(163,63,73,0.16);
}
.alert ul { margin: 10px 0 0 18px; padding: 0; }
.selection-box {
  margin-top: 18px;
  border-radius: 18px;
  padding: 18px;
  background: var(--success-soft);
  border: 1px solid rgba(46,138,87,0.14);
}
.selection-box ul { margin: 12px 0 0 18px; }
.footer-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px 18px;
  padding: 18px 0 8px;
}
.footer-nav a {
  color: rgba(255,249,239,0.82);
  text-decoration: none;
  font-weight: 600;
}
.footer-nav a:hover { text-decoration: underline; }
.honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.admin-shell .card { margin-top: 0; }
.stats-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin: 10px 0 24px;
}
.stat-card {
  background: linear-gradient(180deg, rgba(255,252,246,0.98), rgba(255,248,236,0.95));
  border: 1px solid rgba(33,29,36,0.08);
  border-radius: 18px;
  padding: 18px;
}
.stat-card strong { display: block; font-size: 2rem; margin-top: 6px; color: var(--primary); }
.stat-label { color: var(--muted); font-size: 0.92rem; }
.table-title { margin: 18px 0 12px; font-size: 1.1rem; }
.table-scroll { overflow-x: auto; }
table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.94rem;
  background: rgba(255,255,255,0.72);
  border-radius: 16px;
  overflow: hidden;
}
thead th {
  text-align: left;
  padding: 12px 14px;
  background: #f7efe1;
  color: #4f3140;
  font-size: 0.9rem;
}
tbody td {
  padding: 12px 14px;
  border-top: 1px solid rgba(33,29,36,0.08);
  vertical-align: top;
}
.login-form { max-width: 420px; }
code {
  background: rgba(33,29,36,0.07);
  padding: 2px 6px;
  border-radius: 8px;
}
@media (max-width: 820px) {
  .shift-list, .form-grid, .stats-grid { grid-template-columns: 1fr; }
  .section-head, .admin-head { flex-direction: column; }
}
@media (max-width: 560px) {
  .page-shell { padding: 18px 14px 40px; }
  .hero-card, .card { padding: 20px; }
  .hero-meta { flex-direction: column; align-items: flex-start; }
  .shift-card { flex-direction: column; align-items: stretch; }
  .status-pill { width: fit-content; }
}

.newsletter-admin {margin-top: 38px; padding-top: 25px; border-top: 2px solid rgba(33,29,36,.12)}

/* Belegung je Schicht – responsive */
.capacity { display:flex; flex-direction:column; align-items:flex-end; gap:6px; flex-shrink:0; }
.capacity-count { color:#514955; font-weight:750; font-size:0.84rem; white-space:nowrap; font-variant-numeric:tabular-nums; }
.shift-card.disabled .capacity-count { color:#82313d; }
@media (max-width:560px) { .capacity { align-items:flex-start; } }

/* Admin: Anmeldungen bearbeiten und löschen */
.admin-edit{margin:24px 0;padding:20px;background:#fffaf1;border:1px solid #dfcbbb;border-radius:16px}
.edit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}
.edit-grid label{display:flex;flex-direction:column;gap:6px}
.edit-shifts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:9px;margin:12px 0}
.edit-shifts label{font-size:14px;font-weight:500;line-height:1.5}
.edit-news{display:block;margin:14px 0}
.row-actions{white-space:nowrap}
.row-actions a,.delete-btn{font:inherit;font-size:13px;display:inline-block;padding:7px 9px;border-radius:8px;text-decoration:none;margin:2px;background:#f2e6e1;color:#67213d;border:0;box-shadow:none}
.delete-btn{background:#fbe7e6;color:#8b2735;cursor:pointer}
.row-actions form{display:inline}
.success-notice{padding:12px 16px;background:#e5f6e7;color:#236b36;border-radius:10px;margin:12px 0}

.roster-entry{background:#fff8e9;border:1px solid #ead7ad;border-radius:18px;padding:18px;margin:18px 0 24px}.roster-entry p{line-height:1.55}.roster-entry .button{display:inline-block;margin:4px 0}.roster-sheet{margin:18px 0 26px;border:1px solid #e9dfd2;border-radius:18px;overflow:hidden;background:#fff}.roster-sheet h3{margin:0;padding:15px 19px;background:#f7efe1;color:#512d43}.roster-sheet ul{margin:0;padding:8px 19px 16px 38px}.roster-sheet li{padding:6px 0;border-bottom:1px solid #f2e9e0}.roster-sheet li:last-child{border:0}.roster-sheet .empty{padding:12px 19px;color:#766b70}.roster-label{font-weight:700;color:#5c2942}.roster-meta{color:#6b626c;font-size:.93rem;margin:0 0 18px}.roster-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}@media(max-width:760px){.roster-groups{grid-template-columns:1fr}}@media print{body{background:white}.hero-card{box-shadow:none;background:white;color:#20202a;padding:8px}.hero-card .kicker,.hero-card h1,.hero-card .hero-copy{color:#20202a}.card{box-shadow:none;padding:12px}.no-print,.footer-nav{display:none!important}.roster-sheet{break-inside:avoid}.roster-groups{display:block}}

/* Navigation wie auf der Hauptwebsite – bewusst mit eigenen Klassen */
.lf-sitehead{background:#16182b;color:#fff;border-bottom:1px solid #ffffff22;position:relative;z-index:50;font-family:system-ui,-apple-system,"Segoe UI",sans-serif}
.lf-head{max-width:1100px;padding:18px 22px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:20px}
.lf-logo{font-size:15px;font-weight:800;letter-spacing:.05em;text-decoration:none;color:white;white-space:nowrap}
.lf-logo span{color:#efc66d}
.lf-nav{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.lf-nav a{font-size:13px;padding:9px 11px;color:#eee2f0;text-decoration:none;border-radius:9px;font-weight:600}
.lf-nav a:hover,.lf-nav a[aria-current="page"]{background:#ffffff22}
.lf-mobile-menu{display:none;background:#272a43;color:white;border:1px solid #ffffff44;border-radius:9px;padding:10px 15px;font-size:14px;font-weight:700;cursor:pointer}
@media(max-width:850px){
 .lf-head{flex-wrap:wrap;gap:10px}
 .lf-mobile-menu{display:block;margin:0}
 .lf-nav{display:none;flex:0 0 100%;width:100%;flex-direction:column;align-items:stretch;gap:4px;padding-top:12px}
 .lf-nav.open{display:flex}
 .lf-nav a{padding:12px 13px;font-size:15px}
}

/* Schnellzugänge oberhalb des Helferformulars */
.hero-quicklinks{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 18px;position:relative;z-index:2}
.hero-link{display:inline-flex;align-items:center;justify-content:center;min-height:42px;border-radius:12px;padding:10px 16px;text-decoration:none;font-size:.93rem;font-weight:750;transition:background .15s,transform .15s}
.hero-link:hover{transform:translateY(-1px)}
.hero-link-light{color:#2d2631;background:#f4c86a;border:1px solid #f4c86a}
.hero-link-light:hover{background:#ffe3a1}
.hero-link-quiet{color:#fffaf2;background:#ffffff13;border:1px solid #ffffff55}
.hero-link-quiet:hover{background:#ffffff25}
@media(max-width:480px){.hero-quicklinks{flex-direction:column;align-items:stretch}.hero-link{width:100%}}


/* ==========================================================
   IGS LICHTERFEST 2026 — EINHEITLICHER HINTERGRUND
   Ein zentraler Bildpfad für ALLE Seiten auf dieser Domain.
   Keine Aenderung an Formularen oder PHP-Funktionen.
   ========================================================== */
html { min-height: 100%; }
body {
  min-height: 100vh;
  background-color: #10192d;
  background-image:
    linear-gradient(180deg, rgba(7,15,30,.47), rgba(7,15,30,.67)),
    url('/lichterfest-hintergrund.png?v=20261031-global');
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  background-attachment: fixed;
}
@media (max-width:780px) {
  body { background-attachment: scroll; background-position: 58% top; }
}
@media print {
  body { background: #fff !important; }
}
