/* ============================================================
   一举网 · 多巴胺新粗野主义风格
   ============================================================ */
:root{
  --ink:#1B1A22;
  --paper:#FFF6E9;
  --card:#FFFFFF;
  --purple:#7C5CFF;
  --purple-l:#EDE7FF;
  --pink:#FF5D8F;
  --pink-l:#FFE3EC;
  --yellow:#FFC93C;
  --yellow-l:#FFF3CF;
  --teal:#12B5A5;
  --teal-l:#DCF6F2;
  --red:#FF4D4D;
  --blue:#3D9BFF;
  --blue-l:#E3F1FF;
  --radius:18px;
  --shadow:4px 4px 0 var(--ink);
  --shadow-lg:7px 7px 0 var(--ink);
  --font:-apple-system,BlinkMacSystemFont,'PingFang SC','HarmonyOS Sans SC','MiSans','Microsoft YaHei',sans-serif;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html{scroll-behavior:smooth;overflow-x:clip;}
body{
  margin:0;
  font-family:var(--font);
  color:var(--ink);
  background-color:var(--paper);
  background-image:radial-gradient(rgba(27,26,34,.08) 1.5px, transparent 1.5px);
  background-size:26px 26px;
  min-height:100vh;
  min-height:100dvh;
  overflow-x:clip;
}
button{font-family:var(--font);}
input,textarea,select{font-family:var(--font);}
a{color:var(--purple);}
::selection{background:var(--yellow);}

/* ---------- 顶栏 ---------- */
#topbar{
  position:sticky;top:0;z-index:50;
  background:rgba(255,246,233,.92);
  backdrop-filter:blur(8px);
  border-bottom:2.5px solid var(--ink);
}
.topbar-inner{
  max-width:1080px;margin:0 auto;
  display:flex;align-items:center;gap:12px;
  padding:12px 16px;flex-wrap:wrap;
}
.logo{
  font-weight:900;font-size:22px;letter-spacing:1px;cursor:pointer;
  background:linear-gradient(120deg,var(--purple),var(--pink));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  user-select:none;white-space:nowrap;
}
.logo .bolt{display:inline-block;animation:wobble 2.4s ease-in-out infinite;}
@keyframes wobble{0%,100%{transform:rotate(-8deg)}50%{transform:rotate(14deg) scale(1.15)}}
.topbar-search{
  flex:1;min-width:140px;max-width:340px;
  display:flex;align-items:center;gap:8px;
  background:#fff;border:2.5px solid var(--ink);border-radius:999px;
  padding:7px 14px;box-shadow:3px 3px 0 var(--ink);
}
.topbar-search input{border:none;outline:none;flex:1;font-size:14px;background:transparent;}
.topbar-right{display:flex;align-items:center;gap:10px;margin-left:auto;}
.chip-points{
  display:inline-flex;align-items:center;gap:6px;cursor:pointer;
  background:var(--yellow);border:2.5px solid var(--ink);border-radius:999px;
  padding:5px 12px;font-weight:800;font-size:13px;box-shadow:3px 3px 0 var(--ink);
  transition:transform .12s;
}
.chip-points:hover{transform:translate(-1px,-1px);}
.avatar-sm{
  width:36px;height:36px;border-radius:50%;
  background:var(--purple-l);border:2.5px solid var(--ink);
  display:flex;align-items:center;justify-content:center;font-size:20px;cursor:pointer;
  box-shadow:2px 2px 0 var(--ink);
}

/* ---------- 视图容器 ---------- */
#view{max-width:1080px;margin:0 auto;padding:20px 16px 96px;}
@media(min-width:768px){#view{padding-bottom:48px;}}

/* ---------- 底部导航 ---------- */
#tabbar{
  position:fixed;left:0;right:0;bottom:0;z-index:60;
  display:flex;background:#fff;border-top:2.5px solid var(--ink);
  padding-bottom:env(safe-area-inset-bottom);
}
@media(min-width:768px){#tabbar{display:none;}}
.tab{
  flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;
  padding:8px 0 6px;cursor:pointer;font-size:11px;font-weight:700;color:#8a8598;
  text-decoration:none;position:relative;
}
.tab .tab-icon{font-size:22px;line-height:1;transition:transform .15s;}
.tab.active{color:var(--ink);}
.tab.active .tab-icon{transform:scale(1.25) rotate(-8deg);}
.tab .tab-badge{
  position:absolute;top:2px;right:calc(50% - 22px);
  background:var(--red);color:#fff;border:2px solid var(--ink);
  min-width:18px;height:18px;border-radius:9px;
  display:flex;align-items:center;justify-content:center;
  font-size:10px;font-weight:900;padding:0 4px;
}

/* ---------- 通用卡片 ---------- */
.card{
  background:var(--card);border:2.5px solid var(--ink);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:18px;margin-bottom:18px;
}
.card.clickable{cursor:pointer;transition:transform .12s, box-shadow .12s;}
.card.clickable:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--ink);}
.section-title{
  display:flex;align-items:center;gap:10px;
  font-size:19px;font-weight:900;margin:26px 0 14px;letter-spacing:.5px;
}
.section-title .sticker{
  font-size:12px;font-weight:800;color:#fff;background:var(--pink);
  border:2px solid var(--ink);border-radius:8px;padding:2px 8px;
  transform:rotate(-3deg);box-shadow:2px 2px 0 var(--ink);
}
.section-more{margin-left:auto;font-size:13px;color:#8a8598;cursor:pointer;font-weight:700;}
.section-more:hover{color:var(--purple);}

/* ---------- 按钮 ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  border:2.5px solid var(--ink);border-radius:14px;
  padding:10px 20px;font-size:15px;font-weight:800;cursor:pointer;
  box-shadow:var(--shadow);transition:transform .1s, box-shadow .1s;
  background:#fff;color:var(--ink);text-decoration:none;line-height:1.3;
}
.btn:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--ink);}
.btn:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink);}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none;}
.btn-primary{background:var(--purple);color:#fff;}
.btn-pink{background:var(--pink);color:#fff;}
.btn-yellow{background:var(--yellow);}
.btn-teal{background:var(--teal);color:#fff;}
.btn-ghost{background:#fff;}
.btn-sm{padding:6px 13px;font-size:13px;border-radius:11px;box-shadow:3px 3px 0 var(--ink);}
.btn-lg{padding:14px 28px;font-size:17px;border-radius:16px;}
.btn-block{width:100%;}

/* ---------- 徽章 / 标签 ---------- */
.badge{
  display:inline-flex;align-items:center;gap:4px;
  border:2px solid var(--ink);border-radius:8px;
  font-size:12px;font-weight:800;padding:2px 8px;background:#fff;
}
.badge-bounty{background:var(--yellow);transform:rotate(-2deg);box-shadow:2px 2px 0 var(--ink);}
.badge-hot{background:var(--pink);color:#fff;}
.badge-teal{background:var(--teal);color:#fff;}
.badge-purple{background:var(--purple-l);}
.badge-free{background:var(--teal-l);color:var(--teal);}
.badge-agent{background:var(--purple);color:#fff;}
.badge-founder{background:var(--yellow);color:var(--ink);box-shadow:2px 2px 0 var(--ink);}
.tag{
  display:inline-block;background:var(--purple-l);
  border:1.5px solid var(--ink);border-radius:7px;
  font-size:12px;font-weight:700;padding:2px 8px;margin:0 6px 6px 0;
}
.tag-y{background:var(--yellow-l);}
.tag-t{background:var(--teal-l);}
.tag-p{background:var(--pink-l);}
.salary{color:var(--red);font-weight:900;}

/* ---------- 筛选 chips ---------- */
.chip-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px;}
.chip{
  border:2.5px solid var(--ink);border-radius:999px;background:#fff;
  padding:6px 16px;font-size:14px;font-weight:800;cursor:pointer;
  box-shadow:3px 3px 0 var(--ink);transition:transform .1s;
}
.chip:hover{transform:translate(-1px,-1px);}
.chip.active{background:var(--ink);color:var(--yellow);}

/* ---------- 首页 Hero ---------- */
.hero{
  position:relative;overflow:hidden;
  background:linear-gradient(125deg,var(--purple) 0%,#9D7BFF 55%,var(--pink) 100%);
  border:2.5px solid var(--ink);border-radius:24px;
  box-shadow:var(--shadow-lg);padding:28px 24px;margin-bottom:22px;color:#fff;
}
.hero h1{margin:0 0 6px;font-size:26px;font-weight:900;letter-spacing:1px;}
.hero p{margin:0;font-size:14px;opacity:.92;}
.hero .float-sticker{
  position:absolute;font-size:40px;opacity:.9;animation:floaty 3.6s ease-in-out infinite;
  filter:drop-shadow(2px 2px 0 rgba(0,0,0,.25));
}
@keyframes floaty{0%,100%{transform:translateY(0) rotate(-6deg)}50%{transform:translateY(-12px) rotate(8deg)}}
.hero .mini-btns{margin-top:16px;display:flex;gap:10px;flex-wrap:wrap;}

/* ---------- 经纪人横滑 ---------- */
.agent-scroll{display:flex;gap:14px;overflow-x:auto;padding:4px 4px 12px;scroll-snap-type:x mandatory;}
.agent-scroll::-webkit-scrollbar{height:6px;}
.agent-scroll::-webkit-scrollbar-thumb{background:var(--ink);border-radius:3px;}
.agent-mini{
  flex:0 0 210px;scroll-snap-align:start;cursor:pointer;
  background:#fff;border:2.5px solid var(--ink);border-radius:16px;
  box-shadow:var(--shadow);padding:14px;transition:transform .12s;
}
.agent-mini:hover{transform:translate(-2px,-2px);}
.agent-mini .am-top{display:flex;align-items:center;gap:10px;margin-bottom:8px;}
.avatar{
  width:52px;height:52px;border-radius:50%;flex:0 0 auto;
  background:var(--pink-l);border:2.5px solid var(--ink);
  display:flex;align-items:center;justify-content:center;font-size:26px;
  box-shadow:2px 2px 0 var(--ink);
}
.agent-mini .am-name{font-weight:900;font-size:15px;}
.agent-mini .am-title{font-size:12px;color:#7a7590;margin-top:2px;}

/* ---------- 职位卡片 ---------- */
.job-card{cursor:pointer;}
.job-card .jc-top{display:flex;align-items:flex-start;gap:12px;}
.job-logo{
  width:52px;height:52px;border-radius:14px;flex:0 0 auto;
  background:var(--yellow-l);border:2.5px solid var(--ink);
  display:flex;align-items:center;justify-content:center;font-size:28px;
  box-shadow:2px 2px 0 var(--ink);
}
.job-card .jc-title{font-size:17px;font-weight:900;line-height:1.35;}
.job-card .jc-salary{font-size:16px;white-space:nowrap;}
.job-card .jc-meta{font-size:13px;color:#7a7590;margin-top:8px;}
.job-card .jc-badges{margin-top:10px;}

/* ---------- 空状态 ---------- */
.empty{
  text-align:center;padding:40px 20px;color:#8a8598;
}
.empty .empty-emoji{font-size:52px;margin-bottom:10px;animation:floaty 3s ease-in-out infinite;}
.empty .empty-text{font-size:14px;font-weight:600;}
.empty .btn{margin-top:16px;}

/* ---------- 表单 ---------- */
.form-group{margin-bottom:16px;}
.form-label{display:block;font-size:14px;font-weight:800;margin-bottom:7px;}
.form-label .req{color:var(--red);}
.form-input,.form-textarea,.form-select{
  width:100%;border:2.5px solid var(--ink);border-radius:12px;
  padding:11px 14px;font-size:15px;background:#fff;outline:none;
  transition:box-shadow .12s;
}
.form-input:focus,.form-textarea:focus,.form-select:focus{box-shadow:3px 3px 0 var(--yellow);}
.form-textarea{min-height:110px;resize:vertical;}
.form-hint{font-size:12px;color:#8a8598;margin-top:5px;}
.role-pick{display:flex;gap:14px;}
.role-pick .rp{
  flex:1;border:2.5px solid var(--ink);border-radius:14px;background:#fff;
  padding:16px 10px;text-align:center;cursor:pointer;font-weight:800;
  box-shadow:var(--shadow);transition:transform .1s;
}
.role-pick .rp:hover{transform:translate(-1px,-1px);}
.role-pick .rp.active{background:var(--yellow-l);box-shadow:3px 3px 0 var(--ink), inset 0 0 0 3px var(--yellow);}
.role-pick .rp .rp-emoji{font-size:34px;display:block;margin-bottom:6px;}
.role-pick .rp .rp-desc{font-size:11px;color:#7a7590;font-weight:600;margin-top:4px;}

/* ---------- 登录页 ---------- */
.auth-wrap{max-width:440px;margin:30px auto 0;}
.auth-card{background:#fff;border:2.5px solid var(--ink);border-radius:24px;box-shadow:var(--shadow-lg);padding:30px 26px;}
.auth-title{font-size:24px;font-weight:900;text-align:center;margin:0 0 6px;}
.auth-sub{text-align:center;color:#8a8598;font-size:13px;margin-bottom:22px;}
.demo-box{
  margin-top:22px;border-top:2px dashed var(--ink);padding-top:16px;
}
.demo-box .demo-title{font-size:12px;font-weight:900;color:#8a8590;letter-spacing:2px;margin-bottom:10px;text-align:center;}
.demo-btn{
  width:100%;display:flex;align-items:center;gap:10px;
  border:2px solid var(--ink);border-radius:12px;background:var(--purple-l);
  padding:9px 14px;margin-bottom:8px;cursor:pointer;font-weight:700;font-size:14px;
  transition:transform .1s;
}
.demo-btn:hover{transform:translate(-1px,-1px);box-shadow:2px 2px 0 var(--ink);}
.demo-btn .db-mail{margin-left:auto;font-size:11px;color:#8a8590;font-weight:600;}

/* ---------- 我的页面 ---------- */
.me-header{
  display:flex;align-items:center;gap:16px;
  background:linear-gradient(125deg,var(--teal) 0%,#39d0c0 60%,#7CE8DC 100%);
  border:2.5px solid var(--ink);border-radius:24px;box-shadow:var(--shadow-lg);
  padding:22px;color:#fff;margin-bottom:20px;position:relative;overflow:hidden;
}
.me-header.purple{background:linear-gradient(125deg,var(--purple),#B69CFF);}
.me-header.pink{background:linear-gradient(125deg,var(--pink),#FF9CBB);}
.me-header .avatar{width:64px;height:64px;font-size:32px;background:rgba(255,255,255,.9);}
.me-header .mh-name{font-size:20px;font-weight:900;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.me-header .mh-sub{font-size:13px;opacity:.92;margin-top:4px;}
.me-row{
  display:flex;align-items:center;gap:12px;padding:14px 0;cursor:pointer;
  border-bottom:2px dashed rgba(27,26,34,.14);
}
.me-row:last-child{border-bottom:none;}
.me-row .mr-icon{
  width:42px;height:42px;border-radius:12px;flex:0 0 auto;
  border:2.5px solid var(--ink);display:flex;align-items:center;justify-content:center;
  font-size:20px;box-shadow:2px 2px 0 var(--ink);
}
.me-row .mr-label{font-weight:800;font-size:15px;}
.me-row .mr-sub{font-size:12px;color:#8a8590;margin-top:2px;}
.me-row .mr-arrow{margin-left:auto;font-weight:900;color:#b8b3c6;}

/* 积分卡 */
.points-card{
  background:var(--yellow);border:2.5px solid var(--ink);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:18px;margin-bottom:18px;
}
.points-card .pc-num{font-size:34px;font-weight:900;line-height:1.1;}
.points-card .pc-label{font-size:13px;font-weight:700;color:rgba(27,26,34,.75);}
.points-card .pc-btns{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap;}

/* 简历完整度 */
.meter{height:14px;border:2.5px solid var(--ink);border-radius:99px;background:#fff;overflow:hidden;margin:8px 0 4px;}
.meter > div{height:100%;background:linear-gradient(90deg,var(--teal),#7CE8DC);transition:width .5s;}

/* Tab pills */
.pill-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;}
.pill{
  border:2px solid var(--ink);border-radius:999px;background:#fff;
  padding:5px 14px;font-size:13px;font-weight:800;cursor:pointer;
}
.pill.active{background:var(--purple);color:#fff;}

/* 联系方式模糊 */
.contact-box{
  border:2.5px dashed var(--ink);border-radius:14px;background:var(--blue-l);
  padding:18px;text-align:center;
}
.contact-box .cb-blur{
  filter:blur(7px);user-select:none;font-size:17px;font-weight:800;letter-spacing:2px;
}
.contact-box .cb-note{font-size:12px;color:#7a7590;margin-top:6px;}
.contact-open{font-size:17px;font-weight:900;}

/* ---------- 二维码卡 ---------- */
.qr-card{text-align:center;}
.qr-img-box{
  display:inline-block;background:#fff;border:2.5px solid var(--ink);
  border-radius:16px;padding:10px;box-shadow:var(--shadow);margin:10px 0;
}
.qr-img-box img{display:block;width:190px;height:190px;}
.qr-code-text{
  font-size:12px;color:#8a8590;font-weight:700;letter-spacing:1px;
  background:var(--paper);border:2px dashed var(--ink);border-radius:8px;
  display:inline-block;padding:4px 10px;margin-top:6px;
}

/* ---------- 聊天 ---------- */
.chat-list-item{
  display:flex;align-items:center;gap:12px;padding:14px 0;cursor:pointer;
  border-bottom:2px dashed rgba(27,26,34,.14);
}
.chat-list-item:last-child{border-bottom:none;}
.chat-list-item .cli-main{flex:1;min-width:0;}
.chat-list-item .cli-name{font-weight:800;}
.chat-list-item .cli-last{
  font-size:13px;color:#8a8590;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px;
}
.chat-thread{display:flex;flex-direction:column;height:calc(100dvh - 220px);min-height:420px;}
.chat-scroll{flex:1;overflow-y:auto;padding:16px 4px;display:flex;flex-direction:column;gap:14px;}
.bubble{
  max-width:72%;padding:11px 15px;border:2.5px solid var(--ink);
  border-radius:16px;font-size:15px;line-height:1.5;position:relative;
  box-shadow:2px 2px 0 var(--ink);word-break:break-word;
}
.bubble.left{align-self:flex-start;background:#fff;border-bottom-left-radius:4px;}
.bubble.right{
  align-self:flex-end;background:var(--purple);color:#fff;border-bottom-right-radius:4px;
}
.bubble .b-time{display:block;font-size:10px;opacity:.6;margin-top:4px;}
.chat-input-bar{
  display:flex;gap:10px;padding-top:12px;
  border-top:2.5px solid var(--ink);
}
.chat-input-bar input{
  flex:1;border:2.5px solid var(--ink);border-radius:999px;padding:11px 18px;font-size:15px;outline:none;
}
.quick-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px;}
.quick-chip{
  border:2px solid var(--ink);background:var(--yellow-l);border-radius:999px;
  font-size:12px;font-weight:700;padding:4px 12px;cursor:pointer;
}

/* ---------- 弹窗 ---------- */
.modal-mask{
  position:fixed;inset:0;z-index:100;background:rgba(27,26,34,.45);
  display:flex;align-items:center;justify-content:center;padding:20px;
  animation:fadeIn .18s ease;
}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.modal-card{
  background:var(--paper);border:3px solid var(--ink);border-radius:22px;
  box-shadow:8px 8px 0 var(--ink);padding:24px;width:100%;max-width:440px;
  max-height:86dvh;overflow-y:auto;animation:popIn .22s cubic-bezier(.34,1.56,.64,1);
}
@keyframes popIn{from{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}
/* 省份 / 城市点选器需要更宽的弹窗 */
.modal-card.modal-wide{max-width:680px;padding:20px;}
.modal-title{font-size:19px;font-weight:900;margin:0 0 4px;}
.modal-sub{font-size:13px;color:#7a7590;margin:0 0 16px;}
.amount-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:8px;}
.amount-item{
  border:2.5px solid var(--ink);border-radius:14px;background:#fff;
  padding:16px 10px;text-align:center;cursor:pointer;font-weight:900;box-shadow:3px 3px 0 var(--ink);
  transition:transform .1s;
}
.amount-item:hover{transform:translate(-1px,-1px);}
.amount-item .ai-num{font-size:22px;}
.amount-item .ai-gift{font-size:11px;color:var(--pink);font-weight:800;}

/* ---------- Toast ---------- */
#toast-root{
  position:fixed;top:70px;left:50%;transform:translateX(-50%);z-index:200;
  display:flex;flex-direction:column;gap:10px;align-items:center;pointer-events:none;
  width:max-content;max-width:92vw;
}
.toast{
  background:var(--ink);color:#fff;border:2.5px solid var(--ink);
  border-radius:14px;padding:11px 20px;font-size:14px;font-weight:700;
  box-shadow:4px 4px 0 rgba(27,26,34,.3);
  animation:toastIn .25s cubic-bezier(.34,1.56,.64,1);
  display:flex;align-items:center;gap:8px;max-width:100%;
}
.toast.success{background:var(--teal);}
.toast.warn{background:var(--yellow);color:var(--ink);}
.toast.error{background:var(--red);}
@keyframes toastIn{from{transform:translateY(-16px) scale(.9);opacity:0}to{transform:none;opacity:1}}

/* ---------- 详情页 ---------- */
.detail-head{display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap;}
.detail-title{font-size:22px;font-weight:900;line-height:1.3;}
.detail-meta{color:#7a7590;font-size:14px;margin-top:8px;}
.bounty-box{
  background:var(--yellow);border:2.5px dashed var(--ink);border-radius:16px;
  padding:16px;display:flex;align-items:center;gap:14px;margin-top:16px;
  box-shadow:3px 3px 0 var(--ink);
}
.bounty-box .bb-num{font-size:26px;font-weight:900;}
.job-desc{white-space:pre-wrap;line-height:1.8;font-size:15px;}
.action-bar{
  position:sticky;bottom:70px;z-index:40;display:flex;gap:12px;margin-top:22px;
}
@media(min-width:768px){.action-bar{bottom:16px;}}

/* ---------- 列表行 ---------- */
.row-item{
  display:flex;align-items:center;gap:12px;padding:13px 0;
  border-bottom:2px dashed rgba(27,26,34,.14);cursor:pointer;
}
.row-item:last-child{border-bottom:none;}
.row-main{flex:1;min-width:0;}
.row-title{font-weight:800;font-size:15px;}
.row-sub{font-size:12px;color:#8a8590;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

/* ---------- 供应商 ---------- */
.supplier-card .sc-head{display:flex;align-items:center;gap:10px;margin-bottom:8px;}
.supplier-card .sc-type{
  border:2px solid var(--ink);border-radius:8px;font-size:11px;font-weight:900;
  padding:2px 8px;background:var(--teal-l);
}

/* ---------- 页头（子页面） ---------- */
.page-head{display:flex;align-items:center;gap:12px;margin-bottom:18px;}
.page-head .back-btn{
  width:40px;height:40px;border-radius:12px;border:2.5px solid var(--ink);
  background:#fff;font-size:18px;cursor:pointer;box-shadow:3px 3px 0 var(--ink);
  display:flex;align-items:center;justify-content:center;font-weight:900;
}
.page-head h2{margin:0;font-size:20px;font-weight:900;}

/* ---------- 响应式微调 ---------- */
/* 小屏顶栏：搜索框独占第二行，保持单行清爽 */
@media(max-width:640px){
  .topbar-inner{flex-wrap:wrap;padding:10px 12px;gap:8px;}
  .topbar-search{flex-basis:100%;max-width:none;order:3;}
  .topbar-right{gap:8px;}
}
/* 手机端隐藏顶栏「发布职位」按钮（“我的”页有大按钮，避免顶栏拥挤） */
@media(max-width:520px){
  .topbar-right .btn{display:none;}
  .hero h1{font-size:21px;}
  .hero{padding:22px 18px;}
  .logo{font-size:19px;}
  .amount-grid{grid-template-columns:repeat(2,1fr);}
  .modal-card{padding:18px 16px;}
  .modal-mask{padding:14px;}
}
/* 卡片内的内联横排（表单并排输入等）小屏换行，避免挤压 */
@media(max-width:520px){
  .card div[style*="display:flex"]{flex-wrap:wrap;}
}
/* 移动端输入字号 ≥16px，避免 iOS Safari 聚焦自动放大页面 */
@media(max-width:768px){
  .form-input,.form-textarea,.form-select,
  .topbar-search input,.chat-input-bar input{font-size:16px;}
}
/* 详情页操作按钮小屏允许换行 */
.action-bar{flex-wrap:wrap;}
/* 聊天高度：老浏览器回退 + 适配底部导航 */
.chat-thread{height:calc(100vh - 230px);}
@supports(height:100dvh){.chat-thread{height:calc(100dvh - 230px);}}
@media(min-width:768px){
  .chat-thread{height:calc(100dvh - 200px);}
}
/* 长英文串防溢出 */
.jc-title,.detail-title,.row-title,.auth-title,.me-header .mh-name{overflow-wrap:anywhere;}
/* 触控目标略增大，方便拇指点按 */
@media(max-width:768px){
  .chip{padding:7px 16px;}
  .pill{padding:6px 14px;}
  .quick-chip{padding:6px 13px;}
  .btn{padding:11px 18px;}
}

/* ---------------- 协议页面 ---------------- */
.agr-body h3 { font-size: 15px; margin: 18px 0 8px; color: var(--ink); }
.agr-body p { font-size: 13px; line-height: 1.9; color: #4a4658; margin: 6px 0; }
.agr-body ul { padding-left: 20px; margin: 6px 0; }
.agr-body li { font-size: 13px; line-height: 1.9; color: #4a4658; }
.agr-updated { font-size: 12px; color: #8a8590; }

/* ---------------- 智能匹配推荐 ---------------- */
.match-card {
  display: flex; align-items: center; gap: 14px;
  background: #fff; border: 2.5px solid var(--ink); border-radius: 14px;
  box-shadow: 3px 3px 0 var(--ink); padding: 14px; margin-bottom: 12px;
  cursor: pointer; transition: transform .12s, box-shadow .12s;
}
.match-card:hover { transform: translate(-1px, -1px); box-shadow: 5px 5px 0 var(--ink); }
.match-card:active { transform: translate(2px, 2px); box-shadow: 1px 1px 0 var(--ink); }

.mc-score {
  flex: 0 0 60px; width: 60px; height: 60px; border-radius: 50%;
  border: 2.5px solid var(--ink); display: flex; flex-direction: column;
  align-items: center; justify-content: center; font-weight: 900; line-height: 1;
  font-size: 20px;
}
.mc-score small { font-size: 10px; font-weight: 800; margin-top: 2px; }
.mc-score.s-high  { background: #ffd9e6; color: #b3125a; }
.mc-score.s-mid   { background: var(--yellow-l); color: #8a6100; }
.mc-score.s-low   { background: var(--blue-l); color: #1c5fa8; }

.mc-main { flex: 1; min-width: 0; }
.mc-name { font-weight: 900; font-size: 15px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.mc-meta { font-size: 12px; color: #8a8590; margin-top: 2px; }
.mc-reasons { font-size: 12px; color: #5a5470; margin-top: 6px; line-height: 1.6; }
.mc-reason { display: inline-block; background: var(--purple-l); border: 1.5px solid var(--ink);
  border-radius: 20px; padding: 2px 9px; margin: 3px 5px 0 0; font-weight: 700; }
.mc-reason.skill  { background: var(--yellow-l); }
.mc-reason.title  { background: var(--pink-l); }
.mc-reason.city   { background: var(--blue-l); }
.mc-bar { height: 7px; background: #eee; border: 1.5px solid var(--ink); border-radius: 20px;
  overflow: hidden; margin-top: 8px; }
.mc-bar > i { display: block; height: 100%; background: var(--pink); }

.match-empty { text-align: center; padding: 22px; color: #8a8590; font-size: 13px; }
.match-empty .me-emoji { font-size: 38px; display: block; margin-bottom: 6px; }

/* 求职者首页「为你匹配」职位卡片高亮 */
.job-card.matched { border-color: var(--pink); box-shadow: 4px 4px 0 var(--pink); }
.jc-match {
  display: inline-flex; align-items: center; gap: 5px; font-size: 11px; font-weight: 900;
  background: var(--pink-l); border: 1.5px solid var(--ink); border-radius: 20px;
  padding: 2px 9px; color: #b3125a;
}

@media (max-width: 640px) {
  .match-card { gap: 10px; padding: 12px; }
  .mc-score { flex: 0 0 52px; width: 52px; height: 52px; font-size: 17px; }
  .mc-name { font-size: 14px; }
}

/* ============================================================
   省份 / 城市点选器
   ============================================================ */
.city-field { display: flex; gap: 8px; align-items: stretch; }
.city-field .form-input { flex: 1; min-width: 0; }
.city-pick-btn {
  flex: 0 0 auto; cursor: pointer; font-family: var(--font);
  background: var(--teal-l); border: 2.5px solid var(--ink); border-radius: 12px;
  padding: 0 14px; font-weight: 900; font-size: 13px; color: var(--ink);
  box-shadow: 3px 3px 0 var(--ink); white-space: nowrap;
}
.city-pick-btn:active { transform: translate(2px, 2px); box-shadow: 1px 1px 0 var(--ink); }

.cp { display: flex; flex-direction: column; max-height: 78vh; }
.cp-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.cp-title { font-weight: 900; font-size: 18px; }
.cp-sub { font-size: 12px; color: #8a8590; margin-top: 2px; }
.cp-close {
  background: var(--yellow); border: 2.5px solid var(--ink); border-radius: 10px;
  width: 34px; height: 34px; font-size: 15px; font-weight: 900; cursor: pointer;
  box-shadow: 2px 2px 0 var(--ink); flex: 0 0 auto;
}
.cp-search {
  width: 100%; border: 2.5px solid var(--ink); border-radius: 999px;
  padding: 9px 16px; font-size: 14px; font-family: var(--font);
  background: #fff; margin-bottom: 12px; outline: none;
}
.cp-search:focus { box-shadow: 3px 3px 0 var(--purple); }

.cp-block { margin-bottom: 10px; }
.cp-label { font-size: 12px; font-weight: 900; color: #8a8590; margin-bottom: 6px; }
.cp-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.cp-chip {
  cursor: pointer; font-size: 13px; font-weight: 800; padding: 5px 11px;
  background: #fff; border: 2px solid var(--ink); border-radius: 999px;
  box-shadow: 2px 2px 0 var(--ink); line-height: 1.3;
}
.cp-chip:active { transform: translate(1px, 1px); box-shadow: 1px 1px 0 var(--ink); }
.cp-chip.on { background: var(--yellow); }
.cp-chip > i { font-style: normal; font-size: 11px; color: #8a8590; margin-right: 4px; }

.cp-body {
  display: flex; gap: 10px; flex: 1; min-height: 0;
  border: 2.5px solid var(--ink); border-radius: 14px; background: #fff; overflow: hidden;
}
.cp-prov-list {
  flex: 0 0 104px; overflow-y: auto; max-height: 44vh;
  background: var(--purple-l); border-right: 2.5px solid var(--ink);
  -webkit-overflow-scrolling: touch;
}
.cp-prov {
  padding: 9px 10px; font-size: 13px; font-weight: 800; cursor: pointer;
  border-bottom: 1.5px solid rgba(27, 26, 34, .12); white-space: nowrap;
  overflow: hidden; text-overflow: ellipsis;
}
.cp-prov.on { background: var(--purple); color: #fff; }
.cp-city-box {
  flex: 1; min-width: 0; overflow-y: auto; max-height: 44vh; padding: 10px;
  display: flex; flex-wrap: wrap; gap: 7px; align-content: flex-start;
  -webkit-overflow-scrolling: touch;
}
.cp-city-head {
  width: 100%; display: flex; align-items: center; justify-content: space-between;
  font-weight: 900; font-size: 14px; margin-bottom: 4px;
}
.cp-all-btn {
  cursor: pointer; font-family: var(--font); font-size: 12px; font-weight: 900;
  background: var(--teal-l); border: 2px solid var(--ink); border-radius: 999px;
  padding: 3px 10px; box-shadow: 2px 2px 0 var(--ink);
}
.cp-empty { width: 100%; text-align: center; color: #8a8590; font-size: 13px; padding: 24px 8px; }
.cp-empty span { font-size: 12px; }

.cp-foot {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  margin-top: 12px; flex-wrap: wrap;
}
.cp-cur { font-size: 13px; font-weight: 800; color: #5a5470; }
.cp-foot-btns { display: flex; gap: 8px; }

/* 职位广场 · 城市筛选条 */
.city-filter-bar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.cf-btn {
  cursor: pointer; font-family: var(--font); font-size: 13px; font-weight: 900;
  background: #fff; border: 2.5px solid var(--ink); border-radius: 999px;
  padding: 6px 14px; box-shadow: 3px 3px 0 var(--ink);
}
.cf-btn.on { background: var(--yellow); }
.cf-clear {
  cursor: pointer; font-family: var(--font); font-size: 12px; font-weight: 800;
  background: var(--pink-l); border: 2px solid var(--ink); border-radius: 999px;
  padding: 5px 11px; box-shadow: 2px 2px 0 var(--ink);
}
.cf-count { font-size: 12px; color: #8a8590; font-weight: 700; margin-left: auto; }

@media (max-width: 640px) {
  .city-pick-btn { padding: 0 12px; font-size: 12px; }
  .cp-prov-list { flex: 0 0 86px; max-height: 30vh; }
  .cp-city-box { max-height: 30vh; }
}
@media (max-width: 520px) {
  /* 小屏：省份改横向滚动条，城市区占满下方空间 */
  .cp-body { flex-direction: column; }
  .cp-prov-list {
    flex: 0 0 auto; display: flex; overflow-x: auto; overflow-y: hidden;
    max-height: none; border-right: none; border-bottom: 2.5px solid var(--ink);
  }
  .cp-prov { border-bottom: none; border-right: 1.5px solid rgba(27, 26, 34, .12); padding: 9px 12px; }
  .cp-city-box { max-height: 38vh; }
  .cf-count { margin-left: 0; width: 100%; }
}

/* ============================================================
   职位类别徽章 / 人才简历卡片 / 职位广场筛选 / 薪资预设
   ============================================================ */
.badge-cat {
  background: var(--blue-l); color: var(--ink); border: 2px solid var(--ink);
  border-radius: 999px; padding: 1px 9px; font-size: 11px; font-weight: 800;
  box-shadow: 1.5px 1.5px 0 var(--ink);
}

/* 招聘方首页 / 全部简历：人才卡片 */
.talent-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.talent-card { padding: 16px; }
.talent-card .tc-top { display: flex; align-items: center; gap: 12px; }
.talent-card .tc-name { font-weight: 900; font-size: 15px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.talent-card .tc-sub { font-size: 12px; color: #7a7590; margin-top: 3px; }
.talent-card .tc-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.talent-card .tc-expect { font-size: 12px; color: #5a5470; margin-top: 8px; font-weight: 800; }
.talent-card .tc-contact { margin-top: 10px; font-size: 12px; font-weight: 800; }
.hero-recruiter { background: var(--purple-l); }

/* 职位广场筛选条 */
.jobs-filter {
  background: #fff; border: 2.5px solid var(--ink); border-radius: 16px;
  box-shadow: 3px 3px 0 var(--ink); padding: 12px 14px; margin-bottom: 16px;
}
.jf-row { display: flex; align-items: flex-start; gap: 10px; flex-wrap: wrap; }
.jf-row + .jf-row { margin-top: 10px; }
.jf-label {
  flex: 0 0 auto; font-size: 12px; font-weight: 900; color: #8a8590;
  padding-top: 6px; min-width: 34px;
}
.jf-row .cf-btn { font-size: 12px; padding: 5px 12px; box-shadow: 2px 2px 0 var(--ink); }
.jf-row-foot { align-items: center; border-top: 1.5px dashed rgba(27,26,34,.16); padding-top: 10px; }
.jobs-sort { max-width: 130px; padding: 6px 10px; box-shadow: 2px 2px 0 var(--ink); }

/* 发布职位：薪资预设 */
.salary-presets { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.sp-chip {
  cursor: pointer; font-family: var(--font); font-size: 12px; font-weight: 800;
  background: var(--yellow-l); border: 2px solid var(--ink); border-radius: 999px;
  padding: 4px 11px; box-shadow: 2px 2px 0 var(--ink);
}
.sp-chip:active { transform: translate(1px,1px); box-shadow: 1px 1px 0 var(--ink); }

@media (max-width: 640px) {
  .talent-grid { grid-template-columns: 1fr; }
  .jf-label { min-width: 30px; }
}
