:root {
  --pt-green: #1F7A4D;
  --pt-deep-forest: #0F2D22;
  --pt-charcoal: #151A18;
  --pt-white: #FFFFFF;

  --pt-soft-green: #EAF5EF;
  --pt-sage: #CFE6D8;
  --pt-mint: #F3FBF6;
  --pt-warm-sand: #F6F1E8;
  --pt-mist: #F7F8F6;
  --pt-stone: #E7E4DC;
  --pt-slate: #59645E;
  --pt-light-charcoal: #2C3430;

  --pt-success: #2F8F5B;
  --pt-warning: #C98A2E;
  --pt-danger: #B84A3A;
  --pt-info: #3B6F8F;
  --pt-neutral: #6C756F;

  --pt-radius-xs: 6px;
  --pt-radius-sm: 10px;
  --pt-radius-md: 14px;
  --pt-radius-lg: 20px;
  --pt-radius-xl: 28px;
  --pt-radius-pill: 999px;

  --pt-shadow-card: 0 10px 30px rgba(15,45,34,0.08);
  --pt-shadow-elevated: 0 20px 60px rgba(15,45,34,0.14);
  --pt-shadow-button: 0 10px 24px rgba(31,122,77,0.22);

  --pt-font-sans: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --pt-font-mono: "IBM Plex Mono", SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

body {
  font-family: var(--pt-font-sans);
  color: var(--pt-charcoal);
  background: var(--pt-mist);
}

.pt-app-shell {
  background:
    radial-gradient(circle at 20% 0%, rgba(31,122,77,0.12), transparent 32%),
    linear-gradient(180deg, var(--pt-white) 0%, var(--pt-mist) 100%);
}

.pt-card {
  background: var(--pt-white);
  border: 1px solid rgba(15,45,34,0.08);
  border-radius: var(--pt-radius-lg);
  box-shadow: var(--pt-shadow-card);
}

.pt-card-soft {
  background: linear-gradient(180deg, var(--pt-white), var(--pt-mint));
  border: 1px solid rgba(31,122,77,0.12);
  border-radius: var(--pt-radius-xl);
  box-shadow: var(--pt-shadow-card);
}

.pt-button-primary {
  background: var(--pt-green);
  color: var(--pt-white);
  border-radius: var(--pt-radius-pill);
  box-shadow: var(--pt-shadow-button);
  font-weight: 700;
  transition: transform 150ms ease, box-shadow 150ms ease, background 150ms ease;
}

.pt-button-primary:hover {
  background: var(--pt-deep-forest);
  transform: translateY(-1px);
}

.pt-button-secondary {
  background: var(--pt-white);
  color: var(--pt-deep-forest);
  border: 1px solid rgba(15,45,34,0.16);
  border-radius: var(--pt-radius-pill);
  font-weight: 700;
}

.pt-kicker {
  color: var(--pt-green);
  text-transform: uppercase;
  letter-spacing: .11em;
  font-size: .76rem;
  font-weight: 800;
}

.pt-status-pill {
  border-radius: var(--pt-radius-pill);
  background: var(--pt-soft-green);
  color: var(--pt-deep-forest);
  border: 1px solid rgba(31,122,77,0.15);
  font-size: .78rem;
  font-weight: 700;
}

.pt-score-ring {
  background: conic-gradient(var(--pt-green) 0 72%, var(--pt-soft-green) 72% 100%);
  border-radius: 50%;
}
