/**
 * WECAR HR — 버튼·액션 영역 (내용 길이 기준 적정 너비, 과도한 가로 확장 방지)
 */

/* ── 기본: 라벨 길이에 맞춤 ── */
.btn,
button.btn,
a.btn,
input.btn[type="submit"],
input.btn[type="button"] {
  width: auto;
  max-width: 100%;
  flex: 0 0 auto;
  white-space: nowrap;
  padding: 0.4rem 0.85rem;
  min-height: 2.125rem;
}

.btn-sm,
button.btn-sm,
a.btn-sm,
input.btn-sm {
  padding: 0.26rem 0.6rem;
  font-size: 0.8125rem;
  min-height: 1.875rem;
}

.btn-lg,
button.btn-lg,
a.btn-lg {
  padding: 0.5rem 1rem;
  font-size: 0.9375rem;
  min-height: 2.5rem;
}

/* 긴 문구만 줄바꿈 */
.btn.btn-wrap,
.btn.text-wrap-allow {
  white-space: normal;
  text-align: center;
  max-width: 14rem;
}

/* flex·grid 부모가 버튼을 늘리지 않도록 */
.d-flex > .btn:not(.btn-stretch),
.d-flex > a.btn:not(.btn-stretch),
.d-flex > button.btn:not(.btn-stretch),
.d-flex > input.btn:not(.btn-stretch),
[class*="col-"].d-flex > .btn,
[class*="col-"].d-flex > a.btn,
[class*="col-"].d-flex > button,
[class*="col-"].d-flex > input.btn,
[class*="col-"].d-flex.align-items-end > .btn,
[class*="col-"].d-flex.align-items-end > a.btn,
[class*="col-"].d-flex.align-items-end > button,
[class*="col-"].d-flex.align-items-end > input.btn {
  width: auto !important;
  max-width: 100%;
  flex: 0 0 auto;
  align-self: flex-end;
}

/* 액션 묶음 */
.action-toolbar,
.page-header-actions,
.section-actions,
.approval-sheet-actions,
.form-actions,
.modal-footer,
.card-footer.form-actions,
.filter-actions,
.quick-action-buttons {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}

.form-actions,
.page-form-actions-inline {
  justify-content: flex-end;
}

.page-header-actions {
  width: auto;
  max-width: 100%;
  justify-content: flex-end;
}

.form-actions .btn,
.action-toolbar .btn,
.page-header-actions .btn,
.filter-actions .btn {
  min-width: 0;
}

/* Bootstrap w-100: 의도적 전체 너비가 아니면 내용 맞춤 */
.btn.w-100:not(.btn-stretch):not(.login-button):not(.pwa-install-btn) {
  width: auto !important;
  max-width: 100%;
}

.btn-sm.w-100:not(.btn-stretch) {
  max-width: min(100%, 10rem);
}

.btn-lg.w-100:not(.btn-stretch) {
  max-width: min(100%, 13rem);
}

/* 검색·필터 행: 버튼 열은 col-auto 권장 */
.row.g-2 > [class*="col-"].d-flex.align-items-end,
.row.g-3 > [class*="col-"].d-flex.align-items-end {
  flex: 0 0 auto;
  width: auto;
  max-width: 100%;
}

/* 의도적 전체 너비 */
.d-grid > .btn,
.d-grid > .btn.w-100,
.d-grid > input.btn,
.d-grid > button.btn,
.d-grid > a.btn,
.login-button,
.btn-stretch,
.btn-block,
.sidebar-footer .btn.w-100 {
  width: 100% !important;
  max-width: 100% !important;
}

.btn-group > .btn {
  width: auto;
  flex: 0 0 auto;
}

.btn-group {
  flex-wrap: wrap;
}

/* 테이블·목록 */
.table .btn,
.table-wrap .btn,
td .btn,
.list-group-item .btn {
  white-space: nowrap;
}

.table td .btn + .btn,
.table td form.d-inline + form.d-inline {
  margin-left: 0.25rem;
}

.modal-footer {
  justify-content: flex-end;
}

.modal-footer .btn {
  min-width: 4.25rem;
}

.card-header .btn {
  flex-shrink: 0;
}

/* 카드형 빠른 액션 (프로필 등) */
.quick-action-buttons .btn {
  flex: 0 1 auto;
}

/* 콘텐츠 최대 너비 */
@media (min-width: 1400px) {
  .content-wrapper {
    max-width: 1520px;
    margin-left: auto;
    margin-right: auto;
  }
}

@media (max-width: 991.98px) {
  .page-header-title {
    align-items: flex-start;
  }

  .page-header-actions {
    width: auto;
    justify-content: flex-start;
  }
}

@media (max-width: 576px) {
  .page-header-actions .btn {
    width: auto !important;
    max-width: 100%;
  }

  .action-toolbar .btn,
  .form-actions .btn {
    flex: 0 1 auto;
  }
}
