/* [yv-list] 招聘数据库表格视图（Phase G 表格重构）
 * 结构：Hero(标题+搜索+快捷筛选) → 左侧筛选栏 + 结果区(工具栏 + 表格 + 分页) → 详情抽屉
 * 关键：表格横向滚动、表头 sticky、公司列 sticky、标签化信息、轻量前台感
 */
.yv-list,
.yv-list.alignfull{--yv-line:#E5E7EB;--yv-line-soft:#EEF1F4;--yv-muted:#94A3B8;--yv-text:#111827;--yv-sub:#475569;--yv-brand:#1e5eff;--yv-brand-dark:#1746c4;
  --yv-soft:#F7F9FC;--yv-urgent:#d9480f;--yv-sticky-top:0px;
  width:100%!important;max-width:100%!important;position:relative!important;left:auto!important;right:auto!important;
  margin:0!important;padding:16px clamp(14px,2vw,28px) 44px;color:var(--yv-text);font-size:14px;line-height:1.6;min-width:0!important;background:#fff;overflow:visible!important}
/* 横向滚动只发生在表格自身。 */
.yv-list *,.yv-list *::before,.yv-list *::after{box-sizing:border-box}
.yv-list [hidden]{display:none !important}
.yv-list .screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.yv-muted{color:var(--yv-muted)}

/* ---------- Hero ---------- */
.yv-list__hero{padding:10px 0 14px}
.yv-list__title{margin:0 0 6px;font-size:26px;line-height:1.3;font-weight:700}
.yv-list__intro{margin:0 0 16px;color:#6b7280;font-size:14px;max-width:900px}
.yv-list__search{display:flex;gap:8px;width:min(560px,100%);position:relative}
.yv-list__search::before{content:"";position:absolute;left:14px;top:50%;width:15px;height:15px;transform:translateY(-50%);
  background:no-repeat center/contain url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E")}
.yv-list__search-input{flex:1;min-width:0;padding:12px 14px 12px 40px;border:1px solid var(--yv-line);border-radius:10px;font-size:15px;background:#fff}
.yv-list__search-input:focus{outline:2px solid rgba(30,94,255,.18);border-color:var(--yv-brand)}
.yv-list__search-btn{padding:12px 20px;border:1px solid var(--yv-brand);background:var(--yv-brand);color:#fff;border-radius:10px;font-size:15px;cursor:pointer}
.yv-list__search-btn:hover{background:var(--yv-brand-dark)}

/* ---------- 快捷筛选 chips ---------- */
.yv-quick{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.yv-quick__chip{padding:5px 12px;border:1px solid var(--yv-line);background:#fff;color:#374151;border-radius:999px;font-size:13px;text-decoration:none;line-height:1.6}
.yv-quick__chip:hover{border-color:#bfdbfe;color:var(--yv-brand)}
.yv-quick__chip.is-active{background:#eff6ff;border-color:#93c5fd;color:var(--yv-brand);font-weight:600}

/* ---------- 布局 ---------- */
/* v1.0.7：去掉 240px 常驻侧栏。本站字段少，筛选栏横向吸顶放在表格上方，
 * 表格因此拿到整栏宽度（原来侧栏把可用宽度压到 ~790px，10 列根本放不下）。 */
.yv-list__layout{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-items:start;margin-top:16px}
.yv-list__results{min-width:0}
.yv-list__filters{background:var(--yv-soft);border:1px solid var(--yv-line);border-radius:16px;padding:14px}
.yv-list__filters-head{display:flex;justify-content:space-between;align-items:center}
.yv-list__filters-title{font-weight:600}
.yv-list__filters-close{display:none;background:none;border:0;font-size:22px;line-height:1;cursor:pointer;color:var(--yv-muted)}
.yv-field{margin-top:12px}
.yv-field__label{display:block;font-size:13px;color:#374151;font-weight:600;margin-bottom:4px}
.yv-field__sub{display:block;font-size:12px;color:var(--yv-muted);margin:6px 0 4px}
.yv-field__select{width:100%;padding:7px 8px;border:1px solid var(--yv-line);border-radius:8px;background:#fff;font-size:14px}
.yv-chips{display:flex;flex-wrap:wrap;gap:6px}
.yv-chip{padding:4px 10px;border:1px solid var(--yv-line);background:#fff;border-radius:999px;font-size:13px;cursor:pointer;color:#374151}
.yv-chip:hover{border-color:var(--yv-brand);color:var(--yv-brand)}
.yv-chip.is-active{background:#eff6ff;border-color:#93c5fd;color:var(--yv-brand);font-weight:600}
.yv-chip--clear{color:var(--yv-muted)}
.yv-list__more{margin-top:14px;border-top:1px dashed var(--yv-line);padding-top:10px}
.yv-list__more-summary{cursor:pointer;font-size:13px;font-weight:600;color:#374151}
.yv-list__filters-foot{display:flex;gap:8px;margin-top:16px}
.yv-list__clear{flex:0 0 auto;padding:8px 12px;border:1px solid var(--yv-line);background:#fff;border-radius:8px;cursor:pointer;font-size:14px}
.yv-list__apply{flex:1;padding:8px 12px;border:1px solid var(--yv-brand);background:var(--yv-brand);color:#fff;border-radius:8px;cursor:pointer;font-size:14px;display:none}
.yv-list__apply-noscript{flex:1;padding:8px 12px;border:1px solid var(--yv-brand);background:var(--yv-brand);color:#fff;border-radius:8px;cursor:pointer;font-size:14px}

/* ---------- v1.0.7 桌面：横向吸顶筛选条 ---------- */
@media (min-width:901px){
  .yv-list__filters{
    position:sticky;top:calc(var(--yv-sticky-top, 0px) + 10px);z-index:20;
    display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 16px;
    padding:12px 16px;border-radius:14px;
    background:rgba(255,255,255,.95);
    -webkit-backdrop-filter:saturate(160%) blur(10px);
    backdrop-filter:saturate(160%) blur(10px);
    border:1px solid var(--yv-line);
    box-shadow:0 6px 20px rgba(15,23,42,.05);
  }
  .yv-list__filters-head{display:none}
  .yv-field{margin:0;flex:0 0 176px;min-width:0}
  .yv-field__label{font-size:12px;color:#64748b;font-weight:600;margin-bottom:5px;letter-spacing:.02em}
  .yv-field__sub{margin:0 0 4px}
  .yv-field__select{
    height:38px;padding:0 32px 0 11px;border-radius:10px;font-size:13.5px;color:#1f2937;
    -webkit-appearance:none;appearance:none;
    background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat:no-repeat;background-position:right 10px center;background-size:13px;
  }
  .yv-field__select:focus{outline:2px solid rgba(30,94,255,.16);border-color:#93b4ff}
  .yv-list__more{display:none}
  .yv-list__filters-foot{margin:0 0 0 auto;gap:8px;align-items:center}
  .yv-list__clear{height:38px;padding:0 16px;border-radius:10px;font-size:13.5px;background:#fff;border-color:var(--yv-line);color:#475569}
  .yv-list__clear:hover{border-color:#bfdbfe;color:var(--yv-brand)}
  .yv-list__apply{display:none}
  .yv-list__apply-noscript{display:none}
}

/* ---------- 结果工具栏 ---------- */
.yv-list__toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;padding-bottom:10px}
.yv-list__count{font-size:14px;color:#334155}
.yv-list__count strong{font-weight:700;color:var(--yv-text)}
.yv-list__active{display:flex;flex-wrap:wrap;gap:6px;flex:1 1 240px}
.yv-active-chip{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-size:12px}
.yv-active-chip button{border:0;background:none;color:inherit;cursor:pointer;font-size:13px;line-height:1;padding:0}
.yv-list__sort,.yv-list__perpage{font-size:13px;color:#64748b;display:inline-flex;align-items:center;gap:6px}
.yv-list__sort select,.yv-list__perpage select{width:auto}
.yv-list__filter-toggle{display:none;padding:8px 14px;border:1px solid var(--yv-line);background:#fff;border-radius:8px;cursor:pointer;font-size:14px}
.yv-list__loading{display:flex;align-items:center;gap:8px;padding:8px 0;color:var(--yv-muted);font-size:13px}
.yv-list__loading span{width:14px;height:14px;border:2px solid var(--yv-line);border-top-color:var(--yv-brand);border-radius:50%;animation:yv-spin .8s linear infinite}
@keyframes yv-spin{to{transform:rotate(360deg)}}

/* ---------- 表格容器 ---------- */
.yv-table__bar{display:flex;justify-content:flex-end;min-height:20px}
.yv-table__hint{font-size:12px;color:var(--yv-muted)}
.yv-table-scroll{width:100%;max-width:100%;min-width:0;overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;background:#fff;border:1px solid var(--yv-line);border-radius:12px;
  box-shadow:0 1px 2px rgba(15,23,42,.04);transition:opacity .15s ease;scrollbar-width:auto}
.yv-list.is-loading .yv-table-scroll{opacity:.65}
.yv-table-scroll::-webkit-scrollbar{height:10px}
.yv-table-scroll::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:6px}
.yv-table{display:block!important;position:relative;font-size:14px;box-sizing:border-box}
.yv-grid-head,.yv-row{display:grid!important;align-items:stretch}
.yv-grid-body{display:block!important;position:relative;z-index:1}

/* v2.0.6: keep the header in normal document flow. Do NOT make the entire header sticky.
 * A sticky grid header can overlap the first data row inside some theme/container combinations.
 * The first company column may still stay horizontally sticky, but the header itself never floats above rows. */
.yv-grid-head{position:relative!important;top:auto!important;z-index:4;background:var(--yv-soft);isolation:isolate}
.yv-th{display:flex;align-items:center;position:relative;z-index:1;background:var(--yv-soft);color:var(--yv-sub);font-size:13px;font-weight:600;text-align:left;
  padding:11px 14px;border-bottom:1px solid var(--yv-line);border-right:1px solid var(--yv-line-soft);white-space:nowrap;min-width:0}
.yv-th--sticky{position:sticky;left:0;z-index:10;background:var(--yv-soft)}
.yv-td--sticky{position:sticky;left:0;z-index:3;background:#fff;box-shadow:4px 0 8px rgba(15,23,42,.04)}
.yv-row:hover .yv-td--sticky{background:var(--yv-soft)}

.yv-row{min-height:56px}
.yv-td{display:flex;align-items:center;min-width:0;padding:12px 14px;border-bottom:1px solid var(--yv-line-soft);border-right:1px solid var(--yv-line-soft);vertical-align:middle;background:#fff}
.yv-row:hover .yv-td{background:var(--yv-soft)}
.yv-row:last-child .yv-td{border-bottom:0}

/* 单元格 */
.yv-cell-company{display:flex;flex-direction:column;gap:2px;max-width:220px}
.yv-cell-company__name{font-size:15px;font-weight:600;color:var(--yv-text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.yv-cell-company__sub{font-size:12px;color:var(--yv-muted);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.yv-cell-updated,.yv-cell-grad,.yv-cell-edu,.yv-cell-loc{color:#334155}
.yv-cell-edu,.yv-cell-grad{white-space:nowrap}
/* [LAW-PATCH-UI] 多值标签组（学历/届次/地点）与福利待遇列 */
.yv-tag-wrap{display:inline-flex;flex-wrap:wrap;gap:4px;align-items:center}
.yv-cell-remark{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:#334155;font-size:13px;line-height:1.5}
.yv-td--locations,.yv-td--education,.yv-td--graduation{white-space:normal}
.yv-td--remark{min-width:0}
.yv-cell-deadline{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.yv-cell-deadline[data-state="urgent"]{color:var(--yv-urgent);font-weight:600}
.yv-cell-deadline[data-state="expired"]{color:var(--yv-muted)}
.yv-cell-positions{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:#334155;font-size:13px}
.yv-check{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:6px;background:#16a34a;color:#fff;font-size:13px;line-height:1;font-weight:700}
.yv-table__action{padding:5px 10px;border:1px solid var(--yv-brand);background:#fff;color:var(--yv-brand);border-radius:8px;cursor:pointer;font-size:13px}
.yv-table__action:hover{background:var(--yv-brand);color:#fff}
/* [LAW-PATCH] 源表「公告链接」列入口按钮 + 岗位名称单元格 */
.yv-table__action--link{border-color:#BFDBFE;color:#1d4ed8}
.yv-cell-jobtitle{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:#0f172a;font-weight:600;font-size:13.5px;line-height:1.45}

/* 标签（浅底深字，固定映射）；底色加深一档，肉眼可辨 */
.yv-tag{display:inline-block;padding:2px 8px;border-radius:6px;font-size:12px;line-height:1.7;white-space:nowrap;font-weight:500;background:#e2e8f0;color:#475569}
.yv-tag--soft{background:#e0e7ff;color:#4338ca;font-weight:600}
.yv-tag--ct-orange{background:#ffedd5;color:#c2410c}
.yv-tag--ct-blue{background:#dbeafe;color:#1d4ed8}
.yv-tag--ct-green{background:#d1fae5;color:#047857}
.yv-tag--ct-purple{background:#ede9fe;color:#6d28d9}
.yv-tag--ct-cyan{background:#cffafe;color:#0e7490}
.yv-tag--ct-teal{background:#ccfbf1;color:#0f766e}
.yv-tag--ct-red{background:#fee2e2;color:#b91c1c}
.yv-tag--ct-gray{background:#e2e8f0;color:#475569}
/* 「未标注」：不是标签颜色，是「这条公告确实没写」的状态，用虚线框区分于普通灰标签 */
.yv-tag--none{background:#f8fafc;color:#94a3b8;border:1px dashed #cbd5e1;padding:1px 7px;font-weight:400}
.yv-tag--ind-blue{background:#eff6ff;color:#1d4ed8}
.yv-tag--ind-orange{background:#fff7ed;color:#c2410c}
.yv-tag--ind-purple{background:#f5f3ff;color:#6d28d9}
.yv-tag--ind-yellow{background:#fefce8;color:#a16207}
.yv-tag--ind-cyan{background:#ecfeff;color:#0e7490}
.yv-tag--ind-pink{background:#fdf2f8;color:#be185d}
.yv-tag--ind-gray{background:#f1f5f9;color:#475569}
.yv-tag--rt-green{background:#d1fae5;color:#047857}
.yv-tag--rt-blue{background:#dbeafe;color:#1d4ed8}
.yv-tag--rt-cyan{background:#cffafe;color:#0e7490}
.yv-tag--rt-purple{background:#ede9fe;color:#6d28d9}
.yv-tag--rt-gray{background:#e2e8f0;color:#475569}
.yv-tag--bt-green{background:#ecfdf5;color:#047857}
.yv-tag--bt-blue{background:#eff6ff;color:#1d4ed8}
.yv-tag--bt-cyan{background:#ecfeff;color:#0e7490}
.yv-tag--bt-purple{background:#f5f3ff;color:#6d28d9}
.yv-tag--bt-orange{background:#fff7ed;color:#c2410c}
.yv-tag--bt-gray{background:#f1f5f9;color:#475569}
/* 截止状态：临期=实心橙（要行动，最抢眼），已截止=红字浅底（已失效，看得到但不抢临期）
   原来两者一个浅橙一个浅灰，已截止几乎看不见 —— 用户会照着投过期岗位。 */
.yv-tag--urgent{background:#F97316;color:#fff;font-weight:600;margin-left:2px}
.yv-tag--expired{background:#FDECEC;color:#C0392B;font-weight:600;box-shadow:inset 0 0 0 1px #F5C2C2;margin-left:2px}


/* ---------- 稳定列宽（列宽由 grid 模板控制，不再强制单元格宽度） ---------- */
@media (min-width:1181px){
  .yv-table-scroll{width:100%}
}
@media (max-width:1180px){
  .yv-list,.yv-list.alignfull{width:100%!important;max-width:none!important;left:auto!important;margin:0!important;padding-left:18px;padding-right:18px}
}
/* ---------- 空/错状态 ---------- */
.yv-list__empty,.yv-list__error{margin-top:16px;padding:28px;border:1px dashed var(--yv-line);border-radius:12px;text-align:center;background:var(--yv-soft)}
.yv-list__empty-title{margin:0 0 6px;font-weight:600}
.yv-list__empty-hint{margin:0 0 14px;color:#6b7280;font-size:14px}
.yv-list__empty-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.yv-btn{padding:8px 14px;border:1px solid var(--yv-brand);background:var(--yv-brand);color:#fff;border-radius:8px;cursor:pointer;font-size:14px}
.yv-btn--ghost{background:#fff;color:var(--yv-brand)}

/* ---------- 分页 ---------- */
.yv-list__pagination{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:center;margin-top:18px}
.yv-list__page{padding:6px 11px;border:1px solid var(--yv-line);border-radius:8px;color:#374151;text-decoration:none;font-size:14px;background:#fff}
.yv-list__page:hover{border-color:var(--yv-brand);color:var(--yv-brand)}
.yv-list__page.is-current{background:var(--yv-brand);border-color:var(--yv-brand);color:#fff;font-weight:600}
.yv-list__page.is-disabled{color:#c7cbd1}
.yv-list__page-info{margin-left:6px;color:var(--yv-muted);font-size:13px}

/* ---------- 抽屉 ---------- */
.yv-list__overlay{position:fixed;inset:0;background:rgba(17,24,39,.45);z-index:9998}
.yv-list__drawer{position:fixed;top:0;right:0;width:min(540px,40vw);max-width:100%;height:100%;background:#fff;z-index:9999;overflow-y:auto;padding:20px 22px 40px;box-shadow:-8px 0 30px rgba(15,23,42,.18)}
.yv-list__drawer-close{position:sticky;top:0;float:right;border:0;background:#fff;font-size:24px;line-height:1;cursor:pointer;color:#94a3b8;padding:0 4px;z-index:2}
.yv-detail__company{margin:0 0 6px;font-size:20px;font-weight:700}
.yv-detail__head{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 10px}
.yv-detail__title{margin:0 0 12px;color:#374151;font-size:15px}
.yv-detail__meta{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px;padding:0;list-style:none}
.yv-detail__meta li{font-size:12px;background:var(--yv-soft);border-radius:6px;padding:3px 8px;color:#475569}
.yv-detail__block{margin:0 0 16px;padding-top:12px;border-top:1px solid var(--yv-line-soft)}
.yv-detail__block h4{margin:0 0 6px;font-size:14px;color:#111827}
.yv-detail__preview{color:#4b5563;font-size:14px;white-space:pre-wrap;word-break:break-word}
.yv-detail__value{font-size:14px;word-break:break-all}
.yv-detail__value a{color:var(--yv-brand)}
.yv-detail__pairs{display:flex;flex-direction:column;gap:6px}
.yv-detail__pair{display:flex;gap:8px;font-size:14px}
.yv-detail__pair dt{flex:0 0 72px;color:var(--yv-muted);margin:0}
.yv-detail__pair dd{margin:0;word-break:break-all;color:#334155}
.yv-detail__locked-card{margin-top:4px;padding:14px;border-radius:10px;background:#fffbeb;border:1px solid #fde68a;color:#92400e;font-size:13px}
.yv-detail__locked-card h4{margin:0 0 6px;font-size:14px;color:#92400e}
.yv-detail__locked-card ul{margin:0;padding-left:18px}
.yv-detail__loading{color:var(--yv-muted);font-size:14px}


/* ---------- 中等宽度桌面/平板：筛选条更紧凑，仍不使用抽屉 ---------- */
@media (max-width:1180px) and (min-width:901px){
  .yv-field{flex:0 0 138px}
  .yv-field__label{font-size:11.5px}
  .yv-list__clear{height:36px;padding:0 12px}
  .yv-table__hint{display:none}
}

/* ---------- 移动端 ---------- */
@media (max-width:900px){
  .yv-list{width:100%!important;max-width:none!important;margin:0!important;padding:10px 14px 32px}
  .yv-list__title{font-size:22px}
  .yv-list__layout{grid-template-columns:1fr;gap:12px;margin-top:12px}
  .yv-list__filter-toggle{display:inline-block}
  .yv-list__sort,.yv-list__perpage{display:none}
  .yv-list__filters{position:fixed;left:0;right:0;bottom:0;top:auto;max-height:84vh;overflow-y:auto;border-radius:16px 16px 0 0;
    transform:translateY(102%);transition:transform .22s ease;z-index:9999;padding:16px 16px 24px}
  .yv-list__filters.is-open{transform:translateY(0)}
  .yv-list__filters-close{display:block}
  .yv-list__apply{display:block}
  .yv-list__apply-noscript{display:none}
  .yv-table__hint{font-size:12px}
  .yv-list__drawer{width:100%}
}

/* 资料页附加样式（关联公司链接 / 提取码 / 复制按钮） */
.yv-cell-company-link{color:var(--yv-brand);text-decoration:none}
.yv-cell-company-link:hover{text-decoration:underline}
.yv-cell-company-name{color:#334155}
.yv-detail__code{display:inline-block;padding:2px 8px;margin-right:8px;border-radius:6px;background:#f1f5f9;color:#0f172a;font-family:ui-monospace,Consolas,monospace}
.yv-detail__copy{padding:4px 10px;font-size:12px}
.yv-detail__open{display:inline-block;margin-top:10px;text-decoration:none}

/* ---------- 资料独立详情页 /resources/{slug}/ ---------- */
.yv-res{max-width:980px}
.yv-res__crumb{display:flex;gap:6px;align-items:center;font-size:13px;color:#94a3b8;margin:6px 0 10px}
.yv-res__crumb a{color:#64748b;text-decoration:none}
.yv-res__crumb a:hover{color:var(--yv-brand)}
.yv-res__crumb-current{color:#334155}
.yv-res__head{margin-bottom:8px}
.yv-res__tags{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 12px}
.yv-res__meta{display:flex;flex-wrap:wrap;gap:18px;margin:0 0 4px;padding:0}
.yv-res__meta div{display:flex;gap:6px;align-items:baseline}
.yv-res__meta dt{color:#94a3b8;font-size:12px}
.yv-res__meta dd{margin:0;color:#334155;font-size:14px}
.yv-res__meta a{color:var(--yv-brand);text-decoration:none}
.yv-res__section{border-top:1px solid var(--yv-line-soft);padding-top:14px;margin-top:16px}
.yv-res__section h2{margin:0 0 8px;font-size:16px}
.yv-res__text{margin:0;color:#334155;font-size:14px;line-height:1.8}
.yv-res__lock{display:flex;gap:14px;align-items:flex-start;padding:16px;border:1px solid #fde68a;background:#fffbeb;border-radius:12px}
.yv-res__lock-icon{font-size:20px;line-height:1.2}
.yv-res__lock-title{margin:0 0 4px;font-weight:600;color:#92400e;font-size:15px}
.yv-res__lock-desc{margin:0 0 10px;color:#a16207;font-size:13px}
.yv-res__lock-btn{display:inline-block;text-decoration:none;padding:7px 16px;font-size:14px}
.yv-res__download-box{border:1px solid var(--yv-line);border-radius:12px;padding:14px 16px;background:#fff}
.yv-res__dl-row{display:flex;gap:12px;align-items:center;padding:6px 0}
.yv-res__dl-label{flex:0 0 72px;color:#94a3b8;font-size:13px}
.yv-res__dl-link{color:var(--yv-brand);text-decoration:none;word-break:break-all}
.yv-res__dl-link:hover{text-decoration:underline}
.yv-res__code{display:inline-block;padding:3px 10px;border-radius:6px;background:#f1f5f9;color:#0f172a;font-family:ui-monospace,Consolas,monospace;font-size:14px}
.yv-res__copy{margin-left:8px;padding:4px 10px;font-size:12px}
.yv-res__company{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;border:1px solid var(--yv-line);border-radius:12px;padding:14px 16px;background:#fff}
.yv-res__company-name{font-size:16px;font-weight:600;color:var(--yv-brand);text-decoration:none}
.yv-res__company-stats{display:block;margin-top:4px;color:#94a3b8;font-size:13px}
.yv-res__company-links{display:flex;gap:8px;flex-wrap:wrap}
.yv-res__company-links a{text-decoration:none}
.yv-res-related{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px}
.yv-res-related__item{border:1px solid var(--yv-line-soft);border-radius:10px;padding:10px 12px;background:#fff}
.yv-res-related__link{color:#1f2937;text-decoration:none;font-size:14px;display:block;margin-bottom:4px}
.yv-res-related__link:hover{color:var(--yv-brand)}
.yv-res-related__meta{color:#94a3b8;font-size:12px}
.yv-cell-resource-link{color:var(--yv-text);text-decoration:none}
.yv-cell-resource-link:hover{color:var(--yv-brand);text-decoration:underline}
@media (max-width:900px){
  .yv-res__meta{gap:10px}
  .yv-res__company{flex-direction:column;align-items:flex-start}
  .yv-res-related{grid-template-columns:1fr}
}


.yv-vip-cta{display:inline-flex;align-items:center;justify-content:center;margin-top:12px;padding:9px 16px;border-radius:8px;background:#2563eb;color:#fff!important;font-size:14px;font-weight:600;line-height:1.4;text-decoration:none!important;box-shadow:0 1px 2px rgba(37,99,235,.18);transition:background .15s ease,transform .15s ease,box-shadow .15s ease}
.yv-vip-cta:hover{background:#1d4ed8;color:#fff!important;transform:translateY(-1px);box-shadow:0 4px 10px rgba(37,99,235,.22)}
.yv-vip-cta:focus-visible{outline:2px solid #93c5fd;outline-offset:2px}


/* =========================================================
 * 公司目录 / [yv_companies]
 * 统一为“引航指南”招聘数据库视觉：卡片、筛选条、数据徽章。
 * ========================================================= */
.yv-companies{--yv-company-card:#fff;--yv-company-hover:#f8fbff;--yv-company-shadow:0 8px 26px rgba(15,23,42,.055);padding-top:34px!important}
.yv-companies .yv-list__hero{max-width:920px;padding:4px 0 24px}
.yv-companies .yv-list__title{font-size:30px;letter-spacing:-.02em;color:#0f172a;margin-bottom:10px}
.yv-companies .yv-list__intro{font-size:15px;line-height:1.9;color:#64748b;margin-bottom:20px}
.yv-companies .yv-list__search{display:flex;align-items:stretch;gap:10px;max-width:680px;margin:0}
.yv-companies .yv-list__search-input{flex:1;min-width:0;height:44px;border:1px solid #dbe2ea;border-radius:10px;padding:0 14px;background:#fff;color:#0f172a;font-size:14px;box-shadow:0 1px 2px rgba(15,23,42,.02);outline:none;transition:border-color .15s ease,box-shadow .15s ease}
.yv-companies .yv-list__search-input:focus{border-color:#7aa7ff;box-shadow:0 0 0 3px rgba(30,94,255,.10)}
.yv-companies .yv-list__search-btn{display:inline-flex;align-items:center;justify-content:center;min-width:82px;height:44px;padding:0 18px;border:1px solid var(--yv-brand);border-radius:10px;background:var(--yv-brand);color:#fff;font-size:14px;font-weight:600;cursor:pointer;text-decoration:none;transition:background .15s ease,transform .15s ease}
.yv-companies .yv-list__search-btn:hover{background:var(--yv-brand-dark);transform:translateY(-1px)}
.yv-companies .yv-table__bar{display:flex;align-items:center;justify-content:space-between;margin:4px 0 12px;padding:0;background:transparent;border:0}
.yv-companies .yv-table__hint{font-size:14px;color:#64748b}
.yv-companies .yv-table__hint strong{font-size:18px;color:#0f172a;margin:0 2px}

.yv-companies__filters{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:0 0 18px;padding:14px 16px;border:1px solid #e6ebf1;border-radius:14px;background:#f8fafc}
.yv-companies__filters .yv-field{display:flex;flex-direction:column;gap:6px;min-width:190px;margin:0;color:#475569;font-size:12px;font-weight:600}
.yv-companies__filters .yv-field__select{width:100%;height:40px;margin:0;padding:0 34px 0 12px;border:1px solid #dbe2ea;border-radius:9px;background-color:#fff;color:#334155;font-size:14px;font-weight:400;outline:none}
.yv-companies__filters .yv-field__select:focus{border-color:#7aa7ff;box-shadow:0 0 0 3px rgba(30,94,255,.08)}
.yv-companies__filters .yv-list__search-btn{height:40px;min-width:74px}
.yv-companies__reset{display:inline-flex;align-items:center;height:40px;padding:0 6px;color:#64748b;text-decoration:none;font-size:13px}
.yv-companies__reset:hover{color:var(--yv-brand)}

.yv-companies__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;list-style:none!important;margin:0!important;padding:0!important}
.yv-companies__list>li::marker{content:""}
.yv-company-card{display:flex;flex-direction:column;justify-content:space-between;min-width:0;min-height:142px;padding:18px 20px;border:1px solid #e6ebf1;border-radius:14px;background:var(--yv-company-card);box-shadow:0 1px 2px rgba(15,23,42,.02);transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease,background .15s ease}
.yv-company-card:hover{border-color:#cddcff;background:var(--yv-company-hover);box-shadow:var(--yv-company-shadow);transform:translateY(-1px)}
.yv-company-card__main{min-width:0}
.yv-company-card__name{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#111827!important;text-decoration:none!important;font-size:17px;font-weight:700;line-height:1.45}
.yv-company-card__name:hover{color:var(--yv-brand)!important}
.yv-company-card__tags{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:9px;min-height:24px}
.yv-company-card .yv-tag{display:inline-flex;align-items:center;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:6px;padding:3px 8px;font-size:12px;line-height:1.45}
.yv-company-card__stats{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px solid #eef2f6;color:#64748b;font-size:13px}
.yv-company-card__stat{display:inline-flex;align-items:baseline;gap:3px;white-space:nowrap}
.yv-company-card__stat strong{color:#0f172a;font-size:15px;font-weight:700}
.yv-company-card__more{margin-left:auto;color:var(--yv-brand)!important;text-decoration:none!important;font-size:13px;font-weight:600;white-space:nowrap}
.yv-company-card__more:hover{color:var(--yv-brand-dark)!important}

@media (max-width:980px){
  .yv-companies__list{grid-template-columns:1fr}
  .yv-companies__filters .yv-field{flex:1 1 180px}
}
@media (max-width:640px){
  .yv-companies{padding:20px 14px 32px!important}
  .yv-companies .yv-list__title{font-size:24px}
  .yv-companies .yv-list__search{gap:8px}
  .yv-companies .yv-list__search-btn{min-width:68px;padding:0 13px}
  .yv-companies__filters{padding:12px;gap:10px}
  .yv-companies__filters .yv-field{flex:1 1 100%;min-width:0}
  .yv-company-card{padding:16px;min-height:0}
  .yv-company-card__stats{gap:8px 12px}
  .yv-company-card__more{width:100%;margin-left:0;margin-top:2px}
}


/* =========================================================
 * 公司详情页 /companies/{slug}/
 * ========================================================= */
.yv-company-page{max-width:none!important;padding-top:28px!important}
.yv-company-page__hero{padding:4px 0 26px;max-width:1200px}
.yv-company-page__eyebrow{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;background:#eff6ff;color:var(--yv-brand);font-size:12px;font-weight:700;letter-spacing:.02em}
.yv-company-page .yv-list__title{margin-top:12px;margin-bottom:10px;font-size:34px;line-height:1.2;color:#0f172a;letter-spacing:-.02em}
.yv-company-page__tags{margin:2px 0 10px}
.yv-company__tags{display:flex;flex-wrap:wrap;gap:8px}
.yv-company__aliases{margin:0 0 10px;color:#64748b;font-size:14px}
.yv-company-page .yv-list__intro{font-size:15px;line-height:1.9;color:#64748b;max-width:900px;margin-bottom:18px}
.yv-company-overview{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:18px;align-items:stretch}
.yv-company-overview__stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.yv-company-stat-card{padding:18px 18px 16px;border:1px solid #e7ecf2;border-radius:16px;background:linear-gradient(180deg,#fff 0%,#f8fbff 100%);box-shadow:0 8px 24px rgba(15,23,42,.04)}
.yv-company-stat-card__label{display:block;font-size:13px;color:#64748b;margin-bottom:10px}
.yv-company-stat-card__value{display:block;font-size:30px;line-height:1.1;font-weight:800;color:#0f172a;letter-spacing:-.03em}
.yv-company-overview__summary{display:flex;flex-direction:column;justify-content:space-between;padding:18px 20px;border:1px solid #e7ecf2;border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(15,23,42,.04)}
.yv-company-overview__summary-text{margin:0;color:#334155;font-size:15px;line-height:1.9}
.yv-company-page__actions{margin-top:16px;display:flex;flex-wrap:wrap;gap:10px}
.yv-btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 16px;border-radius:10px;background:var(--yv-brand);border:1px solid var(--yv-brand);color:#fff!important;text-decoration:none!important;font-size:14px;font-weight:600;transition:background .15s ease,border-color .15s ease,transform .15s ease,box-shadow .15s ease;box-shadow:0 6px 20px rgba(30,94,255,.12)}
.yv-btn:hover{background:var(--yv-brand-dark);border-color:var(--yv-brand-dark);transform:translateY(-1px)}
.yv-btn--ghost{background:#fff;color:var(--yv-brand)!important;border-color:#d7e2ff;box-shadow:none}
.yv-btn--ghost:hover{background:#f8fbff;border-color:#b8cbff}
.yv-company-sec{max-width:1200px;margin-top:18px;padding:22px;border:1px solid #e7ecf2;border-radius:18px;background:#fff;box-shadow:0 8px 28px rgba(15,23,42,.035)}
.yv-company-sec__head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}
.yv-company-sec__head h2{margin:0;color:#0f172a;font-size:24px;line-height:1.3;letter-spacing:-.02em}
.yv-company-sec__head p{margin:6px 0 0;color:#64748b;font-size:14px;line-height:1.7}
.yv-company-sec__more{flex:0 0 auto;display:inline-flex;align-items:center;color:var(--yv-brand)!important;text-decoration:none!important;font-size:14px;font-weight:600;white-space:nowrap}
.yv-company-sec__more:hover{color:var(--yv-brand-dark)!important}
.yv-company-stream{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.yv-company-stream__item{display:flex;flex-direction:column;gap:8px;min-width:0;padding:16px 18px;border:1px solid #e9eef4;border-radius:14px;background:#fbfdff;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease,background .15s ease}
.yv-company-stream__item:hover{border-color:#d6e3ff;background:#fff;box-shadow:0 8px 24px rgba(15,23,42,.04);transform:translateY(-1px)}
.yv-company-stream__head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.yv-company-stream__title{margin:0;color:#111827;font-size:17px;font-weight:700;line-height:1.55}
.yv-company-stream__meta{color:#64748b;font-size:13px;line-height:1.75}
.yv-company-stream__desc{color:#334155;font-size:14px;line-height:1.8;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
@media (max-width:1100px){
  .yv-company-overview{grid-template-columns:1fr}
}
@media (max-width:900px){
  .yv-company-overview__stats,.yv-company-stream{grid-template-columns:1fr}
}
@media (max-width:640px){
  .yv-company-page{padding:18px 14px 30px!important}
  .yv-company-page .yv-list__title{font-size:28px}
  .yv-company-sec{padding:18px 16px;border-radius:16px}
  .yv-company-sec__head{flex-direction:column;gap:8px}
  .yv-company-page__actions{flex-direction:column;align-items:stretch}
  .yv-btn{width:100%}
}

.yv-company-breadcrumb{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 14px;color:#94a3b8;font-size:13px}
.yv-company-breadcrumb a{color:#64748b!important;text-decoration:none!important}
.yv-company-breadcrumb a:hover{color:var(--yv-brand)!important}
.yv-company-breadcrumb span:last-child{color:#94a3b8}

/* v2.1.8 公司详情页岗位卡片：点击打开现有招聘详情抽屉 */
.yv-company-stream__item--clickable{cursor:pointer;position:relative}
.yv-company-stream__item--clickable:focus-visible{outline:2px solid #93c5fd;outline-offset:2px;border-color:#93c5fd}
.yv-company-stream__open{flex:0 0 auto;color:var(--yv-brand);font-size:12px;font-weight:600;white-space:nowrap;opacity:.75;transition:opacity .15s ease,transform .15s ease}
.yv-company-stream__item--clickable:hover .yv-company-stream__open{opacity:1;transform:translateX(2px)}
@media (max-width:640px){.yv-company-stream__open{display:none}}


/* v2.1.13: modal compatibility is handled by closing the plugin drawer in JS.
 * Never override the theme's global .modal/.modal-backdrop stacking context. */
.yv-list__drawer[hidden],.yv-list__overlay[hidden]{display:none!important}

/* v2.1.13 theme-isolation hotfix: keep every layout/overflow rule inside plugin root. */
.yv-list{isolation:isolate;contain:layout style;max-width:100%!important;overflow:visible!important}
.yv-list[data-yv-biz="gongkao"]{contain:style}
.yv-list__results,.yv-table-scroll{min-width:0;max-width:100%}
.yv-table-scroll{overflow-x:auto!important}


/* v2.1.14: make application/announcement URLs unmistakably clickable in detail drawer. */
.yv-detail__pair dd:has(.yv-detail__link-btn){display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.yv-detail__link-btn{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:7px 14px;border:1px solid var(--yv-brand);border-radius:9px;background:var(--yv-brand);color:#fff!important;text-decoration:none!important;font-size:13px;font-weight:700;line-height:1.35;box-shadow:0 4px 12px rgba(30,94,255,.16);transition:transform .15s ease,background .15s ease,border-color .15s ease,box-shadow .15s ease}
.yv-detail__link-btn:hover{background:var(--yv-brand-dark);border-color:var(--yv-brand-dark);color:#fff!important;transform:translateY(-1px);box-shadow:0 7px 18px rgba(30,94,255,.22)}
.yv-detail__link-btn:focus-visible{outline:3px solid rgba(30,94,255,.20);outline-offset:2px}
.yv-detail__link-host{display:inline-block;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#94a3b8;font-size:12px}
@media (max-width:640px){.yv-detail__pair dd:has(.yv-detail__link-btn){align-items:flex-start}.yv-detail__link-host{max-width:190px}}


/* =========================================================
 * v1.0.7 布局修正（重要）
 * 旧规则用 width:calc(100vw-32px) + margin-left:calc(50% - 50vw) 强行全屏，
 * 依赖父级允许溢出。zibll 等内容区带 overflow:hidden 时，整块会被左移后被裁掉：
 * 表现为左侧筛选栏被切、表格右侧列看不到、排序框被压扁。
 * 现改为「占满自身容器」，不再与主题的溢出策略对抗。
 * ========================================================= */
.yv-list,
.yv-list.alignfull,
.yv-res,
.yv-companies,
.yv-company-page{
  width:100%!important;
  max-width:100%!important;
  margin-left:auto!important;
  margin-right:auto!important;
  box-sizing:border-box!important;
}

/* =========================================================
 * v2.1.17 招聘/实习详情：飞书详情面板风格
 * ========================================================= */
.yv-list__drawer{
  width:min(820px,52vw)!important;
  max-width:calc(100vw - 20px)!important;
  padding:0!important;
  background:#fff!important;
  overflow-y:auto!important;
  box-shadow:-18px 0 48px rgba(15,23,42,.18)!important;
}
.yv-list__drawer-close{
  position:sticky!important;top:0!important;float:none!important;margin-left:auto!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  width:46px!important;height:46px!important;padding:0!important;border:0!important;
  background:rgba(255,255,255,.96)!important;color:#94a3b8!important;font-size:28px!important;
  z-index:6!important;
}
.yv-list__drawer-body{padding:0 34px 44px!important}
.yv-detail-v2{max-width:100%;color:#1f2937}
.yv-detail-v2__hero{padding:2px 0 22px;border-bottom:1px solid #e8edf3}
.yv-detail-v2__company{margin:0;font-size:27px;line-height:1.35;font-weight:800;color:#111827;letter-spacing:-.02em}
.yv-detail-v2__title{margin:12px 0 0;font-size:16px;line-height:1.75;color:#475569}
.yv-detail-v2__hero-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:15px}
.yv-detail-v2__updated{font-size:13px;color:#94a3b8}
.yv-detail-v2__fields{padding:10px 0 4px}
.yv-detail-v2__row{display:grid;grid-template-columns:132px minmax(0,1fr);gap:20px;align-items:start;padding:14px 0;border-bottom:1px solid #eef2f6}
.yv-detail-v2__label{color:#7c8aa0;font-size:14px;font-weight:600;line-height:1.75}
.yv-detail-v2__value{min-width:0;color:#27364b;font-size:15px;line-height:1.8;white-space:pre-wrap;word-break:break-word}
.yv-detail-v2__row--long .yv-detail-v2__value{color:#334155;line-height:1.9}
/* 截止时间 + 状态标签：原文可能是整句，标签跟着最后一段走，不单独占一行 */
.yv-detail-v2__deadline{display:inline-flex;align-items:baseline;gap:8px;flex-wrap:wrap;min-width:0}
.yv-detail-v2__deadline-text{min-width:0;overflow-wrap:anywhere}
.yv-detail-v2__deadline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.yv-detail-v2__section-title{margin:0 0 12px;font-size:17px;font-weight:750;color:#111827}
.yv-detail-v2__apply{margin-top:24px;padding-top:20px;border-top:1px solid #e8edf3}
.yv-detail-v2__apply-rows{border:1px solid #e6ebf1;border-radius:14px;background:#fbfdff;overflow:hidden}
.yv-detail-v2__apply-row{display:grid;grid-template-columns:132px minmax(0,1fr);gap:20px;padding:13px 16px;border-bottom:1px solid #edf1f5}
.yv-detail-v2__apply-row:last-child{border-bottom:0}
.yv-detail-v2__apply-label{color:#7c8aa0;font-size:14px;font-weight:600;line-height:1.75}
.yv-detail-v2__apply-value{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0;color:#27364b;font-size:15px;line-height:1.75;word-break:break-word}
.yv-detail-v2__locked-card{margin-top:0!important;padding:18px!important;border-radius:14px!important}
.yv-detail-v2 .yv-tag{font-size:13px;padding:3px 9px;border-radius:7px}
@media (max-width:1100px){
  .yv-list__drawer{width:min(720px,64vw)!important}
}
@media (max-width:760px){
  .yv-list__drawer{width:100%!important;max-width:100%!important}
  .yv-list__drawer-body{padding:0 20px 34px!important}
  .yv-detail-v2__company{font-size:23px}
  .yv-detail-v2__row,.yv-detail-v2__apply-row{grid-template-columns:96px minmax(0,1fr);gap:14px}
}


/* =========================================================
 * v2.1.18 详情顶部工具栏：上一个 / 下一个 / 关闭
 * ========================================================= */
.yv-list__drawer-toolbar{
  position:sticky!important;
  top:0!important;
  z-index:20!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  width:100%!important;
  height:58px!important;
  padding:0 18px!important;
  border-bottom:1px solid #e8edf3!important;
  background:rgba(255,255,255,.97)!important;
  backdrop-filter:saturate(140%) blur(8px);
  -webkit-backdrop-filter:saturate(140%) blur(8px);
}
.yv-list__drawer-nav{display:flex!important;align-items:center!important;gap:4px!important}
.yv-list__drawer-navbtn{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:6px!important;
  min-width:42px!important;height:38px!important;padding:0 10px!important;border:0!important;border-radius:8px!important;
  background:transparent!important;color:#475569!important;font-size:18px!important;line-height:1!important;cursor:pointer!important;
  transition:background .15s ease,color .15s ease!important;
}
.yv-list__drawer-navbtn span{font-size:13px!important;font-weight:600!important}
.yv-list__drawer-navbtn:hover:not(:disabled){background:#f1f5f9!important;color:#0f172a!important}
.yv-list__drawer-navbtn:disabled{opacity:.28!important;cursor:not-allowed!important}
.yv-list__drawer-close{
  position:static!important;top:auto!important;right:auto!important;float:none!important;margin:0!important;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  width:38px!important;height:38px!important;padding:0!important;border:0!important;border-radius:8px!important;
  background:transparent!important;color:#94a3b8!important;font-size:28px!important;line-height:1!important;cursor:pointer!important;
  z-index:auto!important;transition:background .15s ease,color .15s ease!important;
}
.yv-list__drawer-close:hover{background:#f1f5f9!important;color:#334155!important}
.yv-list__drawer-body{padding-top:24px!important}
@media (max-width:640px){
  .yv-list__drawer-toolbar{height:54px!important;padding:0 12px!important}
  .yv-list__drawer-navbtn{padding:0 8px!important}
  .yv-list__drawer-navbtn span{display:none!important}
  .yv-list__drawer-body{padding-top:20px!important}
}

/* v2.2.0 公司页：WordPress 站内资料 + 插件同步资料 */
.yv-company-resource-subhead{display:flex;align-items:center;gap:10px;margin:18px 0 10px;padding-top:14px;border-top:1px solid #eef2f6;color:#475569;font-size:13px}
.yv-company-resource-subhead:first-of-type{margin-top:2px;padding-top:0;border-top:0}
.yv-company-resource-subhead strong{font-size:15px;color:#0f172a}
.yv-company-resource-subhead span{display:inline-flex;padding:2px 8px;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:12px}
.yv-company-resource-subhead a{margin-left:auto;color:var(--yv-brand)!important;text-decoration:none!important;font-weight:600}
.yv-company-resource-post__link{color:#111827!important;text-decoration:none!important}
.yv-company-resource-post__link:hover{color:var(--yv-brand)!important}

/* =========================================================
 * 首页招聘精选 / [yv_jobs_home]
 * ========================================================= */
.yv-home-jobs{--yv-brand:#1e5eff;--yv-brand-dark:#1746c4;--yv-line:#e7ecf2;--yv-muted:#64748b;position:relative;width:100%;max-width:none;margin:28px 0;padding:24px;border:1px solid var(--yv-line);border-radius:20px;background:#fff;box-shadow:0 12px 36px rgba(15,23,42,.045);box-sizing:border-box;color:#0f172a}
.yv-home-jobs *,.yv-home-jobs *::before,.yv-home-jobs *::after{box-sizing:border-box}
.yv-home-jobs__head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:16px}
.yv-home-jobs__eyebrow{display:inline-flex;padding:4px 9px;border-radius:999px;background:#eff6ff;color:#2563eb;font-size:12px;font-weight:700}
.yv-home-jobs__title{margin:8px 0 5px!important;font-size:28px!important;line-height:1.25!important;color:#0f172a!important;letter-spacing:-.02em}
.yv-home-jobs__intro{margin:0;color:#64748b;font-size:14px;line-height:1.8}
.yv-home-jobs__all{flex:0 0 auto;color:var(--yv-brand)!important;text-decoration:none!important;font-size:14px;font-weight:700;white-space:nowrap}
.yv-home-jobs__all:hover{color:var(--yv-brand-dark)!important}
.yv-home-jobs__chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 15px}
.yv-home-jobs__chip{display:inline-flex;align-items:center;min-height:30px;padding:4px 11px;border:1px solid #e2e8f0;border-radius:999px;background:#f8fafc;color:#475569!important;text-decoration:none!important;font-size:13px;transition:.15s ease}
.yv-home-jobs__chip:hover{border-color:#b8cbff;background:#eff6ff;color:var(--yv-brand)!important}
.yv-home-jobs__table{overflow:hidden;border:1px solid #e7ecf2;border-radius:14px;background:#fff}
.yv-home-jobs__row{display:grid;grid-template-columns:minmax(260px,2fr) 110px 105px minmax(160px,1fr) 135px;gap:0;align-items:center}
.yv-home-jobs__row>div,.yv-home-jobs__row>span{min-width:0;padding:13px 15px}
.yv-home-jobs__row--head{background:#f8fafc;color:#64748b;font-size:12px;font-weight:700;border-bottom:1px solid #e7ecf2}
.yv-home-jobs__row--head>span{padding-top:10px;padding-bottom:10px}
.yv-home-jobs__row--data{cursor:pointer;background:#fff;border-bottom:1px solid #eef2f6;transition:background .15s ease,box-shadow .15s ease}
.yv-home-jobs__row--data:last-child{border-bottom:0}
.yv-home-jobs__row--data:hover,.yv-home-jobs__row--data:focus{background:#f8fbff;outline:none;box-shadow:inset 3px 0 0 #1e5eff}
.yv-home-jobs__company{display:flex;flex-direction:column;gap:2px}
.yv-home-jobs__company strong{font-size:15px;color:#111827;line-height:1.45}
.yv-home-jobs__company span{display:block;color:#94a3b8;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.yv-home-jobs__type{background:#eff6ff!important;color:#2563eb!important}
.yv-home-jobs__deadline{color:#334155;font-size:13px}
.yv-home-jobs__deadline.is-expired{color:#94a3b8}
.yv-home-jobs__empty{padding:38px;text-align:center;color:#94a3b8}
.yv-home-jobs__foot{display:flex;justify-content:center;margin-top:18px}
.yv-home-jobs__drawer{width:min(760px,52vw)!important}
@media(max-width:900px){
  .yv-home-jobs{padding:18px 14px;border-radius:16px}
  .yv-home-jobs__head{align-items:flex-start}
  .yv-home-jobs__all{display:none}
  .yv-home-jobs__title{font-size:24px!important}
  .yv-home-jobs__table{border:0;background:transparent;overflow:visible}
  .yv-home-jobs__row--head{display:none}
  .yv-home-jobs__body{display:grid;grid-template-columns:1fr;gap:10px}
  .yv-home-jobs__row--data{display:grid;grid-template-columns:1fr auto;gap:7px 12px;padding:14px;border:1px solid #e7ecf2;border-radius:12px!important;box-shadow:0 2px 8px rgba(15,23,42,.025)}
  .yv-home-jobs__row--data>div{padding:0}
  .yv-home-jobs__company{grid-column:1/-1}
  .yv-home-jobs__company strong{font-size:16px}
  .yv-home-jobs__row--data>div:nth-child(2){grid-column:1;grid-row:2}
  .yv-home-jobs__row--data>div:nth-child(3){grid-column:2;grid-row:2;text-align:right;color:#64748b;font-size:13px}
  .yv-home-jobs__row--data>div:nth-child(4){grid-column:1;grid-row:3;color:#475569;font-size:13px}
  .yv-home-jobs__row--data>div:nth-child(5){grid-column:2;grid-row:3;text-align:right}
  .yv-home-jobs__drawer{width:100%!important}
}

/* v2.2.5: homepage module hard isolation from Zibll global nav/section styles */
.yv-home-jobs{display:block!important;position:relative!important;float:none!important;clear:both!important;inset:auto!important;top:auto!important;right:auto!important;bottom:auto!important;left:auto!important;transform:none!important;visibility:visible!important;opacity:1!important;height:auto!important;min-height:0!important;overflow:visible!important;z-index:1!important}
.yv-home-jobs__head,.yv-home-jobs__chips,.yv-home-jobs__table,.yv-home-jobs__foot{position:relative!important;float:none!important;inset:auto!important;transform:none!important;z-index:auto!important}
.yv-home-jobs__chips{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;width:auto!important;height:auto!important;overflow:visible!important}
.yv-home-jobs__chips a{position:static!important;float:none!important;width:auto!important;height:auto!important;margin:0!important}
#yv-home-jobs-auto-host{display:none!important}

/* v2.2.7: company actions with zero records are visibly disabled and never clickable. */
.yv-company-page .yv-btn.is-disabled,.yv-company-page .yv-company-sec__more.is-disabled{pointer-events:none;cursor:not-allowed;opacity:.48;filter:grayscale(.15);box-shadow:none!important;transform:none!important}
.yv-company-page .yv-company-sec__more.is-disabled{color:#94a3b8!important}

/* =========================================================
 * v1.0.7 列表页视觉整理（医疗站单专区）
 * 目标：筛选条横排后内容更紧凑，表格更清晰、行高统一、
 * 首列粘性有明确分隔，工具栏不再挤压排序下拉。
 * ========================================================= */
.yv-list{contain:style;color:#111827}
.yv-list__hero{padding:4px 0 14px}
.yv-list__title{margin:0 0 8px;font-size:25px;line-height:1.28;font-weight:750;letter-spacing:-.01em;color:#0f172a}
.yv-list__intro{margin:0 0 18px;color:#64748b;font-size:14px;max-width:820px;line-height:1.75}
.yv-list__search{width:min(520px,100%)}
.yv-list__search::before{left:15px;width:16px;height:16px}
.yv-list__search-input{height:46px;padding:0 16px 0 42px;border-radius:12px;font-size:15px;border-color:#E3E8EF}
.yv-list__search-input:focus{outline:3px solid rgba(30,94,255,.13);border-color:#93b4ff}
.yv-list__search-btn{height:46px;padding:0 22px;border-radius:12px;font-size:15px;font-weight:600}
.yv-quick{margin-top:14px;gap:8px}
.yv-quick__chip{padding:5px 13px;font-size:12.5px;color:#475569;border-color:#E3E8EF}
.yv-quick__chip.is-active{background:#EFF6FF;border-color:#BFDBFE;color:#1d4ed8}

/* 工具栏 */
.yv-list__toolbar{gap:10px 14px;padding:2px 2px 12px;border-bottom:1px solid var(--yv-line-soft);margin-bottom:12px}
.yv-list__count{font-size:13.5px;color:#475569}
.yv-list__count strong{font-size:15px;color:#0f172a;margin:0 3px}
.yv-list__active{flex:1 1 200px;min-width:0}
.yv-list__sort,.yv-list__perpage{font-size:12.5px;color:#64748b;gap:6px;white-space:nowrap}
.yv-list__sort select,.yv-list__perpage select{
  height:34px;min-width:106px;padding:0 28px 0 10px;border-radius:9px;font-size:13px;color:#1f2937;border-color:#E3E8EF;
  -webkit-appearance:none;appearance:none;
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 9px center;background-size:12px;
}

/* 表格 */
.yv-table-scroll{border-radius:14px;border-color:#E3E8EF;box-shadow:0 1px 3px rgba(15,23,42,.05)}
.yv-table__hint{font-size:11.5px;color:#94a3b8}
.yv-grid-head{background:#F8FAFC}
.yv-th{padding:12px;font-size:12px;font-weight:600;color:#64748b;letter-spacing:.03em;background:#F8FAFC;border-right:1px solid #EDF1F6}
.yv-td{padding:12px;font-size:13.5px;color:#334155;border-right:1px solid #F1F5F9}
.yv-row{min-height:60px}
.yv-cell-company{gap:3px;max-width:100%}
.yv-cell-company__name{font-size:14.5px;line-height:1.5;font-weight:600;color:#0f172a}
.yv-cell-company__sub{font-size:12px;color:#94a3b8}
.yv-cell-positions{font-size:12.5px;color:#64748b;line-height:1.65}
.yv-td--sticky,.yv-th--sticky,.yv-grid-head .yv-th--sticky{background:#fff}
.yv-grid-head .yv-th--sticky{background:#F8FAFC}
.yv-td--sticky{box-shadow:6px 0 12px -8px rgba(15,23,42,.14)}
.yv-table__action{height:30px;padding:0 10px;border-radius:8px;font-size:12.5px;border-color:#BFDBFE;color:#1d4ed8}
.yv-table__action:hover{background:#1d4ed8;border-color:#1d4ed8;color:#fff}

/* 移动端：工具栏与筛选抽屉微调 */
@media (max-width:900px){
  .yv-list__toolbar{gap:8px;padding-bottom:10px}
  .yv-list__title{font-size:21px}
  .yv-list__intro{font-size:13.5px;margin-bottom:14px}
  .yv-list__search-input,.yv-list__search-btn{height:42px;font-size:14px}
  .yv-th,.yv-td{padding:10px}
  .yv-list__filters{display:block}
}

/* v1.0.7 表格单元格：短字段不折行（折行会把行高撑成两倍，视觉很散） */
.yv-td--plain{overflow:hidden}
.yv-td--plain>span{display:block;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.yv-table__action{white-space:nowrap}
.yv-cell-deadline,.yv-td--plain .yv-muted{white-space:nowrap}

/* v1.0.8 省市联动：未选省份时城市下拉置灰，避免误以为「没有城市」 */
.yv-field__select:disabled{background:#F1F5F9;color:#94A3B8;border-color:#E5E7EB;cursor:not-allowed;opacity:1}
.yv-field__select:disabled:hover{border-color:#E5E7EB}

/* =========================================================
 * v1.0.17 招聘列表视觉升级（医疗招聘 / 校园招聘 共用同一套设计语言）
 *
 * 约定：
 *  - 全部规则都限定在 .yv-list 内，不影响公司目录 / 首页模块 / 主题
 *  - 只改颜色、字号、间距、圆角、阴影与布局；不改任何数据、字段、筛选与接口
 *  - 类型色块与标签颜色都来自真实字段（招聘类型 / 编制性质），没有数据就不显示
 * ========================================================= */
.yv-list,
.yv-list.alignfull{
  --yv-brand:#2563EB;
  --yv-brand-dark:#1E40AF;
  --yv-page:#F5F8FC;
  --yv-card:#FFFFFF;
  --yv-title:#172B4D;
  --yv-text-2:#475569;
  --yv-muted-2:#64748B;
  --yv-line:#E5EAF2;
  --yv-line-soft:#EEF2F8;
  --yv-soft:#F0F6FF;
  --yv-radius:12px;
  --yv-shadow:0 1px 2px rgba(16,38,76,.04),0 10px 28px rgba(16,38,76,.055);
  padding:20px clamp(14px,2.2vw,30px) 44px;
  background:var(--yv-page);
  color:var(--yv-text-2);
}

/* ---------- 顶部查询区 ---------- */
.yv-list .yv-list__hero{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:24px;padding:6px 2px 20px}
.yv-list .yv-list__hero-main{min-width:0}
.yv-list .yv-list__title{margin:0 0 10px;font-size:30px;line-height:1.25;font-weight:800;letter-spacing:-.02em;color:var(--yv-title)}
.yv-list .yv-list__intro{margin:0 0 18px;max-width:900px;font-size:14.5px;line-height:1.85;color:var(--yv-muted-2)}

.yv-list .yv-list__hero-stat{
  display:inline-flex;align-items:baseline;gap:6px;flex:0 0 auto;
  padding:14px 20px;border:1px solid var(--yv-line);border-radius:var(--yv-radius);
  background:var(--yv-card);box-shadow:var(--yv-shadow);white-space:nowrap;
}
.yv-list .yv-list__stat-label{font-size:13px;color:var(--yv-muted-2)}
.yv-list .yv-list__stat-num{font-size:27px;line-height:1.1;font-weight:800;color:var(--yv-brand);letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.yv-list .yv-list__stat-unit{font-size:13px;color:var(--yv-muted-2)}

/* 搜索框：加宽 + 48px + 左侧搜索图标 + 蓝色实心按钮 */
.yv-list .yv-list__search{display:flex;gap:10px;width:min(780px,100%);max-width:100%}
.yv-list .yv-list__search::before{left:16px;width:17px;height:17px}
.yv-list .yv-list__search-input{
  flex:1 1 auto;min-width:0;height:48px;padding:0 16px 0 44px;
  border:1px solid var(--yv-line);border-radius:8px;background:#fff;
  font-size:15px;color:var(--yv-title);box-shadow:0 1px 2px rgba(16,38,76,.03);
  transition:border-color .15s ease,box-shadow .15s ease;
}
.yv-list .yv-list__search-input::placeholder{color:#9AA9BF}
.yv-list .yv-list__search-input:focus{outline:none;border-color:#93B4FF;box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.yv-list .yv-list__search-btn{
  flex:0 0 auto;height:48px;min-width:112px;padding:0 22px;
  border:1px solid var(--yv-brand);border-radius:8px;background:var(--yv-brand);
  color:#fff;font-size:15px;font-weight:700;cursor:pointer;
  transition:background .15s ease,border-color .15s ease;
}
.yv-list .yv-list__search-btn:hover{background:var(--yv-brand-dark);border-color:var(--yv-brand-dark)}

/* 分类导航：胶囊 Tab（分类项完全来自各页自己的 quick_chips 配置） */
.yv-list .yv-quick{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.yv-list .yv-quick__chip{
  display:inline-flex;align-items:center;padding:8px 16px;border:1px solid var(--yv-line);
  border-radius:999px;background:#fff;color:#3A4A63;font-size:13.5px;font-weight:600;
  line-height:1.35;text-decoration:none;transition:background .15s ease,border-color .15s ease,color .15s ease;
}
.yv-list .yv-quick__chip:hover{background:var(--yv-soft);border-color:#CBDDFF;color:var(--yv-brand)}
.yv-list .yv-quick__chip.is-active{
  background:var(--yv-brand);border-color:var(--yv-brand);color:#fff;
  box-shadow:0 4px 12px rgba(37,99,235,.18);
}

/* ---------- 筛选卡片 ---------- */
.yv-list .yv-list__layout{gap:16px;margin-top:4px}
.yv-list .yv-field__label{color:var(--yv-muted-2)}

@media (min-width:901px){
  .yv-list .yv-list__filters{
    padding:16px 18px;border:1px solid var(--yv-line);border-radius:var(--yv-radius);
    background:var(--yv-card);box-shadow:var(--yv-shadow);
    -webkit-backdrop-filter:none;backdrop-filter:none;
    gap:14px 18px;
  }
  .yv-list .yv-field{flex:0 0 190px}
  /* [LAW-PATCH] 校招 / 社招地区筛选独占一行，避免热门城市被 190px 字段宽度挤成多行。 */
  .yv-list .yv-field--location{
    flex:0 0 100%;display:flex;align-items:center;gap:8px;min-width:0;
  }
  .yv-list .yv-field--location > .yv-field__label,
  .yv-list .yv-field--location > .yv-field__sub{
    flex:0 0 auto;margin:0;white-space:nowrap;
  }
  .yv-list .yv-field--location > .yv-field__select{flex:0 0 156px;width:156px}
  .yv-list .yv-field__label{font-size:12px;margin-bottom:6px}
  .yv-list .yv-field__select{
    height:42px;border:1px solid var(--yv-line);border-radius:8px;
    font-size:13.5px;color:#22314A;background-color:#fff;
  }
  .yv-list .yv-field__select:focus{outline:none;border-color:#93B4FF;box-shadow:0 0 0 3px rgba(37,99,235,.10)}
  /* 重置：蓝色描边 */
  .yv-list .yv-list__clear{
    height:42px;padding:0 18px;border:1px solid #BBD0FF;border-radius:8px;
    background:#fff;color:var(--yv-brand);font-size:13.5px;font-weight:600;
  }
  .yv-list .yv-list__clear:hover{background:var(--yv-soft);border-color:#9DBDFF}
}

/* [LAW-PATCH] 空间不足时只滚动城市选项，保留完整文字和所有地区入口。 */
.yv-list .yv-field--location > .yv-chips{
  flex:1 1 auto;min-width:0;max-width:100%;flex-wrap:nowrap;overflow-x:auto;
  padding:2px 0;overscroll-behavior-x:contain;
}
.yv-list .yv-field--location .yv-chip{flex:0 0 auto;white-space:nowrap}

/* ---------- 结果工具栏 ---------- */
.yv-list .yv-list__toolbar{padding:0 2px 12px;border-bottom:0;margin-bottom:0;gap:10px 14px}
.yv-list .yv-list__count{font-size:13.5px;color:var(--yv-muted-2)}
.yv-list .yv-list__count strong{font-size:16px;font-weight:800;color:var(--yv-brand);margin:0 3px}
.yv-list .yv-active-chip{background:var(--yv-soft);color:var(--yv-brand);border-radius:999px;font-weight:600}
.yv-list .yv-list__sort select,.yv-list .yv-list__perpage select{
  height:34px;border:1px solid var(--yv-line);border-radius:8px;background-color:#fff;color:#22314A;
}

/* ---------- 表格卡片 ---------- */
.yv-list .yv-table__bar{min-height:0}
.yv-list .yv-table__hint{font-size:11.5px;color:#9AA9BF}
.yv-list .yv-table-scroll{
  border:1px solid var(--yv-line);border-radius:var(--yv-radius);
  background:var(--yv-card);box-shadow:var(--yv-shadow);
}
.yv-list .yv-grid-head,.yv-list .yv-th{background:#F4F8FD}
.yv-list .yv-th{
  padding:12px 14px;border-bottom:1px solid var(--yv-line);border-right:0;
  color:#5B7290;font-size:12px;font-weight:700;letter-spacing:.02em;
}
.yv-list .yv-row{min-height:66px;background:var(--yv-card)}
.yv-list .yv-td{
  padding:13px 14px;border-right:0;border-bottom:1px solid var(--yv-line-soft);
  font-size:13px;color:var(--yv-text-2);background:var(--yv-card);
}
.yv-list .yv-row:hover .yv-td,.yv-list .yv-row:hover .yv-td--sticky{background:var(--yv-soft)}
.yv-list .yv-td--sticky{box-shadow:6px 0 12px -10px rgba(16,38,76,.16)}

/* 标题列：类型色块 + 标题 + 属性标签 */
.yv-list .yv-cell-company{display:flex;align-items:flex-start;gap:10px;max-width:100%}
.yv-list .yv-cell-company__body{display:flex;flex-direction:column;gap:3px;min-width:0}
.yv-list .yv-cell-company__name{
  font-size:14px;font-weight:700;line-height:1.5;color:var(--yv-title);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.yv-list .yv-cell-company__sub{font-size:12px;line-height:1.5;color:#8A9AB3;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.yv-list .yv-cell-company__tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}

/* 类型色块：一个类同时定义「实心块」和「浅底标签」两种用法 */
.yv-list .yv-ct-badge{
  flex:0 0 38px;width:38px;height:38px;border-radius:9px;
  display:inline-flex;align-items:center;justify-content:center;
  font-size:15px;font-weight:800;line-height:1;color:#fff;
  background:var(--yv-b,#94A3B8);
}
.yv-list .yv-tag--type{background:var(--yv-bs,#F1F5F9);color:var(--yv-b,#475569);font-weight:600}
.yv-list .yv-ct-badge.is-blue,.yv-list .yv-tag--type.is-blue{--yv-b:#2563EB;--yv-bs:#E8F0FF}
.yv-list .yv-ct-badge.is-orange,.yv-list .yv-tag--type.is-orange{--yv-b:#EA7317;--yv-bs:#FFF1E4}
.yv-list .yv-ct-badge.is-red,.yv-list .yv-tag--type.is-red{--yv-b:#DC2626;--yv-bs:#FDECEC}
.yv-list .yv-ct-badge.is-violet,.yv-list .yv-tag--type.is-violet{--yv-b:#7C3AED;--yv-bs:#F2ECFF}
.yv-list .yv-ct-badge.is-purple,.yv-list .yv-tag--type.is-purple{--yv-b:#8B5CF6;--yv-bs:#F3EEFF}
.yv-list .yv-ct-badge.is-teal,.yv-list .yv-tag--type.is-teal{--yv-b:#0D9488;--yv-bs:#E6F7F5}
.yv-list .yv-ct-badge.is-cyan,.yv-list .yv-tag--type.is-cyan{--yv-b:#0891B2;--yv-bs:#E4F5FA}
.yv-list .yv-ct-badge.is-indigo,.yv-list .yv-tag--type.is-indigo{--yv-b:#4F46E5;--yv-bs:#EBEAFF}
.yv-list .yv-ct-badge.is-amber,.yv-list .yv-tag--type.is-amber{--yv-b:#D97706;--yv-bs:#FEF3E2}
.yv-list .yv-ct-badge.is-gray,.yv-list .yv-tag--type.is-gray{--yv-b:#64748B;--yv-bs:#F1F5F9}

/* 标签：统一 22px 高、11.5px 字、6px 圆角 */
.yv-list .yv-tag{
  display:inline-flex;align-items:center;height:22px;padding:0 8px;
  border-radius:6px;font-size:11.5px;font-weight:600;line-height:1;white-space:nowrap;
  background:#F1F5F9;color:#51607A;
}
.yv-list .yv-tag--soft{background:#E8F0FF;color:#1D4ED8}
.yv-list .yv-tag--urgent{background:#F97316;color:#fff;font-weight:600;margin-left:0}
.yv-list .yv-tag--expired{background:#FDECEC;color:#C0392B;font-weight:600;box-shadow:inset 0 0 0 1px #F5C2C2;margin-left:0}
/* [LAW-PATCH] 彩色标签：上面 .yv-list .yv-tag 的灰底特异性更高，会把单类的彩色变体盖掉，
   必须用同样特异性的选择器重申一遍颜色（底色为 Tailwind-100/200 档，肉眼可辨） */
.yv-list .yv-tag--ct-blue{background:#DBEAFE;color:#1D4ED8}
.yv-list .yv-tag--ct-orange{background:#FFEDD5;color:#C2410C}
.yv-list .yv-tag--ct-green{background:#D1FAE5;color:#047857}
.yv-list .yv-tag--ct-purple{background:#EDE9FE;color:#6D28D9}
.yv-list .yv-tag--ct-cyan{background:#CFFAFE;color:#0E7490}
.yv-list .yv-tag--ct-teal{background:#CCFBF1;color:#0F766E}
.yv-list .yv-tag--ct-red{background:#FEE2E2;color:#B91C1C}
.yv-list .yv-tag--ct-gray{background:#E2E8F0;color:#475569}
.yv-list .yv-tag--rt-green{background:#D1FAE5;color:#047857}
.yv-list .yv-tag--rt-blue{background:#DBEAFE;color:#1D4ED8}
.yv-list .yv-tag--rt-cyan{background:#CFFAFE;color:#0E7490}
.yv-list .yv-tag--rt-purple{background:#EDE9FE;color:#6D28D9}
.yv-list .yv-tag--rt-gray{background:#E2E8F0;color:#475569}
.yv-list .yv-tag--ind-blue{background:#DBEAFE;color:#1D4ED8}
/* 「招聘状态」提示条：只在选了该项时出现（display:flex 会盖掉 hidden，必须显式处理） */
.yv-list__notice--validity{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 12px;padding:10px 14px;border-radius:10px;font-size:13.5px;line-height:1.6}
.yv-list__notice--validity[hidden]{display:none}
.yv-list__notice--validity strong{font-weight:650}
.yv-list__notice--validity.is-warn{background:#FEF2F2;color:#9B2C2C;box-shadow:inset 0 0 0 1px #FAD1D1}
.yv-list__notice--validity.is-ok{background:#F0F9F4;color:#1B6B45;box-shadow:inset 0 0 0 1px #CFEBDD}
.yv-list__notice--validity.is-soon{background:#FFF7ED;color:#9A3412;box-shadow:inset 0 0 0 1px #FED7AA}
.yv-list__notice-link{margin-left:auto;color:inherit;font-weight:600;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}

/* 截止时间：上下两行（日期 / 状态），没有状态就只显示原始文案 */
.yv-list .yv-cell-deadline{display:inline-flex;flex-direction:column;align-items:flex-start;gap:5px;white-space:nowrap}
.yv-list .yv-cell-deadline__date{font-size:13px;font-weight:650;color:#24344D;font-variant-numeric:tabular-nums}
.yv-list .yv-cell-deadline[data-state="expired"] .yv-cell-deadline__date{color:#94A3B8;font-weight:500}
/* 考公/央国企的截止时间是公告原文，可能是一整句（含线下报名时段），
   限两行、悬停看全文；否则不是把列撑破，就是截成没有意义的半句。 */
.yv-list .yv-cell-deadline--raw{align-items:flex-start;white-space:normal;min-width:0}
.yv-list .yv-cell-deadline--raw .yv-cell-deadline__date{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.4;font-weight:500;max-width:100%;white-space:normal}
.yv-list .yv-td[data-col="deadline_raw"]{padding-left:10px;padding-right:10px}
.yv-list .yv-td[data-col="deadline_raw"]>span{font-size:12.5px;color:#24344D;font-variant-numeric:tabular-nums}

/* 详情按钮：蓝色描边 + 箭头（文案仍是「详情」） */
.yv-list .yv-td[data-col="actions"]{padding-left:8px;padding-right:8px;justify-content:center}
.yv-list .yv-table__action{
  display:inline-flex;align-items:center;gap:3px;height:32px;padding:0 12px;
  border:1px solid #C7DAFF;border-radius:7px;background:#fff;color:var(--yv-brand);
  font-size:12.5px;font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease;
}
.yv-list .yv-table__action::after{content:"›";font-size:15px;line-height:1;margin-top:-1px}
.yv-list .yv-table__action:hover{background:var(--yv-soft);border-color:#A9C5FF;color:var(--yv-brand-dark)}

/* 分页 */
.yv-list .yv-list__pagination{gap:8px;margin-top:20px}
.yv-list .yv-list__page{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:34px;height:34px;padding:0 10px;border:1px solid var(--yv-line);border-radius:8px;
  background:#fff;color:#3A4A63;font-size:13px;text-decoration:none;
}
.yv-list .yv-list__page:hover{border-color:#A9C5FF;color:var(--yv-brand);background:var(--yv-soft)}
.yv-list .yv-list__page.is-current{background:var(--yv-brand);border-color:var(--yv-brand);color:#fff;font-weight:700}
.yv-list .yv-list__page.is-disabled{color:#C2CBD9;background:#fff}
.yv-list .yv-list__page-gap{color:#9AA9BF;padding:0 2px}
.yv-list .yv-list__page-info{margin-left:8px;color:#9AA9BF;font-size:12.5px}

/* 空态 / 错态 */
.yv-list .yv-list__empty,.yv-list .yv-list__error{
  border:1px solid var(--yv-line);border-radius:var(--yv-radius);background:var(--yv-card);
  box-shadow:var(--yv-shadow);
}

/* ---------- 移动端：表格改卡片（信息不丢，每个字段带字段名） ---------- */
@media (max-width:900px){
  .yv-list,.yv-list.alignfull{padding:14px 14px 32px}
  .yv-list .yv-list__hero{grid-template-columns:minmax(0,1fr);gap:12px;padding:2px 0 14px}
  .yv-list .yv-list__title{font-size:23px}
  .yv-list .yv-list__intro{font-size:13.5px;margin-bottom:14px}
  .yv-list .yv-list__hero-stat{justify-content:center;width:100%;padding:12px 16px}
  .yv-list .yv-list__stat-num{font-size:23px}
  .yv-list .yv-list__search{width:100%;gap:8px}
  .yv-list .yv-list__search-input{height:44px;font-size:14px}
  .yv-list .yv-list__search-btn{height:44px;min-width:84px;padding:0 16px;font-size:14px}

  /* 分类导航横向滚动 */
  .yv-list .yv-quick{flex-wrap:nowrap;overflow-x:auto;padding:2px 0 6px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .yv-list .yv-quick::-webkit-scrollbar{display:none}
  .yv-list .yv-quick__chip{flex:0 0 auto;padding:7px 14px;font-size:13px}

  /* 卡片化 */
  .yv-list .yv-table__bar{display:none}
  .yv-list .yv-table-scroll{
    overflow:visible!important;border:0;background:transparent;box-shadow:none;border-radius:0;
  }
  .yv-list .yv-table{width:100%!important;min-width:0!important}
  .yv-list .yv-grid-head{display:none!important}
  .yv-list .yv-grid-body{display:grid!important;gap:10px}
  .yv-list .yv-row{
    display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:12px;min-height:0;padding:14px;
    border:1px solid var(--yv-line);border-radius:10px;background:var(--yv-card);
    box-shadow:0 1px 2px rgba(16,38,76,.045);
  }
  .yv-list .yv-td{
    display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0;
    padding:0;border:0;background:transparent!important;font-size:13px;
  }
  .yv-list .yv-td::before{content:attr(data-label);font-size:11px;line-height:1.4;color:#93A3BA}
  .yv-list .yv-td--sticky{position:static!important;left:auto!important;box-shadow:none!important}
  .yv-list .yv-td[data-col="company_name"]{
    grid-column:1/-1;padding-bottom:10px;border-bottom:1px solid var(--yv-line-soft);
  }
  .yv-list .yv-td[data-col="company_name"]::before{display:none}
  .yv-list .yv-cell-company__name{font-size:15px;-webkit-line-clamp:3}
  .yv-list .yv-td[data-col="actions"]{grid-column:1/-1;align-items:stretch}
  .yv-list .yv-td[data-col="actions"]::before{display:none}
  .yv-list .yv-table__action{width:100%;justify-content:center;height:36px;font-size:13px}
  /* 卡片里短字段允许换行，不再省略 */
  .yv-list .yv-td--plain>span{white-space:normal;overflow:visible;text-overflow:clip}
  .yv-list .yv-cell-positions,.yv-list .yv-cell-major{-webkit-line-clamp:3}
  /* 长串（如「临床医学,中医学,护理学」）必须能在卡片内断行，否则会顶破卡片右边界 */
  .yv-list .yv-row{box-sizing:border-box;min-width:0}
  .yv-list .yv-td,.yv-list .yv-td>span,
  .yv-list .yv-cell-positions,.yv-list .yv-cell-major,
  .yv-list .yv-cell-company__name,.yv-list .yv-cell-company__sub{
    min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:break-word;
  }
  /* 顶部已有总数大卡，工具栏里的计数在移动端省掉，只留「筛选」入口 */
  .yv-list .yv-list__count{display:none}
  .yv-list .yv-list__toolbar{flex-wrap:nowrap;gap:8px}
  .yv-list .yv-list__filter-toggle{
    margin-left:auto;display:inline-flex;align-items:center;height:34px;padding:0 14px;
    border:1px solid #C7DAFF;border-radius:8px;background:#fff;color:var(--yv-brand);
    font-size:13px;font-weight:600;
  }
  .yv-list .yv-cell-deadline{flex-direction:row;align-items:center;gap:8px;flex-wrap:wrap}
  /* 卡片内的按钮不要浮在上面 */
  .yv-list .yv-list__page{height:36px;min-width:36px}
  .yv-list .yv-list__page-info{width:100%;text-align:center;margin:6px 0 0}
}

/* 平板宽度（640–900）：卡片用三列，避免 768 下单行卡片左右留白过大 */
@media (min-width:640px) and (max-width:900px){
  .yv-list .yv-row{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px 16px}
  .yv-list .yv-cell-company__name{font-size:16px}
}

/* 截止时间列：原始值可能是日期区间或「详见公告」这类长文本，允许换行，不要截成省略号 */
.yv-list .yv-td[data-col="deadline_raw"]>span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:normal;line-height:1.55;word-break:normal;overflow-wrap:anywhere;text-overflow:clip}
.yv-list .yv-td[data-col="region"]>span{white-space:normal;overflow:visible;text-overflow:clip}
/* 短字段（日期/届次/学历）不要被拆成两行 */
.yv-list .yv-cell-updated{white-space:nowrap;font-size:12.5px;font-variant-numeric:tabular-nums;color:#3A4A63}
.yv-list .yv-cell-deadline,.yv-list .yv-cell-deadline__date{white-space:nowrap}

/* 行业列：名称较长，加宽到 132px 走单行；万一还放不下就整词省略（不拆字） */
.yv-list .yv-td[data-col="industry_code"] .yv-tag{font-size:11.5px;padding:2px 6px}

/* =========================================================
 * v1.0.18 详情抽屉：挂到 body（portal），修复"关闭按钮看不见 / 点不到"
 *
 * 根因（线上实测）：.yv-list 上有 isolation:isolate + contain:layout，
 * 抽屉的 position:fixed 因此被限制在列表容器内、z-index 也被关进局部层叠上下文，
 * 结果被主题固定的顶部导航条（约 52–60px）压在下面 ——
 * 右上角的 × 和「上一个/下一个」正好落在导航条覆盖的区域，肉眼看不到、也点不动。
 *
 * 做法：JS 把 overlay + drawer 追加到 body，脱离列表容器；
 * 这里把原本从 .yv-list 继承的东西补回来（盒模型 / 配色变量 / 少量元素规则），
 * 保证移出去以后视觉与之前完全一致。
 * ========================================================= */
.yv-list__drawer{
  --yv-line:#E5EAF2;--yv-line-soft:#EEF3F9;--yv-muted:#64748B;--yv-text:#172B4D;--yv-sub:#475569;
  --yv-brand:#2563EB;--yv-brand-dark:#1E40AF;--yv-soft:#F0F6FF;--yv-urgent:#DC2626;
  z-index:100000!important;
}
.yv-list__overlay{z-index:99990!important}
.yv-list__drawer,.yv-list__drawer *,.yv-list__drawer *::before,.yv-list__drawer *::after{box-sizing:border-box}
.yv-list__drawer [hidden]{display:none!important}
.yv-list__drawer .screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.yv-list__drawer .yv-tag{display:inline-block;padding:3px 9px;border-radius:7px;font-size:13px;line-height:1.7;white-space:nowrap;background:#F1F5F9;color:#475569;font-weight:500}
.yv-list__drawer .yv-tag--soft{background:#E8F0FF;color:#1D4ED8}
.yv-list__drawer .yv-tag--urgent{background:#F97316;color:#fff;font-weight:600;margin-left:0}
.yv-list__drawer .yv-tag--expired{background:#FDECEC;color:#C0392B;font-weight:600;box-shadow:inset 0 0 0 1px #F5C2C2;margin-left:0}
.yv-list__drawer .yv-tag--type{background:var(--yv-bs,#F1F5F9);color:var(--yv-b,#475569);font-weight:600}
.yv-list__drawer .yv-cell-deadline{display:inline-flex;flex-direction:row;align-items:center;gap:8px;white-space:nowrap}
.yv-list__drawer .yv-cell-deadline__date{font-size:13px;font-weight:650;color:#24344D;font-variant-numeric:tabular-nums}
.yv-list__drawer .yv-cell-deadline[data-state="expired"] .yv-cell-deadline__date{color:#94A3B8;font-weight:500}

/* 关闭按钮：给足对比度，任何时候都看得见 */
.yv-list__drawer .yv-list__drawer-close{
  width:40px!important;height:40px!important;border-radius:10px!important;
  border:1px solid #E5EAF2!important;background:#fff!important;color:#475569!important;
  font-size:26px!important;font-weight:400!important;line-height:1!important;
  box-shadow:0 1px 3px rgba(16,24,40,.08)!important;
}
.yv-list__drawer .yv-list__drawer-close:hover{background:#F0F6FF!important;border-color:#CBDCFB!important;color:#2563EB!important}
.yv-list__drawer .yv-list__drawer-close:focus-visible{outline:2px solid #93C5FD;outline-offset:2px}
@media (max-width:640px){
  .yv-list__drawer .yv-list__drawer-close{width:44px!important;height:44px!important;font-size:28px!important}
}

/* [LAW-PATCH] 长文本类额外列（岗位详情等）：按段落展示，不塞进键值表 */
.yv-detail-v2__longtext{border:1px solid #e6ebf1;border-radius:14px;background:#fbfdff;padding:14px 16px}
.yv-detail-v2__longtext .yv-detail-v2__para{margin:0 0 8px;font-size:14px;line-height:1.75;color:#26313f;white-space:pre-wrap;word-break:break-word}
.yv-detail-v2__longtext .yv-detail-v2__para:last-child{margin-bottom:0}
.yv-detail-v2__masked-hint{margin:10px 0 0;font-size:12px;line-height:1.6;color:#8a94a6}



/* =========================================================
 * [LAW-PATCH-UI] 公司目录 / 公司详情页 布局修复
 * 背景：`.yv-list .yv-list__hero{display:grid;grid-template-columns:minmax(0,1fr) auto}`
 *      本来是给「校招列表页」做的两栏 hero（左：标题+简介+搜索+快捷词 / 右：总数卡）。
 *      公司目录页（/companies/）与公司详情页（/companies/{slug}/）同样用了
 *      .yv-list__hero，于是被误套成两栏 grid，产生：
 *        · /companies/ ：「招聘单位目录」被挤成每行一个字竖排；搜索框塌陷成小方块
 *        · /companies/{slug}/ ：小标签被拉伸成整条横带；别名与简介错位到左右两列；
 *                                 统计卡被压窄、数字换行被裁切
 * 处理：这两页的 hero 回到单栏块级流；校招列表页的两栏设计保持不动。
 * ========================================================= */
.yv-list.yv-companies .yv-list__hero,
.yv-list.yv-company-page .yv-list__hero{display:block;gap:0;align-items:initial}

/* ---------- /companies/ 招聘单位目录 ---------- */
.yv-list.yv-companies .yv-list__hero{padding:2px 0 16px}
.yv-list.yv-companies .yv-list__title{margin:0 0 10px;font-size:30px;line-height:1.3;white-space:normal;word-break:keep-all;text-wrap:balance}
.yv-list.yv-companies .yv-list__intro{max-width:860px;margin:0 0 18px;font-size:15px;line-height:1.85;color:#64748b;text-wrap:pretty}
.yv-list.yv-companies .yv-list__search{display:flex;align-items:stretch;width:100%;max-width:680px;margin:0}
.yv-list.yv-companies .yv-list__search-input{flex:1 1 auto;min-width:0}
.yv-list.yv-companies .yv-table__bar{margin:6px 0 14px}

/* ---------- /companies/{slug}/ 公司详情 ---------- */
.yv-list.yv-company-page .yv-list__hero{max-width:1200px;margin:0 auto;padding:0 0 22px}
.yv-list.yv-company-page .yv-company-page__eyebrow{margin:0 0 12px;white-space:nowrap}
.yv-list.yv-company-page .yv-list__title{margin:0 0 8px;font-size:34px;line-height:1.25;word-break:break-word;text-wrap:balance}
.yv-list.yv-company-page .yv-list__intro{max-width:900px;margin:0 0 20px;text-wrap:pretty}
.yv-list.yv-company-page .yv-company-sec{margin-left:auto;margin-right:auto}
.yv-company-stat-card__label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.yv-company-stat-card__value{font-variant-numeric:tabular-nums}

@media (max-width:1100px){
  .yv-list.yv-companies .yv-list__hero,
  .yv-list.yv-company-page .yv-list__hero{max-width:100%}
}
/* 平板宽度下：避开主题右侧固定悬浮按钮，别让「查看全部岗位 →」被图标盖住 */
@media (min-width:901px) and (max-width:1279px){
  .yv-list.yv-company-page{padding-right:78px}
}
@media (max-width:900px){
  .yv-list.yv-companies .yv-list__title{font-size:24px}
  .yv-list.yv-company-page .yv-list__title{font-size:28px}
}

/* 主题可能给正文内链接加下划线/底线，公司卡片里的链接一律去掉 */
.yv-company-card__name,.yv-company-card__more,.yv-company-sec__more,.yv-company-breadcrumb a{
  border-bottom:0!important;box-shadow:none!important;background-image:none!important;text-decoration:none!important;
}

/* =========================================================
 * [LAW-PATCH-UI] 移动端招聘卡片压缩（一屏看更多岗位）
 * 背景：移动端把桌面表格整体卡片化，13 个列全部铺成「标签 + 值」两列网格，
 *      单张卡片约 470px 高，780px 屏幕只能看到 1.5 条。
 * 做法（纯 CSS，不动数据/接口/桌面表格）：
 *   · 隐藏低价值字段：更新时间 / 所属行业 / 免笔试 / 可投岗位
 *   · 核心字段压成一行「标签 + 值」的标签流：
 *     招聘类型 · 企业性质 · 地点 · 届次 · 学历 · 截止（截止靠右对齐）
 *   · 专业要求独占一行、最多两行
 *   · 详情按钮压到 32px
 * ========================================================= */
@media (max-width:900px){
  .yv-list .yv-grid-body{gap:8px}

  /* 头部收紧：简介最多两行、总数条变轻，把首屏让给岗位卡片 */
  .yv-list .yv-list__intro{
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
    line-height:1.75;margin-bottom:10px;
  }
  .yv-list .yv-list__hero-stat{
    width:auto;align-self:flex-start;justify-content:flex-start;
    padding:6px 12px;border-radius:10px;box-shadow:none;
  }
  .yv-list .yv-list__stat-num{font-size:19px}
  .yv-list .yv-list__stat-label,.yv-list .yv-list__stat-unit{font-size:12px}
  .yv-list .yv-list__toolbar{padding:0 2px 8px}
  .yv-list .yv-list__filter-toggle{height:32px;padding:0 12px;font-size:12.5px}

  .yv-list .yv-row{
    display:flex!important;flex-wrap:wrap;align-items:flex-start;
    grid-template-columns:none!important;
    gap:5px 14px;padding:12px 14px;
  }

  /* ---------- 头部：企业 + 岗位 ---------- */
  .yv-list .yv-td[data-col="company_name"]{
    flex:1 1 100%;min-width:0;padding:0 0 9px;margin:0 0 1px;
    border-bottom:1px solid var(--yv-line-soft)!important;
  }
  .yv-list .yv-td[data-col="company_name"]::before{display:none}
  .yv-list .yv-cell-company{gap:10px;align-items:flex-start}
  .yv-list .yv-ct-badge{width:34px;height:34px;font-size:15px;border-radius:9px;flex:0 0 auto}
  .yv-list .yv-cell-company__name{font-size:15px;line-height:1.42;font-weight:700;-webkit-line-clamp:2}
  .yv-list .yv-cell-company__sub{
    margin-top:2px;font-size:12.5px;line-height:1.45;color:#5B6B84;
    display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;
  }
  .yv-list .yv-cell-company__tags{margin-top:4px}

  /* ---------- 隐藏低价值字段 ---------- */
  .yv-list .yv-td[data-col="updated_at"],
  .yv-list .yv-td[data-col="industry_code"],
  .yv-list .yv-td[data-col="written_test_free"],
  .yv-list .yv-td[data-col="positions"]{display:none!important}

  /* ---------- 核心字段：标签流 ---------- */
  .yv-list .yv-td[data-col="recruit_type_code"],
  .yv-list .yv-td[data-col="company_type_code"],
  .yv-list .yv-td[data-col="locations"],
  .yv-list .yv-td[data-col="graduation_years"],
  .yv-list .yv-td[data-col="education_levels"],
  .yv-list .yv-td[data-col="deadline"]{
    flex:0 1 auto;display:inline-flex;flex-direction:row;align-items:center;gap:5px;
    max-width:100%;padding:0;font-size:12.5px;line-height:1.55;color:#24344D;
  }
  /* 已经是彩色标签的两个字段不再重复写标签 */
  .yv-list .yv-td[data-col="recruit_type_code"]::before,
  .yv-list .yv-td[data-col="company_type_code"]::before{display:none}
  /* 固定阅读顺序：类型 → 性质 → 地点 → 届次 → 学历 → 截止 → 专业 → 按钮 */
  .yv-list .yv-td[data-col="company_name"]{order:0}
  .yv-list .yv-td[data-col="recruit_type_code"]{order:1}
  .yv-list .yv-td[data-col="company_type_code"]{order:2}
  .yv-list .yv-td[data-col="locations"]{order:3}
  .yv-list .yv-td[data-col="graduation_years"]{order:4}
  .yv-list .yv-td[data-col="education_levels"]{order:5}
  .yv-list .yv-td[data-col="deadline"]{order:6}
  .yv-list .yv-td[data-col="major_requirement"]{order:7}
  .yv-list .yv-td[data-col="actions"]{order:8}
  .yv-list .yv-td[data-col="locations"]::before{content:"地点"}
  .yv-list .yv-td[data-col="graduation_years"]::before{content:"届次"}
  .yv-list .yv-td[data-col="education_levels"]::before{content:"学历"}
  .yv-list .yv-td[data-col="deadline"]::before{content:"截止"}
  .yv-list .yv-td[data-col="locations"]::before,
  .yv-list .yv-td[data-col="graduation_years"]::before,
  .yv-list .yv-td[data-col="education_levels"]::before,
  .yv-list .yv-td[data-col="deadline"]::before{
    font-size:11px;line-height:1.55;color:#9AA9BF;flex:0 0 auto;
  }
  .yv-list .yv-td[data-col="deadline"] .yv-cell-deadline{flex-wrap:nowrap}
  .yv-list .yv-td[data-col="deadline"] .yv-cell-deadline__date{font-size:12.5px}
  .yv-list .yv-td[data-col="deadline"] .yv-tag{font-size:10.5px;padding:1px 5px}

  /* ---------- 专业要求：独占一行，最多两行 ---------- */
  .yv-list .yv-td[data-col="major_requirement"]{flex:1 1 100%;padding:3px 0 0}
  .yv-list .yv-td[data-col="major_requirement"]::before{display:none}
  .yv-list .yv-cell-major{
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
    font-size:12.5px;line-height:1.55;color:#3A4A63;
  }
  .yv-list .yv-td[data-col="major_requirement"] .yv-cell-major::before{
    content:"专业";margin-right:6px;font-size:11px;color:#9AA9BF;
  }

  /* ---------- 详情按钮 ---------- */
  .yv-list .yv-td[data-col="actions"]{flex:1 1 100%;padding:4px 0 0;align-items:stretch}
  .yv-list .yv-table__action{width:100%;height:32px;font-size:12.5px;border-radius:8px}
}

/* Membership price and benefits below detail CTAs. */
.yv-detail-membership-offer{margin-top:14px;font-size:13px;line-height:1.8;overflow-wrap:anywhere}
.yv-detail-membership-offer p{margin:0!important}
.yv-detail-membership-offer__prices{display:flex;flex-wrap:wrap;gap:4px 16px;color:#92400e;font-weight:600}
.yv-detail-membership-offer__benefits{color:#64748b;margin-top:5px!important}
