html, body { -webkit-text-size-adjust: 100%; }
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; }

/* Safe-Area für iOS-Notch */
.safe-top    { padding-top: env(safe-area-inset-top); }
.safe-bottom { padding-bottom: env(safe-area-inset-bottom); }

/* Sanftes Aufploppen */
@keyframes pop {
  0%   { transform: scale(0.95); opacity: 0; }
  100% { transform: scale(1);    opacity: 1; }
}
.animate-pop { animation: pop 220ms cubic-bezier(.2,.9,.3,1.2) both; }

/* Slide-in fürs OTP-Sheet */
@keyframes slideUp {
  from { transform: translateY(20px); opacity: 0; }
  to   { transform: translateY(0);    opacity: 1; }
}
.animate-slide { animation: slideUp 240ms ease-out both; }

/* Counter-Pulse beim Hochzählen */
@keyframes pulse-num {
  0%, 100% { transform: scale(1); }
  50%      { transform: scale(1.15); color: #16a34a; }
}
.pulse-num { animation: pulse-num 500ms ease-out; }

/* Mobile-tap clean */
button, a { -webkit-tap-highlight-color: transparent; }

/* Legal-Seiten (Impressum/Datenschutz) */
.legal { color: #334155; line-height: 1.6; }
.legal h1 { font-size: 1.875rem; font-weight: 800; letter-spacing: -0.02em; margin: 0 0 1rem; color: #0f172a; }
.legal h2 { font-size: 1.125rem; font-weight: 800; margin: 2rem 0 0.5rem; color: #0f172a; }
.legal h3 { font-size: 1rem; font-weight: 700; margin: 1.5rem 0 0.25rem; color: #0f172a; }
.legal p  { margin: 0.5rem 0; }
.legal ul { margin: 0.5rem 0; padding-left: 1.25rem; list-style: disc; }
.legal li { margin: 0.15rem 0; }
.legal a  { color: #0f172a; text-decoration: underline; }
.legal strong { color: #0f172a; }
.legal address { font-style: normal; }
.legal hr { border: 0; border-top: 1px solid #e2e8f0; margin: 1.5rem 0; }
