/* 공통 표·검색·페이지네이션과 폼을 재사용하며 채용 화면의 차이만 지정합니다. */
.career-visual .sub-visual__shade { background: rgba(7, 22, 49, .8); }
.career-visual .sub-visual__image { height: 100%; }
.career-page [hidden] { display: none !important; }
.career-page .notice-table__header, .career-page .notice-table__row { grid-template-columns: 7.1875rem 7.5rem 4.625rem minmax(0, 1fr) 6.25rem 8.125rem; }
.career-page .notice-table__title { padding-inline: var(--number-20); font-weight: 400; }
.career-table__employment, .career-table__experience { padding: var(--number-20); text-align: center; font-size: 1.25rem; line-height: 1.5; white-space: nowrap; }
.career-badge { color: var(--common-white); background: var(--color-primary-normal); }
.career-badge--closed { color: var(--color-text-normal); background: var(--color-background-alt); }
.career-table__meta { display: contents; }

/* 채용공고 상세 */
.career-detail-section { padding-block: var(--tf-content-space); }
.career-detail { display: flex; flex-direction: column; gap: var(--number-40); }
.career-detail__header { display: flex; align-items: flex-end; gap: var(--number-20); padding-bottom: var(--number-20); }
.career-detail__summary { display: flex; flex: 1; min-width: 0; flex-direction: column; gap: var(--number-8); }
.career-detail__chips { display: flex; flex-wrap: wrap; gap: var(--number-8); margin-bottom: var(--number-12); }
.career-chip { display: inline-flex; align-items: center; border-radius: var(--number-6); padding: var(--number-4) var(--number-8); color: var(--common-white); background: var(--color-primary-normal); font-size: .875rem; font-weight: 600; line-height: 1.5; }
.career-detail__header h1 { margin: 0; font-size: 2rem; font-weight: 700; line-height: 1.3; letter-spacing: -.01em; overflow-wrap: anywhere; }
.career-detail__meta { display: flex; flex-wrap: wrap; gap: var(--number-8); color: var(--color-text-muted); font-size: .875rem; line-height: 1.5; }
.career-detail__section { display: flex; flex-direction: column; gap: var(--number-20); }
.career-detail__section h2, .career-detail__text h2 { margin: 0; border-left: 4px solid var(--color-primary-normal); padding-inline: var(--number-12); font-size: 1.25rem; font-weight: 600; line-height: 1.5; }
.career-detail__text { font-size: 1.125rem; line-height: 1.5; letter-spacing: -.015em; overflow-wrap: anywhere; }
.career-detail__text p, .career-detail__text ul, .career-detail__text ol { margin: 0; }
.career-detail__text ul { padding-left: 1.5em; list-style: disc; }
.career-detail__text ul:has(> li + li) { line-height: 1.8; }
.career-detail__text ol { padding-left: 1.5em; }
.career-detail__text ol[type="a"] { list-style: lower-alpha; }
.career-detail__text ol[type="i"] { list-style: lower-roman; }
/* 관리자 에디터 본문은 한 영역에 출력하며 기존 본문 클래스와 반응형 글자 크기를 유지합니다. */
.career-detail__text[data-career-content] { min-width: 0; max-width: 100%; overflow-x: auto; }
.career-detail__text[data-career-content]:empty { display: none; }
.career-detail__text[data-career-content] > * + * { margin-top: var(--number-20); }
.career-detail__text[data-career-content] > h2:not(:first-child) { margin-top: var(--number-40); }
.career-detail__text[data-career-content] img, .career-detail__text[data-career-content] video, .career-detail__text[data-career-content] iframe { max-width: 100%; }
.career-detail__text[data-career-content] img, .career-detail__text[data-career-content] video { height: auto; }
.career-detail__text[data-career-content] table { width: 100%; border-collapse: collapse; }
.career-detail__section--notes .career-detail__text { font-size: 1rem; }
.career-detail__files .notice-file-list { grid-template-columns: minmax(0, 1fr); gap: var(--number-8); }
.career-detail__files .notice-file { min-height: 1.6875rem; border: 0; padding: 0; font-size: 1.125rem; font-weight: 600; }
.career-detail__files .notice-file:hover { color: var(--color-primary-normal); }
.career-detail__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--number-20); }
.career-page .tf-button:disabled { color: var(--color-text-muted); background: var(--color-background-alt); border-color: var(--color-border-normal); cursor: default; }

/* 지원서: 기존 tf-field·tf-input·버튼과 같은 토큰을 사용합니다. */
.career-application { padding-block: var(--tf-content-space); }
.career-application__inner, .career-application__form { display: flex; min-width: 0; flex-direction: column; align-items: stretch; gap: var(--number-80); }
.career-application__heading > p { margin: 0; color: var(--color-text-muted); font-size: 2rem; line-height: 1.3; }
.career-application__form { width: 100%; }
.career-application__panel { display: flex; min-width: 0; flex-direction: column; gap: var(--number-40); }
.career-application__fields { display: flex; flex-direction: column; gap: var(--number-20); }
.career-application__actions { display: flex; flex-direction: column; align-items: center; gap: var(--number-12); }
.career-form__experience { margin: 0; padding: 0; border: 0; }
.career-form__experience > legend { float: none; width: auto; margin-bottom: var(--number-8); }
.career-form__radios { display: flex; gap: var(--number-12); }
.career-form__choice { display: flex; min-width: 0; align-items: flex-start; gap: var(--number-8); font-size: 1rem; line-height: 1.5; cursor: pointer; }
.career-form__choice .form-check-input { float: none; width: 1.125rem; height: 1.125rem; flex: 0 0 1.125rem; margin: .1875rem; border-color: var(--color-border-normal); cursor: pointer; }
.career-form__choice .form-check-input:checked { border-color: var(--color-primary-normal); background-color: var(--color-primary-normal); }
.career-form__choice [aria-invalid="true"] { border-color: var(--color-status-danger); }
.career-form__optional { color: var(--color-text-muted); font-weight: 400; }
.career-upload__control { display: flex; align-items: center; gap: var(--number-8); }
.career-upload__pick { position: relative; display: flex; flex: 1; align-items: center; gap: var(--number-8); margin: 0; color: var(--color-text-subtle); cursor: pointer; }
.career-upload__pick > [data-file-label] { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.career-upload__pick > .tf-icon { color: var(--color-text-muted); }
.career-upload__pick:focus-within { border-color: var(--palette-primary-60); box-shadow: 0 0 0 3px rgba(37,110,244,.12); }
.career-upload.has-file .career-upload__pick { color: var(--color-text-normal); }
.career-upload__input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.career-upload__remove { flex-shrink: 0; }
.career-upload__remove:hover { color: var(--color-primary-normal); }
.career-consents { display: flex; flex-direction: column; gap: var(--number-20); padding: var(--number-40); border-radius: var(--number-12); background: var(--color-background-alt); }
.career-consents__all { flex-wrap: wrap; border-bottom: 1px solid var(--color-text-disable); padding-bottom: var(--number-20); }
.career-consents__all strong { font-size: 1rem; font-weight: 600; }
.career-consents__all > span { color: var(--color-text-muted); }
.career-consents__items { display: flex; flex-direction: column; gap: var(--number-8); }
.career-consents__row { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--number-12); }
.career-consents__row .career-form__choice { color: var(--color-text-muted); font-weight: 500; word-break: keep-all; }
.career-consents__row em { color: var(--color-primary-normal); font-style: normal; white-space: nowrap; }
.career-consents__row > button { flex-shrink: 0; border: 0; padding: 0; color: var(--color-text-subtle); background: transparent; font-size: 1rem; line-height: 1.5; cursor: pointer; }
.career-consents__row > button:hover { color: var(--color-primary-normal); }

/* 동의 보기: 내용 길이에 따라 내부 스크롤하는 네이티브 모달 */
html.has-career-dialog { overflow: hidden; }
.career-consent-dialog { width: min(49.375rem, calc(100% - 2rem)); max-width: none; max-height: calc(100dvh - 2rem); margin: auto; border: 0; border-radius: var(--number-20); padding: var(--number-80); color: var(--color-text-normal); background: var(--color-background-normal); }
.career-consent-dialog::backdrop { background: var(--color-background-dim); }
.career-consent-dialog__content { display: flex; min-width: 0; flex-direction: column; gap: var(--number-20); font-size: 1rem; line-height: 1.5; letter-spacing: -.015em; overflow-wrap: anywhere; }
.career-consent-dialog__header { display: flex; align-items: center; justify-content: space-between; gap: var(--number-20); }
.career-consent-dialog__header h2 { margin: 0; font-size: 1.25rem; font-weight: 600; line-height: 1.5; }
.career-consent-dialog__close { flex: 0 0 2.5rem; padding: 0; }
.career-consent-dialog__close .tf-icon { width: 2.5rem; height: 2.5rem; --tf-icon-image: url('../images/common/icons/x-mark-40.svg'); }
.career-consent-dialog__content p, .career-consent-dialog__content ol, .career-consent-dialog__content ul { margin: 0; }
.career-consent-dialog__content > div { display: flex; flex-direction: column; gap: var(--number-4); }
.career-consent-dialog__content ol { padding-left: 1.5em; list-style: decimal; font-size: 1.125rem; font-weight: 500; }
.career-consent-dialog__content ul { padding-left: 1.5em; list-style: disc; }
.career-consent-dialog__content a { text-decoration: underline; }

@media (min-width: 1200px) and (max-width: 1919.98px) {
  .career-page .notice-table__header, .career-page .notice-table__row { grid-template-columns: 6.25rem 7.5rem 4.625rem minmax(0, 1fr) 6.25rem 8.125rem; }
}
@media (min-width: 768px) and (max-width: 1199.98px) {
  .career-application__form { width: 100%; }
  .career-application__heading > p { font-size: 1.5rem; }
  .career-page .notice-table__header, .career-page .notice-table__row { grid-template-columns: 4.5rem 5.5rem 3.25rem minmax(0, 1fr) 4rem 6.25rem; }
  .career-table__employment, .career-table__experience { padding-inline: 0; font-size: 1rem; }
  .career-page .notice-table__title { padding-inline: var(--number-12); font-size: 1rem; }
  .career-page .notice-table__header { font-size: 1rem; }
  .career-detail__header h1 { font-size: 1.5rem; }
}
@media (max-width: 767.98px) {
  .career-visual .sub-visual__image { left: -133.39%; width: 266.67%; max-width: none; height: calc(100% + 3.5rem); object-fit: fill; }
  .career-application__form { width: 100%; }
  .career-application__inner, .career-application__form { gap: var(--number-40); }
  .career-application__panel { gap: var(--number-24); }
  .career-application__heading > p { font-size: 1.25rem; }
  .career-consents { padding: var(--number-20); }
  .career-consents__all > span { flex-basis: 100%; padding-left: 1.75rem; }
  .career-consents__all > span, .career-consents__row .career-form__choice, .career-consents__row > button { font-size: .875rem; }
  .career-consent-dialog { padding: var(--number-20); }
  .career-consent-dialog__header h2 { font-size: 1.125rem; }
  .career-consent-dialog__content { font-size: .875rem; }
  .career-consent-dialog__content ol { font-size: 1rem; }
  .career-page .notice-table__row { grid-template-columns: max-content max-content minmax(0, 1fr); grid-template-areas: "category employment experience" "title title title" "meta meta meta"; }
  .career-table__employment { grid-area: employment; }
  .career-table__experience { grid-area: experience; text-align: left; }
  .career-table__employment, .career-table__experience { padding: 0; color: var(--color-text-muted); font-size: .75rem; }
  .career-table__experience { display: flex; align-items: center; gap: .5rem; }
  .career-table__experience::before { content: '|'; }
  .career-page .notice-table__title { padding: 0; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .career-table__meta { display: flex; grid-area: meta; align-items: center; gap: .5rem; }
  .career-detail { gap: var(--number-24); }
  .career-detail__header { align-items: flex-start; flex-direction: column; }
  .career-detail__header h1 { font-size: 1.25rem; }
  .career-detail__section { gap: var(--number-12); }
  .career-detail__section h2, .career-detail__text h2 { font-size: 1.125rem; }
  .career-detail__text[data-career-content] > * + * { margin-top: var(--number-12); }
  .career-detail__text[data-career-content] > h2:not(:first-child) { margin-top: var(--number-20); }
  .career-detail__text, .career-detail__section--notes .career-detail__text { font-size: .875rem; }
  .career-detail__files .notice-file { font-size: .875rem; }
}
