/* AI-generated: SIC-6 — Design nach BRAND.md (VÖLKER AI Solution, v1.0) */

/* SIC-8: Marken-Schriften selbst ausgeliefert (Fontsource 5.1.0, SIL OFL 1.1, Subset latin) */
@font-face {
  font-family: Inter;
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/inter-400.woff2") format("woff2");
}

@font-face {
  font-family: Inter;
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/inter-600.woff2") format("woff2");
}

@font-face {
  font-family: Inter;
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/inter-700.woff2") format("woff2");
}

@font-face {
  font-family: Montserrat;
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/montserrat-700.woff2") format("woff2");
}

@font-face {
  font-family: Montserrat;
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/montserrat-800.woff2") format("woff2");
}

:root {
  --anthrazit: #111111;
  --neon: #ff08f5;        /* Neon-Magenta, nur auf dunklem Grund */
  --neon-hell: #ff6bf9;
  --flaeche: #c42bae;     /* Flaechen-Magenta */
  --cyan: #00e5ff;        /* Kontrast, pro Bereich nur einmal */
  --grau: #b3b3b3;
  --hellgrau: #f4f4f6;
  --weiss: #ffffff;
  --bernstein: #ffb020;
  --ok: #4ade80;
  --error: #ff5470;
  --glass: rgb(255 255 255 / 6%);
  --glass-border: rgb(255 255 255 / 12%);
  --font-head: Montserrat, Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-text: Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }

html { min-height: 100%; background: var(--anthrazit); }

body {
  margin: 0;
  min-height: 100vh;
  padding: 24px 16px;
  font-family: var(--font-text);
  line-height: 1.55;
  color: var(--hellgrau);
  background:
    radial-gradient(900px 600px at 10% -10%, rgb(255 8 245 / 22%), transparent 60%),
    radial-gradient(700px 500px at 110% 110%, rgb(196 43 174 / 18%), transparent 60%),
    radial-gradient(400px 300px at 90% 10%, rgb(0 229 255 / 6%), transparent 70%),
    var(--anthrazit);
  background-attachment: fixed;
}

/* Glas-Karte mit Glanzkante */
.card {
  position: relative;
  max-width: 760px;
  margin: 0 auto;
  padding: 28px;
  border-radius: 24px;
  background: linear-gradient(145deg, rgb(255 255 255 / 9%), rgb(255 255 255 / 2%));
  border: 1px solid var(--glass-border);
  box-shadow:
    0 30px 80px rgb(0 0 0 / 55%),
    0 0 0 1px rgb(255 255 255 / 3%) inset,
    0 1px 0 rgb(255 255 255 / 18%) inset;
  backdrop-filter: blur(18px) saturate(140%);
  overflow: hidden;
}

/* Spiegelung: diagonaler Lichtstreifen ueber der Karte */
.card::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(120deg, transparent 0 52%, rgb(255 255 255 / 6%) 60%, transparent 72%),
    linear-gradient(180deg, rgb(255 255 255 / 5%), transparent 30%);
  pointer-events: none;
}

.card.narrow { max-width: 420px; margin-top: 8vh; }

/* Kopf: Bildmarke mit Spiegelung + Wortmarke */
.brand {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 40px;
}

.brand-logo {
  width: 64px;
  height: 64px;
  filter: drop-shadow(0 6px 14px rgb(255 8 245 / 35%));
  -webkit-box-reflect: below 0 linear-gradient(transparent 62%, rgb(255 255 255 / 18%));
}

.brand-text { flex: 1; min-width: 0; }

.wordmark {
  margin: 0;
  font-family: var(--font-head);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  color: var(--grau);
}

.wordmark .ai { color: var(--neon); text-shadow: 0 0 12px rgb(255 8 245 / 60%); }

h1 {
  margin: 2px 0 0;
  font-family: var(--font-head);
  font-size: clamp(1.5rem, 4vw, 2rem);
  font-weight: 800;
  line-height: 1.15;
  background: linear-gradient(180deg, #ffffff 30%, #c9c9d2 70%, #8e8e99);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

h1 .accent {
  background: linear-gradient(180deg, var(--neon-hell), var(--neon));
  -webkit-background-clip: text;
  background-clip: text;
}

/* Knoepfe */
button {
  font: inherit;
  border-radius: 12px;
  padding: 11px 18px;
  cursor: pointer;
  color: var(--weiss);
  border: 1px solid var(--glass-border);
  background: var(--glass);
  transition: transform 120ms ease, box-shadow 160ms ease, background 160ms ease;
}

button:hover:not(:disabled) { background: rgb(255 255 255 / 11%); }
button:active:not(:disabled) { transform: translateY(2px); }
button:focus-visible { outline: 2px solid var(--neon-hell); outline-offset: 3px; }
button:disabled { opacity: 0.4; cursor: not-allowed; }

/* 3D-Aufnahmeknopf mit Glanz */
.record {
  position: relative;
  width: 100%;
  padding: 22px;
  font-family: var(--font-head);
  font-size: 1.25rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  border: none;
  border-radius: 18px;
  background: linear-gradient(180deg, #ff5cf9 0%, var(--neon) 45%, var(--flaeche) 100%);
  box-shadow:
    0 14px 34px rgb(255 8 245 / 45%),
    0 4px 0 #8d1f7d,
    0 1px 0 rgb(255 255 255 / 45%) inset,
    0 -10px 24px rgb(120 0 110 / 35%) inset;
  text-shadow: 0 1px 2px rgb(0 0 0 / 35%);
  overflow: hidden;
}

/* Glanzlicht oben auf dem Knopf */
.record::after {
  content: "";
  position: absolute;
  inset: 2px 2px auto;
  height: 55%;
  border-radius: 16px 16px 50% 50% / 16px 16px 30% 30%;
  background: linear-gradient(180deg, rgb(255 255 255 / 32%), rgb(255 255 255 / 0%) 90%);
  pointer-events: none;
}

.record:hover:not(:disabled) {
  background: linear-gradient(180deg, #ff74fa 0%, #ff2cf6 45%, #d23abf 100%);
}

.record:active:not(:disabled) {
  transform: translateY(3px);
  box-shadow: 0 8px 20px rgb(255 8 245 / 40%), 0 1px 0 #8d1f7d, 0 -8px 20px rgb(120 0 110 / 40%) inset;
}

.record.recording {
  background: linear-gradient(180deg, #2a1027 0%, #1b0b19 100%);
  color: var(--neon-hell);
  box-shadow: 0 0 0 2px var(--neon), 0 0 30px rgb(255 8 245 / 55%), 0 4px 0 #5a1150;
  animation: pulse 1.4s ease-in-out infinite;
}

@keyframes pulse {
  0%, 100% { box-shadow: 0 0 0 2px var(--neon), 0 0 18px rgb(255 8 245 / 40%), 0 4px 0 #5a1150; }
  50% { box-shadow: 0 0 0 2px var(--neon), 0 0 42px rgb(255 8 245 / 80%), 0 4px 0 #5a1150; }
}

.primary {
  font-weight: 700;
  border: none;
  background: linear-gradient(180deg, #ff5cf9, var(--neon) 50%, var(--flaeche));
  box-shadow: 0 10px 24px rgb(255 8 245 / 35%), 0 3px 0 #8d1f7d, 0 1px 0 rgb(255 255 255 / 40%) inset;
}

.primary:hover:not(:disabled) { background: linear-gradient(180deg, #ff74fa, #ff2cf6 50%, #d23abf); }

.secondary { background: var(--glass); }

.link {
  padding: 6px 4px;
  border: none;
  background: none;
  color: var(--grau);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.link:hover:not(:disabled) { background: none; color: var(--weiss); }

/* Status */
.status { min-height: 1.5em; margin: 12px 0 0; color: var(--grau); }
.status[data-kind="ok"] { color: var(--ok); }
.status[data-kind="error"] { color: var(--error); }
.status[data-kind="busy"] { color: var(--neon-hell); }
.status[data-kind="recording"] { color: var(--neon-hell); font-weight: 600; }

/* Eingabefelder */
.label {
  display: block;
  margin: 20px 0 8px;
  font-family: var(--font-head);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--grau);
}

textarea, input[type="password"] {
  width: 100%;
  padding: 14px;
  font: inherit;
  color: var(--weiss);
  background: rgb(0 0 0 / 35%);
  border: 1px solid var(--glass-border);
  border-radius: 14px;
  box-shadow: 0 2px 10px rgb(0 0 0 / 40%) inset;
  transition: border-color 160ms ease, box-shadow 160ms ease;
}

textarea { resize: vertical; }
textarea::placeholder { color: #7d7d88; }

textarea:focus, input[type="password"]:focus {
  outline: none;
  border-color: var(--neon);
  box-shadow: 0 0 0 3px rgb(255 8 245 / 25%), 0 2px 10px rgb(0 0 0 / 40%) inset;
}

input[type="password"] { margin-bottom: 14px; }

form .primary { width: 100%; padding: 14px; }

/* Gesundheitsdaten-Hinweis bleibt deutlich */
.warning {
  margin: 10px 0 0;
  padding: 10px 14px;
  font-weight: 600;
  color: var(--error);
  border: 1px solid rgb(255 84 112 / 60%);
  border-left: 4px solid var(--error);
  border-radius: 12px;
  background: rgb(255 84 112 / 12%);
}

.tools { display: flex; gap: 12px; align-items: center; margin-top: 14px; }

.actions { display: flex; gap: 12px; margin-top: 18px; }
.actions .primary { flex: 1; padding: 15px; }

.hint { margin: 14px 0 0; color: #8e8e99; font-size: 0.88rem; }

/* Pegelanzeige (SIC-5) */
.meter-wrap { margin-top: 14px; }
.meter-wrap[hidden] { display: none; }

.meter {
  position: relative;
  height: 16px;
  border-radius: 8px;
  background: rgb(0 0 0 / 50%);
  border: 1px solid var(--glass-border);
  box-shadow: 0 2px 6px rgb(0 0 0 / 60%) inset;
  overflow: hidden;
}

.meter-fill {
  height: 100%;
  width: 0;
  border-radius: 8px;
  background: linear-gradient(180deg, #ffd27a, var(--bernstein));
  transition: width 80ms linear;
}

.meter-fill.loud {
  background: linear-gradient(180deg, #8ff4ff, var(--cyan));
  box-shadow: 0 0 14px rgb(0 229 255 / 70%);
}

.meter-mark {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 3px;
  background: var(--weiss);
  box-shadow: 0 0 6px rgb(255 255 255 / 80%);
}

.meter-hint { margin: 6px 0 0; color: var(--grau); font-size: 0.85rem; }

/* Footer: Hersteller */
.made-by {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  max-width: 760px;
  margin: 22px auto 0;
  color: #8e8e99;
  font-size: 0.82rem;
  text-align: center;
}

.made-by img { width: 26px; height: 26px; }
.made-by strong { font-family: var(--font-head); color: var(--hellgrau); letter-spacing: 0.06em; }
.made-by .ai { color: var(--neon); }
.made-by .motto { color: var(--neon-hell); font-weight: 600; }

@media (max-width: 520px) {
  .card { padding: 20px; border-radius: 20px; }
  .actions { flex-direction: column; }
  .made-by { flex-wrap: wrap; }
}

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