/**
 * PixelAdvisor Basis-Komponenten (Design System)
 * Nutzt Tokens aus tokens.css – muss vor dieser Datei geladen werden.
 */

/* Container */
.pa-container {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--s-6);
}

/* Page background: body auf --bg, content cards auf --surface */
.pa-page { background: var(--bg); }
.pa-page .pa-surface { background: var(--surface); }

/* Card */
.pa-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  box-shadow: var(--shadow-md);
}
.pa-card--soft {
  background: var(--surface-2);
  box-shadow: var(--shadow-sm);
}
.pa-card__hd {
  padding: var(--s-6);
  border-bottom: 1px solid var(--border);
}
.pa-card__bd { padding: var(--s-6); }
.pa-card__ft {
  padding: var(--s-6);
  border-top: 1px solid var(--border);
}

/* Section */
.pa-section { margin-top: var(--s-9); }
.pa-section__title {
  font-size: var(--h2);
  font-weight: 700;
  color: var(--text);
  margin: 0 0 var(--s-4);
  line-height: 1.3;
}

/* Buttons */
.pa-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 18px;
  border-radius: var(--r-sm);
  font-weight: 700;
  font-size: var(--body);
  border: 1px solid transparent;
  cursor: pointer;
  text-decoration: none;
  transition: opacity 0.2s, background 0.2s;
  box-sizing: border-box;
}
.pa-btn:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px var(--focus);
}
.pa-btn--primary {
  background: var(--brand);
  color: #fff;
}
.pa-btn--primary:hover { background: var(--brand-2); }
.pa-btn--ghost {
  background: transparent;
  border-color: var(--border);
  color: var(--text);
}
.pa-btn--ghost:hover { background: var(--surface-2); }

/* Badge */
.pa-badge {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  padding: 8px 12px;
  border-radius: 999px;
  background: var(--surface-2);
  border: 1px solid var(--border);
  font-weight: 700;
  font-size: var(--small);
  color: var(--text-2);
}

/* Score pill / bubble */
.pa-score { display: flex; align-items: center; gap: 14px; }
.pa-score__bubble {
  width: 76px;
  height: 76px;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 26px;
  font-weight: 900;
  color: #fff;
  flex-shrink: 0;
}
.pa-score__bubble.is-good { background: linear-gradient(135deg, var(--good) 0%, #34d399 100%); }
.pa-score__bubble.is-mid { background: linear-gradient(135deg, var(--mid) 0%, #fbbf24 100%); }
.pa-score__bubble.is-bad { background: linear-gradient(135deg, var(--bad) 0%, #f87171 100%); }

/* Progressbar */
.pa-progress {
  height: 10px;
  border-radius: 999px;
  background: var(--surface-2);
  overflow: hidden;
  border: 1px solid var(--border);
}
.pa-progress__fill {
  height: 100%;
  border-radius: 999px;
  transition: width 0.4s ease;
}

/* Grid */
.pa-grid { display: grid; gap: var(--s-7); }
.pa-grid--2 { grid-template-columns: 1fr 1fr; }
.pa-grid--3 { grid-template-columns: repeat(3, 1fr); }

/* Layout: Main + Sidebar */
.pa-layout {
  display: grid;
  grid-template-columns: 1fr var(--sidebar);
  gap: var(--s-8);
  align-items: start;
}

/* Sticky Sidebar */
.pa-sticky {
  position: sticky;
  top: 120px;
  display: flex;
  flex-direction: column;
  gap: var(--s-6);
}

/* Typography */
.pa-page h1 {
  font-size: var(--h1);
  line-height: 1.15;
  letter-spacing: -0.02em;
  margin: 0 0 var(--s-4);
  color: var(--text);
  font-weight: 800;
}
.pa-page p {
  font-size: var(--body);
  line-height: var(--lh);
  color: var(--text-2);
}
.pa-muted { color: var(--muted); font-size: var(--small); }
.pa-kicker {
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: var(--small);
  color: var(--muted);
  font-weight: 800;
}

/* Responsive: Layout 1 Spalte, Sidebar unter Content */
@media (max-width: 1024px) {
  .pa-layout { grid-template-columns: 1fr; }
  .pa-sticky { position: static; }
}
