@charset "UTF-8";
/* ===================================================================
   경성대학교 직원채용(stafappl) — 공통 레이아웃 v2
   ▶ eprofappl 템플릿 v2.0.1 기준 (layout_template/CHANGELOG 맨 위 버전)
   ▶ [공통] + [legacy-form]만 이식. 레거시 리스킨(tbl_cover3 등)·eprofappl 전용 제외.
   ▶ 우리 입력폼은 .legacy-form(td2/td3) 구조 → 하단 legacy-form 블록이 담당.
   ▶ 리테마(색/폰트)는 아래 :root 변수만 바꾸면 전체가 따라옵니다.
   =================================================================== */
:root{
  --navy:#003774;        /* 주색 (학교 남색) */
  --navy-2:#0a4f95;      /* 주색 hover */
  --primary:#003774; --primary-h:#0a4f95;
  --primary-50:#f0f5fb; --primary-100:#dde8f5; --primary-200:#b9cde6;
  --accent:#0a4f95;
  --accent-weak:#f0f5fb;
  --req:#cf3a2f; --danger:#cf3a2f; --danger-50:#fdf1f0;
  --ok:#12805c; --ok-50:#eaf6f0; --warn:#9a5a06; --warn-50:#fff6e5;
  /* 유의사항 박스 = KRDS(디지털 정부 디자인 시스템) danger 팔레트: 배경 5 / 보더 10 / 강조 50 / 텍스트 60 */
  --notice:#de3412; --notice-text:#bd2c0f; --notice-50:#fdefec; --notice-line:#fcdfd9;
  --line:#e4e8ef; --line-2:#d3d9e2;
  --bg:#ffffff; --soft:#f6f8fb;
  --page:#eef2f8;        /* 페이지 바탕(연한 남청) — 흰 본문 패널과 대비 */
  --foot:#0f2747;        /* 푸터 바탕(진남색) */
  --surface:#fff; --text:#121a26; --sub:#4a5565; --faint:#8a94a3;
  --label-bg:#f6f8fb;
  --sh-1:0 1px 2px rgba(16,24,40,.05); --sh-2:0 8px 28px rgba(16,24,40,.10);
  --font:'Pretendard','Pretendard Variable',-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Malgun Gothic',sans-serif;
}
*{box-sizing:border-box}
html{min-height:100%;overflow-y:scroll}
body{margin:0;font-family:var(--font)!important;background:var(--page);color:var(--text);font-size:15px;line-height:1.6;letter-spacing:-.01em;-webkit-font-smoothing:antialiased;display:flex;flex-direction:column;min-height:100vh}
/* 레거시 include(안내 html)에 박힌 옛 body 폰트/크기 override 방어 — app.css 프레임 폰트를 항상 우선 */
body,main.content,.ptitle h1,.desc,.sec{font-family:var(--font)!important}
main.content{font-size:15px}
a{color:inherit;text-decoration:none}

/* ── 헤더 ── */
header.main{position:sticky;top:0;z-index:40;flex-shrink:0;background:rgba(255,255,255,.95);-webkit-backdrop-filter:saturate(1.4) blur(8px);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--line)}
header.main .in{max-width:1360px;margin:0 auto;height:68px;padding:0 32px;display:flex;align-items:center;gap:16px}
header.main .logo{display:flex;align-items:center;gap:14px;white-space:nowrap}
header.main .logo-img{display:block;height:36px;width:auto}
header.main .logo .sep{width:1px;height:18px;background:var(--line-2)}
header.main .logo .nm{font-size:17px;font-weight:700;color:var(--text);letter-spacing:-.03em}
header.main .right{margin-left:auto;display:flex;align-items:center;gap:8px}
/* 상단 링크: 강사채용(eprofappl layout_template v2.0.4) 헤더와 동일 — 테두리 버튼 + 인라인 svg 아이콘(회색) + 글자(.tx), 모바일은 아이콘만 */
.hd-link{height:36px;padding:0 13px;border:1px solid var(--line-2);border-radius:8px;background:#fff;display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--text);white-space:nowrap;transition:background .15s,border-color .15s,color .15s}
.hd-link svg{width:16px;height:16px;flex:none;color:var(--sub)}
.hd-link svg.ext{width:12px;height:12px;color:var(--faint)}
.hd-link:hover{background:var(--soft);border-color:var(--primary-100)}
.hd-link.on{background:var(--primary-50);border-color:var(--primary-100);color:var(--primary)}
.hd-link.on svg{color:var(--primary)}
.hd-link:focus-visible,.hd-out:focus-visible,.hd-login:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
/* (직원채용 추가) 좌측 메뉴가 남는 좁은 폭(881~1040px)에서 헤더 줄 넘침 방지 — 여백 축소·새창 표시·이름 숨김 */
@media(max-width:1040px){.hd-link{padding:0 10px;gap:5px}.hd-link svg.ext{display:none}.hd-user .uid{display:none}}
.hd-user{display:flex;align-items:center;gap:8px;margin-left:8px;padding-left:14px;border-left:1px solid var(--line);font-size:14px;color:var(--sub);white-space:nowrap}
.hd-user b{color:var(--text);font-weight:600}
.hd-out{height:32px;padding:0 10px;margin-left:4px;border:1px solid var(--line-2);border-radius:7px;display:inline-flex;align-items:center;font-size:13px;font-weight:600;color:var(--sub)}
.hd-out:hover{background:var(--soft);color:var(--text)}
.hd-login{height:36px;padding:0 16px;margin-left:8px;border-radius:8px;background:var(--primary);color:#fff;display:inline-flex;align-items:center;font-size:14px;font-weight:600}
.hd-login:hover{background:var(--primary-h)}

/* ── 레이아웃 ── */
.wrap{width:100%;max-width:1360px;margin:0 auto;padding:32px 32px 0;display:flex;gap:36px;align-items:flex-start;flex:1 0 auto}
/* 로그인·합격자 조회: 큰 화면(27인치 QHD 등)에서 카드를 헤더~푸터 사이 세로 가운데로 (강사채용과 동일).
   stretch: .wrap 의 align-items:flex-start 가 세로 방향에선 '왼쪽 붙임'이 되므로 되돌림. 작은 화면은 남는 공간이 없어 그대로 */
.wrap.wrap-full{display:flex;flex-direction:column;justify-content:center;align-items:stretch}
/* 본문 = 흰 패널 (상단에 아주 옅은 남청 그라데이션) */
main.content{flex:1;min-width:0;background:linear-gradient(180deg,#f5f8fd 0,#fff 150px);border:1px solid var(--line);border-radius:16px;box-shadow:0 1px 3px rgba(16,24,40,.04);padding:28px 32px 4px}
.wrap-full main.content{background:none;border:0;border-radius:0;box-shadow:none;padding:0;flex:none}   /* flex:none = 남는 높이를 채우지 않아야 세로 가운데 정렬이 먹음 */

/* ── 좌측: 진행률 + 단계 표시기 ── */
aside.lnb{width:248px;flex:none;position:sticky;top:100px;max-height:calc(100vh - 116px);overflow-y:auto;padding-bottom:8px}
/* 진행률 카드 = 남색 그라데이션 포인트 */
aside.lnb .prog{position:relative;overflow:hidden;border-radius:14px;padding:18px 18px 16px;background:linear-gradient(135deg,#003774 0%,#0a4f95 100%);color:#dbe6f4;box-shadow:0 6px 18px rgba(0,55,116,.18)}
aside.lnb .prog::after{content:"";position:absolute;right:-30px;top:-30px;width:110px;height:110px;border-radius:50%;background:rgba(255,255,255,.07);pointer-events:none}
aside.lnb .prog .top{position:relative;display:flex;align-items:baseline;justify-content:space-between;gap:8px}
aside.lnb .prog .top b{font-size:15px;font-weight:700;color:#fff}
aside.lnb .prog .top span{font-size:13px;color:#b9cde6}
aside.lnb .prog .top em{font-style:normal;font-weight:800;color:#fff;font-size:15px}
aside.lnb .bar{position:relative;height:6px;border-radius:999px;background:rgba(255,255,255,.22);margin-top:12px;overflow:hidden}
aside.lnb .bar i{display:block;height:100%;background:#fff;border-radius:inherit}
aside.lnb .box{margin-top:12px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:8px}
aside.lnb .notice{display:flex;align-items:center;gap:10px;height:42px;padding:0 14px;border-radius:10px;font-size:14.5px;font-weight:600;color:var(--sub);margin-bottom:6px;transition:background .15s,color .15s}
/* 아이콘은 mask + currentColor → 호버·현재 상태 때 글자색(남색)을 따라감 */
aside.lnb .notice::before{content:"";width:16px;height:16px;flex:none;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 3v5h5M9 13h6M9 17h4'/%3E%3C/svg%3E") no-repeat center/contain;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 3v5h5M9 13h6M9 17h4'/%3E%3C/svg%3E") no-repeat center/contain}
/* 호버: 연한 남색 바탕 + 남색 글자 (예전 연회색 #f6f8fb 은 흰 바탕과 거의 구분이 안 됐음) */
aside.lnb .notice:hover{background:var(--primary-50);color:var(--primary)}
aside.lnb .notice.on{background:var(--primary-50);color:var(--primary)}
aside.lnb .steps{list-style:none;margin:0;padding:0}
aside.lnb .steps li{position:relative}
aside.lnb .steps li:not(:last-child)::before{content:"";position:absolute;left:26px;top:42px;bottom:-10px;width:2px;background:var(--line)}
aside.lnb .steps a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;transition:background .15s}
aside.lnb .steps a:hover{background:var(--primary-50)}
aside.lnb .steps .dot{position:relative;z-index:1;width:30px;height:30px;border-radius:50%;flex:none;display:grid;place-items:center;font-size:13px;font-weight:700;border:2px solid var(--line-2);background:#fff;color:var(--faint)}
aside.lnb .steps .tx{min-width:0;flex:1}
aside.lnb .steps .tx b{display:block;font-size:15px;font-weight:600;color:var(--text);line-height:1.35}
aside.lnb .steps .tx small{display:block;font-size:12.5px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
aside.lnb .steps a.on{background:var(--primary-50)}
aside.lnb .steps a.on .dot{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 0 0 4px var(--primary-100)}
aside.lnb .steps a.on .tx b{color:var(--primary);font-weight:700}
/* 호버(현재 단계 아님): 번호 테두리·숫자·단계명이 남색으로 — 현재 단계(남색으로 꽉 찬 원)와는 구분됨.
   현재 단계 위에 올리면 바탕만 한 톤 진하게. 키보드 이동 때는 테두리 표시 */
aside.lnb .steps .dot{transition:border-color .15s,color .15s}
aside.lnb .steps .tx b{transition:color .15s}
aside.lnb .steps a:not(.on):hover .dot{border-color:var(--primary);color:var(--primary)}
aside.lnb .steps a:hover .tx b{color:var(--primary)}
aside.lnb .steps a.on:hover{background:var(--primary-100)}
aside.lnb .steps a:focus-visible,aside.lnb .notice:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}
aside.lnb .helpbox{margin:14px 4px 0;font-size:13px;color:var(--faint)}
/* 데스크톱: 메뉴 토글 숨김(메뉴 항상 펼침) */
.lnb-chk,.lnb-toggle{display:none}

/* ── 페이지 제목 ── */
main.content .eyebrow{display:inline-block;font-size:12.5px;font-weight:700;color:var(--primary);letter-spacing:.03em;margin-bottom:8px;padding:3px 10px;border-radius:999px;background:var(--primary-100)}
.ptitle{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:24px}
.ptitle h1{margin:0;font-size:26px;line-height:1.3;font-weight:800;color:var(--text);letter-spacing:-.03em}
.ptitle .step{margin-left:auto;font-size:12px;color:var(--sub);background:var(--soft);border:1px solid var(--line);padding:4px 10px;border-radius:999px}
.desc{font-size:14px;color:var(--sub);margin:0 0 16px}
.desc b{color:var(--req)}

/* ── 버튼 ── */
.btn-save{height:44px;padding:0 20px;border:1px solid var(--primary);border-radius:8px;background:var(--primary);color:#fff;font-family:inherit;font-size:15px;font-weight:700;letter-spacing:-.01em;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;vertical-align:middle;white-space:nowrap;transition:background .15s}
.btn-save:hover{background:var(--primary-h);border-color:var(--primary-h)}
.btn-line{height:44px;padding:0 18px;border:1px solid var(--line-2);border-radius:8px;background:#fff;color:var(--text);font-family:inherit;font-size:15px;font-weight:600;letter-spacing:-.01em;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;vertical-align:middle;white-space:nowrap;transition:background .15s,border-color .15s}
.btn-line:hover{background:var(--soft);border-color:#b8c2cf;color:var(--text)}
.btn-prev{height:44px;padding:0 18px;background:#fff;border:1px solid var(--line-2);border-radius:8px;color:var(--sub);font-size:15px;font-weight:600;cursor:pointer;font-family:inherit}
.btn-s{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border:1px solid var(--line-2);border-radius:8px;background:#fff;color:var(--primary);font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;vertical-align:middle}
.btn-s:hover{border-color:var(--primary);background:var(--primary-50)}

/* 하단 고정 버튼줄 (각 페이지 하단 버튼 div 에 class="actbar") */
main.content .actbar{position:sticky;bottom:0;z-index:15;display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:28px!important;padding:14px 0 18px;text-align:left!important;background:linear-gradient(to bottom,rgba(255,255,255,.85),#fff 35%);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-top:1px solid var(--line)}
/* 이전 버튼: 모든 페이지에서 테두리 있는 보조버튼으로 통일, 왼쪽 정렬 */
main.content .actbar > a.btn-line:first-child{margin-right:auto}

/* ── 공용 섹션/폼 (기존 템플릿 클래스 유지) ── */
.sec{background:#fff;border:1px solid var(--line);border-radius:14px;margin-bottom:20px;overflow:hidden}
.sec > .h{background:#fff;border-bottom:1px solid var(--line);padding:16px 20px;font-size:17px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:8px}
.sec > .h .bar{width:4px;height:16px;border-radius:2px;background:var(--primary)}
table.form{width:100%;border-collapse:collapse;table-layout:fixed}
table.form th{width:130px;background:var(--soft);border:1px solid var(--line);text-align:left;padding:12px 14px;font-size:14px;font-weight:600;color:var(--sub);vertical-align:middle}
table.form td{border:1px solid var(--line);padding:10px 14px;vertical-align:middle}
table.form td.th-cell{background:var(--soft);text-align:center;font-weight:600;color:var(--sub);font-size:14px}
table.form textarea{width:100%;min-height:150px;padding:12px;font-size:14.5px;font-family:inherit;color:var(--text);border:1px solid var(--line-2);border-radius:8px;resize:vertical;outline:none;line-height:1.6}
table.form textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(0,55,116,.13)}
table.form input[type="checkbox"]{vertical-align:middle;margin:0 4px}
.reqd{color:var(--req);font-weight:700;margin-left:3px}
input.f,select.f{height:40px;padding:0 12px;font-size:14.5px;font-family:inherit;color:var(--text);border:1px solid var(--line-2);border-radius:8px;background:#fff;outline:none;max-width:100%}
input.f:focus,select.f:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(0,55,116,.13)}
input.f:disabled,select.f:disabled{background:var(--soft);color:#9aa3af}
input.w-s{width:120px} input.w-m{width:200px} input.w-l{width:100%}
.help{font-size:13px;color:var(--faint);margin-left:7px}
.ro{display:inline-block;background:var(--soft);border:1px solid var(--line);border-radius:8px;padding:7px 12px;font-weight:600;color:var(--sub)}
.gap{display:inline-block;width:14px}
.inline-f{display:inline-flex;align-items:center;gap:8px;margin:5px 26px 5px 0;font-size:14px;color:var(--sub);white-space:nowrap}
.photo-cell{text-align:center;padding:14px 10px}
.photo-fr{border:1px solid var(--line);background:#fafbfc;display:inline-block}
.warn-txt{color:var(--req);font-weight:700}
.actions{display:flex;gap:10px;justify-content:flex-end;align-items:center;padding-top:6px;flex-wrap:wrap}
.actions .w{margin-right:auto;font-size:13px;color:var(--req)}

/* ── 푸터 ── */
footer.gov{background:var(--foot);margin-top:56px;flex-shrink:0;color:#b4c2d6}
footer.gov .in{max-width:1360px;margin:0 auto;padding:30px 32px 34px;display:flex;align-items:center;gap:24px;flex-wrap:wrap}
footer.gov .f-logo{display:block;height:34px;width:auto;filter:brightness(0) invert(1);opacity:.75}
footer.gov .f-info{margin-left:auto;text-align:right;font-size:13px;line-height:1.75}
footer.gov .f-info p{margin:0}
footer.gov .f-info b{color:#fff;font-weight:600}
footer.gov .f-copy{color:#7d90ab;font-size:12px;margin-top:4px!important;letter-spacing:.02em}


/* 등록 리스트 테이블 (공통) */
table.listtbl{width:100%;border-collapse:separate;border-spacing:0;margin-top:4px;border:1px solid var(--line);border-radius:12px;overflow:hidden}
/* border:0 먼저 → 옛 마크업 border="1" 속성의 브라우저 기본(진회색 inset) 칸선 제거, 옅은 행 구분선만 */
table.listtbl th{border:0;background:var(--soft);color:var(--sub);font-size:13px;font-weight:600;padding:11px 8px;border-bottom:1px solid var(--line);text-align:center;white-space:nowrap}
table.listtbl td{border:0;border-bottom:1px solid var(--line);padding:11px 8px;font-size:14px;text-align:center;color:var(--text);vertical-align:middle}
table.listtbl tr:last-child td{border-bottom:0}
table.listtbl td form{margin:0}
table.listtbl input[type="submit"]{height:32px;padding:0 12px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;border:1px solid var(--line-2);background:#fff;color:var(--primary);border-radius:7px}
table.listtbl input[type="submit"]:hover{border-color:var(--primary);background:var(--primary-50)}
.datehint{font-size:13px;color:var(--req);margin:10px 2px 14px;font-weight:600}
.list-title{font-size:16px;font-weight:700;color:var(--text);margin:24px 0 10px;display:flex;align-items:center;gap:8px}
.list-title .bar{width:4px;height:16px;border-radius:2px;background:var(--primary)}

/* ── 로그인 ── */
.login-split{width:100%;max-width:920px;min-height:570px;margin:24px auto 0;display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:var(--sh-2);background:#fff}   /* 570: 지원서 로그인 내용 높이(567) 기준 — 합격자 조회·모집기간 아님·결과도 같은 크기 */
.login-aside{position:relative;overflow:hidden;background:var(--primary);color:#dbe6f4;padding:44px 40px;display:flex;flex-direction:column;min-height:440px}  /* 강사채용과 동일(440). 합격자 조회·결과 카드 높이는 아래 .login-split.rs-split(720) 이 맞춤 */
/* 장식: 큰 윤곽 글자 "KSU" — 패널 오른쪽으로 잘려 나가게 배치(글꼴 렌더링이라 어떤 해상도에서도 선명)
   ※ 학교 엠블럼 워터마크는 원본(약 50px)이 작아 확대 시 깨져서 사용 안 함 */
.login-aside::after{content:"KSU";position:absolute;right:-30px;bottom:100px;font-family:var(--font);font-size:250px;font-weight:900;line-height:.8;letter-spacing:-.05em;white-space:nowrap;color:rgba(255,255,255,.035);-webkit-text-stroke:1.5px rgba(255,255,255,.2);pointer-events:none;z-index:0}
.login-aside > *{position:relative;z-index:1}
.login-aside .eyebrow,main.content .login-aside .eyebrow{display:inline-block;align-self:flex-start;font-size:13px;font-weight:700;color:#dbe6f4;background:rgba(255,255,255,.12);padding:3px 10px;border-radius:999px;letter-spacing:.02em;margin-bottom:10px}
.login-aside h2{margin:0;color:#fff;font-size:30px;line-height:1.3;letter-spacing:-.03em}
.login-aside > p{margin:10px 0 0;font-size:15px}
.login-aside .sched{margin:auto 0 0;padding-top:36px}
.login-aside .sched div{display:flex;gap:14px;padding:11px 0;border-top:1px solid rgba(255,255,255,.14);font-size:14px}
.login-aside .sched dt{width:70px;flex:none;color:#9fbde3}
.login-aside .sched dd{margin:0;color:#fff;font-weight:500}
.login-form{padding:44px 40px;display:flex;flex-direction:column;gap:16px}
.login-form .logo-img{display:block;height:40px;width:auto;align-self:flex-start;margin-bottom:6px}
.login-form h1{margin:0;font-size:24px;letter-spacing:-.03em}
.login-form .sub{margin:-8px 0 4px;color:var(--sub);font-size:14.5px;word-break:keep-all}
.login-form .sub b{color:var(--text)}
.login-form form{display:flex;flex-direction:column;gap:16px;margin:0}
.login-field label{display:block;font-size:14px;font-weight:600;color:var(--text);margin-bottom:7px}
.login-input{width:100%;height:48px;padding:0 14px;font-size:15px;font-family:inherit;color:var(--text);border:1px solid var(--line-2);border-radius:8px;outline:none;background:#fff}
.login-input:hover{border-color:#b8c2cf}
.login-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(0,55,116,.13)}
.login-btn{width:100%;height:50px;font-size:16px}
.login-links{display:flex;justify-content:center;flex-wrap:wrap;gap:6px 16px;font-size:14px}
.login-links a{color:var(--sub)}
.login-links a:hover{color:var(--primary)}
/* 로그인 불가 상태(모집 없음/접수 전/마감) 안내 — 로그인 폼 대신 표시 */
.login-closed{margin:4px 0 0;padding:24px 22px;border-radius:12px;background:var(--soft);border:1px solid var(--line);text-align:center}
.login-closed strong{display:block;font-size:18px;color:var(--text);margin-bottom:8px;letter-spacing:-.02em}
.login-closed p{margin:0 0 18px;font-size:14.5px;color:var(--sub);line-height:1.6}
.login-lockinfo{margin:-6px 0 0;font-size:13px;color:var(--faint);text-align:center;line-height:1.55;word-break:keep-all;text-wrap:balance}   /* 로그인 5회 실패 잠금 안내(홈페이지와 같은 규칙) */
.login-note{margin:4px 0 0;padding:12px 14px;border-radius:10px;background:var(--warn-50);font-size:13.5px;color:var(--text);line-height:1.6}
/* (구) 로그인 카드 — 다른 페이지에서 쓸 수 있어 유지 */
.login-wrap{display:flex;justify-content:center;padding:40px 0 60px}
.login-card{width:100%;max-width:400px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:32px 30px}

/* ===================================================================
   [직원채용 전용] 서류심사 합격자 조회 (stafappl2020/staff_recruit.jsp · staff_result.jsp)
   - 지원 로그인과 같은 .login-split 카드. 왼쪽 남색 면에 학교 배너 이미지(img/vis_txt.png)를 그대로 사용
   - 결과 조각(pass/failure/others.jsp)은 회차마다 담당자가 고치는 원문 → 옛 클래스(c-tit01·c-list01 등)를 .rs-result 범위에서만 v2 톤으로
   =================================================================== */
/* 카드 폭·칸 비율·높이 모두 지원서 로그인과 동일(2026-10-07 사용자 요청 — 강사채용의 720px 대신 우리 로그인 크기).
   높이는 위 .login-split 의 min-height(570) 로 네 화면(로그인·조회·기간아님·결과) 통일. 결과 안내가 길면(합격 시험 안내 등) 그만큼 늘어남 */
/* 로그인 실패 안내(지원서 로그인·합격자 조회): 알림창 대신 폼 위 빨간 안내 — 강사채용과 동일 */
.rs-err{padding:12px 14px;border-radius:10px;background:var(--danger-50);border:1px solid #f3cbc7;color:var(--danger);font-size:14px;font-weight:600;line-height:1.6;word-break:keep-all}
.login-aside.rs-aside{background:linear-gradient(135deg,#003774 0%,#0a4f95 100%)}
.login-aside.rs-aside::before{content:"";position:absolute;left:-150px;top:-150px;width:420px;height:420px;border-radius:50%;background:rgba(255,255,255,.07);pointer-events:none;z-index:0}
.rs-aside .rs-banner{display:block;width:100%;max-width:300px;height:auto;margin:2px 0 24px}
/* 배너 있는 왼쪽 면(지원 로그인·합격자 조회·모집기간 아님): KSU 윤곽 글자를 작고 흐리게 — 배너·제목과 함께 있으면 정신없어 보여서 */
.login-aside.rs-aside::after{font-size:170px;right:-20px;bottom:96px;-webkit-text-stroke:1.5px rgba(255,255,255,.13);color:rgba(255,255,255,.025)}
.rs-aside .sched dd{word-break:keep-all}
/* 조회기간 아님 */
.rs-closed{margin:4px 0 0;padding:26px 22px;border-radius:12px;background:var(--soft);border:1px solid var(--line);text-align:center}
.rs-closed .ill{width:189px;height:143px;margin:0 auto 12px;background:url(../img/msg_spr.png) no-repeat 0 -285px/189px auto}
.rs-closed strong{display:block;font-size:18px;color:var(--text);margin-bottom:8px;letter-spacing:-.02em}
.rs-closed p{margin:0 0 18px;font-size:14.5px;color:var(--sub);line-height:1.6}
/* 결과 박스(크게): 아이콘 + 큰 글씨 결과 + 한 줄 설명 */
.rs-verdict{display:flex;align-items:center;gap:16px;padding:22px 22px;border-radius:14px;border:1px solid}
.rs-verdict .ic{width:56px;height:56px;border-radius:50%;flex:none;display:grid;place-items:center;background:#fff;box-shadow:0 2px 8px rgba(16,24,40,.06)}
.rs-verdict .ic::before{content:"";width:30px;height:30px;background:currentColor;-webkit-mask:var(--ic) no-repeat center/contain;mask:var(--ic) no-repeat center/contain}
.rs-verdict .tx{min-width:0}
.rs-verdict .big{display:block;font-size:26px;font-weight:800;letter-spacing:-.03em;line-height:1.25}
.rs-verdict .sub,.rs-verdict .c-tit01 .tit03{display:block;margin:6px 0 0;font-size:15px;font-weight:500;color:var(--sub);line-height:1.6;word-break:keep-all}
.rs-verdict .c-tit01{margin:0}
.rs-verdict .c-tit01 .tit01,.rs-verdict .c-tit01 br{display:none}   /* 조각 첫 줄(죄송합니다 / ○○님은 조회대상이 아닙니다)은 큰 글씨와 겹쳐 숨김 */
.rs-verdict.ok{background:var(--ok-50);border-color:#bfe3d2;color:var(--ok);--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7'/%3E%3C/svg%3E")}
.rs-verdict.no{background:var(--soft);border-color:var(--line);color:var(--sub);--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='6' y='4' width='12' height='17' rx='2'/%3E%3Cpath d='M9 4V3h6v1M9 10h6M9 14h6M9 18h3'/%3E%3C/svg%3E")}
.rs-verdict.info{background:var(--primary-50);border-color:var(--primary-100);color:var(--primary);--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M12 10.5v7M12 6.5h.01'/%3E%3C/svg%3E")}
.rs-verdict.ok .big{color:var(--ok)} .rs-verdict.no .big{color:var(--text)} .rs-verdict.info .big{color:var(--primary)}
/* 합격 상세(pass.jsp): 첫 줄 "서류심사 결과 : 이름(생일) 합격"은 결과 박스와 겹쳐 숨김 */
.rs-result > .c-tit01:first-child{display:none}
.rs-result > .c-tit02:first-of-type{margin-top:4px}
/* 결과 조각 원문 클래스 → v2 톤 */
.rs-result{font-size:15px;color:var(--text);line-height:1.65}
.rs-result .c-tit01{margin:0 0 6px}
.rs-result .c-tit01 .tit01{display:block;font-size:20px;font-weight:800;line-height:1.45;letter-spacing:-.03em;color:var(--text)}
.rs-result .c-tit01 .tit03{display:block;margin-top:8px;font-size:15px;color:var(--sub);line-height:1.65}
.rs-result .c-tit02{display:flex;align-items:center;gap:9px;margin:24px 0 10px;font-size:16px;font-weight:700;color:var(--text)}
.rs-result .c-tit02::before{content:"";width:4px;height:16px;border-radius:2px;background:var(--primary);flex:none}
.rs-result .c-tit02 .tit01{font:inherit}
.rs-result .c-list01{list-style:none;margin:0;padding:14px 18px;background:var(--soft);border:1px solid var(--line);border-radius:12px}
.rs-result .c-list01 > li{position:relative;margin:5px 0;padding-left:13px;font-size:14.5px;line-height:1.65}
.rs-result .c-list01 > li::before{content:"";position:absolute;left:0;top:.72em;width:5px;height:5px;border-radius:50%;background:var(--primary)}
.rs-result .c-list01 ul{margin:4px 0 2px;padding-left:18px;list-style:disc;color:var(--sub)}
.rs-result .c-list01 ul li{margin:2px 0}
.rs-result .info-ex03{margin:12px 0 0;padding:11px 14px;border-radius:10px;background:var(--notice-50);border:1px solid var(--notice-line);color:var(--notice-text)!important;font-size:14px;font-weight:600;line-height:1.6}
.rs-result .sgap{height:4px}
.rs-result [style*="#ff0000"],.rs-result [style*="#FF0000"]{color:var(--req)!important}
.rs-result [style*="#0f3795"]{color:var(--primary)!important}
.rs-result .cp-btn{display:inline-flex;align-items:center;gap:7px;height:40px;padding:0 16px;border:1px solid var(--line-2);border-radius:8px;background:#fff;color:var(--primary);font-size:14px;font-weight:600}
.rs-result .cp-btn:hover{background:var(--primary-50);border-color:var(--primary-200)}
.rs-result .cp-btn::before{content:"";width:16px;height:16px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5A7 7 0 0 1 19 9.5C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E") no-repeat center/contain;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5A7 7 0 0 1 19 9.5C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E") no-repeat center/contain}
.rs-result .cont-qabox{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;margin-top:24px;padding:12px 16px;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:14px}
.rs-result .cont-qabox .tit{margin:0;font-size:14px;font-weight:700;color:var(--primary)}
.rs-result .cont-qabox .info-sec .name{font-weight:600;color:var(--text);margin-right:8px}
.rs-result .cont-qabox .info-sec .stxt{color:var(--sub)}
.rs-next{margin:-2px 0 0;font-size:14.5px;color:var(--sub);line-height:1.7;word-break:keep-all}   /* 불합격·지원내역 없음일 때 결과 박스 아래 안내 */
.rs-next b{color:var(--text)}
.rs-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px;padding-top:18px;border-top:1px solid var(--line)}
@media(max-width:880px){.login-aside.rs-aside::after{top:auto;bottom:18px;font-size:120px}   /* 모바일: KSU 글자가 위쪽 배너와 겹치지 않게 아래로 */
  .rs-aside .rs-banner{max-width:240px;margin-bottom:18px}.rs-verdict{padding:18px 16px;gap:12px}.rs-verdict .ic{width:46px;height:46px}.rs-verdict .big{font-size:22px}}

/* 레거시 콘텐츠(초빙공고 DB HTML, 접수안내 pr.html)를 담는 본문 래퍼 */
.cont-body{padding:22px;overflow-x:auto;font-size:14.5px;line-height:1.6;color:var(--text)}
.cont-body img{max-width:100%;height:auto}
.cont-body table{max-width:100%}

/* 초빙공고(CMS HTML) 후처리 — 원문은 그대로 두고 보기 좋게 정규화 */
.notice-body{padding:18px 24px;font-size:14px;line-height:1.5;color:#3a3f48;overflow-wrap:break-word;word-break:break-word}
.notice-body, .notice-body p, .notice-body span, .notice-body div, .notice-body td, .notice-body th, .notice-body li, .notice-body a, .notice-body b, .notice-body font{font-family:var(--font) !important; letter-spacing:-0.2px !important}
.notice-body p{margin:5px 0}
.notice-body img{max-width:100%;height:auto}
.notice-body a{color:var(--accent);text-decoration:none}
.notice-body a:hover{text-decoration:underline}
.notice-body h1,.notice-body h2,.notice-body h3,.notice-body h4{color:var(--navy);line-height:1.35;margin:14px 0 7px}
.notice-body table{border-collapse:collapse;border-spacing:0;max-width:100%;margin:12px 0}
.notice-body table td,.notice-body table th{border:1px solid var(--line);padding:7px 10px;vertical-align:middle}
.notice-body table th{background:var(--label-bg);color:#2b3442;font-weight:700}
.notice-body hr{border:0;border-top:1px solid var(--line);margin:14px 0}
.notice-body ul,.notice-body ol{padding-left:22px;margin:7px 0}
.notice-body li{margin:3px 0}
.notice-body{text-align:left}
.notice-body center{display:block;text-align:left !important}
/* ▼ 공고 본문 표 — 원본 CSS(style.default.css·common.css) 그대로 이식. 실제 콘텐츠 클래스는 tbl-type01 / edit-tbl01 */
.notice-body table.tbl-type01{border-collapse:collapse;border-spacing:0;width:100%;border:1px solid #bfbfbf;border-top:2px solid #4f4f51}
.notice-body table.tbl-type01 th{background:#f5f5f5;padding:10px;text-align:center;line-height:110%;border:1px solid #dadada;color:#2b3442;font-weight:700}
.notice-body table.tbl-type01 td{padding:10px;text-align:center;border:1px solid #dadada}
.notice-body table.edit-tbl01{border-collapse:collapse;border-spacing:0;empty-cells:show;width:100%}
.notice-body table.edit-tbl01 td,.notice-body table.edit-tbl01 th{border:1px solid #ccc;padding:5px}
.notice-body table table{width:auto}
.notice-body .tscroll{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
.notice-body .thint{display:block;font-size:11.5px;font-weight:700;color:var(--navy);background:#eef2f7;border:1px solid var(--line);border-radius:4px;padding:6px 10px;margin:12px 0 0}
.notice-body .thint::selection{background:transparent}

/* ▼ 직원채용 공고문(stafappl1/first_guide.html) v2 톤 — 매 회차 담당자가 고치는 원문이라 마크업·내용은 그대로, 보이는 모양만.
   원문 표는 cellspacing=1 + 회색 배경(#a0a0a0)으로 칸선을 흉내 낸 옛 방식 → 입력표·목록표와 같은 둥근 카드 표로 */
.notice-body table[cellspacing]{border-collapse:separate!important;border-spacing:0!important;background:#fff!important;border:1px solid var(--line)!important;border-radius:12px;overflow:hidden;margin:10px 0 8px}
.notice-body table[cellspacing] th,.notice-body table[cellspacing] td{border:0!important;border-top:1px solid var(--line)!important;border-left:1px solid var(--line)!important;padding:11px 12px!important;line-height:1.6;vertical-align:middle}
.notice-body table[cellspacing] > thead:first-of-type > tr:first-child > *,
.notice-body table[cellspacing] > tbody:first-of-type > tr:first-child > *{border-top:0!important}
.notice-body table[cellspacing] > thead + tbody:first-of-type > tr:first-child > *{border-top:1px solid var(--line)!important}
.notice-body table[cellspacing] tr > *:first-child{border-left:0!important}
.notice-body table[cellspacing] [rowspan]{border-right:1px solid var(--line)!important}
.notice-body table[cellspacing] [rowspan] + *{border-left:0!important}
.notice-body table[cellspacing] [rowspan]:last-child{border-right:0!important}
.notice-body .fgTT{background:var(--soft)!important;color:var(--sub)!important;font-size:13.5px!important;font-weight:600!important;height:auto!important;letter-spacing:-.01em}
.notice-body .fgTB1,.notice-body .fgTB12,.notice-body .fgTB2,.notice-body .fgTB2L,.notice-body .fgTB3{font-size:14px!important;color:var(--text)!important}
.notice-body table[cellspacing] ul{margin:0;padding-left:18px}
.notice-body table[cellspacing] li{margin:2px 0}
/* 섹션 제목: 남색 막대 + 굵은 글씨 (첫 줄 가운데 정렬 문구는 연한 남색 띠) */
.notice-body .fgTitle{font-size:16.5px!important;font-weight:700;color:var(--text);letter-spacing:-.02em;margin:30px 0 12px;display:flex;align-items:center;gap:9px}
.notice-body .fgTitle::before{content:"";width:4px;height:16px;border-radius:2px;background:var(--primary);flex:none}
.notice-body .fgTitle[align]{justify-content:center;text-align:center;font-size:18px!important;color:var(--primary);margin:4px 0 22px;padding:16px 14px;background:var(--primary-50);border-radius:12px}
.notice-body .fgTitle[align]::before{display:none}
.notice-body .fbBodyT{margin:6px 0 0 4px;color:var(--text);line-height:1.75}
/* 순수 빨강/파랑 → 사이트 색. 문단 단위 빨강 강조는 유의사항과 같은 검은 원 "!" 경고 문구(상자 없음) */
.notice-body .bright1{color:var(--req)!important}
.notice-body .bright2{color:var(--accent)!important}
.notice-body div.bright1{position:relative;margin:18px 0 4px;padding:1px 0 0 38px;color:var(--notice-text)!important;line-height:1.7}
.notice-body div.bright1::before{position:absolute;left:0;top:0}
.notice-body div.bright1 u{text-decoration:none}
.notice-body div.bright1 a{color:inherit;text-decoration:underline}

/* ===================================================================
   레거시 지원서 입력 폼 호환 (legacy-form 래퍼용, 기존 유지)
   =================================================================== */
.legacy-form{font-size:14px;color:var(--text);line-height:1.6;padding:0;margin-bottom:8px}
.legacy-form > .ptitle:first-child{margin-top:0}
.legacy-form table[border]:not(.listtbl),.legacy-form > table:not(.listtbl){border-collapse:separate;border-spacing:0;width:100%;max-width:100%;border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:10px 0 18px;background:#fff;box-shadow:var(--sh-1)}
.legacy-form td input[type=text],.legacy-form td input[type=password],.legacy-form td input[type=email],.legacy-form td input[type=tel],.legacy-form td select{margin:3px 7px 3px 3px}
.legacy-form td input[type=file]{margin:6px 0 4px;display:inline-block}
.legacy-form td{line-height:2}
.legacy-form table.listtbl td,.legacy-form table.listtbl th{text-align:center!important;vertical-align:middle}
/* 유의사항(staff_guide_0X·input0~4): 상자·바탕색 없이 빨간 원 "!" + 빨간 굵은 제목 (GOV.UK Warning text 방식), 아래 가는 줄로 입력 칸과 구분 */
.guide-box{margin:2px 0 20px;padding:0 0 18px;border-bottom:1px solid var(--line)}
.guide-box .gh{display:flex;align-items:center;gap:10px;margin:0 0 6px;font-size:15.5px;font-weight:700;color:var(--notice-text);letter-spacing:-.02em}
.guide-box .gh::before,.notice-body div.bright1::before,.legacy-form a[onclick*="staff_guide_input"]::before{content:"!";width:26px;height:26px;flex:none;border-radius:50%;background:var(--notice);color:#fff;display:grid;place-items:center;font-size:16px;font-weight:800;line-height:1;font-style:normal}
/* "※ 자료 입력시 주의사항[클릭]" 링크(<font color=blue>) → 쨍한 파랑 대신 테두리 버튼 + 빨간 "!" */
.legacy-form a[onclick*="staff_guide_input"]{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px 0 6px;border:1px solid var(--notice-line);border-radius:999px;background:#fff;color:var(--notice-text);font-size:14px;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s}
.legacy-form a[onclick*="staff_guide_input"]::before{width:24px;height:24px;font-size:14px}
.legacy-form a[onclick*="staff_guide_input"]:hover{background:var(--notice-50);border-color:#f5bfb2}
.legacy-form a[onclick*="staff_guide_input"]:focus-visible{outline:2px solid var(--notice);outline-offset:2px}
.legacy-form a[onclick*="staff_guide_input"] font{color:inherit!important;font-size:inherit!important}
.legacy-form a[onclick*="staff_guide_input"] b{font-weight:inherit}
.guide-box ul{margin:0;padding-left:36px;list-style:none}
.guide-box li{position:relative;margin:4px 0;line-height:1.65;color:var(--text)}
.guide-box li::before{content:"";position:absolute;left:-13px;top:.72em;width:4px;height:4px;border-radius:50%;background:var(--faint)}
.guide-box li b{font-weight:700}
.guide-box .sub{color:var(--faint);font-size:13px}
.legacy-form table[border]:not(.listtbl) td,.legacy-form table[border]:not(.listtbl) th{border:0;border-top:1px solid var(--line);border-left:1px solid var(--line);padding:12px 14px;font-size:14px;vertical-align:middle;line-height:1.55;width:auto;overflow-wrap:anywhere}
/* 패널 밖으로 터짐 방지: 입력표는 table-layout:fixed(위) + 옛 마크업 td width="100/275/650" 은 width:auto 로 무력화.
   → 첫 줄 기준으로 라벨칸 118px 고정, 입력칸은 남은 폭을 똑같이 나눔. 칸 폭이 확정되므로 입력요소(max-width:100%)가 칸에 맞춰 줄어듦.
   라벨은 단어 단위 줄바꿈 허용(자기소개서처럼 td3 에 긴 질문 문장이 들어간 1칸 표도 정상 줄바꿈) */
.legacy-form table[border]:not(.listtbl) td.td2,.legacy-form table[border]:not(.listtbl) td.td3{white-space:normal;word-break:keep-all;overflow-wrap:normal}
/* 고정 배분은 "첫 줄이 2칸 이상"인 입력표에만(인적·학력 4칸 / 경력·영어·자격증 2칸).
   자기소개서처럼 1칸 표는 버튼줄 colspan=2 가 만든 빈 2번째 칸이 폭을 가져가므로 auto 유지.
   (:has 미지원 브라우저는 이 줄만 무시되고 auto 레이아웃으로 표시) */
.legacy-form table[border]:not(.listtbl):has(> tbody:first-of-type > tr:first-child > :nth-child(2)){table-layout:fixed}
/* 라벨폭 118px 은 옆에 입력칸이 있는 라벨에만 — 한 줄을 혼자 차지하는 질문/안내 칸(td3)은 전체 폭 */
.legacy-form table[border]:not(.listtbl) td.td2:not(:only-child),.legacy-form table[border]:not(.listtbl) td.td3:not(:only-child){width:118px}
.legacy-form table[border]:not(.listtbl) td.td2:only-child,.legacy-form table[border]:not(.listtbl) td.td3:only-child{text-align:left;color:var(--text);padding:13px 16px}
.legacy-form td input:not([type=button]):not([type=submit]):not([type=reset]):not([type=checkbox]):not([type=radio]),.legacy-form td select{max-width:100%;min-width:0}
/* 크롬은 표 안 입력칸을 max-width 만으론 줄이지 않음(퍼센트 width 여야 줄어듦).
   size 큰 칸(주소 80·학교명 60·이메일 35 등)과 자기소개서 textarea 를 칸 폭 100% 로 → 패널 밖으로 안 밀림 */
.legacy-form td input[size="30"],.legacy-form td input[size="35"],.legacy-form td input[size="40"],.legacy-form td input[size="50"],
.legacy-form td input[size="60"],.legacy-form td input[size="70"],.legacy-form td input[size="80"],.legacy-form td input[size="100"]{width:100%}
.legacy-form td textarea{width:100%!important;min-width:0}
/* 자기소개서 입력란: 마크업 rows=60/40(약 1,000~1,400px) → 기본 320px. 오른쪽 아래 모서리를 끌면 늘어남(resize:vertical) */
.legacy-form td textarea[rows="60"],.legacy-form td textarea[rows="40"]{height:320px;min-height:160px;resize:vertical}
/* 입력목록표(학력 9칸 등): 헤더도 단어 단위 줄바꿈 허용 → 좁은 폭에서 패널 밖으로 안 밀림 */
.legacy-form table.listtbl th,.legacy-form table.listtbl td{white-space:normal;word-break:keep-all}
@media(max-width:1000px){.legacy-form table.listtbl td{word-break:normal}}  /* 아주 좁을 땐 단어 중간 줄바꿈 허용(넘침 방지 우선) */
/* 창이 좁을 때(좌측 메뉴는 남아 있는 폭): 칸 여백·라벨폭을 줄여 입력칸 확보 */
@media(max-width:1180px){
  .legacy-form table.listtbl th,.legacy-form table.listtbl td{padding:9px 5px;font-size:13px}
  .legacy-form table.listtbl input[type="submit"]{padding:0 8px}
  .legacy-form table[border]:not(.listtbl) td,.legacy-form table[border]:not(.listtbl) th{padding:10px 10px}
  .legacy-form table[border]:not(.listtbl) td.td2:not(:only-child),.legacy-form table[border]:not(.listtbl) td.td3:not(:only-child){width:100px}
}
.legacy-form table[border]:not(.listtbl) tr:first-child > *{border-top:0}
.legacy-form table[border]:not(.listtbl) tr > *:first-child{border-left:0}
.legacy-form table[border]:not(.listtbl) [rowspan]{border-left:1px solid var(--line)}
.legacy-form input:-webkit-autofill,.legacy-form input:-webkit-autofill:hover,.legacy-form input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 1000px #fff inset;box-shadow:0 0 0 1000px #fff inset;-webkit-text-fill-color:var(--text);caret-color:var(--text)}
.legacy-form td.td2,.legacy-form td.td3{background:var(--soft);text-align:center;font-weight:600;color:var(--sub);white-space:nowrap}
.legacy-form input[type=text],.legacy-form input[type=password],.legacy-form input[type=email],.legacy-form input[type=tel],.legacy-form input[type=number],.legacy-form select{height:40px;padding:0 10px;font-size:14.5px;font-family:inherit;color:var(--text);border:1px solid var(--line-2);border-radius:8px;background:#fff;outline:none;max-width:100%;vertical-align:middle}
.legacy-form textarea{width:100%;font-family:inherit;border:1px solid var(--line-2);border-radius:8px;padding:10px 12px;font-size:14.5px;outline:none;line-height:1.6;resize:vertical}
.legacy-form input:focus,.legacy-form select:focus,.legacy-form textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(0,55,116,.13)}
.legacy-form input[disabled],.legacy-form select[disabled]{background:var(--soft);color:#9aa3af}
.legacy-form input[type=file]{font-size:13px;max-width:100%}
.legacy-form input[type=button],.legacy-form input[type=submit],.legacy-form input[type=reset]{height:36px;padding:0 16px;border:1px solid var(--line-2);background:#fff;color:var(--primary);font-weight:600;cursor:pointer;border-radius:8px;font-family:inherit;width:auto;vertical-align:middle}
.legacy-form input[type=submit],.legacy-form input[value="저장"]{background:var(--primary);border-color:var(--primary);color:#fff}
.legacy-form input[type=button]:hover,.legacy-form input[type=submit]:hover{background:var(--primary-h);color:#fff;border-color:var(--primary-h)}
.legacy-form a{color:var(--accent)}
.legacy-form img{max-width:100%;height:auto}
/* 입력폼 하단 버튼줄(표 안 마지막 행) → v2 버튼 바 */
.legacy-form td.btnrow{border-top:1px solid var(--line-2);padding:16px 2px 8px;text-align:right}
.legacy-form td.btnrow font[color=red],.legacy-form td.btnrow .note{display:block;margin:0 0 12px;text-align:left;color:var(--req);font-size:13px;font-weight:600;line-height:1.5}
.legacy-form td.btnrow input[type=button],.legacy-form td.btnrow input[type=submit]{height:44px;min-width:92px;padding:0 22px;font-size:15px;font-weight:700;border-radius:8px;margin-left:10px;vertical-align:middle}


/* ===== 입력 편의 기능 (js/ux.js) ===== */
/* 자기소개서 글자 수 */
.legacy-form .ta-count{margin:6px 2px 0;text-align:right;font-size:13px;color:var(--faint);font-variant-numeric:tabular-nums}
/* 빠뜨린 항목: 알림창이 가리킨 칸에 빨간 테두리 + 칸 아래 빨간 글씨 (고치면 사라짐) */
.legacy-form .fld-err,.legacy-form .fld-err:focus{border-color:var(--danger)!important;box-shadow:0 0 0 3px rgba(207,58,47,.14)!important}
.legacy-form .fld-msg{display:block;margin:6px 2px 2px;color:var(--danger);font-size:13px;font-weight:600;line-height:1.5;word-break:keep-all}
/* 로그인 만료 안내 바 (화면 아래 가운데) */
.sess-bar{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:60;display:flex;align-items:center;gap:14px;max-width:calc(100% - 32px);padding:12px 14px 12px 18px;border-radius:12px;background:#fff;border:1px solid var(--line-2);box-shadow:var(--sh-2);font-size:14.5px;color:var(--text);line-height:1.5;word-break:keep-all}
.sess-bar b{color:var(--danger)}
.sess-bar.end{border-color:#f3cbc7;background:var(--danger-50)}
.sess-bar .btn-save,.sess-bar .btn-line{height:38px;flex:none;font-size:14px}
@media(max-width:600px){.sess-bar{flex-direction:column;align-items:stretch;text-align:center;bottom:12px}}

/* ===== 모바일 반응형 ===== */
@media(max-width:880px){
  header.main .in{padding:0 16px;height:58px;gap:8px}
  header.main .logo .sep,header.main .logo .nm,.hd-link .tx,.hd-link svg.ext,.hd-user .uid{display:none}   /* 헤더 버튼은 아이콘만(강사채용과 동일) */
  header.main .right{gap:6px}
  .hd-link{padding:0 9px}
  header.main .logo-img{height:30px}
  .hd-user{margin-left:0;padding-left:0;border-left:0}
  .wrap{flex-direction:column;padding:16px 16px 0;gap:16px}
  main.content{width:100%;max-width:100%;overflow-x:auto}

  /* 좌측 메뉴 → 진행률 카드 + 접이식 단계 목록 */
  aside.lnb{width:100%;position:static;max-height:none;overflow:visible;padding-bottom:0}
  .lnb-chk{position:absolute;opacity:0;width:1px;height:1px;overflow:hidden}
  .lnb-toggle{position:relative;display:flex;align-items:center;justify-content:center;gap:6px;height:36px;margin-top:12px;border:1px solid rgba(255,255,255,.35);border-radius:8px;font-size:14px;font-weight:600;color:#fff;cursor:pointer;user-select:none}
  main.content{padding:20px 16px 4px;border-radius:12px}
  .lnb-toggle::after{content:"▾";font-size:12px}
  .lnb-chk:checked ~ .prog .lnb-toggle::after{content:"▴"}
  aside.lnb .box{display:none}
  .lnb-chk:checked ~ .box{display:block}
  aside.lnb .helpbox{display:none}

  .ptitle{flex-wrap:wrap}
  .ptitle h1{font-size:21px}

  table.form th{width:88px;padding:9px 8px;font-size:13px}
  table.form td{padding:8px 8px;white-space:normal}
  input.w-m{width:100%} input.w-l{width:100%} input.w-s{width:110px}
  .inline-f{margin:5px 12px 5px 0}
  table.listtbl{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap}

  .notice-body,.cont-body{padding:14px}
  html,body{overflow-x:hidden}
  .notice-body table.tbl-type01{min-width:720px}

  /* 하단 버튼줄: 저장/다음 가로로 꽉, 이전은 아래 줄 */
  main.content .actbar{gap:8px}
  main.content .actbar .btn-save,main.content .actbar .btn-line{flex:1 1 auto}
  main.content .actbar > a.btn-line:first-child{flex-basis:100%;order:3;height:38px;margin-right:0}
  .actions{gap:8px}
  .actions .btn-save,.actions .btn-prev{flex:1 1 auto}
  .actions .w{flex-basis:100%;margin:0 0 4px}

  footer.gov{margin-top:36px}
  footer.gov .in{padding:22px 16px 26px;flex-direction:column;align-items:flex-start;gap:12px}
  footer.gov .f-info{margin-left:0;text-align:left;font-size:12.5px}

  .login-split{grid-template-columns:minmax(0,1fr);margin-top:8px}
  .login-aside{padding:28px 24px;min-height:0}
  .login-split,.login-split.rs-split{min-height:0}
  .login-aside .sched{padding-top:20px}
  .login-aside::after{font-size:150px;right:-18px;bottom:auto;top:24px}
  .login-form{padding:28px 24px}
}
@media(max-width:700px){
  table.form{display:block;width:100%;table-layout:auto;border:1px solid var(--line);border-top:0}
  table.form colgroup{display:none}
  table.form tbody,table.form tr{display:block;width:100%}
  table.form th,table.form td,table.form td.th-cell{display:block;width:auto;border:0;border-top:1px solid var(--line)}
  table.form th{background:var(--soft);text-align:left;padding:8px 12px;font-size:13px;font-weight:600;color:var(--sub)}
  table.form td,table.form td.th-cell{text-align:left;padding:10px 12px}
  table.form input.f,table.form select.f{width:100%;max-width:100%}
  table.form input.w-s{width:46%;max-width:160px;display:inline-block}
  table.form input[type="checkbox"]{width:auto}
  /* 지원서 입력표(휴대폰): 옆으로 밀며 입력하던 것(min-width 680 + 가로 스크롤) → 칸을 한 줄씩 세로로 쌓기
     라벨(td2/td3)은 위에 회색 띠, 입력칸은 그 아래 전체 폭. 목록표(listtbl)는 지금처럼 표 자체만 가로로 넘김 */
  .legacy-form table[border]:not(.listtbl){display:block;width:100%!important;min-width:0;table-layout:auto!important}
  .legacy-form table[border]:not(.listtbl) > tbody,
  .legacy-form table[border]:not(.listtbl) > tbody > tr{display:block;width:100%}
  .legacy-form table[border]:not(.listtbl) > tbody > tr > td,
  .legacy-form table[border]:not(.listtbl) > tbody > tr > th{display:block;width:auto!important;border-left:0!important;border-top:1px solid var(--line)}
  .legacy-form table[border]:not(.listtbl) > tbody > tr:first-child > *:first-child{border-top:0}
  .legacy-form table[border]:not(.listtbl) td.td2,.legacy-form table[border]:not(.listtbl) td.td3{text-align:left!important;padding:9px 14px;white-space:normal}
  /* 버튼줄: 이전·저장·다음을 한 줄에 같은 폭으로 (옛 마크업의 &nbsp; 간격은 font-size:0 으로 숨김) */
  .legacy-form table[border]:not(.listtbl) td.btnrow{display:flex!important;flex-wrap:wrap;align-items:center;gap:8px;padding:14px 0 6px;font-size:0}
  .legacy-form table[border]:not(.listtbl) td.btnrow > br{display:none}
  .legacy-form table[border]:not(.listtbl) td.btnrow > :not(input){flex:1 1 100%;font-size:13px}   /* 버튼줄 안 안내 글(있으면)은 한 줄 통째로, 버튼은 다음 줄에 */
  .legacy-form table[border]:not(.listtbl) td.btnrow input[type=button],.legacy-form table[border]:not(.listtbl) td.btnrow input[type=submit]{flex:1 1 0;min-width:0;margin:0!important;padding:0 8px;font-size:15px}

  /* 등록 목록표: 한 건씩 카드로 — "칸 이름 : 값" 한 줄씩(칸 이름은 js/ux.js 가 첫 줄에서 읽어 data-label 로 붙임), 수정·삭제는 카드 아래 버튼 */
  .legacy-form table.listtbl{display:block;min-width:0;border:0;border-radius:0;background:none;box-shadow:none;overflow:visible;white-space:normal}
  .legacy-form table.listtbl > tbody{display:block}
  .legacy-form table.listtbl tr.lt-head{display:none}
  .legacy-form table.listtbl > tbody > tr:not(.lt-head){display:block;margin:0 0 10px;padding:6px 14px 12px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--sh-1)}
  .legacy-form table.listtbl > tbody > tr > td{display:block;position:relative;width:auto!important;padding:8px 0 8px 92px!important;border:0!important;border-bottom:1px solid var(--line)!important;text-align:left!important;font-size:14.5px;line-height:1.55;white-space:normal;word-break:keep-all;overflow-wrap:anywhere}
  .legacy-form table.listtbl > tbody > tr > td::before{content:attr(data-label);position:absolute;left:0;top:8px;width:84px;font-size:13px;font-weight:600;color:var(--sub);line-height:1.6}
  .legacy-form table.listtbl > tbody > tr > td.lt-act{display:inline-block;padding:12px 8px 0 0!important;border-bottom:0!important}
  .legacy-form table.listtbl > tbody > tr > td.lt-act::before{content:none}
  .legacy-form table.listtbl > tbody > tr > td.lt-act form{display:inline;margin:0}
  .legacy-form table.listtbl > tbody > tr > td.lt-act input[type=submit],.legacy-form table.listtbl > tbody > tr > td.lt-act input[type=button]{height:38px;padding:0 18px;font-size:14px}
  .legacy-form table.listtbl > tbody > tr > td.lt-full{padding:10px 0!important;text-align:center!important;border-bottom:0!important}
  .legacy-form table.listtbl > tbody > tr > td.lt-full::before{content:none}
  .legacy-form table.listtbl > tbody > tr > td.lt-empty{display:none}
}
/* 태블릿 폭(701~880px): 목록표는 칸을 한 글자씩 쪼개지 말고 한 줄로 두고 표 안에서 옆으로 넘김 */
@media(min-width:701px) and (max-width:880px){
  .legacy-form table.listtbl th,.legacy-form table.listtbl td{white-space:nowrap;word-break:keep-all}
}
@media(max-width:520px){
  body{font-size:14.5px}
  .ptitle h1{font-size:19px}
}


/* ===== 인쇄 (주로 8단계 지원서 보기) — 지원서 내용만, 서류처럼 촘촘하게 =====
   - @page margin:0 → 브라우저가 여백에 찍는 머리글/바닥글(날짜·주소·쪽번호)이 나오지 않음
   - 대신 본문 안쪽 여백을 매 쪽마다 반복(box-decoration-break:clone)해서 여백 확보
   - 표 전체가 아니라 '행' 단위로만 쪽 넘김 방지 → 1쪽에 큰 빈칸 생기지 않게 */
@media print{
  @page{size:A4;margin:0}
  html,body{background:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  html,body{height:auto!important;min-height:0!important;overflow:visible!important}
  header.main,aside.lnb,footer.gov,main.content .actbar,main.content .eyebrow{display:none!important}
  .wrap{display:block;max-width:none;padding:0;margin:0}
  main.content{border:0!important;border-radius:0!important;box-shadow:none!important;background:#fff!important;padding:12mm 13mm 10mm!important;-webkit-box-decoration-break:clone;box-decoration-break:clone;font-size:10pt}
  .ptitle{border-bottom:2px solid #000;margin:0 0 8pt;padding-bottom:5pt}
  .ptitle h1{font-size:15pt}
}