/* datepicker_ko — 한글 캘린더 바텀시트 */
.dp-ko-sheet {
  position: fixed; inset: 0; z-index: 9999;
  display: none;
}
.dp-ko-sheet.open { display: block; }
.dp-ko-overlay {
  position: absolute; inset: 0;
  background: rgba(0, 0, 0, 0.45);
  animation: dpkoFade 0.18s ease-out;
}
.dp-ko-panel {
  position: absolute; left: 0; right: 0; bottom: 0;
  background: #fff;
  border-radius: 16px 16px 0 0;
  padding: 12px 16px 24px;
  box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.1);
  animation: dpkoSlide 0.22s ease-out;
  max-width: 720px; margin: 0 auto;
}
.dp-ko-handle {
  width: 36px; height: 4px; background: #d6d8dc;
  border-radius: 2px; margin: 4px auto 12px;
}
.dp-ko-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 4px 8px 12px;
}
.dp-ko-title {
  font-size: 16px; font-weight: 700; color: #222;
  flex: 1; text-align: center;
}
.dp-ko-nav {
  width: 36px; height: 36px;
  border: 1px solid #e5e7eb;
  background: #fff; color: #555;
  border-radius: 8px;
  font-size: 20px; line-height: 1;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
}
.dp-ko-nav:active { background: #f3f4f6; }
.dp-ko-week, .dp-ko-grid {
  display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px;
}
.dp-ko-week { padding: 8px 0; border-bottom: 1px solid #f0f1f3; margin-bottom: 6px; }
.dp-ko-week span {
  text-align: center; font-size: 12px; font-weight: 600; color: #6b7280;
  padding: 4px 0;
}
.dp-ko-week .dp-ko-sun { color: #ef4444; }
.dp-ko-week .dp-ko-sat { color: #2563eb; }
.dp-ko-grid { padding: 4px 0 16px; }
.dp-ko-day {
  aspect-ratio: 1 / 1;
  border: none; background: transparent;
  font-size: 14px; color: #1f2937;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
}
.dp-ko-day.sun { color: #ef4444; }
.dp-ko-day.sat { color: #2563eb; }
.dp-ko-day.off { visibility: hidden; pointer-events: none; }
.dp-ko-day.today { border: 1px solid #5b5fc7; font-weight: 700; }
.dp-ko-day.sel { background: #5b5fc7; color: #fff; font-weight: 700; }
.dp-ko-day.sel.sun, .dp-ko-day.sel.sat { color: #fff; }
.dp-ko-day:not(.off):active { background: #eef0fc; }
.dp-ko-day.sel:active { background: #4a4ec7; }

.dp-ko-footer {
  display: grid; grid-template-columns: 1fr 1fr 1.4fr; gap: 8px;
  padding-top: 8px;
}
.dp-ko-btn {
  height: 44px; border-radius: 10px; border: 1px solid #e5e7eb;
  background: #fff; color: #374151; font-weight: 600; font-size: 14px;
  cursor: pointer;
}
.dp-ko-btn:active { background: #f3f4f6; }
.dp-ko-confirm {
  background: #5b5fc7; color: #fff; border-color: #5b5fc7;
}
.dp-ko-confirm:active { background: #4a4ec7; }

/* 입력 표시: '2026-04-28' 보다 한글 표기를 우선 보이도록 helper class */
.datepicker-ko {
  cursor: pointer;
  caret-color: transparent;
}

@keyframes dpkoFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes dpkoSlide { from { transform: translateY(100%); } to { transform: translateY(0); } }
