/* 学员端 H5 · 设计系统 2.0 · 极简主义 + 品牌渐变 */
:root{
  /* 品牌 */
  --brand:#F26D21; --brand-2:#E0501A; --brand-deep:#C8430F;
  --brand-l:#FFF1E8; --brand-ll:#FFF8F3; --brand-soft2:#FFE2CC;
  --brand-grad:linear-gradient(135deg,#FFA45C 0%,#F26D21 52%,#E0501A 100%);
  --brand-grad-soft:linear-gradient(135deg,#FFF4EC 0%,#FFE6D2 100%);
  /* 中性 */
  --bg:#F6F4F1; --bg-2:#EFECE7; --card:#fff; --t1:#1B1A18; --t2:#6C6A66; --t3:#A6A39E; --line:#EEEAE4; --line2:#F4F1EC;
  /* 语义 */
  --green:#2E8B57; --green-l:#E7F4EC; --red:#D9534F; --red-l:#FCEAE9;
  --blue:#3A6EA5; --blue-l:#EDF3FA; --gold:#C9962B; --gold-l:#FBF1DC;
  /* 形状与阴影 */
  --r-lg:18px; --r:14px; --r-sm:10px; --r-pill:999px;
  --shadow-sm:0 1px 3px rgba(28,22,16,.05);
  --shadow:0 6px 20px rgba(28,22,16,.07);
  --shadow-lg:0 14px 40px rgba(28,22,16,.12);
  --shadow-brand:0 8px 22px rgba(242,109,33,.30);
  --tabbar:58px; --nav:48px;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
body{background:#EDEAE6;color:var(--t1);font:15px/1.6 -apple-system,"PingFang SC","Microsoft YaHei",sans-serif}
button,input,select,textarea{font:inherit;color:inherit;outline:none}
a{color:inherit;text-decoration:none}

/* 手机壳 */
.phone{max-width:420px;margin:0 auto;min-height:100vh;background:var(--bg);position:relative;box-shadow:0 0 0 1px #E5E1DC}
@media(min-width:768px){.phone{margin:0 auto;border-left:1px solid #E8E4DF;border-right:1px solid #E8E4DF}}

/* 导航栏（毛玻璃 + 轻投影） */
.nav{height:var(--nav);background:rgba(255,255,255,.82);backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 12px;
  position:sticky;top:0;z-index:50;font-size:16px;font-weight:600}
.nav .back{width:28px;color:var(--t2);cursor:pointer;line-height:1;display:flex;align-items:center;justify-content:center}
.nav .back svg{width:8px;height:14px;display:block}
.nav .title{flex:1;text-align:center}
.nav .right{width:56px;text-align:right;font-size:13px;color:var(--brand);font-weight:600}
.nav.grad{background:var(--brand-grad);color:#fff;border-bottom:none;box-shadow:var(--shadow-brand)}
.nav.grad .back,.nav.grad .right{color:#fff}

/* TabBar（毛玻璃 + 选中光晕） */
.tabbar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:420px;height:var(--tabbar);
  background:rgba(255,255,255,.9);backdrop-filter:saturate(180%) blur(16px);-webkit-backdrop-filter:saturate(180%) blur(16px);
  border-top:1px solid var(--line);display:flex;z-index:60;padding-bottom:env(safe-area-inset-bottom,0)}
.tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  font-size:10.5px;color:var(--t3);position:relative;transition:.2s}
.tabbar a.on{color:var(--brand)}
.tabbar a.on::before{content:"";position:absolute;top:7px;width:30px;height:30px;border-radius:50%;background:var(--brand-l);z-index:-1}
.tabbar svg{width:22px;height:22px}
.tabbar a.on svg{transform:translateY(-1px)}
.page{padding-bottom:calc(var(--tabbar) + 14px);min-height:100vh}
.page.full{padding-bottom:20px}

/* 通用 */
.card{background:#fff;border-radius:var(--r);margin:10px 14px;padding:16px;box-shadow:var(--shadow-sm);border:1px solid var(--line2)}
.card.nm{margin:10px 14px;padding:0}
.card.bare{padding:0;overflow:hidden}
.row{display:flex;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid var(--line);background:#fff}
.row:last-child{border-bottom:none}
.row .arrow{margin-left:auto;color:#D0D0D0}
.sec-title{font-size:13px;font-weight:700;color:var(--t1);padding:18px 16px 8px;display:flex;align-items:center;gap:8px;letter-spacing:.3px}
.sec-title::before{content:"";width:3px;height:14px;border-radius:2px;background:var(--brand-grad)}
.sec-title .more{margin-left:auto;font-size:12px;font-weight:500;color:var(--t3)}
.muted{color:var(--t3)}
.small{font-size:12.5px}
.t2{color:var(--t2)}

/* 首页顶部 Banner 轮播图 */
.banner{position:relative;margin:10px 14px;border-radius:var(--r);overflow:hidden;background:#fff;box-shadow:var(--shadow-sm)}
.banner-track{display:flex;transition:transform .4s ease}
.banner-slide{flex:0 0 100%;position:relative;aspect-ratio:16/9;cursor:pointer}
.banner-img{width:100%;height:100%;object-fit:cover;display:block}
.banner-color{width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;
  padding:0 22px;font-size:16px;font-weight:600;color:var(--brand);line-height:1.5}
.banner-cap{position:absolute;left:0;right:0;bottom:0;padding:10px 14px;color:#fff;font-size:13px;font-weight:500;
  background:linear-gradient(transparent,rgba(0,0,0,.5))}
.banner-dots{position:absolute;right:10px;bottom:8px;display:flex;gap:5px;z-index:2}
.banner-dots i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.6);transition:width .2s}
.banner-dots i.on{background:#fff;width:14px;border-radius:3px}

.btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:12px 16px;border-radius:var(--r-sm);border:1px solid transparent;
  background:var(--brand-grad);color:#fff;font-size:14.5px;font-weight:600;cursor:pointer;width:100%;box-shadow:var(--shadow-brand);transition:transform .12s}
.btn:active{transform:scale(.98)}
.btn.ghost{background:#fff;color:var(--t1);border-color:var(--line2);box-shadow:none}
.btn.ghost.pri{color:var(--brand);border-color:var(--brand-soft2);background:var(--brand-l)}
.btn.sm{padding:9px 14px;font-size:12.5px;width:auto;display:inline-flex;border-radius:var(--r-pill)}
.btn.danger{background:#fff;color:var(--red);border-color:#F0D5D2;box-shadow:none}
.mask{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:200;display:flex;align-items:flex-end;justify-content:center}
.sheet{width:100%;max-width:420px;background:#fff;border-radius:18px 18px 0 0;padding:20px 18px;max-height:84vh;overflow:auto}
.toast{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:rgba(0,0,0,.82);color:#fff;
  padding:11px 20px;border-radius:8px;font-size:13px;z-index:300}

/* 头像 */
.av{border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--bg-2);color:#9A9A9A;flex-shrink:0;font-weight:600;overflow:hidden}
.av.s{width:36px;height:36px;font-size:13px}
.av.m{width:46px;height:46px;font-size:15px}
.av.l{width:72px;height:72px;font-size:22px}
.av.me{background:var(--brand-grad);color:#fff}
.av img{width:100%;height:100%;object-fit:cover}

.tag{display:inline-flex;align-items:center;gap:3px;padding:3px 10px;border-radius:var(--r-pill);font-size:11.5px;line-height:1.7;font-weight:500;white-space:nowrap}
.tag.o{background:var(--brand-l);color:var(--brand)}
.tag.g{background:var(--green-l);color:var(--green)}
.tag.r{background:var(--red-l);color:var(--red)}
.tag.n{background:var(--bg-2);color:var(--t2)}
.tag.b{background:var(--blue-l);color:var(--blue)}
.tag.gold{background:var(--gold-l);color:var(--gold)}
.tag.dark{background:#2A2622;color:#fff}

/* 表单 */
.field{margin-bottom:14px}
.field label{display:block;font-size:12px;color:var(--t2);margin-bottom:6px}
.field input,.field select,.field textarea{width:100%;padding:11px 12px;border:1px solid var(--line2);border-radius:var(--r-sm);background:#fff;font-size:14px;transition:border-color .15s,box-shadow .15s}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(242,109,33,.12)}
.bselect{flex:1;min-width:0;padding:10px 6px;border:1px solid var(--line2);border-radius:var(--r-sm);background:#fff;font-size:15px;text-align:center}
/* 新消息小红点 */
.red-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--red);vertical-align:middle;flex-shrink:0}
.tabbar a{position:relative}
.tabbar .red-dot{position:absolute;top:6px;left:calc(50% + 8px);width:9px;height:9px;box-shadow:0 0 0 2px #fff}
.seg-i.on{border-color:var(--brand)!important;color:var(--brand);background:var(--brand-l);font-weight:600}
.flex{display:flex;gap:10px}
.flex>*{flex:1}

/* 列表项 */
.item{display:flex;gap:11px;padding:14px 16px;border-bottom:1px solid var(--line);background:#fff;transition:background .15s}
.item:last-child{border-bottom:none}
.item:active{background:var(--bg-2)}
.item .nm{font-weight:600;font-size:14.5px}
.item .sub{font-size:12.5px;color:var(--t2);margin-top:2px}
.item .meta{font-size:12px;color:var(--t3);margin-top:2px}

.empty{padding:46px 20px;text-align:center;color:var(--t3);font-size:13px}
.empty .big{font-size:38px;margin-bottom:10px;opacity:.35}

/* ===== 首页 Hero（新增） ===== */
.hero{background:var(--brand-grad);padding:14px 18px 56px;color:#fff;position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;right:-40px;top:-50px;width:180px;height:180px;border-radius:50%;background:rgba(255,255,255,.12)}
.hero::before{content:"";position:absolute;right:34px;bottom:-64px;width:120px;height:120px;border-radius:50%;background:rgba(255,255,255,.08)}

/* ===== 活动封面（2026-10-06 亮哥：统一 16:9 封面图；未上传时回退品牌渐变底）
   高度用 padding-bottom:56.25% 撑出 16:9 —— 兼容性优于 aspect-ratio，
   微信内置浏览器 / 老 iOS WKWebView 全都支持；子图绝对定位铺满，压住渐变与光圈。
   首页卡片 / 活动列表 / 活动详情顶部三处共用这一个类，保证比例完全一致。 ===== */
.event-cover{position:relative;overflow:hidden;background:var(--brand-grad);padding-bottom:56.25%}
.event-cover::before,.event-cover::after{content:"";position:absolute;border-radius:50%;pointer-events:none}
.event-cover::before{width:170px;height:170px;top:-70px;right:-50px;background:rgba(255,255,255,.10)}
.event-cover::after{width:110px;height:110px;bottom:-52px;left:-36px;background:rgba(255,255,255,.08)}
.event-cover>img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;display:block;z-index:2}

/* 首页「近期活动」横向行版式（2026-10-06 亮哥给的参考：左 16:9 封面缩略图，
   右侧标题一行省略 + 「10/17 周六」+ 城市；详情页/活动列表仍用全宽 .event-cover 大图）
   ⚠️ .event-cover 的 padding-bottom:56.25% 是按「包含块宽度」算的 —— 直接把它当
   flex item 用会按整行宽度算出超高比例；所以先给 .ev-row-cov 一个确定宽度（42%），
   内层 .event-cover 才能撑出正确的 16:9。 */
.ev-row{margin:10px 14px 12px;padding:12px;display:flex;align-items:stretch;gap:12px;overflow:hidden}
.ev-row:active{background:var(--bg-2)}
.ev-row-cov{flex:0 0 46%;width:46%;border-radius:var(--r-sm);overflow:hidden}
.ev-row-cov .event-cover::before{width:74px;height:74px;top:-32px;right:-22px}
.ev-row-cov .event-cover::after{width:50px;height:50px;bottom:-24px;left:-16px}
.ev-row-b{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:space-between;padding:1px 0}
.ev-row-t{font-size:15px;font-weight:600;line-height:1.4;color:var(--t1);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ev-row-ft{min-width:0}
.ev-row-d{font-size:13.5px;line-height:1.4;color:var(--t1)}
.ev-row-c{font-size:12.5px;line-height:1.4;color:var(--t3);margin-top:4px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* 活动详情：渐变背景当底，圆弧白卡压在背景之上（2026-10-06 亮哥要求：背景在圆弧模块下面，不要压在上面）
   —— 白卡上移 34px 咬进封面区，两侧各 14px 露出底色，形成「背景在下、卡片浮起」的层次 */
.event-body{position:relative;z-index:2;margin:-34px 14px 10px;border-radius:16px;
  box-shadow:0 8px 20px rgba(0,0,0,.08)}

.hero .hi{font-size:13px;opacity:.92;display:flex;align-items:center;gap:6px}
.hero .name{font-size:22px;font-weight:700;margin-top:4px}
.hero .sub{font-size:12.5px;opacity:.9;margin-top:3px}
.hero-search{margin:-38px 14px 0;position:relative;z-index:2}
.hero-search .search{margin:0;cursor:pointer}

/* 首页顶部搜索框 */
.search{background:#fff;border-radius:var(--r-pill);padding:11px 16px;display:flex;align-items:center;gap:7px;
  margin:12px 14px 4px;color:var(--t3);font-size:13.5px;box-shadow:var(--shadow);border:1px solid var(--line2)}

/* 首页「按班级找同学」搜索框 */
.home-cls{display:flex;align-items:center;gap:8px;margin:8px 14px 0;padding:9px 12px;background:#F4F4F4;
  border-radius:8px;color:var(--t3);font-size:13px;border:1px solid var(--line2)}
.home-cls .cls-pick{position:relative;flex:1}

/* 教导班级候选下拉（首页 / 名录共用；与后台 admin/style.css 同名同义，但 web 端独立维护） */
.cls-pick{position:relative}
.cls-menu{display:none;position:absolute;z-index:30;left:0;top:calc(100% + 6px);min-width:100%;max-height:300px;
  overflow:auto;background:#fff;border:1px solid var(--line2);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.12);padding:4px 0}
.cls-menu.on{display:block}
.cls-menu a{display:block;padding:9px 14px;font-size:13px;color:var(--t1);white-space:nowrap;cursor:pointer}
.cls-menu a:hover{background:#FFF3EA;color:var(--brand)}
.cls-menu .none{padding:10px 14px;font-size:13px;color:var(--muted)}

/* 我的名片快捷卡（增强：品牌描边 + 上浮阴影） */
.idcard{background:#fff;padding:14px 16px;border-radius:var(--r);box-shadow:var(--shadow);border:1px solid var(--line2);
  display:flex;align-items:center;gap:12px;position:relative;overflow:hidden;margin:10px 14px}
.idcard::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--brand-grad)}

.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:16px 14px;text-align:center}
.grid4 .ic{width:52px;height:52px;border-radius:16px;background:var(--brand-l);margin:0 auto 7px;
  display:flex;align-items:center;justify-content:center;color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand-soft2);transition:transform .15s}
.grid4 a:active .ic{transform:scale(.92)}
.grid4 .tx{font-size:12px;color:var(--t2);font-weight:500}
.hscroll{display:flex;gap:10px;padding:2px 14px 14px;overflow-x:auto}
.hscroll::-webkit-scrollbar{display:none}
.hcard{background:#fff;border-radius:var(--r);padding:14px;width:132px;flex-shrink:0;border:1px solid var(--line2);text-align:center;box-shadow:var(--shadow-sm)}

/* 进度条 */
.pbar{height:8px;background:var(--bg-2);border-radius:var(--r-pill);overflow:hidden}
.pbar i{display:block;height:100%;background:var(--brand-grad);border-radius:var(--r-pill)}

/* 名片（增强） */
.profile-head{background:var(--brand-grad);padding:26px 16px 30px;text-align:center;color:#fff;position:relative;overflow:hidden}
.profile-head::after{content:"";position:absolute;left:-30px;bottom:-50px;width:160px;height:160px;border-radius:50%;background:rgba(255,255,255,.1)}
.profile-head::before{content:"";position:absolute;right:-20px;top:-30px;width:130px;height:130px;border-radius:50%;background:rgba(255,255,255,.08)}
.tabs{display:flex;border-bottom:1px solid var(--line);background:#fff;position:sticky;top:var(--nav);z-index:40}
.tabs a{flex:1;text-align:center;padding:13px 0;font-size:13.5px;color:var(--t2);font-weight:500;position:relative}
.tabs a.on{color:var(--brand);font-weight:700}
.tabs a.on::after{content:"";position:absolute;left:50%;transform:translateX(-50%);bottom:0;width:24px;height:3px;border-radius:3px;background:var(--brand-grad)}

.footbar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:420px;
  background:rgba(255,255,255,.92);backdrop-filter:saturate(180%) blur(16px);-webkit-backdrop-filter:saturate(180%) blur(16px);
  border-top:1px solid var(--line);padding:10px 14px;display:flex;gap:10px;z-index:70;padding-bottom:calc(10px + env(safe-area-inset-bottom,0))}

/* 供需 */
.sd-tab{display:flex;gap:8px;padding:12px 14px 4px}
.sd-tab a{padding:7px 16px;border-radius:var(--r-pill);background:var(--bg-2);font-size:13px;color:var(--t2);font-weight:500}
.sd-tab a.on{background:var(--brand-grad);color:#fff;box-shadow:var(--shadow-brand)}

/* 动态 */
.moment{padding:14px 16px;border-bottom:1px solid var(--line);background:#fff}
.moment .imgs{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-top:8px}
.moment .imgs div{aspect-ratio:1;background:var(--bg-2);border-radius:6px}
.acts{display:flex;gap:20px;margin-top:10px;font-size:12.5px;color:var(--t3)}
.acts span{cursor:pointer}
.acts span.on{color:var(--brand)}
.cmt{background:var(--bg-2);border-radius:8px;padding:8px 10px;margin-top:8px;font-size:12.5px;line-height:1.7}
.cmt .r{margin-left:10px;color:var(--t2)}

/* 富文本（活动详情图文） */
.rich{color:#333;line-height:1.85;font-size:14.5px}
.rich p{margin:8px 0}
.rich h1,.rich h2,.rich h3,.rich h4{margin:14px 0 8px;font-weight:600;line-height:1.4}
.rich h2{font-size:18px}.rich h3{font-size:16px}
.rich ul,.rich ol{margin:8px 0 8px 22px;padding:0}
.rich li{margin:4px 0}
.rich blockquote{margin:10px 0;padding:6px 12px;border-left:3px solid var(--brand);color:var(--t2);background:var(--brand-l);border-radius:0 6px 6px 0}
.rich hr{border:none;border-top:1px solid var(--line);margin:14px 0}
.rich img{max-width:100%;height:auto;border-radius:8px;display:block;margin:10px 0}
.rich figure{margin:10px 0}
.rich figcaption{font-size:12px;color:var(--t3);text-align:center;margin-top:4px}
.rich a{color:var(--brand);text-decoration:underline}
.rich table{border-collapse:collapse;width:100%;margin:10px 0;font-size:13px}
.rich th,.rich td{border:1px solid var(--line2);padding:6px 8px;text-align:left}

/* 时间轴 */
.tl{position:relative;padding-left:22px;margin:4px 0}
.tl:before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:1px;background:var(--line2)}
.tl .pt{position:relative;padding-bottom:18px}
.tl .pt:before{content:"";position:absolute;left:-21px;top:5px;width:9px;height:9px;border-radius:50%;
  background:#fff;border:2px solid var(--brand)}
.tl .pt.gray:before{border-color:#DDD}

/* 产品图片管理 */
.pimg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.pimg{position:relative;aspect-ratio:1;border-radius:var(--r-sm);overflow:hidden;background:var(--bg-2)}
.pimg>img{width:100%;height:100%;object-fit:cover;display:block;cursor:pointer}
.pimg.is-pending>img{opacity:.55}
.pimg.is-rejected{box-shadow:inset 0 0 0 2px var(--red)}
.pimg.is-rejected>img{opacity:.4}
.pimg-badge{position:absolute;top:0;left:0;padding:2px 7px;font-size:10.5px;line-height:1.6;color:#fff;
  border-bottom-right-radius:7px}
.pimg-badge.w{background:var(--brand)}
.pimg-badge.e{background:var(--red)}
.pimg-ops{position:absolute;bottom:0;left:0;right:0;display:flex;background:rgba(0,0,0,.55);
  font-size:11px;color:#fff}
.pimg-ops a{flex:1;text-align:center;padding:4px 0}
.pimg-ops a+a{border-left:1px solid rgba(255,255,255,.28)}
.pimg-reason{position:absolute;top:24px;left:4px;right:4px;font-size:10px;line-height:1.45;color:#fff;
  background:rgba(217,83,79,.9);border-radius:4px;padding:3px 5px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pimg.add{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  border:1px dashed #D8D8D8;background:#fff;cursor:pointer;color:var(--t3)}
.pimg.add span{font-size:24px;line-height:1;color:#C8C8C8}
.pimg.add small{font-size:11px}
.pimg.add:active{background:var(--brand-ll)}

/* ===== 旗舰名片（新增，覆盖 profile-head 使用） ===== */
.biz{margin:0;padding:0 14px}
.biz-wrap{background:var(--card);border-radius:22px;overflow:hidden;box-shadow:var(--shadow-lg);margin-top:14px}
.biz-cover{background:var(--brand-grad);padding:26px 20px 48px;position:relative;color:#fff;text-align:center;overflow:hidden}
.biz-cover::after{content:"";position:absolute;left:-30px;bottom:-50px;width:160px;height:160px;border-radius:50%;background:rgba(255,255,255,.1)}
.biz-cover::before{content:"";position:absolute;right:-20px;top:-30px;width:130px;height:130px;border-radius:50%;background:rgba(255,255,255,.08)}
.biz-av{width:88px;height:88px;margin:0 auto;border-radius:50%;border:4px solid rgba(255,255,255,.85);
  box-shadow:0 8px 22px rgba(0,0,0,.18);position:relative;z-index:2;background:#fff;color:var(--brand);
  display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:700}
.biz-av img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.biz-name{font-size:21px;font-weight:700;margin-top:14px;display:flex;align-items:center;justify-content:center;gap:8px}
.biz-name .tag{background:rgba(255,255,255,.22);color:#fff;border:1px solid rgba(255,255,255,.4)}
.biz-cls{display:inline-block;margin-top:10px;background:rgba(255,255,255,.18);color:#fff;
  padding:5px 14px;border-radius:var(--r-pill);font-size:12.5px;border:1px solid rgba(255,255,255,.35)}
.biz-phone{margin-top:12px;display:inline-flex;align-items:center;gap:6px;background:rgba(0,0,0,.16);
  padding:7px 14px;border-radius:var(--r-pill);font-size:13.5px;font-weight:500}
.biz-body{margin-top:-26px;position:relative;z-index:3;padding:0 16px 18px}
.biz-card-white{background:var(--card);border-radius:18px;padding:18px 16px;box-shadow:var(--shadow);
  border:1px solid var(--line2);margin-bottom:12px}
.biz-com{font-size:15px;font-weight:700;display:flex;align-items:center;gap:8px}
.biz-com .job{font-size:12.5px;color:var(--t2);font-weight:500}
.biz-bio{font-size:13px;color:var(--t2);line-height:1.7;margin-top:10px}
.biz-tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}
.biz-actions{display:flex;gap:10px;margin-top:4px}
.biz-actions .btn{flex:1}

/* ===== 我的（新增） ===== */
.mine-head{background:var(--brand-grad);padding:26px 18px 30px;color:#fff;display:flex;align-items:center;gap:14px;position:relative;overflow:hidden}
.mine-head::after{content:"";position:absolute;right:-30px;top:-40px;width:150px;height:150px;border-radius:50%;background:rgba(255,255,255,.1)}
.mine-head .info .nm{font-size:20px;font-weight:700}
.mine-head .info .ln{font-size:12.5px;opacity:.92;margin-top:4px}
.mine-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:0 14px;margin-top:-18px}
.mine-stat{background:var(--card);border-radius:var(--r);padding:14px 8px;text-align:center;box-shadow:var(--shadow-sm);border:1px solid var(--line2)}
.mine-stat .v{font-size:20px;font-weight:700;color:var(--brand)}
.mine-stat .l{font-size:11.5px;color:var(--t2);margin-top:2px}
.menu{background:var(--card);border-radius:var(--r);margin:14px;box-shadow:var(--shadow-sm);border:1px solid var(--line2);overflow:hidden}
.menu .row{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line);cursor:pointer;transition:background .15s}
.menu .row:last-child{border-bottom:none}
.menu .row:active{background:var(--bg-2)}
.menu .row .ic{width:34px;height:34px;border-radius:10px;background:var(--brand-l);color:var(--brand);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:16px}
.menu .row .t{flex:1;font-size:14px;font-weight:500}
.menu .row .ar{color:var(--t3);font-size:18px}

/* ===== 筛选胶囊（新增） ===== */
.chips{display:flex;gap:8px;padding:10px 14px;overflow-x:auto;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{flex-shrink:0;padding:7px 14px;border-radius:var(--r-pill);background:var(--card);border:1px solid var(--line2);
  font-size:12.5px;color:var(--t2);white-space:nowrap;box-shadow:var(--shadow-sm)}
.chip.on{background:var(--brand-grad);color:#fff;border-color:transparent;font-weight:600}

/* ===== 引导提示条（新增） ===== */
.tip{background:var(--brand-l);border:1px solid var(--brand-soft2);border-radius:var(--r);
  margin:12px 14px;padding:13px 14px}
.tip .t{font-size:13.5px;font-weight:700;color:var(--brand)}
.tip .d{font-size:12.5px;color:var(--t2);margin-top:5px;line-height:1.7}

/* 供需卡（新增，用于墙/卡片化展示） */
.supply{background:var(--card);border-radius:var(--r);margin:10px 14px;padding:14px;box-shadow:var(--shadow-sm);border:1px solid var(--line2)}
.supply .head{display:flex;align-items:center;gap:8px}
.supply .title{font-size:15px;font-weight:600;flex:1}
.supply .who{display:flex;align-items:center;gap:8px;margin-top:10px}
.supply .who .n{font-size:12.5px;color:var(--t2)}
.supply .cats{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}

/* ===== 个人名片 Hero（2026-10-04 亮哥样式稿；类名加 cardhero- 前缀，避开首页问候条 .hero） ===== */
.cardhero{position:relative;margin:12px 12px 0;border-radius:16px;overflow:hidden;
  background:linear-gradient(135deg,#FB8A45 0%,#F26D21 52%,#E75E0F 100%);
  padding:26px 16px 64px;text-align:center;box-shadow:0 8px 22px rgba(242,109,33,.24)}
.cardhero::before,.cardhero::after{content:"";position:absolute;border-radius:50%;pointer-events:none}
.cardhero::before{width:168px;height:168px;top:-64px;right:-46px;background:rgba(255,255,255,.10)}
.cardhero::after{width:120px;height:120px;bottom:-46px;left:-38px;background:rgba(255,255,255,.08)}
.cardhero-av{position:relative;z-index:1;width:78px;height:78px;border-radius:50%;background:#fff;
  display:inline-flex;align-items:center;justify-content:center;overflow:hidden;
  font-size:30px;font-weight:700;color:var(--brand);
  box-shadow:0 6px 16px rgba(0,0,0,.16);border:3px solid rgba(255,255,255,.65)}
.cardhero-name{position:relative;z-index:1;margin-top:13px;font-size:20px;font-weight:700;color:#fff;
  display:flex;align-items:center;justify-content:center;gap:8px;text-shadow:0 1px 2px rgba(0,0,0,.10)}
.cardhero-v{display:inline-flex;align-items:center;gap:3px;background:rgba(255,255,255,.24);
  color:#fff;font-size:11.5px;font-weight:400;padding:3px 9px;border-radius:20px;line-height:1.3}
.cardhero-pills{position:relative;z-index:1;margin-top:13px;display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.cardhero-pill{display:inline-flex;align-items:center;gap:5px;background:rgba(255,255,255,.22);color:#fff;
  font-size:12.5px;padding:7px 13px;border-radius:20px;text-decoration:none;line-height:1;white-space:nowrap}
.cardhero-pill.tel{background:rgba(255,255,255,.32);font-weight:500}
.cardhero-card{position:relative;z-index:2;margin:-48px 18px 12px;background:#fff;border-radius:14px;
  padding:18px 16px;border:1px solid var(--line2);box-shadow:0 6px 18px rgba(0,0,0,.07)}
.cardhero-co{font-size:15px;font-weight:600;color:var(--t1);line-height:1.4}
.cardhero-co .jt{font-weight:400;color:var(--t2)}
.cardhero-bio{font-size:13px;color:var(--t2);line-height:1.8;margin-top:10px}
.cardhero-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.cardhero-tags .tg{background:#F4F4F4;color:var(--t2);font-size:12px;padding:5px 12px;border-radius:20px;line-height:1.4}

/* ===== 首页沿用 v1 版式（2026-10-04 亮哥要求：首页与上一個版本一模一样，其他页面不动） =====
   作用机制：app.js 在路由为 home 时给 body 挂 .route-home，
   下面把 v1（style.css.bak-20261004-133409）的变量与首页用到的组件样式还原到该作用域内。
   其他页面不带 .route-home，继续走设计系统 2.0。                                        */
body.route-home{
  --bg:#FAFAFA; --line:#F0F0F0; --line2:#F2F2F2;
  --t1:#111; --t2:#6B6B6B; --t3:#A0A0A0;
  --green:#2E8B57; --green-l:#E8F5EE; --red:#C0392B; --red-l:#FDECEA;
  --tabbar:54px; --nav:44px;
  background:#F0F0F0; color:var(--t1); font-size:14px;
}

/* 手机壳：v1 是 390 宽 + 冷灰描边 */
body.route-home .phone{max-width:390px;background:var(--bg);box-shadow:0 0 0 1px #E5E5E5}
@media(min-width:768px){body.route-home .phone{border-left:1px solid #E8E8E8;border-right:1px solid #E8E8E8}}

/* 导航栏：v1 是纯白 44px、15px/500，无毛玻璃 */
body.route-home .nav{height:var(--nav);background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none;
  border-bottom:1px solid var(--line);font-size:15px;font-weight:500}
body.route-home .nav .back{font-size:20px}
body.route-home .nav .right{width:44px;font-size:13px;font-weight:400}

/* TabBar：v1 是纯白 54px、10px 文字、无选中光晕 */
body.route-home .tabbar{max-width:390px;height:var(--tabbar);background:#fff;
  backdrop-filter:none;-webkit-backdrop-filter:none;padding-bottom:0}
body.route-home .tabbar a{font-size:10px}
body.route-home .tabbar a.on::before{display:none}
body.route-home .tabbar svg{width:21px;height:21px}
body.route-home .page{padding-bottom:calc(var(--tabbar) + 12px)}

/* 卡片 / 分区标题 / 列表项：v1 无投影、圆角 10、标题无橙色竖条 */
body.route-home .card{border-radius:10px;box-shadow:none;border:1px solid var(--line2)}
body.route-home .sec-title{font-weight:500;letter-spacing:0;display:block}
body.route-home .sec-title::before{display:none}
body.route-home .small{font-size:12px}
body.route-home .item{padding:13px 16px}
body.route-home .item .nm{font-weight:500;font-size:inherit}
body.route-home .empty{padding:50px 20px}
body.route-home .empty .big{font-size:34px;opacity:.3}

/* 搜索框：v1 是浅灰 #F4F4F4、圆角 8、无投影无描边 */
body.route-home .search{background:#F4F4F4;border-radius:8px;padding:8px 12px;margin:12px 14px 4px;
  color:var(--t3);font-size:13px;box-shadow:none;border:none}

/* Banner：v1 圆角 10、无投影 */
body.route-home .banner{border-radius:10px;box-shadow:none}

/* 我的名片快捷卡：v1 是通栏白底 + 下边框，无圆角/投影/左侧色条 */
body.route-home .idcard{background:#fff;padding:14px 16px;margin:0;border-radius:0;box-shadow:none;
  border:none;border-bottom:1px solid var(--line)}
body.route-home .idcard::before{display:none}

/* 四宫格：v1 图标 42×42 圆角 10、文字 11.5px */
body.route-home .grid4 .ic{width:42px;height:42px;border-radius:10px;margin:0 auto 6px;box-shadow:none}
body.route-home .grid4 .tx{font-size:11.5px;font-weight:400}

/* 新同学横滑卡：v1 圆角 10、内边距 12、无投影 */
body.route-home .hcard{border-radius:10px;padding:12px;box-shadow:none}

/* 标签：v1 是 2px 8px / 圆角 20 / 11px / 常规字重 */
body.route-home .tag{display:inline-block;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:400}
body.route-home .tag.n{background:#F2F2F2;color:var(--t2)}
body.route-home .tag.b{background:#EEF3FA;color:#3A6EA5}

/* 进度条：v1 高 4px、纯橙无渐变 */
body.route-home .pbar{height:4px;background:#F0F0F0;border-radius:2px}
body.route-home .pbar i{background:var(--brand);border-radius:2px}

/* 按钮：v1 纯橙、圆角 8、无投影 */
body.route-home .btn{padding:11px 16px;border-radius:8px;background:var(--brand);
  font-size:14px;font-weight:400;box-shadow:none}
body.route-home .btn:active{transform:none;opacity:.85}
body.route-home .btn.sm{padding:7px 12px;font-size:12.5px;border-radius:8px}
body.route-home .btn.ghost.pri{color:var(--brand);border-color:#F5D9C9;background:#fff}

/* 头像：v1 灰底 #F2F2F2、m=44 / s=34 */
body.route-home .av{background:#F2F2F2;font-weight:400;overflow:visible}
body.route-home .av.s{width:34px;height:34px;font-size:12px}
body.route-home .av.m{width:44px;height:44px;font-size:14px}
body.route-home .av.me{background:var(--brand);color:#fff}

/* 我的 · 邀请同学（2026-10-05f 亮哥：弱化视觉重量——白底浅橙、单行矮卡片，不再与名片撞色） */
.invite-banner{position:relative;display:flex;align-items:center;gap:11px;
  margin:12px 12px 0;padding:12px 13px;border-radius:14px;
  background:#fff;border:1px solid rgba(242,109,33,.16);
  box-shadow:0 2px 10px rgba(242,109,33,.06);
  cursor:pointer;overflow:hidden;-webkit-tap-highlight-color:transparent}
.invite-banner::before{content:"";position:absolute;width:120px;height:120px;border-radius:50%;
  top:-56px;right:-34px;pointer-events:none;
  background:radial-gradient(circle,rgba(242,109,33,.10) 0%,rgba(242,109,33,0) 70%)}
.invite-banner:active{transform:translateY(1px)}
.ib-icon{position:relative;z-index:1;flex:none;width:38px;height:38px;border-radius:12px;
  background:#FFF3EB;color:var(--brand);display:flex;align-items:center;justify-content:center}
.ib-icon svg{width:21px;height:21px}
.ib-main{position:relative;z-index:1;flex:1;min-width:0}
.ib-title{display:flex;align-items:baseline;gap:8px;font-size:15px;font-weight:600;
  color:var(--t1);letter-spacing:.2px;line-height:1.3}
.ib-meta{font-size:11px;font-weight:400;color:var(--t3)}
.ib-sub{font-size:11.5px;color:var(--t3);margin-top:3px;line-height:1.4}
.ib-cta{position:relative;z-index:1;flex:none;background:var(--brand-grad);color:#fff;
  font-size:12.5px;font-weight:600;padding:7px 13px;border-radius:999px;white-space:nowrap;
  box-shadow:0 4px 12px rgba(242,109,33,.24)}
