/* ================================================================
 * form.css — 글작성/수정 폼 공용 스타일
 * 사용처: 자유게시판, 자료실, 포토갤러리, 동영상갤러리 작성/수정 폼
 * ================================================================ */

/* 페이지 래퍼 */
.write_page { max-width:100%; margin:0 auto; }

/* 섹션 */
.write_section { background:#fff; border-radius:10px; border:1px solid #eaecf0; margin-bottom:20px; overflow:hidden; }
.write_section_title { font-size:12px; font-weight:700; color:#999; text-transform:uppercase; letter-spacing:.7px; padding:14px 24px; border-bottom:1px solid #f0f0f0; background:#fafafa; }

/* 행 */
.write_row { display:flex; align-items:center; padding:12px 24px; border-bottom:1px solid #f5f5f5; gap:16px; }
.write_row:last-child { border-bottom:none; }
.write_row.top { align-items:flex-start; padding-top:16px; }

/* 라벨 */
.write_label { width:80px; flex-shrink:0; font-size:13px; color:#999; }
.write_label .req { color:#e74c3c; margin-left:2px; }

/* 입력 */
.write_input { flex:1; height:38px; padding:0 12px; border:1px solid #ddd; border-radius:6px; font-size:14px; color:#333; transition:border-color .2s; }
.write_input:focus { border-color:var(--primary-color,#004b93); outline:none; }
.write_input[readonly] { background:#f8f8f8; color:#aaa; cursor:not-allowed; }

/* Quill 에디터 */
.ql-toolbar { border:1px solid #ddd; border-radius:6px 6px 0 0; }
.ql-container { border:1px solid #ddd; border-radius:0 0 6px 6px; }

/* 파일 업로드 존 */
.file-upload-zone { border:2px dashed #ccc; border-radius:8px; padding:20px; text-align:center; cursor:pointer; transition:border-color .2s, background .2s; background:#fafafa; }
.file-upload-zone:hover { border-color:#aaa; }
.file-upload-zone.dragover { border-color:var(--primary-color,#004b93); background:#f0f7ff; }

/* 파일 아이템 */
.file-item { display:flex; align-items:center; justify-content:space-between; padding:8px 12px; border:1px solid #e0e0e0; border-radius:5px; background:#fff; margin-top:6px; font-size:13px; }
.file-item .file-name { flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.file-item .file-size { color:#888; margin:0 12px; white-space:nowrap; }
.file-item .file-remove { background:none; border:none; color:#e74c3c; font-size:16px; cursor:pointer; padding:0 4px; flex-shrink:0; }

/* 파일 확장자 뱃지 */
.file-ext-badge { display:inline-block; padding:1px 6px; border-radius:3px; font-size:11px; font-weight:bold; color:#fff; margin-right:8px; text-transform:uppercase; background:#7f8c8d; flex-shrink:0; }
.file-ext-badge.img { background:#27ae60; }
.file-ext-badge.doc { background:#2980b9; }
.file-ext-badge.xls { background:#16a085; }
.file-ext-badge.pdf { background:#c0392b; }
.file-ext-badge.zip { background:#8e44ad; }
.file-ext-badge.ppt { background:#e67e22; }

/* 기존 첨부파일 아이템 */
.existing-file-item {padding:8px 12px; border:1px solid #e0e0e0; border-radius:5px; background:#f8f8f8; margin-top:6px; font-size:13px; }

/* 액션 버튼 영역 */
.write_actions { display:flex; gap:10px; justify-content:flex-end; margin-top:8px; }
.btn_wr { height:42px; padding:0 24px; border:none; border-radius:7px; font-size:14px; font-weight:600; cursor:pointer; transition:all .15s; }
.btn_wr:hover { transform:translateY(-1px); box-shadow:0 4px 12px rgba(0,0,0,.1); }
.btn_submit { background:var(--primary-color,#004b93); color:#fff; }
.btn_cancel { background:#f0f0f0; color:#555; }

/* 참가신청/이의제기 작성폼 */
 .apply-form-wrap { max-width:100%; }
 .apply-form-section { background:#fff; border:1px solid #eaecf0; border-radius:8px; overflow:hidden; margin-bottom:16px; }
 .apply-form-row { display:flex; align-items:flex-start; padding:14px 20px; border-bottom:1px solid #f5f5f5; gap:16px; }
 .apply-form-row:last-child { border-bottom:none; }
 .apply-form-label { width:90px; flex-shrink:0; font-size:13px; color:#999; padding-top:8px; }
 .apply-form-input { flex:1; height:38px; padding:0 12px; border:1px solid #ddd; border-radius:6px; font-size:14px; color:#333; }
 .apply-form-input[readonly] { background:#f8f8f8; color:#aaa; cursor:not-allowed; }
 .apply-form-textarea { flex:1; padding:10px 12px; border:1px solid #ddd; border-radius:6px; font-size:14px; color:#333; resize:vertical; line-height:1.6; }
 .apply-form-textarea:focus { border-color:var(--primary-color,#004b93); outline:none; }
 .apply-form-actions { display:flex; gap:10px; justify-content:flex-end; margin-top:8px; }
 .apply-btn { height:40px; padding:0 24px; border:none; border-radius:6px; font-size:14px; font-weight:600; cursor:pointer; }
 .apply-btn-submit { background:var(--primary-color,#004b93); color:#fff; }
 .apply-btn-cancel { background:#f0f0f0; color:#555; }
 .existing-file-list { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:5px; }
 .existing-file-list li { display:flex; align-items:center; gap:6px; padding:5px 10px; background:#f7f9fc; border:1px solid #e4eaf2; border-radius:5px; font-size:13px; }
 .existing-file-icon { flex-shrink:0; }
 .existing-file-name { color:#333; word-break:break-all; }
 .existing-file-ext { color:#999; font-size:12px; flex-shrink:0; }
