/*
 * This is a manifest file that'll be compiled into application.css.
 *
 * With Propshaft, assets are served efficiently without preprocessing steps. You can still include
 * application-wide styles in this file, but keep in mind that CSS precedence will follow the standard
 * cascading order, meaning styles declared later in the document or manifest will override earlier ones,
 * depending on specificity.
 *
 * Consider organizing styles into separate files for maintainability.
 */

/* Mobile scroll support */
main.overflow-auto,
.overflow-auto,
.overflow-x-auto {
  -webkit-overflow-scrolling: touch;
}

/* Pagy pagination spacing */
nav.pagy {
  display: flex;
  gap: 4px;
}
/* 필수 필드 시각화 */
input:required:invalid:not(:focus),
select:required:invalid:not(:focus),
textarea:required:invalid:not(:focus) {
  border-color: #ef4444;
}
.required-mark {
  color: #ef4444;
  font-weight: bold;
}

nav.pagy a,
nav.pagy span {
  min-width: 36px;
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Mobile: overflow-hidden 해제로 스크롤 보장 */
@media (max-width: 1023px) {
  body, html { overflow: auto !important; height: auto !important; }
  .h-screen { height: auto !important; min-height: 100vh; }
  .overflow-hidden { overflow: auto !important; }
}

/* 테이블 셀 말줄임표 — 컬럼 폭 줄임 시 텍스트 겹침 방지 */
table[data-controller="column-resize"] td,
table[data-controller="column-resize"] th {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 0;
}
table[data-controller="column-resize"] td:first-child,
table[data-controller="column-resize"] th:first-child {
  max-width: none;
  overflow: visible;
}

/* Details chevron rotation */
details[open] > summary .transition-transform {
  transform: rotate(90deg);
}
