.page-container .title-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    align-self: stretch;
    gap: var(--number-5);
    padding-bottom: var(--spacing-bottom-xlg);
}
.page-container .title-group {
    display: flex;
    flex-direction: column;
}
.page-container .section-tit {
    font-family: var(--font-family-title);
    font-size: var(--font-size-display-lg);
    color: var(--color-font-neutral-strong);
    font-style: normal;
    font-weight: var(--font-weight-bold);
    line-height: 130%;
    letter-spacing: -0.0625rem;
    word-break: keep-all;
}
.page-container .description {
    font-family: var(--font-family-body);
    font-size: var(--font-size-body-lg);
    color: var(--color-font-neutral-default);
    font-style: normal;
    font-weight: var(--font-weight-regular);
    line-height: 140%;
    letter-spacing: -0.0297rem;
}

.page-container .registration-table-wrap {
    width: 100%;
    padding-bottom: var(--spacing-bottom-md);
}

.registration-table-wrap .table {
    width: 100%;
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 0;
    border-top: 1px solid var(--color-border-neutral-default);
}

.registration-table-wrap .table .th {
    flex-shrink: 0;
    width: 10rem;
    min-width: 7.5rem;
    min-height: 3rem;
    font-family: var(--font-family-body);
    font-size: var(--font-size-label-md);
    color: var(--color-font-neutral-default);
    font-style: normal;
    font-weight: var(--font-weight-medium);
    text-align: left;
    /* 관리자가 입력한 문항 제목이 길어 두 줄 이상이 되면 줄 간격이 붙지 않게 */
    line-height: 130%;
    letter-spacing: -0.0234rem;
    word-break: keep-all;
    overflow-wrap: anywhere;
    padding: var(--padding-6);
    border-bottom: var(--border-1) solid var(--color-border-neutral-subtler);
    background: var(--color-surface-neutral-gray);
    vertical-align: middle;
}
.registration-table-wrap .table .th.require::after {
    content: '*';
    color: var(--color-font-theme-primary);
    font-family: var(--font-family-body);
    font-size: var(--font-size-label-md);
    font-style: normal;
    font-weight: var(--font-weight-bold);
    line-height: 100%;
    letter-spacing: -0.0234rem;
}
.registration-table-wrap .table .th sub {
    display: inline-block;
    font-size: var(--font-size-label-sm);
    color: var(--color-font-neutral-subtle);
    font-weight: var(--font-weight-regular);
    font-style: normal;
    line-height: 100%;
    letter-spacing: -0.0203rem;
}

.registration-table-wrap .table .td {
    min-width: 4rem;
    min-height: 3rem;
    font-family: var(--font-family-body);
    font-size: var(--font-size-body-md);
    color: var(--color-font-neutral-default);
    font-weight: var(--font-weight-regular);
    font-style: normal;
    line-height: 150%;
    letter-spacing: -0.0234rem;
    padding: var(--padding-3) var(--padding-6);
    border-bottom: var(--border-1) solid var(--color-border-neutral-subtler);
    vertical-align: middle; /* reset.css의 baseline 덮어쓰기 */
}

.registration-table-wrap .table .td .form-box:has(.input),
.registration-table-wrap .table .td .form-box:has(.textarea) {
    max-width: 85rem;
    width: 100%;
}

.check-group,
.radio-group {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--gap-3) var(--gap-9);
}
/* 관리자가 입력한 보기 문구 길이와 상관없이 보기 하나가 글자 단위로 쪼개지지 않게 - 넘치면 다음 줄로, 한 줄보다 길면 단어 단위로 줄바꿈 */
.check-group > .radio,
.check-group > .checkbox,
.radio-group > .radio,
.radio-group > .checkbox {
    flex: 0 1 auto;
    width: auto;
    max-width: 100%;
}
.radio-group .radio-label,
.radio-group .checkbox-content,
.radio-group .checkbox-label {
    width: auto;
    min-width: 0;
    word-break: keep-all;
    overflow-wrap: anywhere;
}

@media (max-width: 767px) {
    .column-mo {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--gap-3);
    }
}

.page-container .form-row {
    display: flex;
    align-items: center;
    gap: var(--gap-2);
}
.password-initialization-btn {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: var(--gap-1);
    padding: var(--padding-2);
    margin-left: var(--gap-2);
}

.page-container .file-list,
.page-container .file-list-item,
.page-container .image-upload-row,
.page-container .keyword-slots,
.page-container .file-upload-area,
.page-container .w-max {
    max-width: 85rem;
    width: 100%;
}

.success-msg {
    display: block;
    color: var(--color-font-system-success);
}
.danger-msg {
    display: block;
    color: var(--color-font-system-danger);
}

.registration-table-wrap .table .td .form-box + .file-list {
    margin-top: var(--gap-3);
}

.registration-table-wrap .file_select-btn {
    white-space: nowrap;
}

.page-container .agree-box {
    width: 100%;
    padding-bottom: var(--gap-7);
}

/* 내용보기 : 밑줄 */
.page-container .agree-box .btn-txt > span {
    text-decoration-line: underline;
}

/* 선택 동의 전 첨부 비활성 */
.file-upload:has(.file-input:disabled) .file-input-name {
    color: var(--color-font-neutral-disabled-strong);
    border-color: var(--color-input-border-disabled);
    background: var(--color-input-surface-disabled);
}

.page-container .checkbox,
.page-container .checkbox-content {
    width: 100%;
}
.page-container .checkbox-label {
    display: flex;
    align-items: center;
    gap: var(--gap-3);
}
.page-container .checkbox-description {
    display: flex;
    align-items: center;
    gap: var(--number-3);
    margin-left: calc((var(--form-icon-md) + var(--gap-3)) * -1);
}
.page-container .checkbox-description .ico {
    font-size: var(--icon-3);
}

/* 태블릿 : 한 줄에 항목 하나 (th + td 한 쌍씩) */
@media (max-width: 1023px) {
    .registration-table-wrap .table,
    .registration-table-wrap .table tbody {
        display: block;
    }
    .registration-table-wrap .table tr {
        display: flex;
        flex-wrap: wrap;
    }
    .registration-table-wrap .table .th {
        display: flex;
        align-items: center;
        flex: 0 0 10rem;
    }
    .registration-table-wrap .table .td {
        flex: 1 1 calc(100% - 10rem);
        min-width: 0;
    }
    .registration-table-wrap .table .td {
        display: flex;
        align-items: center;
    }
    .registration-table-wrap .table .td:has(.member-list) {
        display: block;
    }
    /* 열 맞춤용 빈 셀 숨김 */
    .registration-table-wrap .table .td:empty {
        display: none;
    }
}

/* 모바일 : 라벨을 입력창 위로 */
@media (max-width: 767px) {
    .page-container .title-row {
        padding-bottom: var(--form-padding-xlg);
    }

    .registration-table-wrap .table .th {
        flex-basis: 100%;
        width: 100%;
        min-height: auto;
        padding: var(--padding-5) var(--padding-6) 0;
        border-bottom: 0;
        background: var(--color-surface-neutral-default);
    }
    .registration-table-wrap .table .td {
        flex-basis: 100%;
        padding: var(--padding-5) var(--padding-6);
    }

    .radio-group:not(.column-mo) {
        gap: var(--gap-4);
        width: 100%;
    }
    .radio-group:not(.column-mo) > .radio {
        flex: 1 1 0;
        min-width: 0;
    }
}
