* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: '맑은 고딕', Malgun Gothic, sans-serif; font-size: 13px; background: #f5f5f5; color: #333; }

#wrap { width: 980px; margin: 0 auto; background: #fff; height: 100vh; display: flex; flex-direction: column; }
#header { background: #E91E63; color: #fff; padding: 15px 20px; flex-shrink: 0; }
#header h1 { font-size: 20px; font-weight: bold; }
#content { padding: 20px; flex: 1; overflow-y: auto; }
#footer { background: #E91E63; color: #fff; text-align: center; padding: 12px; font-size: 12px; flex-shrink: 0; }

/* 공고목록 */
.notice-box { border: 1px solid #ddd; margin-bottom: 20px; }
.notice-box h2 { background: #1a3a6b; color: #fff; padding: 10px 15px; font-size: 15px; }
.notice-list { width: 100%; border-collapse: collapse; }
.notice-list th { background: #f0f4ff; padding: 8px 10px; border-bottom: 2px solid #1a3a6b; text-align: center; }
.notice-list td { padding: 8px 10px; border-bottom: 1px solid #eee; text-align: center; }
.notice-list tr:hover td { background: #f9f9ff; }

/* 버튼 */
.btn { display: inline-block; padding: 8px 20px; border: none; cursor: pointer; font-size: 13px; font-family: inherit; text-decoration: none; }
.btn-primary  { background: #1a3a6b; color: #fff; }
.btn-success  { background: #2e7d32; color: #fff; }
.btn-warning  { background: #e65100; color: #fff; }
.btn-danger   { background: #c62828; color: #fff; }
.btn-default  { background: #777; color: #fff; }
.btn-preview  { background: #5c6bc0; color: #fff; }
.btn:hover { opacity: 0.85; }
.btn-action { background: #fff; color: #333; border: 1px solid #ccc; }
.btn-action:hover { background: #E91E63; color: #fff; font-weight: bold; opacity: 1; }
.btn-action.btn-disabled { background: #f5f5f5; color: #bbb; border-color: #e0e0e0; pointer-events: none; cursor: default; }

/* 메인 액션 버튼 */
.main-actions { text-align: center; padding: 30px 0; }
.main-actions .btn { padding: 15px 40px; font-size: 15px; margin: 0 10px; }

/* 폼 공통 */
.section-title { font-size: 15px; font-weight: bold; border-left: 4px solid #1a3a6b; padding-left: 10px; margin: 20px 0 10px; color: #1a3a6b; }
.form-table { width: 100%; border-collapse: collapse; margin-bottom: 15px; }
.form-table th { background: #f0f4ff; padding: 7px 10px; border: 1px solid #ccc; text-align: center; width: 130px; white-space: nowrap; }
.form-table td { padding: 6px 10px; border: 1px solid #ccc; }
.form-table td input[type=text],
.form-table td input[type=email],
.form-table td input[type=password],
.form-table td select,
.form-table td textarea { width: 100%; padding: 4px 6px; border: 1px solid #bbb; font-size: 13px; font-family: inherit; }
.form-table td textarea { resize: vertical; }
.required { color: #c00; margin-left: 2px; }

/* 라디오/체크 */
.radio-group label { margin-right: 15px; cursor: pointer; }
.radio-group input { margin-right: 4px; }

/* 동적 행 테이블 */
.dynamic-table { width: 100%; border-collapse: collapse; margin-bottom: 5px; }
.dynamic-table th { background: #f0f4ff; padding: 6px 8px; border: 1px solid #ccc; text-align: center; font-size: 12px; }
.dynamic-table td { padding: 4px 6px; border: 1px solid #ccc; }
.dynamic-table td input[type=text],
.dynamic-table td select { width: 100%; padding: 3px 5px; border: 1px solid #bbb; font-size: 12px; font-family: inherit; }
.row-btn { padding: 3px 8px; font-size: 12px; border: none; cursor: pointer; color: #fff; }
.row-btn-add { background: #1a3a6b; }
.row-btn-del { background: #c62828; }

/* 탭 */
.tab-menu { display: flex; border-bottom: 2px solid #1a3a6b; margin-bottom: 15px; }
.tab-menu a { display: block; padding: 8px 16px; text-decoration: none; color: #aaa; border: 1px solid #ddd; border-bottom: none; margin-right: 3px; background: #f5f5f5; font-size: 12px; cursor: default; pointer-events: none; }
.tab-menu a.active { background: #1a3a6b; color: #fff; border-color: #1a3a6b; font-weight: bold; }
.tab-content { display: none; }
.tab-content.active { display: block; }

/* 단계 진행표시 */
.step-bar { display: flex; margin-bottom: 0; flex-shrink: 0; background: #fff; padding-top: 8px; }
.step-bar .step { flex: 1; text-align: center; padding: 10px 5px; background: #ddd; color: #777; font-size: 12px; position: relative; }
.step-bar .step.done { background: #90a4ae; color: #fff; }
.step-bar .step.current { background: #1a3a6b; color: #fff; font-weight: bold; }
.step-bar .step + .step::before { content: '▶'; position: absolute; left: -10px; top: 50%; transform: translateY(-50%); color: #aaa; font-size: 10px; }

/* 하단 버튼바 */
.form-actions {
    flex-shrink: 0;
    text-align: center;
    padding: 12px 0;
    background: #fff;
    border-top: 2px solid #1a3a6b;
    box-shadow: 0 -2px 6px rgba(0,0,0,0.1);
}
.form-actions .btn { margin: 0 5px; padding: 9px 25px; }

/* 로그인/시작 폼 내부 버튼은 별도 스타일 */
.login-box .form-actions {
    border: none;
    box-shadow: none;
    background: transparent;
    padding: 0;
    margin-top: 20px;
}

/* 신입 성적 테이블 compact (80% 높이) */
.score-table-fresh th,
.score-table-fresh td { padding: 3px 6px; font-size: 12px; line-height: 1.4; }
.score-table-fresh td input,
.score-table-fresh td select { padding: 2px 4px; font-size: 12px; }

/* 프로그램 고정행 */
.prog-table { width: 100%; border-collapse: collapse; }
.prog-table th { background: #f0f4ff; padding: 6px; border: 1px solid #ccc; text-align: center; font-size: 12px; }
.prog-table td { padding: 5px 6px; border: 1px solid #ccc; text-align: center; }
.prog-table td select, .prog-table td input { padding: 3px 4px; border: 1px solid #bbb; font-size: 12px; font-family: inherit; }

/* 파일업로드 */
.file-upload-box { border: 1px solid #ddd; padding: 15px; margin-bottom: 10px; }
.file-upload-box h4 { font-size: 13px; color: #1a3a6b; margin-bottom: 8px; border-bottom: 1px solid #eee; padding-bottom: 5px; }
.file-row { display: flex; align-items: center; margin-bottom: 6px; gap: 8px; }
.file-row label { width: 130px; font-weight: bold; font-size: 12px; flex-shrink: 0; }
.file-row input[type=file] { flex: 1; font-size: 12px; }
.file-row .file-name { flex: 1; font-size: 12px; color: #555; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.file-notice { background: #fff8e1; border: 1px solid #ffe082; padding: 10px 15px; font-size: 12px; line-height: 1.8; margin-bottom: 15px; }
.file-notice ul { padding-left: 20px; }

/* 자기소개 */
.pr-section { margin-bottom: 15px; }
.pr-section h4 { font-size: 13px; font-weight: bold; color: #333; margin-bottom: 5px; padding: 5px 10px; background: #f0f4ff; border-left: 3px solid #1a3a6b; }
.pr-section textarea { width: 100%; height: 120px; padding: 8px; border: 1px solid #bbb; font-size: 13px; font-family: inherit; resize: vertical; }

/* 로그인/시작 폼 */
.login-box { width: 420px; margin: 40px auto; border: 1px solid #ccc; padding: 30px; }
.login-box h2 { font-size: 16px; text-align: center; margin-bottom: 20px; color: #1a3a6b; }
.login-box .form-row { margin-bottom: 12px; }
.login-box .form-row label { display: block; margin-bottom: 4px; font-weight: bold; font-size: 12px; }
.login-box .form-row input { width: 100%; padding: 8px; border: 1px solid #bbb; font-size: 13px; }
.login-box .form-actions { text-align: center; margin-top: 20px; }
.msg-error { color: #c00; font-size: 12px; margin-top: 5px; }
.msg-success { color: #2e7d32; font-size: 12px; margin-top: 5px; }

/* 미리보기 */
.preview-section { margin-bottom: 20px; }
.preview-section h3 { font-size: 14px; font-weight: bold; background: #1a3a6b; color: #fff; padding: 7px 12px; margin-bottom: 8px; }
.preview-table { width: 100%; border-collapse: collapse; }
.preview-table th { background: #f0f4ff; padding: 6px 10px; border: 1px solid #ccc; width: 130px; text-align: center; font-size: 12px; }
.preview-table td { padding: 6px 10px; border: 1px solid #ccc; font-size: 12px; }

/* 완료화면 */
.complete-box { text-align: center; padding: 50px 20px; }
.complete-box .icon { font-size: 50px; color: #2e7d32; margin-bottom: 20px; }
.complete-box h2 { font-size: 22px; color: #1a3a6b; margin-bottom: 15px; }
.complete-box .receipt-no { font-size: 18px; font-weight: bold; color: #c62828; margin: 15px 0; }
.complete-box p { color: #555; line-height: 1.8; }

/* 공통 알림 */
.alert { padding: 10px 15px; margin-bottom: 15px; border: 1px solid; font-size: 13px; }
.alert-success { background: #e8f5e9; border-color: #a5d6a7; color: #2e7d32; }
.alert-error   { background: #ffebee; border-color: #ef9a9a; color: #c62828; }
.alert-info    { background: #e3f2fd; border-color: #90caf9; color: #1565c0; }

/* 주소검색 */
.addr-search-btn { padding: 5px 12px; background: #5c6bc0; color: #fff; border: none; cursor: pointer; font-size: 12px; }
