/* ============================================
   공통 컴포넌트 스타일
   ============================================ */

/* ===== 버튼 ===== */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: var(--space-sm) var(--space-md);
  border-radius: var(--radius-md);
  font-size: var(--font-base);
  font-weight: 600;
  transition: opacity 0.2s, transform 0.1s;
}

.btn:active {
  transform: scale(0.97);
  opacity: 0.85;
}

.btn-primary {
  background-color: var(--color-primary);
  color: #fff;
  width: 100%;
}

.btn-secondary {
  background-color: var(--color-primary-light);
  color: var(--color-primary);
  width: 100%;
}

/* ===== 카드 ===== */
.card {
  background-color: var(--color-surface);
  border-radius: var(--radius-md);
  padding: var(--space-md);
  box-shadow: var(--shadow-sm);
  margin-bottom: var(--space-md);
}

.card-title {
  font-size: var(--font-lg);
  font-weight: 700;
  color: var(--color-text-primary);
  margin-bottom: var(--space-sm);
}

.card-desc {
  font-size: var(--font-sm);
  color: var(--color-text-secondary);
  line-height: 1.5;
}

/* ===== 입력창 ===== */
.input-field {
  width: 100%;
  min-height: 48px;
  padding: 0 var(--space-md);
  background-color: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  font-size: var(--font-base);
  color: var(--color-text-primary);
}

.input-field:focus {
  border-color: var(--color-primary);
}

/* 검색바 + 스캔 버튼 */
.search-bar {
  display: flex;
  gap: var(--space-sm);
  margin-bottom: var(--space-md);
}

.search-bar .input-field {
  flex: 1;
}

.scan-btn {
  width: 48px;
  height: 48px;
  background-color: var(--color-primary);
  color: #fff;
  border-radius: var(--radius-md);
  font-size: var(--font-xl);
}

/* ===== 안전 배너 ===== */
.safety-banner {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  padding: var(--space-sm) var(--space-md);
  background-color: #FFF4E5;
  border-left: 4px solid var(--color-warning);
  border-radius: var(--radius-sm);
  font-size: var(--font-sm);
  color: var(--color-text-primary);
  margin-bottom: var(--space-md);
}

.safety-banner.danger {
  background-color: #FDECEA;
  border-left-color: var(--color-danger);
}

/* ===== 카테고리 칩 ===== */
.chip-list {
  display: flex;
  gap: var(--space-sm);
  overflow-x: auto;
  padding-bottom: var(--space-sm);
  margin-bottom: var(--space-md);
  scrollbar-width: none;
}

.chip-list::-webkit-scrollbar {
  display: none;
}

.chip {
  flex-shrink: 0;
  padding: var(--space-xs) var(--space-md);
  background-color: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-full);
  font-size: var(--font-sm);
  color: var(--color-text-secondary);
}

.chip.active {
  background-color: var(--color-primary);
  color: #fff;
  border-color: var(--color-primary);
}

/* ===== 섹션 타이틀 ===== */
.section-title {
  font-size: var(--font-base);
  font-weight: 700;
  color: var(--color-text-primary);
  margin: var(--space-md) 0 var(--space-sm);
}

/* ===== 위치 바 (현재 위치 표시) ★ NEW =====
   ★ 검색·약국 페이지에서 "지금 어디 있는지" 보여주는 공통 컴포넌트
   2단계에서 Google Geocoding API로 좌표 → 도시명 변환 후 표시
*/
.location-bar {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  padding: var(--space-sm) var(--space-md);
  background-color: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  margin-bottom: var(--space-md);
}

.location-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--color-primary);
  flex-shrink: 0;
}

.location-text {
  flex: 1;
  font-size: var(--font-sm);
  color: var(--color-text-primary);
}

.location-text strong {
  font-weight: 700;
  color: var(--color-primary);
}

.location-refresh {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  color: var(--color-primary);
  background-color: var(--color-primary-light);
  transition: transform 0.3s;
}

.location-refresh:active {
  transform: rotate(180deg);
}
