/* ============================================================
   学信网手机版（WAP）学习仿制 Demo —— 样式表
   参照学信网 WAP 公开页面结构 clean-room 重写（本地学习用）
   主色：青绿 #00bac7
   ============================================================ */

:root {
  --c-primary: #00bac7;      /* 学信网 WAP 主色（青绿） */
  --c-primary-d: #009aa6;
  --c-primary-l: #eff8f9;
  --c-bg: #f5f5f5;
  --c-card: #ffffff;
  --c-text: #323233;
  --c-sub: #969799;
  --c-line: #ebedf0;
  --c-footer: #282828;
  --radius: 8px;
}

* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html, body { margin: 0; padding: 0; }
body {
  font-family: -apple-system, "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, sans-serif;
  background: #e3e6ea;
  color: var(--c-text);
  font-size: 14px;
  display: flex; justify-content: center;
  min-height: 100vh;
}

/* ---------- 手机外框 ----------
   设计基准宽 390px（= 官网 750 设计稿在 390 视口下的换算基准，1rem = 52px）
   真机（手机 UA）：整体按视口宽度等比缩放，与官网 rem 响应式比例一致（375→0.96 / 390→1 / 414→1.06）
   电脑浏览器：固定 0.78 观感，且只缩不放，窄窗口不会被放大
   缩放由 js/app.js 的 fitViewport() 计算，纯 CSS 无法对 zoom 传入长度值 */
.phone {
  width: 100%; max-width: 414px; min-height: 100vh;
  background: var(--c-bg);
  position: relative; display: flex; flex-direction: column;
  overflow: hidden; box-shadow: 0 16px 60px rgba(0,0,0,.16);
}
@media (min-width: 480px) {
  .phone { min-height: 860px; margin: 20px 0; border-radius: 30px; border: 9px solid #181a20; }
}

/* ---------- 顶部导航栏（官网 .wap-nav-bar：高 1.173rem → 61px） ---------- */
.nav-bar {
  height: 46px; background: #fff; flex: 0 0 auto;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 17px; border-bottom: 1px solid #E8EAED;
  position: relative; z-index: 20;
}
.nb-logo { display: flex; align-items: center; gap: 6px; text-decoration: none; cursor: pointer; }
.nb-logo-img { height: 27px; display: block; }
.nb-logo .logo-fb { height: 27px; display: block; }
.np-closebar .logo-fb { height: 20px; display: block; }
.nb-right { display: flex; align-items: center; gap: 14px; }
.nb-ico {
  width: 25px; height: 25px; border: none; background: transparent;
  color: #333; display: grid; place-items: center; cursor: pointer; padding: 0;
}
.nb-ico img, .nb-ico svg { width: 25px; height: 25px; display: block; }

/* ---------- 导航菜单弹层（官网全屏白色抽屉，右上角三横） ---------- */
.nav-popup { position: fixed; inset: 0; z-index: 60; }
.nav-popup.hidden { display: none; }
.np-mask { position: absolute; inset: 0; background: rgba(0,0,0,.7); }
.np-panel {
  position: relative; margin: 0; width: 100%;
  background: #fff; border-radius: 0; overflow: hidden;
  box-shadow: none;
}
.np-closebar { height: 46px; padding: 0 17px; display: flex; align-items: center; justify-content: space-between; }
.np-logo { height: 27px; display: block; }
.np-close {
  border: none; background: transparent; width: 25px; height: 25px;
  display: grid; place-items: center; cursor: pointer; padding: 0; color: #2a3839;
}
.np-close svg { width: 25px; height: 25px; }
.np-grid { display: grid; grid-template-columns: repeat(3, 1fr); padding: 10px 11px; }
.np-btn {
  display: block; width: calc(100% - 11.48px); margin: 0 5.74px 12px;
  height: 37px; line-height: 37px; box-sizing: border-box;
  border: none; background: #f5f5f5; color: #333; font-size: 14.55px;
  padding: 0; border-radius: 4.17px; cursor: pointer;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; letter-spacing: 0;
}
.np-btn:active { background: #eff0f4; }

/* ---------- 页内搜索条（官网右上角搜索图标） ---------- */
.site-search { position: fixed; inset: 0; z-index: 70; background: #fff; }
.site-search.hidden { display: none; }
.site-search-form {
  height: 46px; box-sizing: border-box; background: #f7f8fa;
  padding: 0 17px 0 10px; display: flex; align-items: center;
}
.ss-back {
  border: none; background: transparent; padding: 0; margin-right: 10px;
  width: 22px; height: 22px; display: grid; place-items: center; cursor: pointer; flex: none;
}
.ss-input {
  flex: 1; min-width: 0; height: 35px; box-sizing: border-box;
  border: 1px solid #d4d9d7; border-radius: 4.5px; outline: none;
  background: #fff url("../assets/cdn/icon-search-wap.svg") no-repeat 10px center / 16px 16px;
  padding: 0 9px 0 36px; font-size: 14px; color: #131b18;
}
.ss-input:focus { border-color: #d4d9d7; }
.ss-btn {
  border: none; background: transparent; padding: 0; margin-left: 13px;
  font-size: 15.37px; color: #131b18; cursor: pointer; flex: none;
}
.ss-res { position: absolute; left: 0; right: 0; top: 46px; bottom: 0; background: #fff; overflow-y: auto; padding: 4px 0; }
.ss-res.hidden { display: none; }
.ss-item { display: block; padding: 13px 17px; border-bottom: 1px solid #f1f3f2; font-size: 14px; color: #131b18; }
.ss-item:active { background: #f2fbfa; }
.ss-empty { padding: 26px 17px; color: #8d949f; font-size: 13.5px; }

/* ---------- 官网「学籍学历学位 / 导师人才库」弹层 ---------- */
.link-pop-wrapper { position: fixed; inset: 0; z-index: 75; display: flex; align-items: center; justify-content: center; }
.link-pop-mask { position: absolute; inset: 0; background: rgba(0,0,0,.7); }
.link-pop-cxt {
  position: relative; width: 322px; max-width: calc(100% - 44px);
  background: #fff; border-radius: 4.17px; padding: 8px 0 43px;
  box-sizing: border-box;
}
.link-pop-close {
  position: absolute; top: 8px; right: 12px; width: 22px; height: 22px;
  border: none; background: transparent; padding: 0; cursor: pointer;
}
.link-pop-close svg { display: block; }
.lp-list { padding-top: 22px; }
.lp-sec { display: flex; align-items: center; gap: 5px; padding: 0 18.7px 11px; font-size: 17.66px; font-weight: 700; line-height: 26px; color: #2a3839; }
.lp-sec svg { flex: none; }
.lp-row { display: flex; padding: 0 11px 11px; }
.lp-col { flex: 0 0 33.333%; padding: 0 7.8px; box-sizing: border-box; }
.lp-btn {
  display: block; width: 100%; height: 31.2px; line-height: 31.2px; box-sizing: border-box;
  background: #f3f4f8; border-radius: 4.17px; color: #263939;
  font-size: 13.54px; text-align: center; text-decoration: none; cursor: pointer;
}
.lp-btn:active { background: #eaecf2; }
.lp-ds { padding-top: 22px; }
.lp-ds-title { display: flex; align-items: center; justify-content: center; gap: 5px; font-size: 17.66px; font-weight: 700; line-height: 26px; color: #2a3839; padding-bottom: 20px; }
.lp-ds-row { padding: 0 11px; justify-content: center; }
.lp-ds-row .lp-col { flex: 0 0 33.333%; }

.nb-title { font-size: 16px; font-weight: 600; color: #222; flex: 1; text-align: center; }

/* ---------- 视图容器 ---------- */
.view-root { flex: 1 1 auto; overflow-y: auto; -webkit-overflow-scrolling: touch; }
.view { display: none; }
.view.active { display: block; }
.view[data-back="1"].active { padding: 12px; }

/* ---------- 首页 index-part1：轮播 + 资讯（官网同结构） ---------- */
.ip1 { background: #fff; padding: 0 15.5px 15.5px; }

/* ---------- 轮播（官网 .wap-swipe，整图 750×300） ---------- */
.swipe { position: relative; overflow: hidden; background: #fff; border-radius: 6px; }
.swipe-track { display: flex; transition: transform .4s ease; }
.swipe-item { min-width: 100%; height: 144px; position: relative; }
.swipe-item a { display: block; }
.swipe-item img { display: block; width: 100%; height: 144px; object-fit: cover; border-radius: 6px; }
/* 官网轮播图加载失败时的兜底卡片（断网场景） */
.swipe-fb {
  height: 139px; border-radius: 6px; padding: 0 20px;
  display: flex; align-items: center;
  background: linear-gradient(120deg,#3fa4d8,#2b86bd);
  color: #fff; font-size: 17px; line-height: 1.5;
}
.swipe-fb b { font-weight: 700; }
.swipe-dots {
  position: absolute; bottom: 14px; left: 50%; transform: translateX(-50%);
  display: flex; align-items: center;
}
.swipe-dots i { width: 8px; height: 8px; border-radius: 50%; background: #ebedf0; opacity: .3; }
.swipe-dots i + i { margin-left: 8px; }
.swipe-dots i.on { background: #fff; opacity: 1; }
/* 官网右下角「更多专题」浮层 */
.more-zt-link { position: absolute; right: 0; bottom: 0; z-index: 10; }
.more-zt-link a {
  display: inline-block; height: 22px; line-height: 22px;
  padding: 0 6px; background: rgba(221,221,221,.3);
  border-top-left-radius: 8px; color: #fff; font-size: 11.44px;
  text-decoration: none; cursor: pointer;
}
.more-zt-link i { font-style: normal; font-size: 11px; margin-left: 2px; }

/* ---------- 资讯区（官网 .news-part） ---------- */
.news-part {
  border-radius: 6px; margin-top: 18px; line-height: 26.013px;
  background: linear-gradient(180deg,#f9f9fc,#fff);
  padding: 0;
}
.news-hl a {
  display: block; font-size: 16.653px; line-height: 26.013px; padding: 8px 15.5px;
  color: #263939; text-decoration: none;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.news-hl.blue a { color: #00bac7; }
/* 官网移动端把这两行桌面资讯做了 display:none，此处保持一致 */
.news-sub, .news-hr { display: none; }
.news-list { padding: 6.5px 15.5px 0; }
.news-item {
  display: block; font-size: 14.547px; color: #263939; text-decoration: none;
  line-height: 26.013px; position: relative; padding-left: 8.5px; margin-bottom: 10px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.news-item::before {
  content: ""; position: absolute; left: 0; top: 11px;
  width: 4px; height: 4px; border-radius: 50%;
  background: linear-gradient(133deg,#ff7b7f,#ffbc46);
}
.news-more { font-size: 12.48px; text-align: center; padding-bottom: 8px; }
.news-more a { color: #999; text-decoration: none; cursor: pointer; }
.news-more i { font-style: normal; margin-left: 2px; }

/* ---------- 横幅 index-part2（职业测评，官网整图 690×150） ---------- */
.part-banner { margin-top: 0; padding: 15.5px; background: #fff; }
.pb-img { display: block; cursor: pointer; }
.pb-img img { display: block; width: 100%; height: auto; border-radius: 6px; }
/* 图片加载失败时的文字兜底 */
.pb-inner {
  background: linear-gradient(120deg,#eaf3fb,#dbe9f7);
  border-radius: var(--radius); padding: 14px 16px;
  display: flex; align-items: center; gap: 10px;
}
.pb-text { flex: 1; }
.pb-t1 { margin: 0 0 6px; font-size: 15px; font-weight: 700; color: #1a5fa8; }
.pb-t1 em { font-style: normal; color: #d02b2b; }
.pb-t2 { margin: 0; font-size: 11.5px; color: #6b7f95; }
.pb-btn {
  flex: 0 0 auto; border: none; cursor: pointer;
  background: #e5342b; color: #fff; font-size: 13px; font-weight: 600;
  padding: 8px 16px; border-radius: 18px; box-shadow: 0 3px 8px rgba(229,52,43,.3);
}

/* ---------- 宫格 index-part3（3 列卡片） ---------- */
.grid-part { background: #fff; margin-top: 16px; padding: 15.5px; }
.van-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.grid-item {
  display: flex; flex-direction: column; align-items: center;
  padding: 15px 10.5px 12px; height: 111px; box-sizing: border-box; cursor: pointer; text-align: center;
  background: #fff; border-radius: 6px;
  box-shadow: 0 3px 14px hsla(0,0%,82%,.5);
}
.gi-ico {
  width: 42px; height: 42px; border-radius: 50%;
  display: grid; place-items: center; margin-bottom: 7px;
  background: var(--c-primary); color: #fff;
  box-shadow: 0 3px 8px rgba(0,186,199,.22);
}
.gi-ico svg { width: 21px; height: 21px; display: block; }
.gi-ico.gi-soft { background: #e9f6fe; box-shadow: none; }
.gi-ico.gi-soft svg { width: 24px; height: 24px; }
.gi-ico.gi-official { background: transparent; box-shadow: none; }
.gi-ico.gi-official .gi-img { width: 42px; height: 42px; display: block; }
.grid-txt { width: 92px; font-size: 12.48px; color: #2a3839; line-height: 17.68px; }

/* ---------- 宫格 index-part4（服务，3 列，行间分隔线） ---------- */
#gridService { padding: 0 21px; margin-top: 29px; }
#gridService .van-grid + .van-grid { margin-top: 16px; }
#gridService .van-grid {
  grid-template-columns: repeat(3, 1fr);
  border-bottom: 1px solid #eee;
}
#gridService .van-grid:last-child { border-bottom: none; }
#gridService .grid-item {
  height: 80px; padding: 10px 6px; background: transparent; box-shadow: none; border-radius: 0;
}
#gridService .gi-ico {
  width: 40px; height: 40px; border-radius: 0; margin-bottom: 5px;
  background: transparent; box-shadow: none;
}
#gridService .gi-ico svg { width: 32px; height: 32px; }
#gridService .gi-ico.gi-soft { background: transparent; }
#gridService .gi-ico.gi-official .gi-img { width: 40px; height: 40px; }
#gridService .grid-txt { width: auto; font-size: 12.48px; line-height: 17.2px; white-space: nowrap; }

/* ---------- 官方微博微信 index-part5 ---------- */
.media-part { background: #fff; margin: 14px 0; padding: 28px 21px; }
.media-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 21px; }
.media-top h3 {
  position: relative; margin: 0; font-weight: 400;
  font-size: 18.72px; line-height: 26.013px; height: 32px; color: #2a3839;
}
.media-top h3::after {
  content: ""; position: absolute; left: 0; top: 22px; opacity: .2;
  width: 100%; height: 21px; border-radius: 10px;
  background: linear-gradient(270deg,rgba(0,222,229,0),#00bac7 100%,#00bac7 0);
}
.media-top a { font-size: 12.48px; line-height: 28px; height: 28px; color: #999; cursor: pointer; }
.media-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; margin: 0 -14px; }
.media-item {
  display: flex; align-items: center; min-width: 0;
  background: transparent; border-radius: 6px; padding: 0;
  font-size: 12.48px; line-height: 18.72px; height: 19px; color: #2a3839; cursor: pointer;
}
.media-item .mi-img, .media-item .mi-ico {
  width: 22px; height: 22px; margin-right: 7px; flex: 0 0 auto; display: block;
}
.media-item .mi-ico { color: #2fb37a; }
.media-item span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ---------- 页脚（按官网 .wap-footer 实测：4 项/行、16px、左右 22px 缩进） ---------- */
.site-footer {
  background: #282828; color: #969696;
  font-size: 12.48px; line-height: 17.2px;
  padding: 47px 17px 17px; margin-top: 41px;
}
.ft-list { display: flex; flex-wrap: wrap; }
.ft-a { display: inline-block; width: 20%; padding-left: 0; margin-bottom: 17.8px; }
.ft-a a { color: #969696; text-decoration: none; cursor: pointer; font-size: 12.48px; line-height: 17.2px; }
.ft-units { margin-top: 21px; line-height: 20px; }
.ft-u { margin-bottom: 14px; }
.ft-badge { vertical-align: -2px; margin-right: 1px; }

/* ---------- 搜索条（服务页） ---------- */
.search-bar { display: flex; align-items: center; gap: 8px; background: #fff; border-radius: 6px; padding: 10px 12px; margin-bottom: 12px; }
.search-bar .sb-ico { color: var(--c-sub); display: flex; }
.search-bar input { border: none; outline: none; flex: 1; font-size: 14px; background: transparent; }

/* ---------- 卡片 ---------- */
.card { background: var(--c-card); border-radius: var(--radius); padding: 4px 14px; margin-bottom: 10px; }
.card-row { display: flex; justify-content: space-between; align-items: center; padding: 12px 0 8px; }
.card-title { font-size: 15px; font-weight: 700; position: relative; padding-left: 9px; }
.card-title::before { content: ""; position: absolute; left: 0; top: 2px; bottom: 2px; width: 3px; border-radius: 2px; background: var(--c-primary); }

/* ---------- 表单 ---------- */
.form-card { background: var(--c-card); border-radius: var(--radius); padding: 16px; margin-bottom: 10px; }
.form-desc { font-size: 12px; color: var(--c-sub); margin: 0 0 16px; line-height: 1.7; }
.field { position: relative; display: flex; flex-direction: column; gap: 6px; margin-bottom: 15px; }
.field span { font-size: 13px; color: #646566; }
.field input { border: 1px solid #e3e6ea; border-radius: 8px; padding: 11px 12px; font-size: 14px; font-family: inherit; outline: none; width: 100%; background: #fafbfc; box-sizing: border-box; transition: border-color .15s; }
.field input:focus { border-color: var(--c, var(--c-primary)); background: #fff; }
.field.bad input { border-color: #e05a5a; background: #fef6f6; }
.field-err { display: none; font-style: normal; font-size: 11px; color: #e05a5a; margin-top: 4px; }
.field-err.show { display: block; }
.btn-primary { width: 100%; border: none; border-radius: 22px; padding: 12px; background: var(--c-primary); color: #fff; font-size: 15px; font-weight: 600; cursor: pointer; }
.btn-primary:active { background: var(--c-primary-d); }
.result-card { background: var(--c-card); border-radius: var(--radius); padding: 16px; margin-bottom: 10px; }
.result-card h4 { margin: 0 0 10px; font-size: 14px; }
.kv { list-style: none; margin: 0; padding: 0; }
.kv li { display: flex; justify-content: space-between; padding: 11px 0; border-bottom: 1px solid var(--c-line); font-size: 14px; }
.kv li:last-child { border-bottom: none; }
.kv li span { color: var(--c-sub); }
.tag-ok { color: #07a35a; font-weight: 600; }

/* ---------- 分段 ---------- */
.seg { display: flex; background: #fff; border-radius: 6px; padding: 4px; margin-bottom: 12px; }
.seg-item { flex: 1; border: none; background: transparent; padding: 9px; border-radius: 5px; font-size: 13px; color: var(--c-sub); cursor: pointer; }
.seg-item.active { background: var(--c-primary); color: #fff; font-weight: 600; }

/* ---------- 个人中心 ---------- */
.profile {
  background: linear-gradient(135deg, var(--c-primary), #33c8d2);
  border-radius: var(--radius); padding: 18px; color: #fff;
  display: flex; align-items: center; gap: 14px; margin-bottom: 10px;
}
.avatar { width: 50px; height: 50px; border-radius: 50%; background: #fff; color: var(--c-primary); display: grid; place-items: center; font-size: 24px; font-weight: 800; }
.profile-info { flex: 1; }
.profile-info h3 { margin: 0 0 4px; font-size: 17px; }
.profile-info p { margin: 0; font-size: 12px; opacity: .9; }
.btn-ghost { border: 1px solid rgba(255,255,255,.8); background: transparent; color: #fff; border-radius: 16px; padding: 6px 15px; font-size: 13px; cursor: pointer; }
.menu { list-style: none; margin: 0; padding: 0; }
.menu li { display: flex; justify-content: space-between; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--c-line); font-size: 14px; cursor: pointer; }
.menu li:last-child { border-bottom: none; }
.menu li i { color: var(--c-sub); font-style: normal; }

/* ---------- 提示 ---------- */
.hidden { display: none !important; }

/* ---------- 学信档案系二级页（真实 my.chsi.com.cn 绿主题） ---------- */
.arc-head { display: flex; align-items: center; justify-content: space-between; background: #fff; padding: 12px 14px; border-radius: var(--radius); margin-bottom: 10px; }
.arc-logo { display: flex; align-items: center; gap: 6px; font-size: 16px; font-weight: 800; color: #26b887; letter-spacing: 1px; }
.arc-logo-img { height: 24px; display: block; }
.arc-menu svg { width: 19px; height: 19px; color: #666; }
.arc-hero { border-radius: var(--radius); padding: 26px 18px 8px; text-align: center;
  background: linear-gradient(180deg, #eaf7f0, #e4f2f6); margin-bottom: 10px; }
.arc-hero h3 { margin: 0 0 12px; font-size: 17px; font-weight: 800; color: #333; letter-spacing: 1px; }
.arc-hero.last { padding-bottom: 26px; background: linear-gradient(180deg, #e4f2f6, #eaf7f0); }
.arc-btns { display: flex; gap: 10px; }
.arc-btn { flex: 1; border: 0; cursor: pointer; font-size: 15px; padding: 10px 0; border-radius: 4px; font-family: inherit; }
.arc-btn.solid { background: #26b887; color: #fff; }
.arc-btn.solid:active { background: #229f75; }
.arc-btn.plain { background: #fff; color: #26b887; border: 1px solid #26b887; }
.arc-illus { margin: 14px auto 0; max-width: 320px; }
.arc-illus svg { width: 100%; display: block; }
.arc-part { border-radius: var(--radius); padding: 24px 18px; margin-bottom: 10px; }
.arc-part.white { background: #fff; }
.arc-part.grey { background: #f4f6f8; }
.arc-part h2 { margin: 0 0 14px; text-align: center; font-size: 17px; color: #26b887; line-height: 1.5; }
.arc-img { max-width: 240px; margin: 0 auto 12px; }
.arc-img svg { width: 100%; display: block; }
.arc-text { margin: 0; font-size: 12px; color: #888; text-align: center; line-height: 1.7; }
.arc-sub { margin: 0 0 6px; font-size: 13px; color: #555; }
.arc-list { list-style: none; margin: 0; padding: 0; }
.arc-list li { position: relative; padding: 5px 0 5px 14px; font-size: 13px; color: #444; line-height: 1.65; }
.arc-list li p { margin: 2px 0 0; font-size: 12px; color: #888; }
.arc-list li::before { content: ''; position: absolute; left: 0; top: 12px; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.arc-list li.blue { color: #4a90d9; } .arc-list li.blue p { color: #888; }
.arc-list li.blue2 { color: #5aa0e0; } .arc-list li.blue2 p { color: #888; }
.arc-list li.yellow { color: #f0a020; } .arc-list li.yellow p { color: #888; }
.arc-list li.orange { color: #f07030; }
.arc-list li.green { color: #3cb05e; }
.arc-list li.rosered { color: #e05a8a; }
.arc-list li.purple { color: #9a6fd0; }
.arc-list li.grey { color: #666; }
.arc-footer { background: #fff; padding: 22px 16px 28px; text-align: center; color: #999; font-size: 12px; line-height: 20px; }
.arc-footer .af-links { display: flex; justify-content: center; gap: 18px; margin-bottom: 10px; }
.arc-footer .af-links a { color: #666; text-decoration: none; }
.arc-footer p { margin: 0; }

/* 学信档案落地页：官网通栏布局（无外层返回栏、无卡片圆角） */
.phone.arc-landing { background: #fff; }
.phone.arc-landing .nav-bar { display: none; }
.phone.arc-landing .view[data-back="1"].active { padding: 0; }
.phone.arc-landing .arc-head { height: 62px; padding: 0 20px; margin: 0; border-radius: 0; }
.phone.arc-landing .arc-menu svg { width: 20px; height: 20px; color: #666; }
.phone.arc-landing .arc-hero { border-radius: 0; margin: 0; padding: 34px 20px 0; background: #e8f5fb; }
.phone.arc-landing .arc-hero h3 { font-size: 20.8px; font-weight: 700; letter-spacing: 0; }
.phone.arc-landing .arc-btns { gap: 16px; }
.phone.arc-landing .arc-btn { height: 50px; font-size: 16px; border-radius: 2px; }
.phone.arc-landing .arc-illus { max-width: 330px; }
.phone.arc-landing .arc-part { border-radius: 0; margin: 0; padding: 31px 16px; }
.phone.arc-landing .arc-part.grey { background: #fff; }
.phone.arc-landing .arc-part h2 { font-weight: 400; font-size: 20.8px; margin-bottom: 18px; }
.phone.arc-landing .arc-hero.last { background: #fff; padding: 30px 20px 42px; }
/* ---------- 官网 WAP 查询页（学历 / 学位 / 在线验证 / 出国背景） ---------- */
.phone.wap-sub { background: #f5f5f5; }
.phone.wap-sub .view[data-back="1"].active { padding: 0; }
.qc-hero { padding: 30px 16px 26px; text-align: center; background: linear-gradient(115deg,#e9f4fa 0%,#dbedf8 34%,#f2fafe 62%,#ffffff 100%); }
.qc-hero h1 { margin: 0; font-size: 19px; font-weight: 700; color: #222; letter-spacing: .5px; }
.qc-hero p { margin: 8px 0 0; font-size: 12px; color: #999; }
.qc-hero p i { font-style: normal; }
.qc-list { background: #fff; }
.qc-item { display: flex; align-items: center; gap: 14px; padding: 16px; color: inherit; text-decoration: none; border-bottom: 1px solid #f0f0f0; }
.qc-item:last-child { border-bottom: none; }
.qc-ico { width: 40px; height: 40px; border-radius: 50%; background: #00b8c4; display: grid; place-items: center; flex: none; }
.qc-item-txt { flex: 1; min-width: 0; }
.qc-item-txt b { font-size: 16px; font-weight: 500; color: #333; }
.qc-item-txt b i { font-style: normal; font-size: 12px; color: #999; font-weight: 400; }
.qc-item-txt p { margin: 4px 0 0; font-size: 12px; color: #999; line-height: 1.5; }
.qc-arrow { color: #ccc; font-size: 18px; flex: none; }
.qc-report { margin: 12px; background: #f3f8fc; border-radius: 4px; display: flex; align-items: center; gap: 12px; padding: 12px; }
.qc-cert { flex: none; }
.qc-rinfo b { font-size: 15px; font-weight: 500; color: #333; }
.qc-rbtns { display: flex; gap: 10px; margin-top: 8px; }
.qc-rbtns span { display: inline-block; padding: 4px 13px; border: 1px solid #b9d8e8; border-radius: 14px; background: #fff; color: #2a7fa6; font-size: 12px; cursor: pointer; }
.qc-foot { margin-top: 10px; background: #282828; color: #969696; text-align: center; padding: 22px 16px; font-size: 12.5px; line-height: 1.7; }
.qc-foot p { margin: 0; }
.qc-form { background: #fff; padding: 20px 16px 16px; }
.qc-field { display: flex; align-items: center; gap: 12px; border-bottom: 1px solid #f0f0f0; padding-bottom: 12px; }
.qc-field span { font-size: 14px; color: #333; flex: none; }
.qc-field input { flex: 1; min-width: 0; height: 38px; border: 1px solid #e5e5e5; border-radius: 4px; padding: 0 10px; font-size: 13px; outline: none; }
.qc-btn { display: block; width: 100%; height: 46px; margin-top: 16px; border: none; border-radius: 4px; background: #00bac7; color: #fff; font-size: 16px; cursor: pointer; }
.qc-form-tip { min-height: 16px; margin-top: 8px; font-size: 12px; color: #e05a5a; }
.qc-note { background: #fff; margin-top: 8px; padding: 16px; font-size: 12px; color: #666; line-height: 1.75; }
.qc-note p { margin: 8px 0; }
.qc-note-b { display: block; margin-top: 14px; font-size: 14px; color: #333; font-weight: 700; }
.qc-note ol { margin: 8px 0 0; padding-left: 18px; }
.qc-note li { margin: 6px 0; }
.qc-chips { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 16px; }
.qc-chips span { background: #eef6f9; color: #555; font-size: 12px; text-align: center; padding: 9px 0; border-radius: 3px; cursor: pointer; }
.qc-yellow { margin-top: 16px; background: #fdf3df; color: #8a5a00; padding: 12px; font-size: 13px; border-radius: 3px; cursor: pointer; }
.qc-yellow i { float: right; font-style: normal; }
/* 出国教育背景信息服务：直接照官网 WAP 的 CSS 取值复刻
   （官网 app.css 用 rem，1rem = 屏宽/10；本机 .phone 宽 390px → 1rem = 39px） */
.h2-banner { display: flex; align-items: center; justify-content: center; height: 104.01px; margin: 0;
  font-size: 20.79px; font-weight: 700; color: #333;
  background: url("../assets/cdn/cgjy/h2-banner.jpg") no-repeat; background-size: 100%; }
.cgjy-wrap { background: #f5f5f5; padding-bottom: 10.53px; }
.cgjy-box { background: #fff; padding: 16.77px 20.67px; margin-bottom: 10.53px; }
.cgjy-box:last-child { margin-bottom: 0; }
.cgjy-box h5 { margin: 0; height: 26.13px; line-height: 26.13px; font-size: 18.72px; font-weight: 700; color: #263939; text-align: center; }
.cgjy-apply { display: flex; margin: 15.6px 0 0; padding: 0; list-style: none; }
.cgjy-apply li { flex: 1; text-align: center; line-height: 1; }
.cgjy-apply li:last-child { position: relative; padding-top: 21.84px; }
.cgjy-apply li:last-child::after { content: ""; position: absolute; left: -7.8px; top: 3.9px; width: 1px; height: 57.33px; background: #dcdcdc; }
.cgjy-apply li a { text-decoration: none; }
.cgjy-ico { display: inline-block; width: 39.39px; height: 39.39px; margin-bottom: 8.19px; background-size: 100% 100%; background-repeat: no-repeat; }
.cgjy-ico.wssq { background-image: url("../assets/cdn/cgjy/wssq-icon.svg"); }
.cgjy-ico.xcbl { background-image: url("../assets/cdn/cgjy/xcbl-icon.svg"); }
.cgjy-ico.cjd { background-image: url("../assets/cdn/cgjy/cjd-icon.svg"); }
.cgjy-ico.zdcjd { background-image: url("../assets/cdn/cgjy/zdcjd-icon.svg"); }
.cgjy-name { display: block; height: 17.16px; line-height: 17.16px; font-size: 12.48px; color: #2a3839; }
.cgjy-sqjd { display: block; height: 20.67px; line-height: 20.67px; font-size: 14.43px; color: #2a3839; text-decoration: none; }
.cgjy-query { display: flex; flex-wrap: wrap; text-align: center; line-height: 1; }
.cgjy-col { width: 33.3333%; margin-top: 15.6px; }
.cgjy-bgfs-desc { margin: 10.53px 0 0; font-size: 14.43px; line-height: 23.79px; color: rgba(38,57,57,.9); }
.cgjy-gnjs { display: block; width: 104.13px; height: 33.15px; line-height: 33.15px; margin: 15.6px auto 0;
  background: #00bac7; border-radius: 2.07px; font-size: 14.43px; color: rgba(255,255,255,.9); text-align: center; text-decoration: none; }
.cgjy-wrap + .qc-foot { margin-top: 0; }

/* ---------- 应用型首页（阳光高考橙黄 / 研招蓝 / 征兵绿红 / 港澳台绿） ---------- */
.app-topbar { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 8px 14px; color: #fff; border-radius: var(--radius) var(--radius) 0 0; margin-bottom: 8px; }
.app-topbar span { font-size: 12px; font-weight: 700; letter-spacing: .5px; }
.app-topbar em { font-style: normal; font-size: 9px; opacity: .8; white-space: nowrap; }
.app-head { display: flex; align-items: center; gap: 8px; background: #fff; border-radius: var(--radius); padding: 13px 14px; margin-bottom: 10px; }
.app-logo { font-size: 20px; font-weight: 800; letter-spacing: 1px; }
.app-logo.script { font-style: italic; text-shadow: 0 1px 0 rgba(240,140,30,.25); }
.app-logo.grad { color: #333; }
.app-logo.flat { color: #3f9b4e; }
.app-logo.army { color: #c62828; }
.app-logo.army::before { content: ''; display: inline-block; width: 20px; height: 20px; margin-right: 6px; vertical-align: -4px; border-radius: 50%; background: radial-gradient(circle at 50% 40%, #e85a4a 30%, #c62828 60%); }
.app-logo-sub { font-size: 9px; color: #999; line-height: 1.4; }
.app-head-r { margin-left: auto; display: flex; align-items: center; color: #666; font-size: 13px; }
.app-banner { position: relative; border-radius: var(--radius); padding: 26px 18px 30px; margin-bottom: 12px; overflow: hidden; background-size: cover; background-position: center; background-repeat: no-repeat; }
.app-banner b { display: block; font-size: 20px; letter-spacing: 1px; line-height: 1.45; text-shadow: 0 1px 8px rgba(0,0,0,.55); }
.app-banner span { display: block; font-size: 12px; opacity: .92; margin-top: 8px; text-shadow: 0 1px 6px rgba(0,0,0,.5); }
.app-dots { position: absolute; left: 0; right: 0; bottom: 10px; display: flex; justify-content: center; gap: 5px; }
.app-dots u { width: 6px; height: 6px; border-radius: 50%; background: rgba(120,120,120,.25); }
.app-dots u.on { background: currentColor; }
.app-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px 4px; background: #fff; border-radius: var(--radius); padding: 18px 6px 16px; margin-bottom: 12px; }
.app-ico { text-align: center; cursor: pointer; }
.app-ico span { display: grid; place-items: center; width: 44px; height: 44px; margin: 0 auto; border-radius: 12px; font-size: 19px; font-weight: 800; }
.app-ico em { display: block; font-style: normal; font-size: 11px; color: #555; margin-top: 7px; white-space: nowrap; }
.app-notice { background: linear-gradient(100deg, #e04a3a, #e8705a); color: #fff; text-align: center; font-size: 13px; letter-spacing: 2px; padding: 9px; border-radius: var(--radius); margin-bottom: 12px; }
.app-cal { border-radius: var(--radius); padding: 14px 14px 8px; margin-bottom: 12px; }
.app-cal h4 { margin: 0 0 10px; font-size: 16px; color: #333; display: flex; align-items: center; gap: 7px; }
.app-cal h4 i { width: 18px; height: 18px; border-radius: 5px; display: inline-block; }
.app-cal-tabs { display: flex; gap: 8px; margin-bottom: 6px; }
.app-cal-tabs span { font-size: 12px; color: #555; background: rgba(255,255,255,.75); border-radius: 999px; padding: 5px 14px; }
.app-cal-tabs span.on { color: #fff; font-weight: 700; }
.app-cal ul { list-style: none; margin: 0; padding: 0 0 6px; }
.app-cal li { display: flex; align-items: center; gap: 8px; padding: 8px 0; font-size: 13px; color: #444; cursor: pointer; }
.app-cal li i { flex: 0 0 auto; width: 5px; height: 5px; border-radius: 50%; }
.app-hot { display: flex; gap: 10px; background: #fff; border-radius: var(--radius); padding: 12px; margin-bottom: 12px; align-items: center; }
.app-hot-tag { flex: 0 0 auto; background: linear-gradient(135deg, #e8443a, #f2a03c); color: #fff; font-size: 11px; font-weight: 700; line-height: 1.25; padding: 5px 7px; border-radius: 6px; text-align: center; }
.app-hot div { flex: 1; min-width: 0; }
.app-hot p { margin: 4px 0; font-size: 12px; color: #444; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; cursor: pointer; }
.app-duo { display: flex; gap: 10px; margin-bottom: 12px; }
.app-duo span { flex: 1; text-align: center; font-size: 14px; font-weight: 700; line-height: 1.6; padding: 16px 8px; border-radius: var(--radius); cursor: pointer; }
.app-sec-t { margin: 4px 0 10px; font-size: 17px; font-weight: 800; color: #333; padding-left: 10px; border-left: 4px solid; line-height: 1.3; }
.app-topics { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-bottom: 12px; }
.app-topic { cursor: pointer; }
.app-topic-img { position: relative; height: 86px; border-radius: 8px; overflow: hidden; background-size: cover; background-position: center; background-repeat: no-repeat; }
.app-topic-y { position: absolute; left: 8px; top: 8px; font-style: normal; font-size: 9px; color: #fff; background: rgba(0,0,0,.22); border-radius: 3px; padding: 2px 6px; }
.app-topic p { margin: 7px 0 0; font-size: 12px; color: #444; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.app-play { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 30px; height: 30px; border-radius: 50%; background: rgba(255,255,255,.35); }
.app-play::after { content: ''; position: absolute; left: 12px; top: 9px; border-left: 9px solid #fff; border-top: 6px solid transparent; border-bottom: 6px solid transparent; }
.app-more { text-align: center; font-size: 12px; color: #999; padding: 2px 0 10px; cursor: pointer; }
.app-law-card { display: flex; gap: 10px; background: #fff; border-radius: var(--radius); padding: 12px; margin-bottom: 10px; cursor: pointer; align-items: center; }
.app-law-card > span { flex: 0 0 92px; height: 60px; border-radius: 6px; display: grid; place-items: center; color: #fff; font-size: 13px; font-weight: 700; letter-spacing: 1px; }
.app-law-card b { display: block; font-size: 14px; color: #333; }
.app-law-card p { margin: 5px 0 0; font-size: 11px; color: #999; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.app-law-list { list-style: none; margin: 0; padding: 0 2px 4px; background: #fff; border-radius: var(--radius); }
.app-law-list li { display: flex; align-items: center; gap: 9px; padding: 12px 4px; font-size: 13px; color: #444; border-bottom: 1px solid #f0f2f4; cursor: pointer; }
.app-law-list li:last-child { border-bottom: 0; }
.app-law-list li i { flex: 0 0 auto; width: 5px; height: 5px; border-radius: 50%; }

/* 统一块：搜索条 / 分类 chips / 分区（卡片·行列表）/ 职位卡 / 底部 tab */
.app-search { display: flex; align-items: center; gap: 6px; background: #fff; border-radius: 999px; padding: 9px 14px; margin-bottom: 12px; color: #99a; font-size: 13px; }
.app-chips { display: flex; gap: 8px; overflow-x: auto; padding: 2px 2px 10px; }
.app-chips > span { flex: 0 0 auto; background: #fff; border-radius: 999px; padding: 7px 14px; font-size: 12px; color: #445; cursor: pointer; }
.app-sec { background: #fff; border-radius: var(--radius); padding: 14px; margin-bottom: 12px; }
.app-sec h4 { margin: 0 0 10px; font-size: 16px; color: #333; display: flex; justify-content: space-between; align-items: center; }
.app-sec h4 i { font-style: normal; color: #bbb; }
.app-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.app-card { cursor: pointer; }
.app-card-img { height: 62px; border-radius: 6px; background-size: cover; background-position: center; background-repeat: no-repeat; }
.app-card p { margin: 6px 0 0; font-size: 11px; color: #444; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.app-rows { display: flex; flex-direction: column; gap: 10px; }
.app-row { display: flex; gap: 10px; cursor: pointer; }
.app-row > span { flex: 0 0 86px; height: 58px; border-radius: 6px; background-size: cover; background-position: center; background-repeat: no-repeat; }
.app-row b { display: block; font-size: 13px; color: #333; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.app-row p { margin: 4px 0 0; font-size: 11px; color: #999; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.app-jobs { display: flex; flex-direction: column; gap: 10px; }
.app-job { background: #fff; border-radius: var(--radius); padding: 14px; cursor: pointer; }
.app-job-row { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.app-job-row b { font-size: 15px; color: #333; }
.app-job-row em { font-style: normal; font-size: 14px; font-weight: 700; color: #f04b4b; }
.app-job > p { margin: 7px 0 0; font-size: 12px; color: #777; }
.app-job-meta { display: flex; gap: 6px; margin-top: 9px; }
.app-job-meta span { font-size: 10px; color: #6a90c0; background: #eef4fc; border-radius: 3px; padding: 2px 6px; }
.app-tabbar { position: sticky; bottom: 0; display: flex; background: #fff; border-radius: var(--radius); padding: 9px 0; box-shadow: 0 -2px 12px rgba(0,0,0,.06); }
.app-tabbar span { flex: 1; text-align: center; font-size: 11px; color: #888; cursor: pointer; }
.app-tabbar span.on { color: var(--c, #3f7fe0); font-weight: 700; }

/* ---------- 三级功能页（继承所属子站主题色） ---------- */
.sub-head { border-radius: var(--radius); padding: 16px; color: #fff; margin-bottom: 10px; background-size: cover; background-position: center; background-repeat: no-repeat; }
.sub-head b { display: block; font-size: 18px; letter-spacing: 1px; text-shadow: 0 1px 8px rgba(0,0,0,.55); }
.sub-head span { display: block; font-size: 10px; opacity: .9; margin-top: 6px; text-shadow: 0 1px 6px rgba(0,0,0,.5); }
.sub-head .sub-desc { text-shadow: 0 1px 6px rgba(0,0,0,.5); }
.sub-result { display: none; margin-top: 12px; background: #f2fbf6; border: 1px solid #bfe6d2; border-radius: 8px; padding: 12px; }
.sub-result b { display: block; font-size: 13px; color: #2f9e63; margin-bottom: 6px; }
.sub-result p { margin: 3px 0; font-size: 12px; color: #555; }
.sub-tips { list-style: none; margin: 0; padding: 0 2px 6px; }
.sub-tips li { padding: 8px 0; font-size: 13px; color: #555; line-height: 1.6; }
.sub-steps { display: flex; justify-content: space-between; margin-bottom: 14px; }
.step { flex: 1; text-align: center; font-size: 11px; color: #aaa; position: relative; cursor: default; }
.step i { display: grid; place-items: center; width: 26px; height: 26px; margin: 0 auto 5px; border-radius: 50%; background: #e3e6ea; color: #888; font-style: normal; font-size: 13px; font-weight: 700; }
.step.on { color: var(--c, #00bac7); font-weight: 700; cursor: pointer; }
.step.on i { background: var(--c, #00bac7); color: #fff; outline: 3px solid color-mix(in srgb, var(--c, #00bac7) 22%, transparent); }
.step.cur em { font-weight: 800; }
.step:not(:last-child)::after { content: ''; position: absolute; top: 13px; left: calc(50% + 18px); right: calc(-50% + 18px); height: 2px; background: #e3e6ea; }
.sub-notice { background: #f7f8fa; border-radius: 8px; padding: 12px; margin-bottom: 12px; }
.sub-notice b { display: block; font-size: 13px; color: #444; margin-bottom: 6px; }
.sub-notice p { margin: 4px 0; font-size: 12px; color: #777; line-height: 1.6; }
.sub-flow { list-style: none; margin: 0; padding: 2px 4px 8px; }
.sub-flow li { display: flex; align-items: center; gap: 9px; padding: 10px 0; font-size: 13px; color: #999; }
.sub-flow li i { width: 8px; height: 8px; border-radius: 50%; background: #d5d9de; }
.sub-list { display: flex; flex-direction: column; gap: 10px; }
.sub-item { display: flex; justify-content: space-between; align-items: center; gap: 10px; background: #fff; border-radius: var(--radius); padding: 14px; cursor: pointer; transition: opacity .2s; }
.sub-item b { display: block; font-size: 14px; color: #333; }
.sub-item p { margin: 5px 0 0; font-size: 12px; color: #999; }
.sub-item-d { flex: 0 0 auto; font-size: 11px; color: #fff; background: var(--c, #00bac7); border-radius: 3px; padding: 3px 8px; }
.sub-chat { display: flex; flex-direction: column; gap: 12px; padding-bottom: 60px; position: relative; max-height: 70vh; overflow-y: auto; }
.msg { display: flex; gap: 8px; align-items: flex-start; }
.msg .ava { flex: 0 0 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; color: #fff; font-size: 12px; }
.msg p { margin: 0; max-width: 78%; font-size: 13px; line-height: 1.6; padding: 9px 12px; border-radius: 10px; }
.msg.them p { background: #f4f6f8; color: #444; border-top-left-radius: 2px; }
.msg.me { justify-content: flex-end; }
.msg.me p { background: var(--c, #00bac7); color: #fff; border-top-right-radius: 2px; }
.chat-input { position: absolute; left: 10px; right: 10px; bottom: 10px; display: flex; gap: 8px; }
.chat-input input { flex: 1; border: 1px solid #e3e6ea; border-radius: 999px; padding: 9px 14px; font-size: 13px; font-family: inherit; outline: none; }
.chat-input button { border: 0; color: #fff; border-radius: 999px; padding: 0 18px; font-size: 13px; cursor: pointer; font-family: inherit; }
.sub-player { position: relative; height: 200px; border-radius: var(--radius); display: grid; place-items: center; margin-bottom: 10px; overflow: hidden; background-size: cover; background-position: center; background-repeat: no-repeat; }
.sub-player i { position: absolute; width: 52px; height: 52px; border-radius: 50%; background: rgba(255,255,255,.35); }
.sub-player i::after { content: ''; position: absolute; left: 21px; top: 16px; border-left: 15px solid #fff; border-top: 10px solid transparent; border-bottom: 10px solid transparent; }
.sub-player span { position: absolute; bottom: 10px; font-size: 10px; color: rgba(255,255,255,.85); }
.sub-vt { display: block; font-size: 15px; color: #333; }
.sub-vp { margin: 7px 0 0; font-size: 12px; color: #999; }
.sub-article h3 { margin: 0 0 8px; font-size: 17px; color: #333; line-height: 1.5; }
.sub-meta { font-size: 11px; color: #a0a4a8; padding-bottom: 10px; border-bottom: 1px solid #f0f2f4; }
.sub-article > p:not(.sub-meta) { font-size: 14px; color: #444; line-height: 1.9; margin: 12px 0 0; text-indent: 2em; }

/* ---------- 三级页：说明 / 快捷咨询 / 职位详情 ---------- */
.sub-desc { display: block; font-style: normal; font-size: 11.5px; line-height: 1.6; opacity: .92; margin-top: 8px; }
.chat-quick { display: flex; flex-wrap: wrap; gap: 6px; }
.chat-quick span { font-size: 11.5px; color: var(--c, #00bac7); background: color-mix(in srgb, var(--c, #00bac7) 10%, #fff); border-radius: 999px; padding: 6px 11px; cursor: pointer; }
.job-card { padding-top: 14px; }
.job-top { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.job-top b { font-size: 17px; color: #333; }
.job-top em { font-style: normal; font-size: 15px; font-weight: 700; color: #f04b4b; }
.job-company { margin: 8px 0 10px; font-size: 12.5px; color: #777; }
.job-tags { display: flex; flex-wrap: wrap; gap: 6px; padding-bottom: 12px; }
.job-tags span { font-size: 10.5px; color: #6a90c0; background: #eef4fc; border-radius: 3px; padding: 3px 7px; }
.job-list { list-style: none; margin: 0; padding: 0 2px 10px; }
.job-list li { position: relative; padding: 7px 0 7px 14px; font-size: 13px; color: #555; line-height: 1.7; }
.job-list li::before { content: ''; position: absolute; left: 0; top: 15px; width: 5px; height: 5px; border-radius: 50%; background: var(--c, #00bac7); }

/* ---------- 三级页交互状态 ---------- */
.sub-chips span { transition: background .15s, color .15s; }
.sub-chips span.on { background: var(--c, #00bac7); color: #fff; font-weight: 700; }
.step-pane { display: none; animation: paneIn .2s ease; }
.step-pane.on { display: block; }
@keyframes paneIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.chk { display: flex; align-items: center; gap: 8px; font-size: 13px; color: #555; margin-bottom: 12px; cursor: pointer; }
.chk input { accent-color: var(--c, #00bac7); width: 16px; height: 16px; }
.sub-done { text-align: center; padding: 14px 0 6px; }
.sub-done i { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: var(--c, #00bac7); color: #fff; font-size: 26px; font-style: normal; margin: 0 auto 10px; }
.sub-done b { display: block; font-size: 15px; color: #333; }
.sub-done p { margin: 8px 0 0; font-size: 12px; color: #999; }
.btn-shake { animation: shake .35s; }
@keyframes shake { 20% { transform: translateX(-5px); } 40% { transform: translateX(5px); } 60% { transform: translateX(-3px); } 80% { transform: translateX(3px); } }
.btn-primary:disabled { opacity: .6; cursor: default; }
.sub-status { display: none; margin-top: 12px; border-radius: 8px; padding: 10px 12px; font-size: 13px; }
.sub-status.show { display: block; }
.sub-status.ok { background: #f2fbf6; border: 1px solid #bfe6d2; color: #2f9e63; }
.sub-status.err { background: #fef6f6; border: 1px solid #f3c2c2; color: #e05a5a; }
.msg p.typing { padding: 12px 14px; }
.typing i { display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: #b5bac0; margin: 0 2px; animation: typing 1s infinite; }
.typing i:nth-child(2) { animation-delay: .18s; }
.typing i:nth-child(3) { animation-delay: .36s; }
@keyframes typing { 0%, 100% { opacity: .35; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-3px); } }

/* ============================================================
   学信档案 · 登录后移动端（WAP）个人中心
   尺寸 / 字号 / 配色 / 图标 1:1 对齐官网 my.chsi.com.cn/archive/wap
   （基准视口 390px；个人数据均为虚构样例值）
   ============================================================ */
.phone.arc-mode .nav-bar { display: none; }
/* 锁死视口高度：底部 tabbar 永远贴底，内容在内部滚动（与官网 WAP 一致） */
@media (max-width: 479px) {
  .phone.arc-mode { height: 100vh; min-height: 0; }
}
.phone.arc-mode .view[data-back="1"].active { padding: 0; }

@font-face {
  font-family: "chsi-icon";
  src: url("../assets/cdn/arc/iconfont.woff") format("woff");
  font-display: block;
}
.ifont { font-family: "chsi-icon" !important; font-style: normal; line-height: 1; -webkit-font-smoothing: antialiased; }

.arc { min-height: 100%; display: flex; flex-direction: column; background: #fff; color: #333; font-size: 12px; line-height: 18px; }

/* ---------- 顶栏（高 45.7px，官方 logo 图 110.3×20.8） ---------- */
.hd { flex: 0 0 auto; height: 45.7px; background: #26b887; position: relative; display: flex; align-items: center; justify-content: center; z-index: 5; }
.hd-w { background: #fff; box-shadow: inset 0 -1px 0 #ebedf0; }
.hd-logo { display: block; width: 110.3px; height: 20.8px; background: url("../assets/cdn/arc/logo.png") no-repeat center/100% 100%; }
.hd-tt { margin: 0; font-size: 16px; font-weight: 500; color: #fff; }
.hd-w .hd-tt { color: #333; }
.hd-back { position: absolute; left: 15px; top: 16px; width: 16px; height: 16px; padding: 0; border: 0; background: none; color: #fff; display: grid; place-items: center; cursor: pointer; }
.hd-w .hd-back { color: #333; }
.hd-out { position: absolute; right: 14.6px; top: 9.4px; width: 18.7px; height: 28.1px; padding: 0; border: 0; background: none; color: #fff; display: grid; place-items: center; cursor: pointer; }
.hd-out .ifont { font-size: 18.72px; }

/* ---------- 专业推荐卡 + 推广横幅 ---------- */
.vote-part { padding: 0 16.653px; }
.vote-card { display: flex; align-items: center; margin-top: 12.48px; height: 78px; padding: 12.48px; background: #f6f6f6; border-radius: 6.24px; text-decoration: none; color: #333; }
.vc-main { flex: 1 1 auto; min-width: 0; }
.vc-top { display: flex; align-items: center; }
.vc-main h4 { margin: 0; font-size: 16.653px; font-weight: 400; line-height: 24.96px; color: #333; white-space: nowrap; }
.vc-tag { display: inline-flex; align-items: center; margin-left: 10.413px; height: 17.7px; padding: 0 8.307px; background: #ffe7d2; border-radius: 4.173px; font-size: 12.48px; line-height: 17.667px; color: #7e7e7e; }
.vc-tag b { margin-left: 8.307px; color: #ef7405; font-weight: 400; }
.vc-sub { margin-top: 3.12px; font-size: 14.547px; line-height: 24.96px; color: #727272; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.vc-btn { flex: 0 0 auto; margin-left: 16.653px; width: 72.8px; height: 30.1px; border-radius: 15.6px; background: #26b887; color: #fff; font-size: 12.48px; line-height: 30.147px; text-align: center; }
.vote-banner { display: block; margin-top: 12.48px; height: 83.2px; border-radius: 6.24px; background: #4b9be0 url("../assets/cdn/arc/kzxz_bg.png") no-repeat center/100% 100%; }
.xj-banner { height: 83.2px; background-image: url("../assets/cdn/arc/zcsx_bg.png"); }

/* ---------- 九宫格入口（3 列 × 130px，图标 31.2px） ---------- */
.menu-part { padding: 19.773px 0 10.413px; margin-bottom: 62.4px; }
.menu-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.menu-a { display: block; min-height: 99.3px; padding: 10.413px 0; text-align: center; text-decoration: none; color: #333; font-size: 13.533px; line-height: 18.72px; }
.menu-a .mi { display: inline-block; width: 31.2px; height: 31.2px; margin-bottom: 5.187px; background-repeat: no-repeat; background-position: center; background-size: 100% 100%; vertical-align: top; }
.menu-a .mt { display: inline-block; width: 6em; vertical-align: top; }

/* ---------- 底部 tabbar（高 50px，图标 23.9px） ---------- */
.tb { position: sticky; bottom: 0; margin-top: auto; height: 50px; display: flex; background: #fff; box-shadow: inset 0 1px 0 #ebedf0, inset 0 -1px 0 #ebedf0; z-index: 10; }
.tb-i { flex: 1; height: 50px; display: flex; flex-direction: column; align-items: center; justify-content: center; color: #7d7e80; cursor: pointer; }
.tb-i.on { color: #26b887; }
.tb-ic { width: 23.9px; height: 23.9px; margin-bottom: 3.12px; display: grid; place-items: center; }
.tb-ic .ifont { font-size: 23.907px; line-height: 23.907px; }
.tb-ic img { width: 23.9px; height: 23.9px; margin: -1.56px 0 1.56px; display: block; }
.tb-tx { font-size: 12px; line-height: 12px; }

/* ---------- 高等教育信息 ---------- */
.gd-list { padding: 0 16.653px 20.787px; }
.gd-tit { display: flex; align-items: center; height: 37px; margin-top: 10px; font-size: 12px; color: #999; }
.gd-tit .l { flex: 0 0 106px; font-size: 15px; font-weight: 500; color: #333; }
.gd-tit .r { flex: 1; text-align: right; }
.gd-tit .lnk { color: #26b887; text-decoration: none; }
/* 高校学生跟踪调查问卷（官网同位置的浅紫横幅） */
.gd-promo { margin: 10.413px 16.653px 0; padding: 12.48px 16.653px; display: flex; align-items: center; justify-content: space-between; gap: 10px; border-radius: 6.24px; background: linear-gradient(100deg,#eae7ff,#f1efff); }
.gd-promo-txt b { display: block; font-size: 15.6195px; font-weight: 600; line-height: 24px; color: #5b4bd6; }
.gd-promo-btn { margin-top: 6px; padding: 2px 9px; border: 0; border-radius: 9px; background: #6c5ce7; color: #fff; font-size: 11.5px; line-height: 17px; cursor: pointer; }
.gd-promo-ico { flex: none; width: 66px; height: 47px; }
.gd-xj { margin: 2.067px 0 10.413px; height: 87.4px; padding: 16.653px; border-radius: 6.24px; box-shadow: 0 4.173px 8.307px rgba(63,203,146,.4); background: linear-gradient(90deg,#1faf7f,#3fcb92); color: #fff; cursor: pointer; }
.yxmc-wrap { display: flex; width: 100%; }
.yxmc { flex: 1; min-width: 0; padding-right: 10.413px; font-size: 18.72px; font-weight: 500; line-height: 26.013px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cc { flex: 0 0 auto; margin-top: 4.173px; height: 20.787px; padding: 0 8.307px; border-radius: 10.413px; background: #1da36e; font-size: 12.48px; line-height: 20.787px; text-align: center; }
.des { margin-top: 9.36px; font-size: 13.533px; line-height: 18.72px; }
.des .dsep { font-style: normal; margin: 0 12px; }
.no-data { background: #fff; border-radius: 6.24px; box-shadow: 0 2.067px 8.307px rgba(0,0,0,.1); padding: 15.6px 0 0; text-align: center; margin-bottom: 10.413px; }
.no-data h4 { margin: 8.307px 0 17.667px; font-size: 18.72px; font-weight: 400; line-height: 26.013px; color: #333; }
.q { display: inline-flex; align-items: center; justify-content: center; width: 15px; height: 15px; margin-left: 3px; vertical-align: middle; text-decoration: none; }
.q svg { display: block; }
.gd-more { height: 44.7px; display: flex; align-items: center; justify-content: center; border-top: 1px solid #f1f1f1; font-size: 12.48px; line-height: 20.787px; color: #26b887; cursor: pointer; }
.gd-more svg { width: 11px; height: 7px; margin-left: 3px; }
.no-data.tj { padding: 14px 16px; margin: 2.067px 0 10.413px; }
.no-data.tj .yxmc { display: block; margin: 0 0 8px; font-size: 15.6195px; font-weight: 500; }
.no-data.tj .des { margin-top: 6px; font-size: 12.5px; line-height: 20px; color: #999; }

/* 学历 / 学位：官方样式空数据卡（编号说明 + 收起） */
.gd-card { background: #fff; border-radius: 6.24px; box-shadow: 0 2.067px 8.307px rgba(0,0,0,.1); margin-bottom: 10.413px; overflow: hidden; }
.gd-none { padding: 20.787px 16.653px 16.653px; text-align: center; font-size: 18.72px; font-weight: 400; line-height: 26.013px; color: #333; }
.gd-guide { padding: 0; }
.gq { display: flex; gap: 10.413px; padding: 20.787px 16.653px; font-size: 14.547px; line-height: 23.4px; color: #333; border-top: 1px solid #f1f1f1; }
.gq b { flex: none; width: 19px; height: 19px; border-radius: 50%; background: #26b887; color: #fff; font-size: 12px; font-weight: 400; display: grid; place-items: center; margin-top: 2.1px; }
.gq-body { flex: 1; min-width: 0; }
.gq-inline { display: flex; align-items: baseline; gap: 6px; }
.gq-inline .gq-lnk { margin-left: auto; }
.gq-lnk { color: #26b887; text-decoration: none; margin-left: 4px; }
.gq-row { margin-top: 20.787px; }
.gq-row-h { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.gq-row-h span { flex: none; font-size: 12.48px; line-height: 1.6; color: #999; }
.gq-row-h a { flex: none; font-size: 14.547px; line-height: 1.6; color: #26b887; text-decoration: none; }
.gq-row-v { margin-top: 2.1px; font-size: 15.6195px; line-height: 1.6; color: #333; word-break: break-all; }

/* ---------- 高等学籍详情 ---------- */
.xj-body { padding: 0 16.653px 20.787px; }
.top-card { margin-top: 10.413px; padding: 20.787px 16.653px; border-radius: 6.24px; background: linear-gradient(#1faf7f,#3fcb92); color: #fff; }
.tc-row { display: flex; }
.tc-photos { flex: 0 0 121.3px; display: flex; }
.tc-ph { width: 60.6px; text-align: center; }
.pbox { width: 48.8px; height: 64.4px; margin: 0; border-radius: 6.24px; background: #fff; overflow: hidden; }
.pbox svg { display: block; width: 46.8px; height: 62.4px; margin: 1px auto; border-radius: 4.173px; background: #eef0f2; }
.tc-ph p { width: 46.8px; margin: 4.6px 0 0; font-size: 10.413px; line-height: 15.6195px; }
.tc-info { flex: 1; min-width: 0; }
.tc-info h5 { margin: 5.187px 0 1px; font-size: 16.653px; font-weight: 400; line-height: 24.98px; }
.tc-info p { margin: 0; font-size: 12.48px; line-height: 18.72px; }
.top-card .yxmc-wrap { margin-top: 18.72px; }
.xf { list-style: none; margin: 20.787px 0 0; padding: 0; }
.xf li { display: flex; padding: 7.293px 0; font-size: 14.547px; line-height: 20.787px; }
.xf .k { flex: 0 0 126px; text-align: right; color: #999; }
.xf .v { flex: 1; margin-left: 20.787px; color: #333; }
.xj-btn { display: block; width: 100%; height: 47.8px; margin-top: 21.2px; border: 0; border-radius: 2px; background: #26b887; color: #fff; font-size: 16.653px; line-height: 47.853px; padding: 0; cursor: pointer; }

/* ---------- 在线验证报告（已申请的在线验证报告表格） ---------- */
/* 顶部浅绿条 + 学历层次-学校-专业标签（绿底白字圆角块） */
.bab-tabs { display: flex; align-items: center; height: 34px; background: #eaf7f2; }
.bab-pill {
  display: block; height: 34px; padding: 0 13.546px; box-sizing: border-box;
  max-width: 100%; border-radius: 0 4px 4px 0; background: #26b887; color: #fff;
  font-size: 13.546px; line-height: 34px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.bab-body { padding: 10.413px 16.653px 20.787px; }
.bab-card { background: #fff; }
.bab-h { display: flex; align-items: center; gap: 4.786px; padding: 12.48px 10.413px 8.307px; font-size: 12.48px; line-height: 18.72px; color: #333; }
.bab-ok { flex: none; display: block; width: 14px; height: 14px; }
.bab-ok svg { display: block; }
.bab-tab { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: 10.5px; line-height: 15.6px; color: #333; }
.bab-tab th, .bab-tab td { box-sizing: border-box; padding: 6.24px 2.067px; text-align: left; vertical-align: middle; white-space: nowrap; }
.bab-tab th { font-weight: 400; color: #333; border-top: 1px solid #e5e5e5; border-bottom: 1px solid #e5e5e5; }
.bab-tab tbody td { border-bottom: 1px solid #e5e5e5; }
.bab-tab tbody tr:last-child td { border-bottom: 0; }
.bab-tab th.c-code, .bab-tab td.c-code { padding-left: 6.24px; white-space: normal; word-break: break-all; }
.bab-tab td.c-code[data-go] { cursor: pointer; }
.bab-tab .c-code { width: 38%; }
.bab-tab .c-lang { width: 12%; }
.bab-tab .c-state { width: 16%; }
.bab-tab .c-op { width: 34%; }
.bab-op { display: flex; align-items: center; gap: 4.173px; font-size: 10.5px; line-height: 15.6px; white-space: nowrap; }
.bab-tab .lk, .bab-op a { color: #26b887; text-decoration: none; }
.bab-op a { cursor: pointer; }
.bab-op i { font-style: normal; }
/* 报告详情（官网「在线验证」报告页：白底 + 报告语种 + 照片 + 信息表 + 深色页脚） */
.bab-view { background: #fff; }
.bv-top { display: flex; align-items: center; height: 46px; padding: 0 16.653px; background: #fff; }
.bv-logo { height: 24px; display: block; }
.bv-sep { width: 1px; height: 15px; margin: 0 10.413px; background: #dcdcdc; }
.bv-brand { font-size: 16px; color: #00bac7; }
.bv-lang { display: flex; align-items: center; padding: 12.48px 16.653px 0; font-size: 13.546px; color: #666; }
.bv-lang label { margin-right: 10.413px; }
.bv-lang a { padding: 3.12px 9.36px; border-radius: 2.067px; color: #666; text-decoration: none; cursor: pointer; }
.bv-lang a.on { background: #e8f7f9; color: #00bac7; }
.bv-lang .bv-dl { margin-left: auto; display: flex; }
.bv-title { margin: 26px 0 0; text-align: center; font-size: 19px; font-weight: 700; color: #333; }
.bv-photo { width: 90px; height: 113px; margin: 18px auto 0; background: #dbe9f6; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.bv-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bv-list { list-style: none; margin: 24px 0 0; padding: 0 16.653px 26px; }
.bv-list li { display: flex; align-items: flex-start; padding: 4.68px 0; font-size: 14.5px; line-height: 21px; }
.bv-list .k { flex: 0 0 110px; text-align: right; color: #999; }
.bv-list .v { flex: 1; margin-left: 14.5px; color: #333; word-break: break-word; }

/* ---------- 功能页 ---------- */
.demo-card { margin: 12.48px 16.653px; background: #fff; border-radius: 6.24px; padding: 16.653px; }
.demo-card h3 { margin: 0 0 8px; font-size: 16.653px; font-weight: 500; color: #333; }
.demo-card p { margin: 0; font-size: 13.533px; color: #999; line-height: 20.3px; }
.demo-list { margin: 12px 0 0; padding: 0; box-shadow: inset 0 1px 0 #ebedf0; }
.demo-list li { list-style: none; padding: 12px 0; font-size: 14.547px; color: #333; display: flex; justify-content: space-between; align-items: center; box-shadow: inset 0 -1px 0 #f2f3f5; }
.demo-list li span { color: #26b887; font-size: 12.48px; }

/* ============================================================
   学信网账号 · 登录 / 注册（1:1 复刻官网 account.chsi.com.cn 移动端）
   基准视口 390px；数值取自官网实测 computed style
   ============================================================ */
.phone.passport-mode .nav-bar { display: none; }
.phone.passport-mode { background: #f5f5f5; }

/* ---------- 登录页（account.chsi.com.cn/passport/login） ---------- */
.pp-login {
  position: relative; box-sizing: border-box;
  background: #fff; color: #13161b;
  font-size: 12px; line-height: 1.8;
  overflow: hidden;
}
.pp-logo { height: 133px; padding: 0 28.86px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; }
.pp-logo h1 {
  width: 100%; height: 50px; margin: 0; font-size: 0;
  background: url("../assets/cdn/passport/archive-logo.png") no-repeat center/contain;
}
.pp-logo-a { display: block; height: 50px; }
.pp-content { padding: 0 28.86px 19.5px; box-sizing: border-box; }
.pp-h3 { margin: 0 0 12.48px; font-size: 14.43px; line-height: 23.01px; font-weight: 400; color: #8d949f; text-align: center; }
.pp-h3 a { color: #60656e; text-decoration: none; }
.pp-ct { margin-bottom: 16.77px; }
.pp-ct.pp-sub { margin-bottom: 0; }
.pp-input {
  display: block; width: 100%; box-sizing: border-box;
  height: 49.92px; line-height: 49.92px;
  padding: 0 14.43px; border: 1px solid #d5d7db; border-radius: 4.29px;
  background: #fff; color: #13161b; font-size: 16.77px; outline: none;
}
.pp-input::placeholder { color: #8d949f; }
.pp-input:focus { border-color: #3fbf9c; }
.pp-btn {
  display: block; width: 100%; box-sizing: border-box;
  height: 49.92px; font-size: 16.77px; line-height: 47.92px;
  border: 1px solid #3fbf9c; border-radius: 4.29px; background: #3fbf9c;
  color: #fff; cursor: pointer; padding: 0;
}
.pp-btn:hover { background: #37b18f; border-color: #37b18f; }
.pp-btn:active { background: #2fa17f; border-color: #2fa17f; }
.pp-btn:disabled { opacity: .85; cursor: default; }
.pp-op { margin-top: 16.77px; font-size: 14.43px; line-height: 17px; }
.pp-op::after { content: ''; display: block; clear: both; }
.pp-op .pp-find { float: left; margin-right: 10px; color: #60656e; text-decoration: none; cursor: pointer; }
.pp-op .pp-reg { float: right; color: #60656e; text-decoration: none; cursor: pointer; }
.pp-footer-other { position: absolute; bottom: 41.73px; width: 100%; height: 56.16px; box-sizing: border-box; text-align: center; }
.pp-footer-other a { font-size: 14.43px; line-height: 56.16px; margin-right: 16.77px; color: #60656e; text-decoration: none; cursor: pointer; }
.pp-footer-other a:last-child { margin-right: 0; }
.pp-footer-copy {
  position: absolute; left: 0; bottom: 0; width: 100%;
  height: 41.73px; padding: 10.53px 0; box-sizing: border-box;
  background: #f7f8fa; color: #8d949f; font-size: 12.987px; line-height: 20.67px; text-align: center;
}
.pp-footer-copy a { color: #8d949f; text-decoration: none; cursor: pointer; }
.pp-login .sub-status { margin: 0; border-radius: 4px; padding: 6px 10px; font-size: 12.987px; }
.pp-login .sub-status.show { margin-top: 10px; }

/* ---------- 注册页（account.chsi.com.cn/account/preregister.action） ---------- */
.pp-reg { background: #f5f5f5; color: #333; font-size: 14px; line-height: 21px; }
.pp-hd { height: 51px; padding: 5px 16px; box-sizing: border-box; background: #fff; }
.pp-hd::after { content: ''; display: block; clear: both; }
.pp-hd-logo {
  float: left; width: 96px; height: 30px; margin-top: 10px;
  background: url("../assets/cdn/passport/chsi-logo.png") no-repeat;
  background-image: image-set(url("../assets/cdn/passport/chsi-logo.png") 1x, url("../assets/cdn/passport/chsi-logo2x.png") 2x);
  background-size: 100% 100%; cursor: pointer;
}
.pp-hd-menu {
  float: right; width: 24px; height: 36px; margin-top: 5px; padding-left: 10px;
  box-sizing: content-box; display: flex; flex-direction: column;
  justify-content: center; gap: 4.6px; cursor: pointer;
}
.pp-hd-menu u { display: block; width: 24px; height: 3px; background: #666; border-radius: 1px; }
.pp-inner { margin: 20px 0; padding: 12px 0 0; background: #fff; }
.pp-fc { position: relative; margin: 0 auto; }
.pp-simple { padding-right: 20px; text-align: right; font-size: 14px; line-height: 21px; }
.pp-simple a { color: #1866c8; text-decoration: none; cursor: pointer; }
.pp-form table { width: 100%; border-collapse: separate; border-spacing: 0; }
.pp-form tr { height: auto; line-height: normal; }
.pp-form th {
  display: block; width: 100%; box-sizing: border-box; height: auto;
  padding: 14px 22px 6px; text-align: left; font-weight: 400; font-size: 14px;
  line-height: 20px; color: #333;
}
.pp-form tr.pp-hidden th { height: 0; line-height: 0; font-size: 0; padding: 0; }
.pp-form td { display: block; width: 100%; box-sizing: border-box; padding: 0 22px 2px; text-align: left; font-size: 14px; }
.pp-req { margin-right: 3px; color: #e85759; }
.pp-ipt {
  display: inline-block; width: 100%; box-sizing: border-box;
  height: 40px; line-height: 38px; padding: 0 12px;
  border: 1px solid #cdcdcd; border-radius: 4px; background: #fff;
  color: #000; font-size: 14px; vertical-align: top; outline: none;
}
.pp-ipt:focus { border-color: #2eafbb; }
select.pp-ipt {
  height: 41px; line-height: 39px; padding: 0 34px 0 12px;
  -webkit-appearance: none; appearance: none;
  background: #fff url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%23999' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 12px center / 12px 8px;
}
.pp-tip { height: auto; margin: 0; padding: 0 22px 2px; line-height: 20px; color: #999; font-size: 14px; }
/* 注册页逐字段提示（与官网一致：错误红色、说明灰色、校验通过绿色勾） */
.pp-err { display: none; margin: 0; padding: 0; font-size: 14px; line-height: 20px; color: #ff5a57; }
.pp-err.show { display: block; }
.pp-err.show::before {
  content: ''; display: inline-block; width: 14px; height: 14px; margin-right: 4px; vertical-align: -2px;
  background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='6.6' fill='none' stroke='%23ff5a57' stroke-width='1.2'/%3E%3Cpath d='M8 4.6v4.4' stroke='%23ff5a57' stroke-width='1.5' stroke-linecap='round'/%3E%3Ccircle cx='8' cy='11.6' r='.9' fill='%23ff5a57'/%3E%3C/svg%3E") no-repeat center/contain;
}
.pp-err.plain, .pp-err.hint { color: #999; }
.pp-err.plain::before { display: none; }
.pp-err.hint::before {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='6.6' fill='none' stroke='%23999' stroke-width='1.2'/%3E%3Cpath d='M8 7.2v4.2' stroke='%23999' stroke-width='1.5' stroke-linecap='round'/%3E%3Ccircle cx='8' cy='4.9' r='.9' fill='%23999'/%3E%3C/svg%3E");
}
.pp-err.ok { color: transparent; }
.pp-err.ok::before {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.2 8.6l3.2 3.2 6.4-6.8' fill='none' stroke='%231fbfa0' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.pp-ipt.err { border-color: #ff5a57; background: #fff; }
.pp-desc { height: auto; padding: 24px 0 20px; line-height: 18px; color: #999; font-size: 12px; border-bottom: 1px solid #f0f0f0; }
.pp-chk { display: flex; align-items: flex-start; gap: 6px; margin-top: 12px; font-size: 13px; line-height: 18px; color: #666; white-space: normal; }
.pp-chk input { width: 14px; height: 14px; margin: 2px 0 0; flex: none; }
.pp-chk a { color: #1866c8; text-decoration: none; cursor: pointer; }
.pp-chk2 { margin-top: 10px; }
.pp-chk-td { padding-bottom: 22px !important; }
.pp-submit {
  display: block; width: 100%; box-sizing: border-box;
  height: 50px; margin: 18px 0 6px; padding: 0;
  border: 1px solid #2eafbb; border-radius: 4px; background: #2eafbb;
  color: #fff; font-size: 18px; line-height: 48px; cursor: pointer;
}
.pp-submit.disable-btn { border-color: #dbdbdb; background: #f5f5f5; color: #c5c8ce; cursor: pointer; }
.pp-submit:disabled { border-color: #dbdbdb; background: #f5f5f5; color: #c5c8ce; cursor: not-allowed; }
.pp-under { margin: 0; font-size: 13px; line-height: 34px; color: #666; }
.pp-under a { color: #1866c8; text-decoration: none; cursor: pointer; }
.pp-tips { margin-top: 10px; padding: 15px 20px; background: #2fafbc; color: #fff; line-height: 1.4; position: relative; }
.pp-tips h2 { margin: 0; width: calc(100% - 24px); font-size: 16px; font-weight: 400; line-height: 1.4; white-space: nowrap; }
.pp-tips .pp-tg { position: absolute; right: 12px; top: 16px; line-height: 1; color: #fff; font-size: 18px; transform: rotate(90deg); }
.pp-footer { padding: 10px 0 5px; background: #fff; text-align: center; color: #666; font-size: 14px; line-height: 26px; }
.pp-footer a { color: #666; text-decoration: none; cursor: pointer; }
.pp-footer .pp-fl { margin-top: 5px; }
.pp-footer .pp-fl a { margin: 0 16px; }
.pp-lang { display: inline-block; height: 21px; margin-top: 10px; border: 1px solid #767676; border-radius: 0; outline: none; background: #fff; color: #666; font-size: 14px; padding: 0; }

/* ===== 通用弹窗（注册成功引导 / 提示） ===== */
#chsiModal { position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; }
.modal-mask { position: absolute; inset: 0; background: rgba(0,0,0,.45); }
.modal-card { position: relative; width: 80%; max-width: 320px; background: #fff; border-radius: 12px; overflow: hidden; box-shadow: 0 8px 30px rgba(0,0,0,.2); animation: modalIn .18s ease; }
@keyframes modalIn { from { transform: translateY(8px) scale(.96); opacity: 0; } to { transform: none; opacity: 1; } }
.modal-title { padding: 16px 16px 4px; font-size: 17px; font-weight: 700; color: #1a1a1a; }
.modal-body { padding: 6px 16px 14px; font-size: 14px; line-height: 1.6; color: #444; }
.modal-body b { color: #00bac7; }
.modal-actions { display: flex; border-top: 1px solid #eee; }
.modal-btn { flex: 1; padding: 13px 0; border: none; background: #f7f7f7; color: #555; font-size: 15px; cursor: pointer; }
.modal-btn + .modal-btn { border-left: 1px solid #eee; }
.modal-btn.primary { background: #00bac7; color: #fff; font-weight: 600; }
.modal-btn:active { filter: brightness(.96); }

/* ===== 管理员编辑用户弹窗 ===== */
#chsiEditModal { position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; }
#chsiCreateModal { position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; }
.edit-card { position: relative; width: 86%; max-width: 340px; max-height: 84vh; overflow-y: auto; background: #fff; border-radius: 12px; box-shadow: 0 8px 30px rgba(0,0,0,.25); animation: modalIn .18s ease; }
.edit-title { padding: 15px 16px 8px; font-size: 16px; font-weight: 700; color: #1a1a1a; border-bottom: 1px solid #f0f0f0; }
.edit-body { padding: 12px 16px; }
.ef-label { display: block; font-size: 12px; color: #888; margin: 10px 0 4px; }
.ef-label:first-child { margin-top: 0; }
.ef-input { width: 100%; box-sizing: border-box; padding: 9px 10px; font-size: 14px; border: 1px solid #ddd; border-radius: 8px; background: #fafafa; color: #222; }
.ef-input:focus { border-color: #00bac7; background: #fff; outline: none; }
.edit-actions { display: flex; border-top: 1px solid #eee; }
.edit-actions .modal-btn { padding: 13px 0; font-size: 15px; }
.edit-actions .modal-btn:disabled { opacity: .6; }

/* ===== 管理员上传学生照片 ===== */
.ef-photo-row { display: flex; gap: 10px; align-items: center; margin-top: 4px; }
.ef-photo { width: 60px; height: 80px; border-radius: 6px; background: #f2f3f5; overflow: hidden; display: flex; align-items: center; justify-content: center; flex: none; }
.ef-photo img { width: 100%; height: 100%; object-fit: cover; display: none; }
.ef-photo span { font-size: 11px; color: #aaa; }
.ef-photo-ops { flex: 1; min-width: 0; }
.ef-photo-ops input[type=file] { font-size: 12px; max-width: 100%; }
.ef-photo-tip { font-size: 11px; color: #aaa; margin-top: 4px; }
.ef-photo-status { font-size: 11px; color: #2f9e63; margin-top: 2px; min-height: 14px; }

/* 学籍卡照片（管理员上传后替换占位图形） */
.pbox img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ===== 管理员「我的」页：与学生界面区分 ===== */
.profile-badge { display: inline-block; margin-left: 8px; padding: 1px 7px; border-radius: 9px; background: #e6f7f9; color: #00a8b5; font-size: 11px; font-weight: 600; vertical-align: middle; }
.avatar.admin { background: linear-gradient(135deg, #2fafbc, #00a8b5); color: #fff; }
.admin-stat { padding: 4px 0; }
.admin-stat .as-item { display: flex; justify-content: space-between; padding: 8px 16px; font-size: 14px; }
.admin-stat .as-item + .as-item { border-top: 1px solid #f2f2f2; }
.admin-stat .as-k { color: #888; }
.admin-stat .as-v { color: #222; font-weight: 600; }

/* 登录/注册表单校验失败红框 */
.pp-ipt.bad, .pp-input.bad { border-color: #e05a5a; background: #fff7f7; }

/* ===== 学生认证页 ===== */
.verify-status { margin: 14px 12px; background: #fff; border-radius: 12px; overflow: hidden; box-shadow: 0 1px 6px rgba(0,0,0,.06); }
.verify-badge { display: flex; align-items: center; gap: 12px; padding: 18px 16px; background: linear-gradient(135deg,#00bac7,#0bd1c0); color: #fff; }
.verify-badge .vb-ico { width: 44px; height: 44px; border-radius: 50%; background: rgba(255,255,255,.22); display: flex; align-items: center; justify-content: center; font-size: 22px; }
.verify-badge .vb-t { font-size: 16px; font-weight: 700; }
.verify-badge .vb-s { font-size: 12px; opacity: .9; }
.verify-rows { padding: 4px 16px 14px; }
.verify-rows .vr { display: flex; justify-content: space-between; padding: 11px 0; border-bottom: 1px solid #f2f2f2; font-size: 14px; }
.verify-rows .vr:last-child { border-bottom: none; }
.verify-rows .vr .k { color: #888; }
.verify-rows .vr .v { color: #222; font-weight: 600; }
#vfDone { width: calc(100% - 32px); margin: 4px 16px 16px; }

/* 管理员操作成功提示（轻量 Toast，1.8 秒自动消失） */
.chsi-toast {
  position: fixed; z-index: 9999; left: 50%; bottom: 48px;
  transform: translate(-50%, 8px); max-width: 80%;
  padding: 9px 18px; border-radius: 18px;
  background: rgba(30,36,48,.92); color: #fff; font-size: 13px; line-height: 1.4;
  opacity: 0; pointer-events: none;
  transition: opacity .18s ease, transform .18s ease;
}
.chsi-toast.show { opacity: 1; transform: translate(-50%, 0); }
/* 新版本提示条：只提示，不自动刷新，点按钮才拉新 */
#verBar {
  position: fixed; z-index: 9998; left: 0; right: 0; top: 0;
  display: none; align-items: center; justify-content: center; gap: 8px;
  padding: 9px 14px; font-size: 12px; line-height: 1.5; text-align: center;
  color: #fff; background: #26b887; box-shadow: 0 1px 6px rgba(0,0,0,.2);
}
#verBar button { border: 1px solid rgba(255,255,255,.7); background: rgba(255,255,255,.2); color: #fff; border-radius: 4px; padding: 2px 8px; font-size: 12px; cursor: pointer; }
/* 服务掉线提示条（后端没起来 / 正在热重启时自动出现，恢复后消失） */
#downBar {
  position: fixed; z-index: 9999; left: 0; right: 0; top: 0;
  padding: 9px 14px; font-size: 12px; line-height: 1.5; text-align: center;
  color: #fff; background: #e0533a; box-shadow: 0 1px 6px rgba(0,0,0,.2);
}

/* ==================== 管理控制台（独立后台界面，不复用前台页面壳） ==================== */
/* 进后台时隐藏前台顶部导航（logo / 搜索 / 三横菜单），彻底和前台区分开 */
.phone.admin-mode .nav-bar { display: none; }
.phone.admin-mode { background: #f4f6f8; }
.phone.admin-mode .view[data-back="1"].active { padding: 0; }

/* ==================== 管理后台 2.0（桌面式后台，独立于学生端） ==================== */
.phone.admin-mode {
  background: #f1f4f8; margin: 0 !important; border: none !important;
  border-radius: 0 !important; box-shadow: none !important; max-width: none !important;
}
.phone.admin-mode .nav-bar { display: none; }
.phone.admin-mode .view[data-back="1"].active { padding: 0; }

.ad-shell { min-height: 100vh; display: flex; background: #f1f4f8; }
.ad-side { width: 224px; flex: none; background: #111c2e; color: #c9d4e5; display: flex; flex-direction: column; }
.ad-brand { padding: 20px 18px; display: flex; align-items: center; gap: 10px; border-bottom: 1px solid rgba(255,255,255,.08); }
.ad-logo { width: 36px; height: 36px; flex: none; border-radius: 10px; background: linear-gradient(135deg,#00bac7,#0b8f9c); display: grid; place-items: center; color: #fff; font-weight: 700; font-size: 16px; }
.ad-brand b { display: block; font-size: 15px; color: #fff; letter-spacing: .3px; }
.ad-brand small { display: block; margin-top: 3px; font-size: 11px; color: #7f8da3; }
.ad-nav { padding: 14px 10px; flex: 1; }
.ad-nav-item { display: flex; align-items: center; gap: 9px; width: 100%; padding: 11px 12px; margin-bottom: 4px; border: none; background: transparent; color: #b8c4d6; font-size: 14px; text-align: left; border-radius: 8px; cursor: pointer; }
.ad-nav-item em { font-style: normal; width: 18px; text-align: center; opacity: .8; }
.ad-nav-item.active { background: rgba(0,186,199,.16); color: #fff; }
.ad-side-foot { padding: 14px 18px; border-top: 1px solid rgba(255,255,255,.08); font-size: 12px; color: #8b99ad; }
.ad-side-foot b { display: block; color: #fff; font-size: 13px; margin: 3px 0 10px; }
.ad-out { width: 100%; border: 1px solid rgba(255,255,255,.25); background: transparent; color: #c9d4e5; padding: 6px 0; border-radius: 6px; cursor: pointer; font-size: 12px; }
.ad-out:hover { background: rgba(255,255,255,.08); }
.ad-out-top { width: auto; border-color: #dfe5ee; color: #4a5568; padding: 6px 12px; background: #fff; }
.ad-out-top:hover { background: #f7f9fc; }
.ad-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.ad-top { padding: 20px 26px; background: #fff; border-bottom: 1px solid #e6ebf2; display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.ad-top h1 { margin: 0; font-size: 19px; color: #1a2233; }
.ad-top p { margin: 4px 0 0; font-size: 12px; color: #8a94a6; }
.ad-top-right { display: flex; align-items: center; gap: 12px; flex: none; }
.ad-live { font-size: 12px; color: #0a9d7a; background: #e8f7ef; padding: 4px 10px; border-radius: 12px; white-space: nowrap; }
.ad-body { padding: 22px 26px 32px; }
.ad-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.ad-kpi { background: #fff; border: 1px solid #e6ebf2; border-radius: 10px; padding: 16px 18px; display: flex; align-items: center; gap: 14px; }
.ad-kpi-ico { width: 42px; height: 42px; flex: none; border-radius: 10px; display: grid; place-items: center; color: #fff; font-size: 12px; font-weight: 700; letter-spacing: .3px; }
.ad-kpi.c1 .ad-kpi-ico { background: linear-gradient(135deg, #00bac7, #0b8f9c); }
.ad-kpi.c2 .ad-kpi-ico { background: linear-gradient(135deg, #4f9cf9, #2c6fd1); }
.ad-kpi.c3 .ad-kpi-ico { background: linear-gradient(135deg, #2fd39b, #0a9d7a); }
.ad-kpi.c4 .ad-kpi-ico { background: linear-gradient(135deg, #f5a524, #d97706); }
.ad-kpi-txt { min-width: 0; }
.ad-kpi span { font-size: 12px; color: #7f8a9d; }
.ad-kpi b { display: block; margin-top: 4px; font-size: 24px; line-height: 1.1; color: #111c2e; }
.ad-kpi em { font-style: normal; font-size: 11px; color: #9aa5b5; }
.ad-mode { font-size: 10px; font-weight: 500; color: #64748b; background: #eef2f7; padding: 2px 6px; border-radius: 8px; margin-left: 6px; vertical-align: 2px; }
.ad-panel { background: #fff; border: 1px solid #e6ebf2; border-radius: 10px; overflow: hidden; }
.ad-panel-head { padding: 12px 16px; border-bottom: 1px solid #eef2f7; font-size: 13px; color: #1a2233; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.ad-link { margin-left: auto; border: none; background: none; color: #00a8b5; font-size: 12px; cursor: pointer; padding: 0; }
.ad-link:hover { color: #008a96; }
.ad-log-panel { margin-top: 14px; }
.ad-log-sum { display: flex; align-items: center; gap: 10px; font-size: 12px; color: #7f8a9d; }
.ad-log-sum em { font-style: normal; font-weight: 600; }
.ad-log-sum em.ok { color: #0a9d7a; }
.ad-log-sum em.warn { color: #d14343; }
.ad-log-head, .ad-log-row { display: grid; grid-template-columns: 136px 1.2fr .9fr 1.3fr; gap: 10px; align-items: center; padding: 10px 16px; font-size: 12px; }
.ad-log-head { background: #f7f9fc; color: #7f8a9d; border-bottom: 1px solid #eef2f7; }
.ad-log-row { color: #4a5568; border-bottom: 1px solid #f0f3f8; }
.ad-log-row:last-child { border-bottom: none; }
.ad-log-row span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ad-log-why { margin-left: 6px; font-style: normal; color: #b45309; }
.ad-env { margin-top: 14px; padding: 12px 16px; background: #fff; border: 1px solid #e6ebf2; border-radius: 10px; display: flex; flex-wrap: wrap; gap: 6px 26px; font-size: 12px; color: #7f8a9d; }
.ad-env b { color: #3d4a5c; font-weight: 600; }
.ad-toolbar { display: flex; gap: 10px; align-items: center; margin-bottom: 14px; flex-wrap: wrap; }
.ad-search { flex: 1; min-width: 180px; height: 38px; border: 1px solid #dfe5ee; border-radius: 8px; background: #fff; padding: 0 12px; font-size: 13px; outline: none; }
.ad-search:focus { border-color: #00bac7; }
.ad-select { height: 38px; border: 1px solid #dfe5ee; border-radius: 8px; background: #fff; padding: 0 10px; font-size: 13px; color: #444; outline: none; }
.ad-primary { height: 38px; padding: 0 16px; border: none; border-radius: 8px; background: #00a8b5; color: #fff; font-size: 13px; cursor: pointer; white-space: nowrap; }
.ad-primary:hover { background: #009aa6; }
.ad-users { background: #fff; border: 1px solid #e6ebf2; border-radius: 10px; overflow: hidden; }
.ad-users-head, .ad-user { display: grid; grid-template-columns: minmax(150px,1.3fr) 1.05fr .9fr 1.05fr 1.2fr 82px 172px; gap: 10px; align-items: center; }
.ad-users-head { padding: 11px 16px; background: #f7f9fc; font-size: 12px; color: #7f8a9d; border-bottom: 1px solid #eef2f7; }
.ad-user { padding: 13px 16px; border-bottom: 1px solid #f0f3f8; font-size: 13px; color: #4a5568; }
.ad-user:last-child { border-bottom: none; }
.ad-u-main b { display: block; font-size: 14px; color: #182234; font-weight: 600; }
.ad-u-main small { display: block; margin-top: 3px; font-size: 12px; color: #8a94a6; }
.ad-u-cell { font-size: 12px; color: #6b7688; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ad-u-sub { display: block; margin-top: 2px; font-size: 11.5px; font-style: normal; color: #9aa5b5; }
.ad-u-actions { display: flex; gap: 6px; justify-content: flex-end; flex-wrap: wrap; }
.ad-btn { border: 1px solid #dfe5ee; background: #fff; color: #4a5568; font-size: 12px; padding: 5px 10px; border-radius: 6px; cursor: pointer; white-space: nowrap; }
.ad-btn:hover { background: #f7f9fc; }
.ad-btn.danger { color: #d14343; border-color: #f0c4c4; }
.ad-btn.success { color: #0a9d7a; border-color: #b8e6d5; }
.ad-del-pop { position: fixed; z-index: 900; width: 190px; box-sizing: border-box; background: #fff; border: 1px solid #e6ebf2; border-radius: 8px; box-shadow: 0 10px 28px rgba(15,25,40,.18); padding: 10px 12px; }
.ad-del-txt { font-size: 12px; color: #4a5568; line-height: 1.5; }
.ad-del-act { display: flex; justify-content: flex-end; gap: 6px; margin-top: 8px; }
.ad-tag { font-size: 11px; padding: 2px 8px; border-radius: 10px; display: inline-block; white-space: nowrap; }
.ad-tag.ok { color: #0a9d7a; background: #e8f7ef; }
.ad-tag.disabled { color: #d14343; background: #fdecec; }
/* 名字后面的状态标签：仅移动端显示 */
.ad-name-tag { display: none; }
.ad-empty { padding: 44px 20px; text-align: center; color: #98a2b3; font-size: 13px; }
.ad-create-card { width: 92%; max-width: 560px; }

/* ---- 管理员登录页（独立设计，与学生端学信网登录页完全不同） ---- */
.adm-login {
  min-height: 100vh; box-sizing: border-box; padding: 28px 20px;
  display: flex; align-items: center; justify-content: center;
  background:
    radial-gradient(900px 480px at 12% 8%, rgba(0, 168, 181, .22) 0%, transparent 62%),
    linear-gradient(135deg, #0c1626 0%, #122134 52%, #0a2f3a 100%);
}
.adm-login-card {
  width: 380px; max-width: 100%; background: #fff; border-radius: 14px;
  padding: 30px 28px 26px; box-sizing: border-box;
  box-shadow: 0 24px 64px rgba(4, 11, 22, .45);
}
.adm-login-h { margin: 0 0 20px; font-size: 19px; font-weight: 600; color: #16233a; }
.adm-login-tip {
  margin: 0 0 16px; padding: 9px 12px; border-radius: 8px;
  background: #fff6e5; border: 1px solid #ffe3b3; color: #97661b;
  font-size: 12.5px; line-height: 1.6;
}
.adm-login-input {
  width: 100%; height: 44px; box-sizing: border-box; margin-bottom: 12px; padding: 0 12px;
  border: 1px solid #dbe2ec; border-radius: 8px; background: #fbfcfe;
  font-size: 14px; color: #1b2434; outline: none;
  transition: border-color .15s, box-shadow .15s, background .15s;
}
.adm-login-input:focus { border-color: #00a8b5; background: #fff; box-shadow: 0 0 0 3px rgba(0, 168, 181, .12); }
.adm-login-err { min-height: 18px; margin: -2px 0 10px; font-size: 13px; color: #e5484d; }
.adm-login-btn {
  width: 100%; height: 46px; border: none; border-radius: 8px;
  background: #00a8b5; color: #fff; font-size: 15px; letter-spacing: 2px;
  cursor: pointer; transition: background .15s;
}
.adm-login-btn:hover { background: #009aa6; }
.adm-login-btn:disabled { opacity: .65; cursor: default; }
@media (max-width: 480px) {
  .adm-login { padding: 18px 14px; }
  .adm-login-card { padding: 24px 22px 22px; }
  .adm-login-h { font-size: 18px; }
}

@media (max-width: 900px) {
  .ad-shell { flex-direction: column; }
  .ad-side { width: 100%; flex-direction: row; align-items: center; padding: 0 10px; }
  .ad-brand { padding: 10px 6px; border-bottom: none; }
  .ad-brand small { display: none; }
  .ad-nav { display: flex; padding: 0; margin-left: auto; }
  .ad-nav-item { width: auto; padding: 8px 10px; margin: 0; font-size: 13px; }
  .ad-side-foot { display: none; }
  .ad-top { padding: 12px 16px; flex-wrap: wrap; gap: 8px 10px; }
  .ad-top > div:first-child { flex: 1 1 100%; min-width: 0; }
  .ad-top h1 { font-size: 17px; display: inline-flex; align-items: center; white-space: nowrap; }
  .ad-top p { display: none; }
  .ad-mode { white-space: nowrap; }
  .ad-top-right { width: 100%; gap: 8px; flex-wrap: wrap; }
  .ad-body { padding: 14px 16px 24px; }
  .ad-kpis { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .ad-kpi { padding: 13px 14px; gap: 10px; }
  .ad-kpi-ico { width: 36px; height: 36px; font-size: 11px; }
  .ad-kpi b { font-size: 22px; }
  .ad-log-head { display: none; }
  .ad-log-row { grid-template-columns: 128px 1fr 96px; padding: 10px 16px; }
  .ad-log-row span:nth-child(3) { display: none; }
  .ad-env { margin-top: 10px; gap: 6px 14px; padding: 12px 16px; }
  .ad-toolbar { gap: 8px; }
  .ad-search { min-width: 100%; }
  .ad-users-head { display: none; }
  .ad-user { display: block; position: relative; padding: 14px 88px 14px 16px; }
  .ad-u-main b { font-size: 15px; display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
  .ad-u-main small { margin-top: 4px; }
  .ad-name-tag { display: inline-block; font-size: 12px; padding: 3px 10px; border-radius: 12px; font-style: normal; font-weight: 400; }
  .ad-u-cell { display: flex; align-items: baseline; gap: 4px; margin-top: 8px; white-space: normal; }
  .ad-u-cell::before { content: attr(data-label) '：'; flex: 0 0 64px; color: #9aa5b5; }
  .ad-u-cell .ad-u-sub { display: inline; margin: 0 0 0 8px; }
  .ad-u-status { display: none; }
  .ad-u-actions { position: absolute; right: 12px; top: 14px; margin: 0; flex-direction: column; align-items: stretch; gap: 14px; }
  .ad-u-actions .ad-btn { min-width: 50px; padding: 4px 8px; font-size: 12px; line-height: 18px; border-radius: 5px; }
}

/* ==================== 个人测评（学职平台风格） ==================== */
.cp { background: #f5f6f8; }
.cp-top { display: flex; align-items: center; justify-content: space-between; padding: 9px 14px; background: #fff; }
.cp-brand { display: flex; align-items: center; gap: 7px; }
.cp-brand i { width: 22px; height: 22px; border-radius: 6px; background: linear-gradient(135deg, #f7b500, #f27a00); color: #fff; font-size: 12px; font-weight: 700; font-style: normal; display: grid; place-items: center; }
.cp-brand b { font-size: 16px; color: #1b2434; letter-spacing: .5px; }
.cp-tools { display: flex; gap: 14px; color: #4a5568; }
.cp-tools .cp-tool { width: 22px; height: 22px; padding: 0; border: 0; background: none; color: #4a5568; display: grid; place-items: center; cursor: pointer; }
.cp-banner { position: relative; height: 150px; display: flex; flex-direction: column; align-items: center; justify-content: center; color: #fff; background: #4a9bd0 url(../assets/cdn/cover/campus.jpg) center/cover; overflow: hidden; }
.cp-banner::before { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,110,170,.24), rgba(0,55,100,.58)); }
.cp-banner b { position: relative; font-size: 24px; letter-spacing: 2px; text-shadow: 0 2px 8px rgba(0,0,0,.35); }
.cp-banner em { position: relative; font-style: normal; margin-top: 6px; font-size: 13px; opacity: .95; }
.cp-sec { display: flex; align-items: center; justify-content: space-between; padding: 14px 14px 8px; background: #fff; }
.cp-sec h3 { margin: 0; font-size: 15px; font-weight: 600; color: #1b2434; }
.cp-more { font-style: normal; font-size: 12px; color: #9aa5b5; cursor: pointer; }
.cp-cards { display: flex; gap: 8px; padding: 0 14px 14px; background: #fff; }
.cp-card { flex: 1; min-width: 0; cursor: pointer; }
.cp-card img { width: 100%; height: 74px; object-fit: cover; border-radius: 6px; display: block; }
.cp-card span { display: block; margin-top: 7px; font-size: 12px; color: #333; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cp-promos { display: flex; gap: 8px; padding: 10px 14px; background: #fff; }
.cp-promo { flex: 1; min-width: 0; border-radius: 8px; padding: 12px; color: #fff; min-height: 66px; box-sizing: border-box; display: flex; flex-direction: column; justify-content: center; }
.cp-promo b { font-size: 14px; }
.cp-promo em { font-style: normal; margin-top: 8px; font-size: 11.5px; background: rgba(255,255,255,.26); border-radius: 10px; padding: 2px 8px; align-self: flex-start; }
.cp-promo.p1 { background: linear-gradient(135deg, #5468ff, #8f5cf6); }
.cp-promo.p2 { background: linear-gradient(135deg, #4d8bff, #2f5fd0); }
.cp-tabs { display: flex; gap: 14px; padding: 12px 14px 0; background: #fff; border-top: 6px solid #f5f6f8; font-size: 12.5px; color: #666; overflow-x: auto; }
.cp-tabs span { flex: none; padding-bottom: 8px; border-bottom: 2px solid transparent; cursor: pointer; }
.cp-tabs span.on { color: #26b887; border-bottom-color: #26b887; font-weight: 600; }
.cp-sort { display: flex; justify-content: flex-end; gap: 14px; padding: 8px 14px; background: #fff; border-bottom: 1px solid #f0f2f5; font-size: 12px; color: #8a94a6; }
.cp-sort span { cursor: pointer; }
.cp-sort span.on { color: #26b887; font-weight: 600; }
.cp-list { padding: 0 14px 12px; background: #fff; }
.cp-item { display: flex; gap: 10px; padding: 12px 0; border-bottom: 1px solid #f2f4f7; }
.cp-item:last-child { border-bottom: none; }
.cp-item img { width: 74px; height: 52px; object-fit: cover; border-radius: 5px; flex: none; }
.cp-item-txt { flex: 1; min-width: 0; }
.cp-item-txt b { display: block; font-size: 13px; color: #1b2434; }
.cp-item-txt i { font-style: normal; margin-left: 6px; font-size: 10.5px; color: #f08a00; background: #fff4e2; padding: 1px 5px; border-radius: 5px; }
.cp-item-txt p { margin: 6px 0 0; font-size: 11.5px; color: #8a94a6; }

/* ==================== 求职招聘（就业服务平台风格） ==================== */
.zj { background: #f3f6fb; }
.zj-top { background: linear-gradient(180deg, #2f7ae5, #1f5bc4); color: #fff; padding: 8px 14px 16px; }
.zj-gov { display: flex; align-items: center; justify-content: space-between; font-size: 10.5px; opacity: .95; }
.zj-gov em { font-style: normal; }
.zj-loc { display: flex; align-items: center; justify-content: space-between; margin-top: 10px; font-size: 11.5px; }
.zj-loc .zj-loc-btn { display: flex; align-items: center; gap: 4px; padding: 0; border: 0; background: none; color: #fff; font: inherit; cursor: pointer; }
.zj-brand { display: flex; align-items: center; gap: 10px; margin-top: 14px; }
.zj-brand i { width: 34px; height: 34px; border-radius: 50%; background: #fff; color: #1f5bc4; font-style: normal; font-weight: 700; font-size: 13px; display: grid; place-items: center; }
.zj-brand b { font-size: 19px; letter-spacing: .5px; }
.zj-search { display: flex; align-items: center; gap: 8px; width: 100%; margin-top: 12px; padding: 9px 14px; border: 0; border-radius: 18px; background: #fff; color: #8a94a6; font-size: 12.5px; font-family: inherit; text-align: left; cursor: pointer; }
.zj-search svg { flex: none; }
.zj-banner { margin: 10px 12px 0; height: 120px; border-radius: 8px; padding: 0 18px; box-sizing: border-box; display: flex; flex-direction: column; justify-content: center; color: #fff;
  background: linear-gradient(90deg, rgba(16,72,178,.86), rgba(42,120,220,.5)), url(../assets/cdn/cover/employment.jpg) center/cover; }
.zj-banner em { font-style: normal; font-size: 12px; }
.zj-banner b { margin-top: 6px; font-size: 23px; letter-spacing: 1px; }
.zj-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px 4px; background: #fff; margin: 10px 12px 0; border-radius: 8px; padding: 16px 8px; }
.zj-nav { display: flex; flex-direction: column; align-items: center; gap: 6px; font-size: 11.5px; color: #333; }
.zj-nav i { width: 30px; height: 30px; border-radius: 8px; background: #eef4ff; color: #2f7ae5; font-style: normal; font-size: 12px; font-weight: 600; display: grid; place-items: center; }
.zj-pills { display: flex; flex-direction: column; gap: 8px; padding: 12px; }
.zj-pill { display: block; text-align: center; padding: 11px 0; border-radius: 22px; background: #2f7ae5; color: #fff; font-size: 13.5px; }
.zj-pill.ghost { background: #fff; color: #2f7ae5; border: 1px solid #bcd4f7; }
.zj-sec { display: flex; align-items: center; justify-content: space-between; padding: 10px 14px 6px; }
.zj-sec h3 { margin: 0; font-size: 14px; color: #1b2434; }
.zj-sec span { font-size: 11.5px; color: #8a94a6; cursor: pointer; }
.zj-jobs { padding: 0 12px 12px; }
.zj-job { background: #fff; border-radius: 8px; padding: 12px 14px; margin-bottom: 8px; }
.zj-job-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.zj-job-top b { font-size: 13.5px; color: #1b2434; }
.zj-job-top em { font-style: normal; font-size: 13px; color: #f56c2d; font-weight: 600; }
.zj-job p { margin: 6px 0 8px; font-size: 11.5px; color: #7f8a9d; }
.zj-tags { display: flex; gap: 6px; }
.zj-tags i { font-style: normal; font-size: 10.5px; color: #5a6b85; background: #f2f5fa; padding: 2px 7px; border-radius: 8px; }

/* ==================== 我的（对齐官网：绿色顶栏 + 学信档案 logo + 退出） ==================== */
.phone.me-mode .nav-bar { background: #26b887; border-bottom: none; }
.phone.me-mode .nav-bar .nb-ico, .phone.me-mode .nb-title { color: #fff; }
.phone.me-mode .view[data-back="1"].active { padding: 0; }
.me-page { display: flex; flex-direction: column; background: #fff; }
.me-main { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; padding-bottom: 64px; }
.me-logo { width: 168px; max-width: 56%; display: block; }
.me-out { width: 168px; height: 42px; margin-top: 34px; border: none; border-radius: 2px; background: #26b887; color: #fff; font-size: 15px; cursor: pointer; }
.me-out:active { background: #1f9e74; }
