/* Basis: Farb-Variablen, Reset, Seitengeruest (body/header), Buttons, Eingaben,
   kleine generische Bausteine (Tooltip, Ghost-/Link-Buttons, Rechtliches). */

:root{
  --bg0:#101722; --bg1:#0b111a; --panel:#1b2534; --panel2:#223045;
  --ink:#eaeef5; --muted:#8fa0b5; --line:#32405a;
  --p0:#4da3ff; --p1:#ff5d5d; --p2:#ffc93c; --p3:#5ad06e;
  --display:'Arial Black','Avenir Next',Futura,'Segoe UI',system-ui,sans-serif;
  --body:system-ui,'Segoe UI',Roboto,Arial,sans-serif;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0}
html{height:100%}
body{
  height:100dvh; overflow:hidden; color:var(--ink);
  font-family:var(--body);
  background:
          radial-gradient(1100px 600px at 50% -12%, #24344f 0%, var(--bg0) 48%, var(--bg1) 100%);
  display:flex; flex-direction:column; align-items:center;
  padding:14px 20px 20px; gap:16px;
}

header{
  width:100%; max-width:1600px; display:flex; align-items:center; gap:14px; flex-wrap:wrap;
  margin-bottom:4px;
}
h1{
  font-family:var(--display); font-weight:900; font-size:clamp(20px,3.5vw,32px); margin:0;
  letter-spacing:1.5px; line-height:1;
  color:var(--ink); text-shadow:0 3px 0 rgba(0,0,0,.45), 0 0 26px rgba(77,163,255,.25);
}
h1 span{color:var(--p2)}
.tag{font-size:12px; color:var(--muted); border:1px solid var(--line); border-radius:999px; padding:4px 10px}
.hbtns{margin-left:auto; display:flex; gap:8px}

button{
  font-family:inherit; font-size:14px; font-weight:600; color:var(--ink);
  background:var(--panel); border:1px solid var(--line); border-radius:10px;
  padding:8px 14px; cursor:pointer; transition:background .15s, transform .1s;
}
button:hover{background:var(--panel2)}
button:active{transform:translateY(1px)}
button:focus-visible{outline:2px solid var(--p0); outline-offset:2px}
button.primary{background:var(--p0); border-color:transparent; color:#0a1626}
button.primary:hover{filter:brightness(1.08); background:var(--p0)}
button:disabled{opacity:.5; cursor:not-allowed}
button.is-disabled{opacity:.5; cursor:not-allowed}
button.is-disabled:hover{background:var(--panel)}
button.is-disabled:active{transform:none}

.cursor-tip{
  position:fixed; z-index:9999; pointer-events:none;
  transform:translate(14px, 18px);
  background:#0d1420; color:#e8eef6; border:1px solid var(--line);
  padding:6px 10px; border-radius:8px;
  font-size:12px; font-weight:600; line-height:1.3; white-space:nowrap;
  box-shadow:0 6px 20px rgba(0,0,0,.45);
  opacity:0; transition:opacity .12s;
}
.cursor-tip.on{ opacity:1; }

.tinput{
  width:100%; font-family:inherit; font-size:15px; font-weight:600; color:var(--ink);
  background:var(--panel2); border:1px solid var(--line); border-radius:10px;
  padding:10px 12px; outline:none;
}
.tinput:focus{border-color:var(--p0)}
.bigbtn{width:100%; padding:12px; font-size:15px; margin-bottom:10px}
.joinrow{display:flex; gap:8px; margin-bottom:10px}
.joinrow .tinput{flex:1; min-width:0; text-transform:uppercase; letter-spacing:2px}
.linkrow{display:flex; gap:8px; margin:0 0 14px}
.linkrow .tinput{flex:1; min-width:0; font-size:12px}
.codebadge{font-family:var(--display); color:var(--p2); letter-spacing:3px}

.ver-tag{
  margin-top:10px; font-size:11px; letter-spacing:1px; color:var(--muted); opacity:.7;
}

.ghost-btn{
  background:transparent; border:1px solid var(--line); color:var(--muted);
  font-size:13px; font-weight:600; padding:8px 12px;
}
.ghost-btn:hover{ background:var(--panel); color:var(--ink); }
.linklike{
  display:inline-block; width:auto; margin:2px auto 0; padding:6px 4px;
  background:none; border:none; box-shadow:none;
  color:var(--muted); font-size:13px; font-weight:600; text-decoration:underline;
  text-underline-offset:3px; text-decoration-color:var(--line);
}
.linklike:hover{ background:none; color:var(--p0); text-decoration-color:var(--p0); }

.legal-links {
  margin-top: 16px;
  display: flex;
  justify-content: center;
  gap: 16px;
  font-size: 11px;
}
.legal-links a {
  color: var(--muted);
  text-decoration: none;
  transition: color .15s;
}
.legal-links a:hover {
  color: var(--ink);
  text-decoration: underline;
}
.menu-panel .legal-links {
  margin-top: 24px;
}

/* Impressum/Datenschutz im Startscreen: klein & dezent am unteren Rand des Start-Overlays.
   Als Kind von #ovlStart liegt es ÜBER dem Hintergrund-Blur ⇒ scharf, das Demo dahinter bleibt weich. */
.start-legal{
  position:absolute; left:50%; bottom:16px; transform:translateX(-50%);
  margin-top:0; opacity:.7;
}

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