/*
 * payapp_mock.css — dev 모드 결제 mock (TASK-082, D-029)
 * Dev::PayappController#checkout 가짜 결제창 전용. 실 PayApp 결제창을 흉내낸 최소 스타일이다.
 * 신규 화면이라 기존 화면 CSS와 클래스 충돌 없이 별도 파일로 분리(tokens.css의 semantic 변수만 재사용).
 * 로드 = 레이아웃 공통 목록 (TASK-086 H1b에서 content_for :head 개별 로드 폐기 — DEV-058 §3.
 * 클래스가 payapp-mock-* 접두라 전역 로드여도 충돌면 없음).
 */

.payapp-mock-wrap {
  min-height: 100svh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-gray-200);
  padding: var(--space-6) var(--space-4);
  font-family: var(--font-sans);
}

.payapp-mock-card {
  width: 100%;
  max-width: 360px;
  background: var(--color-bg);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-overlay);
  overflow: hidden;
}

.payapp-mock-header {
  background: var(--color-bg-inverse);
  color: var(--color-fg-on-inverse);
  padding: var(--space-5) var(--space-5) var(--space-4);
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

.payapp-mock-header-badge {
  width: 22px;
  height: 22px;
  border-radius: var(--radius-sm);
  background: var(--color-fg-brand);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-bold);
  color: var(--color-fg-on-brand);
}

.payapp-mock-header-title {
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-semibold);
  letter-spacing: -0.2px;
}

.payapp-mock-header-sub {
  margin-left: auto;
  font-size: var(--font-size-xs);
  color: var(--color-fg-on-inverse-muted);
}

.payapp-mock-body {
  padding: var(--space-6) var(--space-5) var(--space-5);
}

.payapp-mock-notice {
  font-size: var(--font-size-xs);
  color: var(--color-fg-subtle);
  margin-bottom: var(--space-5);
  line-height: var(--line-height-tight);
}

.payapp-mock-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: var(--space-3) 0;
  border-bottom: var(--border-width) solid var(--color-border);
  gap: var(--space-3);
}

.payapp-mock-row:last-of-type {
  border-bottom: none;
}

.payapp-mock-row-label {
  font-size: var(--font-size-sm);
  color: var(--color-fg-muted);
  flex-shrink: 0;
}

.payapp-mock-row-value {
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-medium);
  color: var(--color-fg);
  text-align: right;
  word-break: break-word;
}

.payapp-mock-row-value--price {
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-fg-brand);
}

.payapp-mock-alert {
  margin: 0 0 var(--space-4);
  padding: var(--space-3) var(--space-3-5);
  border-radius: var(--radius-md);
  background: var(--color-bg-critical);
  color: var(--color-fg-critical);
  font-size: var(--font-size-sm);
  line-height: var(--line-height-snug);
}

.payapp-mock-actions {
  margin-top: var(--space-6);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.payapp-mock-btn {
  display: block;
  width: 100%;
  height: var(--size-control);
  border-radius: var(--radius-md);
  border: none;
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-semibold);
  cursor: pointer;
  font-family: inherit;
}

.payapp-mock-btn--approve {
  background: var(--color-fg-brand);
  color: var(--color-fg-on-brand);
}

.payapp-mock-btn--fail {
  background: var(--color-bg-subtle);
  color: var(--color-fg-muted);
}

.payapp-mock-footnote {
  margin-top: var(--space-5);
  font-size: var(--font-size-2xs);
  color: var(--color-fg-faint);
  text-align: center;
  line-height: var(--line-height-tight);
}
