/* 공통 폼 컨테이너 */
.custom-form {
    /* sub_section 내부에 있으므로 추가 배경/그림자는 필요 없을 수 있음 */
}

/* 폼 그룹 (라벨 + 입력 요소) */
.form-group {
    margin-bottom: 20px;
}

.form-group label {
    display: block;
    margin-bottom: 8px;
    font-weight: bold;
    color: #555;
}

.form-group input[type="text"],
.form-group input[type="tel"],
.form-group input[type="email"],
.form-group input[type="password"],
.form-group input[type="file"],
.form-group textarea,
.form-group select {
    width: 100%;
    padding: 12px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 1rem;
    box-sizing: border-box; /* 패딩 포함하여 너비 계산 */
    transition: border-color 0.2s ease;
}

.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus {
    outline: none;
    border-color: #007bff; /* 포커스 시 테두리 색상 변경 */
    box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.25);
}

.form-group input[type="file"] {
    padding: 9px; /* 파일 입력 필드 패딩 조정 */
    background-color: #f8f8f8;
}

.form-group textarea {
    resize: vertical; /* 세로 크기만 조절 가능 */
    min-height: 120px;
}

/* 폼 액션 버튼 (등록, 수정, 취소 등) */
.form-actions {
    margin-top: 30px;
    text-align: right;
}

.form-actions .btn {
    margin-left: 10px;
}

.form-actions .btn-secondary {
    background-color: #6c757d;
}
.form-actions .btn-secondary:hover {
    background-color: #5a6268;
}

/* 오류 메시지 스타일 */
.error-message {
    color: #dc3545; /* 빨간색 */
    background-color: #f8d7da;
    border: 1px solid #f5c6cb;
    padding: 10px 15px;
    border-radius: 4px;
    margin-bottom: 20px;
    text-align: center;
} 