:root{
  --navy:#0b2545; --navy2:#13315c; --blue:#5b1ba8; --orange:#ff7a18; --orange2:#ff9d4d;
  --bg:#f5f7fa; --card:#fff; --line:#e3e8ef; --txt:#1f2d3d; --muted:#6b7a90;
  --ok:#2e9e5b; --warn:#e0a800; --bad:#d64545;
  --c-blue:#3b82f6; --c-indigo:#6366f1; --c-purple:#8b5cf6; --c-violet:#7c3aed; --c-cyan:#22d3ee;
  --primary:var(--c-indigo);
}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  background:var(--bg);color:var(--txt);line-height:1.6}
a{color:var(--blue);text-decoration:none}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;
  background:linear-gradient(90deg, #171551, #3b0d84);color:#fff;
  padding:0 22px;height:58px;position:sticky;top:0;z-index:20;box-shadow:0 6px 20px rgba(76,29,149,.38)}
.brand{font-weight:700;font-size:18px;letter-spacing:.5px}
.nav a{color:#e9e6ff;margin-left:18px;font-size:14px;padding:6px 4px;border-bottom:2px solid transparent;white-space:nowrap;transition:.15s}
.nav a:hover{color:#fff}
.nav a.on{color:#fff;border-bottom-color:#fff}
.container{max-width:1080px;margin:0 auto;padding:8px 18px 3px}
.foot{text-align:center;color:var(--muted);font-size:12px;padding:24px;border-top:1px solid var(--line);background:#fff}
h1,h2,h3{color:var(--navy)}
.page-title{font-size:24px;margin:0 0 4px}
.page-sub{color:var(--muted);margin:0 0 22px}

/* cards & grid */
.grid{display:grid;gap:16px}
.grid.cols-3{grid-template-columns:repeat(3,1fr)}
.grid.cols-2{grid-template-columns:repeat(2,1fr)}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px;
  box-shadow:0 1px 3px rgba(20,40,80,.04)}
.card h3{margin:0 0 8px;font-size:16px}
.card p{margin:6px 0;color:var(--muted);font-size:14px}
.card h3 .ci{font-size:17px;filter:saturate(1.1)}

/* 密码框美化（会员资料-修改密码） */
.pwd-card{position:relative}
.field{margin-top:14px}
.field>label{margin:0 0 6px}
.input-wrap{position:relative}
.input-wrap input{width:100%;box-sizing:border-box;padding:11px 42px 11px 12px;border:1px solid var(--line);
  border-radius:9px;font-size:14px;background:#fff;color:var(--txt);transition:.15s}
.input-wrap input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(46,106,199,.14)}
.pwd-eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:none;background:none;
  cursor:pointer;font-size:16px;line-height:1;color:var(--muted);padding:5px 6px;border-radius:6px}
.pwd-eye:hover{color:var(--navy);background:#f0f4fa}
.pwd-hint{font-size:12px;margin-top:7px;color:var(--muted);min-height:16px}
.pwd-hint.ok{color:var(--ok);font-weight:600}
.pwd-hint.err{color:var(--bad);font-weight:600}
.strength{height:6px;background:#eef1f5;border-radius:6px;margin-top:8px;overflow:hidden}
.strength>i{display:block;height:100%;width:0;transition:width .2s ease, background .2s ease;border-radius:6px}
.strength.s1>i{width:25%;background:#e74c3c}
.strength.s2>i{width:50%;background:#e67e22}
.strength.s3>i{width:75%;background:#f1c40f}
.strength.s4>i{width:100%;background:#27ae60}
.strength-txt{font-size:12px;margin-top:5px;color:var(--muted);font-weight:600}
.entry{display:block;text-decoration:none;color:inherit;transition:.15s}
.entry:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(20,40,80,.10);border-color:var(--orange2)}

/* forms */
label{display:block;font-size:13px;color:var(--muted);margin:10px 0 6px;font-weight:600}
input[type=text],input[type=number],input[type=url],select,textarea{
  width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:8px;font-size:14px;
  background:#fff;color:var(--txt)}
textarea{min-height:80px;resize:vertical}
.chk{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}
.chk label{display:flex;align-items:center;gap:6px;margin:0;font-weight:400;color:var(--txt);
  border:1px solid var(--line);border-radius:8px;padding:8px 12px;cursor:pointer;font-size:13px}
.chk label:hover{border-color:var(--orange2)}
.btn{display:inline-block;background:var(--orange);color:#fff;border:none;border-radius:8px;
  padding:11px 22px;font-size:15px;font-weight:600;cursor:pointer;transition:.15s}
.btn:hover{background:var(--orange2)}
.btn.ghost{background:#fff;color:var(--navy);border:1px solid var(--line)}
.btn.sm{padding:5px 12px;font-size:13px}
.btn[disabled]{opacity:.6;cursor:not-allowed}
.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}

/* 表单页输入区收敛：输入框不要过长，整体收成舒适宽度的面板 */
.form-narrow{max-width:100%}
.form-narrow input[type=text],
.form-narrow input[type=url],
.form-narrow select,
.form-narrow textarea{
  width:560px;max-width:100%;padding:12px 14px;font-size:15px;border-radius:9px;transition:.15s}
.form-narrow textarea{resize:vertical;line-height:1.6;font-family:inherit}
.form-narrow input[type=text]:focus,
.form-narrow input[type=url]:focus,
.form-narrow select:focus,
.form-narrow textarea:focus{
  outline:none;border-color:var(--blue);
  box-shadow:0 0 0 3px rgba(46,106,199,.14)}
.form-narrow .chk label{padding:9px 14px;font-size:14px}
.gs-hint{font-size:12.5px;color:var(--muted);margin:8px 0 0;line-height:1.6}

/* badges */
.badge{display:inline-block;font-size:12px;padding:2px 9px;border-radius:20px}
.badge.llm{background:#e8f1ff;color:var(--blue)}
.badge.sim{background:#fff4e6;color:#b86b00}
.badge.done{background:#e7f6ec;color:var(--ok)}
.badge.proc{background:#eef1f5;color:var(--muted)}

/* report */
.score-hero{display:flex;align-items:center;gap:26px;flex-wrap:wrap}
.score-num{font-size:54px;font-weight:800;color:var(--orange);line-height:1}
.level-pill{display:inline-block;background:var(--navy);color:#fff;padding:4px 14px;border-radius:20px;font-weight:600}
.dims{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:14px}
.dim{background:#f8fafc;border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.dim .d-name{font-weight:600;font-size:14px}
.dim .d-score{float:right;font-weight:800;color:var(--navy)}
.bar{height:8px;background:#e9eef5;border-radius:6px;margin-top:8px;overflow:hidden}
.bar>i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--orange))}
.plat-row{display:flex;align-items:center;gap:10px;margin:8px 0;font-size:14px}
.plat-row .pn{width:90px;color:var(--muted)}
.plat-row .pbar{flex:1;height:10px;background:#e9eef5;border-radius:6px;overflow:hidden}
.plat-row .pbar>i{display:block;height:100%;background:var(--blue)}
.plat-row .pr{width:42px;text-align:right;font-weight:700;color:var(--navy)}
.section-title{margin:26px 0 10px;font-size:18px;border-left:4px solid var(--orange);padding-left:10px}
.kw{display:inline-block;background:#eef3fb;color:var(--navy);border-radius:6px;padding:3px 9px;margin:3px;font-size:13px}
.note{background:#f0f6ff;border:1px solid #d6e6ff;border-radius:8px;padding:10px 12px;color:#33567f;font-size:13px}
.disclaimer{background:#fff8ec;border:1px solid #ffe2b8;color:#8a5a00;border-radius:8px;padding:10px 12px;font-size:13px;margin:16px 0}
.empty{text-align:center;color:var(--muted);padding:40px}

/* loading */
.loading{text-align:center;padding:60px 20px}
.spinner{width:42px;height:42px;border:4px solid #e3e8ef;border-top-color:#7612bc;
  border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 16px}
@keyframes spin{to{transform:rotate(360deg)}}
/* 行内小加载圈：自动识别提示前使用（表单页实际加载此样式表） */
.mini-spinner{display:inline-block;width:13px;height:13px;border:2px solid #e3e8ef;border-top-color:#790ebb;
  border-radius:50%;animation:spin .8s linear infinite;vertical-align:-2px;margin-right:6px}

/* proposal viewer */
.viewer{position:relative;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.viewer-bar{display:flex;align-items:center;justify-content:space-between;background:var(--navy);color:#fff;padding:10px 16px}
.viewer-bar .pg{font-size:13px;color:#cdd9e8}
.viewer-bar button{background:#ffffff22;border:1px solid #ffffff33;color:#fff;border-radius:6px;
  padding:5px 14px;cursor:pointer;font-size:13px}
.viewer-bar button:hover{background:#ffffff33}
.slides{position:relative;overflow:hidden}
.slide{display:none;padding:34px 40px;min-height:520px;background:#f5f7fa}
.slide.active{display:block}
.slide-inner{max-width:880px;margin:0 auto}
.slide h1,.slide h2{color:var(--navy)}
.slide .s-title{font-size:26px;margin:0 0 18px;border-left:5px solid var(--orange);padding-left:12px}
.slide .s-sub{color:#44566c;font-size:16px}
.slide .cover-title{font-size:38px;color:#0b2545;text-align:center;margin-top:120px}
.slide .cover-meta{text-align:center;color:#6b7a90}
.slide .cover-end{text-align:center;margin-top:160px;background:var(--navy);padding:60px;border-radius:14px}
.slide .cover-end .cover-title{color:#fff}
.slide .cover-end .cover-meta{color:#cdd9e8}
.slide .cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-top:14px}
.slide .card{background:#fff;border:1px solid #e3e8ef;border-radius:10px;padding:16px}
.slide .card .num{font-size:30px;font-weight:800;color:var(--orange)}
.slide .card .lab{font-weight:700;color:var(--navy);margin:6px 0}
.slide .stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-top:14px}
.slide .stat{background:#fff;border:1px solid #e3e8ef;border-radius:10px;padding:18px;text-align:center}
.slide .stat .num{font-size:30px;font-weight:800;color:var(--orange)}
.slide .stat .lab{color:#6b7a90;font-size:13px;margin-top:6px}
.slide ul{margin:10px 0;padding-left:22px}
.slide li{margin:6px 0}
@media(max-width:720px){
  .grid.cols-3,.grid.cols-2,.dims{grid-template-columns:1fr}
  .slide{padding:22px 18px;min-height:420px}
}

/* ===== 内容表格（后台 / 会员页） ===== */
.content{width:100%;border-collapse:collapse;background:#fff;margin:8px 0 18px;font-size:14px}
.content th,.content td{border:1px solid var(--line);padding:9px 12px;text-align:left;vertical-align:middle}
.content thead th{background:var(--navy);color:#fff;font-weight:600;font-size:13px}
.content tbody tr:nth-child(even){background:#f8fafc}
.content tbody tr:hover{background:#eef4fb}
.content .pos{color:var(--ok);font-weight:700}
.content .neg{color:var(--bad);font-weight:700}
.content .muted{color:var(--muted)}
.content .big{font-size:18px;font-weight:800;color:var(--orange)}
.badge.fail{background:#fdeaea;color:var(--bad)}

/* ===== 后台子导航 ===== */
.subnav{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}
.subnav a{font-size:13px;padding:6px 14px;border:1px solid var(--line);border-radius:20px;color:var(--muted);background:#fff}
.subnav a:hover{color:var(--navy);border-color:var(--orange2)}
.subnav a.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.pager{display:flex;gap:12px;align-items:center;margin-top:14px;color:var(--muted)}
.sec-title{font-size:18px;margin:26px 0 8px;border-left:4px solid var(--orange);padding-left:10px}
.muted{color:var(--muted)}

/* ===== 会员中心 ===== */
.mcard{background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;border-radius:14px;padding:20px;margin-bottom:18px}
.mcard-top{display:flex;align-items:center;gap:14px}
.mavatar{width:52px;height:52px;border-radius:50%;background:var(--orange);display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700}
.mname2{font-size:18px;font-weight:700}
.msub{font-size:12px;color:#cdd9e8;margin-top:2px}
.mstats{display:flex;gap:30px;margin-top:18px}
.mstat .num{font-size:26px;font-weight:800;color:var(--orange2)}
.mstat .lbl{font-size:12px;color:#cdd9e8}
.mactions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.mactions .btn{padding:9px 16px;font-size:14px}
.opts{border:1px solid var(--line);border-radius:10px;padding:12px 16px}
.opts legend{font-size:13px;color:var(--muted);padding:0 6px}
.ck{display:inline-flex;align-items:center;gap:6px;margin:6px 14px 6px 0;font-size:14px;color:var(--txt);font-weight:400}

/* ===== 充值套餐 ===== */
.pkg-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin-top:6px}
.pkg{border:2px solid var(--line);border-radius:12px;padding:14px;text-align:center;cursor:pointer;transition:.15s;background:#fff}
.pkg:hover{border-color:var(--orange2)}
.pkg.on{border-color:var(--orange);background:#fff6ee}
.pkg-amt{font-size:20px;font-weight:800;color:var(--navy)}
.pkg-pts{font-size:13px;color:var(--muted);margin-top:4px}
.pkg-bonus{font-size:12px;color:var(--ok);margin-top:4px}
.pay-ch{display:inline-flex;align-items:center;gap:6px;margin:6px 16px 6px 0;font-size:15px;cursor:pointer}
.btn.wechat{background:#07c160;color:#fff}
.btn.wechat:hover{background:#06ad56}

/* ===== 表单消息 ===== */
.form-msg{font-size:13px;margin:8px 0;min-height:18px}
.form-msg.ok{color:var(--ok)}
.form-msg.err{color:var(--bad)}

/* ===== 顶部会员条 ===== */
.mpPoints{background:#ffffff22;color:#fff;padding:3px 10px;border-radius:14px;font-size:13px;margin-left:6px}
.mname{color:#cdd9e8;font-size:13px;margin-right:6px}

/* ===== 后台登录页 ===== */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0b2545 0%,#13315c 60%,#1b4079 100%);padding:24px}
.login-card{width:420px;max-width:100%;background:#fff;border-radius:16px;box-shadow:0 18px 48px rgba(0,0,0,.28);padding:34px 34px}
.login-brand{font-size:15px;color:var(--navy);font-weight:700;letter-spacing:.5px;margin-bottom:6px}
.login-title{font-size:20px;color:var(--navy);margin:0 0 18px;font-weight:700}
.login-card label{display:block;font-size:13px;color:var(--muted);margin:14px 0 6px}
.login-card input{width:100%;box-sizing:border-box;padding:11px 12px;border:1px solid var(--line);border-radius:9px;font-size:15px;outline:none}
.login-card input:focus{border-color:var(--orange)}
.login-card .btn.block{width:100%;margin-top:20px;padding:11px 0;font-size:15px}
.login-foot{margin-top:16px;text-align:center;font-size:13px}
.login-foot a{color:var(--muted);text-decoration:none}
.login-foot a:hover{color:var(--orange)}

/* ===== 后台子导航右侧（管理员 + 退出） ===== */
.subnav-right{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted)}
.subnav-user{color:var(--navy);font-weight:600}
.subnav-logout{color:var(--bad);border:1px solid var(--bad);border-radius:20px;padding:5px 14px;text-decoration:none;background:#fff}
.subnav-logout:hover{background:var(--bad);color:#fff}

/* ===== 通用左右布局（会员中心 / 超级管理后台） ===== */
.app-shell,.admin-shell{display:flex;min-height:100vh;background:var(--bg)}
.side,.admin-side{width:232px;flex:0 0 232px;background:linear-gradient(180deg,var(--navy) 0%,var(--navy2) 100%);
  color:#fff;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto;
  scrollbar-width:none;-ms-overflow-style:none}
.side::-webkit-scrollbar,.admin-side::-webkit-scrollbar{display:none;width:0;height:0}
.side-brand,.admin-brand{padding:22px 20px;font-weight:800;font-size:18px;line-height:1.35;border-bottom:1px solid #ffffff1a}
.side-brand span,.admin-brand span{display:block;font-size:12px;font-weight:400;color:#9fb3cc;margin-top:5px;letter-spacing:2px}
.side-nav,.admin-nav{display:flex;flex-direction:column;padding:16px 12px;gap:5px;flex:1}
.side-nav a,.admin-nav a{display:flex;align-items:center;gap:11px;color:#cdd9e8;text-decoration:none;
  padding:11px 14px;border-radius:10px;font-size:14px;transition:.15s;border-left:3px solid transparent}
.side-nav a .ico,.admin-nav a .ico{font-size:16px;width:20px;text-align:center;flex:0 0 20px}
.side-nav a:hover,.admin-nav a:hover{background:#ffffff14;color:#fff}
.side-nav a.on,.admin-nav a.on{background:var(--orange);color:#fff;font-weight:600;box-shadow:0 6px 16px rgba(255,122,24,.35)}
/* 折叠子菜单（资讯管理等） */
.admin-nav-group{display:block}
.admin-nav-group > summary.admin-nav-toggle{display:flex;align-items:center;gap:11px;padding:11px 14px;border-radius:10px;color:#cdd9e8;cursor:pointer;list-style:none;user-select:none}
.admin-nav-group > summary.admin-nav-toggle::-webkit-details-marker{display:none}
.admin-nav-group > summary.admin-nav-toggle:hover{background:#ffffff14;color:#fff}
.admin-nav-group > summary .ico{font-size:16px;width:20px;text-align:center;flex:0 0 20px}
.admin-nav-group > summary .caret{margin-left:auto;font-size:10px;transition:transform .15s;opacity:.8}
.admin-nav-group[open] > summary .caret{transform:rotate(90deg)}
.admin-nav-sub{display:flex;flex-direction:column;gap:2px;padding:2px 0 6px 30px}
.admin-nav-sub a{display:block;padding:8px 14px;border-radius:8px;color:#aebfd2;text-decoration:none;font-size:13px;transition:background .15s,color .15s}
.admin-nav-sub a:hover{background:#ffffff14;color:#fff}
.admin-nav-sub a.on{background:var(--orange);color:#fff;font-weight:600}
/* ===== 超级后台导航美化（作用域 .admin-shell，不影响会员中心 .app-shell） ===== */
.admin-shell .admin-side{background:linear-gradient(180deg,#0b2545 0%,#102c52 55%,#13294d 100%);box-shadow:2px 0 22px rgba(11,37,69,.16)}
.admin-shell .admin-brand{display:flex;align-items:center;gap:12px;padding:20px 18px 18px;border-bottom:1px solid rgba(255,255,255,.08)}
.admin-shell .admin-brand .lg{width:36px;height:36px;border-radius:11px;background:linear-gradient(135deg,var(--orange),var(--orange2));display:flex;align-items:center;justify-content:center;color:#fff;font-size:18px;font-weight:800;flex:0 0 36px;box-shadow:0 8px 18px rgba(255,122,24,.35)}
.admin-shell .admin-brand .bk{display:flex;flex-direction:column;font-weight:800;font-size:17px;color:#fff;line-height:1.2;letter-spacing:.5px}
.admin-shell .admin-brand .bk em{font-style:normal;font-size:11px;font-weight:500;color:#9fb3cc;letter-spacing:2px;margin-top:3px}
.admin-shell .admin-nav{padding:10px 12px;gap:2px}
.admin-shell .admin-nav-sec{font-size:11px;font-weight:700;letter-spacing:1.5px;color:#6f86a6;padding:10px 14px 6px}
.admin-shell .admin-nav-sec:first-child{padding-top:6px}
.admin-shell .admin-nav > a,
.admin-shell .admin-nav > .admin-nav-group > summary.admin-nav-toggle{display:flex;align-items:center;gap:11px;padding:10px 13px;border-radius:11px;color:#c2d2e6;font-size:14px;text-decoration:none;cursor:pointer;border:1px solid transparent;border-left:3px solid transparent;transition:background .18s,color .18s,border-color .18s;list-style:none}
.admin-shell .admin-nav > .admin-nav-group > summary.admin-nav-toggle::-webkit-details-marker{display:none}
.admin-shell .admin-nav > a:hover,
.admin-shell .admin-nav > .admin-nav-group > summary.admin-nav-toggle:hover{background:rgba(255,255,255,.07);color:#fff}
.admin-shell .admin-nav > a.on{background:linear-gradient(90deg,rgba(255,122,24,.95),rgba(255,157,77,.82));color:#fff;font-weight:600;border-left-color:#fff;box-shadow:0 8px 18px rgba(255,122,24,.30)}
.admin-shell .admin-nav > a .ico,
.admin-shell .admin-nav-group > summary .ico{width:22px;flex:0 0 22px;display:flex;align-items:center;justify-content:center}
.admin-shell .admin-nav > a .ico svg,
.admin-shell .admin-nav-group > summary .ico svg{width:18px;height:18px;stroke:#c2d2e6;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:stroke .18s}
.admin-shell .admin-nav > a:hover .ico svg,
.admin-shell .admin-nav-group > summary:hover .ico svg{stroke:#fff}
.admin-shell .admin-nav > a.on .ico svg{stroke:#fff}
.admin-shell .admin-nav-group > summary .caret{margin-left:auto;font-size:11px;color:#8aa1c0;transition:transform .2s}
.admin-shell .admin-nav-group[open] > summary .caret{transform:rotate(90deg);color:#fff}
.admin-shell .admin-nav-sub{position:relative;margin:2px 0 6px;padding:4px 0 4px 26px;gap:3px}
.admin-shell .admin-nav-sub::before{content:"";position:absolute;left:19px;top:2px;bottom:10px;width:1px;background:rgba(255,255,255,.14)}
.admin-shell .admin-nav-sub a{position:relative;display:block;padding:8px 13px;border-radius:9px;color:#a9bcd4;font-size:13px;text-decoration:none;border:1px solid transparent;transition:background .16s,color .16s,border-color .16s}
.admin-shell .admin-nav-sub a::before{content:"";position:absolute;left:-13px;top:50%;width:9px;height:1px;background:rgba(255,255,255,.18)}
.admin-shell .admin-nav-sub a:hover{background:rgba(255,255,255,.07);color:#fff}
.admin-shell .admin-nav-sub a.on{background:rgba(255,122,24,.92);color:#fff;font-weight:600;border-color:rgba(255,255,255,.18);box-shadow:0 4px 12px rgba(255,122,24,.25)}
.admin-shell .admin-side-foot{display:flex;flex-direction:column;gap:12px;align-items:stretch}
.admin-shell .admin-user{display:flex;align-items:center;gap:11px}
.admin-shell .admin-user .av{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#1b3a6b,#2b5fb0);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:15px;flex:0 0 38px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)}
.admin-shell .admin-user .ui{display:flex;flex-direction:column;line-height:1.3}
.admin-shell .admin-user .nm{font-weight:600;color:#eaf1fb;font-size:14px}
.admin-shell .admin-user .rl{font-size:11px;color:#8aa1c0}
.admin-shell .admin-logout{text-align:center;border-radius:20px}
@media(max-width:820px){
  .admin-shell .admin-nav-sec{display:none}
  .admin-shell .admin-nav-group > .admin-nav-sub{position:static;padding-left:18px}
  .admin-shell .admin-nav-group > .admin-nav-sub::before,
  .admin-shell .admin-nav-sub a::before{display:none}
  .admin-shell .admin-nav > a,
  .admin-shell .admin-nav > .admin-nav-group > summary.admin-nav-toggle{white-space:nowrap}
}
.side-foot,.admin-side-foot{margin-top:auto;padding:16px 18px 24px;border-top:1px solid #ffffff1a;font-size:13px}
.side-user,.admin-user{color:#dfe8f3;margin-bottom:6px}
.side-pts{color:#9fb3cc;margin-bottom:12px}
.side-pts b,.admin-side-foot b{color:var(--orange2);font-size:16px}
.side-logout,.admin-logout{display:inline-block;color:#ffd9c9;border:1px solid #ffffff33;border-radius:20px;
  padding:6px 16px;font-size:13px;text-decoration:none;transition:.15s}
.side-logout:hover,.admin-logout:hover{background:#fff;color:var(--navy)}
/* ===== 超级后台内容区设计系统（作用域 .admin-shell，不影响会员中心 .app-shell） ===== */
.admin-shell .admin-main{background:linear-gradient(180deg,#f7f8fc 0%,#f5f7fa 240px);min-height:100vh}
.admin-shell .admin-top{padding:22px 30px 0}
.admin-shell .admin-crumb{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted);margin-bottom:10px}
.admin-shell .admin-crumb b{color:#cbd5e1;font-weight:500}
.admin-shell .admin-crumb .cur{color:#6366f1;font-weight:600}
.admin-shell .page-title{position:relative;padding-left:14px;font-size:22px;font-weight:800;color:#0f172a;letter-spacing:.3px;margin:0}
.admin-shell .page-title::before{content:"";position:absolute;left:0;top:5px;bottom:5px;width:4px;border-radius:4px;background:linear-gradient(180deg,#6366f1,#7c3aed)}
.admin-shell .page-sub{color:var(--muted);font-size:13.5px;margin:8px 0 0;padding-left:14px;line-height:1.6}
/* 区块标题 / 分隔线（覆盖默认浏览器 h3，统一后台区块观感） */
.admin-shell h3{font-size:15px;font-weight:700;color:#334155;margin:18px 0 10px;letter-spacing:.2px}
.admin-shell h4{font-size:13.5px;font-weight:700;color:#475569;margin:14px 0 8px}
.admin-shell hr{border:none;border-top:1px solid #eef1f6;margin:18px 0}
.admin-shell .admin-body{padding:18px 30px 64px;max-width:1180px}

/* 卡片 */
.admin-shell .card{background:#fff;border:1px solid #eaeef5;border-radius:14px;padding:20px 22px;box-shadow:0 8px 24px rgba(20,30,70,.05);margin-bottom:18px}
.admin-shell .card.row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px}
.admin-shell .card.row > div{display:flex;flex-direction:column;gap:6px}

/* 数据表格（现代风：无竖线 / 圆角 / 悬停 / 渐变表头） */
.admin-shell .content{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid #eaeef5;border-radius:14px;overflow:hidden;margin:6px 0 18px;font-size:14px;box-shadow:0 8px 24px rgba(20,30,70,.05)}
.admin-shell .content th,.admin-shell .content td{border-bottom:1px solid #eef1f6;padding:12px 14px;text-align:left;vertical-align:middle}
.admin-shell .content thead th{background:linear-gradient(90deg,#4f46e5,#6366f1);color:#fff;font-weight:600;font-size:13px;letter-spacing:.3px;border-bottom:none}
.admin-shell .content thead th:first-child{border-top-left-radius:13px}
.admin-shell .content thead th:last-child{border-top-right-radius:13px}
.admin-shell .content tbody tr{transition:background .15s}
.admin-shell .content tbody tr:hover{background:#f5f3ff}
.admin-shell .content tbody tr:last-child td{border-bottom:none}
.admin-shell .content .pos{color:var(--ok);font-weight:700}
.admin-shell .content .neg{color:var(--bad);font-weight:700}
.admin-shell .content .muted{color:var(--muted)}
.admin-shell .content .big{font-size:18px;font-weight:800;color:#7c3aed}

/* 状态徽章 */
.admin-shell .badge{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;line-height:1.6}
.admin-shell .badge.done{background:#e7f6ec;color:#16a34a}
.admin-shell .badge.fail{background:#fdeaea;color:#dc2626}
.admin-shell .badge.llm{background:#e8f1ff;color:#2563eb}
.admin-shell .badge.sim{background:#fff4e6;color:#b86b00}
.admin-shell .badge.proc{background:#eef1f5;color:#64748b}
.admin-shell .badge.warn{background:#fef3c7;color:#b45309}
.admin-shell .badge.info{background:#e0f2fe;color:#0369a1}

/* 按钮 */
.admin-shell .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:linear-gradient(135deg,#6366f1,#7c3aed);color:#fff;border:none;border-radius:10px;padding:10px 18px;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 8px 18px rgba(99,102,241,.28);transition:.18s}
.admin-shell .btn:hover{box-shadow:0 10px 24px rgba(99,102,241,.42);transform:translateY(-1px);filter:brightness(1.03)}
.admin-shell .btn:active{transform:translateY(0)}
.admin-shell .btn.ghost{background:#fff;color:#4338ca;border:1px solid #ddd6fe;box-shadow:none}
.admin-shell .btn.ghost:hover{background:#f5f3ff;box-shadow:none}
.admin-shell .btn.sm{padding:6px 14px;font-size:13px;border-radius:8px}
.admin-shell .btn[disabled]{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}
.admin-shell .btn.danger{background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 8px 18px rgba(239,68,68,.28)}
.admin-shell .btn.danger:hover{box-shadow:0 10px 24px rgba(239,68,68,.42)}
.admin-shell .btn.wechat{background:#07c160;color:#fff;box-shadow:0 8px 18px rgba(7,193,96,.28)}
.admin-shell .btn.wechat:hover{background:#06ad56}

/* 小型操作按钮（资讯 / AI 洞察等列表内使用） */
.admin-shell .mini-btn{display:inline-flex;align-items:center;gap:5px;border:1px solid #e2e8f0;background:#fff;color:#475569;border-radius:8px;padding:5px 12px;font-size:13px;cursor:pointer;text-decoration:none;transition:.15s}
.admin-shell .mini-btn:hover{background:#f8fafc;border-color:#cbd5e1;color:#0f172a}
.admin-shell .mini-btn.danger{color:#dc2626;border-color:#fecaca;background:#fff5f5}
.admin-shell .mini-btn.danger:hover{background:#fee2e2;color:#b91c1c}
.admin-shell .mini-btn.ghost{color:#6366f1;border-color:#ddd6fe;background:#faf9ff}
.admin-shell .mini-btn.ghost:hover{background:#f5f3ff;color:#4f46e5}

/* 表单控件 */
.admin-shell label{display:block;font-size:13px;color:#475569;margin:10px 0 6px;font-weight:600}
.admin-shell input[type=text],.admin-shell input[type=number],.admin-shell input[type=password],.admin-shell input[type=email],.admin-shell input[type=search],.admin-shell select,.admin-shell textarea{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid #dbe2ec;border-radius:10px;font-size:14px;color:#0f172a;background:#fff;transition:border-color .15s,box-shadow .15s;font-family:inherit}
.admin-shell textarea{resize:vertical;line-height:1.6}
.admin-shell input:focus,.admin-shell select:focus,.admin-shell textarea:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px rgba(99,102,241,.14)}
.admin-shell .card.row input[type=text],.admin-shell .card.row input[type=number]{min-width:200px;width:auto}
.admin-shell .ck{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:#334155;font-weight:500;margin:6px 0;cursor:pointer}
.admin-shell .ck input{width:16px;height:16px;accent-color:#6366f1}
.admin-shell .opts{border:1px solid #e8ecf3;border-radius:12px;padding:14px 18px;margin:14px 0}
.admin-shell .opts legend{font-size:13px;color:#64748b;padding:0 8px;font-weight:600}

/* 子导航胶囊 */
.admin-shell .subnav{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}
.admin-shell .subnav a{font-size:13px;padding:7px 16px;border:1px solid #e2e8f0;border-radius:999px;color:#64748b;background:#fff;text-decoration:none;transition:.15s;font-weight:500}
.admin-shell .subnav a:hover{color:#4f46e5;border-color:#c7d2fe;background:#f5f3ff}
.admin-shell .subnav a.on{background:linear-gradient(135deg,#6366f1,#7c3aed);color:#fff;border-color:transparent;box-shadow:0 6px 14px rgba(99,102,241,.28)}

/* 分页器（兼容简易 <a>/<span> 与 .pg 两种写法） */
.admin-shell .pager{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:16px;color:var(--muted);font-size:13px}
.admin-shell .pager a,.admin-shell .pager .pg{display:inline-flex;align-items:center;justify-content:center;min-width:36px;padding:7px 14px;border:1px solid #e2e8f0;border-radius:9px;color:#334155;background:#fff;text-decoration:none;font-size:13px;transition:.15s}
.admin-shell .pager a:hover,.admin-shell .pager .pg:hover{border-color:#c7d2fe;color:#4f46e5;background:#f5f3ff}
.admin-shell .pager .cur,.admin-shell .pager a.cur{background:linear-gradient(135deg,#6366f1,#7c3aed);color:#fff;border-color:transparent;font-weight:600}
.admin-shell .pager .disabled,.admin-shell .pager a.disabled{color:#bbb;border-color:#eee;background:#fafafa;cursor:default}
.admin-shell .pager .gap{color:var(--muted);padding:6px 4px}

/* 提示 / 空态 / 弱化文本 */
.admin-shell .note{background:#eef4ff;border:1px solid #d6e6ff;border-radius:10px;padding:10px 14px;color:#33567f;font-size:13px;margin:10px 0}
.admin-shell .empty{text-align:center;color:var(--muted);padding:48px 20px;background:#fafbff;border:1px dashed #e2e8f0;border-radius:14px;margin:8px 0 18px}
.admin-shell .muted{color:var(--muted)}

/* 统一确认弹窗 + Toast（节点 append 到 body，z-index 高于导航） */
.admin-modal{position:fixed;inset:0;z-index:10002;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(15,23,42,.5)}
.admin-modal-box{width:100%;max-width:400px;background:#fff;border-radius:16px;box-shadow:0 30px 80px rgba(15,23,42,.4);overflow:hidden;animation:adminPop .18s ease}
@keyframes adminPop{from{transform:translateY(10px) scale(.98);opacity:0}to{transform:none;opacity:1}}
.admin-modal-ic{display:flex;justify-content:center;padding:24px 24px 0}
.admin-modal-msg{padding:14px 26px 6px;font-size:15px;line-height:1.7;color:#1e293b;text-align:center}
.admin-modal-actions{display:flex;gap:12px;justify-content:center;padding:16px 26px 24px;flex-wrap:wrap}
.admin-modal-cancel:hover{background:#f5f3ff !important;color:#4f46e5 !important}
.admin-toast{position:fixed;left:50%;bottom:40px;transform:translateX(-50%);z-index:10003;display:none;padding:12px 22px;border-radius:12px;font-size:14px;font-weight:600;color:#fff;box-shadow:0 16px 40px rgba(15,23,42,.3);animation:adminToastIn .25s ease}
.admin-toast.ok{background:linear-gradient(135deg,#16a34a,#22c55e)}
.admin-toast.err{background:linear-gradient(135deg,#dc2626,#ef4444)}
@keyframes adminToastIn{from{transform:translate(-50%,12px);opacity:0}to{transform:translate(-50%,0);opacity:1}}

.main,.admin-main{flex:1;min-width:0;display:flex;flex-direction:column}
.main-top,.admin-top{padding:20px 28px 0}
.admin-top .page-title{margin:0}
.main-body,.admin-body{max-width:1100px;width:100%;margin:0 auto;padding:20px 28px 64px}

/* ===== 选项卡 / 标签页 ===== */
.tabs{display:flex;gap:6px;margin-bottom:18px}
.tabs.line{margin:-2px 0 18px;padding-bottom:0}
.tabs .tab{background:none;border:none;cursor:pointer;font-size:14px;padding:9px 18px;color:var(--muted);
  border-radius:8px 8px 0 0;font-weight:600;transition:.15s}
.tabs.line .tab{border-radius:8px}
.tabs a.tab{text-decoration:none}
.tabs .tab.on{color:#fff;background:var(--navy)}
.tabs.line .tab.on{color:var(--navy);background:#fff;box-shadow:inset 0 -2px 0 var(--orange)}

/* ===== 会员登录页（卡片内表单） ===== */
.field-extra{margin-top:4px;padding-top:4px}
.login-divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:13px;margin:18px 0}
.login-divider::before,.login-divider::after{content:'';flex:1;height:1px;background:var(--line)}
.bind-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}

/* ============================================================
   会员后台 · 蓝紫科技风（作用域 .app-shell，不影响超级后台）
   ============================================================ */
.app-shell{background:linear-gradient(180deg,#f6f5ff 0%,#eef2ff 100%)}
.app-shell .side{background:#0b0b0f;box-shadow:4px 0 30px rgba(0,0,0,.45)}
.app-shell .side-brand{color:#fff}
.app-shell .side-brand span{color:#c7d2fe}
.app-shell .side-nav a{color:#c7d2fe}
.app-shell .side-nav a:hover{background:#ffffff20;color:#fff}
.app-shell .side-nav a.on{background:linear-gradient(90deg,var(--c-blue),var(--c-violet));color:#fff;font-weight:600;box-shadow:0 6px 16px rgba(124,58,237,.4);border-left-color:transparent}
.app-shell .side-nav a .ico{display:flex;align-items:center;justify-content:center}
.app-shell .side-nav a .ico svg{width:18px;height:18px;flex:0 0 18px}
.app-shell .side-pts b{color:#c4b5fd}
.app-shell .side-logout{color:#e9d5ff;border-color:#ffffff4d}
.app-shell .side-logout:hover{background:#fff;color:var(--c-violet)}

/* 会员中心主卡 */
.mcard{background:linear-gradient(135deg,#4f46e5 0%,#7c3aed 100%);box-shadow:0 16px 42px rgba(79,70,229,.30)}
.mcard .mavatar{background:linear-gradient(135deg,#a78bfa,#6366f1);box-shadow:0 6px 16px rgba(124,58,237,.4)}
.mcard .mstat .num{color:#fff}
.mcard .mstat .lbl{color:#ddd6fe}

/* 主按钮 → 蓝紫渐变（与诊断/方案页提交按钮一致） */
.app-shell .btn{background:linear-gradient(135deg,var(--c-blue),var(--c-violet));color:#fff;border:none;box-shadow:0 8px 20px rgba(124,58,237,.30)}
.app-shell .btn:hover{box-shadow:0 10px 26px rgba(124,58,237,.45)}
.app-shell .btn.ghost{background:#fff;color:#200155;border:1px solid #ddd6fe}
.app-shell .btn.ghost:hover{background:#f5f3ff}
.app-shell .btn.wechat{background:#07c160;color:#fff}
.app-shell .btn.wechat:hover{background:#06ad56}

/* 表格表头蓝紫 + 行 hover */
.app-shell .content thead th{background:linear-gradient(90deg,#4f46e5,#6366f1);color:#fff}
.app-shell .content tbody tr:hover{background:#f5f3ff}

/* 页面标题 / 区块标题 蓝紫点缀 */
.app-shell .main-top .page-title{position:relative;padding-left:14px;color:#000}
.app-shell .main-top .page-title::before{content:'';position:absolute;left:0;top:7px;bottom:7px;width:4px;border-radius:4px;background:linear-gradient(180deg,var(--c-blue),var(--c-violet))}
.app-shell .sec-title{border-left-color:var(--c-violet);color:#000}

/* 选项卡蓝紫 */
.app-shell .tabs .tab.on{background:var(--c-indigo);color:#fff}
.app-shell .tabs.line .tab.on{color:var(--c-indigo);background:#fff;box-shadow:inset 0 -2px 0 var(--c-violet)}

/* 充值套餐蓝紫 */
.pkg:hover{border-color:var(--c-violet)}
.pkg.on{border-color:var(--c-violet);background:#f5f3ff}
.pkg-amt{color:var(--c-indigo)}
.pay-ch .dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px;vertical-align:0}
.pay-ch .dot.wx{background:#07c160}
.pay-ch .dot.ali{background:#1677ff}

/* 会员页内按钮小图标 */
.app-shell .btn .sv{width:16px;height:16px;flex:0 0 16px;vertical-align:-3px;margin-right:6px}

/* 密码可见切换图标 */
.eye-ico{width:16px;height:16px;vertical-align:-3px;margin-right:5px}

/* 登录页蓝紫 */
.login-wrap{background:linear-gradient(135deg,#4f46e5 0%,#312e81 55%,#7c3aed 100%)}
.login-brand{color:var(--c-violet)}
.login-title{color:var(--c-violet)}
.login-card input:focus{border-color:var(--c-violet);box-shadow:0 0 0 3px rgba(124,58,237,.15)}
.login-foot a:hover{color:var(--c-violet)}

/* ===== 窄屏适配 ===== */
@media(max-width:820px){
  .app-shell,.admin-shell{flex-direction:column}
  .side,.admin-side{width:100%;flex-basis:auto;height:auto;position:static;flex-direction:row;overflow-x:auto}
  .side-brand,.admin-brand{border-bottom:none;border-right:1px solid #ffffff1a;white-space:nowrap}
  .side-nav,.admin-nav{flex-direction:row;padding:10px;flex:1}
  .side-foot,.admin-side-foot{display:none}
}

/* 会员后台手机端：汉堡下拉式导航（顶部固定黑条 + 点击展开菜单，仅作用于 .app-shell，不影响超级后台） */
.m-nav-cb{position:absolute;opacity:0;pointer-events:none;width:0;height:0;margin:0;padding:0}
.m-nav-burger{display:none;color:#fff;cursor:pointer}
.m-nav-burger .ico-close{display:none}  /* 默认显示汉堡图标 */
.side-menu{display:contents}  /* 桌面：让 nav+foot 直接参与 .side 的 flex 布局，保持原左侧栏不变 */
@keyframes mfade{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:820px){
  .app-shell{flex-direction:column}
  .app-shell .side{width:100%;flex-basis:auto;flex-direction:column;height:auto;position:sticky;top:0;z-index:60;
    overflow:visible;  /* 关键：覆盖通用 .side 的 overflow-x:auto，否则下拉菜单被裁剪不可见 */
    box-shadow:0 6px 20px rgba(0,0,0,.35);border-bottom:1px solid #1c1c22}
  .app-shell .side-bar{display:flex;align-items:center;justify-content:space-between;padding-right:12px}
  .app-shell .m-nav-burger{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:10px;margin-left:auto}
  .app-shell .m-nav-burger:active{background:#ffffff20}
  #mNavToggle:checked ~ .side .ico-open{display:none}    /* 展开时：汉堡→✕ */
  #mNavToggle:checked ~ .side .ico-close{display:block}
  .app-shell .side-menu{display:none;position:absolute;top:100%;left:0;right:0;background:#0b0b0f;
    box-shadow:0 16px 30px rgba(0,0,0,.45);padding:6px 10px 14px;z-index:60}
  #mNavToggle:checked ~ .side .side-menu{display:block;animation:mfade .18s ease both}  /* 淡入下拉 */
  .app-shell .side-nav{flex-direction:column;padding:6px 2px;flex:initial;gap:4px}
  .app-shell .side-foot{display:block;margin-top:10px}
  .app-shell .main-body{padding:16px 14px 48px}
  .app-shell .content{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .app-shell .mcard{padding:18px}
}
@media(max-width:480px){
  .app-shell .side-brand{font-size:16px;padding:14px 16px}
  .app-shell .main-top{padding:16px 14px 0}
  .app-shell .main-body{padding:14px 12px 40px}
  .app-shell .btn{width:100%;justify-content:center}
  .app-shell .mcard{padding:16px}
}

/* ===== 充值弹窗（算力不足时调起） ===== */
.recharge-modal{position:fixed;inset:0;background:rgba(15,23,42,.62);z-index:10000;display:none;align-items:center;justify-content:center;padding:18px}
.recharge-modal.show{display:flex}
.rm-card{background:#fff;border-radius:18px;width:100%;max-width:480px;box-shadow:0 30px 80px rgba(0,0,0,.4);overflow:hidden;animation:rmPop .25s ease}
@keyframes rmPop{from{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}
.rm-head{background:linear-gradient(135deg,#fff4e6,#ffe3c9);padding:22px 24px 18px;position:relative;border-bottom:1px solid #ffe0c2}
.rm-close{position:absolute;top:12px;right:14px;width:32px;height:32px;border:none;background:#fff6ee;border-radius:8px;font-size:20px;color:#b45309;cursor:pointer;line-height:1}
.rm-close:hover{background:#ffe0c2}
.rm-ico{font-size:28px;line-height:1}
.rm-head h3{margin:8px 0 4px;font-size:19px;color:#b45309}
.rm-head p{margin:0;font-size:13px;color:#8a5a12;line-height:1.6}
.rm-body{padding:18px 24px 24px}
.rm-lbl{display:block;font-size:13px;font-weight:700;color:var(--navy);margin:6px 0 8px}
.rm-pkgs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.rm-pkg{position:relative;border:2px solid var(--line);border-radius:12px;padding:14px 6px 12px;text-align:center;cursor:pointer;transition:.15s;background:#fff}
.rm-pkg:hover{border-color:var(--orange2)}
.rm-pkg.on{border-color:var(--orange);background:#fff6ee;box-shadow:0 4px 14px rgba(255,138,0,.2)}
.rm-pkg .rm-amt{font-size:18px;font-weight:800;color:var(--navy)}
.rm-pkg .rm-pts{font-size:12px;color:var(--muted);margin-top:4px}
.rm-pkg .rm-bonus{font-size:11px;color:var(--ok);margin-top:3px}
.rm-pkg .rm-tick{position:absolute;top:-9px;right:-9px;width:22px;height:22px;border-radius:50%;background:var(--orange);color:#fff;font-size:13px;line-height:22px;display:none}
.rm-pkg.on .rm-tick{display:block}
.rm-chs{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}
.rm-ch{display:inline-flex;align-items:center;gap:6px;border:2px solid var(--line);border-radius:10px;padding:9px 14px;cursor:pointer;font-size:14px;transition:.15s;background:#fff}
.rm-ch:hover{border-color:var(--orange2)}
.rm-ch.on{border-color:var(--orange);background:#fff6ee}
.rm-ch input{accent-color:var(--orange)}
.rm-info{font-size:12px;color:var(--muted);margin:12px 0 0;min-height:16px}
.rm-actions{display:flex;gap:10px;margin-top:16px}
.rm-actions .btn{flex:1;justify-content:center}
.rm-sim{display:none;margin-top:14px;text-align:center}
.rm-ok{display:inline-block;background:#e7f6ec;color:var(--ok);border:1px solid #b7e3c5;border-radius:8px;padding:10px 16px;font-size:15px;font-weight:600}
.rm-test{font-size:12px;color:var(--muted);margin:12px 0 0;line-height:1.6}
@media (max-width:420px){.rm-pkgs{gap:6px}.rm-pkg{padding:10px 4px}.rm-pkg .rm-amt{font-size:16px}}

/* ============================================================
   科技感首页 / 表单页（hero · 特性卡 · 步骤条 · 表单面板）
   配色：明亮 蓝(#2f6bff) × 紫(#7c3aed)
   ============================================================ */
.hero{position:relative;overflow:hidden;border-radius:18px;padding:46px 42px;margin-bottom:28px;color:#fff;
  background:
    radial-gradient(1000px 380px at 88% -20%, rgb(115 10 182 / 60%), transparent 60%), radial-gradient(820px 340px at -5% 12%, rgba(34, 211, 238, .28), transparent 55%), linear-gradient(135deg, #b300ff 0%, #2563eb 50%, #4e0bc0 100%);
  box-shadow:0 20px 54px rgba(67,56,202,.34)}
.hero::after{content:'';position:absolute;right:-70px;top:-70px;width:280px;height:280px;border-radius:50%;
  background:radial-gradient(circle at 30% 30%,rgba(139,92,246,.6),transparent 62%);filter:blur(10px);opacity:.6}
.hero-tag{position:relative;display:inline-block;font-size:12px;letter-spacing:3px;color:#c4b5fd;
  border:1px solid rgba(196,181,253,.6);border-radius:20px;padding:5px 14px;margin-bottom:16px}
.hero h1{position:relative;color:#fff;font-size:34px;line-height:1.25;margin:0 0 12px;font-weight:800}
.h-ico{vertical-align:-3px;margin-right:10px}
.hero .hero-sub{position:relative;color:#e4e0fb;font-size:15px;line-height:1.75;max-width:680px;margin:0}
.hero-cta{position:relative;margin-top:22px;display:flex;gap:12px;flex-wrap:wrap}
.hero-cta .btn{background:#fff;color:var(--c-indigo);padding:11px 24px}
.hero-cta .btn:hover{background:#eef2ff}
.hero-cta .btn.ghost{background:transparent;color:#fff;border:1px solid #ffffff66}
.hero-cta .btn.ghost:hover{background:#ffffff1f}

.sec-label{font-size:13px;font-weight:700;letter-spacing:2px;color:#19014e;
  margin:32px 0 14px;display:flex;align-items:center;gap:10px}
.sec-label::before{content:'';width:22px;height:3px;border-radius:3px;
  background:linear-gradient(90deg,var(--c-blue),var(--c-violet))}

.feat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin-bottom:8px}
.feat{position:relative;background:#fff;border:1px solid var(--line);border-radius:16px;padding:26px 24px;
  transition:.2s;overflow:hidden;text-decoration:none;color:inherit;display:block}
.feat::after{content:'';position:absolute;left:0;top:0;width:100%;height:3px;
  background:linear-gradient(90deg,var(--c-blue),var(--c-violet));transform:scaleX(0);transform-origin:left;transition:.25s}
.feat:hover{transform:translateY(-5px);box-shadow:0 16px 40px rgba(79,70,229,.16);border-color:#ddd6fe}
.feat:hover::after{transform:scaleX(1)}
.feat .ic{width:54px;height:54px;border-radius:15px;display:flex;align-items:center;justify-content:center;
  font-size:26px;margin-bottom:16px;background:linear-gradient(135deg,#eef2ff,#e9d5ff)}
.feat h3{margin:0 0 8px;font-size:17px;color:#111}
.feat p{margin:0;color:var(--muted);font-size:14px;line-height:1.7}
.feat .f-go{margin-top:14px;display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:13px;font-weight:600}
.feat:hover .f-go{color:#475569}

.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:4px 0 6px}
.step{position:relative;background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px 20px 18px}
.step .s-no{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:16px;color:#fff;background:linear-gradient(135deg,var(--c-blue),var(--c-indigo));margin-bottom:12px}
.step:nth-child(2) .s-no{background:linear-gradient(135deg,var(--c-purple),#a855f7)}
.step:nth-child(3) .s-no{background:linear-gradient(135deg,var(--c-cyan),var(--c-blue))}
.step h4{margin:0 0 6px;font-size:15px;color:#111}
.step p{margin:0;font-size:13px;color:var(--muted);line-height:1.6}

/* 表单面板（诊断 / 方案）：渐变顶条 + 图标头；面板 100% 宽，输入框 560px */
.form-narrow{position:relative;width:100%;border-radius:16px;overflow:hidden;background:#fff;
  border:1px solid var(--line);box-shadow:0 10px 30px rgba(79,70,229,.10)}
.form-narrow::before{content:'';position:absolute;left:0;top:0;right:0;height:4px;
  background:linear-gradient(90deg,var(--c-blue),var(--c-violet))}
.form-narrow .fm-head{display:flex;align-items:center;gap:12px;padding:20px 22px 6px}
.form-narrow .fm-ic{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;
  font-size:21px;background:linear-gradient(135deg,#eef2ff,#e9d5ff);flex:0 0 42px}
.form-narrow .fm-t{font-size:16px;font-weight:700;color:#26045a}
.form-narrow .fm-s{font-size:12px;color:var(--muted);margin-top:2px}
.form-narrow .fm-body{padding:8px 22px 24px}
.form-narrow .fm-head,.form-narrow .fm-body{max-width:604px;margin-left:auto;margin-right:auto}
.form-narrow .btn{background:linear-gradient(135deg,var(--c-blue),var(--c-violet));color:#fff;
  box-shadow:0 8px 20px rgba(124,58,237,.32)}
.form-narrow .btn:hover{box-shadow:0 10px 26px rgba(124,58,237,.45)}

@media(max-width:880px){
  .feat-grid,.steps{grid-template-columns:1fr}
  .hero{padding:34px 24px}
  .hero h1{font-size:27px}
  .form-narrow{width:100%}
  .topbar{flex-wrap:wrap;height:auto;padding:10px 16px;gap:8px}
  .nav{width:100%;display:flex;flex-wrap:wrap;gap:4px}
  .nav a{margin-left:0;padding:7px 10px}
}
@media(max-width:480px){
  .hero{padding:26px 18px;margin-bottom:22px}
  .hero h1{font-size:23px}
  .hero .hero-sub{font-size:14px}
  .form-narrow .fm-head{padding:18px 16px 6px}
  .form-narrow .fm-body{padding:8px 16px 20px}
  .container{padding:18px 12px 44px}
}

/* 分页控件（后台 / 会员记录列表共用） */
.pager{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin:18px 0 6px}
.pager-info{font-size:13px;color:var(--muted)}
.pager-btns{display:flex;flex-wrap:wrap;gap:6px}
.pager .pg{display:inline-block;min-width:34px;text-align:center;font-size:13px;padding:6px 12px;border:1px solid var(--line);border-radius:8px;color:var(--navy);background:#fff;text-decoration:none;transition:.15s;line-height:1.4}
.pager .pg:hover{border-color:var(--orange2);color:var(--navy)}
.pager .pg.cur{background:var(--navy);color:#fff;border-color:var(--navy);font-weight:600}
.pager .pg.disabled{color:#bbb;border-color:#eee;background:#fafafa;cursor:default}
.pager .pg.gap{border:none;background:none;color:var(--muted);min-width:auto;padding:6px 4px}

/* ============================================================
   会员「我的查询记录」——卡片式 + 无限滚动（作用域 .app-shell）
   蓝紫科技风：手机端单列、桌面双列自适应；含 b.neg 兜底
   ============================================================ */
.app-shell .rec-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin:6px 0 4px}
.app-shell .rec-card{position:relative;background:#fff;border:1px solid #e6e2ff;border-radius:16px;padding:16px 18px 14px;
  box-shadow:0 6px 18px rgba(79,70,229,.08);transition:transform .16s ease,box-shadow .16s ease;overflow:hidden}
.app-shell .rec-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(79,70,229,.18);border-color:#d6cffb}
.app-shell .rec-card .rc-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.app-shell .rec-card .rc-type{font-size:13px;font-weight:700;color:#5b21b6;letter-spacing:.5px}
.app-shell .rec-card .badge{font-size:11.5px}
.app-shell .rec-card .rc-name{display:block;font-size:16px;font-weight:700;color:#21124a;line-height:1.45;margin-bottom:10px;
  word-break:break-word;text-decoration:none;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;transition:color .15s}
.app-shell .rec-card .rc-name:hover{color:var(--c-violet)}
.app-shell .rec-card .rc-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;
  font-size:12.5px;color:var(--muted);margin-bottom:0}
.app-shell .rec-card .rc-meta .neg{color:var(--bad);font-weight:700}

/* 加载更多 / 状态提示 */
.app-shell .rec-loadmore{display:flex;align-items:center;justify-content:center;gap:14px;margin:18px 0 8px;flex-wrap:wrap}
.app-shell .rec-loadmore .btn{background:#fff;color:#200155;border:1px solid #ddd6fe;min-width:120px;justify-content:center}
.app-shell .rec-loadmore .btn:hover{background:#f5f3ff}
.app-shell .rec-loadmore .btn:disabled{opacity:.6;cursor:default}
.app-shell .rec-status{font-size:13px;color:var(--muted)}

@media(max-width:560px){
  .app-shell .rec-cards{grid-template-columns:1fr;gap:12px}
  .app-shell .rec-card .rc-name{font-size:15px}
}

/* ===== 会员中心新版布局 · 100% 复刻 透镜GEO 控制台（geo.timus.cn） ===== */
.m2-shell{background:#F8FAFC;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:#0f172a}

/* 左侧固定图标导航轨（84px 白底，复刻 geo.timus.cn） */
.m2-rail{position:fixed;left:0;top:0;z-index:30;height:100vh;width:84px;background:#fff;border-right:1px solid #f3f4f6;display:flex;flex-direction:column;padding:16px 0;box-sizing:border-box}
.m2-rail-brand{display:flex;align-items:center;justify-content:center;width:40px;height:40px;margin:0 auto 14px;border-radius:11px;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;text-decoration:none;font-weight:800;font-size:20px;box-shadow:0 6px 16px rgba(99,102,241,.30);transition:transform .15s}
.m2-rail-brand:hover{transform:scale(1.05)}
.m2-rail-scroll{flex:1;overflow-y:auto;padding:6px 8px;display:flex;flex-direction:column;gap:6px}
.m2-rail-item{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 5px 8px;border-radius:10px;color:#6b7280;text-decoration:none;font-size:12px;font-weight:500;line-height:1.2;transition:background .15s,color .15s}
.m2-rail-item:hover{background:#f9fafb;color:#111827}
.m2-rail-item.on{background:#eef2ff;color:#4338ca;font-weight:600}
.m2-rail-ico{display:flex;align-items:center;justify-content:center;width:20px;height:20px}
.m2-rail-ico svg{width:20px;height:20px;stroke-width:1.8;stroke:currentColor;fill:none;stroke-linecap:round;stroke-linejoin:round}
.m2-rail-userwrap{position:relative;display:flex;justify-content:center;padding:10px 0 2px;border-top:1px solid #f3f4f6;margin-top:6px}
.m2-rail-userwrap .m2-avatar{width:auto;height:auto;min-width:56px;padding:6px 4px;border-radius:0;background:transparent;color:#009689;border:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:5px;font-size:12px;font-weight:500;line-height:1.2;box-shadow:none;transition:color .15s}
.m2-rail-userwrap .m2-avatar:hover{background:transparent;color:#007a70}
.m2-avatar-ico{width:20px;height:20px;stroke-width:1.8;stroke:currentColor;fill:none;stroke-linecap:round;stroke-linejoin:round}
.m2-avatar-label{font-size:12px;font-weight:500}
.m2-usermenu{position:fixed;left:92px;bottom:16px;width:240px;background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 12px 30px rgba(15,23,42,.14);padding:8px;display:none;z-index:1000}
.m2-usermenu.m2-usermenu-open{display:block;animation:m2FadeIn .15s ease}
.m2-usermenu a{display:block;padding:10px 14px;border-radius:8px;color:#334155;text-decoration:none;font-size:14px;transition:background .15s}
.m2-usermenu a:hover{background:#f9fafb;color:#111827}

/* 二级导航面板（fixed，240ms 滑动展开/收起，复刻 geo.timus.cn） */
.m2-sub{position:fixed;top:0;z-index:20;height:100vh;background:#fff;display:flex;flex-direction:column;overflow:hidden;transition:width .24s ease-in-out,left .24s ease-in-out,opacity .24s ease-in-out,border-color .24s ease-in-out}
.m2-sub.m2-sub-open{left:84px;width:190px;opacity:1;border-right:1px solid #f3f4f6}
.m2-sub.m2-sub-collapsed{left:0;width:0;opacity:0;pointer-events:none;border-right:0}
.m2-sub.m2-sub-hidden{display:none}
.m2-sub.m2-enter{animation:m2SubIn .24s ease-in-out both}
.m2-sub-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 14px 12px;position:sticky;top:0;background:#fff;z-index:2}
.m2-sub-head-title{font-size:14px;font-weight:700;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.m2-sub-toggle{width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#94a3b8;background:transparent;border:none;transition:background .15s,color .15s,border-color .15s;flex-shrink:0}
.m2-sub-toggle:hover{background:#eef2ff;color:#4f46e5}
.m2-sub-toggle:active{background:#e0e7ff;color:#4338ca;transform:scale(.96)}
.m2-sub-toggle svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.m2-sub-body{flex:1;overflow-y:auto;padding:4px 12px 22px}
.m2-sub-group{padding:10px 10px 4px;margin-bottom:2px;font-size:11px;font-weight:600;color:#9ca3af;letter-spacing:.04em}
.m2-sub-item{display:flex;gap:6px;padding:9px 10px;border-radius:10px;color:#475569;text-decoration:none;font-size:13px;font-weight:500;transition:background .15s,color .15s}
.m2-sub-item:hover{background:#f9fafb;color:#111827}
.m2-sub-item.on{background:rgba(238,242,255,.9);color:#4338ca;font-weight:600}
.m2-sub-item .si{flex-shrink:0;color:#9ca3af;transition:color .15s}
.m2-sub-item:hover .si{color:#64748b}
.m2-sub-item.on .si{color:#4f46e5}
.m2-sub-item .si svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* 折叠态重新展开按钮（rail 右缘，「展开菜单」） */
.m2-expand{position:absolute;right:0;top:18px;transform:translateX(50%);z-index:40;width:22px;height:44px;background:#fff;border:1px solid #e5e7eb;border-radius:0 8px 8px 0;display:none;align-items:center;justify-content:center;cursor:pointer;color:#64748b;transition:color .15s,background .15s,border-color .15s,transform .15s,width .15s}
.m2-expand:hover{color:#4f46e5;background:#eef2ff;border-color:#c7d2fe;transform:translateX(60%)}
.m2-expand:active{background:#e0e7ff;color:#4338ca}
.m2-expand svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.m2-shell.m2-sub-collapsed .m2-expand{display:flex}

/* 内容区（固定 rail+sub 后，主内容用 margin-left 同步滑动） */
.m2-main{flex:1;min-width:0;margin-left:84px;transition:margin-left .24s ease-in-out;min-height:100vh}
.m2-main.m2-main-shift{margin-left:274px}
/* 防御性修复：shell 折叠时强制主内容区左对齐，避免 JS class 不同步导致 190px 空白占位 */
.m2-shell.m2-sub-collapsed .m2-main{margin-left:84px}
.m2-main.m2-main-enter{animation:m2MainIn .24s ease-in-out both}
.m2-content{max-width:1240px;width:100%;margin:0 auto;padding:28px 36px 80px;box-sizing:border-box}
.m2-top{padding:0 0 4px}
.m2-title{font-size:24px;font-weight:700;color:#0f172a;margin:0;line-height:1.25;letter-spacing:-.01em}
.m2-subtitle{font-size:13px;color:#64748b;margin:6px 0 24px}
/* 会员中心所有页面 m2-top 卡片化（白底圆角卡片，无阴影、无彩条；有图标时图标居左、两行文字在右，垂直居中） */
.m2-shell .m2-top{display:flex;align-items:center;gap:8px;background:linear-gradient(135deg,#e9eefb 0%,#f2f6fd 45%,#eef3fa 100%);border:1px solid #e3e9f5;border-radius:16px;padding:20px 24px;margin-bottom:22px;position:relative;overflow:hidden}
.m2-shell .m2-top::after{content:"";position:absolute;right:-40px;top:-60px;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle at 30% 30%,rgba(99,102,241,.13),transparent 60%);pointer-events:none}
.m2-shell .m2-top-ico,.m2-shell .m2-top-txt{position:relative;z-index:1}
.m2-shell .m2-top .m2-title{font-size:22px;margin:0;line-height:1.3}
.m2-shell .m2-top .m2-subtitle{margin:5px 0 0;font-size:13.5px;color:#64748b;line-height:1.5}
.m2-shell .m2-top-ico{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;flex:none;color:#0f172a}
.m2-shell .m2-top-ico svg{width:24px;height:24px}
.m2-shell .m2-top-txt{min-width:0;flex:1}

/* 滚动条（与 geo.timus.cn 一致：6px 细条 / 透明轨道 / #cbd5e1 滑块 / hover #94a3b8） */
.m2-rail-scroll,.m2-sub-body,.m2-main{scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}
.m2-rail-scroll::-webkit-scrollbar,.m2-sub-body::-webkit-scrollbar,.m2-main::-webkit-scrollbar{width:6px;height:6px}
.m2-rail-scroll::-webkit-scrollbar-track,.m2-sub-body::-webkit-scrollbar-track,.m2-main::-webkit-scrollbar-track{background:transparent}
.m2-rail-scroll::-webkit-scrollbar-thumb,.m2-sub-body::-webkit-scrollbar-thumb,.m2-main::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}
.m2-rail-scroll::-webkit-scrollbar-thumb:hover,.m2-sub-body::-webkit-scrollbar-thumb:hover,.m2-main::-webkit-scrollbar-thumb:hover{background:#94a3b8}
.m2-rail-scroll::-webkit-scrollbar-button,.m2-sub-body::-webkit-scrollbar-button,.m2-main::-webkit-scrollbar-button{display:none;width:0;height:0;background:transparent}

/* 页面加载遮罩（复刻 geo.timus.cn RouteFallback 白屏 + 旋转） */
#m2-loading{position:fixed;inset:0;z-index:99999;background:#fff;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;transition:opacity .3s ease}
#m2-loading.m2-loading-hide{opacity:0}
/* 纯 CSS 兜底自动隐藏：正常由页尾 JS 在 ~30ms 隐藏；
   万一页面在中途致命错误（解锁脚本没输出），这里保证 1.8s 后一定淡出，
   避免整页永远停在「加载中…」（JS 正常时该动画无副作用，元素已被 display:none） */
@keyframes m2LoadSelfHide{to{opacity:0;visibility:hidden;pointer-events:none}}
#m2-loading{animation:m2LoadSelfHide .01s linear 1.8s forwards}
.m2-spin{width:34px;height:34px;border:3px solid #e6e8f0;border-top-color:#6366f1;border-radius:50%;animation:m2spin .8s linear infinite}
.m2-load-txt{color:#94a3b8;font-size:13px}

/* 内部导航内容区加载指示（无半透明遮罩：仅居中旋转圈，内容保持清晰可见） */
#m2-main-loading{position:fixed;top:0;bottom:0;right:0;left:84px;z-index:50;display:none;align-items:center;justify-content:center}
#m2-main-loading.on{display:flex}
#m2-main-loading .m2-spin{width:30px;height:30px;border:3px solid #e6e8f0;border-top-color:#6366f1}
@keyframes m2spin{to{transform:rotate(360deg)}}
@keyframes m2SubIn{from{left:0;width:0;opacity:0}to{left:84px;width:190px;opacity:1}}
@keyframes m2MainIn{from{margin-left:84px}to{margin-left:274px}}
@keyframes m2FadeIn{from{opacity:0}to{opacity:1}}

/* 仪表盘栅格（12 列，复刻 透镜GEO 概览页） */
.m2-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;align-items:start;min-width:0}
.m2-col-main{grid-column:span 8;min-width:0}
.m2-col-side{grid-column:span 4;min-width:0}

/* 内容卡片（白底 / 圆角 / 细边框 / 轻阴影） */
.m2-card{background:#fff;border:1px solid #eef0f3;border-radius:14px;padding:24px;margin-bottom:24px;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.m2-card-title{font-size:16px;font-weight:700;color:#0f172a;margin:0 0 18px;display:flex;align-items:center;gap:8px}
.m2-card-title .m2-muted{font-weight:400;margin-left:auto;font-size:13px}

/* Hero 卡：顶部渐变细线 + 大数字 */
.m2-hero{position:relative;overflow:hidden;padding:26px 28px}
.m2-hero::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#f43f5e,#f59e0b,#6366f1)}
.m2-hero-row{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap}
.m2-stat-label{font-size:12px;font-weight:700;color:#4f46e5;text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}
.m2-stat-num{font-size:clamp(30px,3.8vw,52px);font-weight:800;color:#0f172a;line-height:1.1;letter-spacing:-.02em;overflow-wrap:anywhere}
.m2-stat-num small{font-size:18px;font-weight:600;color:#94a3b8;margin-left:6px}
.m2-trend{display:inline-flex;align-items:center;gap:4px;padding:5px 11px;border-radius:999px;font-size:13px;font-weight:700;border:1px solid}
.m2-trend.up{background:#ecfdf5;color:#059669;border-color:#a7f3d0}
.m2-trend.down{background:#fef2f2;color:#dc2626;border-color:#fecaca}
.m2-mini{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:22px}
.m2-mini div{padding:12px 10px;background:#f8fafc;border:1px solid #f1f3f5;border-radius:10px;min-width:0}
.m2-mini .k{font-size:12px;color:#94a3b8;margin-bottom:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.m2-mini .v{font-size:16px;font-weight:700;color:#0f172a;line-height:1.3;overflow-wrap:anywhere}

/* 消费记录页「当前算力」卡片：三个小格改为三行堆叠（第一行充值订单、第二行算力记录、第三行累计充值），每行标签左、数值右 */
.m2-hero-h .m2-mini{grid-template-columns:1fr}
.m2-hero-h .m2-mini div{display:flex;align-items:center;justify-content:space-between;gap:10px}
.m2-hero-h .m2-mini .k{margin-bottom:0;flex-shrink:0}
.m2-hero-h .m2-mini .v{text-align:right}

/* 其它复用组件 */
.m2-grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.m2-field{margin-bottom:16px}
.m2-field label{display:block;font-size:13px;color:#64748b;margin-bottom:6px}
.m2-field .value{font-size:15px;color:#0f172a;padding:11px 14px;background:#f8fafc;border-radius:10px;border:1px solid #f1f3f5}
.m2-field .value-edit{display:flex;align-items:center;justify-content:space-between;gap:12px}
.m2-field .edit-link{font-size:13px;color:#4f46e5;text-decoration:none;white-space:nowrap}
.m2-field .edit-link:hover{text-decoration:underline}
.m2-required{display:inline-block;background:#fef2f2;color:#ef4444;font-size:11px;font-weight:600;padding:2px 6px;border-radius:4px;margin-left:6px}
.m2-muted{font-size:13px;color:#94a3b8}

/* 方案生成页：补充资料折叠（参考 ranking/index.php 的「更多可选信息」） */
.m2-more{margin-top:24px;border:1px solid #efeafb;border-radius:12px;padding:4px 14px;background:#fcfbff}
.m2-more summary{list-style:none;cursor:pointer;color:var(--c-violet);font-size:13px;font-weight:600;padding:9px 0;user-select:none}
.m2-more summary::-webkit-details-marker{display:none}
.m2-more summary::before{content:"▸";display:inline-block;margin-right:8px;transition:transform .18s ease;color:var(--c-purple)}
.m2-more[open] summary::before{transform:rotate(90deg)}
.m2-more summary:hover{color:var(--c-purple)}
.m2-more-inner{border-top:1px solid #f1ecfb;padding-top:6px;padding-bottom:8px}
.m2-more-inner .m2-help:last-child{margin-bottom:0}
.m2-help{font-size:12px;color:#94a3b8;line-height:1.6;margin:6px 0 2px}

/* 会员中心：折叠文字色适配页面 indigo 主色（与按钮/输入框聚焦色一致） */
.m2-shell .m2-more summary{color:var(--c-indigo)}
.m2-shell .m2-more summary::before{color:var(--c-indigo)}
.m2-shell .m2-more summary:hover{color:var(--c-violet)}

/* 个人资料头 */
.m2-profile{display:flex;align-items:center;gap:16px;margin-bottom:6px}
.m2-profile .m2-avatar{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#7c3aed);color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700;box-shadow:0 8px 22px rgba(99,102,241,.28)}
.m2-profile-info{flex:1}
.m2-profile-name{font-size:19px;font-weight:700;color:#0f172a;margin:0 0 4px}
.m2-profile-meta{font-size:13px;color:#64748b;margin:0}

/* 快捷入口 */
.m2-actions{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}
.m2-action{display:flex;align-items:center;gap:10px;padding:14px;background:#f8fafc;border:1px solid #f1f3f5;border-radius:12px;color:#334155;text-decoration:none;font-size:14px;font-weight:500;transition:background .15s,border-color .15s,box-shadow .15s}
.m2-action:hover{background:#fff;border-color:#c7d2fe;box-shadow:0 6px 16px rgba(99,102,241,.12)}

/* ===== 会员中心：手机端组件适配（仅作用于会员中心 .m2-shell，不污染超级后台） ===== */
.m2-shell .m2-card{padding:18px 16px;margin-bottom:18px}
.m2-shell .m2-card-title{font-size:16px}
/* 充值页卡片标题栏：复用销售SOP页 sop-fm-head 的淡紫渐变（顶部淡紫→透明）+ 紫色下边框 */
.m2-grid--recharge .m2-card-title{display:flex;align-items:center;gap:8px;margin:-18px -16px 16px;padding:14px 16px;border-bottom:1px solid rgba(124,58,237,.12);background:linear-gradient(180deg,rgba(237,233,254,.5),transparent);border-radius:14px 14px 0 0}
.m2-grid--recharge .m2-card-title .m2-ct-ico{flex:none;align-self:center;color:#0f172a}
/* 充值页：note 无内容时（如 #calc 初始为空）隐藏，避免占位空白 */
.m2-grid--recharge .note:empty{display:none}
.m2-shell .m2-card-title .m2-muted{display:block;font-size:12px;font-weight:400;margin-top:3px}
.m2-shell .m2-title{font-size:20px}
.m2-shell .m2-subtitle{margin-bottom:18px}

/* 欢迎横幅：手机端竖向堆叠，右侧算力卡占满整行 */
.m2-shell .m2-welcome{flex-direction:row;align-items:center;gap:20px;padding:26px 28px}
.m2-shell .m2-welcome-points{flex:0 0 auto;width:auto}
.m2-shell .m2-welcome-hi{font-size:20px}
/* 方案生成 CTA 卡片：沿用 m2-welcome 深色渐变，竖排居中（标题→小字→按钮），无阴影 */
.m2-shell .m2-welcome.m2-welcome--cta{flex-direction:column;align-items:stretch;text-align:center;gap:16px;padding:26px 24px;box-shadow:none;margin-bottom:24px}
.m2-shell .m2-welcome.m2-welcome--cta .m2-welcome-hi{font-size:22px}
.m2-shell .m2-welcome.m2-welcome--cta .m2-welcome-sub{margin-top:6px}
.m2-shell .m2-welcome.m2-welcome--cta .m2-wp-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:4px;
  font-size:15px;font-weight:700;padding:13px 20px;border-radius:12px;
  background:linear-gradient(135deg,#ffffff 0%,#eef2ff 100%);color:#312e81;
  box-shadow:none;border:1px solid rgba(255,255,255,.6)}
.m2-shell .m2-welcome.m2-welcome--cta .m2-wp-ico{flex:0 0 auto}
.m2-shell .m2-welcome.m2-welcome--cta .m2-wp-btn:hover{background:linear-gradient(135deg,#ffffff 0%,#e0e7ff 100%);transform:translateY(-1px)}

/* 核心数据卡：手机端两列（已在 980 断点降为两列，560 降一列） */
.m2-shell .m2-sc-num{font-size:24px}
.m2-shell .m2-stat-card{padding:16px 16px}

/* 会员权益卡小字 */
.m2-shell .m2-tier-card p{font-size:12.5px}

/* 账户信息头像行：头像与文字换行友好 */
.m2-shell .m2-profile{gap:12px}

/* 表格：手机端避免横向溢出——表头隐藏，每行转成「字段:值」卡片块 */
.m2-shell .m2-table{display:block;width:100%;border:0}
.m2-shell .m2-table thead{display:none}
.m2-shell .m2-table tbody,.m2-shell .m2-table tr{display:block;width:100%}
.m2-shell .m2-table tr{border:1px solid #eef0f3;border-radius:12px;padding:10px 12px;margin-bottom:10px;background:#fff}
.m2-shell .m2-table td{display:flex;justify-content:space-between;gap:12px;padding:5px 0;border:0;font-size:13px;text-align:right;word-break:break-word}
.m2-shell .m2-table td::before{content:attr(data-label);color:#94a3b8;font-size:12px;font-weight:600;text-align:left;flex:0 0 auto}
.m2-shell .m2-table td.muted{color:#94a3b8}
.m2-shell .m2-table td.m2-neg,.m2-shell .m2-table td.m2-pos{font-weight:700}

/* 算力明细：卡片式流水列表（center.php?tab=points 专属，不影响 consumption.php 的 m2-table） */
.m2-shell .m2-pts-bal{margin-left:6px;font-size:12px;font-weight:600;color:#4f46e5;background:#eef2ff;border:1px solid #e0e7ff;border-radius:999px;padding:3px 10px;vertical-align:2px}
.m2-shell .m2-plist{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}
.m2-shell .m2-plist-item{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid #eef0f3;border-radius:14px;padding:13px 16px;transition:border-color .15s,box-shadow .15s,transform .15s}
.m2-shell .m2-plist-item:hover{border-color:#d6cffb;box-shadow:0 6px 18px rgba(79,70,229,.08);transform:translateY(-1px)}
.m2-shell .m2-plist-badge{flex:0 0 auto;min-width:46px;text-align:center;font-size:12px;font-weight:700;padding:5px 10px;border-radius:999px;letter-spacing:.02em}
.m2-shell .m2-plist-badge.spend{background:#fef2f2;color:#dc2626}
.m2-shell .m2-plist-badge.earn{background:#ecfdf5;color:#059669}
.m2-shell .m2-plist-badge.refund{background:#fffbeb;color:#d97706}
.m2-shell .m2-plist-badge.adjust{background:#f5f3ff;color:#7c3aed}
.m2-shell .m2-plist-badge.register{background:#eef2ff;color:#4f46e5}
.m2-shell .m2-plist-main{flex:1;min-width:0}
.m2-shell .m2-plist-reason{margin:0;font-size:13.5px;color:#334155;line-height:1.5;word-break:break-word}
.m2-shell .m2-plist-time{margin:4px 0 0;font-size:12px;color:#94a3b8}
.m2-shell .m2-plist-amt{flex:0 0 auto;font-size:16px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1}
.m2-shell .m2-plist-amt i{font-style:normal;font-size:11px;font-weight:600;margin-left:2px}
.m2-shell .m2-plist-amt.in{color:#059669}
.m2-shell .m2-plist-amt.out{color:#dc2626}
.m2-shell .m2-plist-empty{text-align:center;padding:36px 0 26px;color:#94a3b8;font-size:13.5px}
.m2-shell .m2-plist-empty svg{width:42px;height:42px;margin:0 auto 12px;color:#cbd5e1;display:block}
.m2-shell .m2-plist-empty p{margin:0}
.m2-shell .m2-plist-badge.wechat{background:#e7f6ec;color:#07a35a}
.m2-shell .m2-plist-badge.alipay{background:#e8f1ff;color:#1677ff}
.m2-shell .m2-plist-code{margin:0;font-size:12px;color:#64748b;font-family:ui-monospace,SFMono-Regular,Consolas,"Courier New",monospace;letter-spacing:.02em;word-break:break-all}
.m2-shell .m2-plist-time .badge{margin-left:8px;font-size:11px;font-weight:600;vertical-align:1px}
.m2-shell .m2-plist-amt.charge{color:#4f46e5}
/* 数据洞察页右侧「最近查询」卡片 */
.m2-shell .m2-di-history .m2-card-title{display:flex;align-items:center;justify-content:space-between}
.m2-shell .m2-di-more{font-size:12px;font-weight:600;color:#4f46e5;text-decoration:none}
.m2-shell .m2-di-more:hover{color:#4338ca}
.m2-shell .m2-di-list{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.m2-shell .m2-di-item a{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #eef0f3;border-radius:11px;padding:9px 11px;text-decoration:none;transition:border-color .15s,box-shadow .15s}
.m2-shell .m2-di-item a:hover{border-color:#d6cffb;box-shadow:0 5px 14px rgba(79,70,229,.08)}
.m2-shell .m2-di-tag{flex:0 0 auto;font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px}
.m2-shell .m2-di-tag.diagnose{background:#f5f3ff;color:#7c3aed}
.m2-shell .m2-di-tag.search{background:#ecfdf5;color:#059669}
.m2-shell .m2-di-tag.qa{background:#fffbeb;color:#d97706}
.m2-shell .m2-di-tag.brand{background:#eef2ff;color:#4f46e5}
.m2-shell .m2-di-name{flex:1;min-width:0;font-size:13px;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.m2-shell .m2-di-time{flex:0 0 auto;font-size:11.5px;color:#94a3b8}

/* 快捷入口：手机端两列网格，触控更友好 */
.m2-shell .m2-actions{grid-template-columns:repeat(2,1fr);gap:10px}
.m2-shell .m2-action{padding:13px 12px;font-size:13.5px}

/* 筛选 chips：手机端允许横向滚动，避免换行挤压 */
.m2-shell .subnav{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px;-webkit-overflow-scrolling:touch}
.m2-shell .subnav a{flex:0 0 auto;white-space:nowrap;padding:7px 14px;font-size:13px}

/* tabs：手机端允许横向滚动 */
.m2-shell .tabs{overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px}
.m2-shell .tabs .tab{flex:0 0 auto;white-space:nowrap;padding:8px 16px}

/* rec 卡片网格：手机端单列 */
.m2-shell .rec-cards{grid-template-columns:1fr}

/* 两栏布局：手机端单列已在 1100 断点处理，这里补 m2-mini 三列 → 两列 */
.m2-shell .m2-mini{grid-template-columns:repeat(2,1fr);gap:8px}
/* 三行堆叠卡（充值订单/算力记录/累计充值各占一排）：覆盖上面的两列，强制单列 */
.m2-shell .m2-hero-h .m2-mini{grid-template-columns:1fr}
.m2-shell .m2-hero{padding:22px 18px}
.m2-shell .m2-hero-row{gap:12px}
.m2-shell .m2-mini>div{background:#f8fafc;border-radius:10px;padding:10px}

/* profile 双卡：手机端单列（已在 1100 断点 span12，这里保证内边距与堆叠间距） */
.m2-shell form.m2-col-6{padding:18px 16px}
.m2-shell .pwd-card{margin-top:0}

/* 登录页（不在 .m2-shell，但同文件）：手机端卡片更贴边、内边距收敛 */
@media(max-width:560px){
  .login-card{padding:24px 18px}
  .login-title{font-size:18px}
  .login-card .row{flex-direction:column;align-items:stretch;gap:0}
  .login-card .row .btn.ghost{margin-top:10px;width:100%}
}
.m2-action svg{width:18px;height:18px;flex:0 0 18px;color:#6366f1;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}

/* 表格 */
.m2-table{width:100%;border-collapse:collapse}
.m2-table th{text-align:left;font-size:12px;color:#94a3b8;font-weight:600;padding:12px 14px;border-bottom:1px solid #eef0f3;background:#fff}
.m2-table td{padding:14px;border-bottom:1px solid #f1f3f5;font-size:14px;color:#334155}
.m2-table tr:last-child td{border-bottom:none}
.m2-neg{color:#dc2626;font-weight:600}
.m2-pos{color:#059669;font-weight:600}

/* ===== 会员中心 overview 重新布局（大气专业版） ===== */
/* 欢迎横幅：全宽深色渐变 */
.m2-welcome{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;
  background:linear-gradient(120deg,#1e1b4b 0%,#312e81 45%,#4c1d95 100%);
  border-radius:18px;padding:30px 34px;color:#fff;position:relative;overflow:hidden;
  box-shadow:0 18px 44px rgba(49,46,129,.30)}
.m2-welcome::after{content:"";position:absolute;right:-60px;top:-60px;width:240px;height:240px;border-radius:50%;
  background:radial-gradient(circle,rgba(139,92,246,.35),transparent 70%)}
.m2-welcome-main{position:relative;z-index:1;min-width:0}
.m2-welcome-hi{font-size:24px;font-weight:800;letter-spacing:-.01em}
.m2-welcome-sub{font-size:13px;color:#c7d2fe;margin-top:8px}
.m2-welcome-tip{font-size:13px;color:#a5b4fc;margin-top:14px}
.m2-welcome-points{position:relative;z-index:1;flex:0 0 auto;background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.18);border-radius:14px;padding:18px 24px;text-align:center;backdrop-filter:blur(4px)}
.m2-wp-label{font-size:12px;color:#c7d2fe;letter-spacing:.04em}
.m2-wp-num{font-size:38px;font-weight:800;line-height:1.1;margin:4px 0 12px}
.m2-wp-num small{font-size:15px;font-weight:600;color:#c7d2fe;margin-left:4px}
.m2-wp-btn{display:inline-block;background:#fff;color:#4338ca;font-size:13px;font-weight:700;
  padding:8px 20px;border-radius:10px;text-decoration:none;transition:.15s}
.m2-wp-btn:hover{background:#eef2ff;transform:translateY(-1px)}

/* 核心数据卡一排四 */
.m2-stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:22px 0 34px}
.m2-stat-card{background:#fff;border:1px solid #eef0f3;border-radius:16px;padding:20px 22px;
  box-shadow:0 1px 3px rgba(15,23,42,.04);transition:transform .16s ease,box-shadow .16s ease}
.m2-stat-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(15,23,42,.10)}
.m2-sc-ico{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.m2-sc-ico svg{width:22px;height:22px}
.m2-sc-ico-indigo{background:#eef2ff;color:#4f46e5}
.m2-sc-ico-violet{background:#f5f3ff;color:#7c3aed}
.m2-sc-ico-blue{background:#eff6ff;color:#2563eb}
.m2-sc-ico-cyan{background:#ecfeff;color:#0891b2}
.m2-sc-num{font-size:28px;font-weight:800;color:#0f172a;line-height:1.1;letter-spacing:-.01em;overflow-wrap:anywhere}
.m2-sc-num small{font-size:14px;font-weight:600;color:#94a3b8;margin-left:4px}
.m2-sc-code{font-size:20px;letter-spacing:.04em}
.m2-sc-label{font-size:13px;color:#64748b;margin-top:6px}

/* 会员权益卡 */
.m2-tier-card .m2-tier-now{display:flex;align-items:center;gap:10px}
.m2-tier-badge{display:inline-block;background:linear-gradient(135deg,#6366f1,#7c3aed);color:#fff;
  font-size:14px;font-weight:700;padding:6px 16px;border-radius:999px;box-shadow:0 8px 18px rgba(99,102,241,.30)}
.m2-tier-desc{font-size:13px;color:#94a3b8}

/* 概览两栏：保留左主栏 + 右侧栏 的左右布局；右侧栏内容统一左对齐 */
.m2-grid-overview .m2-col-side-left{text-align:left}
.m2-grid-overview .m2-col-side-left .m2-card-title,
.m2-grid-overview .m2-col-side-left .m2-muted,
.m2-grid-overview .m2-col-side-left .m2-tier-desc,
.m2-grid-overview .m2-col-side-left .m2-tier-now{justify-content:flex-start}
.m2-grid-overview .m2-col-side-left .m2-action{justify-content:flex-start}
.m2-profile-top{align-items:flex-start}
.m2-profile-top .m2-avatar{margin-top:2px}

/* 最近查询：标签式列表（替代原来的表格），更紧凑专业 */
.m2-recent{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.m2-recent-item{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:12px;padding:12px 4px;border-bottom:1px solid #f1f3f5;text-decoration:none;color:inherit;border-radius:10px;transition:background .15s ease}
.m2-recent-item:hover{background:#f6f8ff}
.m2-recent-item:last-child{border-bottom:none}
.m2-r-tag{flex:0 0 auto;font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;background:#eef2ff;color:#4f46e5;text-align:center;white-space:nowrap;min-width:56px;box-sizing:border-box}
.m2-r-tag-prop{background:#f5f3ff;color:#7c3aed}
.m2-r-tag-due{background:#ecfeff;color:#0891b2}
.m2-r-tag-geo{background:#eff6ff;color:#2563eb}
.m2-r-tag-writer{background:#fef2f2;color:#dc2626}
.m2-r-tag-def{background:#f1f5f9;color:#64748b}
.m2-r-obj{min-width:0;font-size:14px;color:#1e293b;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.m2-r-cost{flex:0 0 auto;font-size:13px;font-weight:700;color:#dc2626;white-space:nowrap}
.m2-r-time{flex:0 0 auto;font-size:12px;color:#94a3b8;white-space:nowrap}

/* ===== 充值页：套餐卡 + 支付方式卡片化（仅会员中心 .m2-shell） ===== */
.m2-shell .pkg-list{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;margin-top:10px}
.m2-shell .pkg{position:relative;border:1px solid #ae8fd3;border-radius:16px;padding:18px 12px 16px;text-align:center;cursor:pointer;transition:all .18s ease;background:#fff;overflow:hidden}
.m2-shell .pkg:hover{border-color:var(--c-violet);transform:translateY(-2px);box-shadow:0 10px 22px rgba(99,102,241,.14)}
.m2-shell .pkg.on{border-color:var(--c-indigo);background:linear-gradient(180deg,#f5f3ff,#eef2ff);box-shadow:0 10px 24px rgba(99,102,241,.20)}
.m2-shell .pkg .pkg-check{position:absolute;top:8px;right:8px;width:20px;height:20px;border-radius:50%;background:var(--c-indigo);color:#fff;font-size:12px;line-height:20px;text-align:center;opacity:0;transform:scale(.6);transition:.18s}
.m2-shell .pkg.on .pkg-check{opacity:1;transform:scale(1)}
.m2-shell .pkg-amt{font-size:22px;font-weight:800;color:var(--c-indigo)}
.m2-shell .pkg-pts{font-size:13px;color:#64748b;margin-top:6px}
.m2-shell .pkg-bonus{display:inline-block;font-size:11px;color:#dc2626;background:#fef2f2;border:1px solid #fecaca;padding:2px 10px;border-radius:999px;margin-top:8px;font-weight:600}
/* 充值套餐卡片：5 张卡片不同淡色渐变背景（选中态 .on 置于其后覆盖） */
.m2-shell .pkg-list .pkg{background:linear-gradient(160deg,#f5f3ff 0%,#eef2ff 100%)}
.m2-shell .pkg-list .pkg:nth-child(2){background:linear-gradient(160deg,#f0f7ff 0%,#e3eeff 100%)}
.m2-shell .pkg-list .pkg:nth-child(3){background:linear-gradient(160deg,#f0fdfa 0%,#dcf6ec 100%)}
.m2-shell .pkg-list .pkg:nth-child(4){background:linear-gradient(160deg,#fdf3fb 0%,#f7e5f5 100%)}
.m2-shell .pkg-list .pkg:nth-child(5){background:linear-gradient(160deg,#fffbef 0%,#fdf1d4 100%)}
.m2-shell .pkg-list .pkg.on{background:linear-gradient(160deg,#ede9fe 0%,#e0e7ff 100%)}

/* 支付方式：卡片式单选 */
.m2-shell .pay-channels{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.m2-shell .pay-ch{display:flex;align-items:center;gap:10px;margin:0;padding:14px 16px;border:2px solid #e2e8f0;border-radius:14px;font-size:15px;cursor:pointer;transition:all .18s ease;background:#fff}
.m2-shell .pay-ch:hover{border-color:var(--c-violet);transform:translateY(-1px)}
.m2-shell .pay-ch:has(input:checked){border-color:var(--c-indigo);background:#f5f3ff;box-shadow:0 6px 16px rgba(99,102,241,.14)}
.m2-shell .pay-ch input{position:absolute;opacity:0;width:0;height:0}
.m2-shell .pay-ico{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex:0 0 38px}
.m2-shell .pay-ico svg{width:22px;height:22px}
.m2-shell .pay-ico.wx{background:#e6f9ef;color:#07c160}
.m2-shell .pay-ico.ali{background:#e8f1ff;color:#1677ff}
.m2-shell .pay-name{font-weight:600;color:#1e293b}

/* 充值页：计算提示 + 充值说明列表（仅会员中心 .m2-shell） */
.m2-shell .note{background:#f5f3ff;border-color:#e0d7ff;color:#4c1d95;border-radius:10px;padding:10px 14px}
.m2-tips{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.m2-tips li{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:#475569;line-height:1.7}
.m2-tips .tip-ico{flex:0 0 auto;color:#6366f1;font-size:12px;margin-top:2px}

/* 响应式：数据卡在窄屏降为两列 / 一列 */
@media(max-width:980px){.m2-stat-row{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.m2-stat-row{grid-template-columns:1fr}.m2-welcome{padding:24px 20px}.m2-welcome-hi{font-size:20px}
  .m2-shell .m2-welcome{flex-direction:column;align-items:stretch}
  .m2-shell .m2-welcome-points{width:100%;flex:1 1 auto}
  .m2-recent-item{grid-template-columns:auto 1fr auto;gap:8px;padding:10px 2px}
  .m2-r-time{grid-column:2 / -1;justify-self:start;margin-top:2px;padding-left:0}
  /* 核心数据卡：手机端图标居左，两行文字（数值 + 标签）排在图标右侧 */
  .m2-stat-card{display:flex;flex-direction:row;align-items:center;gap:14px;padding:14px 16px}
  .m2-stat-card .m2-sc-ico{margin-bottom:0;flex:0 0 auto}
  .m2-stat-card .m2-sc-txt{display:flex;flex-direction:column;justify-content:center;min-width:0;flex:1 1 auto}
  .m2-stat-card .m2-sc-num{font-size:22px}
  .m2-stat-card .m2-sc-label{margin-top:2px}
}

/* 概览两栏：1100px 以下仍保持左右（覆盖全局单列断点），手机端才堆叠 */
@media(max-width:1100px){
  .m2-grid-overview .m2-col-main{grid-column:span 7}
  .m2-grid-overview .m2-col-side{grid-column:span 5}
}
@media(max-width:768px){
  .m2-grid-overview .m2-col-main,
  .m2-grid-overview .m2-col-side{grid-column:span 12}
}

/* 会员中心旧版列表/表单组件在 .m2-shell 下补齐样式（原仅 .app-shell 作用域） */
.m2-shell .rec-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin:6px 0 4px}
.m2-shell .rec-card{position:relative;background:#fff;border:1px solid #e6e2ff;border-radius:10px;padding:16px 18px 14px;transition:transform .16s ease,box-shadow .16s ease;overflow:hidden}
.m2-shell .rec-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(79,70,229,.18);border-color:#d6cffb}
.m2-shell .rec-card .rc-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.m2-shell .rec-card .rc-type{font-size:13px;font-weight:700;letter-spacing:.5px}
.m2-shell .rec-card .badge{font-size:11.5px}
.m2-shell .rec-card .rc-name{display:block;font-size:15px;font-weight:500;color:#21124a;line-height:1.45;margin-bottom:10px;word-break:break-word;text-decoration:none;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;transition:color .15s}
.m2-shell .rec-card .rc-name:hover{color:var(--c-violet)}
.m2-shell .rec-card .rc-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12.5px;color:#64748b;margin-bottom:0}
.m2-shell .rec-card .rc-meta .neg{color:#dc2626;font-weight:700}
.m2-shell .rec-loadmore{display:flex;align-items:center;justify-content:center;gap:14px;margin:18px 0 8px;flex-wrap:wrap}
.m2-shell .rec-loadmore .btn{background:#fff;color:#4f46e5;border:1px solid #e0e7ff;min-width:120px;justify-content:center}
.m2-shell .rec-loadmore .btn:hover{background:#f5f3ff}
.m2-shell .rec-loadmore .btn:disabled{opacity:.6;cursor:default}
.m2-shell .rec-status{font-size:13px;color:#64748b}

/* 查询记录 · 双视图切换（卡片 / 表格式） */
.m2-shell .rec-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.m2-shell .rec-head .m2-card-title{flex:1;min-width:0;margin-bottom:0}
.m2-shell .rec-view-switch{display:inline-flex;align-items:center;gap:2px;background:#f1f4fb;border:1px solid #e4e9f4;border-radius:999px;padding:3px}
.m2-shell .rv-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:28px;border:0;background:transparent;border-radius:999px;color:#8a93a6;cursor:pointer;transition:all .18s ease}
.m2-shell .rv-btn:hover{color:var(--c-indigo)}
.m2-shell .rv-btn.on{background:var(--c-indigo);color:#fff;box-shadow:0 2px 8px rgba(99,102,241,.35)}
.m2-shell .rec-table-wrap{overflow-x:auto;margin:4px 0 6px}
.m2-shell .rec-table{width:100%;min-width:640px;border-collapse:collapse;font-size:13.5px;background:#fff;border:1px solid #e9edf6;border-radius:12px}
.m2-shell .rec-table th{text-align:left;padding:11px 14px;background:#f5f7fc;color:#6b7280;font-weight:600;font-size:12.5px;border-bottom:1px solid #e9edf6;white-space:nowrap}
.m2-shell .rec-table td{padding:11px 14px;border-bottom:1px solid #f0f2f9;vertical-align:middle;word-break:break-word}
.m2-shell .rec-table tbody tr:last-child td{border-bottom:0}
.m2-shell .rec-table tbody tr:hover td{background:#f8faff}
.m2-shell .rec-table .rt-type{display:inline-block;padding:3px 10px;border-radius:999px;background:#eef2ff;color:#4338ca;font-size:12px;font-weight:600;white-space:nowrap}
.m2-shell .rec-table .rt-name{color:#1f2430;font-weight:500;text-decoration:none;transition:color .15s}
.m2-shell .rec-table .rt-name:hover{color:var(--c-indigo)}
.m2-shell .rec-table .rt-cost{color:#dc2626;font-weight:700;white-space:nowrap}
.m2-shell .rec-table .rt-time{color:#8a93a6;font-size:12.5px;white-space:nowrap}
.m2-shell .rec-table .rt-op .btn{padding:4px 12px;font-size:12.5px}
@media (max-width:640px){
  .m2-shell .rec-head{flex-direction:column;align-items:flex-start}
}

/* 表单控件在会员中心统一 indigo 强调色，与仪表盘一致 */
.m2-shell .btn{background:var(--c-indigo);color:#fff}
.m2-shell .btn:hover{background:var(--c-violet)}
.m2-shell .btn.ghost{background:#fff;color:#4f46e5;border:1px solid #e0e7ff}
.m2-shell .btn.ghost:hover{background:#f5f3ff;border-color:#c7d2fe}
.m2-shell .btn.wechat{background:#07c160;color:#fff}
.m2-shell .btn.wechat:hover{background:#06ad56}
.m2-shell .subnav a.on{background:var(--c-indigo);border-color:var(--c-indigo);color:#fff}
.m2-shell .tabs .tab.on{color:#fff;background:var(--c-indigo)}
.m2-shell .tabs.line .tab.on{color:var(--c-indigo);background:#fff;box-shadow:inset 0 -2px 0 var(--c-indigo)}
.m2-shell .sec-title{border-left-color:var(--c-indigo)}
.m2-shell .input-wrap input:focus{border-color:var(--c-indigo);box-shadow:0 0 0 3px rgba(99,102,241,.16)}
.m2-shell .page-sub{color:#64748b}
.m2-shell .pay-channels{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}
.m2-shell .m2-card input[type=text],.m2-shell .m2-card input[type=password],.m2-shell .m2-card input[type=number],.m2-shell .m2-card input[type=url]{width:100%;box-sizing:border-box;padding:11px 12px;border:1px solid #e2e8f0;border-radius:10px;font-size:14px;background:#fff;color:#0f172a}
.m2-shell .m2-card select{width:100%;box-sizing:border-box;padding:11px 12px;border:1px solid #e2e8f0;border-radius:10px;font-size:15px;background:#fff;color:#0f172a;appearance:auto}
.m2-shell .m2-card input:focus,.m2-shell .m2-card select:focus{border-color:var(--c-indigo);box-shadow:0 0 0 3px rgba(99,102,241,.16);outline:none}
.m2-shell .m2-card label{display:block;font-size:13px;color:#64748b;margin:14px 0 6px}
/* 会员中心勾选组（chk）indigo 风格 */
.m2-shell .chk label{border-color:#e2e8f0;background:#fff;padding:9px 14px;font-size:13.5px;transition:border-color .15s,background .15s}
.m2-shell .chk label:hover{border-color:var(--c-indigo);background:#f8fafc}
.m2-shell .chk input{width:auto;margin:0;flex-shrink:0;accent-color:var(--c-indigo)}
.m2-sub-title{font-size:15px;font-weight:700;color:#0f172a;margin:18px 0 10px}
.m2-table .big{font-size:16px;font-weight:700;color:#0f172a}
.m2-table .pos{color:#059669;font-weight:700}
.m2-table .neg{color:#dc2626;font-weight:700}
.m2-table td.muted{color:#94a3b8}
.m2-col-6{grid-column:span 6}

/* 响应式 */
@media(max-width:1100px){
  .m2-col-main,.m2-col-side,.m2-col-6{grid-column:span 12}
}
@media(max-width:768px){
  .m2-content{padding-left:20px;padding-right:20px}
  .m2-grid-2{grid-template-columns:1fr}
}
@media(max-width:560px){
  .m2-rail{position:fixed;left:0;top:0;right:0;bottom:auto;width:100%;height:auto;flex-direction:row;align-items:center;justify-content:flex-start;gap:6px;padding:8px 12px;border-right:none;border-bottom:1px solid #f3f4f6}
  .m2-rail-brand{margin:0 8px 0 0;flex-shrink:0}
  .m2-rail-scroll{flex-direction:row;flex:1;overflow-x:auto;padding:4px 0}
  .m2-rail-item{flex-direction:row;gap:6px;padding:8px 12px;white-space:nowrap}
  .m2-rail-userwrap{border-top:none;margin-top:0;padding:0;flex-shrink:0}
  .m2-rail-userwrap .m2-avatar{flex-direction:row;min-width:0;padding:8px 10px;gap:5px;border-radius:0}
  /* 手机端设置菜单：rail 在顶部、按钮在右上角 → 菜单定位到右上角按钮下方 */
  .m2-usermenu{left:auto;right:12px;bottom:auto;top:60px;width:210px}
  .m2-sub{display:none !important}
  .m2-expand{display:none !important}
  .m2-main{margin-left:0 !important}
  .m2-content{padding:20px 16px 64px}
  .m2-top{padding:6px 0 10px;margin-top:54px}
  .m2-shell .m2-top{margin-top:54px;padding:18px 16px;border-radius:14px}
  .m2-subtitle{line-height:1.55}
  .m2-mini{grid-template-columns:1fr}
  .m2-shell .pay-channels{grid-template-columns:1fr}
  .m2-shell .pkg-list{grid-template-columns:repeat(2,1fr);gap:10px}
  /* 移动端：点击一级菜单弹出的二级导航底部面板 */
  .m2-sheet-mask{position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:200;opacity:0;visibility:hidden;transition:opacity .2s}
  .m2-sheet-mask.show{opacity:1;visibility:visible}
  .m2-sheet{position:fixed;left:0;right:0;bottom:0;z-index:201;background:#fff;border-radius:18px 18px 0 0;box-shadow:0 -10px 40px rgba(15,23,42,.2);transform:translateY(100%);transition:transform .24s ease;max-height:70vh;display:flex;flex-direction:column;padding:14px 16px calc(16px + env(safe-area-inset-bottom))}
  .m2-sheet.open{transform:translateY(0)}
  .m2-sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
  .m2-sheet-title{font-size:15px;font-weight:700;color:#0f172a}
  .m2-sheet-close{border:none;background:#f1f5f9;color:#64748b;width:28px;height:28px;border-radius:50%;font-size:14px;line-height:1;cursor:pointer}
  .m2-sheet-close:active{background:#e2e8f0}
  .m2-sheet-body{overflow-y:auto;-webkit-overflow-scrolling:touch}
  .m2-sheet-group{font-size:12px;font-weight:700;color:#94a3b8;margin:12px 0 4px;letter-spacing:.05em}
  .m2-sheet-item{display:flex;align-items:center;gap:10px;padding:12px 10px;border-radius:12px;font-size:14px;color:#334155;text-decoration:none}
  .m2-sheet-item:active{background:#f5f3ff}
  .m2-sheet-item svg{width:20px;height:20px;color:#6d28d9;flex:none}
  .m2-sheet-item span{flex:1;min-width:0}
  .m2-sheet-arrow{width:16px !important;height:16px !important;color:#cbd5e1 !important}
}

/* 算力充值关闭时：隐藏指向充值页的「充值」按钮（由 m_foot_new JS 加 .m2-recharge-off） */
.m2-recharge-off{opacity:.45;pointer-events:none;cursor:not-allowed;filter:grayscale(.4)}
