/* Auto Voigt · Spendenuhr — gemeinsames Stylesheet */
@import url('https://fonts.googleapis.com/css2?family=Barlow:wght@400;500;600;700&family=Barlow+Condensed:wght@600;700;800&display=swap');

:root {
  --bg-0: #08080a;
  --bg-1: #131318;
  --steel: #23262d;
  --red: #e2231a;
  --red-deep: #a3140d;
  --red-soft: #ff4234;
  --ink: #f5f6f8;
  --muted: #8b8f99;
  --panel: rgba(18, 19, 23, 0.78);
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html, body { height: 100%; }
body {
  font-family: "Barlow", system-ui, sans-serif;
  color: var(--ink);
  background:
    radial-gradient(120% 80% at 50% -15%, rgba(226,35,26,0.16), transparent 55%),
    linear-gradient(165deg, var(--bg-1), var(--bg-0));
  min-height: 100vh; overflow-x: hidden; position: relative;
}
body::before {
  content: ""; position: fixed; inset: 0; z-index: 0; pointer-events: none;
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size: 46px 46px;
  -webkit-mask-image: radial-gradient(120% 90% at 50% 25%, #000 25%, transparent 78%);
  mask-image: radial-gradient(120% 90% at 50% 25%, #000 25%, transparent 78%);
}
body::after {
  content: ""; position: fixed; inset: 0; z-index: 0; pointer-events: none;
  background: repeating-linear-gradient(115deg, transparent 0 38px, rgba(226,35,26,0.025) 38px 40px);
}
.wrap { position: relative; z-index: 1; max-width: 1100px; margin: 0 auto; padding: clamp(16px, 3vw, 40px); }

/* brand lockup */
.topbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: clamp(20px, 4vh, 44px); }
.brand { display: flex; align-items: center; gap: 14px; text-decoration: none; color: inherit; }
.brand .logo { height: 50px; width: auto; display: block; }
.mono {
  font-family: "Barlow Condensed", sans-serif; font-weight: 800; line-height: 1;
  font-size: 34px; letter-spacing: -.02em; display: inline-flex; align-items: center; gap: 2px;
  background: #000; border: 1px solid var(--steel); padding: 8px 12px; border-radius: 8px;
}
.mono .br { color: var(--red); }
.mono .a { color: #fff; }
.mono .v { color: var(--red); }
.brand .wm { line-height: 1; }
.brand .wm .name { font-family: "Barlow Condensed", sans-serif; font-weight: 800; font-size: 22px; letter-spacing: .04em; text-transform: uppercase; }
.brand .wm .sub { font-size: 11px; letter-spacing: .34em; text-transform: uppercase; color: var(--muted); }

.tag { font-family:"Barlow Condensed",sans-serif; font-weight:700; font-size: 14px; letter-spacing:.1em; text-transform: uppercase; color: var(--muted); border:1px solid var(--steel); border-radius: 999px; padding: 6px 14px; text-decoration:none; transition:.18s; }
.tag:hover { color: var(--ink); border-color: var(--red); }

/* DISPLAY */
.stage { text-align: center; }
.kicker { font-family:"Barlow Condensed",sans-serif; font-weight:700; letter-spacing:.4em; text-transform:uppercase; color: var(--red); font-size: clamp(11px,1.5vw,15px); margin-bottom: 10px; }
.event-title {
  font-family: "Barlow Condensed", sans-serif; font-weight: 800; text-transform: uppercase;
  font-size: clamp(30px, 5.5vw, 72px); line-height: .96; color: #fff;
  text-shadow: 0 0 44px rgba(226,35,26,.20); margin-bottom: 6px;
}
.subtitle { color: var(--muted); font-size: clamp(13px, 1.6vw, 18px); letter-spacing: .14em; text-transform: uppercase; margin-bottom: clamp(22px, 5vh, 52px); }

.money-card {
  background: var(--panel); border: 1px solid var(--steel); border-top: 3px solid var(--red);
  border-radius: 16px; padding: clamp(28px, 6vw, 60px) clamp(20px, 4vw, 56px);
  box-shadow: 0 30px 80px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.04); backdrop-filter: blur(8px);
}
.money-label { font-family:"Barlow Condensed",sans-serif; font-weight:700; text-transform: uppercase; letter-spacing: .3em; color: var(--muted); font-size: clamp(11px, 1.4vw, 15px); margin-bottom: 10px; }
.money {
  font-family: "Barlow Condensed", sans-serif; font-weight: 800;
  font-size: clamp(64px, 16vw, 220px); line-height: .9; letter-spacing: -.01em;
  background: linear-gradient(180deg, #ffffff 0%, #ffd9d6 30%, var(--red) 70%, var(--red-deep));
  -webkit-background-clip: text; background-clip: text; color: transparent;
  text-shadow: 0 0 60px rgba(226,35,26,.22); font-variant-numeric: tabular-nums;
}
.money.pulse { animation: pop .55s cubic-bezier(.2,1.4,.4,1); }
@keyframes pop { 0%{transform:scale(1)} 35%{transform:scale(1.08)} 100%{transform:scale(1)} }

.stats { display: flex; flex-wrap: wrap; justify-content: center; gap: clamp(16px, 4vw, 56px); margin-top: clamp(22px, 4vh, 38px); }
.stat { text-align: center; }
.stat .num { font-family: "Barlow Condensed", sans-serif; font-weight:800; font-size: clamp(34px, 7vw, 88px); line-height: 1; color: var(--red-soft); font-variant-numeric: tabular-nums; }
.stat .num.white { color: #fff; }
.stat .cap { font-family:"Barlow Condensed",sans-serif; font-weight:700; text-transform: uppercase; letter-spacing: .2em; color: var(--muted); font-size: clamp(10px, 1.3vw, 14px); margin-top: 8px; }

.progress-wrap { margin-top: clamp(28px, 5vh, 46px); display: none; }
.progress-wrap.on { display: block; }
.bar { height: 22px; border-radius: 6px; background: rgba(255,255,255,.05); border: 1px solid var(--steel); overflow: hidden; position: relative; }
.bar .fill { height: 100%; width: 0%; background: linear-gradient(90deg, var(--red-deep), var(--red), var(--red-soft)); box-shadow: 0 0 24px rgba(226,35,26,.5); border-radius: 5px; transition: width 1s cubic-bezier(.2,.8,.2,1); }
.bar .fill::after { content:""; position:absolute; inset:0; background: linear-gradient(90deg, transparent, rgba(255,255,255,.4), transparent); animation: shine 2.4s linear infinite; }
@keyframes shine { from{transform:translateX(-100%)} to{transform:translateX(100%)} }
.progress-meta { display: flex; justify-content: space-between; margin-top: 10px; font-size: clamp(12px,1.5vw,16px); color: var(--muted); letter-spacing:.04em; }
.progress-meta b { color: var(--red-soft); }

/* Live im Turnier: aktuelles Spiel + Tabelle */
.matchwrap { display: none; margin-top: clamp(22px, 4vh, 38px); }
.matchwrap.on { display: block; }
.section-label { font-family:"Barlow Condensed",sans-serif; font-weight:700; text-transform:uppercase; letter-spacing:.3em; color: var(--muted); font-size: clamp(11px,1.4vw,14px); margin-bottom: 14px; }
.matches { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.match {
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: clamp(10px,2vw,22px);
  background: var(--panel); border: 1px solid var(--steel); border-left: 3px solid var(--red);
  border-radius: 12px; padding: 12px clamp(14px,2.4vw,22px); min-width: min(440px, 92vw);
}
.match .court { grid-column: 1 / -1; justify-self: center; font-family:"Barlow Condensed",sans-serif; font-weight:700; text-transform:uppercase; letter-spacing:.18em; font-size: 11px; color: var(--red-soft); margin-bottom: 2px; }
.match .team { display: inline-flex; align-items: center; gap: 9px; min-width: 0; }
.match .team b { font-family:"Barlow Condensed",sans-serif; font-weight:700; font-size: clamp(15px,2.2vw,21px); color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.match .team.home { justify-content: flex-end; text-align: right; }
.match .team.away { justify-content: flex-start; text-align: left; }
.match .tlogo { width: 26px; height: 26px; object-fit: contain; flex: none; }
.match .score { font-family:"Barlow Condensed",sans-serif; font-weight:800; font-size: clamp(22px,3.4vw,34px); color: #fff; font-variant-numeric: tabular-nums; letter-spacing: .02em; padding: 0 4px; }

.ranktable { width: min(560px, 96vw); margin: 16px auto 0; border-collapse: collapse; font-size: clamp(12px,1.5vw,15px); background: var(--panel); border: 1px solid var(--steel); border-radius: 12px; overflow: hidden; }
.ranktable th { font-family:"Barlow Condensed",sans-serif; font-weight:700; text-transform:uppercase; letter-spacing:.1em; font-size: 11px; color: var(--muted); padding: 9px 10px; text-align: center; border-bottom: 1px solid var(--steel); }
.ranktable td { padding: 8px 10px; text-align: center; color: var(--ink); border-bottom: 1px solid rgba(255,255,255,.05); }
.ranktable tr:last-child td { border-bottom: 0; }
.ranktable .tname { text-align: left; font-weight: 600; }
.ranktable td b { color: var(--red-soft); }
.ranktable th:first-child, .ranktable td:first-child { color: var(--muted); width: 2.4em; }

.live { display:inline-flex; align-items:center; gap:8px; margin-top: clamp(22px,4vh,34px); color: var(--muted); font-size: 13px; letter-spacing:.12em; text-transform: uppercase; }
.dot { width:8px; height:8px; border-radius:50%; background: var(--muted); box-shadow:0 0 10px transparent; transition:.3s; }
.dot.on { background: #22c55e; box-shadow:0 0 10px #22c55e; animation: blink 2s infinite; }
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:.25} }

.footer-brand { margin-top: clamp(28px,5vh,44px); color: var(--muted); font-size: 12px; letter-spacing: .18em; text-transform: uppercase; }
.footer-brand b { color: var(--ink); font-weight: 600; }

/* confetti */
.confetti { position: fixed; top: -10px; width: 9px; height: 14px; z-index: 50; pointer-events:none; border-radius: 1px; }
.confetti-btn { position: fixed; top: 12px; right: 12px; z-index: 60; width: 40px; height: 40px; padding: 0; font-size: 20px; line-height: 1; cursor: pointer; border: none; border-radius: 50%; background: #ffd400; color: #000; box-shadow: 0 4px 14px rgba(0,0,0,.3); transition: transform .12s ease; }
.confetti-btn:hover { transform: scale(1.08); }
.confetti-btn:active { transform: scale(.94); }
.rocket { position: fixed; bottom: 0; width: 5px; height: 16px; z-index: 55; pointer-events: none; border-radius: 3px; background: linear-gradient(180deg, #ffd400, #ff8c00); box-shadow: 0 0 8px 2px rgba(255,212,0,.8); }
.spark { position: fixed; width: 8px; height: 8px; z-index: 55; pointer-events: none; border-radius: 50%; box-shadow: 0 0 6px 1px rgba(255,212,0,.6); }

/* ADMIN */
.card { max-width: 640px; margin: 0 auto; background: var(--panel); border: 1px solid var(--steel); border-top: 3px solid var(--red); border-radius: 16px; padding: clamp(20px, 4vw, 36px); backdrop-filter: blur(8px); }
.field { margin-bottom: 22px; }
.field label { font-family:"Barlow Condensed",sans-serif; font-weight:700; display:block; text-transform: uppercase; letter-spacing:.16em; font-size: 13px; color: var(--muted); margin-bottom: 8px; }
.field input { width: 100%; font-family: inherit; font-size: 18px; color: var(--ink); background: rgba(0,0,0,.4); border: 1px solid var(--steel); border-radius: 8px; padding: 14px 16px; outline: none; transition:.18s; }
.field input:focus { border-color: var(--red); box-shadow: 0 0 0 3px rgba(226,35,26,.18); }

.toggle { display:flex; gap:6px; background: rgba(0,0,0,.4); border:1px solid var(--steel); border-radius:10px; padding:4px; }
.toggle button { flex:1; font-family:"Barlow Condensed",sans-serif; font-weight:700; text-transform:uppercase; letter-spacing:.06em; font-size:15px; color:var(--muted); background:transparent; border:0; padding:11px; border-radius:7px; cursor:pointer; transition:.18s; }
.toggle button.active { background: var(--red); color:#fff; box-shadow:0 0 18px rgba(226,35,26,.4); }

.goal-control { display: grid; grid-template-columns: 1fr auto 1fr; gap: 14px; align-items: stretch; margin: 8px 0 4px; }
.btn { font-family: "Barlow Condensed", sans-serif; font-weight: 800; letter-spacing:.04em; cursor: pointer; border: 0; border-radius: 10px; transition: transform .12s, box-shadow .2s; text-transform: uppercase; }
.btn:active { transform: scale(.96); }
.btn-goal { font-size: clamp(28px, 6vw, 44px); padding: 22px; color: #fff; background: linear-gradient(180deg, var(--red-soft), var(--red) 60%, var(--red-deep)); box-shadow: 0 14px 40px rgba(226,35,26,.4); }
.btn-minus { font-size: 28px; background: rgba(255,255,255,.05); color: var(--ink); border: 1px solid var(--steel); padding: 0 26px; }
.goal-now { text-align:center; }
.goal-now .n { font-family: "Barlow Condensed", sans-serif; font-weight:800; font-size: clamp(40px,9vw,64px); color: var(--red-soft); line-height:1; }
.goal-now .l { font-family:"Barlow Condensed",sans-serif; font-weight:700; font-size: 12px; letter-spacing:.2em; text-transform: uppercase; color: var(--muted); }
.row { display:flex; gap:12px; margin-top: 8px; }
.btn-ghost { flex:1; font-family: inherit; font-weight:600; font-size: 14px; background: transparent; color: var(--muted); border:1px solid var(--steel); border-radius: 8px; padding: 12px; cursor:pointer; }
.btn-ghost:hover { color: var(--ink); border-color: var(--red); }
.btn-primary { width:100%; font-family:"Barlow Condensed",sans-serif; font-weight:800; text-transform:uppercase; letter-spacing:.06em; font-size:18px; color:#fff; background:linear-gradient(180deg,var(--red-soft),var(--red) 60%,var(--red-deep)); border:0; border-radius:10px; padding:15px; cursor:pointer; }
.hint { font-size: 13px; color: var(--muted); margin-top: 14px; line-height:1.55; }
.api-readout { margin-top:16px; padding:14px 16px; background:rgba(0,0,0,.3); border:1px solid var(--steel); border-radius:8px; font-size:14px; color:var(--muted); line-height:1.6; }
.api-readout b { color: var(--ink); }
.saved { color: var(--red-soft); font-weight:600; }
.divider { height:1px; background:var(--steel); margin:26px 0; border:0; }
