/* 공통 스타일 */
* { -webkit-tap-highlight-color: transparent; }

html, body {
  font-family: 'Inter', 'Noto Sans KR', system-ui, -apple-system, sans-serif;
  -webkit-font-smoothing: antialiased;
}

/* 스크롤바 (데스크탑) */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #94a3b8; }

/* 숫자 표시는 tabular */
.tabular { font-variant-numeric: tabular-nums; }

/* 카드 호버 */
.card-hover { transition: all 0.2s; }
.card-hover:hover { transform: translateY(-2px); box-shadow: 0 12px 24px -10px rgba(0,0,0,0.15); }

/* 토스트 애니메이션 */
@keyframes slide-in {
  from { transform: translateX(120%); opacity: 0; }
  to { transform: translateX(0); opacity: 1; }
}
.toast { animation: slide-in 0.3s ease-out; }

/* 모달 백드롭 */
.modal-backdrop {
  background: rgba(15, 23, 42, 0.6);
  backdrop-filter: blur(4px);
}

/* 하단 네비 안전영역 */
.safe-bottom { padding-bottom: env(safe-area-inset-bottom); }
.safe-top { padding-top: env(safe-area-inset-top); }

/* 스피너 */
.spinner {
  border: 3px solid #e2e8f0;
  border-top-color: #3b82f6;
  border-radius: 50%;
  width: 24px; height: 24px;
  animation: spin 0.8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* 진행바 */
.progress-bar {
  height: 6px;
  background: #e2e8f0;
  border-radius: 3px;
  overflow: hidden;
}
.progress-fill {
  height: 100%;
  border-radius: 3px;
  transition: width 0.4s;
}

/* 칩 */
.chip {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 9999px;
  font-size: 11px;
  font-weight: 500;
}

/* 모바일 풀스크린 모달 */
@media (max-width: 640px) {
  .modal-mobile-fullscreen {
    border-radius: 0 !important;
    height: 100vh !important;
    max-height: 100vh !important;
    margin: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* 입력창 포커스 스타일 */
.input-focus:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15);
  border-color: #3b82f6;
}

/* 표 줄무늬 */
.zebra tbody tr:nth-child(even) { background-color: #f8fafc; }
