:root{
  --jps-bg: #faf7f2;
  --jps-surface: #ffffff;
  --jps-surface-soft: #fffdfa;
  --jps-border: #e8dfd4;
  --jps-text: #1f1f1f;
  --jps-muted: #6f6258;
  --jps-primary: #bf4b36;
  --jps-primary-dark: #963321;
  --jps-accent: #d9a55a;
}
body.jps-theme{
  color: var(--jps-text);
  background:
    radial-gradient(circle at top right, rgba(191,75,54,.08), transparent 32%),
    radial-gradient(circle at top left, rgba(217,165,90,.10), transparent 30%),
    linear-gradient(180deg, #fffdf8 0%, var(--jps-bg) 38%, #f6efe5 100%);
}
.jps-header{
  background: rgba(255,251,245,.92);
  border-bottom: 1px solid var(--jps-border);
  backdrop-filter: blur(8px);
}
.jps-container{ max-width: 1160px; margin: 0 auto; }
.jps-card{
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,250,243,.94));
  border: 1px solid var(--jps-border);
  border-radius: 20px;
  box-shadow: 0 16px 38px rgba(83,45,18,.08);
}
.jps-chip{
  border-radius: 9999px;
  border: 1px solid var(--jps-border);
  background: #fff;
  color: var(--jps-muted);
}
.jps-btn-primary{
  background: linear-gradient(180deg, var(--jps-primary), var(--jps-primary-dark));
  color: #fff;
  border-radius: 12px;
  font-weight: 700;
  box-shadow: 0 10px 24px rgba(191,75,54,.2);
}
.jps-btn-primary:hover{ filter: brightness(.98); }
.jps-btn-ghost{
  border: 1px solid var(--jps-border);
  background: #fff;
  border-radius: 12px;
}
.jps-title{
  font-weight: 800;
  letter-spacing: .01em;
}
.jps-kicker{
  font-size: .75rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--jps-primary);
  font-weight: 700;
}
