*{box-sizing:border-box;margin:0;padding:0}
:root{
  --brand:#1B4B8F; --brand2:#2b6bc4; --gold:#C9A063;
  --ok:#2E9E5B; --warn:#D98A1F; --err:#D93B3B;
  --bg:#11141a; --panel:#181c24; --line:#2a3040;
  --tx:#e8ecf3; --tx2:#9aa5b8; --tx3:#6b7689;
}
body{
  background:var(--bg); color:var(--tx);
  font:14px/1.6 -apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
  min-height:100vh;
}
button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}

/* ---------- 顶栏 ---------- */
.topbar{
  display:flex;align-items:center;gap:20px;
  padding:12px 22px;background:var(--panel);
  border-bottom:1px solid var(--line);
}
.brand{display:flex;align-items:center;gap:10px}
.logo{
  width:34px;height:34px;border-radius:8px;background:var(--brand);
  display:grid;place-items:center;font-size:17px;color:#fff;
}
.btxt .t1{font-size:14px;font-weight:500}
.btxt .t2{font-size:12px;color:var(--tx3)}
.roles{display:flex;gap:6px;margin-left:auto}
.roles button{
  padding:7px 14px;border-radius:7px;border:1px solid var(--line);
  background:transparent;color:var(--tx2);cursor:pointer;font-size:13px;
}
.roles button.on{background:var(--brand);border-color:var(--brand);color:#fff}
.roles .who{display:flex;flex-direction:column;align-items:flex-end;margin-right:4px;line-height:1.35}
.roles .who b{font-size:13px;color:var(--tx1);font-weight:500}
.roles .who i{font-size:11px;color:var(--tx2);font-style:normal}
.roles .hintline{font-size:11px;color:var(--tx2);align-self:center;margin-left:4px;white-space:nowrap}
.lead{font-size:12px;color:var(--tx2);line-height:1.7;margin-bottom:10px}
/* 提交前待办清单：还差哪些项一目了然，按钮置灰但不消失 */
.todo{background:#fdf8ec;border:1px solid #f0e0c0;border-radius:6px;padding:10px 12px;margin-top:10px;font-size:12.5px;color:#8a6d1f}
.todo b{display:block;margin-bottom:6px}
.todo ul{margin:0;padding-left:18px;line-height:1.9}
.btn:disabled{background:#c8ccd4;cursor:not-allowed}
.tip.err{background:#fdf7f7;border:1px solid #f0d3d3;color:#D93B3B;padding:8px 10px;border-radius:6px;font-size:12px}
.ctabs.g3{width:280px}
.clock{font-size:12px;color:var(--tx2);text-align:right;min-width:150px}
.clock b{color:var(--gold);font-weight:500}

/* ---------- 布局 ---------- */
.wrap{display:flex;gap:22px;padding:22px;align-items:flex-start;flex-wrap:wrap;justify-content:center}
.stage{background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden;position:relative}
.stage.phone{width:375px;min-height:760px;border-radius:34px;border-width:6px;border-color:#252b38}
.stage.wide{width:920px;min-height:760px}
.stage.wide .notch{display:none}
.notch{
  position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:120px;height:20px;background:#252b38;border-radius:0 0 12px 12px;z-index:3;
}
.screen{background:#f2f3f5;min-height:760px;color:#1a1a1a;position:relative}

/* 步骤条 / 缴费条 / 支付浮层 */
.steps{display:flex;align-items:flex-start;background:#fff;padding:12px 8px;border-bottom:1px solid #ececec}
.steps div{flex:1;text-align:center;font-size:11px;color:#b0b6c0}
.steps div i{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#e6e8ec;color:#999;font-style:normal;font-size:11px;margin:0 auto 4px}
.steps div.on{color:#2E9E5B}
.steps div.on i{background:#2E9E5B;color:#fff}
.steps div.cur{color:#1B4B8F;font-weight:500}
.steps div.cur i{background:#1B4B8F;color:#fff}
.steps .line{width:22px;height:1px;background:#e0e2e6;flex:none;margin-top:10px}
.steps.g4 div{font-size:10.5px}
.steps.g4 .line{width:12px}

/* C端:个人 / 团体 报名切换 */
/* ⚠ 这个页签在**两处**出现：① 蓝色 .nav 里；② **白色 .card 登录卡**里。
   原来只写了 color:#fff 没有背景，白卡里就是「白字坐白底」——「招生渠道 / 管理后台」
   两个入口肉眼几乎看不见（实测该区域平均亮度 244/255）。给它自己的蓝底，两处都成立。 */
.ctabs{display:flex;gap:0;margin-top:10px;border:1px solid rgba(255,255,255,.45);border-radius:14px;overflow:hidden;width:200px;background:var(--brand)}
.ctabs div{flex:1;text-align:center;font-size:11.5px;color:#fff;padding:5px 0;cursor:pointer;opacity:.75}
.ctabs div.on{background:#fff;color:#1B4B8F;font-weight:500;opacity:1}
/* 手机端小表格(团体名单预览) */
.mini-tb{width:100%;font-size:11px;border-collapse:collapse;margin-top:6px}
.mini-tb th{background:#fafbfc;color:#888;font-weight:400;text-align:left;padding:5px 6px;border-bottom:1px solid #ececec;white-space:nowrap}
.mini-tb td{padding:5px 6px;border-bottom:1px solid #f4f4f4;vertical-align:middle}
.mini-tb .mini{padding:2px 6px;font-size:10.5px}
/* 团体:CSV 上传区(始终可见的大点击区) */
.upcsv{position:relative;display:block;text-align:center;padding:18px 12px;border:1.5px dashed #c3cad6;border-radius:10px;background:#fafbfc;cursor:pointer;transition:.15s}
.upcsv:hover{background:#f2f6fb;border-color:#1B4B8F}
.upcsv input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.upcsv .t1{font-size:13px;font-weight:500;color:#1B4B8F;margin-top:6px}
.upcsv .t2{font-size:11px;color:#999;margin-top:3px}
/* 对公账户信息块 */
.bank{background:#fafbfc;border:1px dashed #d9dde4;border-radius:7px;padding:10px 12px;margin-bottom:10px}
/* 官方账户公示块 */
.pub{background:#fff;border:1px solid #d7e2f2;border-radius:8px;margin-bottom:10px;overflow:hidden}
.pub .phd{background:#eef3fa;border-bottom:1px solid #d7e2f2;padding:7px 12px;font-size:12px;color:#1B4B8F;font-weight:500;display:flex;align-items:center;gap:6px}
.pub .phd em{font-style:normal;font-size:10.5px;font-weight:400;color:#7d8ea6;margin-left:auto}
.pub .pb{padding:10px 12px}
.pub .acct{font-size:15px;font-weight:500;letter-spacing:.4px;color:#111;word-break:break-all}
.pub .warn{margin-top:8px;font-size:11px;color:#B8860B;background:#fdf8ec;border:1px solid #f0e0c0;border-radius:5px;padding:6px 8px;line-height:1.6}
/* 转账备注条 */
.memobar{background:#fdf8ec;border:1px solid #f0e0c0;border-radius:8px;padding:10px 12px;margin-bottom:10px}
.memobar .ml{font-size:11.5px;color:#8a6d1f}
.memobar .mv{font-size:14px;font-weight:500;color:#111;margin:5px 0 2px;word-break:break-all;letter-spacing:.3px}
.memobar .mf{font-size:11px;color:#a38b48}
/* 复制按钮 */
.cp{display:inline-block;font-size:11px;color:#1B4B8F;border:1px solid #c3d4ec;border-radius:4px;padding:1px 7px;margin-left:6px;cursor:pointer;background:#f5f8fc}
.cp:active{background:#e6eef8}
/* 报名表下载区(第 1 步可用) */
.dltpl{display:flex;align-items:center;gap:10px;padding:11px 12px;border:1px solid #d7e2f2;border-radius:8px;background:#f5f8fc;margin-bottom:10px}
.dltpl .ti{flex:1;font-size:12px;color:#333;line-height:1.6}
.dltpl .ti b{display:block;font-size:12.5px;color:#1B4B8F}
.dltpl .ti span{font-size:11px;color:#888}
.paidbar{background:#eef6f0;border:1px solid #cbe6d5;border-radius:8px;padding:10px 12px;margin-bottom:10px;font-size:13px;color:#2E9E5B;font-weight:500;display:flex;align-items:center;gap:7px}
.paidbar span{font-weight:400;font-size:11px;color:#5d8f6f;margin-left:auto}
.payov{position:absolute;inset:0;background:rgba(0,0,0,.45);display:grid;place-items:center;z-index:20}
.paybox{width:248px;background:#fff;border-radius:14px;padding:24px 18px 16px;text-align:center}
.up.done{border:1px solid #cbe6d5;background:#f6fbf7}

/* 通知入口 / 通知卡 / 复选 / 三列 */
.nbtn{position:absolute;right:12px;bottom:11px;font-size:11px;color:#fff;cursor:pointer;padding:4px 9px;border:1px solid rgba(255,255,255,.45);border-radius:12px;white-space:nowrap}
.nbtn i{display:inline-grid;place-items:center;min-width:15px;height:15px;padding:0 3px;border-radius:8px;background:#D93B3B;color:#fff;font-style:normal;font-size:10px;margin-left:4px}
.nc{border-left:3px solid var(--brand)}
.nch{font-size:14px;font-weight:500;margin-bottom:8px}
.ncm{font-size:12px;color:#555;line-height:1.9}
.ncm span{display:inline-block;width:64px;color:#999}
.ncf{font-size:11px;color:#aaa;margin-top:8px;border-top:1px solid #f2f2f2;padding-top:7px}
.ck{display:flex;align-items:center;gap:7px;font-size:13px;padding:4px 0}
.ck span{font-size:11px}
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.fld select{width:100%;padding:8px 10px;border:1px solid #d9dde4;border-radius:6px;background:#fff;color:#1a1a1a}
.fld textarea{width:100%;padding:8px 10px;border:1px solid #d9dde4;border-radius:6px;background:#fff;color:#1a1a1a;resize:vertical}

/* 开课通知:操作流程步骤块 */
.nslabel{font-size:12px;color:#999;margin:10px 0 5px}
.nsteps{white-space:pre-line;font-size:12.5px;line-height:2;color:#333;background:#fafbfc;border:1px solid #eef0f3;border-radius:7px;padding:10px 12px}
/* 已导出行弱化处理 */
tr.dim td{opacity:.55}
code{background:#f2f3f5;border-radius:3px;padding:1px 5px;font-size:11px;color:#c7254e}

/* B端:学员搜索框 */
.searchbox{position:relative;margin-bottom:8px}
.searchbox input{width:100%;padding:9px 30px 9px 12px;border:1px solid #d9dde4;border-radius:8px;background:#fff;color:#1a1a1a;box-sizing:border-box}
.searchbox .clr{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:18px;height:18px;line-height:16px;text-align:center;border-radius:50%;background:#e5e8ee;color:#888;cursor:pointer;font-size:13px}
/* B端:发票上传行 */
.invrow{display:flex;align-items:center;gap:8px;margin-top:9px;padding-top:9px;border-top:1px dashed #eef0f3;flex-wrap:wrap}
.upl{cursor:pointer;position:relative;white-space:nowrap}
.upl input{display:none}

/* ---------- 右侧说明（2026-10-22 整体下线）----------
   index.html 已删掉 <aside id="notes">，这里只保留样式兜底，
   防止历史缓存的 index.html 与新版 app.css 混搭时还冒出一条空白栏。 */
.notes,.notes[hidden]{display:none!important}
.ncard{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin-bottom:14px}
.ncard h3{font-size:13px;font-weight:500;color:var(--gold);margin-bottom:8px}
.ncard p{font-size:13px;color:var(--tx2);margin-bottom:7px}
.ncard ul{margin:0 0 4px 16px}
.ncard li{font-size:13px;color:var(--tx2);margin-bottom:5px}
.ncard li b{color:var(--tx);font-weight:500}
.tag{display:inline-block;padding:1px 7px;border-radius:4px;font-size:11px;margin-right:5px}
.tag.ok{background:rgba(46,158,91,.18);color:#5cc48b}
.tag.warn{background:rgba(217,138,31,.18);color:#e8a94a}
.tag.err{background:rgba(217,59,59,.18);color:#ef6b6b}

/* ---------- 小程序通用 ---------- */
.nav{background:var(--brand);color:#fff;padding:34px 14px 12px;text-align:center;position:sticky;top:0;z-index:2}
.nav.w{background:var(--brand);padding:12px 14px}
.nav .nt{font-size:15px;font-weight:500}
.nav .ns{font-size:11px;opacity:.75;margin-top:2px}
.body{padding:12px}
.card{background:#fff;border-radius:10px;padding:14px;margin-bottom:10px}
.card h4{font-size:14px;font-weight:500;margin-bottom:10px;display:flex;align-items:center;gap:6px}
.card h4::before{content:"";width:3px;height:14px;background:var(--brand);border-radius:2px}
.row{display:flex;align-items:center;padding:9px 0;border-bottom:1px solid #f0f0f0;font-size:13px}
.row:last-child{border-bottom:none}
.row .lb{width:88px;flex:none;color:#666}
.row .vl{flex:1;color:#1a1a1a}
.row input,.row select,.row textarea{
  flex:1;border:none;background:transparent;outline:none;width:100%;
}
.row textarea{resize:vertical;min-height:52px}
.hint{font-size:11px;color:#999;margin-top:5px;line-height:1.5}
/* 付款备注：缴费页最要紧的一条，必须比金额更抢眼但不喧哗 */
.payrc{
  margin:12px 0 4px;padding:11px 13px;border-radius:9px;text-align:center;
  background:linear-gradient(180deg,#FFFDF6,#FDF6E8);border:1px solid #EBD9AE;
}
.payrc__k{font-size:11px;color:#8A6A32;letter-spacing:.06em}
.payrc__v{
  margin:5px 0 4px;font-size:18px;font-weight:700;color:#8A2B12;
  letter-spacing:.04em;word-break:break-all;user-select:all;-webkit-user-select:all;
}
.payrc__n{font-size:11px;color:#A08A63}
.payrc--empty{background:#F7F8FA;border-color:#E6E9EE}
.payrc--empty .payrc__v{color:#8A8F99;font-weight:500;font-size:15px}
.lnk{
  border:none;background:none;padding:0;color:var(--brand);
  font-size:11px;cursor:pointer;text-decoration:underline;font-family:inherit;
}
.req{color:var(--err)}
.btn{
  display:block;width:100%;padding:12px;border-radius:8px;border:none;
  background:var(--brand);color:#fff;font-size:15px;cursor:pointer;margin-top:8px;
}
.btn:disabled{background:#c8ccd4;cursor:not-allowed}
.btn.ghost{background:#fff;color:var(--brand);border:1px solid var(--brand)}
.btn.gold{background:var(--gold)}
.btn.sm{width:auto;display:inline-block;padding:6px 14px;font-size:13px;margin:0}
.btn.err{background:var(--err)}
.foot{padding:12px;background:#fff;border-top:1px solid #eee}

/* 上传区 */
.ups{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}
.up{border:1px dashed #c9ced8;border-radius:8px;padding:10px;text-align:center;background:#fafbfc;cursor:pointer;position:relative}
.up img{width:100%;height:74px;object-fit:cover;border-radius:6px;margin-bottom:5px;background:#eee}
.up .ph{height:74px;display:grid;place-items:center;color:#b0b6c0;font-size:12px;background:#f4f5f7;border-radius:6px;margin-bottom:5px}
.up .nm{font-size:12px;color:#555}
.up input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}

/* 金额卡 */
.money{background:linear-gradient(180deg,#1B4B8F,#2b6bc4);color:#fff;border-radius:12px;padding:16px;margin-bottom:10px}
.money .big{font-size:30px;font-weight:500;letter-spacing:.5px}
.money .lbl{font-size:11px;opacity:.8}
.money .grid{display:flex;margin-top:14px;border-top:1px solid rgba(255,255,255,.2);padding-top:10px}
.money .grid div{flex:1;text-align:center}
.money .grid div+div{border-left:1px solid rgba(255,255,255,.2)}
.money .grid .v{font-size:15px;font-weight:500}
.money .grid .k{font-size:11px;opacity:.8}

/* 列表项 */
.item{background:#fff;border-radius:10px;padding:12px;margin-bottom:9px}
.item .top{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.item .nm{font-size:14px;font-weight:500}
.item .meta{font-size:12px;color:#888;line-height:1.7}
.pill{padding:2px 8px;border-radius:20px;font-size:11px}
.pill.g{background:#eef6f0;color:#2E9E5B}
.pill.o{background:#fdf3e4;color:#D98A1F}
.pill.r{background:#fdeeee;color:#D93B3B}
.pill.b{background:#eef2f9;color:#1B4B8F}
.pill.k{background:#f0f1f3;color:#888}

/* tabbar */
.tabbar{position:sticky;bottom:0;display:flex;background:#fff;border-top:1px solid #e8e8e8;z-index:5}
.tabbar div{flex:1;text-align:center;padding:9px 0;font-size:11px;color:#999}
.tabbar div.on{color:var(--brand);font-weight:500}
.tabbar div span{display:block;font-size:15px;margin-bottom:2px;line-height:1}

/* 后台 */
.admin{display:flex;min-height:760px}
.side{width:150px;background:#1a2130;padding:14px 0;flex:none}
.side div{padding:10px 16px;font-size:13px;color:#9aa5b8;cursor:pointer}
.side div.on{color:#fff;background:rgba(255,255,255,.07);border-left:3px solid var(--gold);padding-left:13px}
.side .badge{float:right;background:var(--err);color:#fff;border-radius:9px;padding:0 6px;font-size:11px}
.main{flex:1;padding:16px;overflow:auto}
.main h2{font-size:15px;font-weight:500;margin-bottom:12px}
table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;font-size:12px}
th{background:#f6f7f9;padding:9px 10px;text-align:left;color:#666;font-weight:500}
td{padding:9px 10px;border-top:1px solid #f0f0f0}
tr:hover td{background:#fafbfc}
.acts{display:flex;gap:6px;flex-wrap:wrap}
.mini{padding:4px 10px;border-radius:5px;border:1px solid var(--line);background:#fff;cursor:pointer;font-size:12px}
.mini.pri{background:var(--brand);color:#fff;border-color:var(--brand)}
.mini.err{background:var(--err);color:#fff;border-color:var(--err)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.fld{margin-bottom:10px}
.fld label{display:block;font-size:12px;color:#666;margin-bottom:4px}
.fld input,.fld select{width:100%;padding:8px 10px;border:1px solid #d9dde4;border-radius:6px;background:#fff;color:#1a1a1a}
.imgs{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}
.imgs figure{width:150px}
.imgs img{width:100%;height:100px;object-fit:cover;border-radius:6px;background:#eee;border:1px solid #eee;cursor:pointer}
.imgs figcaption{font-size:11px;color:#888;margin-top:3px;text-align:center}
.empty{text-align:center;color:#aaa;padding:40px 0;font-size:13px}
.kv{display:flex;gap:8px;font-size:12px;color:#666;margin-top:6px;flex-wrap:wrap}
.kv b{color:#1a1a1a;font-weight:500}
.demo{background:#fff8e8;border:1px dashed var(--gold);border-radius:8px;padding:10px;font-size:12px;color:#8a6d3b;margin-bottom:10px;line-height:1.6}
.qrbox{text-align:center;padding:14px;background:#fff;border-radius:10px}
.qrbox svg{display:block;margin:0 auto 8px}

/* ---------- 注册首页:横幅 / 须知 / 协议 ---------- */
.banner{background:linear-gradient(160deg,#1B4B8F,#2b6bc4 55%,#3a7bd0);color:#fff;padding:22px 16px 18px}
.banner .bt{font-size:17px;font-weight:500;letter-spacing:.5px}
.banner .bs{font-size:11.5px;opacity:.85;margin-top:5px;line-height:1.6}
.banner .brow{display:flex;margin-top:14px;border-top:1px solid rgba(255,255,255,.25);padding-top:10px}
.banner .brow div{flex:1;text-align:center}
.banner .brow .v{font-size:15px;font-weight:500}
.banner .brow .k{font-size:10.5px;opacity:.8;margin-top:1px}
/* 概览信息格 */
.icard{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#eceef2;border-radius:10px;overflow:hidden;margin-bottom:10px}
.icard div{background:#fff;padding:10px 12px}
.icard .k{font-size:11px;color:#999}
.icard .v{font-size:12.5px;color:#1a1a1a;margin-top:2px;line-height:1.5}
/* 须知折叠块 */
.acc{background:#fff;border-radius:10px;margin-bottom:10px;overflow:hidden}
.acc .ah{display:flex;align-items:center;gap:8px;padding:12px 14px;font-size:13px;font-weight:500;cursor:pointer}
.acc .ah i{font-style:normal;font-size:11px;color:#999;margin-left:auto;transition:.2s}
.acc.on .ah i{transform:rotate(90deg)}
.acc .ab{display:none;padding:0 14px 12px;font-size:12px;color:#555;line-height:1.85;border-top:1px solid #f2f3f5;padding-top:10px}
.acc.on .ab{display:block}
.acc .ab b{color:#1a1a1a}
.acc.warn .ah{color:#B8860B}
.acc.big{font-size:12px}
/* 退费三档表(首页公示) */
.rtable{width:100%;border-collapse:collapse;font-size:11.5px;margin-top:6px}
.rtable th{background:#fafbfc;color:#888;font-weight:400;padding:6px 7px;text-align:left;border-bottom:1px solid #ececec}
.rtable td{padding:6px 7px;border-bottom:1px solid #f4f4f4}
.rtable .amt{font-weight:500;white-space:nowrap}
/* 项目介绍图(横向滚动) */
.gal{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;margin-bottom:10px}
.gal img{width:150px;height:96px;flex:none;object-fit:cover;border-radius:8px;border:1px solid #eceef2;cursor:pointer;background:#eee}
/* 板块小标题 */
.sectt{font-size:13px;font-weight:500;color:#1a1a1a;margin:2px 2px 7px;display:flex;align-items:baseline;gap:7px}
.sectt span{font-size:11px;color:#aaa;font-weight:400}
/* 后台:图片上传位 */
.upph{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid #e3e7ee;border-radius:8px;background:#fafbfc;margin-bottom:8px}
.upph .prv{width:64px;height:44px;flex:none;border-radius:6px;object-fit:cover;background:#eee;border:1px solid #eceef2}
.upph .ph{width:64px;height:44px;flex:none;border-radius:6px;display:grid;place-items:center;font-size:10.5px;color:#b0b6c0;background:#f2f3f5;border:1px dashed #dfe3ea}
.upph .ti{flex:1;font-size:12px;color:#333;line-height:1.6}
.upph .ti span{display:block;font-size:11px;color:#999}
/* 后台:可编辑节次块 */
.edsec{border:1px solid #e3e7ee;border-radius:8px;padding:11px 12px;margin-bottom:8px;background:#fff}
.edsec .edh{display:flex;align-items:center;gap:6px;margin-bottom:6px}
.edsec .edh b{font-size:12px;color:#1B4B8F;flex:none}
.edsec .edh .sp{flex:1}
.edsec.edlock{background:#fafbfc}
/* 协议勾选行 */
.agree{background:#fff;border-radius:10px;padding:4px 14px;margin-bottom:10px}
.agree .ar{display:flex;align-items:flex-start;gap:9px;padding:11px 0;border-bottom:1px solid #f4f4f4;font-size:12.5px;line-height:1.6}
.agree .ar:last-child{border-bottom:none}
.agree .ar input{margin-top:3px;flex:none}
.agree .ar .at{flex:1;color:#333}
.agree .ar .at em{font-style:normal;display:block;font-size:11px;color:#999;margin-top:2px}
.agree .ar .vd{font-size:11.5px;color:#1B4B8F;flex:none;padding:1px 6px;border:1px solid #c3d4ec;border-radius:4px;background:#f5f8fc;cursor:pointer}
.agree .ar .vd:active{background:#e6eef8}
/* 底部同意条 */
.agbar{position:sticky;bottom:0;background:#fff;border-top:1px solid #e8e8e8;padding:10px 12px;display:flex;align-items:center;gap:10px}
.agbar .aginfo{flex:1;font-size:11px;color:#999;line-height:1.5}
.agbar .aginfo b{color:#1B4B8F}
.agbar .btn{width:auto;margin:0;padding:10px 18px;font-size:14px;flex:none}
/* 协议全文层 */
.doclay{position:absolute;inset:0;background:#f2f3f5;z-index:30;display:flex;flex-direction:column}
.doclay .dhd{background:#fff;border-bottom:1px solid #e8e8e8;padding:12px 14px;display:flex;align-items:center;gap:8px;flex:none}
.doclay .dhd .dt{flex:1;font-size:14px;font-weight:500;text-align:center}
.doclay .dhd .dv{font-size:10.5px;color:#999}
.doclay .dbd{flex:1;overflow:auto;background:#fff;padding:16px 16px 24px;font-size:12.5px;color:#333;line-height:2}
.doclay .dbd h5{font-size:13px;color:#1B4B8F;margin:16px 0 6px}
.doclay .dbd h5:first-child{margin-top:0}
.doclay .dbd p{margin-bottom:6px}
.doclay .dbd ol,.doclay .dbd ul{margin:0 0 6px 18px}
.doclay .dbd li{margin-bottom:3px}
.doclay .dbd .warnbox{background:#fdf8ec;border:1px solid #f0e0c0;border-radius:6px;padding:9px 11px;color:#8a6d1f;margin:8px 0}
.doclay .dbd .gray{color:#888;font-size:11.5px}
.doclay .dft{border-top:1px solid #e8e8e8;background:#fff;padding:10px 14px;flex:none;display:flex;gap:8px}
.doclay .dft .btn{flex:1;margin:0}

/* toast / lightbox */
.toast{
  position:fixed;left:50%;bottom:40px;transform:translateX(-50%) translateY(20px);
  background:#1f2634;color:#fff;padding:11px 20px;border-radius:8px;font-size:13px;
  opacity:0;pointer-events:none;transition:.25s;z-index:99;border:1px solid var(--line);
}
.toast.on{opacity:1;transform:translateX(-50%) translateY(0)}
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.85);display:none;place-items:center;z-index:100;cursor:zoom-out}
.lightbox.on{display:grid}
.lightbox img{max-width:80vw;max-height:80vh;border-radius:8px}

/* ============================================================
   手机端适配（2026-10-19 新增）
   桌面端保留 375px 手机外框的"预览感"；真机上则铺满整屏、去掉边框与刘海，
   右侧说明栏挪到内容下方 —— 对齐 xlzx（心理咨询师报名）那种 H5 单列观感。

   ⚠ 之前这里一条 @media 都没有：真机上 .stage.phone 固定 375px，
     两侧留白、右侧 .notes（min-width:300px）硬挤，体验很差。
   ⚠ iOS Safari 聚焦时字号 <16px 会强制放大整页，故输入框统一设 16px。
   ============================================================ */
@media (max-width:768px){
  /* 顶栏瘦身：副标题与时钟在手机上没位置 */
  .topbar{padding:10px 12px;gap:10px;flex-wrap:wrap}
  .btxt .t2{display:none}
  .clock{display:none}
  .roles{gap:5px}
  .roles button{padding:6px 10px;font-size:12px}

  /* 主区：单列铺满，去掉手机外框 */
  .wrap{padding:0;gap:0;flex-direction:column;align-items:stretch}
  .stage,.stage.phone,.stage.wide{width:100%!important;min-height:0;border-radius:0;border:none}
  .notch{display:none}
  .screen{min-height:calc(100vh - 56px);overflow-x:hidden}

  /* 说明栏已下线，旧规则一并删除（原先这里把 .notes 改成内容下方通栏） */

  /* 表单与控件：加大点击区，防 iOS 聚焦缩放 */
  .screen input,.screen select,.screen textarea{font-size:16px}
  .fld input,.fld select,.fld textarea{padding:10px}
  .mini{padding:6px 10px;font-size:12px;min-height:32px}
  .btn{padding:14px;font-size:16px}
  .acts{gap:8px}

  /* 双列栅格在手机上改为单列 */
  .grid2{grid-template-columns:1fr}
  .ctabs,.ctabs.g3{width:100%}

  /* 顶部蓝条：34px 的上内边距本是给假刘海让位的，手机上没刘海就收掉；
     「我的通知」原本绝对定位在右下角，页签铺满后会压在「团体报名」上 ——
     改为跟随文档流、居中成一颗独立胶囊，放在页签上方。 */
  .nav{padding:12px 12px 10px}
  .nbtn{position:static;display:block;width:fit-content;margin:8px auto 0}
  .ctabs{margin-top:8px}

  /* 表格：字号收小、允许折行，避免撑破屏幕 */
  table{font-size:11.5px}
  table th,table td{white-space:normal;word-break:break-word;padding:6px 5px}

  .qrbox img{max-width:72vw}
  .lightbox img{max-width:94vw;max-height:84vh}
  .foot{padding-bottom:28px}
}
