/*
 * F-C8 셀프 체크인 키오스크 — 자체 스타일(kx 토큰만, 하드코딩 0). 공유 css 무수정.
 * 풀스크린 대형 입력 + 인쇄용 배지 규격(@media print). Nifty 카드/중립 팔레트 정합.
 */
.kx-kiosk {
  min-height: 100%;
  max-width: 640px;
  margin: 0 auto;
  padding: var(--space-8) var(--space-4);
  display: grid;
  gap: var(--space-4);
  align-content: start;
}
.kx-kiosk__head { text-align: center; }
.kx-kiosk__head h1 {
  font-size: var(--fs-display);
  font-weight: var(--fw-bold);
  color: var(--color-neutral-900);
  margin: 0 0 var(--space-2);
}
.kx-kiosk__head p { font-size: var(--fs-body); color: var(--color-text-muted); margin: 0; }

.kx-kiosk__scan { display: grid; gap: var(--space-2); }
.kx-kiosk__scan label { font-size: var(--fs-caption); color: var(--color-neutral-700); font-weight: var(--fw-medium); }

.kx-kiosk__input {
  width: 100%;
  padding: var(--space-4);
  font-size: var(--fs-h3);
  border: 2px solid var(--color-neutral-300);
  border-radius: var(--radius-md);
  background: var(--color-white);
  color: var(--color-neutral-900);
}
.kx-kiosk__input:focus { outline: none; border-color: var(--color-primary-600); box-shadow: var(--focus-ring); }

.kx-kiosk__btn {
  padding: var(--space-3) var(--space-5);
  font-size: var(--fs-body);
  font-weight: var(--fw-semibold);
  border-radius: var(--radius-md);
  border: 1px solid var(--color-neutral-300);
  background: var(--color-white);
  color: var(--color-neutral-800);
  cursor: pointer;
}
.kx-kiosk__btn--primary {
  background: var(--color-primary-600);
  border-color: var(--color-primary-600);
  color: var(--color-on-accent);
  padding: var(--space-4);
  font-size: var(--fs-h3);
}
.kx-kiosk__btn--ghost { background: transparent; border-color: transparent; color: var(--color-text-muted); }
.kx-kiosk__btn:disabled { opacity: 0.6; cursor: not-allowed; }

.kx-kiosk__or {
  display: flex; align-items: center; gap: var(--space-3);
  color: var(--color-text-muted); font-size: var(--fs-caption);
}
.kx-kiosk__or::before, .kx-kiosk__or::after {
  content: ''; flex: 1; height: 1px; background: var(--color-neutral-200);
}

.kx-kiosk__search { display: flex; gap: var(--space-2); }
.kx-kiosk__search .kx-kiosk__input { font-size: var(--fs-body); padding: var(--space-3); }

.kx-kiosk__err { color: var(--color-error); font-size: var(--fs-caption); text-align: center; margin: 0; }
.kx-kiosk__empty { color: var(--color-text-muted); font-size: var(--fs-caption); text-align: center; margin: 0; }

.kx-kiosk__results { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-2); }
.kx-kiosk__result {
  display: flex; justify-content: space-between; align-items: center; gap: var(--space-2);
  padding: var(--space-3); border: 1px solid var(--color-neutral-100); border-radius: var(--radius-md);
  background: var(--color-white);
}
.kx-kiosk__result-name { display: block; font-weight: var(--fw-semibold); color: var(--color-neutral-900); }
.kx-kiosk__result-meta { display: block; font-size: var(--fs-caption); color: var(--color-text-muted); }
.kx-kiosk__done-tag { font-size: var(--fs-caption); color: var(--color-success); font-weight: var(--fw-semibold); }

/* 완료 · 배지 미리보기 */
.kx-kiosk--done { justify-items: center; }
.kx-kiosk__badge { display: flex; justify-content: center; }
.kx-kbadge {
  width: 300px;
  padding: var(--space-4);
  border: 1px solid var(--color-neutral-200);
  border-radius: var(--radius-lg);
  background: var(--color-white);
  box-shadow: var(--shadow-card);
  display: grid;
  gap: var(--space-2);
  justify-items: center;
  text-align: center;
}
.kx-kbadge__top { display: flex; justify-content: space-between; align-items: center; width: 100%; }
.kx-kbadge__event { font-size: var(--fs-nano); color: var(--color-text-muted); }
.kx-kbadge__type {
  font-size: var(--fs-nano); font-weight: var(--fw-bold);
  padding: var(--space-1) var(--space-2); border-radius: var(--radius-pill);
  background: var(--color-primary-050); color: var(--color-primary-700);
}
.kx-kbadge__type.is-vip { background: var(--color-warning-bg); color: var(--color-warning); }
.kx-kbadge__type.is-buyer { background: var(--color-success-bg); color: var(--color-success); }
.kx-kbadge__name { font-size: var(--fs-h1); font-weight: var(--fw-bold); color: var(--color-neutral-900); }
.kx-kbadge__company { font-size: var(--fs-body); color: var(--color-neutral-600); min-height: 1.2em; }
.kx-kbadge__qr { margin: var(--space-2) 0; }
.kx-kbadge__code { font-family: var(--font-mono); font-size: var(--fs-caption); color: var(--color-neutral-700); letter-spacing: 0.08em; }

.kx-kiosk__done-actions { display: grid; gap: var(--space-3); justify-items: center; width: 100%; max-width: 300px; }
.kx-kiosk__done-actions .kx-kiosk__btn { width: 100%; }
.kx-kiosk__done-msg { font-size: var(--fs-h3); font-weight: var(--fw-semibold); color: var(--color-neutral-900); margin: 0; text-align: center; }
.kx-kiosk__pii { font-size: var(--fs-nano); color: var(--color-text-muted); margin: 0; }

/* 인쇄 — 배지만 인쇄(규격 라벨) */
@media print {
  body * { visibility: hidden; }
  #kioskBadge, #kioskBadge * { visibility: visible; }
  #kioskBadge { position: absolute; left: 0; top: 0; width: 100%; }
  .kx-kbadge { box-shadow: none; border: 1px solid var(--color-neutral-300); }
}
