:root {
  color-scheme: light;
  --background: oklch(0.99 0.002 255);
  --foreground: oklch(0.26 0.02 260);
  --card: oklch(1 0 0);
  --card-foreground: oklch(0.26 0.02 260);
  --primary: oklch(0.5 0.1 256);
  --primary-foreground: oklch(0.99 0.004 250);
  --secondary: oklch(0.97 0.006 255);
  --secondary-foreground: oklch(0.34 0.05 258);
  --muted: oklch(0.975 0.004 255);
  --muted-foreground: oklch(0.53 0.02 258);
  --accent: oklch(0.94 0.016 256);
  --accent-foreground: oklch(0.36 0.07 258);
  --destructive: oklch(0.577 0.245 27.325);
  --border: oklch(0.93 0.006 258);
  --input: oklch(0.93 0.006 258);
  --ring: oklch(0.5 0.1 256);
  --radius: 0.375rem;
  --font-sans: 'Geist', ui-sans-serif, system-ui, sans-serif;
  --font-mono: 'Geist Mono', ui-monospace, monospace;
}

* {
  border-color: var(--border);
}

html {
  scroll-behavior: smooth;
}

body {
  background: var(--background);
  color: var(--foreground);
  font-family: var(--font-sans);
}

.font-mono {
  font-family: var(--font-mono);
}

/* ---- decorative utilities from the original globals.css ---- */
.bg-blueprint {
  background-image:
    linear-gradient(to right, color-mix(in oklch, var(--foreground) 4%, transparent) 1px, transparent 1px),
    linear-gradient(to bottom, color-mix(in oklch, var(--foreground) 4%, transparent) 1px, transparent 1px);
  background-size: 32px 32px;
}
.bg-blue-radial {
  background-image: radial-gradient(
    ellipse 80% 60% at 50% 0%,
    color-mix(in oklch, var(--primary) 6%, transparent),
    transparent 70%
  );
}
.flow-dash {
  stroke-dasharray: 5 6;
  animation: flow-dash 1s linear infinite;
}
@keyframes flow-dash {
  to { stroke-dashoffset: -22; }
}
.anim-rise {
  animation: rise 0.7s cubic-bezier(0.16, 1, 0.3, 1) both;
}
@keyframes rise {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: translateY(0); }
}

.legal-prose h2 {
  margin-top: 2.25rem;
  margin-bottom: 0.75rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--border);
  font-size: 1.125rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--foreground);
}
.legal-prose h3 {
  margin-top: 1.5rem;
  margin-bottom: 0.5rem;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--foreground);
}
.legal-prose ul { list-style: disc; padding-left: 1.25rem; }
.legal-prose li { margin-top: 0.35rem; }
.legal-prose a { color: var(--primary); text-decoration: underline; text-underline-offset: 2px; }
.legal-prose p, .legal-prose ul { margin-top: 0.9rem; }

/* buttons (replicating components/ui/button.tsx variants) */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  white-space: nowrap;
  border-radius: 0.5rem;
  border: 1px solid transparent;
  font-size: 0.875rem;
  font-weight: 500;
  transition: all 0.15s ease;
  cursor: pointer;
  text-decoration: none;
}
.btn svg { width: 1rem; height: 1rem; pointer-events: none; }
.btn-lg { height: 2.75rem; padding: 0 1.5rem; font-size: 0.95rem; }
.btn-sm { height: 2.25rem; padding: 0 1rem; }
.btn-default { background: var(--primary); color: var(--primary-foreground); }
.btn-default:hover { background: color-mix(in oklch, var(--primary) 90%, transparent); }
.btn-outline { background: transparent; border-color: var(--border); color: var(--foreground); }
.btn-outline:hover { background: var(--muted); }
.btn-secondary { background: var(--secondary); color: var(--secondary-foreground); }
.btn-secondary:hover { background: color-mix(in oklch, var(--secondary) 80%, transparent); }
.btn-ghost { background: transparent; color: var(--foreground); }
.btn-ghost:hover { background: var(--muted); }

.icon-badge {
  display: flex; align-items: center; justify-content: center;
  border-radius: var(--radius);
}

[data-lucide] { width: 1.25rem; height: 1.25rem; }

/* Kontaktformular: Fehlerstatus */
.field-error {
  border-color: var(--destructive) !important;
}

/* Aktive Seite in Footer-Navigation */
.nav-current {
  color: var(--foreground) !important;
  font-weight: 600;
}
