/* Gõ Nhanh — 진행도 표시 (헤더 칩 + 프로필 진행도 카드). tokens.css 변수만. .pg- 프리픽스.
   ※ 헤더 칩(.pg-hchip*)은 모든 페이지에 렌더되므로 동일 규칙을 header.php 에 인라인 <style> 로도 둔다
     (레이아웃/app.css 는 읽기 전용이라 progress.css 를 전역 로드할 수 없음). 규칙은 양쪽 동일 유지. */

/* ── 헤더 진행도 칩 ───────────────────────────────────────── */
.pg-hchips {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-1);
}
.pg-hchip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  border-radius: var(--radius-full);
  padding: 4px 10px;
  font-size: var(--fs-xs);
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
  text-decoration: none;
}
.pg-hchip-streak {
  background: var(--brand-gold-soft);
  color: var(--text);
}
.pg-hchip-level {
  background: var(--brand-red-soft);
  color: var(--brand-red);
}
@media (max-width: 560px) {
  .pg-hchip { padding: 3px 8px; }
}

/* ── 프로필 진행도 카드 ───────────────────────────────────── */
.pg-card {
  display: flex;
  flex-direction: column;
  gap: var(--sp-5);
}
.pg-card h2 {
  margin: 0;
  font-size: var(--fs-md);
  color: var(--text-muted);
}

/* 레벨 + 칭호 헤드 */
.pg-lvl {
  display: flex;
  align-items: center;
  gap: var(--sp-4);
}
.pg-lvl-badge {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 76px;
  padding: var(--sp-3) var(--sp-4);
  border-radius: var(--radius-lg);
  background: var(--brand-red-soft);
  color: var(--brand-red);
}
.pg-lvl-badge-word {
  font-size: var(--fs-xs);
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.pg-lvl-badge-num {
  font-size: var(--fs-2xl);
  font-weight: 800;
  line-height: 1;
}
.pg-lvl-meta {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.pg-lvl-title {
  font-size: var(--fs-xl);
  font-weight: 800;
  letter-spacing: -.01em;
}
.pg-lvl-next {
  font-size: var(--fs-sm);
  color: var(--text-muted);
}

/* XP 진척 바 */
.pg-xp {
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
}
.pg-xp-track {
  height: 12px;
  border-radius: var(--radius-full);
  background: var(--surface-sunken);
  border: 1px solid var(--border);
  overflow: hidden;
}
.pg-xp-fill {
  height: 100%;
  border-radius: var(--radius-full);
  background: var(--brand-gold);
  transition: width .5s ease;
}
.pg-xp-legend {
  display: flex;
  justify-content: space-between;
  gap: var(--sp-3);
  font-size: var(--fs-sm);
  color: var(--text-muted);
}

/* 스트릭·프리즈·총 XP 통계 그리드 */
.pg-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--sp-3);
}
.pg-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: var(--sp-3);
  border-radius: var(--radius-md);
  background: var(--surface-sunken);
  text-align: center;
}
.pg-stat-num {
  font-size: var(--fs-lg);
  font-weight: 800;
}
.pg-stat-num .pg-ico { font-size: var(--fs-md); margin-right: 2px; }
.pg-stat-label {
  font-size: var(--fs-xs);
  color: var(--text-muted);
}

@media (max-width: 560px) {
  .pg-stats { grid-template-columns: repeat(2, 1fr); }
  .pg-lvl-title { font-size: var(--fs-lg); }
}

/* 공개 프로필 — 레벨/칭호/최고 스트릭 */
.pg-public {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--sp-3);
  margin-top: var(--sp-4);
  padding-top: var(--sp-4);
  border-top: 1px solid var(--border);
}
.pg-public .pg-hchip { font-size: var(--fs-sm); padding: 5px 12px; }
.pg-public-title { font-weight: 800; }

@media (prefers-reduced-motion: reduce) {
  .pg-xp-fill { transition: none; }
}
