/* ========== 招聘页面、招聘填写表单页面样式表，2026.09.02，jmwenlong ========== */
.xyzhaopin_wrap{padding: 1rem 0;}
.xyzhaopin_title{text-align: center;margin-bottom: 60px;}
.xyzhaopin_title .title {font-size:36px;color: #333333;font-weight: bold;text-align: center;display: inline-block;margin: 0 auto;position: relative;}
.xyzhaopin_title .title:before, .xyzhaopin_title .title::after{content: '';display: block;width: 60px;height: 12px;margin-top: .1rem;background-image: url(../images/job/line.png);background-repeat: no-repeat;position: absolute;top: 0;}
.xyzhaopin_title .title:before{background-position: 0 -10px;left: -80px;}
.xyzhaopin_title .title::after{background-position: 0 1px;right: -80px;}

/* ========== 招聘页面整体布局 ========== */
.recruit_wrap {display: flex;max-width: 1200px;margin: 0 auto;padding: 20px;gap: 20px;align-items: flex-start;}

/* ========== 左侧筛选栏 ========== */
.recruit_sidebar {width: 200px;min-width: 200px;flex-shrink: 0;}
.sidebar_header {display: flex;align-items: center;gap: 10px;margin-bottom: 20px;font-size: 14px;border-bottom: 1px solid #e9e9e9;padding-bottom: 20px;display: flex;flex-direction: row;-webkit-box-pack: justify;justify-content: space-between;-webkit-box-align: center;align-items: center;}
.sidebar_header .filter_title {font-size: 18px;font-weight: bold;color: #333;}
.sidebar_header .filter_status .s1 {color: #666;font-size: 13px;}
.sidebar_header .filter_clear {color: #2c71f6;font-size: 13px;text-decoration: none;}
.sidebar_header .filter_clear:hover {text-decoration: underline;}

/* ========== 筛选分 ========== */
.filter_group {margin-bottom: 20px;}
.filter_group_title {font-size: 16px;font-weight: bold;color: #333;margin-bottom: 20px;display: flex;align-items: center;gap: 6px;}

/* ========== 筛选列 ========== */
.filter_list {list-style: none;padding: 0;margin: 0;}
.filter_list li {height: 34px;font-size: 14px;color: #555;}
.filter_list li label {display: flex;align-items: center;gap: 6px;cursor: pointer;height: 100%;}
.filter_list li label input[type="checkbox"] {cursor: pointer;}

/* ========== 树形筛选项 ========== */
.filter_tree_item {display: flex;align-items: center;gap: 4px;}
.filter_tree_item .tree_toggle {font-size: 10px;color: #999;cursor: pointer;}

/* ========== 右侧主内容区 ========== */
.recruit_main {flex: 1;min-width: 0;}

/* ========== 搜索 ==========*/
.recruit_search {display: flex;align-items: center;margin-bottom: 40px;}
.recruit_search .search_input_wrap {position: relative;flex: 1;}
.recruit_search .search_input_wrap::before {content: '';position: absolute;left: 18px;top: 50%;transform: translateY(-50%);width: 15px;height: 15px;background: url('../images/job/search.png') no-repeat center / contain;pointer-events: none;opacity: .75;}
.recruit_search .search_input_wrap .search_input {width: 100%;height: 42px;padding: 0 52px 0 44px;border: 1px solid #e5e5e5;border-right: 0;border-radius: 28px 0 0 28px;font-size: 14px;color: #333;outline: none;box-sizing: border-box;background: #fff;}
.recruit_search .search_input_wrap .search_input::placeholder {color: #b8b8b8;}
.recruit_search .search_input_wrap .search_input:focus {border-color: #d9d9d9;}
.recruit_search .search_clear {position: absolute;right: 16px;top: 50%;transform: translateY(-50%);width: 20px;height: 20px;border: 0;border-radius: 50%;background: #d9d9d9;color: #000;font-size: 14px;line-height: 20px;text-align: center;padding: 0;cursor: pointer;display: none;}
.recruit_search .search_clear:hover {background: #cfcfcf;}
.recruit_search .search_btn {height: 42px;padding: 0 28px;background: #2d63f2;color: #fff;border: 1px solid #2d63f2;border-radius: 0 28px 28px 0;font-size: 15px;cursor: pointer;white-space: nowrap;}
.recruit_search .search_btn:hover {opacity: .9;}

/* ========== 职位卡片 ========== */
.job_card {border: 1px solid #e8e8e8;border-radius: 6px;padding: 24px;margin-bottom: 20px;background: #fff;}
.job_card_header {margin-bottom: 16px;}
.job_title {font-size: 20px;font-weight: bold;color: #222;margin: 0 0 10px 0;}
.job_meta {display: flex;justify-content: space-between;align-items: center;flex-wrap: wrap;gap: 10px;}
.job_tags {display: flex;align-items: center;gap: 8px;flex-wrap: wrap;}
.job_tags .tag {font-size: 13px;color: #666;}
.job_tags .tag.location {color: #999;}
.job_date {font-size: 13px;color: #999;}

/* ========== 职位内容区域 ========== */
.job_card_body {background: #fafafa;border-radius: 4px;padding: 16px 20px;margin-bottom: 16px;}
.job_section {margin-bottom: 14px;}  .job_section:last-child {margin-bottom: 0;}
.section_title {font-size: 15px;font-weight: bold;color: #333;margin: 0 0 8px 0;}
.job_section p {font-size: 14px;color: #555;line-height: 1.8;margin: 0 0 4px 0;}

/* ========== 卡片底部操作 ========== */
.job_card_footer {display: flex;align-items: center;gap: 12px;}
.btn_apply {padding: 8px 32px;background: #2c71f6;color: #fff;border: none;border-radius: 4px;font-size: 14px;cursor: pointer;}
.btn_apply:hover {background: #2c71f6;opacity: .8;}

/* ========== 招聘 tabs ========== */
.zhaopin_wrap {max-width: 1200px;margin: 0 auto;padding: 50px;}
.zhaopin_tabs {width: 100%;max-width: 320px;margin: 0 auto;background: #d0d0d0;border-radius: 999px;padding: 2px;display: flex;overflow: hidden;}
.zhaopin_tab {flex: 1;height: 38px;border: 0;padding: 0;border-radius: 999px;display: flex;align-items: center;justify-content: center;background: transparent;font-size: 18px;color: #fff;cursor: pointer;transition: all .2s ease;}
.zhaopin_tab.active {background: #fff;color: #2d63f2;}

/* ========== 所有 jobs ========== */
.all_jobs {font-size: 14px;color: #333;padding: 0 0 16px;margin: 0 0 20px;border-bottom: 1px solid #ececec;}

/* ========== 招聘流程 ========== */
.recruit_process {max-width: 1200px;margin:0 auto;padding-top: 80px;padding-bottom: 80px;}
.process_row {display: flex;align-items: center;justify-content: center;}
.process_row_top {gap: 34px;}
.process_row_bottom {gap: 34px;margin-top: 28px;}
.process_item {width: 180px;text-align: center;}
.process_item img {display: block;height: auto;margin: 0 auto;}
.process_item p {margin-top: 10px;font-size: 22px;color: #333;line-height: 2.2;}
.pos_relative{position: relative;}
.pos_absolute{position: absolute;}
.pos_t10{top: 10px;}
.pos_t30{top: 30px;}
.process_item .pos_relative img, .process_item .pos_absolute img{width: auto;}
.pos_line{left: 50%;margin-left: -15px;margin-top: 0!important;}
.process_arrow {display: flex;justify-content: center;align-items: center;flex-shrink: 0;margin-top:-55px;}
.process_arrow img, .process_connect img {display: block;width: 100%;height: auto;}
.process_connect {width: 32px;margin: 10px auto 0;}
.process_tips {margin-top: 56px;text-align: center;font-size: 18px;color: #666;}
.process_tips::before {content: '*';color: #ff4b4b;}

/* ========== 应届生简历表--填写表格 ========== */
.freshGraduate_wrap { width: 1380px; margin: 0 auto; display: flex;flex-wrap: wrap;}
.freshGraduate_wrap .card { border-radius: 10px;padding:10px 0;}
.freshGraduate_wrap .card:hover{ background: #f4f8fe;}
.freshGraduate_wrap .form-label { margin-bottom: 0; padding-right: 4px; padding-left: 0; white-space: nowrap;font-size: 16px;font-weight: 400;color:#333; }
.freshGraduate_wrap .form-control, .freshGraduate_wrap .form-select { height: 42px; border-color: #e3e7ef; box-shadow: none; font-size: 16px;font-weight: 300;}
.form-select.is-invalid, .was-validated .form-select:invalid{padding-right:unset!important;}
.freshGraduate_wrap textarea.form-control { height: auto; min-height: 96px; }
.freshGraduate_wrap textarea.form-control.js-auto-grow { overflow-y: hidden; resize: none; }
.freshGraduate_wrap .form-control:focus,
.freshGraduate_wrap .form-select:focus { border-color: #6ea3ff; box-shadow: 0 0 0 5px rgba(52, 120, 246, .08); }
.btn-check:focus + .btn, .btn:focus{outline: 0;box-shadow: 0 0 0 5px rgba(13, 110, 253, 0.25);}
.required-field::before { content: '*'; color: #e85c5c; margin-right: 4px; }
.form-control.is-invalid,
.form-select.is-invalid { border-color: #e85c5c; }
.field-error { display: none; margin-top: 4px; font-size: 12px; color: #e85c5c; line-height: 1.4; }
.field-error.is-show { display: block; }
.gender-radio-group.is-invalid { outline: 1px solid #e85c5c; outline-offset: 4px; border-radius: 6px; }
.gender-radio-group { display: flex; align-items: center; min-height: 42px; gap: 8px; }
.gender-radio-group .form-check { display: flex; align-items: center; margin: 0 16px 0 0; min-height: auto; padding-left: 0; }
.gender-radio-group .form-check-input { float: none; margin: 0 6px 0 0; width: 16px; height: 16px; cursor: pointer; }
.gender-radio-group .form-check-label { font-size: 16px; font-weight: 400; color: #333; cursor: pointer; }
.resume-upload p { font-size: 16px; }
.resume-upload .small { font-size: 12px !important; }
.resume-file-name { min-height: 22px; margin: 0 0 12px; font-size: 14px; color: #3478f6; word-break: break-all; }
.resume-file-name.is-error { color: #e85c5c; }
.resume-file-remove { margin-left: 8px; color: #e85c5c; font-size: 13px; text-decoration: none; cursor: pointer; }
.resume-file-remove:hover { text-decoration: underline; }
.resume_mode_tabs { display: flex; justify-content: flex-start; align-items: flex-end; gap: 36px; margin: 0 0 28px; padding: 0; background: transparent; border: 0; border-radius: 0; overflow: visible;border-bottom: 1px solid #e6e6e6; }
.resume_mode_tab { flex: none; height: auto; min-width: 0; padding: 0 0 8px; border: 0; border-radius: 0; background: transparent; display: inline-flex; align-items: center; justify-content: flex-start; font-size: 18px; font-weight: 400; line-height: 1.4; color: #333; cursor: pointer; position: relative; transition: color .2s ease; }
.resume_mode_tab.active { background: transparent; color: #333; font-weight: 700; }
.resume_mode_tab.active::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: #2d63f2; border-radius: 2px; }
.freshGraduate_wrap.is-upload-mode .fill_wrap,
.freshGraduate_wrap.is-fill-mode .upload_wrap,
.freshGraduate_wrap.is-upload-mode .nav-fill-only,
.freshGraduate_wrap.is-fill-mode .nav-resume-upload { display: none; }
.list-group-item.active { background: transparent; color: #3478f6;}
.list-group-item{  padding: 10px;font-size: 16px;font-weight: 300;}

.active-bg { background: #f7faff; }

/* ========== 覆盖bootstrap样式 ========== */
.container-fluid{width: 1200px;padding: 0;margin: 0 auto;}
.upload_wrap .card{padding:0;}
.upload_wrap .card-body{padding:40px;}
.upload_wrap .text-primary, .upload_wrap .btn{margin-bottom:20px;}

.card-item{ position: relative;}
.card-item .col-4, .card-item .col-6, .card-item .col-12{margin-top:0; }

.row > * {padding: 5px;}
.row.g-3{width:100%;margin: 0 auto;}
.mb-20{margin-bottom:20px}
.rounded-3{border-radius: 10px !important;}
.card-body {flex: 1 1 auto;padding:10px;}
.btn{padding: 8px 25px;font-size: 16px;border-radius: 10px;}
.shadow-sm{box-shadow: 0 0 2px 0 rgb(153 153 153 / 40%) !important;}
.form-control, .form-select{padding: 5px 10px;font-size: 14px;border-radius: 10px;}
.align-items-center{margin: 0;padding: 0;}
.form-label{margin-bottom:10px;}
.dropdown-menu{font-size: 14px;margin: 10px 0;}
.text-center{text-align: center;}

/* ========== 日期选择器：避免全局下拉菜单样式影响面板定位 ========== */
/* container: body 时弹层不在 freshGraduate_wrap 内，必须使用 body 前缀 */
body .datepicker-dropdown { width: 260px !important; min-width: 260px !important; padding: 8px; margin: 0 !important; z-index: 9999 !important; font-size: 14px; box-sizing: border-box; }
body .datepicker-dropdown table { width: 100% !important; min-width: 0 !important; margin: 0; table-layout: fixed; }
body .datepicker-dropdown table tr th,
body .datepicker-dropdown table tr td { width: 14.285%; height: 30px; padding: 4px; text-align: center; vertical-align: middle; }
body .datepicker-dropdown .datepicker-switch { font-weight: 600; }
.freshGraduate_wrap .datepicker-date { cursor: pointer; background-color: #fff; }
.freshGraduate_wrap .datepicker-container { position: relative; }
.freshGraduate_wrap .datepicker-container .datepicker-dropdown { position: absolute; }

/* ========== 添加模块 ========== */
.add_model{position: absolute;right: 0;top: 5px;}
.add_model a{font-size: 14px;color: #0d6efd;border: 1px solid #0d6efd;padding: 5px 10px;border-radius: 5px;}
/* ========== 删除模块 ========== */
.delete_txt a{font-size: 15px;color: #64656a;padding: 10px 20px;}
.icon_delete{vertical-align: -2px;margin-right:5px;}

/* ========== 右侧悬浮 ========== */
.position-right .list-group{position: sticky;top: 240px;width: 150px;}

/* ========== 提交前手机验证弹层 ========== */
.verify_overlay { display: none; position: fixed; inset: 0; z-index: 10000; background: rgba(0, 0, 0, .45); align-items: center; justify-content: center; }
.verify_overlay.is-open { display: flex; }
.verify_dialog { position: relative; width: 440px; max-width: calc(100% - 32px); background: #fff; border-radius: 12px; padding: 28px 28px 24px; box-shadow: 0 12px 40px rgba(0, 0, 0, .16); }
.verify_close { position: absolute; top: 16px; right: 16px; }
body .swal2-container,
body .swal2-overlay { z-index: 20000 !important; }
body .swal2-modal { z-index: 20001 !important; }
.verify_title { margin: 0 0 8px; font-size: 20px; font-weight: 600; color: #333; }
.verify_desc { margin: 0 0 20px; font-size: 14px; color: #888; line-height: 1.6; }
.verify_row { margin-bottom: 16px; }
.verify_label { display: block; margin-bottom: 8px; font-size: 15px; color: #333; }
.verify_code_wrap { display: flex; gap: 10px; }
.verify_code_wrap .form-control { flex: 1; }
.verify_code_wrap #sendCodeBtn { flex-shrink: 0; white-space: nowrap; min-width: 118px; }
.verify_dialog .verify-wrap { width: 100% !important; max-width: 100%; margin: 0; height: 40px; user-select: none; box-sizing: border-box; overflow: hidden; }
.verify_dialog .verify-wrap .drag-btn { width: 50px; height: 40px; }
.verify_tip { min-height: 20px; margin-bottom: 12px; font-size: 13px; color: #e85c5c; }
.verify_actions { display: flex; justify-content: flex-end; gap: 12px; margin-top: 8px; }