/* 阶段 2A 公共页样式：取值逐字对齐 triumph-pc-new 的 assets/css/common.scss、
   layouts/default.vue、components/error404；仅覆盖本阶段四个页面用到的类。
   主题变量 --configColor 沿用基线引用，由后续全局 CSS/JS 阶段注入。 */

/* reset 子集（common.scss 开头） */
body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, p, img, a {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

ol, ul, li {
    list-style: none;
}

/* html/body 基础（common.scss） */
html,
body {
    width: 100%;
    height: 100%;
    scroll-behavior: smooth;
    background: #f3f5f8;
}

/* 固定纵向滚动条占位：长短页面切换/内容加载完成前后滚动条出现消失会导致整页横向跳动（顶部导航最明显） */
html {
    scrollbar-gutter: stable;
}

/* 链接 reset（common.scss：去除 a 标签下划线） */
a {
    color: #000;
    text-decoration: none;
}
a:link,
a:visited,
a:hover,
a:active,
a:focus {
    text-decoration: none;
}

/* 通用工具类（common.scss） */
.color333 { color: #333; }
.colorfff { color: #fff; }
.w {
    max-width: 1280px;
    min-width: 1140px;
    margin: 0 auto;
}
.blk { display: block; }
.fl { float: left; }
.fr { float: right; }
.fx { display: flex; }
/* 对齐 Node 基线 common.scss 的 .fx-c（列方向）；仅在线聊两个模板使用 */
.fx-c { flex-direction: column; }
.fxw { flex-wrap: wrap; }
.fx-sb { justify-content: space-between; }
.fx-alc { align-items: center; }
.fn { flex: none; }
.tac { text-align: center; }
.vam { vertical-align: middle; }
.fs14 { font-size: 14px; }
.fs16 { font-size: 16px; }
.fs18 { font-size: 18px; }
.fs20 { font-size: 20px; }
.fs22 { font-size: 22px; }
.fs24 { font-size: 24px; }
.fs12 { font-size: 12px; }
.cp { cursor: pointer; }
.ml5 { margin-left: 5px; }
.mr10 { margin-right: 10px; }
.ml10 { margin-left: 10px; }
.mt5 { margin-top: 5px; }
.mr5 { margin-right: 5px; }
.mb5 { margin-bottom: 5px; }
.ml20 { margin-left: 20px; }
.mt10 { margin-top: 10px; }
.mb10 { margin-bottom: 10px; }
.mb15 { margin-bottom: 15px; }
.mb30 { margin-bottom: 30px; }
.mt20 { margin-top: 20px; }
.mr20 { margin-right: 20px; }
.mb20 { margin-bottom: 20px; }
.mt30 { margin-top: 30px; }
.mr30 { margin-right: 30px; }
.fa { flex: auto; }
.gray { color: #606266; }
.color999 { color: #999; }
.color414 { color: #414a60; }
.color-var { color: var(--configColor); }
.post-tag {
    padding: 2px 7px;
    color: #606266;
    background-color: #efeff0;
    border-radius: 2px;
}
.post-desc {
    white-space: pre-wrap;
    word-break: break-all;
    line-height: 1.8;
}
.bgfff { background: #fff; }
.oneEllipsis {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
div.border0 { border: 0; }

/* 页头（default.vue scoped） */
.layout-header {
    background: url(/pc/images/layout-header-bg.png);
    background-size: 100% 100%;
    padding: 6px 0;
}
.layout-header .colorfff {
    font-size: 14px;
    color: #fff;
}

/* PC头部样式（app.vue .pcHeaderStyle2，SCSS 展开）：后台"PC头部样式"=样式二（dataInfoConfig.pcHeaderStyle=='2'）
   时布局 body 挂 pcHeaderStyle2，页头/中心页头顶白底黑字；样式一为默认背景图，无需覆盖规则 */
.pcHeaderStyle2 .layout-header {
    background: #fff;
}
.pcHeaderStyle2 .layout-header .colorfff {
    color: #000;
}
.pcHeaderStyle2 .layout-header .register-btn .colorfff {
    color: var(--configColor);
}
.pcHeaderStyle2 .layout-header .register-btn .colorfff:hover {
    color: #fff;
}
.pcHeaderStyle2 .all-layouts .top-user span {
    color: #000;
}
.pcHeaderStyle2 .layouts .head {
    background: #fff;
}
.pcHeaderStyle2 .layouts .head .head-nav a {
    color: #000;
}

/* 公共页头城市切换 */
body.pc-area-open { overflow: hidden; }
.pc-area-dialog { position: fixed; inset: 0; z-index: 3000; }
.pc-area-dialog[hidden] { display: none; }
.pc-area-mask { position: absolute; inset: 0; background: rgba(0, 0, 0, .52); }
.pc-area-panel {
    position: relative;
    width: min(888px, calc(100vw - 40px));
    max-height: calc(100vh - 80px);
    margin: 8vh auto 0;
    overflow: hidden;
    border-radius: 12px;
    background: linear-gradient(180deg, var(--configColor), color-mix(in srgb, var(--configColor), #fff 35%)) no-repeat;
    background-size: 100% 85px;
    box-shadow: 0 22px 60px rgba(15, 23, 42, .22);
}
.pc-area-head { height: 85px; padding: 0 30px; color: #fff; }
.pc-area-head select {
    width: 180px;
    height: 38px;
    padding: 0 34px 0 12px;
    border: 1px solid rgba(255, 255, 255, .9);
    border-radius: 6px;
    outline: none;
    color: #fff;
    background: transparent;
}
.pc-area-head select option { color: #333; background: #fff; }
.pc-area-close { border: 0; color: #fff; background: transparent; font-size: 30px; cursor: pointer; }
.pc-area-body {
    max-height: calc(100vh - 165px);
    min-height: 420px;
    padding: 28px 30px 36px;
    overflow: auto;
    border-radius: 12px 12px 0 0;
    color: #333;
    background: #fff;
}
.pc-area-hot { gap: 10px; margin-bottom: 30px; }
.pc-area-hot button,
.pc-area-all button {
    min-width: 76px;
    padding: 9px 16px;
    border: 0;
    border-radius: 4px;
    color: #333;
    background: #f8f8f8;
    cursor: pointer;
}
.pc-area-hot button:hover,
.pc-area-all button:hover { color: var(--configColor); background: color-mix(in srgb, var(--configColor), transparent 90%); }
.pc-area-all-title { padding-top: 22px; margin-bottom: 16px; border-top: 1px solid #eef0f3; }
.pc-area-all { gap: 10px; }
.logo-img {
    height: 35px;
}
.logo-img img {
    height: 100%;
    width: auto;
}
.top-nav .router-link-active {
    font-weight: 700;
    position: relative;
    color: var(--configColor);
}
.top-nav .router-link-active::after {
    content: '';
    position: absolute;
    bottom: -8px;
    left: 50%;
    transform: translateX(-50%);
    width: 60%;
    height: 3px;
    border-radius: 3px;
    background: var(--configColor);
}
.register-btn a {
    padding: 4px 15px;
    border-radius: 2px;
    border: 1px solid var(--configColor);
    font-size: 14px;
    color: var(--configColor);
    cursor: pointer;
    transition: all 0.3s;
}
.register-btn a:hover {
    background: var(--configColor);
    color: #fff;
}

/* 页头用户区（layoutsCommon.scss） */
.all-layouts .top-user span {
    color: #fff;
    font-size: 14px;
}
.all-layouts .top-user img {
    width: 30px;
    height: 30px;
    border-radius: 50%;
}
.poplist a {
    color: #55565a;
    display: block;
    padding: 8px 0;
}
.poplist a:hover {
    background: #f0f0f0;
}

/* 页脚（default.vue scoped） */
footer {
    margin-top: 40px;
    padding: 45px 0;
    background: #222222;
    color: rgba(255, 255, 255, .5);
}
footer.mt0 {
    margin-top: 0;
}
/* 对齐 default.vue 的 el-row/el-col：链接区 span=12（50%），二维码区 span=8（33.33%）；
   el-col 宽度语义在迁移模板中由 footer-links/footer-qrcode 承载 */
footer .footer-links {
    width: 50%;
}
footer .footer-qrcode {
    width: 33.333333%;
}
footer a {
    color: rgba(255, 255, 255, .5);
}
footer dl dt {
    color: rgba(255, 255, 255, .8);
    font-weight: 700;
}
footer dl dd {
    margin-top: 15px;
}
footer .qrcode {
    justify-content: end;
}
footer .qrcode div img {
    width: 100px;
    height: 100px;
}
footer .qrcode div span {
    color: #07b3ff;
    font-size: 14px;
}
footer .qrcode > div:first-child {
    margin-right: 50px;
}
footer .fot-txt > div {
    margin-bottom: 5px;
    line-height: 2.2;
}
footer .fot-txt a {
    display: inline-block;
    margin-right: 12px;
}

/* el-card 复刻（element-plus 默认值，shadow="never" 场景不加阴影） */
.el-card {
    border: 1px solid #e4e7ed;
    border-radius: 4px;
    background-color: #fff;
    overflow: hidden;
    color: #303133;
}
.el-card__header {
    padding: 18px 20px;
    border-bottom: 1px solid #e4e7ed;
}
.el-card__body {
    padding: 20px;
}

/* 平台资质（websiteLicense/index.vue scoped） */
.ptit {
    display: inline-block;
    padding: 8px 35px;
    background: #f5f5f5;
}
.website-license-img, /* 防御性占位，当前模板直接限定在资质卡片内 */
.el-card__body > div > img {
    max-width: 1000px;
    height: auto;
}

/* 404（components/error404 scoped） */
.error-page {
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #fff;
}
.error-page .content {
    text-align: center;
    padding: 40px;
    max-width: 600px;
    width: 100%;
}
.illustration {
    margin-bottom: 20px;
}
.illustration .error-svg {
    width: 100%;
    max-width: 400px;
    height: auto;
}
@media (prefers-color-scheme: dark) {
    .illustration .error-svg .bg-circle {
        fill: #1d1e1f;
    }
}
.floating {
    animation: float 6s ease-in-out infinite;
}
@keyframes float {
    0% { transform: translateY(0px); }
    50% { transform: translateY(-20px); }
    100% { transform: translateY(0px); }
}
.text-content {
    animation: slideUp 0.8s ease-out;
}
@keyframes slideUp {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}
.error-title {
    font-size: 28px;
    color: #303133;
    margin-bottom: 12px;
    font-weight: 600;
}
.error-desc {
    font-size: 16px;
    color: #909399;
    margin-bottom: 32px;
    line-height: 1.6;
}
.actions {
    display: flex;
    gap: 16px;
    justify-content: center;
}

/* el-button primary large 复刻（common.scss：div .el-button--primary 使用主题色） */
.el-button {
    display: inline-block;
    cursor: pointer;
    text-align: center;
    transition: .1s;
}
.el-button--primary {
    background: var(--configColor);
    border-color: var(--configColor);
    color: #fff;
    border-width: 1px;
    border-style: solid;
}
.el-button--primary:hover {
    background: var(--configColor);
    border-color: var(--configColor);
    color: #fff;
    filter: brightness(1.15);
}
.el-button--large {
    padding: 12px 19px;
    font-size: 14px;
    border-radius: 4px;
}

/* 公告列表（announcement/index.vue scoped） */
.announcement-list .item, /* 防御性选择器，当前模板直接使用 .item */
.item {
    padding: 15px 20px;
    border-bottom: 1px solid #eee;
}
.item:hover {
    background: #f9f9f9;
}

/* 公告详情（announcementDetail/[id].vue scoped） */
.announcementDetail {
    padding: 20px 50px;
}
.richText p,
.richText p span {
    text-wrap: initial !important;
}

/* el-link（element-plus 默认样式复刻） */
.el-link {
    display: inline-flex;
    align-items: center;
    color: #606266;
    font-size: 14px;
    cursor: pointer;
}
.el-link:hover {
    color: #409eff;
}
.el-icon {
    width: 1em;
    height: 1em;
    vertical-align: middle;
}

/* el-divider（element-plus 默认样式复刻） */
.el-divider--horizontal {
    display: block;
    height: 1px;
    width: 100%;
    margin: 24px 0;
    border-top: 1px solid #dcdfe6;
}

/* 网络招聘会列表（jobFairList/index.vue scoped） */
.network-item {
    padding: 12px 15px;
    transition: .4s;
}
.network-item:hover {
    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1);
}
.network-item .logo,
.network-item .right-con {
    height: 130px;
}
.network-item .logo {
    position: relative;
    width: 320px;
}
.network-item .logo img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}
.network-item .logo .status {
    position: absolute;
    left: 0;
    top: 0;
    padding: 5px 12px;
    background: rgba(0, 0, 0, .5);
    color: #fff;
}
.network-item .right-con {
    flex-direction: column;
    overflow: hidden;
}

/* 分页（components/Pagination scoped + element-plus 默认值；激活色经 common.scss 覆盖为主题色） */
.pagination-container {
    padding: 12px 16px;
}
.pagination-container .el-pagination {
    justify-content: center;
}
.el-pagination {
    --el-pagination-font-size: 14px;
    --el-pagination-bg-color: #fff;
    --el-pagination-text-color: #303133;
    --el-pagination-border-radius: 2px;
    --el-pagination-button-color: #303133;
    --el-pagination-button-width: 32px;
    --el-pagination-button-height: 32px;
    --el-pagination-button-disabled-color: #a8abb2;
    --el-pagination-button-bg-color: #f4f4f5;
    --el-pagination-hover-color: #409eff;
    align-items: center;
    color: var(--el-pagination-text-color);
    display: flex;
    font-size: var(--el-pagination-font-size);
    font-weight: normal;
    white-space: nowrap;
}
.el-pager {
    font-size: 0;
    list-style: none;
    margin: 0;
    padding: 0;
    user-select: none;
    display: flex;
    align-items: center;
}
.el-pager li {
    align-items: center;
    display: flex;
    justify-content: center;
    margin: 0 4px;
}
.el-pager li a.number,
.el-pagination a.btn-prev,
.el-pagination a.btn-next {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--el-pagination-button-bg-color);
    border-radius: var(--el-pagination-border-radius);
    color: var(--el-pagination-button-color);
    cursor: pointer;
    font-size: var(--el-pagination-font-size);
    height: var(--el-pagination-button-height);
    line-height: var(--el-pagination-button-height);
    min-width: var(--el-pagination-button-width);
    padding: 0 4px;
    text-align: center;
}
.el-pagination a.btn-prev,
.el-pagination a.btn-next {
    margin: 0 4px;
}
.el-pager li a.number:hover,
.el-pagination a.btn-prev:hover,
.el-pagination a.btn-next:hover {
    color: var(--el-pagination-hover-color);
}
.el-pager li a.number.is-active {
    background-color: var(--configColor);
    color: #fff;
    cursor: default;
    font-weight: bold;
}
.el-pager li.more {
    color: var(--el-pagination-button-color);
    font-size: 12px;
    letter-spacing: 2px;
    min-width: var(--el-pagination-button-width);
    justify-content: center;
}
.el-pager li.more a {
    color: inherit;
    display: block;
    cursor: pointer;
}
.el-pagination a.is-disabled {
    color: var(--el-pagination-button-disabled-color);
    cursor: not-allowed;
}

/* el-empty（element-plus 默认插画与样式复刻） */
.el-empty {
    --el-empty-padding: 40px 0;
    --el-empty-image-width: 160px;
    --el-empty-description-margin-top: 20px;
    --el-empty-fill-color-0: #fff;
    --el-empty-fill-color-1: #fcfcfd;
    --el-empty-fill-color-2: #f8f9fb;
    --el-empty-fill-color-3: #f7f8fc;
    --el-empty-fill-color-4: #eeeff3;
    --el-empty-fill-color-5: #edeef2;
    --el-empty-fill-color-6: #e9ebef;
    --el-empty-fill-color-7: #e5e7e9;
    --el-empty-fill-color-8: #e0e3e9;
    --el-empty-fill-color-9: #d5d7de;
    align-items: center;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: var(--el-empty-padding);
    text-align: center;
}
.el-empty__image {
    width: var(--el-empty-image-width);
}
.el-empty__image svg {
    fill: currentColor;
    height: 100%;
    vertical-align: top;
    width: 100%;
}
.el-empty__description {
    margin-top: var(--el-empty-description-margin-top);
}
.el-empty__description p {
    color: #909399;
    font-size: 14px;
    margin: 0;
}

/* ===== 阶段 2C：企业列表与企业详情 ===== */

/* 渐变标签（common.scss） */
.tn-main-gradient-orange--reverse {
    background-image: repeating-linear-gradient(-45deg, #ffa726, #ff7043);
    color: #fff;
}
.tn-main-gradient-indigo {
    background-image: repeating-linear-gradient(45deg, #31c9e8, #2de88d);
    color: #fff;
}

/* el-tag warning small（element-plus 默认值） */
.el-tag {
    border-radius: 4px;
    border-style: solid;
    border-width: 1px;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    line-height: 1;
    white-space: nowrap;
}
.el-tag--small {
    height: 20px;
    padding: 0 7px;
}
.el-tag--warning {
    background-color: #fdf6ec;
    border-color: #faecd8;
    color: #e6a23c;
}

/* 搜索区（indexSearch.scss） */
.search-top {
    padding: 20px 0;
    width: 900px;
    margin: 0 auto;
    margin-top: 10px;
}
.search-top > div:first-child {
    border: 2px solid var(--configColor);
    border-radius: 6px;
    overflow: hidden;
}
.search-top .ipt input {
    outline: none;
    border: none;
    padding: 16px 20px;
    width: 100%;
}
.search-top .search-btn {
    padding: 0 32px;
    background: var(--configColor);
    color: #fff;
    transition: .2s;
    border: none;
    cursor: pointer;
    font-size: 14px;
}
.search-top .search-btn:hover {
    filter: brightness(1.15);
}
.search-top .search-btn .el-icon {
    font-size: 18px;
    margin-right: 3px;
}

/* 筛选区（searchTag.scss + firm scoped 覆盖） */
.search-form {
    padding: 16px;
}
.search-form .el-form-item {
    display: flex;
    margin-bottom: 6px;
}
/* 换行行与筛选项之间的纵向呼吸感（基线 li margin-bottom 被注释，SSR 补足） */
.search-form ul li {
    margin-bottom: 8px;
}
.search-form .el-form-item__label {
    width: 100px;
    flex: none;
    padding: 0 12px 0 0;
    line-height: 32px;
    font-size: 14px;
    color: #000;
}
.search-form ul li a,
.search-form ul li span {
    display: inline-block;
    padding: 3px 9px;
    margin-right: 10px;
    color: #414a60;
    line-height: 26px;
}
.search-form ul li.active a,
.search-form ul li.active span {
    color: #fff;
    background: var(--configColor);
}

/* 企业卡片列表（indexBox.scss，el-row gutter=10 + el-col span=8） */
.index-list {
    margin: 0 -5px;
}
.index-col {
    width: 33.33%;
    padding: 0 5px;
    margin-bottom: 10px;
}
.index-list > div > a {
    position: relative;
    display: block;
    transition: .4s;
}
.index-list > div > a::after {
    position: absolute;
    bottom: 0;
    left: 0;
    content: '';
    width: 0;
    height: 3px;
    background: var(--configColor);
    transition: .4s;
}
.index-list > div > a:hover {
    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1);
}
.index-list > div > a:hover::after {
    width: 100%;
}
.index-list .item-top {
    padding: 13px;
}
.index-list .item-top .logo img {
    display: block;
    width: 75px;
    height: 75px;
}
.index-list .item-bot {
    padding: 12px 10px;
    background: linear-gradient(90deg, #f5fcfc 0, #fcfbfa 100%);
}
.index-list .item-bot .company-post-name {
    color: var(--configColor);
    max-width: 30%;
}

/* 企业表格视图（firm scoped post-table）；个人中心表格卡片（table-card）同款复用 */
.post-table .el-table,
.table-card .el-table {
    width: 100%;
    border-collapse: collapse;
}
/* 长企业名/职位名防溢出：对齐 el-table 固定布局语义——列按基线 min-width 比例（330:280:150:150:100）
   占满容器，min-width 内联样式需让位（否则窄栏容器仍被撑破），超长内容走 .cell 省略 */
.post-table .el-table {
    table-layout: fixed;
    /* el-table 默认视觉：白底卡片感（SSR 原生 table 默认透明，需显式补齐） */
    background: #fff;
}
/* el-table 默认行分隔线与 hover 态 */
.post-table .el-table th.el-table__cell,
.post-table .el-table td.el-table__cell {
    border-bottom: 1px solid #ebeef5;
}
.post-table .el-table tbody tr:hover td.el-table__cell {
    background: #f5f7fa;
}
.post-table .el-table th:nth-child(1) { width: 32.7%; min-width: 0 !important; }
.post-table .el-table th:nth-child(2) { width: 27.7%; min-width: 0 !important; }
.post-table .el-table th:nth-child(3) { width: 14.9%; min-width: 0 !important; }
.post-table .el-table th:nth-child(4) { width: 14.8%; min-width: 0 !important; }
.post-table .el-table th:nth-child(5) { width: 9.9%; min-width: 0 !important; }
.post-table .el-table td .cell a.oneEllipsis {
    display: block;
    min-width: 0;
}
.post-table .el-table .cell,
.table-card .el-table .cell {
    padding: 0 15px;
}
.post-table .el-table .el-table__cell,
.table-card .el-table .el-table__cell {
    padding: 10px 0;
}
.post-table .el-table td.el-table__cell div,
.table-card .el-table td.el-table__cell div {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: #000;
}
.post-table .el-table thead tr,
.table-card .el-table thead tr {
    background: linear-gradient(90deg, #f5fcfc 0, #fcfbfa 100%);
    font-weight: 700;
}
.post-table .el-table th.el-table__cell,
.table-card .el-table th.el-table__cell {
    background-color: transparent;
    color: #000;
    font-size: 16px;
    text-align: left;
    padding-left: 15px;
    padding-right: 15px;
}
/* 表格列宽自适应卡片：模板内联 min-width 总和超过卡片宽度时裁剪右侧列，统一收回并按内容排布，超长省略 */
.table-card .el-card__body {
    overflow-x: auto;
}
.table-card .el-table th.el-table__cell,
.table-card .el-table td.el-table__cell {
    min-width: 0 !important;
}
.table-card .el-table td.el-table__cell div {
    max-width: 280px;
}

.post-table a:hover {
    color: var(--configColor);
}

/* 企业详情（companys/[id].vue scoped） */
.top-head {
    padding: 25px 0;
}
.top-head .top-logo img {
    width: 100px;
    height: 100px;
    display: block;
    object-fit: cover;
    border-radius: 5px;
}
.top-head .post-welfare span {
    line-height: 1.8;
    padding: 2px 12px;
    background-color: color-mix(in srgb, var(--configColor), transparent 90%);
    color: var(--configColor);
    border-radius: 5px;
    margin-right: 8px;
}
.top-head .right-post {
    flex-direction: column;
    align-items: flex-end;
}
.top-head .right-post > div {
    margin-bottom: 15px;
}
.detail-main {
    display: flex;
}
.detail-main .post-center-left {
    width: 70.83%;
    flex: none;
    padding-right: 30px;
    border-right: 1px solid #f1f1f1;
}
.detail-main .post-center-right {
    width: 29.17%;
    flex: none;
    padding-left: 30px;
}
.post-center-left .post-desc {
    line-height: 2;
}
.post-center-left .post-list {
    padding: 25px 0;
    border-bottom: 1px dashed #eee;
}
.post-center-left .post-list:first-child {
    padding-top: 10px;
}
.post-ad-list .block-a {
    position: relative;
    display: block;
    width: 100%;
}
.post-ad-list .block-a .post-ad-img {
    width: 100%;
    height: auto;
    display: block;
}
.company-qrcode {
    width: 100px;
    height: 100px;
    display: block;
    border-radius: 3px;
}
.company-album {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 15px;
}
.company-album .album-item {
    width: 100%;
    height: 120px;
    border-radius: 5px;
    cursor: pointer;
    object-fit: cover;
}
.company-list .logo img {
    width: 60px;
    height: 60px;
    display: block;
    object-fit: cover;
    border-radius: 3px;
}
.company-list > div:last-child {
    max-width: 230px;
}

/* 企业详情浏览器交互：原生 dialog/按钮保持基线视觉，不引入前端 UI 运行时。 */
.pc-text-action,
.album-preview-button {
    appearance: none;
    border: 0;
    padding: 0;
    margin: 0;
    background: transparent;
    color: inherit;
    font: inherit;
}
.pc-text-action:disabled {
    cursor: wait;
    opacity: .65;
}
.pc-text-action.is-active,
.pc-text-action.is-active path {
    color: var(--configColor);
    fill: var(--configColor);
}
.album-preview-button {
    display: block;
    width: 100%;
    cursor: pointer;
}
.pc-dialog {
    border: 0;
    border-radius: 8px;
    padding: 0;
    color: #303133;
    box-shadow: 0 12px 40px rgba(0, 0, 0, .2);
}
.pc-dialog::backdrop {
    background: rgba(0, 0, 0, .55);
}
.pc-report-dialog {
    width: 666px;
    max-width: calc(100vw - 32px);
}
.pc-report-dialog form {
    padding: 20px;
}
.pc-dialog-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 16px;
    border-bottom: 1px solid #eee;
}
.pc-dialog-close,
.pc-image-close {
    appearance: none;
    border: 0;
    background: transparent;
    cursor: pointer;
    color: #909399;
    font-size: 28px;
    line-height: 1;
}
.pc-report-company {
    margin: 20px 0;
    padding: 12px 25px;
    background: #f7f7f7;
    border-radius: 5px;
    font-weight: 700;
}
.pc-form-row {
    display: flex;
    align-items: flex-start;
    margin: 18px 0;
}
.pc-form-row > span {
    flex: 0 0 120px;
    line-height: 36px;
}
.pc-form-row select,
.pc-form-row .pc-sel,
.pc-form-row textarea {
    width: 380px;
    max-width: calc(100% - 120px);
    border: 1px solid #dcdfe6;
    border-radius: 4px;
    padding: 9px 12px;
    color: #606266;
    font: inherit;
    outline: none;
    box-sizing: border-box;
}
.pc-form-row select:focus,
.pc-form-row textarea:focus {
    border-color: var(--configColor);
}
.pc-form-row textarea {
    resize: vertical;
}
.pc-dialog-actions {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    margin-top: 20px;
}
.pc-button {
    border: 1px solid #dcdfe6;
    border-radius: 4px;
    padding: 9px 18px;
    background: #fff;
    cursor: pointer;
}
.pc-button-primary {
    border-color: var(--configColor);
    background: var(--configColor);
    color: #fff;
}
.pc-button:disabled {
    cursor: wait;
    opacity: .65;
}
.pc-image-viewer {
    width: 100vw;
    max-width: none;
    height: 100vh;
    max-height: none;
    background: rgba(0, 0, 0, .88);
    box-shadow: none;
}
.pc-image-viewer[open] {
    display: flex;
    align-items: center;
    justify-content: center;
}
.pc-image-viewer > img {
    max-width: calc(100vw - 160px);
    max-height: calc(100vh - 100px);
    object-fit: contain;
}
.pc-image-close {
    position: fixed;
    top: 24px;
    right: 32px;
    z-index: 2;
    color: #fff;
    font-size: 42px;
}
.pc-image-nav {
    position: fixed;
    top: 50%;
    transform: translateY(-50%);
    width: 48px;
    height: 48px;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, .18);
    color: #fff;
    cursor: pointer;
    font-size: 36px;
}
.pc-image-prev { left: 32px; }
.pc-image-next { right: 32px; }
.pc-image-count {
    position: fixed;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%);
    color: #fff;
}
.pc-toast {
    position: fixed;
    top: 72px;
    left: 50%;
    z-index: 10000;
    transform: translateX(-50%);
    padding: 10px 18px;
    border-radius: 4px;
    background: #f0f9eb;
    color: #67c23a;
    box-shadow: 0 4px 16px rgba(0, 0, 0, .12);
}
.pc-toast.is-error {
    background: #fef0f0;
    color: #f56c6c;
}
/* img-ad-tag（common.scss） */
.img-ad-tag {
    position: absolute;
    right: 8px;
    bottom: 10px;
    width: 24px;
    height: 13px;
}

/* el-descriptions 边框模式复刻（工商信息） */
.el-descriptions-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}
.el-descriptions-table td {
    border: 1px solid #ebeef5;
    padding: 12px 15px;
    font-size: 14px;
    line-height: 1.5;
    vertical-align: top;
    word-break: break-all;
}
.el-descriptions-table .el-descriptions__label {
    background-color: #f5f7fa;
    color: #606266;
    font-weight: 700;
}
.el-descriptions-table .el-descriptions__content {
    color: #303133;
}

/* ===== 阶段 2D：职位列表与职位详情 ===== */

/* 通用补充（common.scss） */
.money { color: #f8664f; }
.money2 { color: var(--salaryThemeColor); }
.fs15 { font-size: 15px; }
.fs17 { font-size: 17px; }
.color666 { color: #666; }
.color-var-hover:hover { color: var(--configColor); }
.ovh { overflow: hidden; }
.svg-block svg { display: block; }
.tn-main-gradient-red {
    background-image: repeating-linear-gradient(45deg, #e83a30, #e72f8c);
    color: #fff;
}
.tn-main-gradient-orangered {
    background-image: repeating-linear-gradient(45deg, #ff7043, #e83a30);
    color: #fff;
}

/* 职位列表（search/index.vue scoped：span19/span5 两栏） */
.search-main .search-main-left {
    width: 79.17%;
    flex: none;
    padding-right: 5px;
}
.search-main .search-main-right {
    width: 20.83%;
    flex: none;
    padding-left: 5px;
}
.search-main .user-info {
    padding: 0 10px;
    padding-bottom: 20px;
}
.user-info .WeChatlogin {
    width: 158px;
    height: auto;
    display: block;
    margin: 0 auto;
}
.user-info .qrcode-img {
    position: relative;
}
.user-info .qrcode-img img {
    width: 125px;
    height: 125px;
}
.user-info .to-login-btn a {
    display: block;
    padding: 10px 0;
    border-radius: 3px;
    background: var(--configColor);
    color: #fff;
    transition: .3s;
}
.user-info .to-login-btn a:hover {
    filter: brightness(1.1);
}
.post-list-item {
    display: block;
    transition: .4s;
}
.post-list-item:hover {
    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1);
}
.post-list-item .item-top {
    padding: 15px;
}
.post-list-item .item-bot {
    padding: 5px 10px;
    background: linear-gradient(90deg, #f5fcfc 0, #fcfbfa 100%);
}
.post-list-item .company2-logo img {
    width: 25px;
    height: 25px;
    object-fit: cover;
}
.post-list-item .post-desc-txt {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
    text-overflow: ellipsis;
}
.post-table td.money-red div {
    color: var(--salaryThemeColor);
}
.post-table td .money {
    color: #FE2919;
}

/* 职位详情（job/[id].vue scoped） */
.position-load-error {
    min-height: calc(100vh - 200px);
    padding-top: 100px;
    text-align: center;
}
.el-result__title {
    margin-top: 20px;
    font-size: 20px;
    color: #303133;
}
.el-result__subtitle {
    margin-top: 10px;
    font-size: 14px;
    color: #909399;
}
.el-result__extra {
    margin-top: 20px;
}
.job-detail .company-name, /* 防御性选择器 */
.company-name {
    color: rgb(128, 131, 139);
}
.company-name:hover {
    color: var(--configColor);
}
.handle-btn div,
.handle-btn button {
    appearance: none;
    border: 0;
    cursor: pointer;
    padding: 8px 25px;
    background: var(--configColor);
    color: #fff;
    border-radius: 5px;
    transition: .2s;
}
.handle-btn div:hover,
.handle-btn button:hover {
    filter: brightness(1.15);
}
.improve {
    color: #999;
    margin-top: 8px;
    justify-content: end;
}
.improve > div {
    width: max-content;
}
.improve > div:hover {
    color: var(--configColor);
}
.improve .el-icon {
    font-size: 16px;
}
.improve span {
    margin-left: 2px;
}
.warn-tips {
    padding: 12px 15px;
    background: #fff8f7;
}
.warn-tips .el-icon {
    margin-right: 5px;
    font-size: 12px;
    color: #ff583d;
    margin-bottom: -2px;
}
.warn-tips span.cp,
.warn-tips button.cp {
    color: var(--configColor);
}
.warn-tips span.cp:hover,
.warn-tips button.cp:hover {
    filter: brightness(1.15);
    text-decoration: underline;
}
.post-center .post-center-left,
.post-center .post-center-right {
    padding-top: 35px;
    padding-bottom: 30px;
}
.post-center .post-center-left {
    width: 70%;
    flex: none;
    padding-right: 30px;
    border-right: 1px solid #f1f1f1;
}
.post-center .post-center-left .company-name {
    color: #414a60;
}
.post-center .post-center-left .logo img {
    width: 62px;
    height: 62px;
    border-radius: 50%;
    display: block;
    object-fit: cover;
}
.post-center .post-center-left .refresh-time {
    padding: 2px 12px;
    border-radius: 25px;
    background-image: linear-gradient(to right, #ff8b77, #ff5857);
    color: #fff;
}
.post-center .post-center-right {
    flex: 1;
    min-width: 0;
    padding-left: 30px;
}
.post-center .post-center-right .company-logo img {
    width: 72px;
    height: 72px;
    display: block;
    object-fit: cover;
    border: 1px solid #f1f1f1;
}
.post-center .post-center-right .company-profile {
    line-height: 1.8;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
}
.post-center .post-center-right .company-info {
    max-width: 300px;
}
.post-center .post-center-right .company-info li {
    margin-bottom: 15px;
}
.hot-post-list li {
    padding: 15px 0;
    border-bottom: 1px dashed #f1f1f1;
}
.hot-post-list a:hover {
    color: var(--configColor);
}
.similar-list > div {
    padding: 12px 15px;
    width: 50%;
    border: 1px solid #eef0f5;
}
.similar-list > div:nth-child(even) {
    margin-left: -1px;
}
.similar-list > div:nth-child(n+2) {
    margin-top: -1px;
}
.similar-list a {
    display: block;
}
.look-more {
    display: block;
    padding: 10px 0;
    background: #fafafa;
    color: var(--configColor);
    transition: .2s;
}
.look-more:hover {
    background: var(--configColor);
    color: #fff;
}
.tingzhao {
    height: 100%;
    justify-content: end;
}
.tingzhao span {
    margin-top: -3px;
}

/* ===== 阶段 2E：人才列表与简历详情 ===== */

/* 通用补充（common.scss） */
.bgc-var { background-color: var(--configColor); }
.zdy-btn {
    display: inline-block;
    cursor: pointer;
    font-size: 14px;
    padding: 6px 16px;
    border-radius: 3px;
    color: #fff;
    transition: .2s;
}
.zdy-btn:hover { filter: brightness(1.15); }

/* 暂未开放提示（pc-action-stub.js） */
.pc-toast {
    display: none;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 9999;
    background: rgba(0, 0, 0, .7);
    color: #fff;
    font-size: 14px;
    padding: 10px 20px;
    border-radius: 4px;
}

/* 人才列表卡片（resumeCenter scoped） */
.resume-item {
    padding: 12px 15px;
    transition: .4s;
}
.resume-item:hover {
    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1);
}
.resume-item .avatar {
    width: 60px;
    height: 60px;
}
.resume-item .avatar img {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    display: block;
    object-fit: cover;
}

/* 简历详情（resumeDetail scoped；span18/span6 两栏） */
.resume-main .resume-main-left {
    width: 75%;
    flex: none;
    padding-right: 10px;
}
.resume-main .resume-main-right {
    width: 25%;
    flex: none;
    padding-left: 10px;
}
.resume-left {
    padding: 25px;
    padding-top: 0;
}
.resume-top {
    padding: 20px 0;
}
.resume-top .top-right {
    flex-direction: column;
    align-items: flex-end;
    display: flex;
}
.resume-top .top-right .avatar {
    justify-content: end;
}
.resume-top .avatar .avatar-img {
    width: 65px;
    height: 65px;
    border-radius: 50%;
    display: block;
    object-fit: cover;
}
.resume-top .sexIcon {
    display: inline-block;
    width: 20px;
    height: 20px;
    background: #3291f8;
    border-radius: 50%;
    padding: 2px;
    color: #fff;
    font-size: 14px;
    text-align: center;
    margin-left: 5px;
}
.resume-top .sexIcon .el-icon {
    transform: translateY(1px);
}
.resume-top .sexIcon.woman {
    background: #f16859;
}
.resume-top .basic span {
    margin-right: 15px;
}
.resume-top .basic span .el-icon {
    transform: translateY(2px);
}
.resume-handle div {
    padding: 8px 22px;
    color: #fff;
    transition: .2s;
    border-radius: 3px;
}
.resume-handle div:hover {
    filter: brightness(1.15);
}
.resume-right {
    padding: 25px;
}
.resume-right .resume-handle {
    width: 80%;
    margin: 15px auto;
    flex-direction: column;
}
.resume-right .resume-handle div {
    padding: 10px 0;
    margin-bottom: 10px;
    color: #fff;
    transition: .2s;
    border-radius: 3px;
}
.resume-right .resume-handle div:hover {
    filter: brightness(1.15);
}
.resume-err {
    padding: 40px 0;
    justify-content: center;
}
.resume-err .el-empty__description {
    margin-top: 0;
}
/* 详情页求职意向表单（基线 el-form-item margin-bottom:0 + label 100px） */
.resume-left .el-form-item {
    display: flex;
    margin-bottom: 0;
}
.resume-left .el-form-item__label {
    width: 100px;
    flex: none;
    padding: 0 12px 0 0;
    line-height: 32px;
    font-size: 14px;
    color: #606266;
}
.resume-left .el-form-item__content {
    line-height: 32px;
    font-size: 14px;
}

/* ===== 阶段 2F：招聘会详情 ===== */

/* network/[id] scoped */
.job-fair-top .head-img img {
    width: 100%;
    height: auto;
    display: block;
}
.job-fair-top .con-txt {
    padding: 0 25px;
}
.job-fair-top .view-data > div {
    margin: 0 25px;
}
.job-fair-top .post-desc {
    line-height: 1.6;
}
.job-fair-company .handle-btn,
.job-fair-resume .handle-btn {
    padding: 12px 22px;
    color: #fff;
    transition: .2s;
    border-radius: 3px;
    border: none;
    font-size: 14px;
}
.job-fair-company .handle-btn:hover,
.job-fair-resume .handle-btn:hover {
    filter: brightness(1.15);
}
.job-fair-company .search-ipt input,
.job-fair-resume .search-ipt input {
    padding: 14px 22px;
    outline: none;
    border: none;
    background: #fff;
}
/* 本页企业卡片覆盖 indexBox 默认值（network/[id] scoped） */
.job-fair-company .index-list .logo img {
    width: 45px !important;
    height: 45px !important;
}
.job-fair-company .index-list .company-post-name {
    max-width: 45% !important;
}
.job-fair-company .index-list a {
    display: flex !important;
    flex-direction: column;
    height: 100%;
}
.job-fair-company .index-list .post-item:last-child {
    margin-bottom: 0;
}
/* 人才列表卡片（network/[id] scoped） */
.job-fair-resume .resume-list a {
    padding: 12px 15px;
    transition: .4s;
    height: 100%;
    width: 100%;
}
.job-fair-resume .resume-list a:hover {
    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1);
}
.job-fair-resume .resume-list .avatar img {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    display: block;
    object-fit: cover;
}

/* ===== 阶段 2H：注册身份选择（regSelect scoped 复刻） ===== */
.reg-select-box {
    position: relative;
    width: 45%;
    height: 350px;
    background: #fff;
    margin: auto;
    margin-top: 30px;
    border: 1px solid #ccc;
    border-top: 8px solid var(--configColor);
    justify-content: space-evenly;
    align-items: center;
}
.reg-select-box > div {
    width: 200px;
    padding: 16px 0;
}

/* ===== 阶段 2I：企业注册（regCompany scoped 复刻） ===== */
.reg-company-box {
    position: relative;
    width: 460px;
    margin: 0 auto;
    margin-top: 30px;
    padding: 30px;
    border: 1px solid #ccc;
    border-top: 8px solid var(--configColor);
    overflow: hidden;
    background: #fff;
}
.reg-company-box .btn div {
    padding: 8px 80px;
}
.reg-company-box .img img {
    width: 398px;
    height: auto;
    display: block;
}
.reg-company-box .img span {
    color: #E24402;
}
/* el-input size=large */
.el-input__inner--large {
    height: 40px;
    line-height: 40px;
}

/* ===== 阶段 2K：首页 ===== */

/* el-tag info/success（element-plus 默认值） */
.el-tag--info {
    background-color: #f4f4f5;
    border-color: #e9e9eb;
    color: #909399;
}
.el-tag--success {
    background-color: #f0f9eb;
    border-color: #e1f3d8;
    color: #67c23a;
}

/* 首页（index.vue scoped） */
.hot-post a {
    color: #444;
    margin-right: 15px;
}
.hot-post a:hover {
    color: var(--configColor);
}
.content {
    height: 400px;
}
.content .fenlei {
    height: 100%;
    position: relative;
    width: 250px;
}
.content .fenlei a:hover {
    color: var(--configColor) !important;
}
.content .fenlei::-webkit-scrollbar {
    display: none;
}
.content .fenlei > li {
    padding: 10.3px 18px;
    transition: .3s;
}
.content .fenlei > li:hover {
    background: #ececec;
}
.content .fenlei > li:hover .sub-category {
    display: block;
}
.content .fenlei .fenleiliebiao {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.content .fenlei .fenleiliebiao .icon {
    display: flex;
    align-items: center;
    color: #575757;
    font-size: 14px;
}
.content .fenlei .sub-category {
    display: none;
    position: absolute;
    top: 0;
    left: 100%;
    z-index: 9;
    line-height: 30px;
    padding: 15px;
    width: 333px;
    height: 100%;
}
.content .fenlei .sub-category a {
    margin-right: 15px;
}
.content .fenlei .sub-category dd {
    overflow: hidden;
}
.content .fenlei .sub-category dd a {
    color: #444;
}
.content .lunbo {
    flex: 1;
}
.pc-carousel {
    position: relative;
    height: 400px;
    overflow: hidden;
}
.pc-carousel-items,
.pc-carousel-item,
.pc-carousel-item a {
    height: 100%;
}
.pc-carousel-item a {
    display: block;
    position: relative;
}
.pc-carousel .banner-img {
    width: 100%;
    height: 100%;
}
.pc-carousel-indicators {
    position: absolute;
    bottom: 12px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    z-index: 2;
}
.pc-carousel-indicators li {
    width: 24px;
    height: 3px;
    margin: 0 4px;
    background: rgba(255, 255, 255, .6);
    cursor: pointer;
}
.pc-carousel-indicators li.is-active {
    background: #fff;
}
.block-a {
    position: relative;
    display: block;
    height: 100%;
}
.row-img {
    width: 100%;
    height: auto;
}
.content .user-info {
    width: 250px;
    padding: 0 10px;
}
.content .user-info .right-user {
    height: 100%;
    flex-direction: column;
    justify-content: space-evenly;
}
.content .user-info .right-user img {
    width: 55px;
    height: 55px;
    border-radius: 50%;
    display: block;
}
.content .user-info .right-user .numdata {
    width: 100%;
    justify-content: space-around;
}
.content .user-info .right-user .numdata .money {
    font-size: 28px;
}
.content .user-info .right-user a {
    padding: 13px 0;
    width: 90%;
    background: var(--configColor);
    color: #fff;
    transition: .2s;
    display: block;
}
.content .user-info .right-user a:hover {
    filter: brightness(1.15);
}
.content .user-info .WeChatlogin {
    width: 158px;
    height: auto;
}
.content .user-info .qrcode-img {
    position: relative;
}
.content .user-info .qrcode-img img {
    width: 125px;
    height: 125px;
}
.content .user-info .qrcode-mask {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 125px;
    height: 125px;
    background: rgba(0, 0, 0, .66);
    color: #fff;
    cursor: pointer;
    text-align: center;
}
.content .user-info .to-login-btn a {
    display: block;
    padding: 10px 0;
    border-radius: 3px;
    background: var(--configColor);
    color: #fff;
    transition: .3s;
}
.content .user-info .to-login-btn a:hover {
    filter: brightness(1.1);
}
.content .user-info .fot-affiche img {
    width: 68px;
    height: auto;
}
.content .user-info .fot-affiche ul > li > a {
    color: #444;
}
/* 找工作页右栏登录面板：与首页 .content .user-info 同款样式（扫码遮罩/登录态统计） */
.search-main-right .user-info .WeChatlogin {
    width: 158px;
    height: auto;
}
.search-main-right .user-info .qrcode-img {
    position: relative;
}
.search-main-right .user-info .qrcode-img img {
    width: 125px;
    height: 125px;
}
.search-main-right .user-info .qrcode-mask {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 125px;
    height: 125px;
    background: rgba(0, 0, 0, .66);
    color: #fff;
    cursor: pointer;
    text-align: center;
}
.search-main-right .user-info .right-user {
    height: 100%;
    flex-direction: column;
    justify-content: space-evenly;
}
.search-main-right .user-info .right-user img {
    width: 55px;
    height: 55px;
    border-radius: 50%;
    display: block;
}
.search-main-right .user-info .right-user .numdata {
    width: 100%;
    justify-content: space-around;
    /* 对齐基线：统计区上下 50px 呼吸间距，避免与头像/按钮挤在一起 */
    margin: 50px 0;
}
.search-main-right .user-info .right-user .numdata .money {
    font-size: 28px;
}
.search-main-right .user-info .right-user a {
    padding: 13px 0;
    width: 90%;
    background: var(--configColor);
    color: #fff;
    transition: .2s;
    display: block;
}
.search-main-right .user-info .right-user a:hover {
    filter: brightness(1.15);
}
.five-img > div {
    width: 20%;
    height: 65px;
    padding-right: 10px;
}
.list-title {
    font-weight: normal;
    font-size: 28px;
    padding: 30px 0;
}
.more-btn {
    padding: 12px 80px;
    color: #fff;
    background: var(--configColor);
}
.company-style2 {
    padding-bottom: 25px;
}
.company-style2 .company-style2-list > div {
    width: 25%;
    padding: 12px 18px;
    border-bottom: 1px dashed #eee;
}
.company-style2 .company-style2-list > div a {
    display: block;
}
.company-style2 .company-style2-list > div a:hover {
    color: var(--configColor);
}
.post-table {
    padding-bottom: 25px;
}
.msg-title {
    padding: 12px 0;
    padding-left: 18px;
    background: linear-gradient(90deg, #f5fcfc 0, #fcfbfa 100%);
}
.msg-title::before {
    content: '';
    display: inline-block;
    width: 5px;
    height: 20px;
    background: var(--configColor);
    vertical-align: bottom;
    margin-right: 12px;
}
.msg-content a {
    width: 33.33%;
    padding: 12px 18px;
    color: #333;
    border-bottom: 1px dashed #eee;
}
.msg-content a:hover {
    color: var(--configColor);
}
.msg-content a .oneEllipsis {
    width: 70%;
}
.fixed-menu {
    background-color: #fff;
    position: fixed;
    right: 0;
    bottom: 150px;
    border-radius: 0;
    z-index: 998;
}
.fixed-menu a {
    display: block;
    padding: 6px 12px;
    border-radius: 6px;
    margin: 4px;
    font-size: 12px;
}
.fixed-menu a:hover {
    background: #f5f5f5;
}
#classes, #company, #hotJob, #topJob {
    scroll-margin-top: 69px;
}

/* ===== 首页视觉升级：仅调整展示，不改变首页数据与交互契约 ===== */
.layout-header {
    position: relative;
    z-index: 1000;
    padding: 10px 0;
    background: linear-gradient(115deg, #123c3a 0%, #17385d 56%, #232f52 100%);
    box-shadow: 0 8px 30px rgba(15, 35, 55, .12);
}
.layout-header > .w,
footer > .w {
    width: min(1280px, calc(100vw - 40px));
    min-width: 0;
}
.layout-header .top-nav {
    align-items: center;
    white-space: nowrap;
}
.layout-header .top-nav a {
    margin-right: 26px;
    opacity: .86;
}
.layout-header .top-nav a:hover,
.layout-header .top-nav .router-link-active {
    opacity: 1;
}
.header-user-menu {
    position: relative;
    flex: none;
}
.header-user-menu .top-user {
    min-height: 38px;
    padding: 4px 10px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 999px;
    background: rgba(255, 255, 255, .08);
}
.header-user-menu .poplist {
    display: none;
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    width: 168px;
    padding: 8px;
    border: 1px solid #edf0f3;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 18px 50px rgba(27, 43, 65, .16);
}
.header-user-menu .poplist::before {
    content: '';
    position: absolute;
    right: 24px;
    bottom: 100%;
    width: 0;
    height: 0;
    border: 7px solid transparent;
    border-bottom-color: #fff;
}
.header-user-menu:hover .poplist,
.header-user-menu:focus-within .poplist {
    display: block;
}
.header-user-menu .poplist a {
    padding: 9px 12px;
    border-radius: 8px;
    text-align: left;
}

@media (max-width: 1080px) {
    .layout-header > .w,
    footer > .w {
        width: min(100% - 28px, 960px);
    }
    .layout-header .fn {
        flex: 1 1 auto;
        min-width: 0;
        overflow: hidden;
    }
    .layout-header .top-nav {
        overflow-x: auto;
    }
    .layout-header .top-nav a {
        margin-right: 18px;
    }
}

@media (max-width: 720px) {
    .layout-header > .w,
    footer > .w {
        width: calc(100% - 24px);
    }
    .layout-header > .w {
        gap: 10px;
    }
    .header-user-menu {
        max-width: 118px;
    }
    .header-user-menu .top-user {
        min-width: 0;
    }
    .header-user-menu .top-user span {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .layout-header .logo-img,
    .layout-header [data-pc-action="open-area-dialog"] {
        display: none;
    }
}

/* 首页原版视觉的破版修复：只约束菜单与图片尺寸。 */
.layout-header {
    position: relative;
    z-index: 1000;
    padding: 6px 0;
    background: url(/pc/images/layout-header-bg.png);
    background-size: 100% 100%;
    box-shadow: none;
}
.layout-header > .w,
footer > .w {
    width: auto;
    max-width: 1280px;
    min-width: 1140px;
}
.layout-header .top-nav a {
    margin-right: 30px;
    opacity: 1;
}
.header-user-menu .top-user {
    min-height: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}
.header-user-menu .poplist {
    top: calc(100% + 8px);
    width: 150px;
    padding: 0;
    border: 0;
    border-radius: 0;
    box-shadow: 0 4px 16px rgba(0, 0, 0, .12);
}
.header-user-menu .poplist::before {
    display: none;
}
/* 悬停桥：填补触发器与下拉之间的空隙，避免鼠标移动经过空隙时下拉消失 */
.header-user-menu .poplist::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 100%;
    height: 12px;
}
.header-user-menu .poplist a {
    padding: 8px 0;
    text-align: center;
}
.five-img .banner-img {
    display: block;
    width: 100%;
    height: 65px;
    object-fit: cover;
}
.post-top {
    width: 60%;
}
.post-bot {
    width: 75%;
}
.post-bot img {
    width: 25px;
    height: 25px;
    object-fit: cover;
}

/* ===== 阶段 3A：个人中心布局与仪表盘 ===== */

/* 个人中心布局（layoutsCommon.scss 复刻；无公共页头页脚） */
.layouts .w {
    width: min(1280px, calc(100vw - 32px));
    min-width: 0;
}
.layouts .head {
    background: url(/pc/images/layout-header-bg.png);
    background-size: 100% 100%;
    background-color: transparent;
    padding: 6px 0;
}
.layouts .head .head-nav a {
    margin-right: 60px;
    color: #fff;
    font-size: 14px;
}
.layouts .head .logo-img {
    height: 35px;
}
.layouts .head .logo-img img {
    height: 100%;
    width: auto;
}
.layouts .con-position {
    position: relative;
}
.layouts .left-menu {
    height: 100%;
}
.layouts .left-menu a {
    white-space: nowrap;
    border-radius: 3px;
    padding: 15px 18px;
    transition: .3s;
    display: block;
    color: #333;
}
.layouts .left-menu a:hover {
    color: #fff;
    background: var(--configColor);
}
.layouts .left-menu a .el-icon,
.layouts .left-menu a .iconfont {
    font-size: 14px;
}
.layouts .left-menu .router-link-active,
.layouts .left-menu .router-link-active:hover {
    background-color: var(--configColor);
    color: #fff;
}
.layouts .container {
    min-height: calc(100vh - 100px);
    display: flex;
    gap: 20px;
    align-items: stretch;
}
.layouts .container .left-position {
    position: static;
    flex: 0 0 160px;
    width: 160px;
    padding: 10px 0;
}
.layouts .container .resume-content {
    flex: 1 1 auto;
    min-width: 0;
}
/* 顶部用户菜单（悬停展开，对齐 el-popover trigger=hover） */
.resume-user-pop {
    position: relative;
}
.resume-user-pop .top-user span {
    color: #fff;
    font-size: 14px;
}
.resume-user-pop .top-user img {
    width: 30px;
    height: 30px;
    border-radius: 50%;
}
.resume-user-pop .resume-poplist {
    display: none;
    position: absolute;
    right: 0;
    top: calc(100% + 8px);
    min-width: 130px;
    background: #fff;
    border: 1px solid #edf0f3;
    border-radius: 12px;
    box-shadow: 0 18px 50px rgba(27, 43, 65, .16);
    padding: 8px;
    z-index: 20;
}
/* 透明桥：填充触发区与菜单间的 8px 视觉空隙，鼠标下移时保持父级 hover 不丢失 */
.resume-user-pop .resume-poplist::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 100%;
    height: 8px;
}
/* 菜单项内缩 + 圆角，hover 底色不贴容器边缘 */
.resume-user-pop .resume-poplist a {
    padding: 9px 12px;
    border-radius: 8px;
}
.resume-user-pop:hover .resume-poplist {
    display: block;
}
/* 未读角标（el-badge 近似） */
.resume-unread-badge {
    position: relative;
}
.resume-unread-num {
    position: absolute;
    top: -8px;
    right: -10px;
    background: #f56c6c;
    color: #fff;
    font-size: 12px;
    border-radius: 10px;
    padding: 0 5px;
    line-height: 16px;
}
@media (max-width: 1280px) {
    .layouts .head .head-nav a {
        margin-right: 28px;
    }
}
@media (max-width: 1100px) {
    .layouts .w {
        width: calc(100vw - 20px);
    }
    .layouts .container {
        gap: 12px;
    }
    .layouts .container .left-position {
        flex-basis: 144px;
        width: 144px;
    }
    .layouts .left-menu a {
        padding: 13px 14px;
    }
}

/* 仪表盘（center scoped 复刻） */
.resume-top-box .circle-img img {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    display: block;
    object-fit: cover;
}
.resume-top-box .resume-icon {
    border-top: 1px solid #eee;
    margin-top: 30px;
    padding-top: 25px;
}
.resume-top-box .resume-icon img {
    margin: 0 auto;
}
.resume-top-box .resume-icon > div,
.resume-top-box .resume-icon > a {
    margin: 0 auto;
    padding: 0 15px;
    cursor: pointer;
    color: #333;
    display: block;
}
/* el-tag 补充 */
.el-tag--danger {
    background-color: #fef0f0;
    border-color: #fde2e2;
    color: #f56c6c;
}
.el-tag:not(.el-tag--small) {
    height: 24px;
    padding: 0 9px;
}
.el-button--small {
    height: 24px;
    padding: 0 11px;
    font-size: 12px;
}

/* ===== 阶段 3B：简历编辑页 ===== */

/* 表单项布局（myResume scoped） */
.resume-form-main {
    width: 1020px;
}
.resume-form-row .el-form-item,
.resume-edit-page .el-form-item,
#exp-modal .el-form-item {
    margin-bottom: 18px;
}
.el-form-item {
    display: flex;
    align-items: flex-start;
    margin-bottom: 18px;
}
.el-form-item > label {
    width: 80px;
    flex: none;
    font-size: 14px;
    color: #606266;
    line-height: 40px;
}
.el-form-item__content {
    width: 360px;
}
.el-form-item.ipt-textarea .el-form-item__content {
    width: calc(360px + 360px + 80px + 32px);
}
.el-input__inner {
    width: 100%;
    height: 38px;
    line-height: 38px;
    padding: 0 15px;
    font-size: 14px;
    border: 1px solid #dcdfe6;
    border-radius: 4px;
    outline: none;
    color: #606266;
    background: #fff;
}
.el-input__inner:focus {
    border-color: var(--configColor, #409eff);
}
.el-input__inner.el-textarea {
    height: auto;
    line-height: 1.5;
    padding: 8px 15px;
    resize: vertical;
}
select.el-input__inner {
    cursor: pointer;
}
.require-css {
    color: #f56c6c;
    margin-right: 2px;
}
.must-css {
    background: #feefea;
    border-radius: 2px;
    color: #fe6135;
    padding: 2px 6px;
}
.el-divider {
    border-top: 1px solid #dcdfe6;
    margin: 15px 0;
}
.big-add-btn {
    padding: 30px 0;
    background: #fafafa;
    border: 1px dashed #bfbfbf;
}
.center-border {
    padding: 0 15px;
    margin: 0 15px;
    border-left: 1px solid #e7e8ef;
    border-right: 1px solid #e7e8ef;
}
.academic-css {
    border-right: 0;
    padding-right: 0;
    margin-right: 0;
}
.add-icon {
    margin-bottom: -2px;
}
/* 简历评分头部 */
.resume-head .score-num {
    padding-left: 5px;
    padding-right: 25px;
    border-right: 1px solid #eee;
}
.resume-head .score-gress {
    width: 50%;
    margin-left: 30px;
}
/* el-progress 近似（text-inside） */
.pc-progress-outer {
    position: relative;
    height: 19px;
    background: #ebeef5;
    border-radius: 100px;
    overflow: hidden;
}
.pc-progress-inner {
    height: 100%;
    border-radius: 100px;
    transition: width .3s;
}
.pc-progress-text {
    position: absolute;
    inset: 0;
    text-align: center;
    font-size: 12px;
    line-height: 19px;
    color: #fff;
}
/* 头像上传卡片（ImageUpload picture-card 复刻；本阶段不上传） */
.pc-avatar-upload {
    width: 120px;
    height: 120px;
    border: 1px dashed #c0ccda;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    background: #fbfdff;
    overflow: hidden;
}
.pc-avatar-upload:hover {
    border-color: var(--configColor);
}
.pc-avatar-upload img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.pc-avatar-upload .el-icon {
    width: 28px;
    height: 28px;
    color: #8c939d;
}
/* 多选/树形选择器 */
.pc-multi-select,
.pc-tree-picker {
    position: relative;
}
.pc-ms-display {
    cursor: pointer;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
    min-height: 38px;
    height: auto;
    padding: 3px 15px;
}
.pc-ms-placeholder {
    color: #a8abb2;
}
.pc-pick-tag .pc-tag-close,
.pc-skill-tag .pc-tag-close {
    cursor: pointer;
    margin-left: 4px;
    font-size: 12px;
}
.pc-ms-panel,
.pc-tree-panel {
    display: none;
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    z-index: 30;
    min-width: 100%;
    background: #fff;
    border: 1px solid #e4e7ed;
    border-radius: 4px;
    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1);
    max-height: 260px;
    overflow: auto;
    padding: 6px 0;
}
.pc-ms-option {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 15px;
    cursor: pointer;
    font-size: 14px;
    color: #606266;
}
.pc-ms-option:hover {
    background: #f5f7fa;
}
.pc-tree-panel {
    padding: 8px;
}
.pc-tree-filter {
    margin-bottom: 6px;
}
.pc-tree-cols {
    display: flex;
    gap: 8px;
}
.pc-tree-col {
    min-width: 140px;
    max-height: 200px;
    overflow: auto;
    border-right: 1px solid #eee;
}
.pc-tree-col2 {
    border-right: none;
}
.pc-tree-col li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 4px 8px;
    cursor: pointer;
}
.pc-tree-col li:hover,
.pc-tree-col li.is-active {
    background: #f5f7fa;
}
.pc-tree-item {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    color: #606266;
    cursor: pointer;
    flex: 1;
}
/* 原生模态 */
.pc-modal-mask {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, .5);
    z-index: 40;
}
.pc-modal-dialog {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 41;
    background: #fff;
    border-radius: 8px;
    max-width: calc(100vw - 40px);
    max-height: calc(100vh - 80px);
    overflow: auto;
}
.pc-modal-head {
    padding: 15px 20px;
    font-size: 16px;
    font-weight: 600;
    color: #303133;
    border-bottom: 1px solid #eee;
}
.pc-modal-close {
    font-size: 20px;
    color: #909399;
    padding: 0;
    border: 0;
    background: transparent;
}
.pc-modal-body {
    padding: 20px;
    display: flex;
    flex-wrap: wrap;
    gap: 0 20px;
}
.pc-modal-foot {
    padding: 10px 20px 15px;
    border-top: 1px solid #eee;
}
.pc-modal-foot .el-button + .el-button {
    margin-left: 10px;
}
/* 底部保存（el-affix 等价） */
.fixed-bot-wrap {
    position: sticky;
    bottom: 20px;
    z-index: 10;
}
.fixed-bot {
    padding: 15px 0;
}
/* el-button 通用补充 */
.el-button {
    display: inline-block;
    height: 32px;
    line-height: 30px;
    padding: 0 15px;
    font-size: 14px;
    border-radius: 4px;
    border: 1px solid #dcdfe6;
    background: #fff;
    color: #606266;
    cursor: pointer;
    text-align: center;
}
.el-button--primary {
    background: var(--configColor, #409eff);
    border-color: var(--configColor, #409eff);
    color: #fff;
}
.el-button--primary:hover {
    filter: brightness(1.15);
}
.el-button--primary.is-plain {
    background: transparent;
    color: var(--configColor, #409eff);
}
.el-button--text {
    border: none;
    background: transparent;
    height: auto;
    padding: 0 4px;
}
.el-button--text.el-button--primary {
    color: var(--configColor, #409eff);
}
.el-button--text.el-button--danger {
    color: #f56c6c;
}

/* ===== 阶段 3D：投递记录状态文本（el-text success/danger） ===== */
.el-text-success {
    color: #67c23a;
}
.el-text-danger {
    color: #f56c6c;
}

/* ===== 阶段 3E：面试记录弹窗 ===== */
.interview-logo img {
    width: 60px;
    height: 60px;
    display: block;
    object-fit: cover;
}
.dialog-padding {
    padding: 20px;
    padding-bottom: 0;
}

/* ===== 阶段 3F：浏览记录双标签 ===== */
.bh-tabs {
    display: flex;
    padding: 0 20px;
    border-bottom: none;
}
.bh-tab {
    padding: 14px 20px;
    font-size: 15px;
    color: #606266;
    cursor: pointer;
    position: relative;
}
.bh-tab.is-active {
    color: var(--configColor);
    font-weight: 600;
}
.bh-tab.is-active::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 60%;
    height: 2px;
    background: var(--configColor);
}

/* ===== 阶段 3G：账号设置 ===== */
.pc-radio {
    display: flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    color: #606266;
}
.pc-radio input[type="radio"] {
    accent-color: var(--configColor);
}
.pb20-bor {
    padding-bottom: 20px;
    border-bottom: 1px solid #eee;
}
.mr20 {
    margin-right: 20px;
}

/* ===== 阶段 3H1：在线聊只读页 ===== */
.online-chat-card {
    height: calc(100vh - 140px);
}
.online-chat-card .chat-head {
    padding: 15px 10px 15px 20px;
    background: #f9f9f9;
    border-bottom: 1px solid #ebebeb;
}
.online-chat-card .contact-list {
    width: 250px;
    border-right: 1px solid #ebebeb;
    height: 100%;
}
.online-chat-card .contact-list .contact-item {
    position: relative;
    padding: 16px;
    transition: .3s;
}
.online-chat-card .contact-list .contact-item:hover {
    background-color: #f7fafc;
}
.online-chat-card .contact-list .contact-item.active {
    background-color: #f6f7f7;
}
.online-chat-card .contact-list .contact-item.active .name-title {
    color: var(--configColor);
}
.online-chat-card .contact-list .avatar img {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    object-fit: cover;
    display: block;
}
.online-chat-card .contact-list .avatar {
    margin-right: 15px;
}
.oc-avatar-placeholder {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: #ececec;
}
.oc-avatar-placeholder img {
    display: none !important;
}
.chat-search {
    border-bottom: 1px solid #ebebeb;
    padding: 4.5px 20px;
}
.oc-list-state {
    padding: 40px 0;
}
.oc-warm-reminder {
    padding: 8px 16px;
    background: #fef0f0;
    color: #f56c6c;
    font-size: 14px;
    line-height: 1.6;
}
.oc-history-item {
    padding: 8px 15px;
}
.oc-history-bubble {
    background-color: #f5f6fa;
    padding: 10px 16px;
    border-radius: 3px;
    max-width: 360px;
    line-height: normal;
    word-break: break-all;
}
#oc-history-list {
    height: 100%;
    overflow-y: auto;
}
#oc-contact-list {
    height: 100%;
    overflow-y: auto;
}
.online-chat-card .contact-detail {
    width: 300px;
    border-left: 1px solid #ebebeb;
    height: 100%;
}

/* ===== 阶段 3H2：在线聊文本发送区 ===== */
.oc-conn-status {
    color: #999;
}
.oc-send-ipt {
    /* 对齐基线 chat.scss：高度 170px、左右 20px 内边距 */
    height: 170px;
    padding: 0 20px 10px;
    border-top: 1px solid rgba(0, 0, 0, .1);
    box-sizing: border-box;
}
.oc-send-label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
}
.oc-send-ipt textarea {
    width: 100%;
    box-sizing: border-box;
    color: #333;
    height: 70px;
    resize: none;
    border: none;
    outline: none;
    padding: 0;
    font-size: 14px;
    background: transparent;
}
.oc-send-bot {
    justify-content: flex-end;
}
.oc-send-bot .zdy-btn {
    border-radius: 50px;
    border: none;
    padding: 10px 24px;
    cursor: pointer;
}
.oc-send-bot .zdy-btn:disabled {
    opacity: .5;
    cursor: not-allowed;
}
.oc-enter-txt {
    color: #ccc;
    margin-right: 20px;
}
.oc-history-item.oc-item-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}
.oc-send-state {
    margin-bottom: 2px;
}

/* ===== 阶段 3H3A：消息卡片与常用语 ===== */
.oc-msg-img {
    max-width: 220px;
    max-height: 220px;
    display: block;
    border-radius: 4px;
}
.oc-msg-card {
    min-width: 200px;
}
.oc-msg-card .blod {
    margin-bottom: 4px;
}
.oc-msg-card a {
    display: inline-block;
    margin-top: 6px;
}
.oc-auto-reply {
    margin-top: 4px;
    color: #999;
    font-size: 12px;
}
.oc-phrase-btn {
    border: 1px solid #dcdfe6;
    background: #fff;
    color: #606266;
    border-radius: 4px;
    padding: 6px 14px;
    font-size: 14px;
    cursor: pointer;
    margin-right: 10px;
}
.oc-phrase-btn:hover {
    border-color: var(--configColor);
    color: var(--configColor);
}
.oc-phrase-panel {
    position: absolute;
    bottom: calc(100% + 4px);
    left: 20px;
    right: 20px;
    max-height: 220px;
    overflow-y: auto;
    background: #fff;
    border: 1px solid #e4e7ed;
    border-radius: 6px;
    box-shadow: 0 -4px 16px rgba(0, 0, 0, .08);
    padding: 8px 0;
    z-index: 20;
}
.oc-send-ipt {
    position: relative;
}
.oc-phrase-item {
    width: 100%;
    border: 0;
    background: transparent;
    text-align: left;
    padding: 8px 16px;
    cursor: pointer;
    color: #414141;
    word-break: break-all;
}
.oc-phrase-item:hover {
    background: #f5f7fa;
}

/* ===== 阶段 3H3B：图片发送 ===== */
.oc-tool-btn {
    border: 1px solid #dcdfe6;
    background: #fff;
    color: #606266;
    border-radius: 4px;
    padding: 6px 14px;
    font-size: 14px;
    cursor: pointer;
    margin-right: 10px;
    display: inline-block;
}
.oc-tool-btn:hover {
    border-color: var(--configColor);
    color: var(--configColor);
}
.oc-tool-btn.is-disabled {
    opacity: .5;
    cursor: not-allowed;
    pointer-events: none;
}

/* ===== 在线聊图标工具栏（对齐基线 chat.scss send-top：20px 图标 + 50px 行高） ===== */
.oc-send-top {
    height: 50px;
}
.oc-icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    margin-right: 20px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
}
.oc-icon-btn img {
    width: 20px;
    height: 20px;
    border-radius: 0;
    display: block;
}
.oc-icon-btn:disabled,
.oc-icon-btn.is-disabled {
    opacity: .5;
    cursor: not-allowed;
}
.oc-icon-btn.is-disabled {
    pointer-events: none;
}

/* ===== 阶段 3H3D：微信卡片 ===== */
.oc-wx-card {
    min-width: 220px;
}
.oc-wx-icon {
    width: 42px;
    height: 42px;
    border-radius: 4px;
    background: #07c160;
    color: #fff;
    font-size: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: 10px;
    flex: none;
}
.oc-wx-btn {
    display: inline-block;
    margin-top: 10px;
    text-align: center;
    border: 0;
}

/* ===== 阶段 3H3H：切换沟通职位弹窗 ===== */
.oc-switch-list {
    max-height: 320px;
    overflow-y: auto;
}
.oc-switch-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 8px;
    cursor: pointer;
    border-bottom: 1px solid #eee;
}
.oc-switch-item:last-child {
    border-bottom: none;
}
.oc-switch-item:hover {
    background: #f5f7fa;
}
.oc-switch-item input[type="radio"] {
    accent-color: var(--configColor);
}
#oc-chat-position:hover {
    color: var(--configColor);
}

/* ===== 阶段 3H3L：投递简历卡片 ===== */
.oc-apply-card {
    min-width: 240px;
}
.oc-apply-icon {
    width: 42px;
    height: 42px;
    border-radius: 4px;
    background: #1989fa;
    color: #fff;
    font-size: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: 10px;
    flex: none;
}
.oc-apply-icon-green {
    background: #5cb87a;
}
.oc-apply-btn {
    display: inline-block;
    margin-top: 10px;
    text-align: center;
}

/* ===== 阶段 3H4：一键已读/删除/举报/资格提示 ===== */
#oc-mark-all:hover {
    color: var(--configColor);
}
.contact-item .close-btn {
    position: absolute;
    left: 6px;
    top: 50%;
    transform: translateY(-50%);
    opacity: 0;
    transition: .3s;
    color: #999;
    font-size: 16px;
    z-index: 2;
}
.contact-item:hover .close-btn {
    opacity: 1;
}
.contact-item:hover {
    padding-left: 36px;
}
.oc-apply-icon-blue {
    background: #1989fa;
}
.oc-pay-tip {
    background: #f8f9f9;
    padding: 20px;
    height: 170px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.oc-cs-pop {
    position: relative;
}
.oc-cs-panel {
    display: none;
    position: absolute;
    bottom: calc(100% + 8px);
    left: 50%;
    transform: translateX(-50%);
    width: 220px;
    background: #fff;
    border-radius: 6px;
    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .15);
    padding: 12px;
    z-index: 20;
}
.pay-btn-bg {
    background: var(--salaryThemeColor);
    color: #fff;
}
.mr20 {
    margin-right: 20px;
}
.fjc {
    justify-content: center;
}
/* 阶段 3I：/resume/vip 个人会员（取值逐字来自 components/adminVip/index.vue scoped 样式） */
.box-card .title {
    background: #171c28;
    color: #f8b525;
    padding: 18px 0 18px 25px;
    font-size: 20px;
}
.box-card .title img {
    width: 25px;
    height: 25px;
    vertical-align: bottom;
}
.box-card .content {
    padding: 30px 35px;
    background: #fff;
}
.box-card .detail {
    flex: 1;
}
.box-card .detail .fx {
    width: 70%;
}
.box-card .detail .fx div {
    width: 33%;
    margin-bottom: 8px;
}
.box-card .money {
    text-align: right;
    color: #ff6200;
    font-weight: 700;
    font-size: 16px;
}
.vip-load-failed {
    padding: 40px 0;
}
.vip-qr-dialog .pc-modal-head {
    text-align: center;
    position: relative;
}
.vip-qr-dialog .vip-qr-close {
    position: absolute;
    right: 16px;
    top: 13px;
}
.vip-qr-wrap {
    position: relative;
    display: inline-block;
    line-height: 0;
}
.vip-qr-overlay {
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, .95);
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    line-height: 1.5;
}
.vip-qr-overlay-text {
    color: #606266;
    font-size: 14px;
    padding: 0 12px;
}
.vip-buy-btn:disabled {
    opacity: .6;
    cursor: not-allowed;
}
/* 阶段 4A：/enterprise/center（取值逐字来自 pages/enterprise/center/index.vue scoped、components/lookResume/index.vue scoped 与 common.scss） */
.mr8 {
    margin-right: 8px;
}
.mb8 {
    margin-bottom: 8px;
}
.icon-img img {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    display: block;
    object-fit: cover;
}
.company-info {
    flex: 1;
    padding: 30px 40px;
    border-right: 1px solid #efefef;
}
.company-service {
    width: 210px;
}
.company-service .service-img {
    padding: 15px 25px;
}
.company-service .service-img .service-phone {
    padding-bottom: 15px;
    border-bottom: 1px solid #efefef;
}
.company-service .service-img img {
    width: 120px;
    height: 120px;
    object-fit: cover;
}
.company-num {
    padding-top: 30px;
    margin-top: 30px;
    border-top: 1px solid #efefef;
}
.ec-meal-title img {
    width: 25px;
    height: 25px;
    vertical-align: bottom;
}
.qrcode {
    width: 125px;
    height: 125px;
    object-fit: cover;
}
/* 微信小程序 hover 弹层（el-popover 复刻） */
.ec-wx-pop {
    position: relative;
    display: inline-block;
}
.ec-wx-panel {
    display: none;
    position: absolute;
    /* 对齐基线 el-popover 默认 placement=bottom：从按钮下方向下展开 */
    top: calc(100% + 8px);
    left: 0;
    width: 180px;
    background: #fff;
    border-radius: 6px;
    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .15);
    padding: 12px;
    z-index: 20;
}
.ec-wx-pop:hover .ec-wx-panel {
    display: block;
}
/* 透明桥：填充按钮与弹层间的 8px 空隙，保持 hover 不断链 */
.ec-wx-panel::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 100%;
    height: 8px;
}
.ec-wx-btn .el-icon {
    margin-right: 5px;
    vertical-align: -2px;
}
/* el-button 变体补充 */
.el-button.is-round {
    border-radius: 20px;
}
.el-button.is-plain {
    background: #fff;
}
.el-button--warning {
    background-color: #e6a23c;
    border-color: #e6a23c;
    color: #fff;
}
.el-button--warning.is-plain {
    background-color: #fdf6ec;
    border-color: #faecd8;
    color: #e6a23c;
}
.el-button--danger.is-plain {
    background-color: #fef0f0;
    border-color: #fde2e2;
    color: #f56c6c;
}
.el-button.is-plain:hover {
    filter: brightness(1.02);
}
/* el-tabs 复刻（mealTab 自定义样式逐字来自页面 scoped） */
.el-tabs__header {
    margin: 0 0 15px;
}
.el-tabs__nav {
    display: flex;
    flex-wrap: wrap;
}
.el-tabs__item {
    padding: 8px 16px;
    cursor: pointer;
    color: #303133;
    user-select: none;
}
.mealTab .el-tabs__header .el-tabs__item {
    border: 1px solid #dee4ec;
    background: #fff;
    margin-right: 10px;
    border-radius: 6px;
    font-weight: 700;
}
.mealTab .el-tabs__header .el-tabs__item.is-active,
.mealTab .el-tabs__header .el-tabs__item:hover {
    border: 1px solid var(--configColor);
    color: var(--configColor);
}
.mealTab .el-tabs__header .el-tabs__nav {
    border: 0;
    flex-wrap: nowrap;
    overflow-x: auto;
}
/* el-descriptions 无边框模式（企业中心套餐信息卡，对齐基线 label-width=110 行内排列） */
.ec-desc-body {
    display: flex;
    flex-wrap: wrap;
}
.ec-desc-item {
    display: inline-flex;
    align-items: baseline;
    /* 对齐基线 el-descriptions 默认 column=3：每行 3 项 */
    width: 33.33%;
    box-sizing: border-box;
    padding-bottom: 12px;
    padding-right: 30px;
    font-size: 14px;
    line-height: 1.5;
    white-space: nowrap;
}
.ec-desc-label {
    width: 110px;
    flex: none;
    color: #606266;
    text-align: left;
}
.ec-desc-item .el-descriptions__content {
    color: #303133;
    margin-left: 8px;
}
.ec-resume-avatar-empty {
    background: #f5f7fa;
    border-radius: 50%;
}
.mealTab .el-tabs__header {
    border: 0;
}
.mealTab .detail {
    flex: 1;
}
.mealTab .detail .fx {
    width: 70%;
}
.mealTab .detail .fx div {
    width: 33%;
    margin-bottom: 8px;
}
.mealTab .money {
    text-align: right;
    color: #ff6200;
}
.mealTab .pay {
    color: #fff;
    padding: 6px 20px;
    background: linear-gradient(to right, #ff8d08, #ff6d2b);
    transition: .3s;
    border: 0;
    border-radius: 4px;
    cursor: pointer;
}
.mealTab .pay:hover {
    opacity: .8;
}
.mealTab .pay:disabled {
    opacity: .6;
    cursor: not-allowed;
}
/* 推荐简历（common.scss .admin-resume-item / .resume-name） */
.admin-resume-item {
    padding: 12px 15px;
    transition: .4s;
    border-bottom: 1px solid #eee;
}
.admin-resume-item .avatar .ec-resume-avatar {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    display: block;
    object-fit: cover;
    cursor: zoom-in;
}
.resume-name {
    font-size: 16px;
}
/* 查看简历全屏弹层（el-dialog fullscreen 复刻） */
.ec-resume-dialog {
    position: fixed;
    inset: 0;
    z-index: 50;
    background: #fff;
    overflow: auto;
}
.ec-resume-dialog-inner {
    max-width: 990px;
    margin: 5vh auto 40px;
    padding: 0 20px;
}
.ec-resume-dialog-head {
    padding: 15px 0;
    font-size: 16px;
    font-weight: 600;
    color: #303133;
    border-bottom: 1px solid #eee;
}
.ec-resume-dialog-body {
    padding: 20px 0;
}
.ec-resume-error-img {
    width: 120px;
    height: 120px;
    object-fit: cover;
    margin-bottom: 10px;
}
/* 查看电话：共享简历弹层上的居中号码卡片 */
.erv-phone-modal {
    position: fixed;
    inset: 0;
    z-index: 80;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    box-sizing: border-box;
}
.erv-phone-mask {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .42);
}
.erv-phone-card {
    position: relative;
    width: 420px;
    max-width: 100%;
    box-sizing: border-box;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 12px 32px rgba(0, 0, 0, .16);
    overflow: hidden;
}
.erv-phone-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 20px;
    border-bottom: 1px solid #ebeef5;
}
.erv-phone-close {
    width: 24px;
    height: 24px;
    border: 0;
    background: transparent;
    color: #909399;
    font-size: 22px;
    line-height: 22px;
}
.erv-phone-close:hover {
    color: #606266;
}
.erv-phone-title {
    color: #303133;
    font-size: 16px;
    font-weight: 600;
}
.erv-phone-body {
    padding: 26px 24px 30px;
}
.erv-phone-label {
    margin-bottom: 10px;
    color: #909399;
    font-size: 13px;
    text-align: center;
}
.erv-phone-number-row {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 58px;
    border: 1px solid #dcdfe6;
    border-radius: 6px;
    background: #fafafa;
}
.erv-phone-number {
    width: 100%;
    padding: 0 78px;
    box-sizing: border-box;
    color: #303133;
    font-size: 24px;
    font-weight: 600;
    letter-spacing: 1px;
    line-height: 1.3;
    text-align: center;
    user-select: text;
}
.erv-phone-number.is-empty {
    color: #909399;
    font-size: 16px;
    letter-spacing: 0;
}
.erv-phone-copy {
    position: absolute;
    right: 12px;
    height: 32px;
    padding: 0 12px;
    border: 1px solid var(--configColor, #009b77);
    border-radius: 4px;
    background: #fff;
    color: var(--configColor, #009b77);
    font-size: 13px;
}
.erv-phone-copy:hover {
    background: #f3faf8;
}
.erv-phone-copy:disabled {
    border-color: #dcdfe6;
    color: #c0c4cc;
    cursor: not-allowed;
}
.erv-phone-foot {
    padding: 12px 20px;
    border-top: 1px solid #ebeef5;
    text-align: right;
}
.erv-phone-ok {
    min-width: 82px;
    height: 36px;
    border: 0;
    border-radius: 4px;
    background: var(--configColor, #009b77);
    color: #fff;
    font-size: 14px;
}
.erv-phone-ok:hover {
    opacity: .9;
}
/* lookResume scoped */
.resuem-box {
    width: 100%;
    padding: 10px 0;
    flex-direction: column;
}
.resuem-box .title {
    background-color: #f1f2f6;
    padding: 15px;
}
.resuem-box .list-box {
    border: 1px solid #ebeef5;
    padding: 15px;
}
.resuem-box .list-box > div:last-child {
    margin-bottom: 0;
}
.resuem-box .avatar .ec-resume-avatar-lg {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    display: block;
    object-fit: cover;
}
/* 头像预览 */
.ec-avatar-dialog {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 41;
}
.ec-avatar-dialog img {
    max-width: 80vw;
    max-height: 80vh;
    border-radius: 8px;
}
/* 简历查看弹层内的头像预览：简历弹层 ec-resume-dialog z-index=50，预览层需更高 */
.erv-avatar-preview .pc-modal-mask {
    z-index: 60;
}
.erv-avatar-preview .ec-avatar-dialog {
    z-index: 61;
}
/* el-descriptions border 变体（查看简历弹层） */
.el-descriptions--border {
    width: 100%;
    border-collapse: collapse;
}
.el-descriptions--border .el-descriptions__label,
.el-descriptions--border .el-descriptions__content {
    border: 1px solid #ebeef5;
    padding: 10px 12px;
}
/* 阶段 4C：/enterprise/pushPosition（取值逐字来自页面 scoped 与 MapContainer scoped） */
.admin-form {
    width: 500px;
}
.admin-form .el-form-item {
    margin-bottom: 18px;
}
.el-form-item__label.is-required::before {
    content: '*';
    color: #f56c6c;
    margin-right: 4px;
}
.salary-ipt .el-input__inner {
    width: 165px;
}
.ipt-textarea .el-input__inner {
    width: 100%;
}
.red {
    color: #f56c6c;
}
/* 地图容器（MapContainer scoped 逐字） */
#pe-map-container {
    position: relative;
    padding: 0;
    margin: 0;
    width: 100%;
    height: 380px;
}
#pe-map-container.isBg::after {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    content: '';
    background: url('/pc/images/default_map_medium.png') no-repeat;
    background-size: 100% 100%;
    pointer-events: none;
}
.pe-map-results {
    position: absolute;
    top: 36px;
    left: 0;
    right: 0;
    max-height: 280px;
    overflow: auto;
    background: #fff;
    border: 1px solid #e4e7ed;
    border-radius: 4px;
    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1);
    z-index: 30;
}
.pe-map-result-item {
    padding: 8px 12px;
    cursor: pointer;
    line-height: 1.5;
}
.pe-map-result-item:hover {
    background: #f5f7fa;
}
/* 阶段 4B：/enterprise/positionManagement（取值逐字来自页面 scoped、element-plus 与 common.scss） */
.card-body-pb0 .el-card__body,
.el-card__body.card-body-pb0 {
    padding-bottom: 0;
}
.dis-btn {
    opacity: .5;
    cursor: not-allowed;
}
.tar {
    text-align: right;
}
/* 标签页（el-radio-button 复刻） */
.pm-tabs {
    display: inline-flex;
}
.pm-tab {
    display: inline-block;
    padding: 8px 15px;
    font-size: 14px;
    color: #606266;
    background: #fff;
    border: 1px solid #dcdfe6;
    border-left: 0;
    cursor: pointer;
}
.pm-tab:first-child {
    border-left: 1px solid #dcdfe6;
    border-radius: 4px 0 0 4px;
}
.pm-tab:last-child {
    border-radius: 0 4px 4px 0;
}
.pm-tab.is-active {
    background: var(--configColor);
    border-color: var(--configColor);
    color: #fff;
}
/* 表单控件复刻 */
.el-input__inner {
    border: 1px solid #dcdfe6;
    border-radius: 4px;
    padding: 8px 12px;
    font-size: 14px;
    outline: none;
    background: #fff;
    color: #303133;
}
.el-input__inner:focus {
    border-color: var(--configColor);
}
.el-checkbox {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    color: #606266;
    cursor: pointer;
    margin-right: 12px;
}
.el-checkbox.is-bordered {
    border: 1px solid #dcdfe6;
    border-radius: 4px;
    padding: 7px 12px;
}
.el-radio {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    color: #606266;
    cursor: pointer;
    margin-right: 16px;
}
.pm-textarea {
    width: 100%;
    resize: vertical;
    font-family: inherit;
}
.el-form-item {
    display: flex;
    align-items: flex-start;
    margin-bottom: 18px;
}
.el-form-item__label {
    width: 90px;
    flex: none;
    line-height: 32px;
    color: #606266;
    font-size: 14px;
}
/* el-switch 复刻 */
.el-switch {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
}
.el-switch input {
    display: none;
}
.el-switch__core {
    display: inline-block;
    width: 40px;
    height: 20px;
    border-radius: 10px;
    background: #dcdfe6;
    position: relative;
    transition: .3s;
}
.el-switch__core::after {
    content: '';
    position: absolute;
    top: 2px;
    left: 2px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #fff;
    transition: .3s;
}
.el-switch input:checked + .el-switch__core {
    background: var(--configColor);
}
.el-switch input:checked + .el-switch__core::after {
    left: 22px;
}
/* el-tag dark 变体 */
.el-tag.is-dark.el-tag--warning {
    background-color: #e6a23c;
    border-color: #e6a23c;
    color: #fff;
}
.el-tag.is-dark.el-tag--danger {
    background-color: #f56c6c;
    border-color: #f56c6c;
    color: #fff;
}
.el-tag.is-dark.el-tag--info {
    background-color: #909399;
    border-color: #909399;
    color: #fff;
}
.el-tag.is-dark.el-tag--success {
    background-color: #67c23a;
    border-color: #67c23a;
    color: #fff;
}
.el-tag--small {
    padding: 0 6px;
    font-size: 12px;
}
/* el-link 变体 */
.el-link--danger {
    color: #f56c6c;
    cursor: pointer;
}
.el-link--warning {
    color: #e6a23c;
    cursor: pointer;
}
/* 推广/置顶价格卡（页面 scoped 逐字） */
.bus-con {
    padding: 10px 25px;
}
.bus-con .price-item {
    border: 1px solid #eee;
    border-radius: 5px;
    padding: 10px 20px;
    width: calc(50% - 5px);
    box-sizing: border-box;
}
.bus-con .price-item.active {
    border-color: var(--configColor);
}
.bus-con .price-item.active .price-num {
    color: var(--configColor);
}
.auto-reply-tip {
    margin-left: 90px;
    margin-top: -8px;
}
/* 匹配简历筛选组（el-radio-button 无边框变体，对齐 resumeLibrary deep 样式） */
.pm-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 2px;
}
.pm-filter-item {
    padding: 5px 10px;
    font-size: 14px;
    color: #606266;
    cursor: pointer;
}
.pm-filter-item.is-active {
    color: var(--configColor);
    font-weight: 700;
}
.pm-match-dialog .pm-match-body {
    max-height: 70vh;
    overflow: auto;
}
/* 展示区域两级勾选树 */
.pm-area-tree {
    max-height: 320px;
    overflow: auto;
    border: 1px solid #ebeef5;
    border-radius: 4px;
    padding: 10px;
}
.pm-area-node {
    margin-bottom: 8px;
}
.pm-area-children {
    margin-left: 24px;
    margin-top: 4px;
}
/* 阶段 4D：/enterprise/resumeManagement（取值逐字来自页面 scoped） */
.admin-resume-item .apply-info {
    width: 260px;
}
/* 搜索区：flex 对齐，输入框/下拉/按钮同高 36px */
.rm-search-form {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}
.rm-search-form .el-form-item {
    margin: 0;
    width: 200px;
}
.rm-search-form .el-form-item.rm-form-item--btn {
    width: auto;
}
.rm-search-form .el-input__inner {
    width: 100%;
    height: 36px;
    box-sizing: border-box;
    padding: 0 12px;
    border: 1px solid #dcdfe6;
    border-radius: 4px;
    transition: border-color .2s, box-shadow .2s;
}
.rm-search-form .el-input__inner:hover {
    border-color: #c0c4cc;
}
.rm-search-form .el-input__inner:focus {
    border-color: var(--configColor);
    box-shadow: 0 0 0 2px rgba(0, 0, 0, .04);
}
.rm-search-form select.el-input__inner {
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
    color: #606266;
    padding-right: 30px;
    background: #fff url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="%23999" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M6 9l6 6 6-6"/></svg>') no-repeat right 10px center;
}
.rm-search-form .rm-search-btn {
    height: 36px;
    padding: 0 22px;
    border: 0;
    border-radius: 4px;
    background: var(--configColor);
    color: #fff;
    font-size: 14px;
    cursor: pointer;
    transition: filter .2s;
}
.rm-search-form .rm-search-btn:hover {
    filter: brightness(1.1);
}

/* ===== 在线聊右栏（对齐基线 chat.scss：detail-info/ptb20-borb/resume-tel） ===== */
.online-chat-card .contact-detail .detail-info {
    padding: 0 20px;
}
.online-chat-card .contact-detail .ptb20-borb {
    border-bottom: 1px solid #ebebeb;
    padding: 20px 0;
}
.online-chat-card .contact-detail .ptb20-borb:last-child {
    border: none;
}
.online-chat-card .resume-tel {
    padding: 15px 0;
}
/* AI 报告：textContent + pre-wrap 安全渲染（基线 v-html 的视觉差异见交接记录） */
.rm-ai-text {
    white-space: pre-wrap;
    word-break: break-word;
    max-height: 60vh;
    overflow: auto;
    line-height: 1.7;
    color: #303133;
}
/* 阶段 4E：/enterprise/resumeLibrary */
.card-body-pt0 .el-card__body {
    padding-top: 0;
}
.pm-filter-item {
    display: inline-block;
}
/* 阶段 4G：/enterprise/resumeRecommen（页面 scoped 逐字） */
.rr-apply-info {
    width: 330px;
}
.rr-post-select {
    width: 220px;
}
/* 阶段 4H：/enterprise/interviewInvitation（el-text info 变体，取值 element-plus） */
.el-text-info {
    color: #909399;
}
/* 阶段 4J：/enterprise/browsingHistory（页面 scoped 逐字） */
.bh-tabs .el-tabs__header {
    padding: 0 20px;
}
/* 阶段 4K：/enterprise/information（取值逐字来自页面 scoped 与 ImageUpload 语义） */
/* 上传组件（el-upload picture-card 复刻） */
.ei-up-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.ei-up-item {
    position: relative;
    width: 80px;
    height: 80px;
    border-radius: 6px;
    overflow: hidden;
    border: 1px solid #dcdfe6;
}
.ei-up-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    cursor: zoom-in;
}
.ei-up-del {
    position: absolute;
    top: 0;
    right: 0;
    width: 20px;
    height: 20px;
    border: 0;
    border-radius: 0 0 0 6px;
    background: rgba(0, 0, 0, .5);
    color: #fff;
    cursor: pointer;
    line-height: 20px;
    padding: 0;
}
.ei-up-add {
    width: 80px;
    height: 80px;
    border: 1px dashed #c0ccda;
    border-radius: 6px;
    background: #fbfdff;
    font-size: 24px;
    color: #8c939d;
    cursor: pointer;
}
.ei-up-add:hover {
    border-color: var(--configColor);
    color: var(--configColor);
}
.ei-up-add:disabled {
    opacity: .6;
    cursor: not-allowed;
}
/* 文字 Logo 预览（页面 scoped 逐字） */
.zdy-logo {
    width: 120px;
    height: 120px;
    padding: 10px;
    color: #fff;
    font-size: 64px;
    font-weight: 700;
    word-break: break-all;
}
.ei-color-swatch {
    width: 24px;
    height: 24px;
    border-radius: 4px;
    cursor: pointer;
    border: 1px solid #e4e7ed;
    display: inline-block;
}
/* 共享地址地图容器（enterprise-address-map.js，语义同 4C #pe-map-container） */
.eamap-container {
    position: relative;
    padding: 0;
    margin: 0;
    width: 100%;
    height: 380px;
}
.eamap-container.isBg::after {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    content: '';
    background: url('/pc/images/default_map_medium.png') no-repeat;
    background-size: 100% 100%;
    pointer-events: none;
}
/* 阶段 4L：/enterprise/ainancialManagement（页面 scoped 逐字） */
.fm-logo {
    width: 50px;
    height: 50px;
    display: block;
}
.fm-logo img {
    width: 50px;
    height: 50px;
    display: block;
}

/* ===== 阶段 4Q：企业会员（adminVip 复刻） ===== */
.vip-box-card .vip-title {
    background: #171c28;
    color: #f8b525;
    padding: 18px 0;
    padding-left: 25px;
    font-size: 20px;
}
.vip-box-card .vip-title img {
    width: 25px;
    height: 25px;
    vertical-align: bottom;
}
.vip-box-card .vip-content {
    padding: 30px 35px;
    background: #fff;
}
.vip-box-card .vip-detail {
    flex: 1;
}
.vip-box-card .vip-detail .fx {
    width: 70%;
}
.vip-box-card .vip-detail .fx div {
    width: 33%;
    margin-bottom: 8px;
}
.vip-box-card .vip-money {
    text-align: right;
    color: #ff6200;
    font-weight: 700;
    font-size: 16px;
}
.vip-qr-overlay {
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, .95);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
}
/* 企业表单 label 宽（基线 pushPosition/information el-form label-width=100px；个人 myResume 为 80px 不变） */
#pe-form .el-form-item > label,
#ei-form .el-form-item > label {
    width: 100px;
}
/* 企业信息页整行表单项（基线 information scoped：calc(360px + 360px + 100px + 32px)） */
#ei-form .el-form-item.ipt-textarea .el-form-item__content {
    width: calc(360px + 360px + 100px + 32px);
}

/* ===== 企业表单视觉对齐（基线 el-form inline / cascader / 多选标签框 / input append） ===== */
/* information 基线为 inline 双列表单；admin-form 500px 仅属于 pushPosition scoped */
#ei-form.admin-form {
    width: auto;
}
#ei-form .el-form-item {
    display: inline-flex;
    width: 460px;
    margin-right: 32px;
    vertical-align: top;
}
#ei-form .el-form-item.ipt-textarea {
    display: flex;
    width: 100%;
    margin-right: 0;
}
/* 薪资区间单行不换行（基线 salary-ipt fx 单行：165 + - + 165 + 元/月） */
.salary-ipt {
    flex-wrap: nowrap;
    white-space: nowrap;
}
.salary-ipt span {
    white-space: nowrap;
}
/* el-input-group append（基线招聘人数 #append 人） */
.el-input-group {
    display: flex;
    width: 100%;
}
.el-input-group .el-input__inner {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}
.el-input-group__append {
    flex: none;
    display: inline-flex;
    align-items: center;
    padding: 0 20px;
    background: #f5f7fa;
    color: #909399;
    border: 1px solid #dcdfe6;
    border-left: 0;
    border-radius: 0 4px 4px 0;
    font-size: 14px;
}

/* ===== PC-UI 设计系统（2026-09-04 统一组件风格，可复用；令牌化，主题色 var(--configColor)） ===== */
:root {
    --pcui-h: 40px;
    --pcui-radius: 6px;
    --pcui-border: #dbe1ea;
    --pcui-border-hover: #b3bdd0;
    --pcui-text: #303133;
    --pcui-text-2: #606266;
    --pcui-placeholder: #a8b1c0;
    --pcui-tint: color-mix(in srgb, var(--configColor) 9%, #fff);
    --pcui-ring: none;
    --pcui-shadow: 0 8px 28px rgba(15, 23, 42, .12);
}
/* --- 输入框 / 文本域 / 原生下拉 --- */
.el-input__inner,
.pc-casc,
.pc-msel {
    height: var(--pcui-h);
    line-height: var(--pcui-h);
    padding: 0 12px;
    border: 1px solid var(--pcui-border);
    border-radius: var(--pcui-radius);
    background-color: #fff;
    color: var(--pcui-text);
    transition: border-color .2s, box-shadow .2s;
}
.el-input__inner:hover,
.pc-casc:hover,
.pc-msel:hover {
    border-color: var(--pcui-border-hover);
}
.el-input__inner:focus,
.pc-casc.is-open,
.pc-msel.is-open {
    border-color: var(--configColor);
    box-shadow: var(--pcui-ring);
    outline: none;
}
.el-input__inner:disabled {
    background-color: #f5f7fa;
    border-color: #e8ebf0;
    color: #a8abb2;
    cursor: not-allowed;
}
.el-input__inner::placeholder {
    color: var(--pcui-placeholder);
}
textarea.el-input__inner {
    height: auto;
    line-height: 1.6;
    padding: 8px 12px;
}
/* 原生 select 自定义箭头（去掉系统默认样式） */
select.el-input__inner {
    appearance: none;
    -webkit-appearance: none;
    padding-right: 36px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 1024 1024'%3E%3Cpath fill='%23a8abb2' d='M512 704 128 320l45.248-45.248L512 613.504l338.752-338.752L896 320z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    cursor: pointer;
}
/* 下拉浮层圆角与阴影统一 */
.pc-casc-drop,
.pc-msel-drop {
    border-radius: 10px;
    border-color: #ebeef5;
    box-shadow: var(--pcui-shadow);
}
/* ===== pc-select 统一下拉（仿 el-select；值写回原 select） ===== */
.pc-sel {
    position: relative;
    display: flex;
    align-items: center;
    gap: 4px;
    height: var(--pcui-h);
    min-width: 0;
    padding: 0 32px 0 12px;
    border: 1px solid var(--pcui-border);
    border-radius: var(--pcui-radius);
    background-color: #fff;
    color: var(--pcui-text);
    font-size: 14px;
    cursor: pointer;
    transition: border-color .2s, box-shadow .2s;
    box-sizing: border-box;
}
.pc-sel:hover {
    border-color: var(--pcui-border-hover);
}
.pc-sel.is-open {
    border-color: var(--configColor);
    box-shadow: var(--pcui-ring);
}
.pc-sel-value {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.pc-sel-placeholder {
    color: var(--pcui-placeholder);
}
.pc-sel-arrow {
    position: absolute;
    right: 10px;
    top: 50%;
    width: 14px;
    height: 14px;
    transform: translateY(-50%);
    transition: transform .2s;
    pointer-events: none;
    flex: none;
}
.pc-sel.is-open .pc-sel-arrow {
    transform: translateY(-50%) rotate(180deg);
}
/* 多选（标签形态） */
.pc-sel-mult {
    height: auto;
    min-height: var(--pcui-h);
    padding: 3px 32px 3px 6px;
}
.pc-sel-tags {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
}
.pc-sel-tag {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    max-width: 100%;
    height: 24px;
    padding: 0 6px 0 10px;
    border-radius: 4px;
    background: var(--pcui-tint);
    color: var(--configColor);
    font-size: 12px;
    line-height: 1;
}
.pc-sel-tag span {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.pc-sel-tag-x {
    font-style: normal;
    font-size: 14px;
    cursor: pointer;
    opacity: .7;
}
.pc-sel-tag-x:hover {
    opacity: 1;
}
/* 幽灵原生 select：保留表单关联 / required 校验，不可见不可点 */
.pc-sel-ghost {
    position: absolute !important;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
    margin: 0;
    padding: 0 !important;
    border: 0 !important;
    opacity: 0;
    pointer-events: none;
    background-image: none !important;
}
/* 浮层（挂 body） */
.pc-sel-drop {
    position: absolute;
    z-index: 4000;
    display: none;
    max-height: 260px;
    overflow-y: auto;
    padding: 6px 0;
    background: #fff;
    border: 1px solid #ebeef5;
    border-radius: 10px;
    box-shadow: var(--pcui-shadow);
    box-sizing: border-box;
}
.pc-sel-opt {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    height: 36px;
    padding: 0 14px;
    font-size: 14px;
    color: var(--pcui-text);
    cursor: pointer;
    white-space: nowrap;
}
.pc-sel-opt-label {
    overflow: hidden;
    text-overflow: ellipsis;
}
.pc-sel-opt:hover {
    background: #f5f7fa;
}
.pc-sel-opt.selected {
    color: var(--configColor);
    font-weight: 600;
}
.pc-sel-check {
    width: 14px;
    height: 14px;
    flex: none;
}
.pc-sel-empty {
    padding: 12px 14px;
    text-align: center;
    font-size: 13px;
    color: #909399;
}
/* 输入组后缀（如“人”）与主框同高同色 */
.el-input-group__append {
    padding: 0 16px;
    background: #f7f9fc;
    color: #9099a8;
    border: 1px solid var(--pcui-border);
    border-left: 0;
    border-radius: 0 var(--pcui-radius) var(--pcui-radius) 0;
    font-size: 14px;
}
/* --- 表单标签 --- */
#ei-form .el-form-item__label,
#pe-form .el-form-item__label {
    color: #4b5563;
    font-weight: 500;
    line-height: var(--pcui-h);
}
/* --- 按钮 --- */
.el-button {
    height: 36px;
    line-height: 34px;
    padding: 0 18px;
    border-radius: var(--pcui-radius);
    border-color: var(--pcui-border);
    color: var(--pcui-text-2);
    font-weight: 500;
    transition: all .2s;
}
.el-button:hover {
    color: var(--configColor);
    border-color: color-mix(in srgb, var(--configColor) 45%, #fff);
    background: var(--pcui-tint);
}
.el-button--primary {
    background: var(--configColor);
    border-color: var(--configColor);
    color: #fff;
    box-shadow: 0 2px 8px color-mix(in srgb, var(--configColor) 28%, transparent);
}
.el-button--primary:hover {
    color: #fff;
    background: var(--configColor);
    border-color: var(--configColor);
    opacity: .92;
    box-shadow: 0 4px 14px color-mix(in srgb, var(--configColor) 38%, transparent);
}
.el-button--primary:active {
    transform: scale(.97);
}
.el-button--small {
    height: 30px;
    line-height: 28px;
    padding: 0 12px;
    font-size: 13px;
}
/* --- 单选 / 复选 --- */
.el-radio,
.el-checkbox {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    font-size: 14px;
    color: var(--pcui-text);
}
.el-radio input,
.el-checkbox input {
    width: 15px;
    height: 15px;
    margin: 0;
    accent-color: var(--configColor);
    cursor: pointer;
}



/* 地址行 编辑/删除/添加地址 链接不折行 */
#ei-form .el-form-item .el-link,
#pe-form .el-form-item .el-link {
    flex: none;
    white-space: nowrap;
}


/* ===== Virtual Select 主题化（并入 PC-UI 设计系统，与输入框完全同形） ===== */
/* VS 直接接管原 select 元素并保留其 class：必须中和 el-input__inner 皮肤，否则 wrapper 套着 toggle 形成双层框 */
.vscomp-ele.el-input__inner {
    height: auto;
    line-height: normal;
    padding: 0;
    border: 0;
    background: none;
    box-shadow: none;
}
.vscomp-ele {
    max-width: none;
    width: 100%;
    font-size: 14px;
}
.el-form-item .fx > .vscomp-ele,
.el-form-item > .vscomp-ele {
    flex: 1;
    min-width: 0;
}
/* 闭合态：与 .el-input__inner 同高同圆角同边框 */
.vscomp-toggle-button {
    min-height: var(--pcui-h);
    padding: 3px 38px 3px 12px;
    border: 1px solid var(--pcui-border);
    border-radius: var(--pcui-radius);
    background: #fff;
    box-shadow: none;
    font-size: 14px;
    color: var(--pcui-text);
    transition: border-color .2s, box-shadow .2s;
}
.vscomp-toggle-button:hover {
    border-color: var(--pcui-border-hover);
}
.vscomp-wrapper.focused .vscomp-toggle-button,
.vscomp-wrapper.show-value-as-tags.focused .vscomp-toggle-button {
    border-color: var(--configColor);
    box-shadow: var(--pcui-ring);
}
.vscomp-value {
    font-size: 14px;
    color: var(--pcui-text);
}
/* 已选值文字保持深色，不随主题色 */
.vscomp-wrapper.has-value .vscomp-value {
    color: var(--pcui-text);
}
/* 多选标签：灰色方块标签（参考移动端样式） */
.vscomp-wrapper.show-value-as-tags .vscomp-value-tag {
    background: #f0f2f5;
    border: 0;
    border-radius: 4px;
    color: var(--pcui-text-2);
    font-size: 13px;
    line-height: 24px;
    padding: 0 8px;
    margin: 3px 6px 3px 0;
}
.vscomp-wrapper.show-value-as-tags .vscomp-value-tag-clear-button,
.vscomp-wrapper.show-value-as-tags .vscomp-remove-tag-button {
    color: #a8abb2;
}
.vscomp-wrapper.show-value-as-tags .vscomp-value-tag-clear-button:hover,
.vscomp-wrapper.show-value-as-tags .vscomp-remove-tag-button:hover {
    color: var(--pcui-text-2);
}
/* 箭头与清空按钮 */
.vscomp-arrow::after {
    color: var(--pcui-placeholder);
}
.vscomp-clear-button {
    color: var(--pcui-placeholder);
}
.vscomp-clear-button:hover {
    color: var(--pcui-text-2);
}
/* 展开态浮层 */
.vscomp-dropbox {
    border-radius: var(--pcui-radius);
    border: 1px solid #ebeef5;
    box-shadow: var(--pcui-shadow);
}
.vscomp-search-input {
    font-size: 14px;
    border-bottom: 1px solid #f0f2f5;
}
.vscomp-toggle-all-button {
    margin-right: 6px;
}
.vscomp-option {
    font-size: 14px;
    min-height: 38px;
}
.vscomp-option.focused {
    background: #f5f7fa;
}
/* 选中项：浅灰底 + 深色加粗文字，✓ 保留主题色 */
.vscomp-option.selected {
    background: #f0f4fa;
    color: var(--pcui-text);
    font-weight: 500;
}
/* 多选选项：去掉左侧方框，✓ 移到右侧（参考移动端样式） */
.vscomp-wrapper.multiple .vscomp-option .checkbox-icon {
    order: 2;
    margin: 0 0 0 auto;
}
.vscomp-wrapper .vscomp-option .checkbox-icon::after {
    border-color: transparent;
}
.vscomp-wrapper .vscomp-option .checkbox-icon.checked::after,
.vscomp-wrapper.multiple .vscomp-dropbox .vscomp-option.selected .checkbox-icon::after {
    border-color: var(--configColor);
    border-left-color: transparent;
    border-top-color: transparent;
}

/* ===== PC 双列级联选择器（对齐移动端参考图，文字不随主题色） ===== */
.pc-casc {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    cursor: pointer;
    user-select: none;
}
.el-form-item .fx > .pc-casc,
.el-form-item > .pc-casc {
    flex: 1;
    min-width: 0;
}
.pc-casc-value {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 14px;
    color: var(--pcui-text);
}
.pc-casc-placeholder {
    color: var(--pcui-placeholder);
}
.pc-casc-arrow {
    flex: none;
    width: 12px;
    height: 12px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 1024 1024'%3E%3Cpath fill='%23a8abb2' d='M512 704 128 320l45.248-45.248L512 613.504l338.752-338.752L896 320z'/%3E%3C/svg%3E") no-repeat center / contain;
    transition: transform .2s;
}
.pc-casc.is-open .pc-casc-arrow {
    transform: rotate(180deg);
}
.pc-casc-drop {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    z-index: 30;
    display: none;
    background: #fff;
}
.pc-casc.is-open .pc-casc-drop {
    display: block;
}
.pc-casc-cols {
    display: flex;
}
.pc-casc-search {
    width: 100%;
    padding: 10px;
    border-bottom: 1px solid #f0f2f5;
    box-sizing: border-box;
}
.pc-casc-search input {
    width: 100%;
    height: 36px;
    padding: 0 12px;
    border: 1px solid var(--pcui-border);
    border-radius: 6px;
    outline: none;
    color: var(--pcui-text);
    font-size: 14px;
    box-sizing: border-box;
}
.pc-casc-search input:focus {
    border-color: var(--configColor);
}
.pc-casc-search input::placeholder {
    color: var(--pcui-placeholder);
}
.pc-casc-col {
    width: 240px;
    max-height: 320px;
    overflow-y: auto;
    padding: 6px 0;
}
.pc-casc-col-1 {
    border-right: 1px solid #f0f2f5;
}
.pc-casc-col-2:empty {
    display: none;
}
.pc-casc-opt {
    display: flex;
    align-items: center;
    gap: 10px;
    height: 38px;
    padding: 0 16px;
    font-size: 14px;
    color: var(--pcui-text);
    cursor: pointer;
}
.pc-casc-opt:hover {
    background: #f5f7fa;
}
.pc-casc-opt.selected {
    font-weight: 500;
}
/* 单选圆点：仅圆点用主题色 */
.pc-casc-radio {
    flex: none;
    width: 15px;
    height: 15px;
    border: 1.5px solid #dcdfe6;
    border-radius: 50%;
    position: relative;
    transition: border-color .2s;
}
.pc-casc-opt.selected .pc-casc-radio {
    border-color: var(--configColor);
}
.pc-casc-opt.selected .pc-casc-radio::after {
    content: '';
    position: absolute;
    inset: 3px;
    border-radius: 50%;
    background: var(--configColor);
}
.pc-casc-label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* 有子级时的右箭头 */
.pc-casc-sub {
    flex: none;
    margin-left: auto;
    width: 12px;
    height: 12px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 1024 1024'%3E%3Cpath fill='%23c0c4cc' d='M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 42.752 42.752l341.312-341.312a30.592 30.592 0 0 0 0-42.752L383.616 149.312a30.592 30.592 0 0 0-42.752 0z'/%3E%3C/svg%3E") no-repeat center / contain;
}
.pc-casc-opt.selected .pc-casc-sub {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 1024 1024'%3E%3Cpath fill='%23a8abb2' d='M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 42.752 42.752l341.312-341.312a30.592 30.592 0 0 0 0-42.752L383.616 149.312a30.592 30.592 0 0 0-42.752 0z'/%3E%3C/svg%3E");
}
.pc-casc-empty {
    padding: 12px 16px;
    font-size: 13px;
    color: var(--pcui-placeholder);
}

/* ===== PC 地址选择器（面板内编辑/删除/添加，对齐移动端参考图） ===== */
.pc-addr-drop {
    flex-direction: column;
    width: 100%;
    min-width: 340px;
}
.pc-addr-list {
    max-height: 320px;
    overflow-y: auto;
    padding: 6px 0;
}
.pc-addr-opt {
    display: flex;
    align-items: center;
    gap: 8px;
    height: 42px;
    padding: 0 16px;
    font-size: 14px;
    color: var(--pcui-text);
    cursor: pointer;
}
.pc-addr-opt:hover {
    background: #f5f7fa;
}
.pc-addr-opt.selected {
    background: #f0f4fa;
    font-weight: 500;
}
.pc-addr-label {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* 行内操作图标：默认浅灰，悬停加深 */
.pc-addr-ico {
    flex: none;
    width: 15px;
    height: 15px;
    opacity: .55;
    transition: opacity .2s;
}
.pc-addr-ico:hover {
    opacity: 1;
}
.pc-addr-ico-del {
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024' width='15' height='15'%3E%3Cpath fill='%23606266' d='M352 192V95.936a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32V192h256a32 32 0 1 1 0 64H96a32 32 0 0 1 0-64h256zm64 0h192v-64H416v64zM192 960a32 32 0 0 1-32-32V256h704v672a32 32 0 0 1-32 32H192zm224-192a32 32 0 0 0 64 0V460a32 32 0 0 0-64 0v308zm192 0a32 32 0 0 0 64 0V460a32 32 0 0 0-64 0v308z'/%3E%3C/svg%3E") no-repeat center / contain;
}
.pc-addr-ico-edit {
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024' width='15' height='15'%3E%3Cpath fill='%23606266' d='M832 512a32 32 0 1 1 64 0v352a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h352a32 32 0 0 1 0 64H192v640h640V512z'/%3E%3Cpath fill='%23606266' d='M469.952 554.24l52.8-7.552L847.104 222.4a32 32 0 1 0-45.248-45.248L477.44 501.504l-7.552 52.736zm45.248-45.248l45.248 45.248L872.128 241.856 826.88 196.608 515.2 508.992z'/%3E%3C/svg%3E") no-repeat center / contain;
}
/* 底部添加行 */
.pc-addr-add {
    display: flex;
    align-items: center;
    gap: 8px;
    height: 44px;
    padding: 0 16px;
    border-top: 1px solid #f0f2f5;
    font-size: 14px;
    color: var(--pcui-text-2);
    cursor: pointer;
}
.pc-addr-add:hover {
    background: #f5f7fa;
}
.pc-addr-plus {
    flex: none;
    width: 14px;
    height: 14px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024' width='14' height='14'%3E%3Cpath fill='%23909399' d='M480 480V128a32 32 0 0 1 64 0v352h352a32 32 0 1 1 0 64H544v352a32 32 0 1 1-64 0V544H128a32 32 0 0 1 0-64h352z'/%3E%3C/svg%3E") no-repeat center / contain;
}

/* ===== 在线聊右栏详情卡（职位卡/简历全字段） ===== */
.oc-detail-logo {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    object-fit: cover;
    border: 1px solid #f0f1f5;
}
.oc-detail-desc {
    white-space: pre-wrap;
    word-break: break-word;
    line-height: 1.7;
}
.oc-detail-benefit-tag {
    display: inline-block;
    margin: 0 6px 6px 0;
    padding: 4px 10px;
    border-radius: 4px;
    background: var(--pcui-tint);
    color: var(--configColor);
    font-size: 12px;
}
.online-chat-card .contact-detail .detail-info {
    padding: 4px 20px 20px;
}
/* ===== 在线聊观感微调（气泡圆角/己方气泡主题色/连接状态） ===== */
.oc-history-bubble {
    border-radius: 10px;
    line-height: 1.6;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .05);
}
.oc-item-right .oc-history-bubble {
    background: var(--pcui-tint);
}
.oc-item-right {
    text-align: right;
}
.oc-item-right .oc-history-bubble {
    text-align: left;
}
.oc-conn-status {
    flex: none;
    padding: 2px 10px;
    border-radius: 999px;
    background: #f2f3f5;
    color: #909399;
    font-size: 12px;
}
.contact-item {
    transition: background .15s;
}
.contact-item:hover {
    background: #f7f8fa;
}
.contact-item.active {
    background: var(--pcui-tint);
}
/* 聊天头部沟通职位入口 */
#oc-chat-position:hover {
    color: var(--configColor);
}
/* 发送区输入框圆角与聚焦态 */
.oc-send-ipt textarea {
    border-radius: 8px;
    transition: border-color .2s, box-shadow .2s;
}
.oc-send-ipt textarea:focus {
    border-color: var(--configColor);
    box-shadow: var(--pcui-ring);
    outline: none;
}
.oc-icon-btn {
    transition: transform .15s, opacity .15s;
}
.oc-icon-btn:hover:not(:disabled):not(.is-disabled) {
    transform: translateY(-1px);
}
.oc-icon-btn:disabled,
.oc-icon-btn.is-disabled {
    opacity: .45;
}

/* 在线聊右栏详情：内容超出时可滚动（覆盖 .ovh 的 hidden） */
.online-chat-card .contact-detail > .fa.ovh {
    overflow-y: auto;
    overflow-x: hidden;
}

/* ===== 在线聊右栏区块排版（对齐参考图：标题加粗加大、条目间距、分隔线柔和） ===== */
.online-chat-card .detail-info .oc-sec-title {
    margin-bottom: 12px;
    font-size: 15px;
    font-weight: 600;
    color: #303133;
}
.online-chat-card .detail-info .oc-exp-item {
    margin-bottom: 14px;
}
.online-chat-card .detail-info .oc-exp-item:last-child {
    margin-bottom: 0;
}
.online-chat-card .detail-info .oc-exp-item .blod {
    font-size: 14px;
    color: #414960;
}
.online-chat-card .contact-detail .ptb20-borb {
    border-bottom: 1px solid #f0f1f5;
    padding: 18px 0;
}
.online-chat-card .contact-detail .detail-info {
    padding: 6px 20px 24px;
}
.online-chat-card .detail-info .oc-detail-benefit-tag {
    margin: 0 8px 8px 0;
    padding: 5px 12px;
    border-radius: 999px;
    font-size: 12px;
}

/* ===== 联系人列表：防闪动 + 视觉优化 ===== */
/* 删除按钮改为右上角悬浮，不再挤压布局造成行跳动 */
.online-chat-card .contact-list .contact-item:hover {
    padding-left: 16px;
}
.online-chat-card .contact-list .contact-item .close-btn {
    left: auto;
    right: 6px;
    top: 6px;
    transform: none;
    width: 18px;
    height: 18px;
    line-height: 16px;
    text-align: center;
    border-radius: 50%;
    background: rgba(0, 0, 0, .06);
    font-size: 13px;
    color: #909399;
}
.online-chat-card .contact-list .contact-item .close-btn:hover {
    background: #f56c6c;
    color: #fff;
}
.online-chat-card .contact-list .contact-item {
    padding: 12px 16px;
    border-bottom: 1px solid #f5f6f8;
}
.online-chat-card .contact-list .contact-item.active {
    background-color: #ecf3ff;
}
.online-chat-card .contact-list .avatar {
    width: 44px;
    height: 44px;
    flex: none;
    margin-right: 12px;
}
.online-chat-card .contact-list .avatar img {
    width: 44px;
    height: 44px;
}
.oc-avatar-placeholder {
    width: 44px;
    height: 44px;
}
.oc-contact-time {
    flex: none;
    font-size: 12px;
    color: #c0c4cc;
    line-height: 1;
}
.oc-unread-badge {
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    box-sizing: border-box;
    border-radius: 9px;
    background: #f56c6c;
    color: #fff;
    font-size: 12px;
    line-height: 18px;
    text-align: center;
}

/* ===== 聊天气泡美化：左侧白卡 / 右侧主题色，不对称圆角 + 时间分隔线 ===== */
#oc-history-list {
    padding: 6px 4px 12px;
    box-sizing: border-box;
}
.oc-time-divider {
    text-align: center;
    font-size: 12px;
    color: #b5b9c0;
    padding: 12px 0 2px;
    user-select: none;
}
.oc-history-item {
    padding: 7px 16px;
}
.oc-history-bubble {
    background: #fff;
    border: 1px solid #e9ebf0;
    border-radius: 4px 16px 16px 16px;
    padding: 10px 14px;
    max-width: 420px;
    line-height: 1.65;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .05);
    word-break: break-word;
}
.oc-item-right .oc-history-bubble {
    background: var(--configColor);
    border-color: var(--configColor);
    color: #fff;
    border-radius: 16px 4px 16px 16px;
    box-shadow: 0 2px 6px rgba(15, 23, 42, .12);
}
/* 己方气泡内的链接与辅助文字改为白色系 */
.oc-item-right .oc-history-bubble a {
    color: #fff;
    text-decoration: underline;
}
.oc-item-right .oc-auto-reply {
    color: rgba(255, 255, 255, .75);
}
/* 己方气泡内的卡片消息保持白底，避免深色文字压在主题色上（卡片类直接加在气泡元素上） */
.oc-item-right .oc-history-bubble.oc-msg-card {
    background: #fff;
    border-color: #e9ebf0;
    color: #333;
}
.oc-item-right .oc-history-bubble.oc-msg-card a {
    color: var(--configColor);
    text-decoration: none;
}
.oc-msg-img {
    border-radius: 8px;
}
/* 已读/未读状态更轻量 */
.oc-send-state {
    font-size: 12px;
    color: #c0c4cc;
    margin-bottom: 3px;
}

/* ===== 付费/资格提示条重设计 ===== */
.oc-pay-tip {
    height: auto;
    min-height: 150px;
    padding: 22px 20px;
    background: #fffaf2;
    border-top: 1px solid #fbe8c8;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}
.oc-pay-tip::before {
    content: '¥';
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: linear-gradient(135deg, #ffd76e, #f5a623);
    color: #fff;
    font-size: 20px;
    font-weight: 700;
    line-height: 42px;
    text-align: center;
    margin-bottom: 10px;
    box-shadow: 0 3px 8px rgba(245, 166, 35, .35);
}
.oc-pay-tip #oc-pay-msg {
    color: #8a6d3b;
    font-size: 14px;
    margin-bottom: 16px;
}
.oc-pay-tip #oc-pay-actions {
    gap: 14px;
}
.oc-pay-tip .zdy-btn {
    border-radius: 999px;
    padding: 8px 24px;
    font-size: 14px;
    box-shadow: 0 2px 6px rgba(15, 23, 42, .12);
    transition: transform .15s, box-shadow .15s, filter .2s;
}
.oc-pay-tip .zdy-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 10px rgba(15, 23, 42, .18);
    filter: none;
}
/* 覆盖模板里的 ml20，统一用 gap 控制间距 */
.oc-pay-tip #oc-pay-actions .ml20 {
    margin-left: 0;
}
/* 开通会员：黑金风格 */
.oc-pay-tip #oc-pay-vip {
    background: #2b2f36;
    color: #f6d488;
}

/* 气泡宽度跟随内容 + 双方头像 */
.oc-history-item {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    gap: 10px;
}
.oc-history-item.oc-item-right {
    flex-direction: row-reverse;
}
.oc-msg-wrap {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-width: 0;
    max-width: calc(100% - 46px);
}
.oc-item-right .oc-msg-wrap {
    align-items: flex-end;
}
.oc-msg-avatar {
    width: 34px;
    height: 34px;
    flex: none;
    border-radius: 50%;
    overflow: hidden;
    background: #ececec;
}
.oc-msg-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.oc-msg-avatar.oc-avatar-placeholder img {
    display: none;
}
.oc-history-bubble {
    width: fit-content;
}

/* ===== 文字按钮最终覆盖：避免被后段 .el-button--primary 绿底规则（0,1,0 同优先级后者赢）污染 ===== */
.el-button--text.el-button--primary,
.el-button--text.el-button--danger {
    background: transparent;
    border-color: transparent;
    box-shadow: none;
    height: auto;
    line-height: 1.4;
    padding: 0 4px;
    font-weight: 400;
}
.el-button--text.el-button--primary {
    color: var(--configColor, #409eff);
}
.el-button--text.el-button--danger {
    color: #f56c6c;
}
.el-button--text.el-button--primary:hover,
.el-button--text.el-button--danger:hover {
    background: transparent;
    border-color: transparent;
    box-shadow: none;
    opacity: .8;
    filter: none;
}
.el-button--text.el-button--primary:hover {
    color: var(--configColor, #409eff);
}
.el-button--text.el-button--danger:hover {
    color: #f56c6c;
}

/* ===== 简历查看弹层改造：悬浮居中卡片 + 暗色遮罩（对齐基线 el-dialog 视觉） ===== */
.ec-resume-dialog {
    position: fixed;
    inset: 0;
    z-index: 50;
    background: rgba(0, 0, 0, .5);
    display: flex;
    align-items: flex-start;
    justify-content: center;
    overflow: auto;
    padding: 6vh 16px 40px;
}
.ec-resume-dialog-inner {
    width: 100%;
    max-width: 990px;
    margin: 0;
    padding: 0;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, .18);
    max-height: 88vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.ec-resume-dialog-head {
    flex: none;
    padding: 15px 20px;
    font-size: 16px;
    font-weight: 600;
    color: #303133;
    border-bottom: 1px solid #eee;
}
.ec-resume-dialog-body {
    flex: 1;
    overflow: auto;
    padding: 20px;
}
/* 底部操作条吸附在卡片底部，滚动不丢 */
.ec-resume-dialog .resuem-box > .fx.fx-sb:last-child {
    position: sticky;
    bottom: -20px;
    margin: 0 -20px -20px;
    padding: 12px 20px;
    background: #fff;
    border-top: 1px solid #f0f0f0;
}
/* 弹层内按钮间距（邀请面试/邀请完善简历/在线聊 不再挤在一起） */
.resuem-box .el-button + .el-button {
    margin-left: 10px;
}

/* ===== 面试邀请等小弹窗层级：必须高于简历查看弹层（50），否则点了看不见 ===== */
.pc-modal-mask {
    z-index: 60;
}
.pc-modal-dialog {
    z-index: 61;
}

/* 匹配简历是简历详情的父弹窗，详情打开后应覆盖在它上方 */
#pm-match-dialog .pc-modal-mask {
    z-index: 40;
}
#pm-match-dialog .pc-modal-dialog {
    z-index: 41;
}

/* ===== 下拉「重置」入口：空值首项（全部/请选择）以弱化样式列入选项，点选即清空 ===== */
.pc-sel-opt.pc-sel-reset {
    color: #909399;
    border-bottom: 1px solid #f0f0f0;
    margin-bottom: 4px;
}

/* ===== 职位管理搜索栏：输入框 + 按钮连体（内嵌图标、等高、胶囊形） ===== */
form[action="/enterprise/positionManagement"] {
    position: relative;
}
form[action="/enterprise/positionManagement"]::before {
    content: "";
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    width: 15px;
    height: 15px;
    z-index: 1;
    pointer-events: none;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath fill='%23a8abb2' d='M909.6 854.5 700.2 645.1a388.9 388.9 0 1 0-55.1 55.1l209.4 209.4a38.9 38.9 0 0 0 55.1-55.1zM465.5 787.9a322.4 322.4 0 1 1 0-644.8 322.4 322.4 0 0 1 0 644.8z'/%3E%3C/svg%3E") no-repeat center / contain;
}
form[action="/enterprise/positionManagement"] .el-input__inner {
    height: 38px;
    line-height: 38px;
    padding-left: 34px;
    border-right: 0;
    border-radius: 19px 0 0 19px;
    transition: border-color .2s;
}
form[action="/enterprise/positionManagement"] .zdy-btn {
    margin-left: 0;
    height: 38px;
    line-height: 38px;
    padding: 0 22px;
    border-radius: 0 19px 19px 0;
    flex: none;
}

/* ===== 行为验证码弹窗（账号设置 #as-captcha-box）：全屏遮罩 + 窗口居中（对齐基线） ===== */
#as-captcha-box {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, .3);
    z-index: 3001;
}
#as-captcha-box #tianai-captcha-parent {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 460px;
    height: 320px;
}
#as-captcha-box #tianai-captcha-box {
    overflow: initial;
}
#as-captcha-box #tianai-captcha-logo {
    display: none;
}
#as-captcha-box #tianai-captcha,
#as-captcha-box #tianai-captcha-loading {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) !important;
    padding-top: 20px;
}
#as-captcha-box #tianai-captcha-parent #tianai-captcha-box .loading {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
#as-captcha-box #tianai-captcha-slider-move-btn {
    box-shadow: 0 0 15px #c2c2c2;
}
#as-captcha-box #tianai-captcha.tianai-captcha-slider .slider-move-track {
    background: #cecece;
}
