/* 외부 지원서 — 모바일 우선, self-contained */
/* Pretendard Variable: 관리자 common 과 동일 파일(assets/fonts/pretendard), 경로는 이 CSS 기준 */
@font-face {
    font-family: "Pretendard Variable";
    font-weight: 45 920;
    font-style: normal;
    font-display: swap;
    src: url("../../assets/fonts/pretendard/PretendardVariable.woff2") format("woff2");
}

:root {
    color-scheme: light;
    /* 본문(.ea-main)·헤더 inner와 동일: 최대 720 안에서 좌우 패딩 16씩 뺀 가독 폭 */
    --ea-read-max: 720px;
    --ea-read-gutter-x: 16px;
    --ea-read-inner: calc(var(--ea-read-max) - 2 * var(--ea-read-gutter-x));
    --ea-bg: #f0f4f9;
    --ea-surface: #ffffff;
    --ea-text: #0f172a;
    --ea-muted: #64748b;
    --ea-line: #e2e8f0;
    --ea-accent: #0067c0;
    --ea-accent-hover: #0078d4;
    --ea-accent-soft: rgba(0, 103, 192, 0.08);
    --ea-danger: #b42318;
    --ea-radius: 12px;
    --ea-radius-sm: 8px;
    --ea-shadow: 0 1px 3px rgba(15, 23, 42, 0.06), 0 4px 12px rgba(15, 23, 42, 0.04);
    --ea-font:
        "Pretendard Variable",
        Pretendard,
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        "Malgun Gothic",
        sans-serif;
    --ea-touch: 44px;
    /* 지원자 포털(마이페이지) 카드: 영역 제목·본문 글자 크기 통일 */
    --ea-my-title-size: 1.0625rem;
    --ea-my-title-weight: 700;
    --ea-my-title-lh: 1.35;
    --ea-my-body-size: 0.875rem;
    --ea-my-body-lh: 1.55;
    --ea-my-caption-size: 0.8125rem;
    /* 헤더: 언어 셀렉트 · 로그인 링크 동일 크기·모양 */
    --ea-header-ctrl-fs: 0.6875rem;
    --ea-header-ctrl-lh: 1.2;
    --ea-header-ctrl-py: 2px;
    --ea-header-ctrl-px: 6px;
    --ea-header-ctrl-min-h: 26px;
    --ea-header-ctrl-radius: var(--ea-radius-sm);
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    font-size: 16px;
    -webkit-text-size-adjust: 100%;
}

body {
    margin: 0;
    min-height: 100dvh;
    overflow-x: clip;
    font-family: var(--ea-font);
    color: var(--ea-text);
    background: var(--ea-bg);
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}

.ea-header {
    position: sticky;
    top: 0;
    z-index: 50;
    background: color-mix(in srgb, var(--ea-surface) 92%, transparent);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--ea-line);
}

.ea-header__inner {
    max-width: var(--ea-read-max);
    margin: 0 auto;
    padding: 12px var(--ea-read-gutter-x);
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.ea-header__lead {
    display: flex;
    align-items: center;
    gap: 10px 12px;
    flex: 1;
    min-width: 0;
}

.ea-header__brand-link {
    display: flex;
    align-items: center;
    gap: 10px 12px;
    flex: 1;
    min-width: 0;
    color: inherit;
    text-decoration: none;
}

.ea-header__brand-link:focus-visible {
    outline: 2px solid var(--ea-accent);
    outline-offset: 2px;
    border-radius: var(--ea-radius-sm);
}

.ea-brand {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1px;
    font-weight: 400;
    font-size: clamp(0.8125rem, 2.85vw, 1.05rem);
    line-height: 1.3;
    color: var(--ea-text);
    letter-spacing: -0.02em;
    flex: 1;
    min-width: 0;
    padding: 2px 0;
}

.ea-brand__school,
.ea-brand__suffix {
    display: block;
    max-width: 100%;
}

.ea-brand__school {
    font-weight: 700;
}

.ea-brand__suffix {
    font-size: 0.95em;
    font-weight: 400;
    line-height: 1.25;
}

@media (min-width: 520px) {
    .ea-brand {
        max-width: min(100%, 22rem);
    }
}

.ea-header__brand-link:hover .ea-brand__school,
.ea-header__brand-link:hover .ea-brand__suffix {
    color: var(--ea-accent);
}

.ea-header__logo {
    display: block;
    height: auto;
    max-height: 36px;
    max-width: min(132px, 28vw);
    width: auto;
    object-fit: contain;
    flex-shrink: 0;
}

@media (min-width: 480px) {
    .ea-header__logo {
        max-height: 40px;
        max-width: 152px;
    }
}

.ea-header__refresh-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    padding: 0;
    border: none;
    border-radius: var(--ea-radius-sm);
    background: transparent;
    color: var(--ea-muted);
    cursor: pointer;
    text-decoration: none;
    transition: background 0.15s, color 0.15s;
}

.ea-header__refresh-btn:hover {
    background: var(--ea-accent-soft);
    color: var(--ea-accent);
}

.ea-header__refresh-btn:focus-visible {
    outline: 2px solid var(--ea-accent);
    outline-offset: 2px;
}

.ea-header__refresh-btn svg,
.ea-header__refresh-btn img {
    width: 20px;
    height: 20px;
    display: block;
}

/* 오른쪽: 언어 + 링크 세로 묶음(3줄) — 영역 전체는 로고 옆 한 줄에 둠 */
.ea-header__links {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 4px;
    justify-content: flex-end;
    align-items: stretch;
    width: auto;
    min-width: 5.75rem;
    flex-shrink: 0;
}

.ea-header__links .ea-lang {
    flex: 0 0 auto;
    margin: 0;
    display: block;
    width: 100%;
}

.ea-lang__label {
    margin: 0;
    display: block;
    width: 100%;
}

.ea-lang__select {
    box-sizing: border-box;
    display: block;
    width: 100%;
    max-width: none;
    font-family: var(--ea-font);
    font-size: var(--ea-header-ctrl-fs);
    line-height: var(--ea-header-ctrl-lh);
    min-height: var(--ea-header-ctrl-min-h);
    padding: var(--ea-header-ctrl-py) var(--ea-header-ctrl-px);
    border-radius: var(--ea-header-ctrl-radius);
    border: 1px solid var(--ea-line);
    background: var(--ea-surface);
    color: var(--ea-muted);
    cursor: pointer;
}

.ea-lang__select:hover,
.ea-lang__select:focus {
    color: var(--ea-accent);
    border-color: rgba(0, 103, 192, 0.25);
    outline: none;
}

.ea-header__acct {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
    width: 100%;
}

.ea-header__links a,
.ea-header__acct a {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    font-family: var(--ea-font);
    font-size: var(--ea-header-ctrl-fs);
    line-height: var(--ea-header-ctrl-lh);
    min-height: var(--ea-header-ctrl-min-h);
    padding: var(--ea-header-ctrl-py) var(--ea-header-ctrl-px);
    border-radius: var(--ea-header-ctrl-radius);
    border: 1px solid var(--ea-line);
    background: var(--ea-surface);
    color: var(--ea-muted);
    text-decoration: none;
    text-align: center;
    white-space: nowrap;
}

.ea-header__links a:hover,
.ea-header__acct a:hover {
    color: var(--ea-accent);
    background: var(--ea-accent-soft);
    border-color: rgba(0, 103, 192, 0.15);
}

.ea-main {
    max-width: var(--ea-read-max);
    margin: 0 auto;
    padding: 20px var(--ea-read-gutter-x) 48px;
    min-width: 0;
}

.ea-card {
    background: var(--ea-surface);
    border-radius: var(--ea-radius);
    box-shadow: var(--ea-shadow);
    border: 1px solid var(--ea-line);
    padding: 20px 18px 24px;
}

@media (min-width: 480px) {
    .ea-card {
        padding: 28px 26px 32px;
    }
}

.ea-steps {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 4px;
    margin-bottom: 24px;
    padding: 0 2px;
}

.ea-step {
    flex: 1;
    text-align: center;
    position: relative;
    min-width: 0;
}

.ea-step::after {
    content: "";
    position: absolute;
    top: 14px;
    left: calc(50% + 18px);
    right: calc(-50% + 18px);
    height: 2px;
    background: var(--ea-line);
    z-index: 0;
}

.ea-step:last-child::after {
    display: none;
}

/* DOM상 마지막이 아닐 때도, 진행 바에서 보이는 마지막 단계 뒤 줄 제거(단체 3단계) */
.ea-step--bar-last::after {
    display: none;
}

.ea-step--done::after,
.ea-step--active::after {
    background: var(--ea-accent);
    opacity: 0.35;
}

.ea-step__dot {
    width: 28px;
    height: 28px;
    margin: 0 auto 6px;
    border-radius: 50%;
    background: var(--ea-line);
    color: var(--ea-muted);
    font-size: 0.75rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    z-index: 1;
}

.ea-step--active .ea-step__dot {
    background: var(--ea-accent);
    color: #fff;
    box-shadow: 0 0 0 4px var(--ea-accent-soft);
}

.ea-step--done .ea-step__dot {
    background: var(--ea-accent);
    color: #fff;
}

.ea-step__label {
    font-size: 0.6875rem;
    color: var(--ea-muted);
    line-height: 1.25;
    word-break: keep-all;
}

@media (min-width: 400px) {
    .ea-step__label {
        font-size: 0.75rem;
    }
}

.ea-step--active .ea-step__label {
    color: var(--ea-text);
    font-weight: 600;
}

.ea-title {
    margin: 0 0 8px;
    font-size: 1.35rem;
    font-weight: 800;
    letter-spacing: -0.03em;
}

.ea-lead {
    margin: 0 0 22px;
    font-size: 0.9375rem;
    color: var(--ea-muted);
}

/* 개인정보 수집·이용 / 제3자 제공 / 제출서류 관리 동의서 (3영역) */
.ea-consent-intro {
    margin-bottom: 20px;
    padding: 14px 14px 16px;
    background: #f8fafc;
    border: 1px solid var(--ea-line);
    border-radius: var(--ea-radius-sm);
}

.ea-consent-intro__ko {
    margin: 0;
    font-size: 0.6875rem;
    line-height: 1.45;
    color: var(--ea-text);
}

.ea-consent-intro__en {
    margin: 0;
    font-size: 0.6875rem;
    line-height: 1.45;
    color: var(--ea-muted);
}

/* 단체 약관: 도입문 한국어 문단만 마진 제거 */
.ea-consent-variant--group .ea-consent-intro__ko {
    margin: 0;
}

/* 단체 지원 약관 본문: 개인 동의서 표·동의문서(.ea-consent-stack / .ea-consent-doc)와 동일 계열 */
.ea-consent-variant--group .ea-consent-group-body {
    font-size: 0.8125rem;
    line-height: 1.55;
    color: var(--ea-text);
}

.ea-consent-variant--group .ea-consent-group-body .ea-consent-block__body p {
    margin: 0 0 0.5em;
}

.ea-consent-variant--group .ea-consent-group-body .ea-consent-block__body p:last-child {
    margin-bottom: 0;
}

.ea-consent-block {
    margin-bottom: 22px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--ea-line);
}

.ea-consent-block:last-of-type {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

.ea-consent-block__title {
    margin: 0 0 10px;
    font-size: 0.9375rem;
    font-weight: 700;
    line-height: 1.35;
}

.ea-consent-block__subtitle {
    margin: 0 0 10px;
    font-size: 0.75rem;
    color: var(--ea-muted);
    line-height: 1.4;
}

.ea-consent-placeholder {
    margin-bottom: 14px;
    padding: 12px;
    font-size: 0.8125rem;
    color: var(--ea-muted);
    background: #fafafa;
    border-radius: 6px;
    border: 1px dashed var(--ea-line);
}

/* 동의 표: 항목명(라벨) → 내용을 위에서 아래로만 나열 */
.ea-consent-stack {
    margin-bottom: 14px;
    border: 1px solid #c5ced9;
    border-radius: var(--ea-radius-sm);
    overflow: hidden;
    font-size: 0.8125rem;
    line-height: 1.45;
}

.ea-consent-stack__row {
    border-bottom: 1px solid var(--ea-line);
}

.ea-consent-stack__row:last-child {
    border-bottom: none;
}

.ea-consent-stack__label {
    padding: 10px 12px;
    background: #e4eaf5;
    border-bottom: 1px solid #c5ced9;
    font-weight: 700;
    text-align: left;
    color: var(--ea-text);
}

.ea-consent-stack__value {
    padding: 10px 12px;
    background: var(--ea-surface);
    text-align: left;
    overflow-wrap: break-word;
    word-break: break-word;
}

.ea-consent-th-sub {
    display: block;
    margin-top: 6px;
    font-weight: 600;
    font-size: 0.6875rem;
    line-height: 1.35;
    color: #475569;
}

.ea-consent-td-en {
    margin: 0;
    font-size: 0.75rem;
    color: var(--ea-muted);
}

.ea-consent-footnotes {
    font-size: 0.6875rem;
    line-height: 1.45;
    color: var(--ea-muted);
}

.ea-consent-footnotes p {
    margin: 0 0 0.4em;
}

.ea-consent-footnotes p:last-child {
    margin-bottom: 0;
}
.ea-consent-foot-mark {
    margin-right: 2px;
}

/* 3번: 원본 서류 안내·동의 본문 */
.ea-consent-doc {
    font-size: 0.8125rem;
    line-height: 1.55;
    color: var(--ea-text);
}

.ea-consent-doc__intro p {
    margin: 0 0 10px;
}

.ea-consent-doc__intro p:last-child {
    margin-bottom: 14px;
}

.ea-consent-doc__section {
    margin-bottom: 16px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--ea-line);
}

.ea-consent-doc__section:last-of-type {
    border-bottom: none;
    padding-bottom: 0;
    margin-bottom: 12px;
}

.ea-consent-doc__section--important {
    padding: 12px 12px 14px;
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: var(--ea-radius-sm);
    margin-bottom: 16px;
}

.ea-apply-inquiry-notice {
    margin-top: 20px;
    padding: 12px 12px 14px;
    background: var(--ea-accent-soft);
    border: 1px solid color-mix(in srgb, var(--ea-accent) 42%, var(--ea-line));
    border-radius: var(--ea-radius-sm);
}

.ea-apply-inquiry-notice__title {
    margin: 0 0 8px;
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.35;
    color: var(--ea-accent);
}

.ea-apply-inquiry-notice__title-inner {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.ea-apply-inquiry-notice__icon {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    display: block;
}

.ea-apply-inquiry-notice__p {
    margin: 0 0 8px;
    font-size: 0.8125rem;
    line-height: 1.5;
}

.ea-apply-inquiry-notice__p:last-child,
.ea-apply-inquiry-notice__email:last-child {
    margin-bottom: 0;
}

.ea-apply-inquiry-notice__email {
    margin: 0;
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.5;
    word-break: break-all;
    color: var(--ea-accent);
}

.ea-apply-inquiry-notice__link {
    color: var(--ea-accent);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.ea-apply-inquiry-notice__link:hover {
    color: var(--ea-accent-hover);
    text-decoration-thickness: 2px;
}

.ea-consent-doc__section--online {
    border-bottom: none;
    padding-bottom: 0;
}

.ea-consent-doc__h4 {
    margin: 0 0 8px;
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.35;
}

.ea-consent-doc__h5 {
    margin: 0 0 6px;
    font-size: 0.8125rem;
    font-weight: 700;
}

.ea-consent-doc__p {
    margin: 0 0 8px;
}

.ea-consent-doc__p:last-child {
    margin-bottom: 0;
}

.ea-consent-doc__p-strong {
    margin: 10px 0 6px;
    font-weight: 700;
}

.ea-consent-doc__p-strong:first-child {
    margin-top: 0;
}

.ea-consent-doc__list,
.ea-consent-doc__ol {
    margin: 0 0 8px;
    padding-left: 1.25rem;
}

.ea-consent-doc__list li,
.ea-consent-doc__ol li {
    margin-bottom: 4px;
}

.ea-consent-doc__list--plain {
    list-style: none;
    padding-left: 0;
}

.ea-consent-doc__list--plain li {
    margin-bottom: 4px;
}

.ea-consent-doc__note {
    margin: 6px 0 0;
    font-size: 0.8125rem;
    color: #475569;
}

.ea-consent-doc__note--emph {
    font-weight: 600;
    color: var(--ea-text);
    margin-bottom: 12px;
}

.ea-consent-doc__clause {
    margin-bottom: 14px;
}

.ea-consent-doc__clause:last-child {
    margin-bottom: 0;
}

.ea-consent-footnotes--doc {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid var(--ea-line);
}

/* 입학 신청서 · 증명사진 미리보기 */
.ea-admission {
    font-size: 0.8125rem;
}

.ea-id-photo {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    max-width: 220px;
}

.ea-id-photo__drop {
    display: block;
    margin: 0;
    cursor: pointer;
    position: relative;
    border-radius: 12px;
    transition: box-shadow 0.15s ease, filter 0.15s ease;
}

.ea-id-photo__drop:hover {
    box-shadow: 0 6px 22px rgba(15, 23, 42, 0.09);
}

.ea-id-photo__drop:focus-within {
    outline: 2px solid var(--ea-accent);
    outline-offset: 2px;
}

.ea-id-photo__frame {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 132px;
    aspect-ratio: 3 / 4;
    border-radius: 10px;
    border: 2px dashed #c5d0e0;
    background: linear-gradient(155deg, #f9fafb 0%, #eef2f7 55%, #e8edf5 100%);
    overflow: hidden;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
}

.ea-id-photo__preview {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    z-index: 1;
}

.ea-id-photo__preview[hidden] {
    display: none !important;
}

.ea-id-photo__placeholder {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 12px 10px;
    text-align: center;
    color: var(--ea-text);
    opacity: 0.78;
    font-size: 11px;
    line-height: 1.35;
}

.ea-id-photo__placeholder[hidden] {
    display: none !important;
}

.ea-id-photo__placeholder img {
    opacity: 0.55;
}

.ea-id-photo__hint {
    font-weight: 600;
    color: var(--ea-text);
    opacity: 0.92;
}

.ea-id-photo__sub {
    font-size: 10px;
    opacity: 0.72;
    max-width: 11em;
}

.ea-id-photo__input {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    opacity: 0;
    cursor: pointer;
    font-size: 0;
}

.ea-id-photo__remove {
    font-size: 11px;
    padding: 4px 10px;
    border: 1px solid #c5d0e0;
    border-radius: 6px;
    background: #fff;
    color: var(--ea-text);
    cursor: pointer;
    font-family: inherit;
}

.ea-id-photo__remove:hover {
    background: #f4f7fb;
    border-color: #a8b8d0;
}

.ea-adm-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    margin-bottom: 20px;
    border: 1px solid #c5ced9;
    border-radius: var(--ea-radius-sm);
    overflow: hidden;
    background: var(--ea-surface);
}

.ea-adm-table:last-child {
    margin-bottom: 0;
}

.ea-adm-table__caption {
    caption-side: top;
    text-align: center;
    font-weight: 700;
    font-size: 0.8125rem;
    padding: 10px 12px;
    background: #e4eaf5;
    border: 1px solid #c5ced9;
    border-bottom: none;
    color: var(--ea-text);
}

.ea-adm-tr {
    border-top: 1px solid var(--ea-line);
}

.ea-adm-table tbody .ea-adm-tr:first-child {
    border-top: none;
}

.ea-adm-th {
    width: 32%;
    max-width: 11rem;
    padding: 10px 12px;
    text-align: center;
    vertical-align: middle;
    font-weight: 600;
    font-size: 0.8125rem;
    background: #f1f5f9;
    color: var(--ea-text);
    border-right: 1px solid var(--ea-line);
}

.ea-adm-th--note {
    font-weight: 500;
    color: var(--ea-muted);
}

.ea-adm-td {
    padding: 10px 12px;
    vertical-align: middle;
    text-align: start;
    min-width: 0;
    font-size: 0.8125rem;
}

.ea-adm-td .ea-input,
.ea-adm-td .ea-select,
.ea-adm-td .ea-textarea {
    width: 100%;
    max-width: 100%;
    text-align: start;
    font-size: inherit;
    font-family: inherit;
    line-height: 1.4;
}

/* 날짜 묶음(.v3-text-date) 안 텍스트 입력은 행 안에서 flex로 너비 분배 (100% 지정 시 달력 버튼과 겹침) */
.ea-adm-td .v3-text-date .v3-text-date__input {
    width: auto;
    flex: 1 1 auto;
    min-width: 0;
}

.ea-adm-td .ea-id-photo {
    margin-left: auto;
    margin-right: auto;
    align-items: center;
}

.ea-adm-td .ea-textarea {
    min-height: 8rem;
}

/* 관리자와 동일: 텍스트 날짜 + 달력 버튼 (표 셀에서는 다른 입력과 동일 너비) */
.ea-admission .v3-text-date {
    display: flex;
    align-items: stretch;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    position: relative;
    box-sizing: border-box;
}

.ea-admission .v3-text-date__input {
    border-radius: var(--ea-radius-sm) 0 0 var(--ea-radius-sm);
    border-right: none;
}

.ea-admission .v3-text-date__pick {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 5px;
    margin: 0;
    border: 1px solid #c5d0e0;
    border-radius: 0 var(--ea-radius-sm) var(--ea-radius-sm) 0;
    background: #f4f7fb;
    cursor: pointer;
    line-height: 0;
}

.ea-admission .v3-text-date__pick:hover {
    background: #e8eef6;
}

.ea-admission .v3-text-date__pick:focus,
.ea-admission .v3-text-date__pick:focus-visible {
    outline: none;
    box-shadow: none;
    border-color: var(--ea-accent);
    z-index: 1;
}

.ea-admission .v3-text-date__native {
    position: absolute;
    inset: 0;
    width: auto;
    height: auto;
    margin: 0;
    padding: 0;
    border: 0;
    opacity: 0;
    pointer-events: none;
    overflow: hidden;
}

.ea-adm-hint {
    margin: 6px 0 0;
}

.ea-adm-doc-note {
    margin: 0 auto;
    font-size: 0.75rem;
    color: var(--ea-muted);
    line-height: 1.45;
    text-align: center;
    max-width: 36rem;
}

.ea-adm-tr .ea-error {
    display: none;
    text-align: center;
}

.ea-adm-tr.has-error .ea-error {
    display: block;
}

.ea-adm-tr.has-error .ea-input,
.ea-adm-tr.has-error .ea-select,
.ea-adm-tr.has-error .ea-textarea {
    border-color: #f5a4a4;
}

.ea-adm-tr.has-error .ea-input--file {
    outline: 2px solid #f5a4a4;
    outline-offset: 2px;
}

@media (max-width: 520px) {
    .ea-adm-table,
    .ea-adm-table tbody,
    .ea-adm-tr,
    .ea-adm-th,
    .ea-adm-table__caption,
    .ea-adm-td {
        display: block;
        width: 100%;
    }

    .ea-adm-th {
        max-width: none;
        border-right: none;
        border-bottom: 1px solid var(--ea-line);
        text-align: center;
    }

    .ea-adm-td {
        text-align: start;
    }

    .ea-adm-tr {
        border-top: none;
        border-bottom: 1px solid var(--ea-line);
    }
}

.ea-adm-th .v3-required-mark,
.v3-required-mark {
    margin-left: 3px;
    color: #dc2626;
    font-weight: 700;
}

.ea-req {
    color: var(--ea-danger);
    font-weight: 700;
}

.ea-input--file {
    padding: 8px 0;
    min-height: auto;
    border: none;
    background: transparent;
}

.ea-input--file:focus {
    box-shadow: none;
    outline: 2px solid var(--ea-accent-soft);
    outline-offset: 2px;
}

.ea-doc-upload-cell {
    display: flex;
    flex-direction: column;
    gap: 6px;
    align-items: stretch;
}

.ea-doc-current-line {
    margin: 0;
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 8px;
    min-width: 0;
    padding: 6px 0 2px;
    font-size: 0.8125rem;
    line-height: 1.35;
    color: var(--ea-muted);
}

.ea-doc-current-line__badge {
    flex-shrink: 0;
    padding: 1px 7px;
    border-radius: 999px;
    font-size: 0.6875rem;
    font-weight: 600;
    color: #0f5132;
    background: #d1e7dd;
}

.ea-doc-current-line__text {
    display: flex;
    flex-wrap: nowrap;
    align-items: baseline;
    min-width: 0;
    flex: 1 1 auto;
    overflow: hidden;
}

.ea-doc-current-line__name {
    flex: 0 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 600;
    color: var(--ea-ink, #111827);
}

.ea-doc-current-line__sep {
    flex-shrink: 0;
}

.ea-doc-current-line__tail {
    flex-shrink: 0;
    white-space: nowrap;
}

.ea-doc-picked {
    margin: 0;
    font-size: 0.8125rem;
    color: var(--ea-accent, #2563eb);
}

.ea-adm-doc-note--secondary {
    margin-top: 6px;
    font-size: 0.8125rem;
    color: var(--ea-muted);
}

@media (max-width: 380px) {
    .ea-step__dot {
        width: 24px;
        height: 24px;
        font-size: 0.6875rem;
    }

    .ea-step__label {
        font-size: 0.625rem;
    }
}

.ea-panel {
    display: none;
}

.ea-panel.is-visible {
    display: block;
}

/* 전자서명 단계 */
.ea-signature-head {
    margin-bottom: 16px;
}

.ea-signature-head__ko {
    margin: 0 0 6px;
    font-weight: 600;
    font-size: 0.9375rem;
    color: var(--ea-text);
}

.ea-signature-head__en {
    margin: 0;
    font-size: 0.8125rem;
    color: var(--ea-muted);
    line-height: 1.45;
}

.ea-signature-clauses {
    margin: 0 0 20px;
    padding: 0;
    list-style: none;
    counter-reset: ea-sig;
}

.ea-signature-clause {
    counter-increment: ea-sig;
    margin-bottom: 10px;
    padding: 12px 14px;
    border-radius: var(--ea-radius-sm);
    background: #e8f0fa;
    border: 1px solid #c5d8ec;
}

.ea-signature-clause__ko {
    margin: 0 0 6px;
    font-size: 0.8125rem;
    line-height: 1.5;
    color: var(--ea-text);
}

.ea-signature-clause__ko::before {
    content: counter(ea-sig) ". ";
    font-weight: 700;
    color: var(--ea-accent);
}

.ea-signature-clause__en {
    margin: 0;
    font-size: 0.75rem;
    line-height: 1.45;
    color: var(--ea-muted);
}

.ea-signature-hint {
    margin: 8px 0 0;
    font-size: 0.75rem;
    color: var(--ea-muted);
    line-height: 1.4;
}

.ea-signature-hint--en {
    margin-top: 4px;
}

.ea-signature-meta__value {
    margin: 6px 0 0;
    font-size: 0.8125rem;
    color: var(--ea-text);
    padding: 10px 14px;
    border-radius: var(--ea-radius-sm);
    border: 1px dashed var(--ea-line);
    background: var(--ea-surface);
}

.ea-field {
    margin-bottom: 18px;
}

#ea-panel-consent .ea-field {
    margin-top: 18px;
    margin-bottom: 0;
}

.ea-field--inline {
    display: grid;
    gap: 12px;
}

@media (min-width: 520px) {
    .ea-field--inline-2 {
        grid-template-columns: 1fr 1fr;
    }
}

.ea-label {
    display: block;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--ea-text);
    margin-bottom: 6px;
}

.ea-label .ea-opt {
    font-weight: 500;
    color: var(--ea-muted);
}

.ea-input,
.ea-select,
.ea-textarea {
    width: 100%;
    min-height: var(--ea-touch);
    padding: 10px 14px;
    font-size: 1rem;
    font-family: inherit;
    border: 1px solid var(--ea-line);
    border-radius: var(--ea-radius-sm);
    background: #fff;
    color: var(--ea-text);
    transition: border-color 0.15s, box-shadow 0.15s;
}

.ea-textarea {
    min-height: 100px;
    resize: vertical;
}

.ea-input:focus,
.ea-select:focus,
.ea-textarea:focus {
    outline: none;
    border-color: var(--ea-accent);
    box-shadow: 0 0 0 3px var(--ea-accent-soft);
}

.ea-hint {
    margin: 6px 0 0;
    font-size: 0.75rem;
    color: var(--ea-muted);
}

.ea-error {
    margin: 6px 0 0;
    font-size: 0.8125rem;
    color: var(--ea-danger);
    display: none;
}

.ea-field.has-error .ea-error,
[data-required].has-error .ea-error {
    display: block;
}

.ea-field.has-error .ea-input,
.ea-field.has-error .ea-select,
.ea-field.has-error .ea-textarea,
[data-required].has-error .ea-input,
[data-required].has-error .ea-select,
[data-required].has-error .ea-textarea {
    border-color: #f5a4a4;
}

[data-required].has-error .ea-input--file {
    outline: 2px solid #f5a4a4;
    outline-offset: 2px;
}

.ea-type-grid {
    display: grid;
    gap: 10px;
    align-items: stretch;
}

@media (min-width: 440px) {
    .ea-type-grid {
        grid-template-columns: 1fr 1fr;
    }
}

.ea-type-card {
    position: relative;
    margin: 0;
    display: flex;
    min-height: 0;
}

.ea-type-card input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.ea-type-card label {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 12px 14px;
    border: 2px solid var(--ea-line);
    border-radius: var(--ea-radius-sm);
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
    min-height: 6.75rem;
}

.ea-type-card label:hover {
    border-color: #cbd5e1;
    background: #f8fafc;
}

.ea-type-card input:focus-visible + label {
    outline: 2px solid var(--ea-accent);
    outline-offset: 2px;
}

.ea-type-card input:checked + label {
    border-color: var(--ea-accent);
    background: var(--ea-accent-soft);
}

.ea-type-card__title {
    font-weight: 700;
    font-size: 0.9375rem;
    margin-bottom: 2px;
    line-height: 1.25;
}

.ea-type-card__desc {
    font-size: 0.75rem;
    color: var(--ea-muted);
    line-height: 1.35;
}

.ea-check {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 14px;
}

.ea-check input {
    width: 20px;
    height: 20px;
    margin-top: 2px;
    flex-shrink: 0;
    accent-color: var(--ea-accent);
}

.ea-check label {
    font-size: 0.875rem;
    color: var(--ea-text);
    cursor: pointer;
}

/* 동의 단계·전자서명: 필수 동의 체크 강조 */
#ea-panel-consent .ea-check,
#ea-panel-signature .ea-check {
    margin-bottom: 0;
    padding: 14px 16px;
    background: var(--ea-accent-soft);
    border: 2px solid color-mix(in srgb, var(--ea-accent) 42%, var(--ea-line));
    border-radius: var(--ea-radius-sm);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
    align-items: center;
    gap: 14px;
}

#ea-panel-consent .ea-check:focus-within,
#ea-panel-signature .ea-check:focus-within {
    border-color: var(--ea-accent);
    box-shadow: 0 0 0 3px var(--ea-accent-soft);
}

#ea-panel-consent .ea-check input,
#ea-panel-signature .ea-check input {
    width: 22px;
    height: 22px;
    min-width: 22px;
    margin-top: 0;
}

#ea-panel-consent .ea-check label,
#ea-panel-signature .ea-check label {
    font-size: 0.9375rem;
    font-weight: 600;
    line-height: 1.45;
}

.ea-actions {
    display: flex;
    flex-direction: column-reverse;
    gap: 8px;
    margin-top: 28px;
    padding-top: 8px;
}

@media (min-width: 420px) {
    .ea-actions {
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
    }
}

/* 접수 완료: 단계 표·이전·다음 (flex 등이 HTML hidden을 덮는 경우까지 차단) */
.ea-card.ea-apply-complete .ea-steps,
.ea-card.ea-apply-complete .ea-actions {
    display: none !important;
}

.ea-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--ea-touch);
    padding: 0 20px;
    font-size: 0.9375rem;
    font-weight: 600;
    font-family: inherit;
    border-radius: var(--ea-radius-sm);
    border: none;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.15s, color 0.15s;
}

.ea-actions--compact .ea-btn {
    min-height: 36px;
    padding: 0 14px;
    font-size: 0.8125rem;
    border-radius: 6px;
}

.ea-btn--primary {
    background: var(--ea-accent);
    color: #fff;
    width: 100%;
}

.ea-btn--primary:hover {
    background: var(--ea-accent-hover);
}

.ea-btn--ghost {
    background: transparent;
    color: var(--ea-muted);
    border: 1px solid var(--ea-line);
    width: 100%;
}

@media (min-width: 420px) {
    .ea-actions--compact .ea-btn--primary,
    .ea-actions--compact .ea-btn--ghost {
        width: 8.5rem;
        min-width: 8.5rem;
        max-width: 8.5rem;
        flex: 0 0 8.5rem;
    }

    .ea-actions:not(.ea-actions--compact) .ea-btn--primary,
    .ea-actions:not(.ea-actions--compact) .ea-btn--ghost {
        width: 11.75rem;
        min-width: 11.75rem;
        max-width: 11.75rem;
        flex: 0 0 11.75rem;
    }
}

.ea-btn--ghost:hover {
    color: var(--ea-text);
    background: #f8fafc;
}

.ea-summary {
    font-size: 0.875rem;
    border: 1px solid var(--ea-line);
    border-radius: var(--ea-radius-sm);
    overflow: hidden;
}

.ea-summary dt {
    margin: 0;
    padding: 10px 14px;
    background: #f8fafc;
    font-weight: 600;
    font-size: 0.75rem;
    color: var(--ea-muted);
    border-bottom: 1px solid var(--ea-line);
}

.ea-summary dd {
    margin: 0;
    padding: 12px 14px;
    border-bottom: 1px solid var(--ea-line);
    word-break: break-word;
}

.ea-summary dd:last-of-type {
    border-bottom: none;
}

.ea-note {
    margin-top: 20px;
    padding: 14px;
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: var(--ea-radius-sm);
    font-size: 0.8125rem;
    color: #92400e;
}

.ea-done-icon {
    width: 56px;
    height: 56px;
    margin: 0 auto 16px;
    border-radius: 50%;
    background: #dcfce7;
    color: #166534;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.75rem;
    font-weight: 700;
}

.ea-text-center {
    text-align: center;
}

.ea-panel a {
    color: var(--ea-accent);
    font-weight: 600;
    text-underline-offset: 2px;
}

.ea-panel a:hover {
    color: var(--ea-accent-hover);
}

.ea-footer {
    text-align: center;
    padding: 24px 16px;
    font-size: 0.75rem;
    color: var(--ea-muted);
}

.ea-footer__lang {
    margin: 10px 0 0;
    font-size: 0.6875rem;
    color: var(--ea-muted);
}

/* 로그인 카드 */
.ea-login-card {
    max-width: 400px;
    margin: 0 auto;
    min-width: 0;
}

/* 관리자 로그인(.v3-login-app-name)과 동일: 앱 표시명 */
.ea-login-card .ea-login-app-name {
    margin: 0 0 8px;
    text-align: center;
    font-size: 1.125rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.25;
    color: var(--ea-text);
}

.ea-login-card .ea-title {
    text-align: center;
    margin-bottom: 22px;
    font-size: 1.0625rem;
    font-weight: 600;
    letter-spacing: -0.02em;
}

.ea-login-badge {
    display: inline-block;
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--ea-accent);
    background: var(--ea-accent-soft);
    padding: 4px 10px;
    border-radius: 999px;
    margin-bottom: 12px;
}

/* 로그인 카드 액션: 좁은 폭에서도 버튼이 카드 밖으로 튀지 않도록 */
.ea-login-card .ea-actions--login {
    margin-top: 8px;
    padding-top: 0;
}

@media (min-width: 420px) {
    .ea-login-card .ea-actions--login {
        gap: 10px;
        justify-content: stretch;
    }

    .ea-login-card .ea-actions--login .ea-btn--primary,
    .ea-login-card .ea-actions--login .ea-btn--ghost {
        flex: 1 1 0;
        min-width: 0;
        width: auto;
        max-width: none;
    }
}

/* 지원자 포털 — 정보 카드 · 알림 모달 (가로는 .ea-main 내 작성 영역과 동일 전폭) */
.ea-portal-card {
    width: 100%;
    max-width: 100%;
    margin: 0;
    min-width: 0;
}

.ea-portal-card__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 20px;
    flex-wrap: wrap;
}

.ea-portal-card__title {
    margin: 0;
    font-size: var(--ea-my-title-size);
    font-weight: var(--ea-my-title-weight);
    line-height: var(--ea-my-title-lh);
    color: var(--ea-text);
}

.ea-portal-card__actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.ea-portal-card__activity-link {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--ea-accent);
    text-decoration: none;
    padding: 6px 10px;
    border-radius: 999px;
    border: 1px solid color-mix(in srgb, var(--ea-accent) 28%, var(--ea-line));
    line-height: 1;
}

.ea-portal-card__activity-link:hover {
    border-color: color-mix(in srgb, var(--ea-accent) 45%, var(--ea-line));
    text-decoration: none;
}

.ea-portal-alert-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font: inherit;
    font-size: 0.875rem;
    font-weight: 600;
    padding: 8px 14px;
    border-radius: 999px;
    border: 1px solid var(--ea-line);
    background: var(--ea-surface);
    color: var(--ea-text);
    cursor: pointer;
    min-height: var(--ea-touch);
    line-height: 1;
}

.ea-portal-alert-btn:hover {
    border-color: color-mix(in srgb, var(--ea-accent) 35%, var(--ea-line));
}

.ea-portal-alert-btn__label {
    display: inline-flex;
    align-items: center;
    line-height: 1;
}

.ea-portal-alert-btn__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-width: 1.375rem;
    height: 1.375rem;
    padding: 0 6px;
    font-size: 0.6875rem;
    font-weight: 700;
    line-height: 1;
    color: #fff;
    background: #c41e3a;
    border-radius: 999px;
    flex-shrink: 0;
}

.ea-visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.ea-portal-kv__note {
    margin: 0;
    font-size: var(--ea-my-caption-size);
    color: var(--ea-muted);
    line-height: var(--ea-my-body-lh);
    font-weight: 500;
}

/* 그리드 2열 안의 dd만 넓어지지 않아 버튼이 왼쪽처럼 보이는 문제 → 행 전체 플렉스로 우측 정렬 */
.ea-portal-kv__row.ea-portal-kv__row--submit {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: 0;
}

.ea-portal-kv__row.ea-portal-kv__row--submit .ea-portal-kv__dd--trailing {
    display: block;
    flex: 0 0 auto;
    margin: 0;
    width: auto;
    max-width: 100%;
}

/* 진행 상황 표 보조 버튼과 동일 크기·톤 */
.ea-portal-kv__dd--trailing .ea-btn.ea-btn--small.ea-btn--secondary {
    min-height: 30px;
    padding: 4px 10px;
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1.25;
    border-radius: 6px;
    width: auto;
    max-width: 100%;
    box-sizing: border-box;
}

.ea-portal-kv__row--section-top {
    margin-top: 6px;
}

.ea-portal-card .ea-portal-kv__row dt label {
    font: inherit;
    color: inherit;
    font-weight: inherit;
    cursor: pointer;
}

.ea-portal-card .ea-portal-kv__row {
    align-items: center;
}

.ea-portal-card .ea-portal-kv dd .ea-input {
    margin: 0;
    width: 100%;
    max-width: 100%;
    min-height: 38px;
    padding: 6px 12px;
    font-size: var(--ea-my-body-size);
}

.ea-portal-kv {
    margin: 0;
    padding: 0;
    border-top: 1px solid var(--ea-line);
}

.ea-portal-kv__row {
    display: grid;
    grid-template-columns: minmax(6.5rem, 34%) 1fr;
    gap: 6px 12px;
    padding: 8px 0;
    border-bottom: 1px solid var(--ea-line);
    font-size: var(--ea-my-body-size);
    align-items: baseline;
}

.ea-portal-kv__row:last-child {
    border-bottom: none;
}

.ea-portal-kv__row dt {
    margin: 0;
    font-size: var(--ea-my-caption-size);
    color: var(--ea-muted);
    font-weight: 600;
    line-height: var(--ea-my-body-lh);
}

.ea-portal-kv__row dd {
    margin: 0;
    font-size: var(--ea-my-body-size);
    font-weight: 600;
    color: var(--ea-text);
    line-height: var(--ea-my-body-lh);
    word-break: break-word;
}

body.ea-modal-open {
    overflow: hidden;
}

.ea-modal {
    position: fixed;
    inset: 0;
    z-index: 200;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding: var(--ea-read-gutter-x);
    background: rgba(15, 23, 42, 0.45);
}

.ea-modal[hidden] {
    display: none;
}

@media (min-width: 520px) {
    .ea-modal {
        align-items: center;
    }
}

.ea-modal__panel {
    width: 100%;
    max-width: var(--ea-read-inner);
    max-height: min(85vh, 640px);
    display: flex;
    flex-direction: column;
    background: var(--ea-surface);
    border-radius: var(--ea-radius);
    box-shadow: var(--ea-shadow);
    border: 1px solid var(--ea-line);
}

.ea-modal__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 12px 12px 16px;
    border-bottom: 1px solid var(--ea-line);
    min-height: 48px;
    box-sizing: border-box;
}

.ea-modal__title {
    margin: 0;
    font-size: var(--ea-my-title-size);
    font-weight: var(--ea-my-title-weight);
    line-height: var(--ea-my-title-lh);
    display: flex;
    align-items: center;
    flex: 1;
    min-width: 0;
}

.ea-modal__close {
    display: grid;
    place-items: center;
    flex-shrink: 0;
    margin: 0;
    padding: 0;
    width: 44px;
    height: 44px;
    border: none;
    border-radius: var(--ea-radius-sm);
    background: transparent;
    color: var(--ea-muted);
    cursor: pointer;
}

.ea-modal__close-icon {
    display: block;
    pointer-events: none;
}

.ea-modal__close:hover {
    background: var(--ea-bg);
    color: var(--ea-text);
}

.ea-activity-list {
    list-style: none;
    margin: 0;
    padding: 8px 16px 16px;
    overflow-y: auto;
    flex: 1;
    min-height: 120px;
}

.ea-activity-li {
    padding: 12px 0;
    border-bottom: 1px solid var(--ea-line);
}

.ea-activity-li:last-child {
    border-bottom: none;
}

.ea-activity-li--empty {
    color: var(--ea-muted);
    font-size: var(--ea-my-body-size);
    line-height: var(--ea-my-body-lh);
}

.ea-activity-li__time {
    display: block;
    font-size: var(--ea-my-caption-size);
    font-weight: 600;
    color: var(--ea-muted);
    margin-bottom: 4px;
    line-height: var(--ea-my-body-lh);
}

.ea-activity-li__text {
    margin: 0;
    font-size: var(--ea-my-body-size);
    line-height: var(--ea-my-body-lh);
    color: var(--ea-text);
}

.ea-modal__foot {
    padding: 12px 16px 16px;
    border-top: 1px solid var(--ea-line);
    display: flex;
    justify-content: flex-end;
}

/* ── FAQ (관리자 등록 · 지원자 포털 로그인 후) — 가로는 작성 영역(.ea-card)과 동일 전폭 */
.ea-faq {
    width: 100%;
    max-width: 100%;
    margin: 1.5rem 0 0;
    min-width: 0;
}

.ea-faq__head {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 16px;
}

@media (min-width: 640px) {
    .ea-faq__head {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        justify-content: space-between;
        gap: 12px 16px;
    }
}

.ea-faq__title {
    margin: 0;
    font-size: var(--ea-my-title-size);
    font-weight: var(--ea-my-title-weight);
    line-height: var(--ea-my-title-lh);
    color: var(--ea-text);
}

.ea-faq__tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    width: 100%;
    max-width: 100%;
}

@media (min-width: 640px) {
    .ea-faq__tabs {
        width: auto;
        flex: 1;
        justify-content: flex-end;
    }
}

.ea-faq__tab {
    margin: 0;
    padding: 7px 12px;
    font: inherit;
    font-size: var(--ea-my-caption-size);
    font-weight: 600;
    color: var(--ea-muted);
    background: var(--ea-surface);
    border: 1px solid var(--ea-line);
    border-radius: 999px;
    cursor: pointer;
    white-space: nowrap;
    transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}

.ea-faq__tab:hover {
    color: var(--ea-text);
    border-color: color-mix(in srgb, var(--ea-accent) 35%, var(--ea-line));
}

.ea-faq__tab.is-active {
    color: var(--ea-accent);
    border-color: var(--ea-accent);
    background: var(--ea-accent-soft);
}

.ea-faq__list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.ea-faq__item {
    border: 1px solid var(--ea-line);
    border-radius: var(--ea-radius-sm);
    background: color-mix(in srgb, var(--ea-surface) 96%, var(--ea-bg));
    overflow: hidden;
}

.ea-faq__item-title {
    margin: 0;
    font-size: inherit;
    font-weight: inherit;
}

.ea-faq__q {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    width: 100%;
    margin: 0;
    padding: 14px 14px 14px 16px;
    text-align: left;
    font: inherit;
    font-size: var(--ea-my-body-size);
    font-weight: 700;
    color: var(--ea-text);
    line-height: var(--ea-my-body-lh);
    background: transparent;
    border: none;
    cursor: pointer;
    list-style: none;
}

.ea-faq__q:hover {
    background: color-mix(in srgb, var(--ea-accent) 4%, transparent);
}

.ea-faq__q-num {
    flex-shrink: 0;
    color: var(--ea-accent);
    font-weight: 700;
    min-width: 2.25rem;
}

.ea-faq__q-text {
    flex: 1;
    min-width: 0;
}

.ea-faq__chev {
    flex-shrink: 0;
    display: grid;
    place-items: center;
    margin-top: 1px;
    color: var(--ea-muted);
    pointer-events: none;
}

.ea-faq__chev-svg {
    display: block;
    transition: transform 0.2s ease;
}

.ea-faq__q[aria-expanded="true"] .ea-faq__chev-svg {
    transform: rotate(180deg);
}

.ea-faq__q[aria-expanded="true"] {
    border-bottom: 1px solid var(--ea-line);
}

.ea-faq__a {
    padding: 0 16px 16px;
}

.ea-faq__a[hidden] {
    display: none;
}

.ea-faq__a-inner {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    padding-top: 12px;
}

.ea-faq__a-mark {
    flex-shrink: 0;
    font-size: var(--ea-my-body-size);
    font-weight: 700;
    color: var(--ea-muted);
    line-height: var(--ea-my-body-lh);
}

.ea-faq__a-body {
    flex: 1;
    min-width: 0;
    font-size: var(--ea-my-body-size);
    line-height: var(--ea-my-body-lh);
    color: var(--ea-text);
    word-break: break-word;
}

.ea-faq__a-body strong {
    font-weight: 700;
}

/* ── 문의하기 (지원자 포털) — 제목·여백은 FAQ(.ea-faq__head / .ea-faq__title)와 동일 ─ */
.ea-inq {
    width: 100%;
    max-width: 100%;
    margin: 1.5rem 0 0;
    min-width: 0;
}

.ea-inq .ea-label {
    font-size: var(--ea-my-caption-size);
    line-height: var(--ea-my-body-lh);
}

.ea-inq__history {
    margin-top: 20px;
}

.ea-inq__history-head {
    margin-bottom: 12px;
}

.ea-inq__form {
    margin-bottom: 2rem;
}

.ea-inq__grid2 {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px 16px;
    margin-bottom: 12px;
}

@media (min-width: 520px) {
    .ea-inq__grid2 {
        grid-template-columns: 1fr 1fr;
    }
}

.ea-inq__privacy {
    margin: 16px 0 12px;
    padding: 14px 16px;
    background: color-mix(in srgb, var(--ea-bg) 85%, var(--ea-surface));
    border: 1px solid var(--ea-line);
    border-radius: var(--ea-radius-sm);
}

.ea-inq__privacy-title {
    margin: 0 0 10px;
    font-size: var(--ea-my-body-size);
    font-weight: var(--ea-my-title-weight);
    line-height: var(--ea-my-title-lh);
    color: var(--ea-text);
}

.ea-inq__privacy-list {
    margin: 0;
    padding-left: 1.1rem;
    font-size: var(--ea-my-body-size);
    line-height: var(--ea-my-body-lh);
    color: var(--ea-text);
}

.ea-inq__submit-row {
    display: flex;
    justify-content: flex-end;
    margin-top: 16px;
}

.ea-btn--inq-submit {
    min-width: 7.5rem;
}

.ea-inq__status {
    margin: 10px 0 0;
    font-size: var(--ea-my-caption-size);
    color: var(--ea-muted);
    min-height: 1.25rem;
    line-height: var(--ea-my-body-lh);
}

.ea-inq__history-body {
    border: 1px solid var(--ea-line);
    border-radius: var(--ea-radius-sm);
    background: color-mix(in srgb, var(--ea-bg) 40%, var(--ea-surface));
    padding: 12px 14px;
    min-height: 4rem;
    min-width: 0;
    overflow-x: hidden;
}

.ea-inq__history-empty {
    margin: 0;
    font-size: var(--ea-my-body-size);
    color: var(--ea-muted);
    text-align: center;
    padding: 1rem 0;
    line-height: var(--ea-my-body-lh);
}

.ea-inq__thread {
    border-bottom: 1px solid var(--ea-line);
    min-width: 0;
}

.ea-inq__thread:last-child {
    border-bottom: none;
}

.ea-inq__thread-head {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0;
    padding: 12px 4px 12px 0;
    text-align: left;
    font: inherit;
    background: transparent;
    border: none;
    cursor: pointer;
    color: var(--ea-text);
}

.ea-inq__thread-head:hover {
    color: var(--ea-accent);
}

.ea-inq__thread-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
    min-width: 0;
    font-size: var(--ea-my-caption-size);
    color: var(--ea-muted);
    line-height: var(--ea-my-body-lh);
}

.ea-inq__thread-date {
    font-weight: 600;
}

.ea-inq__thread-cat {
    font-weight: 600;
    color: var(--ea-text);
}

.ea-inq__thread-badge {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 0.625rem;
    font-weight: 700;
    background: var(--ea-line);
    color: var(--ea-muted);
}

.ea-inq__thread-badge--ok {
    background: color-mix(in srgb, var(--ea-accent) 15%, var(--ea-line));
    color: var(--ea-accent);
}

.ea-inq__thread-preview {
    font-size: var(--ea-my-body-size);
    line-height: var(--ea-my-body-lh);
    color: var(--ea-text);
    padding-right: 24px;
    position: relative;
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.ea-inq__thread-chev {
    position: absolute;
    right: 0;
    top: 50%;
    width: 10px;
    height: 10px;
    margin-top: -5px;
    border-right: 2px solid var(--ea-muted);
    border-bottom: 2px solid var(--ea-muted);
    transform: rotate(45deg);
    transition: transform 0.2s ease;
}

.ea-inq__thread-head[aria-expanded="true"] .ea-inq__thread-chev {
    transform: rotate(225deg);
    margin-top: -2px;
}

.ea-inq__thread-panel {
    padding: 0 0 12px 4px;
}

.ea-inq__thread-panel[hidden] {
    display: none;
}

.ea-inq__detail {
    margin-top: 8px;
}

.ea-inq__qa {
    margin-bottom: 14px;
    padding: 12px 14px;
    border: 1px solid var(--ea-line);
    border-radius: var(--ea-radius-sm);
    background: var(--ea-surface);
}

.ea-inq__qa--reply {
    background: color-mix(in srgb, var(--ea-bg) 55%, var(--ea-surface));
}

.ea-inq__qa-label {
    font-size: var(--ea-my-caption-size);
    font-weight: 700;
    color: var(--ea-muted);
    margin-bottom: 6px;
    line-height: var(--ea-my-body-lh);
}

.ea-inq__qa-body {
    font-size: var(--ea-my-body-size);
    line-height: var(--ea-my-body-lh);
    white-space: pre-wrap;
    word-break: break-word;
    color: var(--ea-text);
}

.ea-inq__qa-pending {
    color: var(--ea-muted);
    font-style: italic;
}

/* 지원 포털: 진행 상황 표 */
.ea-progress-card {
    margin-top: 14px;
    /* 표 안 학기 칩·상태 칩 공통 규격(한곳만 조정) */
    --ea-progress-chip-h: 17px;
    --ea-progress-chip-fs: 10px;
    --ea-progress-chip-px: 6px;
    --ea-progress-chip-minw: 24px;
}

.ea-progress-card__title {
    margin: 0 0 12px;
    font-size: var(--ea-my-title-size);
    font-weight: var(--ea-my-title-weight);
    line-height: var(--ea-my-title-lh);
    color: var(--ea-text);
}

.ea-progress-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.ea-progress-table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--ea-my-body-size);
    line-height: var(--ea-my-body-lh);
}

.ea-progress-table th,
.ea-progress-table td {
    padding: 10px 12px;
    border-bottom: 1px solid var(--ea-line);
    vertical-align: middle;
    text-align: left;
}

.ea-progress-table tr:last-child:not(.ea-progress-tr--supplement):not(.ea-progress-tr--before-submit) th,
.ea-progress-table tr:last-child:not(.ea-progress-tr--supplement):not(.ea-progress-tr--before-submit) td {
    border-bottom: none;
}

.ea-progress-table th {
    width: 24%;
    max-width: 140px;
    font-size: var(--ea-my-caption-size);
    font-weight: 600;
    color: var(--ea-muted);
    background: color-mix(in srgb, var(--ea-bg) 70%, var(--ea-surface));
}

/* 진행 상황: 원서 접수가 보완 지시일 때만 행 강조(라벨·본문 사이 이중 테두리 없음) */
.ea-progress-tr--supplement th,
.ea-progress-tr--supplement td {
    background: #fffbeb;
}
.ea-progress-tr--supplement th {
    border-top: 2px solid #d97706;
    border-bottom: 2px solid #d97706;
    border-left: 2px solid #d97706;
    border-right: 0;
}
.ea-progress-tr--supplement td {
    border-top: 2px solid #d97706;
    border-bottom: 2px solid #d97706;
    border-right: 2px solid #d97706;
    border-left: 0;
}

.ea-progress-cell {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 10px;
    width: 100%;
}

.ea-progress-cell--stack {
    flex-direction: column;
    align-items: flex-start;
}

/* 상태 칩·점수/금액 한 줄 요약: 동일 크기·줄간격·굵기(숫자만 한 단계 강조) */
.ea-progress-cell__meta,
.ea-progress-plain {
    font-size: var(--ea-my-body-size);
    line-height: var(--ea-my-body-lh);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.ea-progress-cell__meta {
    color: var(--ea-muted);
}

/* 진행 상황 테이블 내 상태 칩: 카드 변수와 학기 칩 동일 */
.ea-progress-table .ea-chip {
    box-sizing: border-box;
    justify-content: center;
    min-width: var(--ea-progress-chip-minw);
    min-height: var(--ea-progress-chip-h);
    height: var(--ea-progress-chip-h);
    max-height: var(--ea-progress-chip-h);
    padding: 0 var(--ea-progress-chip-px);
    font-size: var(--ea-progress-chip-fs);
    line-height: 1;
    font-weight: 600;
}

/* 진행 상황 행 내 보조 버튼·링크·업로드 라벨: 크기 축소·동일 톤 */
.ea-progress-table .ea-btn.ea-btn--small,
.ea-progress-table .ea-proof-upload-label.ea-btn.ea-btn--small {
    min-height: 30px;
    padding: 4px 10px;
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1.25;
    border-radius: 6px;
    width: auto;
    max-width: 100%;
    box-sizing: border-box;
}

.ea-progress-cell__meta strong {
    font-size: inherit;
    line-height: inherit;
    font-weight: 700;
    color: var(--ea-text);
}

.ea-progress-cell__sep {
    margin: 0 2px;
    color: var(--ea-line);
}

.ea-progress-plain {
    color: var(--ea-text);
}

/* 수업료 청구: 관리자 목록과 동일 학기 칩 + 요약 한 줄 (apply에는 common.css 없음) */
.ea-progress-billing-cell {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 10px;
    width: 100%;
}

/* 관리자 수업료 청구 목록 .v3-app-c--tb-sem-badges 와 동일: 4열·칩 간 3px */
.ea-progress-billing-sem {
    display: grid;
    grid-template-columns: repeat(4, max-content);
    column-gap: 0;
    row-gap: 2px;
    justify-content: start;
    align-items: center;
    justify-self: start;
    width: max-content;
    max-width: 100%;
    min-width: 0;
    padding: 0;
    box-sizing: border-box;
    white-space: normal;
}

.ea-progress-billing-sem > .v3-phase-name-chip {
    margin-right: 3px;
}

.ea-progress-billing-sem > .v3-phase-name-chip:nth-child(4n),
.ea-progress-billing-sem > .v3-phase-name-chip:last-child {
    margin-right: 0;
}

/* 학기 칩: 카드 내 상태 칩과 동일 규격(.ea-progress-card 변수) */
.ea-progress-card .v3-phase-name-chip {
    --phase-color: #3b82f6;
    --phase-color-text: #ffffff;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    min-width: var(--ea-progress-chip-minw);
    min-height: var(--ea-progress-chip-h);
    height: var(--ea-progress-chip-h);
    max-height: var(--ea-progress-chip-h);
    padding: 0 var(--ea-progress-chip-px);
    border-radius: 999px;
    background-color: var(--phase-color);
    color: var(--phase-color-text);
    border: 1px solid rgba(15, 23, 42, 0.18);
    font-weight: 600;
    font-size: var(--ea-progress-chip-fs);
    line-height: 1;
    vertical-align: middle;
    white-space: nowrap;
    max-width: 100%;
    flex-shrink: 0;
}

.ea-progress-card .v3-phase-name-chip.v3-phase-name-chip--neutral {
    --phase-color: #eceff3;
    --phase-color-text: #3f4654;
    background-color: var(--phase-color);
    color: var(--phase-color-text);
    border-color: #c5ccd8;
}

/* 진행 칩: 관리자 v3-app-status-badge·문서/비자 뱃지와 동일 팔레트(common.css --v3-app-status-* 및 is-doc-omitted) */
.ea-chip {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1.35;
    white-space: nowrap;
    border: 1px solid transparent;
    box-sizing: border-box;
    vertical-align: middle;
}

.ea-chip--pending {
    background: #E3F0FF;
    color: #0B57D0;
    border-color: color-mix(in srgb, #0B57D0 34%, #E3F0FF);
}

.ea-chip--before_submit {
    background: #f1f3f5;
    color: #aeb4bd;
    border-color: color-mix(in srgb, #aeb4bd 32%, #f1f3f5);
}

.ea-chip--unknown {
    background: #ECEFF3;
    color: #5f6673;
    border-color: color-mix(in srgb, #5f6673 34%, #ECEFF3);
}

.ea-chip--success {
    background: #DCF5E3;
    color: #0F6B3A;
    border-color: color-mix(in srgb, #0F6B3A 34%, #DCF5E3);
}

.ea-chip--warning {
    background: #FFEDD5;
    color: #C2410C;
    border-color: color-mix(in srgb, #C2410C 34%, #FFEDD5);
}

.ea-chip--danger {
    background: #FDE2E4;
    color: #B42318;
    border-color: color-mix(in srgb, #B42318 34%, #FDE2E4);
}

.ea-chip--doc_omitted {
    background: #fff8e6;
    color: #a15c00;
    border-color: color-mix(in srgb, #a15c00 34%, #fff8e6);
}

/* 구 variant 호환(이전 API·캐시) */
.ea-chip--muted {
    background: #ECEFF3;
    color: #5f6673;
    border-color: color-mix(in srgb, #5f6673 34%, #ECEFF3);
}

.ea-chip--info {
    background: #E3F0FF;
    color: #0B57D0;
    border-color: color-mix(in srgb, #0B57D0 34%, #E3F0FF);
}

.ea-progress-application-cell {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 10px;
    width: 100%;
}

/* 진행 표 셀 안 버튼·링크는 항상 행 오른쪽 */
.ea-progress-table td .ea-progress-cell > .ea-btn,
.ea-progress-table td .ea-progress-application-cell > .ea-btn,
.ea-progress-table td .ea-progress-application-cell > form.ea-progress-cert-form,
.ea-progress-table td .ea-progress-billing-cell > form.ea-progress-cert-form {
    margin-inline-start: auto;
    flex-shrink: 0;
}

.ea-progress-cert-form {
    display: inline-block;
    margin-block: 0;
}

.ea-proof-upload-form {
    vertical-align: middle;
}

.ea-proof-upload-label {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    cursor: pointer;
    font: inherit;
    line-height: inherit;
}

.ea-proof-upload-label .ea-proof-upload-input {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.ea-btn--small {
    padding: 6px 12px;
    font-size: 0.8125rem;
    min-height: 36px;
}

.ea-btn--secondary {
    background: var(--ea-surface);
    color: var(--ea-accent);
    border: 1px solid color-mix(in srgb, var(--ea-accent) 35%, var(--ea-line));
}

.ea-btn--secondary:hover {
    background: var(--ea-accent-soft);
}

.ea-modal__panel--wide {
    max-width: min(96vw, 560px);
    max-height: min(90vh, 720px);
}

.ea-modal__foot--split {
    justify-content: space-between;
}

.ea-supplement-form-mount {
    padding: 4px 16px 12px;
    overflow-y: auto;
    flex: 1;
    min-height: 140px;
}

.ea-supplement-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
}

.ea-supplement-th,
.ea-supplement-td {
    padding: 8px 0;
    border-bottom: 1px solid var(--ea-line);
    vertical-align: top;
    text-align: left;
}

.ea-supplement-table tr:last-child .ea-supplement-th,
.ea-supplement-table tr:last-child .ea-supplement-td {
    border-bottom: none;
}

.ea-supplement-th {
    width: 34%;
    max-width: 140px;
    font-weight: 600;
    color: var(--ea-muted);
    padding-right: 10px;
}

.ea-supplement-td .ea-input,
.ea-supplement-td .ea-select {
    width: 100%;
    max-width: 100%;
}

/* 포털 보완 폼: 지원서 작성(.ea-main 720px)과 동일 가로, 보완 행만 테두리 강조 */
.ea-card--flash-only {
    margin-top: 12px;
}

.ea-card--supplement {
    margin-top: 0;
}

.ea-card--supplement #ea-supplement-heading {
    margin: 0 0 22px;
}

.ea-form--supplement .ea-admission {
    margin-top: 4px;
}

.ea-actions--supplement {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 12px;
    margin-top: 20px;
    padding-top: 4px;
}

.ea-adm-tr--supplement .ea-adm-th,
.ea-adm-tr--supplement .ea-adm-td {
    background: #fffbeb;
}
.ea-adm-tr--supplement .ea-adm-th {
    box-shadow: none;
    border-top: 2px solid #d97706;
    border-bottom: 2px solid #d97706;
    border-left: 2px solid #d97706;
    border-right: 0;
}
.ea-adm-tr--supplement .ea-adm-td {
    box-shadow: none;
    border-top: 2px solid #d97706;
    border-bottom: 2px solid #d97706;
    border-right: 2px solid #d97706;
    border-left: 0;
}

.ea-adm-supplement-memo {
    margin: 10px 0 0;
    padding: 8px 10px;
    border-radius: 6px;
    border-left: 3px solid #d97706;
    background: color-mix(in srgb, #fffbeb 94%, #ffffff);
    font-size: 0.875rem;
    line-height: 1.45;
    color: #92400e;
}

.ea-adm-tr--locked .ea-input:not([type="file"]),
.ea-adm-tr--locked .ea-select,
.ea-adm-tr--locked .ea-textarea,
.ea-adm-tr--locked .v3-text-date__input {
    background: #f8fafc;
    color: #475569;
}

.ea-adm-locked-text {
    font-size: 0.9375rem;
    color: var(--ea-text);
}

.ea-adm-locked-mask {
    display: inline-block;
    padding: 6px 10px;
    border-radius: 6px;
    background: #f1f5f9;
    color: #64748b;
    font-size: 0.875rem;
}

.ea-id-photo--locked .ea-id-photo__drop {
    pointer-events: none;
    cursor: default;
    opacity: 0.92;
}

.ea-flash {
    margin: 0 0 14px;
    padding: 10px 12px;
    border-radius: 8px;
    font-size: 0.875rem;
    line-height: 1.45;
}

.ea-flash--success {
    background: #d1fae5;
    color: #047857;
}

.ea-flash--danger {
    background: #fee2e2;
    color: #b91c1c;
}
