:root{
  --night:#101a2e;      /* Winternacht */
  --night-2:#18253f;
  --frost:#eaf1fb;      /* Schnee */
  --muted:#9fb0cc;
  --wine:#e0455f;       /* Glühwein */
  --gold:#f2c36b;       /* Kerzenlicht */
  --radius:14px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; color:var(--frost); background:var(--night);
  font:400 1.05rem/1.55 "Bricolage Grotesque",system-ui,sans-serif;
  background-image:radial-gradient(60rem 30rem at 50% -10%,#24365e 0,transparent 70%);
}
#snow{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.hero,.wrap,.foot{position:relative;z-index:1}

.hero{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem 1.25rem}
.kicker{margin:0;color:var(--gold);font-weight:700;letter-spacing:.02em}
.big20{
  margin:.1em 0 0; font-weight:800; line-height:.85;
  font-size:clamp(9rem,38vw,24rem); letter-spacing:-.06em;
  color:transparent; -webkit-text-stroke:3px var(--frost);
  text-shadow:0 0 60px rgba(224,69,95,.35);
  animation:glow 1.6s ease-out both;
}
@keyframes glow{from{opacity:0;-webkit-text-stroke-color:var(--wine);transform:scale(.96)}to{opacity:1}}
.sub{max-width:34ch;margin:1rem auto 1.5rem;color:var(--muted)}

.countdown{display:flex;gap:.9rem;margin-bottom:2rem}
.countdown div{min-width:4.2rem;padding:.6rem .4rem;border:1px solid #2c3f66;border-radius:var(--radius);background:rgba(24,37,63,.6)}
.countdown b{display:block;font-size:1.8rem;font-variant-numeric:tabular-nums}
.countdown span{font-size:.8rem;color:var(--muted)}

.btn{
  display:inline-block;border:0;cursor:pointer;text-decoration:none;
  background:var(--wine);color:#fff;font:700 1rem "Bricolage Grotesque",sans-serif;
  padding:.85rem 1.8rem;border-radius:999px;transition:transform .15s,background .15s;
}
.btn:hover{background:#f05a73;transform:translateY(-2px)}
.btn:disabled{opacity:.6;cursor:wait;transform:none}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px}

.wrap{max-width:720px;margin:0 auto;padding:3rem 1.25rem 4rem}
.facts{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.facts h2{margin:0 0 .3rem;font-size:1.1rem;color:var(--gold)}
.facts p{margin:0;color:var(--frost)}
.counter{text-align:center;color:var(--muted);margin:2.5rem 0}
.counter b{color:var(--frost);font-size:1.4rem}

.card{background:var(--night-2);border:1px solid #2c3f66;border-radius:20px;padding:1.75rem}
.card h2{margin-top:0;font-size:1.8rem}
label{display:block;margin-bottom:1.1rem;font-weight:700}
input[type=text],input[type=password],select,textarea{
  width:100%;margin-top:.4rem;padding:.7rem .85rem;color:var(--frost);
  background:var(--night);border:1px solid #34497a;border-radius:10px;font:inherit;
}
fieldset{border:0;padding:0;margin:0 0 1.1rem}
legend{font-weight:700;margin-bottom:.5rem;padding:0}
.choices{display:flex;flex-wrap:wrap;gap:.5rem}
.choices label{margin:0}
.choices input{position:absolute;opacity:0}
.choices span{display:inline-block;padding:.55rem 1rem;border:1px solid #34497a;border-radius:999px;cursor:pointer;font-weight:400;transition:.15s}
.choices input:checked+span{background:var(--frost);color:var(--night);border-color:var(--frost);font-weight:700}
.choices input:focus-visible+span{outline:3px solid var(--gold);outline-offset:2px}
#details{transition:opacity .2s}
#details.off{display:none}
.hp{position:absolute;left:-9999px}
.msg{min-height:1.5em;margin:.2rem 0 1rem;font-weight:700}
.msg.err{color:#ff8a9b}.msg.ok{color:var(--gold)}
.hint{color:var(--muted);font-size:.9rem;margin:1rem 0 0}
.foot{text-align:center;color:var(--muted);padding:0 1rem 3rem}

/* Admin */
.admin .wrap{max-width:1000px}
.table-scroll{overflow-x:auto}
table{border-collapse:collapse;width:100%}
th,td{padding:.6rem .8rem;text-align:left;border-bottom:1px solid #2c3f66}
a{color:var(--gold)}

@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* Vor-/Nachname nebeneinander */
.row{display:grid;gap:0 1rem;grid-template-columns:1fr 1fr}
@media (max-width:480px){.row{grid-template-columns:1fr}}

/* Rückfrage-Dialog */
dialog{
  max-width:26rem;width:calc(100% - 2.5rem);padding:1.75rem;color:var(--frost);
  background:var(--night-2);border:1px solid #34497a;border-radius:20px;
}
dialog::backdrop{background:rgba(8,13,26,.75)}
dialog h2{margin:0 0 .6rem;font-size:1.5rem}
dialog p{margin:0 0 1.4rem}
.dialog-btns{display:flex;flex-wrap:wrap;gap:.6rem}
.btn.ghost{background:transparent;border:1px solid #34497a;color:var(--frost)}
.btn.ghost:hover{background:#24365e}

/* Admin: Zusammenfassungs-Zeile */
tr.summary td{background:#24365e;color:var(--frost);border-bottom:2px solid var(--gold)}
