
:root{
  --brand:#F4681D;--brand-dark:#E1560F;--brand-light:#FF8A47;
  --brand-50:#FFF7F1;--brand-100:#FFE8D6;--brand-200:#FFD4B0;
  --bg:#F5F5F3;--card:#fff;
  --line:#ECEAE6;--line-soft:#F4F2EE;
  --ink-900:#1A1714;--ink-700:#3D3730;--ink-500:#6E665D;--ink-400:#A39A8F;--ink-300:#C8C0B6;
  --red:#E54848;--green:#15A86B;--blue:#2F6FEB;--gold:#E09E2C;--purple:#8B5CF6;
  --font:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  --font-num:"DIN Alternate","SF Pro Display","Roboto",ui-monospace,sans-serif;
  --r:6px;--r-sm:6px;--r-xs:4px;--r-pill:999px;
  --sh:0 1px 2px rgba(26,23,20,.03),0 2px 8px rgba(26,23,20,.04);
  --sh-md:0 4px 16px rgba(0,0,0,.08);
  --sh-lg:0 8px 30px rgba(244,104,29,.18);
  --pad:16px;--gap:12px;
  --st:env(safe-area-inset-top,0px);--sb:env(safe-area-inset-bottom,0px);

  /* ===== T27-A 新增语义 token（值一律取改造前页面在用的实值，不做视觉变更）===== */
  /* 分类/业务色：原本散落在各页的 hex，收口于此 */
  --pink:#D9467F;--pink-50:#FFF0F5;
  --teal:#128E9C;--teal-50:#E9F7F0;
  --gold-dark:#B4780E;--gold-mid:#C48518;--gold-light:#F5B83D;--gold-50:#FDF5E6;
  --blue-50:#EEF5FF;--blue-soft:#E7F0FF;--blue-light:#6B9FFF;
  --red-50:#FFF0F0;--red-soft:#FDEDED;--red-light:#FF6B5E;
  --green-light:#3DD68C;
  --warn:#FDE68A;--warn-ink:#B45309;--warn-50:#FFFBF2;--warn-100:#FFF3DD;
  --wx-green:#07C160;
  /* T27-C 对比度达标层：--ink-400 #A39A8F 对白底仅 2.77:1、--ink-300 #C8C0B6 仅 1.80:1，
     均远低于 WCAG AA 的 4.5:1。按 T27-A 约束「不改既有 token 的值」，这里新增一个达标的灰色，
     只把「以文字形式使用灰阶」的选择器改指它；图标/禁用态仍用原 --ink-300/400（WCAG 1.4.3 不含禁用控件）。 */
  --ink-aa:#786F63;   /* #FFFFFF 4.94:1 ｜ #F5F5F3 4.52:1 */
  /* 圆角大档（10px）：与既有 --r-xs:4px / --r:6px 组成三档 */
  --r-lg:10px;
  /* 头像色板：index.html 原 JS 数组 AV 的 10 档，改 token 后由 JS 引用 */
  --av-1:#F4681D;--av-2:#D9467F;--av-3:#2F6FEB;--av-4:#C48518;--av-5:#15A86B;
  --av-6:#8B5CF6;--av-7:#128E9C;--av-8:#D9467F;--av-9:#555;--av-10:#6E665D;
  /* 多段渐变：3 段中间色若单造 --ink-750 之类会反语义，整体升为渐变 token */
  --grad-cta:linear-gradient(135deg,#1D1A17 0%,#352A22 60%,#4A372B 100%);
  --grad-skeleton:linear-gradient(90deg,#F1EFEC 25%,#F7F6F4 37%,#F1EFEC 63%);
  /* 透明度层：散落的 rgba 收成命名层（wt=白 / mask=黑蒙层 / ovl=深色浮层 / brand-a*=品牌色透明 / warm=暖黑）。
     ⚠ 这 19 个是「蒙层 / 透明层」，非设计色 —— 它们靠 alpha 叠在任意底色上使用，不参与配色决策，
     也不适用 WCAG 对比度核算（实际对比度取决于叠加后的底色，要按具体场景量）。审计方第 71 次 §三裁定。*/
  --wt-96:rgba(255,255,255,.96);--wt-85:rgba(255,255,255,.85);--wt-80:rgba(255,255,255,.8);
  --wt-65:rgba(255,255,255,.65);--wt-30:rgba(255,255,255,.3);--wt-22:rgba(255,255,255,.22);
  --wt-20:rgba(255,255,255,.2);--wt-15:rgba(255,255,255,.15);
  --mask-45:rgba(0,0,0,.45);--mask-40:rgba(0,0,0,.4);--mask-25:rgba(0,0,0,.25);--mask-20:rgba(0,0,0,.2);
  --ovl-88:rgba(26,23,20,.88);--warm-a50:rgba(20,12,5,.5);
  --brand-a40:rgba(244,104,29,.4);--brand-a35:rgba(244,104,29,.35);
  --brand-a32:rgba(244,104,29,.32);--brand-a25:rgba(244,104,29,.25);--brand-a18:rgba(244,104,29,.18);
  /* 字号阶梯：正文只允许 12/13/14/16/17/20/22；34px 为数据条大数字展示档（登记保留，不进正文阶梯） */
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html{font-size:14px}
body{font-family:var(--font);background:var(--bg);color:var(--ink-900);line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden;padding-bottom:calc(68px + var(--sb))}
a{text-decoration:none;color:inherit}ul,ol{list-style:none}
button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit}
input{font-family:inherit;border:0;outline:0;background:none}
.num{font-family:var(--font-num);font-variant-numeric:tabular-nums}

/* ====== 顶部状态栏占位 ====== */
.sys-status{height:var(--st);background:linear-gradient(135deg,var(--brand),var(--brand-dark))}

/* ====== 品牌头 ====== */
.app-head{background:url(banner.jpg) center/cover no-repeat;padding:0 var(--pad) 40px;padding-top: calc(var(--st) + 12px);position:relative;overflow:hidden;min-height:220px}
/* 第五十九批 E 组：`inset:0` 在 iOS Safari 14.0 不支持（14.1 起才支持）→ 遮罩会缩成 0 尺寸、
   「点空白关闭」失效。保留 inset 供新浏览器，同时显式写四边兜底。 */
.app-head::before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;inset:0;background:var(--mask-25);pointer-events:none;z-index:0}
.head-top{display:flex;align-items:center;justify-content:space-between;padding-top:8px;margin-bottom: 12px;position:relative;z-index:2}
.city-pick{display:flex;align-items:center;gap:4px;color:var(--card);font-size:16px;font-weight:600;padding: 8px 0}
.city-pick::after{content:"";width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid var(--wt-85);margin-left:2px;margin-top:2px}
.head-actions{display:flex;gap: 12px;align-items:center}
.h-ic{width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:var(--card);font-size:20px;position:relative;border-radius:50%}
.h-ic:active{background:var(--wt-15)}
.h-dot{position:absolute;top:4px;right:4px;width:8px;height:8px;border-radius:50%;background:var(--red);border:2px solid var(--mask-40)}
.brand-row{display:flex;align-items:center;gap: 8px;margin-bottom:24px;position:relative;z-index:2}
.brand-logo{height:34px;width:auto;display:block;flex:none}
.brand-div{width:1px;height:20px;background:var(--wt-30);flex:none}
.brand-slogan{font-size:12px;color:var(--wt-85);line-height:1.4;letter-spacing:.5px}
.brand-slogan b{color:var(--card);font-weight:700;font-size:12px;display:block;letter-spacing:0}
.search{display:flex;align-items:center;background:var(--wt-96);border-radius:var(--r-pill);height:44px;padding: 0 8px 0 16px;box-shadow:0 4px 20px var(--mask-25);position:relative;z-index:2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.search-ic{color:var(--ink-400);margin-right: 8px;display:flex;align-items:center}
.search-input{flex:1;height:100%;font-size:14px;color:var(--ink-900)}
.search-input::placeholder{color:var(--ink-aa)}
.search-btn{height:34px;padding: 0 20px;background:var(--ink-900);color:var(--card);border-radius:var(--r-pill);font-size:13px;font-weight:600;white-space:nowrap;transition:transform .1s}
.search-btn:active{transform:scale(.96)}

/* ====== 悬浮数据条 ====== */
.stats-card{background:var(--card);margin:-24px var(--pad) 0;border-radius:var(--r);padding:16px;box-shadow:var(--sh-md);position:relative;z-index:5;display:grid;grid-template-columns:repeat(4,1fr)}
.stat{text-align:center;position:relative}
.stat:not(:last-child)::after{content:"";position:absolute;right:0;top:20%;height:60%;width:1px;background:var(--line)}
.st-n{font-size:20px;font-weight:800;color:var(--ink-900);line-height:1;font-family:var(--font-num)}
.st-n small{font-size:12px;font-weight:700;color:var(--ink-500)}
.st-n .o{color:var(--brand)}
.st-l{font-size:12px;color:var(--ink-500);margin-top: 4px}

/* ====== 分类金刚区 ====== */
.cats{background:var(--card);margin:var(--gap) var(--pad) 0;border-radius:var(--r);padding: 16px 8px 12px;box-shadow:var(--sh)}
.cats-grid{display:grid;grid-template-columns:repeat(5,1fr);gap: 12px 0}
.cat{display:flex;flex-direction:column;align-items:center;gap: 8px;cursor:pointer}
.cat-ic{width:48px;height:48px;border-radius:var(--r-lg);display:flex;align-items:center;justify-content:center;position:relative;background:var(--bg);color:var(--ink-700);transition:all .15s}
.cat-ic:active{background:var(--brand-50);color:var(--brand);transform:scale(.95)}
.cat-ic.c1{color:var(--brand)}
.cat-ic.c2{color:var(--pink)}
.cat-ic.c3{color:var(--blue)}
.cat-ic.c4{color:var(--gold-mid)}
.cat-ic.c5{color:var(--green)}
.cat-ic.c6{color:var(--purple)}
.cat-ic.c7{color:var(--teal)}
.cat-ic.c8{color:var(--pink)}
.cat-ic.c9{color:var(--ink-500)}
.cat-ic.c10{color:var(--ink-500)}
.cat-badge{position:absolute;top:-2px;right:-2px;background:var(--red);color:var(--card);font-size:12px;padding: 1px 4px;border-radius:var(--r-lg);line-height:14px;font-weight:700}
.cat-name{font-size:12px;color:var(--ink-700);text-align:center;white-space:nowrap;font-weight:500}

/* ====== 福利标签 ====== */
.welfare{background:var(--card);margin:var(--gap) var(--pad) 0;border-radius:var(--r);padding: 12px 16px;box-shadow:var(--sh);display:flex;align-items:center;gap: 8px}
.wf-label{font-size:12px;color:var(--ink-500);white-space:nowrap;display:flex;align-items:center;gap: 4px;font-weight:600}
.wf-label::before{content:"";width:3px;height:12px;background:var(--ink-900);border-radius:var(--r-xs)}
.wf-tags{display:flex;flex-wrap:wrap;gap: 8px;flex:1}
.wf-tag{padding: 4px 8px;border-radius:var(--r-pill);font-size:12px;background:var(--bg);color:var(--ink-500);font-weight:500;border:1px solid var(--line)}

/* ====== 急聘专区 ====== */
.section{margin:20px 0 0}
.sec-hd{display:flex;align-items:baseline;justify-content:space-between;padding:0 var(--pad);margin-bottom: 8px}
.sec-h{font-size:17px;font-weight:800;display:flex;align-items:center;gap:8px;letter-spacing:-.3px}
.sec-h .bar{width:3px;height:16px;background:var(--ink-900);border-radius:var(--r-xs)}
.sec-h .hot{font-size:12px;background:linear-gradient(135deg,var(--red),var(--red-light));color:var(--card);padding: 2px 8px;border-radius:var(--r-pill);font-weight:700;margin-left:2px;letter-spacing:0}
.sec-h .sub{font-size:12px;color:var(--ink-aa);font-weight:400;margin-left:4px}
.sec-more{font-size:12px;color:var(--ink-aa);display:flex;align-items:center;gap:2px}
.sec-more::after{content:"›";font-size:17px;color:var(--ink-aa);margin-top:-2px}

.urgent-grid{margin:0 var(--pad);display:grid;grid-template-columns:1fr 1fr;gap:var(--gap)}
.urg{background:var(--card);border-radius:var(--r);padding: 12px;box-shadow:var(--sh);position:relative;overflow:hidden}
.urg-hot{position:absolute;top:10px;right:10px;background:var(--red);color:var(--card);font-size:12px;padding: 2px 8px;border-radius:var(--r-xs);font-weight:700;letter-spacing:.5px}
.urg-t{font-size:13px;font-weight:700;color:var(--ink-900);line-height:1.3;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;margin-bottom: 8px;padding-right:28px}
.urg-sal{font-size:17px;font-weight:800;font-family:var(--font-num);color:var(--brand);line-height:1;margin-bottom:8px}
.urg-sal small{font-size:12px;font-weight:600}
.urg-meta{display:flex;gap:4px;flex-wrap:wrap;margin-bottom: 8px}
.urg-meta span{font-size:12px;padding: 2px 8px;background:var(--bg);color:var(--ink-500);border-radius:var(--r-xs)}
.urg-bot{display:flex;align-items:center;justify-content:space-between;padding-top: 8px;border-top:1px solid var(--line-soft)}
.urg-co{font-size:12px;color:var(--ink-500);display:flex;align-items:center;gap:4px;max-width:68%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.urg-co::before{content:"";display:inline-block;width:12px;height:12px;border-radius:var(--r-xs);background:var(--brand-100);flex:none}
.urg-ap{font-size:12px;color:var(--brand);font-weight:600;display:inline-flex;align-items:center;line-height:1}
.urg-ap::after{content:"›";font-size:16px;margin-left:1px;line-height:1}

/* ====== 今日更新 ====== */
.today{background:var(--card);margin:0 var(--pad);border-radius:var(--r);box-shadow:var(--sh);overflow:hidden}
.today-item{padding: 12px 16px;border-bottom:1px solid var(--line-soft)}
.today-item:last-child{border-bottom:0}
.ti-top{display:flex;align-items:center;gap: 8px;margin-bottom: 8px}
.ti-logo{width:48px;height:48px;border-radius:var(--r-lg);background:linear-gradient(135deg,var(--brand-50),var(--brand-100));display:flex;align-items:center;justify-content:center;font-size:17px;flex:none}
.ti-info{flex:1;min-width:0}
.ti-name{font-size:14px;font-weight:700;display:flex;align-items:center;gap: 8px}
.ti-v{display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--gold-light),var(--gold));color:var(--card);font-size:12px;padding:1px 3px;border-radius:var(--r-xs);font-weight:800;line-height:1.3}
.ti-sub{font-size:12px;color:var(--ink-aa);margin-top:2px;display:flex;align-items:center;gap: 8px}
.ti-sub span{display:flex;align-items:center;gap:2px}
.ti-new{font-size:12px;background:var(--brand);color:var(--card);padding:2px 8px;border-radius:var(--r-pill);font-weight:600;flex:none}
.ti-jobs{display:flex;flex-direction:column;gap: 8px}
.ti-job{display:flex;align-items:center;justify-content:space-between;padding: 8px 12px;background:var(--bg);border-radius:var(--r);transition:background .15s}
.ti-job:active{background:var(--brand-50)}
.ti-jl{flex:1;min-width:0}
.ti-jn{font-size:13px;font-weight:600;color:var(--ink-900)}
.ti-jt{display:flex;gap: 8px;margin-top:3px;flex-wrap:wrap}
.ti-jt span{font-size:12px;color:var(--ink-500);display:flex;align-items:center}
.ti-jt span::before{content:"·";color:var(--ink-300);margin-right: 8px}
.ti-jt span:first-child::before{display:none}
.ti-jr{text-align:right;flex:none;margin-left: 8px}
.ti-js{font-size:16px;font-weight:800;font-family:var(--font-num);color:var(--brand)}
.ti-js small{font-size:12px;font-weight:600}
.ti-jd{font-size:12px;color:var(--ink-aa);margin-top:1px}

/* ====== 职位列表 ====== */
.job-list{margin:0 var(--pad);display:flex;flex-direction:column;gap:var(--gap)}
.job{background:var(--card);border-radius:var(--r);padding:16px;box-shadow:var(--sh);position:relative;transition:transform .15s}
.job:active{transform:scale(.99)}
.j-urg{position:absolute;top:0;left:16px;background:linear-gradient(135deg,var(--red),var(--red-light));color:var(--card);font-size:12px;padding:3px 8px 4px;border-radius:0 0 var(--r) var(--r);font-weight:700;letter-spacing:.5px}
.j-top{display:flex;justify-content:space-between;align-items:flex-start;gap: 8px;margin-top:2px}
.j-title{font-size:16px;font-weight:700;line-height:1.3;flex:1;display:flex;align-items:center;gap: 8px}
.j-crown{color:var(--gold);font-size:14px}
.j-sal{font-size:17px;font-weight:800;font-family:var(--font-num);color:var(--brand);white-space:nowrap;line-height:1.2}
.j-sal small{font-size:12px;font-weight:600}
.j-tags{display:flex;gap: 8px;flex-wrap:wrap;margin: 8px 0}
.j-tag{font-size:12px;padding:3px 8px;border-radius:var(--r-xs);background:var(--bg);color:var(--ink-500);font-weight:500}
.j-tag.hot{background:var(--brand-50);color:var(--brand);font-weight:600}
.j-meta{font-size:12px;color:var(--ink-500);display:flex;gap: 8px;flex-wrap:wrap;align-items:center}
.j-meta span{display:flex;align-items:center;gap:3px}
.j-bot{display:flex;align-items:center;justify-content:space-between;margin-top:12px;padding-top:12px;border-top:1px solid var(--line-soft)}
.j-co{display:flex;align-items:center;gap: 8px;flex:1;min-width:0}
.j-clogo{width:32px;height:32px;border-radius:var(--r-lg);background:linear-gradient(135deg,var(--brand-50),var(--brand-100));display:flex;align-items:center;justify-content:center;font-size:14px;flex:none}
.j-ci{flex:1;min-width:0}
.j-cn{font-size:13px;font-weight:600;color:var(--ink-700);display:flex;align-items:center;gap:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.j-cn .v{display:inline-flex;width:13px;height:13px;background:linear-gradient(135deg,var(--gold-light),var(--gold));color:var(--card);font-size:12px;border-radius:var(--r-xs);align-items:center;justify-content:center;font-weight:800;flex:none}
.j-cs{font-size:12px;color:var(--ink-aa);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.j-chat{width:36px;height:36px;border-radius:50%;background:var(--bg);color:var(--ink-500);display:flex;align-items:center;justify-content:center;flex:none;transition:all .15s;border:1px solid var(--line)}
.j-chat:active{background:var(--brand-50);color:var(--brand);border-color:var(--brand-100)}

/* ====== 热门标签 ====== */
.tags{background:var(--card);margin:0 var(--pad);border-radius:var(--r);padding:16px;box-shadow:var(--sh)}
.tags-wrap{display:flex;flex-wrap:wrap;gap:8px}
.tag{padding: 8px 12px;border-radius:var(--r-pill);font-size:12px;background:var(--bg);color:var(--ink-700);border:1px solid var(--line);font-weight:500;transition:all .15s}
.tag:active{background:var(--brand-50);border-color:var(--brand-100);color:var(--brand)}
.tag.hot{background:linear-gradient(135deg,var(--brand),var(--brand-dark));color:var(--card);border-color:transparent;font-weight:700;box-shadow:0 2px 8px var(--brand-a25)}
.tag.warm{background:var(--brand-50);color:var(--brand);border-color:var(--brand-100);font-weight:600}

/* ====== 优选人才 ====== */
.talent-grid{margin:0 var(--pad);display:grid;grid-template-columns:1fr 1fr;gap:var(--gap)}
.talent{background:var(--card);border-radius:var(--r);padding:16px 12px;box-shadow:var(--sh);text-align:center;position:relative;overflow:hidden}
.talent::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--green),var(--green-light))}
.talent.m::before{background:linear-gradient(90deg,var(--blue),var(--blue-light))}
.t-av{width:48px;height:48px;border-radius:50%;margin: 8px auto 8px;display:flex;align-items:center;justify-content:center;position:relative}
.t-av.f{color:var(--pink)}
.t-av.m{color:var(--blue)}
.t-online{position:absolute;bottom:2px;right:2px;width:14px;height:14px;border-radius:50%;background:var(--green);border:2.5px solid var(--card)}
.t-name{font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:4px}
.t-gender.f{color:var(--pink);font-size:13px}
.t-gender.m{color:var(--blue);font-size:13px}
.t-info{font-size:12px;color:var(--ink-500);margin-top:4px;line-height:1.5}
.t-job{font-size:12px;color:var(--brand);font-weight:700;margin-top: 8px;padding: 4px 8px;background:var(--brand-50);border-radius:var(--r-pill);display:inline-block}
.t-act{margin-top: 8px;padding-top: 8px;border-top:1px solid var(--line-soft);font-size:12px;color:var(--ink-500);display:flex;justify-content:center;gap:12px}
.t-act a{color:var(--brand);font-weight:600}
.t-act a:first-child{color:var(--ink-500);font-weight:400}

/* ====== 职业榜 ====== */
.rank{background:var(--card);margin:0 var(--pad);border-radius:var(--r);box-shadow:var(--sh);overflow:hidden}
.rank-item{display:flex;align-items:center;gap:12px;padding: 12px 16px;border-bottom:1px solid var(--line-soft);transition:background .15s}
.rank-item:last-child{border-bottom:0}
.rank-item:active{background:var(--bg)}
.rank-num{width:22px;font-size:16px;font-weight:800;font-family:var(--font-num);text-align:center;flex:none}
.rank-item:nth-child(1) .rank-num{color:var(--red);font-size:17px}
.rank-item:nth-child(2) .rank-num{color:var(--brand);font-size:17px}
.rank-item:nth-child(3) .rank-num{color:var(--gold);font-size:16px}
.rank-info{flex:1;min-width:0}
.rank-name{font-size:14px;font-weight:600}
.rank-sub{font-size:12px;color:var(--ink-aa);margin-top:2px;display:flex;gap:8px}
.rank-sub span{display:flex;align-items:center;gap:2px}
.rank-sal{font-size:14px;font-weight:800;font-family:var(--font-num);color:var(--brand);flex:none}
.rank-hot{font-size:12px;color:var(--red);background:var(--red-50);padding: 1px 4px;border-radius:var(--r-xs);font-weight:600;margin-left:4px}

/* ====== CTA 企业入驻 ====== */
.cta{margin:20px var(--pad) 0;border-radius:var(--r);background:var(--grad-cta);padding:20px;display:flex;align-items:center;gap: 12px;box-shadow:var(--sh);position:relative;overflow:hidden}
.cta::before{content:"";position:absolute;right:-30px;top:-30px;width:180px;height:180px;background:radial-gradient(circle,var(--brand-a35),transparent 70%);border-radius:50%;pointer-events:none}
.cta::after{content:"";position:absolute;right:20px;top:50%;transform:translateY(-50%);width:80px;height:80px;opacity:.06;pointer-events:none;background:radial-gradient(circle,var(--brand) 0%,transparent 70%);border-radius:50%}
.cta-t{flex:1;color:var(--card);position:relative;z-index:2}
.cta-t b{font-size:16px;font-weight:800;display:block;letter-spacing:-.2px}
.cta-t span{font-size:12px;color:var(--wt-65);margin-top: 4px;display:block;line-height:1.4}
.cta-btn{background:linear-gradient(135deg,var(--brand),var(--brand-dark));color:var(--card);padding: 12px 20px;border-radius:var(--r-pill);font-size:13px;font-weight:700;flex:none;position:relative;z-index:2;box-shadow:0 4px 16px var(--brand-a40);transition:transform .1s}
.cta-btn:active{transform:scale(.96)}

/* ====== 资讯 ====== */
.news{margin:0 var(--pad);display:flex;flex-direction:column;gap:8px}
.nw{background:var(--card);border-radius:var(--r);padding: 12px 12px;box-shadow:var(--sh);display:flex;align-items:center;gap: 8px;transition:background .15s}
.nw:active{background:var(--bg)}
.nw-tg{flex:none;font-size:12px;padding: 3px 8px;border-radius:var(--r-xs);font-weight:700}
.nw-tg.t1{background:var(--warn-100);color:var(--gold-dark)}
.nw-tg.t2{background:var(--brand-50);color:var(--brand)}
.nw-tg.t3{background:var(--blue-soft);color:var(--blue)}
.nw-tt{flex:1;font-size:13px;color:var(--ink-700);line-height:1.4;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;font-weight:500}
.nw-new{background:var(--red);color:var(--card);font-size:12px;padding: 1px 4px;border-radius:var(--r-xs);font-weight:700;flex:none;animation:pulse 1.5s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.6}}
.nw-dt{font-size:12px;color:var(--ink-aa);flex:none}

/* ====== 页脚 ====== */
.ft{text-align:center;padding:24px var(--pad) calc(24px + var(--sb));font-size:12px;color:var(--ink-aa);line-height:2}
.ft a{color:var(--ink-500);margin: 0 8px}
.ft .brand-ft{color:var(--brand);font-weight:700;font-size:12px}

/* ====== 底部Tab ====== */
.tab-bar{position:fixed;left:0;right:0;bottom:0;background:var(--card);border-top:1px solid var(--line);display:flex;padding-bottom:var(--sb);z-index:100;box-shadow:0 -2px 12px rgba(0,0,0,.05)}
.tb-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding: 8px 0 8px;color:var(--ink-aa);font-size:12px;transition:color .2s;font-weight:500}
.tb-item.on{color:var(--brand)}
.tb-ic{line-height:1;display:flex;align-items:center;justify-content:center}
.tb-item.publish .tb-ic{width:48px;height:48px;background:var(--brand);border-radius:50%;color:var(--card);display:flex;align-items:center;justify-content:center;margin-top: -20px;box-shadow:0 4px 16px var(--brand-a35);border:3px solid var(--card)}
.tb-item.publish span{color:var(--brand);font-weight:700;font-size:12px}

/* ====== 回到顶部 ====== */
.to-top{position:fixed;right:14px;bottom:calc(84px + var(--sb));width:40px;height:40px;border-radius:50%;background:var(--card);box-shadow:var(--sh-md);display:flex;align-items:center;justify-content:center;font-size:17px;color:var(--ink-500);z-index:90;opacity:0;pointer-events:none;transition:all .25s;border:1px solid var(--line)}
.to-top.show{opacity:1;pointer-events:auto}
.to-top:active{background:var(--brand-50);color:var(--brand)}

@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
@media print{.tab-bar,.to-top,.cta{display:none}body{background:var(--card);padding-bottom:0}}

/* ================= 第60批 · 公共组件（全站共享，样式沿用首页定稿 token） ================= */

/* ====== 二级页页头（固定顶部：返回 + 标题 + 右侧） ====== */
.pg-head{position:sticky;top:0;z-index:80;background:var(--card);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px;height:46px;padding:0 12px}
.pg-back{width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:var(--ink-900);flex:none;margin-left: -8px}
.pg-title{flex:1;font-size:16px;font-weight:700;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pg-right{width:32px;display:flex;align-items:center;justify-content:center;flex:none;font-size:13px;color:var(--ink-500)}
.pg-head + *{margin-top:0}

/* ====== 搜索条（二级页顶） ====== */
.pg-search{position:sticky;top:46px;z-index:79;background:var(--card);padding: 8px var(--pad);border-bottom:1px solid var(--line);display:flex;gap:8px;align-items:center}
.pg-sbox{flex:1;display:flex;align-items:center;gap:8px;height:36px;background:var(--bg);border-radius:var(--r-pill);padding: 0 12px;color:var(--ink-400)}
.pg-sbox input{flex:1;font-size:13px;color:var(--ink-900);height:100%}

/* ====== 行式筛选（移动版，与 PC 第55/56/58批同口径：选项由后台字典驱动） ====== */
.flt{background:var(--card);margin:var(--gap) var(--pad) 0;border-radius:var(--r);box-shadow:var(--sh);padding:4px 0}
.flt-row{display:flex;align-items:center;gap: 8px;padding: 8px 12px;border-bottom:1px solid var(--line-soft)}
.flt-row:last-child{border-bottom:0}
.flt-lb{flex:none;font-size:12px;color:var(--ink-500);font-weight:600;min-width:52px}
.flt-tags{display:flex;gap:8px;overflow-x:auto;flex:1;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.flt-tags::-webkit-scrollbar{display:none}
.flt-tag{flex:none;padding: 4px 12px;border-radius:var(--r-pill);font-size:12px;background:var(--bg);color:var(--ink-700);border:1px solid transparent;white-space:nowrap}
.flt-tag.on{background:var(--brand-50);color:var(--brand);border-color:var(--brand-100);font-weight:600}

/* ====== 通用空态 / 加载 ====== */
.ph{border-radius:var(--r);background:var(--grad-skeleton);background-size:400% 100%;animation:ph 1.2s ease infinite}
@keyframes ph{0%{background-position:100% 50%}100%{background-position:0 50%}}
.ph-l{height:14px;margin:8px 16px}
.empty{padding:44px 24px;text-align:center;color:var(--ink-aa);font-size:13px}
.empty .ic{font-size:34px;color:var(--ink-300);margin-bottom: 8px}
.empty .sub{font-size:12px;color:var(--ink-aa);margin-top: 8px}
.load-more{text-align:center;padding: 12px 0;color:var(--ink-aa);font-size:12px}

/* ====== Toast ====== */
.toast{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);background:var(--ovl-88);color:var(--card);padding: 8px 16px;border-radius:var(--r);font-size:13px;z-index:200;opacity:0;pointer-events:none;transition:opacity .2s;max-width:76%;text-align:center}
.toast.on{opacity:1}

/* ====== 底部操作条（详情页） ====== */
.act-bar{position:fixed;left:0;right:0;bottom:calc(56px + var(--sb));background:var(--card);border-top:1px solid var(--line);display:flex;align-items:center;gap: 8px;padding: 8px var(--pad) calc(8px + var(--sb));z-index:100}
.act-bar .btn-ghost{flex:none;width:44px;height:44px;border-radius:50%;background:var(--bg);display:flex;align-items:center;justify-content:center;color:var(--ink-500);border:1px solid var(--line)}
.act-bar .btn-ghost.on{color:var(--brand);background:var(--brand-50);border-color:var(--brand-100)}
.act-bar .btn-main{flex:1;height:44px;border-radius:var(--r-pill);background:linear-gradient(135deg,var(--brand),var(--brand-dark));color:var(--card);font-size:16px;font-weight:700;display:flex;align-items:center;justify-content:center}
.act-bar .btn-sub{flex:1;height:44px;border-radius:var(--r-pill);background:var(--bg);color:var(--ink-700);font-size:16px;font-weight:600;display:flex;align-items:center;justify-content:center;border:1px solid var(--line)}
.has-bar{padding-bottom: calc(68px + var(--sb))}
.has-bar-tab{padding-bottom: calc(124px + var(--sb))}

/* ====== 通用信息行 / 分组卡 ====== */
.kv{display:flex;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line-soft);font-size:13px}
.kv:last-child{border-bottom:0}
.kv-k{flex:none;width:72px;color:var(--ink-aa)}
.kv-v{flex:1;color:var(--ink-700);min-width:0}
.sec-card{background:var(--card);margin:var(--gap) var(--pad) 0;border-radius:var(--r);box-shadow:var(--sh);overflow:hidden}
.sec-card-t{padding: 12px 16px 0;font-size:16px;font-weight:700}

/* ====== 城市选择浮层（cfg/dict/regions 真实字典） ====== */
.sheet-mask{position:fixed;top:0;right:0;bottom:0;left:0;inset:0;background:var(--mask-45);z-index:150;opacity:0;transition:opacity .2s}
.sheet-mask.on{opacity:1}
.sheet{position:fixed;left:0;right:0;bottom:0;background:var(--card);border-radius:var(--r-lg) var(--r-lg) 0 0;z-index:151;transform:translateY(100%);transition:transform .25s;max-height:76vh;display:flex;flex-direction:column}
.sheet.on{transform:translateY(0)}
.sheet-hd{display:flex;align-items:center;justify-content:space-between;padding: 12px 16px;border-bottom:1px solid var(--line);font-size:16px;font-weight:700}
.sheet-close{color:var(--ink-aa);font-size:20px;line-height:1;padding:0 4px}
.sheet-bd{flex:1;overflow-y:auto;display:flex;min-height:0}
.sheet-prov{width:104px;flex:none;background:var(--bg);overflow-y:auto}
.sheet-prov div{padding: 12px 12px;font-size:13px;color:var(--ink-700);border-bottom:1px solid var(--line-soft)}
.sheet-prov div.on{background:var(--card);color:var(--brand);font-weight:700}
.sheet-city{flex:1;overflow-y:auto}
.sheet-city div{padding: 12px 16px;font-size:13px;color:var(--ink-700);border-bottom:1px solid var(--line-soft)}
.sheet-city div.on{color:var(--brand);font-weight:700}

/* ====== 第61批 · 企业域（找企业 / 企业详情 / 名企直聘）====== */
.co-list{margin: 8px var(--pad) 0;background:var(--card);border-radius:var(--r);box-shadow:var(--sh);overflow:hidden}
.co-card{display:flex;gap:12px;padding: 12px 16px;border-bottom:1px solid var(--line-soft);align-items:flex-start}
.co-card:last-child{border-bottom:0}
.co-logo{width:48px;height:48px;border-radius:var(--r-lg);background:var(--brand-50);color:var(--brand);font-size:20px;font-weight:800;display:flex;align-items:center;justify-content:center;overflow:hidden;flex:none}
.co-logo img{width:100%;height:100%;object-fit:cover;display:block}
.co-name{font-size:16px;font-weight:700;line-height:1.35}
.co-v{display:inline-flex;width:15px;height:15px;border-radius:50%;background:var(--brand);color:var(--card);font-size:12px;align-items:center;justify-content:center;font-weight:700;margin-left: 4px;vertical-align:1px}
.co-sub{font-size:12px;color:var(--ink-aa);margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.co-tags{margin-top: 8px;display:flex;gap: 8px;flex-wrap:wrap}
.co-tag{font-size:12px;color:var(--ink-500);background:var(--bg);border-radius:var(--r-xs);padding: 2px 8px}
.co-tag.b{color:var(--brand);background:var(--brand-50)}
.co-job{font-size:12px;color:var(--brand);margin-top: 8px}
/* 企业详情 */
.co-hero{display:flex;gap: 12px;padding:16px}
.co-hero .co-logo{width:60px;height:60px;font-size:22px}
.co-stat{display:flex;border-top:1px solid var(--line-soft)}
.co-stat div{flex:1;text-align:center;padding:12px 0}
.co-stat b{display:block;font-size:17px;font-family:var(--font-num);color:var(--brand)}
.co-stat span{font-size:12px;color:var(--ink-aa)}
.co-alb{display:flex;gap:8px;overflow-x:auto;padding:12px 16px;scrollbar-width:none}
.co-alb::-webkit-scrollbar{display:none}
.co-alb img{width:104px;height:78px;border-radius:var(--r-lg);object-fit:cover;flex:none;background:var(--bg)}
.co-intro{padding: 0 16px 12px;font-size:13px;color:var(--ink-500);line-height:1.75}
/* 名企说明条 */
.fm-note{margin:12px var(--pad) 0;padding: 8px 12px;background:var(--brand-50);border-radius:var(--r);font-size:12px;color:var(--ink-500);line-height:1.65}

/* ====== 第60-D批 · 人才域（找人才 / 人才详情 / 我的简历）====== */
/* 人才卡：沿用首页 .talent 卡片语言（双列网格），补充今日刷新角标与筛选态 */
.ta-flag{position:absolute;top:0;left:0;background:linear-gradient(135deg,var(--brand),var(--brand-dark));color:var(--card);font-size:12px;font-weight:700;padding:2px 8px;border-radius:var(--r) 0 var(--r) 0}
.talent .t-info{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ta-note{margin: 8px var(--pad) 0;font-size:12px;color:var(--ink-aa);line-height:1.6}
/* 更多筛选折叠区 */
.flt-more{display:none}
.flt-more.on{display:block}
.flt-toggle{cursor:pointer;user-select:none}
/* 人才详情底部弹层（res/masked/{id}，与 PC talent-modal 同接口同四态口径） */
.tm-mask{position:fixed;top:0;right:0;bottom:0;left:0;inset:0;background:var(--warm-a50);z-index:160;opacity:0;transition:opacity .24s}
.tm-mask.on{opacity:1}
.tm-sheet{position:fixed;left:0;right:0;bottom:0;top:10%;background:var(--card);border-radius:var(--r-lg) var(--r-lg) 0 0;z-index:161;transform:translateY(100%);transition:transform .26s;display:flex;flex-direction:column;max-height:90vh}
.tm-sheet.on{transform:translateY(0)}
.tm-hd{display:flex;gap:12px;align-items:center;padding:16px;border-bottom:1px solid var(--line-soft);flex:none}
.tm-av{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;flex:none}
.tm-hd-t{flex:1;min-width:0}
.tm-hd-n{font-size:17px;font-weight:800;line-height:1.3}
.tm-hd-s{font-size:12px;color:var(--ink-aa);margin-top:2px}
.tm-close{flex:none;width:30px;height:30px;border-radius:50%;background:var(--bg);color:var(--ink-500);display:flex;align-items:center;justify-content:center;font-size:17px;line-height:1}
.tm-bd{flex:1;overflow-y:auto;padding:4px 16px 24px;-webkit-overflow-scrolling:touch}
.tm-sec{margin-top:16px}
.tm-sec h4{font-size:14px;font-weight:700;padding-left:8px;border-left:3px solid var(--brand);margin:0 0 8px}
.tm-kv{display:grid;grid-template-columns:1fr 1fr;gap: 8px 16px;font-size:13px;color:var(--ink-700)}
.tm-kv b{font-weight:600}
.tm-item{padding:8px 0;border-bottom:1px dashed var(--line-soft);font-size:13px;line-height:1.6}
.tm-item:last-child{border-bottom:0}
.tm-item b{font-weight:600}
.tm-sub{font-size:12px;color:var(--ink-aa);margin-left:8px}
.tm-none{font-size:12px;color:var(--ink-aa);padding:2px 0}
.tm-intro{font-size:13px;color:var(--ink-700);line-height:1.75;white-space:pre-wrap}
.tm-btn{height:38px;padding: 0 16px;border-radius:var(--r-pill);background:linear-gradient(135deg,var(--brand),var(--brand-dark));color:var(--card);font-size:13px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.tm-btn[disabled]{opacity:.55}
.tm-msg{font-size:12px;margin-top:8px;min-height:16px}
.tm-msg.err{color:var(--red)}
.tm-msg.ok{color:var(--green)}
.tm-act{margin-top: 8px;display:flex;gap: 8px;align-items:center;flex-wrap:wrap}
/* 通用按钮（卡片内表单/弹层内使用；底部操作条内沿用 .act-bar 下的定义） */
.btn-main{height:44px;border-radius:var(--r-pill);background:linear-gradient(135deg,var(--brand),var(--brand-dark));color:var(--card);font-size:16px;font-weight:700;display:flex;align-items:center;justify-content:center}
.btn-sub{height:44px;border-radius:var(--r-pill);background:var(--bg);color:var(--ink-700);font-size:16px;font-weight:600;display:flex;align-items:center;justify-content:center;border:1px solid var(--line)}
/* 我的简历 */
.rs-top{margin:var(--gap) var(--pad) 0;background:var(--card);border-radius:var(--r);box-shadow:var(--sh);padding:16px}
.rs-top-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom: 8px}
.rs-pct{font-size:22px;font-weight:800;font-family:var(--font-num);color:var(--brand)}
.rs-bar{height:8px;border-radius:var(--r-pill);background:var(--bg);overflow:hidden}
.rs-bar i{display:block;height:100%;border-radius:var(--r-pill);background:linear-gradient(90deg,var(--brand),var(--brand-light));transition:width .3s}
.rs-tip{font-size:12px;color:var(--ink-aa);margin-top:8px;line-height:1.6}
.rs-item{padding:12px 16px;border-bottom:1px solid var(--line-soft);font-size:13px}
.rs-item:last-child{border-bottom:0}
.rs-item .rs-t{font-weight:700;font-size:13px}
.rs-item .rs-s{font-size:12px;color:var(--ink-aa);margin-top:3px;line-height:1.5}
.rs-switch{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line-soft);font-size:13px}
.rs-switch:last-child{border-bottom:0}
.sw{width:44px;height:24px;border-radius:var(--r-pill);background:var(--line);position:relative;transition:background .2s;flex:none}
.sw::after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:var(--card);transition:transform .2s;box-shadow:0 1px 3px var(--mask-20)}
.sw.on{background:var(--brand)}
.sw.on::after{transform:translateX(20px)}

/* ====== 第60-E批 · 内容域（资讯 / 文章详情 / HR工具箱 / 帮助中心）====== */
/* 栏目横滑 Tab（news / hrtool / help 共用） */
.col-tabs{display:flex;gap:8px;overflow-x:auto;padding:12px var(--pad) 2px;scrollbar-width:none}
.col-tabs::-webkit-scrollbar{display:none}
.col-tab{flex:none;padding: 8px 12px;border-radius:var(--r-pill);font-size:13px;background:var(--card);color:var(--ink-700);border:1px solid var(--line);box-shadow:var(--sh)}
.col-tab.on{background:linear-gradient(135deg,var(--brand),var(--brand-dark));color:var(--card);border-color:transparent;font-weight:700}
/* 资讯列表（单卡多行，分类角标 + 标题 + NEW + 日期 + 封面） */
.nw-card{margin: 8px var(--pad) 0;background:var(--card);border-radius:var(--r);box-shadow:var(--sh);overflow:hidden}
.nw-item{display:flex;gap:12px;padding: 12px 16px;border-bottom:1px solid var(--line-soft);align-items:flex-start}
.nw-item:last-child{border-bottom:0}
.nw-item:active{background:var(--brand-50)}
.nw-cov{width:86px;height:64px;border-radius:var(--r);background:var(--brand-50);display:flex;align-items:center;justify-content:center;font-size:22px;color:var(--brand-200);flex:none;overflow:hidden}
.nw-cov img{width:100%;height:100%;object-fit:cover;display:block}
.nw-body{flex:1;min-width:0}
.nw-h{display:flex;align-items:flex-start;gap: 8px}
.nw-h .nw-tt{-webkit-line-clamp:2}
.nw-mt{font-size:12px;color:var(--ink-aa);margin-top: 8px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
/* HR 工具箱：单卡片标题列表（PC 第59批同款） */
.ht{margin: 8px var(--pad) 0;background:var(--card);border-radius:var(--r);box-shadow:var(--sh);padding:4px 16px}
.ht-row{display:flex;align-items:center;gap: 8px;padding:12px 0;border-bottom:1px solid var(--line-soft)}
.ht-row:last-child{border-bottom:0}
.ht-cat{flex:none;font-size:12px;color:var(--ink-aa);max-width:68px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ht-tt{flex:1;min-width:0;font-size:13px;color:var(--ink-900);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
a.ht-tt:active{color:var(--brand)}
.ht-dt{flex:none;font-size:12px;color:var(--ink-aa)}
.ht-dl{flex:none;font-size:12px;font-weight:700;color:var(--brand);background:var(--brand-50);padding: 4px 12px;border-radius:var(--r-pill)}
.ht-none{flex:none;font-size:12px;color:var(--ink-aa)}
/* 帮助中心：问答折叠 */
.hq{margin: 8px var(--pad) 0;background:var(--card);border-radius:var(--r);box-shadow:var(--sh);padding:0 16px}
.hq-item{border-bottom:1px solid var(--line-soft)}
.hq-item:last-child{border-bottom:0}
.hq-q{display:flex;align-items:flex-start;gap:8px;padding: 12px 0;font-size:14px;font-weight:600;line-height:1.5}
.hq-q .qic{flex:none;color:var(--brand);font-weight:800}
.hq-q .arr{flex:none;margin-left:auto;color:var(--ink-300);transition:transform .2s;font-size:12px;margin-top:2px}
.hq-item.on .arr{transform:rotate(180deg)}
.hq-a{display:none;padding: 0 0 12px 24px;font-size:13px;color:var(--ink-500);line-height:1.8;white-space:pre-wrap}
.hq-item.on .hq-a{display:block}
.hq-col{font-size:12px;color:var(--ink-aa);padding:0 0 12px 24px}
/* 文章详情 */
.art{margin:var(--gap) var(--pad) 0;background:var(--card);border-radius:var(--r);box-shadow:var(--sh);padding: 16px 16px}
.art-h1{font-size:20px;font-weight:800;line-height:1.5}
.art-meta{display:flex;gap:12px;flex-wrap:wrap;color:var(--ink-aa);font-size:12px;margin-top: 8px;padding-bottom:12px;border-bottom:1px solid var(--line-soft)}
.art-body{font-size:14px;line-height:1.9;color:var(--ink-700);word-break:break-word;overflow-wrap:break-word;padding-top: 12px}
.art-body img{max-width:100%;height:auto;border-radius:var(--r-lg)}
.art-body p{margin: 0 0 12px}
.art-rel-t{margin:var(--gap) var(--pad) 0;font-size:16px;font-weight:700;padding-left:8px;border-left:3px solid var(--brand)}
.rel-card{margin: 8px var(--pad) 0;background:var(--card);border-radius:var(--r);box-shadow:var(--sh);padding:2px 16px}
.rel-row{display:flex;align-items:flex-start;gap:8px;padding: 12px 0;border-bottom:1px dashed var(--line-soft);font-size:13px;color:var(--ink-700);line-height:1.5}
.rel-row:last-child{border-bottom:0}
.rel-row .d{margin-left:auto;flex:none;font-size:12px;color:var(--ink-aa)}

/* ====== 第60-F批 · 账号与个人中心（mine / apply / favorite / message / interview）====== */
/* 用户卡 */
.mn-card{margin:var(--gap) var(--pad) 0;background:linear-gradient(135deg,var(--brand),var(--brand-dark));border-radius:var(--r);padding:16px;color:var(--card);box-shadow:var(--sh-lg)}
.mn-top{display:flex;align-items:center;gap:12px}
.mn-av{width:48px;height:48px;border-radius:50%;background:var(--wt-22);display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700;flex:none;overflow:hidden}
.mn-av img{width:100%;height:100%;object-fit:cover;display:block}
.mn-n{font-size:17px;font-weight:800;line-height:1.3}
.mn-sub{font-size:12px;opacity:.9;margin-top:3px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.mn-badge{font-size:12px;background:var(--wt-22);border-radius:var(--r-pill);padding: 2px 8px;font-weight:600}
.mn-bar{margin-top: 12px;background:var(--wt-20);border-radius:var(--r-pill);height:6px;overflow:hidden}
.mn-bar i{display:block;height:100%;background:var(--card);border-radius:var(--r-pill)}
.mn-bar-t{font-size:12px;opacity:.95;margin-top: 8px;display:flex;justify-content:space-between}
/* 四宫格入口 */
.mn-grid{margin:var(--gap) var(--pad) 0;background:var(--card);border-radius:var(--r);box-shadow:var(--sh);display:grid;grid-template-columns:repeat(4,1fr);padding: 12px 0}
.mn-g{text-align:center;padding:2px 0;position:relative}
.mn-g:active{opacity:.6}
.mn-g-ic{font-size:22px;line-height:1}
.mn-g-t{font-size:12px;color:var(--ink-700);margin-top: 8px}
.mn-dot{position:absolute;top:-2px;right:22%;min-width:16px;height:16px;border-radius:var(--r-pill);background:var(--red);color:var(--card);font-size:12px;line-height:16px;font-weight:700;padding:0 4px;box-shadow:0 0 0 2px var(--card)}
/* 列表入口 */
.mn-list{margin:var(--gap) var(--pad) 0;background:var(--card);border-radius:var(--r);box-shadow:var(--sh);padding:0 16px}
.mn-li{display:flex;align-items:center;gap: 8px;padding: 12px 0;border-bottom:1px solid var(--line-soft);font-size:14px}
.mn-li:last-child{border-bottom:0}
.mn-li:active{opacity:.6}
.mn-li-ic{flex:none;width:20px;text-align:center;font-size:16px}
.mn-li-t{flex:1;min-width:0}
.mn-li-x{flex:none;font-size:12px;color:var(--ink-aa)}
.mn-li-arr{flex:none;color:var(--ink-300);font-size:12px}
.mn-out{margin:var(--gap) var(--pad) 0;background:var(--card);border-radius:var(--r);box-shadow:var(--sh);padding: 12px 0;text-align:center;font-size:14px;color:var(--red);font-weight:600}
.mn-out:active{background:var(--brand-50)}
/* 交易记录通用列表卡（投递/收藏/消息/面试共用） */
.rec{margin: 8px var(--pad) 0;background:var(--card);border-radius:var(--r);box-shadow:var(--sh);padding:0 16px}
.rec-item{padding: 12px 0;border-bottom:1px solid var(--line-soft)}
.rec-item:last-child{border-bottom:0}
.rec-h{display:flex;align-items:flex-start;gap:8px}
.rec-t{flex:1;min-width:0;font-size:14px;font-weight:600;line-height:1.45;word-break:break-word}
.rec-t a{color:inherit}
.rec-s{flex:none;font-size:12px;font-weight:700;color:var(--brand)}
.rec-m{font-size:12px;color:var(--ink-500);margin-top: 4px;line-height:1.6;word-break:break-word}
.rec-f{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap}
.rec-d{flex:1;font-size:12px;color:var(--ink-aa)}
.st{font-size:12px;font-weight:700;border-radius:var(--r-xs);padding: 2px 8px;flex:none}
.st-0{color:var(--brand);background:var(--brand-50)}
.st-1{color:var(--blue);background:var(--blue-50)}
.st-2{color:var(--ink-aa);background:var(--line-soft)}
.st-3{color:var(--gold);background:var(--gold-50)}
.st-4{color:var(--green);background:var(--teal-50)}
.st-done{color:var(--ink-aa);background:var(--line-soft)}
.st-warn{color:var(--red);background:var(--red-soft)}
.btn-mini{font-size:12px;padding:4px 12px;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--card);color:var(--ink-700);font-weight:600}
.btn-mini.pri{border-color:transparent;background:linear-gradient(135deg,var(--brand),var(--brand-dark));color:var(--card)}
.btn-mini:active{opacity:.6}
/* 消息未读点 */
.rec-udot{width:7px;height:7px;border-radius:50%;background:var(--red);flex:none;margin-top: 8px}
/* 职聊（会话列表 + 聊天浮层） */
.im-item{display:flex;align-items:center;gap: 8px;padding:12px 0;border-bottom:1px solid var(--line-soft)}
.im-item:last-child{border-bottom:0}
.im-item:active{background:var(--brand-50)}
.im-ava{width:44px;height:44px;border-radius:50%;background:var(--brand-50);color:var(--brand);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;flex:none}
.im-t{flex:1;min-width:0}
.im-t b{font-size:14px;font-weight:600;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.im-t span{font-size:12px;color:var(--ink-aa);display:block;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.im-badge{flex:none;min-width:18px;height:18px;border-radius:var(--r-pill);background:var(--red);color:var(--card);font-size:12px;line-height:18px;text-align:center;font-weight:700;padding: 0 4px}
.im-sheet{position:fixed;left:0;right:0;bottom:0;z-index:90;background:var(--card);border-radius:var(--r-lg) var(--r-lg) 0 0;display:flex;flex-direction:column;height:76vh;transform:translateY(100%);transition:transform .24s ease}
.im-sheet.on{transform:translateY(0)}
.im-sh{display:flex;align-items:center;gap:8px;padding: 12px 16px;border-bottom:1px solid var(--line);font-size:14px;font-weight:700;flex:none}
.im-sh .im-x{margin-left:auto;font-size:22px;color:var(--ink-aa);line-height:1;padding:0 4px}
.im-msgs{flex:1;overflow-y:auto;padding: 12px 16px;background:var(--bg);-webkit-overflow-scrolling:touch}
.im-msg{display:flex;margin-bottom:12px}
.im-msg.me{justify-content:flex-end}
.im-msg .bub{max-width:76%;background:var(--card);border-radius:var(--r-lg);padding:8px 12px;font-size:14px;line-height:1.6;box-shadow:var(--sh);word-break:break-word}
.im-msg.me .bub{background:linear-gradient(135deg,var(--brand),var(--brand-dark));color:var(--card)}
.im-msg .who{font-size:12px;color:var(--ink-aa);margin-bottom:3px}
.im-msg.me .who{color:var(--wt-80)}
.im-in{display:flex;gap:8px;padding: 8px 16px calc(8px + var(--sb));border-top:1px solid var(--line);flex:none;background:var(--card)}
.im-in input{flex:1;height:40px;border:1px solid var(--line);border-radius:var(--r-pill);padding: 0 12px;font-size:14px;background:var(--bg);outline:none}
.im-in button{flex:none;border:0;border-radius:var(--r-pill);padding: 0 16px;background:linear-gradient(135deg,var(--brand),var(--brand-dark));color:var(--card);font-weight:700;font-size:14px}

/* ====== 第五十九批 E 组（H5 PRD 对齐）新增样式 ====== */
/* T6：五宫格（我的足迹加入后由 4 列改 5 列，图标/文字各缩 1px，320px 宽下不折行） */
.mn-grid.g5{grid-template-columns:repeat(5,1fr)}
.mn-grid.g5 .mn-g-ic{font-size:20px}
.mn-grid.g5 .mn-g-t{font-size:12px}
/* T10：页脚备案行（h5.js mountFooter 注入；文案全部来自 site-config，未配置则不渲染） */
.ft-slim{font-size:12px;color:var(--ink-aa);line-height:1.7;text-align:center}
.ft-slim a{color:var(--ink-500)}
/* T1：举报浮层内已选类型 */
#rpTypes .tag.on,#rpTypes .tag.hot{background:var(--brand-50,var(--brand-50));color:var(--brand);border-color:var(--brand);font-weight:700}
/* T9：数据条 5 格（新增在线人数） */
.stats-card.g5{grid-template-columns:repeat(5,1fr)}
.stats-card.g5 .st-n{font-size:17px}
.stats-card.g5 .st-l{font-size:12px}
/* T9：简历登记引导条（首屏数据条下方，全站只有一个入口） */
.reg-cta{display:flex;align-items:center;gap: 8px;margin: 8px var(--pad) 0;padding: 12px 12px;border-radius:var(--r);
  background:linear-gradient(135deg,var(--brand-50),var(--brand-100));border:1px solid var(--brand-200);color:var(--ink-900)}
.reg-cta:active{opacity:.85}
.rc-ic{font-size:20px;flex:none}
.rc-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.rc-t b{font-size:14px;font-weight:800}
.rc-t i{font-style:normal;font-size:12px;color:var(--ink-500);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rc-go{flex:none;font-size:12px;font-weight:700;color:var(--brand)}
/* T9：明星雇主横滑卡 */
.famous-scroll{display:flex;gap:12px;overflow-x:auto;padding:0 var(--pad) 4px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.famous-scroll::-webkit-scrollbar{display:none}
.famous-card{flex:none;width:118px;background:var(--card);border-radius:var(--r);box-shadow:var(--sh);padding: 12px 8px;text-align:center}
.famous-card:active{opacity:.75}
.fc-logo{width:48px;height:48px;margin:0 auto 8px;border-radius:var(--r-lg);background:var(--bg);display:flex;align-items:center;justify-content:center;
  font-size:17px;font-weight:800;color:var(--brand);overflow:hidden}
.fc-logo img{width:100%;height:100%;object-fit:cover}
.fc-name{font-size:13px;font-weight:700;color:var(--ink-900);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fc-sub{font-size:12px;color:var(--ink-aa);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ====== 第60-G批收官 · 手机版 → 电脑版 出口 ======
   redirect.js 会把 PC 浏览器自动跳到手机版，但手机版原本没有返回 PC 的入口。
   每页页脚统一补一行，优先落当前页的 PC 对应页。 */
.pc-entry{margin: 12px var(--pad) 0;padding:12px 0;text-align:center;font-size:12px;color:var(--ink-aa)}
.pc-entry a{color:var(--ink-500);font-weight:600}
.pc-entry a:active{color:var(--brand)}

/* ====== T27-B · 点击热区 ≥44×44（派单 §2.2 第 8 项）======
   问题：一批胶囊/文字控件的盒子只有 26~37 高，getBoundingClientRect 量到 <44，
   手指点不中。要求「扩热区但不改视觉尺寸」，因此分两类手法：

   手法 A（胶囊类：热词/福利/页签/搜索/下载）——
     盒子本身撑到 44（= 真实命中区域），视觉胶囊/描边改由 ::before 画：
       .控件{position:relative;z-index:0} 让控件自建层叠上下文；
       .控件::before{position:absolute;z-index:-1} 于是伪元素落在
       「自身透明背景之上、正文文字之下」（CSS2.1 附录 E 第 2 层 vs 第 5 层），
       文字照样看得见，胶囊的尺寸/圆角/描边/阴影全部沿用改造前实值。

   手法 B（图标/文字类：返回、右侧位、更多、切换城市）——
     盒子同样撑到 44，再用「负 margin 抵扣」把它在布局里的占地压回原值，
     相邻元素不会被挤动；负值只进不出（不产生滚动条，容器均无 overflow）。

   两类都不新增 hex/rgba、不新增字号、不新增圆角档位，静态口径四项仍为 0。 */

/* — 手法 B：头部三个文字/图标控件 — */
/* 1 返回键 32×32 → 44×44；图标视觉位置不变（-14 = 原 -8 再补 6 的居中差） */
.pg-back{width:44px;height:44px;margin:-6px -6px -6px -14px;border-radius:var(--r)}
.pg-back:active{background:var(--bg)}
/* 2 头部右侧位 32×20 → 44×44（占地仍是 32 宽） */
.pg-right{width:44px;height:44px;margin:-12px -6px;border-radius:var(--r)}
.pg-right:active{color:var(--brand)}
/* 3 板块「全部 / 更多」32×24 → 44×48（padding 12 撑开、margin -12 抵回，占地仍是 24 高） */
.sec-more{min-width:44px;min-height:48px;padding:12px 0;margin:-12px -12px -12px 0}
.sec-more:active{color:var(--brand)}
/* 4 首页城市切换 66×37 → 66×44（占地仍是 36，头部不被顶高） */
.city-pick{min-height:44px;margin:-4px 0 -3px}
.city-pick:active{opacity:.7}

/* — 手法 A：胶囊类（视觉由 ::before 承载） — */
/* 5 搜索按钮：盒子 44（正好等于 .search 的内高），黑胶囊仍是 34 高 */
.search-btn{position:relative;z-index:0;height:44px;min-height:44px;padding:0 20px;background:none;display:inline-flex;align-items:center;justify-content:center}
.search-btn::before{content:"";position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);height:36px;border-radius:var(--r-pill);background:var(--ink-900);z-index:-1}
.search-btn:active::before{background:var(--ink-700)}
.pg-search .search-btn{margin:-4px 0}   /* jobs 页 sbox 仅 36 高，撑到 44 会顶高吸顶条 8px */
/* 6 热词标签 36 → 44（margin -4 把占地压回 36，行距不变） */
.tag{position:relative;z-index:0;display:inline-flex;align-items:center;justify-content:center;height:44px;min-width:44px;padding:0 12px;margin:-4px 0;background:none;border:1px solid transparent;box-shadow:none}
.tag::before{content:"";position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);height:36px;border-radius:var(--r-pill);background:var(--bg);border:1px solid var(--line);z-index:-1}
.tag.hot,.tag.warm{background:none;border-color:transparent;box-shadow:none}
.tag.hot::before{background:linear-gradient(135deg,var(--brand),var(--brand-dark));border-color:transparent;box-shadow:0 2px 8px var(--brand-a25)}
.tag.warm::before{background:var(--brand-50);border-color:var(--brand-100)}
.tag:active{background:none}
.tag:active::before{background:var(--brand-50);border-color:var(--brand-100)}
/* 举报浮层里 .tag 的选中态（第59批 .tag.on）同样把底色挪到伪元素 */
#rpTypes .tag.on{background:none}
#rpTypes .tag.on::before{background:var(--brand-50);border-color:var(--brand);box-shadow:none}
/* 7 福利标签 28 → 44（margin -8 压回 28，行距不变） */
.wf-tag{position:relative;z-index:0;display:inline-flex;align-items:center;justify-content:center;height:44px;min-width:44px;padding:0 8px;margin:-8px 0;background:none;border:1px solid transparent}
.wf-tag::before{content:"";position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);height:28px;border-radius:var(--r-pill);background:var(--bg);border:1px solid var(--line);z-index:-1}
.wf-tag:active::before{background:var(--brand-50);border-color:var(--brand-100)}
/* 8 分类页签 35 → 44；容器上下 padding 12/2 改 8/0，再用 margin-bottom:-3px 把条带占地压回 49，页签本体与下方内容都不动 */
.col-tabs{padding:8px var(--pad) 0;margin-bottom:-3px}
.col-tab{position:relative;z-index:0;display:inline-flex;align-items:center;justify-content:center;height:44px;min-width:44px;padding:0 12px;background:none;border:1px solid transparent;box-shadow:none}
.col-tab::before{content:"";position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);height:35px;border-radius:var(--r-pill);background:var(--card);border:1px solid var(--line);box-shadow:var(--sh);z-index:-1}
.col-tab.on{background:none}
.col-tab.on::before{background:linear-gradient(135deg,var(--brand),var(--brand-dark));border-color:transparent}
.col-tab:active::before{border-color:var(--brand-200)}
/* 9 HR 工具箱列表：行高 42 → 44，标题链与「下载」按钮各自 ≥44（988 行，本批最大头） */
.ht-row{padding:0;min-height:51px}
.ht-tt{min-height:44px;line-height:44px}
.ht-dl{position:relative;z-index:0;display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 12px;background:none}
.ht-dl::before{content:"";position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);height:26px;border-radius:var(--r-pill);background:var(--brand-50);z-index:-1}
.ht-dl:active::before{background:var(--brand-100)}
/* 10 首页 CTA 实测 43.5（四舍五入显示 44，判定仍 <44）——补 0.5px 下限 */
.cta-btn{min-height:44px}

/* ====== T27-B · 三态 / 防重复提交 / 表单就地校验（第 9~12 项）====== */
/* 11 失败态「重试」按钮（第 11 项）：改造前只有一句静态文案，用户只能整页刷新 */
.retry-btn{display:inline-flex;align-items:center;justify-content:center;min-width:88px;min-height:44px;margin-top:12px;padding:0 20px;
  border:1px solid var(--brand);border-radius:var(--r-pill);background:var(--card);color:var(--brand);font-size:13px;font-weight:700}
.retry-btn:active{background:var(--brand-50)}
.retry-btn:disabled{color:var(--ink-400);border-color:var(--line)}
/* 12 写操作冷却期视觉（第 10 项）：H5.lock 期间统一压暗并禁点，避免二次提交 */
.is-loading[aria-disabled="true"]{opacity:.6;pointer-events:none}
/* 14 触点反馈兜底（第 9 项）：改造前只有 21 条 :active 规则，105 个可点控件里 61 个按下去毫无变化。
   这里给所有可点元素兜一层透明度反馈；已有专门反馈（胶囊变色、按钮缩放、返回键底色）的元素叠加后
   表现为「缩放 + 微暗」，按压感更明显，静态视觉零影响。 */
button:active:not(:disabled),a[class]:active,[onclick]:active{opacity:.72}

/* 13 表单校验就地化（第 12 项）：错误挂到出错字段正下方、字段描红，不再是底部单块 */
.lg-field.err{border-bottom-color:var(--red)}
.lg-field.err input{color:var(--red)}
.lg-tip{color:var(--red);font-size:12px;padding:4px 2px 0;line-height:1.5}

/* ====== T27-C · 14/15 图片兜底与长文本折叠 ====== */
/* 14 图片：加载中先给底色（不闪白/不塌陷），失败后摘掉 src 走骨架底纹，不出现破图图标 */
img{background:var(--bg)}
img.img-fail{background:var(--grad-skeleton);background-size:400% 100%;animation:ph 1.2s ease infinite}
/* 15 长文本统一 6 行 + 展开/收起（按钮文案全站一致：「展开」↔「收起」） */
.fold6{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:6;overflow:hidden}
.fold6.fold6-on{display:block;-webkit-line-clamp:unset;overflow:visible}
.fold-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 12px;border:0;background:none;font-size:13px;font-weight:700;color:var(--brand)}
.fold-btn:active{opacity:.72}

/* ====== T27-C · 补 T27-B 热区漏网（登录态专属的两个控件）======
   背景：T27-B 验收时探针拿不到令牌（见报告 §10），apply/footprint/favorite/interview 4 页
   一律被 H5.needLogin() 跳到 login.html，页面里的 .rec-t / .btn-mini 从未被渲染过，
   于是「热区残留 0」在真登录态下复测变成 36 处（266x20 的职位标题链接、74x26 的小按钮）。
   手法：撑高 + 负 margin 抵消布局占用。实测三种写法后选 flex 居中那版 —— 只加 min-height
   会让文字顶到盒子上沿（实测上移 12px），flex 居中后文字 top 114.8 vs 原 115（偏 0.2px 亚像素），
   卡片总高 104.2 与 .rec-h 22 均零变化。伪元素扩区虽不位移，但 getBoundingClientRect 量不到，
   与实际「指尖能否点到 44」的验收口径对不上，故不采用。
   ⚠ 已知限制：标题长到换行（266px 宽约 19 个 14px 汉字以上）时，负 margin 会压缩 24px 行距，
   文字有溢出/重叠风险。当前真实数据标题均为短名（如「美容师」），未触发；如需支持超长职位名，
   应改为「整行 .rec-h 变可点容器」而非在本链接上撑高。 */
.rec-t{display:flex;align-items:center;min-height:44px;margin:-12px 0}
.btn-mini{display:inline-flex;align-items:center;min-height:44px;margin:-9px 0}
/* T27-C 补热区（续）：简历页 7 个 17px 高的迷你按钮 + 首页 32px 的消息图标。
   它们的共同点是「宽度也 <44」，所以要 min-width 与 min-height 一起给。
   17 → 44 差 27，上下各 -13.5 把布局占地压回 17；.h-ic 32 → 44 差 12，各 -6。
   用 id 限定而不是类名：这些按钮在 resume.html 里由两处不同来源生成（页面自身 4 个 + PC 共用件
   resume-assets.js 3 个），类名不统一（.btn.btn-primary / 裸 button），只有 id 能一次选全。
   ⚠ .h-ic 是 32px 圆形图标按钮，撑到 44 后 :active 的圆形底色直径也从 32 变 44（仅按压瞬间可见）。 */
#eBtn,#sBtn,#wAdd,#edAdd,#raCertAdd,#raPhotoAdd,#raFileAdd{
  min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;margin:-13.5px 0}
a.h-ic{width:44px;height:44px;margin:-6px}
/* 上面这 7 个按钮实测全是「透明底 + 0 边框 + 0 圆角」，盒子变宽不会多出一圈可见轮廓，
   但文字会被 re-center：#eBtn/#sBtn 原 26px 宽，撑到 44 后文字左移 9px（几何探针实测 cx 329→320）。
   它们在卡片头部是右对齐的（右缘 342 两版一致），故改 flex-end 让文字贴右，文字位置即回原处。 */
#eBtn,#sBtn,#wAdd,#edAdd{justify-content:flex-end}

/* ====== T29：首页三个广告位（home_hero / home_quick / home_floor）======
   派单 §2.3 三条硬约束，逐条对应下面写法：
     ①「无配置项/全过期 → 该位整体消失（不留空框、不占位）」→ 容器由 h5.js 的 ads() 在拿到非空数组时
       才 createElement，本段**故意不写任何「空态」样式**（写了反而等于承认可以有空框）。
     ②「样式必须走 T27 已收口的 token（不新增硬编码色值）」→ 本节零 hex、零 rgba 字面量，全走 var()。
     ③「图 404 走兜底」→ 复用 T27-C 的 .img-fail（h5.js hardenImgs 由 MutationObserver 覆盖动态插入的图）。
   iOS 14 基线（_chk107）两条红线，本节刻意规避：
     · 不用 aspect-ratio（iOS 15+）→ 横幅比例用 padding-top:43.75% 撑（16:7）；
     · 不用四边简写（14.0 不支持）→ 四边显式写 top/left/width/height；
   ⚠ 本节注释里刻意不写出「四边简写属性名 + 冒号 + 0」的字样：_chk107 的 3.1 是纯正则扫 CSS 文本，
     会把「说明」当「声明」，误判成「用了简写却没四边兜底」。第一版就踩了这个坑，改措辞后转绿。
     · 不用 gap（会推高 _chk107 的 gap 计数，虽仅 WARN）→ 间距一律 margin + calc。
   落点说明：横幅插在 #stats **之后**而不是之前 —— .stats-card 有 margin-top:-24px 的叠层设计
   （压在 header 下沿），插在前面会被这 -24px 啃掉 24px 图。 */
.ad-hero{position:relative;margin:var(--gap) var(--pad) 0;border-radius:var(--r-lg);overflow:hidden;background:var(--card);box-shadow:var(--sh)}
.ad-h-f{position:relative}
.ad-h-l{display:block;position:relative;padding-top:43.75%;color:var(--card);text-decoration:none}
.ad-h-l img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;background:var(--bg)}
.ad-h-tx{position:absolute;left:0;right:0;bottom:0;padding:26px var(--pad) 10px;background:linear-gradient(180deg,transparent,var(--ovl-88))}
.ad-h-tx b{display:block;font-size:16px;font-weight:700;line-height:1.3;color:var(--card)}
.ad-h-tx span{display:block;margin-top:2px;font-size:12px;line-height:1.4;color:var(--wt-85)}
.ad-h-dt{position:absolute;right:var(--pad);bottom:8px;display:flex}
.ad-h-dt i{width:5px;height:5px;border-radius:var(--r-pill);background:var(--wt-30)}
.ad-h-dt i + i{margin-left:4px}
.ad-h-dt i.on{width:12px;background:var(--card)}

.ad-quick{display:flex;flex-wrap:wrap;margin:var(--gap) var(--pad) 0}
.ad-q{position:relative;display:flex;align-items:center;width:calc(50% - var(--gap)/2);min-height:56px;margin-bottom:var(--gap);padding:10px;border-radius:var(--r-lg);background:var(--card);box-shadow:var(--sh);color:var(--ink-900);text-decoration:none}
/* 高度取「图标 36 + 上下 padding 10×2 = 56」而不是 44：素材不保证每条都带图，
   只给 44 时「有图 56 / 无图 44」同一行两张卡会不齐（首版截图实测 [56,56,44,44]）。
   楼层同理：图 56 + padding 20 = 76（首版 [76,57]）。 */
.ad-q:nth-child(even){margin-left:var(--gap)}
.ad-q img{flex:0 0 auto;width:36px;height:36px;margin-right:8px;border-radius:var(--r);object-fit:cover;background:var(--bg)}
.ad-q-c{min-width:0}
.ad-q-c b{display:block;font-size:14px;font-weight:700;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ad-q-c span{display:block;margin-top:2px;font-size:12px;line-height:1.3;color:var(--ink-aa);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.ad-floor{margin:0 var(--pad) var(--gap)}
.ad-f{position:relative;display:flex;align-items:center;min-height:76px;padding:10px;border-radius:var(--r-lg);background:var(--card);box-shadow:var(--sh);color:var(--ink-900);text-decoration:none}
.ad-f + .ad-f{margin-top:var(--gap)}
.ad-f img{flex:0 0 auto;width:88px;height:56px;margin-right:10px;border-radius:var(--r);object-fit:cover;background:var(--bg)}
.ad-f b{display:block;font-size:14px;font-weight:700;line-height:1.35}
.ad-f span{display:block;margin-top:2px;font-size:12px;line-height:1.35;color:var(--ink-aa)}
/* ====== T29 D16cB：广告角标（《广告法》第 14 条「广告应当具有可识别性」—— 显著标明「广告」）======
   文案由 h5.js 写死，不读后台字段：后台可改的角标等于「可以不标」，不成其为标识。
   全走既有 token（底 --ink-900 / 字 --card），本节零裸色值 —— 派单 §2.5「角标样式走既有 token」。
   字号取 12px 而不是 10px：本文件字号阶梯只有 12/13/14/16/17/20/22/34 八档，
   10px 属新增档位，撞派单 §2.5 硬指标「字号档位不增」。PC 端同步取 12px，两端同口径。
   选择器带父级是为压过下面的 .ad-f span（权重 0-1-1 高于单类选择器）：
   那条会把角标字染成 --ink-aa 并给它加一条上外边距，不改就白改。
   另注意：外边距用 margin-top 单写而非四边简写 —— _chk107 的 3.1 是纯正则扫 CSS 文本，
   简写后跟 0 会被误判成「用了简写却没四边兜底」（本节开头注释已记过这个坑）。 */
.ad-hero .ad-tag,.ad-quick .ad-tag,.ad-floor .ad-tag{position:absolute;top:6px;right:6px;z-index:2;margin-top:0;padding:1px 5px;border-radius:var(--r-xs);background:var(--ink-900);color:var(--card);font-size:12px;line-height:1.5;font-weight:400;pointer-events:none}
/* 角标是绝对定位、不占流，标题（.ad-q-c b，nowrap + 省略号）会一路顶到卡片右边被角标压住 ——
   首版截图实测「名企直招」「连锁门店急招」的尾部已经贴上角标，6 字以上标题必然重叠。
   这里给文本容器留出右侧避让带（角标宽约 32 + 右边距 6 ≈ 38，取 40 留 2px 余量），
   让标题在角标左侧就省略，而不是被盖掉 —— 可见性是确定的，比「看起来没省略」重要。
   只作用于四宫格/楼层：横幅位的主副标在底部浮层里，与右上角标不同区，不需要避让。 */
.ad-quick .ad-q-c,.ad-floor .ad-q-c{padding-right:40px}

/* ====== T97：职位详情页去 tabbar 后，底部操作条独占底部（追加段，不改 .act-bar 原定义） ======
   .act-bar 原本 bottom:calc(56px + var(--sb)) 是为 tabbar 让位；本页没有 tabbar 就要贴到 0。
   company.html / resume.html 保留 tabbar → 不受影响（它们仍走原 56px 让位 + 124px 内边距）。 */
body[data-no-tabbar]{padding-bottom:calc(72px + var(--sb))}
body[data-no-tabbar] .act-bar{bottom:0}
body[data-no-tabbar] .ft{padding-bottom:calc(20px + var(--sb))}

/* ====== T97：职场资讯卡片流（首条大图卡 + 其余独立小卡）======
   命名隔离：新类一律 nwc-*，旧 .nw-* 定义原样保留不动（零回归）。 */
.nwc-list{padding:0 0 8px}
/* 首条大图卡 */
.nwc-hero{display:block;margin:12px var(--pad) 0;background:var(--card);border-radius:var(--r);box-shadow:var(--sh);overflow:hidden}
.nwc-hero:active{transform:scale(.995)}
.nwc-hero-cov{position:relative;width:100%;aspect-ratio:16/9;background:linear-gradient(135deg,var(--brand-50),var(--brand-100));display:flex;align-items:center;justify-content:center;font-size:40px;color:var(--brand-200);overflow:hidden}
.nwc-hero-cov img{width:100%;height:100%;object-fit:cover;display:block}
.nwc-hero-tag{position:absolute;left:10px;top:10px;padding:4px 9px;border-radius:var(--r-xs);font-size:11px;font-weight:700;background:var(--brand);color:var(--card);letter-spacing:.3px}
.nwc-hero-body{padding:12px 14px 14px}
.nwc-hero-tt{font-size:15px;font-weight:700;color:var(--ink-900);line-height:1.45;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.nwc-hero-sm{font-size:12px;color:var(--ink-500);line-height:1.55;margin-top:6px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.nwc-hero-mt{display:flex;gap:10px;align-items:center;font-size:12px;color:var(--ink-aa);margin-top:8px}
/* 其余小卡：各自独立 */
.nwc-item{display:flex;gap:12px;align-items:flex-start;margin:12px var(--pad) 0;padding:12px 14px;background:var(--card);border-radius:var(--r);box-shadow:var(--sh)}
.nwc-item:active{background:var(--brand-50)}
.nwc-item .nwc-body{flex:1;min-width:0}
.nwc-item-tt{font-size:14px;font-weight:700;color:var(--ink-900);line-height:1.45;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.nwc-item-mt{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--ink-aa);margin-top:8px;flex-wrap:wrap}
.nwc-cov{width:100px;height:76px;border-radius:var(--r);background:var(--brand-50);display:flex;align-items:center;justify-content:center;font-size:22px;color:var(--brand-200);flex:none;overflow:hidden}
.nwc-cov img{width:100%;height:100%;object-fit:cover;display:block}
.nwc-item .nw-tg{flex:none}
