/* Error pages — scoped, minimal, inherits theme fonts */
:root {
  --fitp-accent: var(--accent, #ff009e);
  --fitp-bg: var(--banner-bg, #f6f8fa);
  --fitp-text: var(--text, #222);
  --fitp-heading: var(--heading, #161b22);
  --fitp-muted: var(--muted, #909090);
  --fitp-radius: 1.25rem;
}

.fitp-error-wrap {
  display: grid;
  place-items: center;
  padding: clamp(24px, 4vw, 64px);
  background: var(--bg, #fff);
  color: var(--fitp-text);
  min-height: 65vh;
}

.fitp-error-card {
  width: min(920px, 92vw);
  background: var(--fitp-bg);
  border: 1px solid rgba(0,0,0,.06);
  border-radius: var(--fitp-radius);
  box-shadow: 0 8px 30px rgba(0,0,0,.06);
  padding: clamp(20px, 4vw, 48px);
  text-align: center;
}

.fitp-error-icon {
  margin: 4px auto 16px;
  color: var(--fitp-accent);
  opacity: .95;
}

.fitp-error-title {
  margin: 0 0 8px;
  font-size: clamp(1.5rem, 3.6vw, 2.4rem);
  color: var(--fitp-heading);
  letter-spacing: -0.01em;
}

.fitp-error-text {
  margin: 0 auto 20px;
  max-width: 60ch;
  font-size: clamp(1rem, 2.2vw, 1.125rem);
  color: var(--fitp-text);
}

.fitp-error-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
  margin: 8px 0 20px;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 16px;
  border-radius: 999px;
  border: 1px solid transparent;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  transition: transform .05s ease, box-shadow .2s ease, opacity .2s ease;
}

.btn-primary {
  background: var(--fitp-accent);
  color: #fff;
  box-shadow: 0 6px 20px rgba(255, 0, 158, .25);
}
.btn-primary:hover { transform: translateY(-1px); }

.btn-ghost {
  background: transparent;
  color: var(--fitp-heading);
  border-color: #e6e6e6;
}
.btn-ghost:hover { background: #fff; }

.fitp-error-meta {
  margin-top: 18px;
  color: var(--fitp-muted);
  font-size: .9rem;
}

