/* ============================================================
   奇伴批阅 · 运营台（管理后台）样式
   品牌色与小程序端统一（app.wxss）：
   暖米纸底 / 账本横线 / 琥珀金（主色）/ 焦糖深棕（侧栏）/ 暖墨。
   ============================================================ */

:root{
  /* 纸面（对齐小程序 --paper 系） */
  --paper:#F5EFE2;
  --paper-2:#FBF7EE;
  --card:#FFFDF6;
  --card-2:#FBF6EA;
  /* 暖墨（小程序 --ink 系） */
  --ink:#534539;
  --ink-2:#8A7A66;
  --ink-3:#B3A48C;
  --line:rgba(83,69,57,.12);
  --line-2:rgba(83,69,57,.18);
  /* 琥珀金（小程序品牌色 --orange 系）——主色 */
  --gold:#C39C4A;
  --gold-deep:#A8842F;
  --gold-2:#E2C98A;
  --gold-soft:#F7EED9;
  /* 焦糖深棕（小程序头图同款暖深色）——侧栏 / 深色面 */
  --brown:#5E4B2E;
  --brown-deep:#4A3B26;
  /* 柔绿（功能色：成功 / 正向流水，小程序 --green 系） */
  --green:#6FB07E;
  --green-d:#3F8C5C;
  --green-soft:#E4F1E8;
  /* 陶土橙（错误 / 警示） */
  --clay:#BE6A42;
  --clay-soft:#F6E5D8;
  --seal:#B4443B;

  --r:18px;
  --r-sm:12px;
  --sh-card:0 1px 0 rgba(255,255,255,.9) inset, 0 14px 34px -24px rgba(80,64,40,.5), 0 1px 2px rgba(80,64,40,.05);
  --sh-lift:0 1px 0 rgba(255,255,255,.9) inset, 0 24px 50px -26px rgba(80,64,40,.55), 0 2px 6px rgba(80,64,40,.06);
  /* 主按钮渐变：与小程序 .btn-primary 一致 */
  --grad-gold:linear-gradient(135deg,#CDA75C,#C39C4A);
  /* 纯系统字体栈：不依赖任何外部字体 CDN */
  --serif:"Songti SC","STSong","Source Han Serif SC","Noto Serif SC",Georgia,"Times New Roman",serif;
  --sans:"PingFang SC","HarmonyOS Sans SC","MiSans","Microsoft YaHei","Hiragino Sans GB","Noto Sans SC",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;font-family:var(--sans);color:var(--ink);background:var(--paper);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow:hidden;
}
h1,h2,h3{margin:0;font-weight:600}
a{color:inherit;text-decoration:none}
button{font-family:inherit}
[hidden]{display:none !important}

/* ---------- 纸纹 + 账本横线 ---------- */
.grain{
  position:fixed;inset:0;pointer-events:none;z-index:0;
  background:
    repeating-linear-gradient(to bottom, transparent 0 33px, rgba(83,69,57,.05) 33px 34px),
    radial-gradient(1200px 600px at 78% -8%, rgba(195,156,74,.12), transparent 60%),
    radial-gradient(900px 500px at -6% 104%, rgba(94,75,46,.10), transparent 60%);
}
.grain::after{
  content:"";position:absolute;inset:0;opacity:.5;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.055'/%3E%3C/svg%3E");
}

/* ---------- 通用按钮 ---------- */
.btn{
  border:1px solid var(--line-2);background:var(--card);color:var(--ink);
  padding:10px 18px;border-radius:var(--r-sm);font-size:14px;cursor:pointer;
  transition:transform .18s var(--ease),box-shadow .18s var(--ease),background .18s var(--ease);
  box-shadow:0 1px 0 rgba(255,255,255,.8) inset;
}
.btn:hover{transform:translateY(-1px);box-shadow:var(--sh-lift)}
.btn:active{transform:translateY(0) scale(.985)}
.btn.primary{background:var(--grad-gold);border-color:#B08A38;color:#FFFDF6;box-shadow:0 12px 24px -16px rgba(150,116,36,.9)}
.btn.primary:hover{background:linear-gradient(135deg,#C39C4A,#B08A38)}
.btn.ghost{background:transparent;border-color:transparent;color:var(--ink-2)}
.btn.ghost:hover{background:rgba(83,69,57,.06);box-shadow:none;transform:none}
.btn.sm{padding:7px 12px;font-size:13px}
.btn.danger{color:var(--clay);border-color:rgba(190,94,59,.4)}
.btn.danger:hover{background:var(--clay-soft)}
.btn[disabled]{opacity:.45;cursor:not-allowed;transform:none}

/* ============================================================
   ① 登录
   ============================================================ */
.login-wrap{
  position:fixed;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;
  padding:24px;
}
.login-card{
  width:min(400px,100%);background:var(--card);border:1px solid var(--line);
  border-radius:var(--r);box-shadow:var(--sh-lift);padding:38px 36px 30px;text-align:center;
}
.brand-logo{
  width:64px;height:64px;margin:0 auto 14px;border-radius:16px;overflow:hidden;
  box-shadow:0 10px 22px -14px rgba(94,75,46,.8);
}
.brand-logo img{width:100%;height:100%;display:block}
.brand{font-family:var(--serif);font-size:26px;letter-spacing:.06em}
.brand-sub{font-size:13px;color:var(--ink-2);margin:6px 0 26px;letter-spacing:.2em}
.fld{display:block;text-align:left;margin-bottom:16px}
.fld span{display:block;font-size:13px;color:var(--ink-2);margin-bottom:6px}
.fld input{
  width:100%;padding:11px 14px;border:1px solid var(--line-2);border-radius:var(--r-sm);
  background:var(--paper-2);font-size:15px;color:var(--ink);outline:none;transition:border-color .2s;
}
.fld input:focus{border-color:var(--gold-2)}
.pw-wrap{position:relative}
.pw-eye{
  position:absolute;right:8px;top:50%;transform:translateY(-50%);
  border:none;background:transparent;color:var(--ink-3);cursor:pointer;padding:6px;line-height:0;
}
.pw-eye:hover{color:var(--gold-deep)}
.pw-eye .ico-hide{display:none}
.pw-eye.on .ico-show{display:none}
.pw-eye.on .ico-hide{display:block}
.lg-err{
  background:var(--clay-soft);color:var(--clay);font-size:13px;
  padding:9px 12px;border-radius:var(--r-sm);margin-bottom:14px;text-align:center;
}
.lg-btn{width:100%;padding:12px;font-size:15px;letter-spacing:.3em;margin-top:4px}
.login-foot{font-size:12px;color:var(--ink-3);margin:22px 0 4px}
.login-build{font-size:11px;color:var(--ink-3);letter-spacing:.08em;margin:0}

/* ============================================================
   ② 主界面骨架
   ============================================================ */
.shell{position:fixed;inset:0;z-index:10;display:grid;grid-template-columns:248px 1fr}

/* ---- 侧边栏（焦糖深棕，呼应小程序头图） ---- */
.side{
  background:linear-gradient(175deg, var(--brown) 0%, var(--brown-deep) 100%);
  color:#EDE7D8;display:flex;flex-direction:column;padding:22px 14px 16px;
  border-right:1px solid rgba(0,0,0,.18);
}
.side-brand{display:flex;align-items:center;gap:11px;padding:2px 8px 20px;border-bottom:1px solid rgba(237,231,216,.14)}
.brand-logo.sm{width:42px;height:42px;margin:0;border-radius:11px;flex:none}
.sb-name{font-family:var(--serif);font-size:18px;letter-spacing:.05em;color:#F5EFE2}
.sb-sub{font-size:11px;color:rgba(237,231,216,.55);letter-spacing:.28em;margin-top:2px}
.nav{flex:1;display:flex;flex-direction:column;gap:2px;padding:16px 0;overflow-y:auto}
.nav a{
  display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:11px;
  font-size:14px;color:rgba(237,231,216,.78);cursor:pointer;
  transition:background .18s var(--ease),color .18s var(--ease);
}
.nav a:hover{background:rgba(237,231,216,.08);color:#F5EFE2}
.nav a.on{background:rgba(237,231,216,.14);color:#F7F3E8;box-shadow:inset 2px 0 0 var(--gold-2)}
.nav .ni{line-height:0;flex:none}
.nav .ni svg{width:19px;height:19px}
.side-foot{border-top:1px solid rgba(237,231,216,.14);padding-top:14px}
.side-user{display:flex;align-items:center;gap:10px;padding:2px 8px 12px}
.su-ava{
  width:36px;height:36px;border-radius:50%;flex:none;
  background:var(--grad-gold);color:#FFF;display:flex;align-items:center;justify-content:center;
  font-family:var(--serif);font-size:16px;border:1px solid rgba(245,239,226,.4);
}
.su-name{font-size:14px;color:#F5EFE2}
.su-role{
  display:inline-block;font-size:10px;color:var(--brown-deep);background:var(--gold-2);
  border-radius:5px;padding:2px 7px;margin-top:3px;letter-spacing:.1em;
}
.side-logout{
  width:100%;border:1px solid rgba(237,231,216,.25);background:transparent;color:rgba(237,231,216,.8);
  border-radius:11px;padding:9px;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;
  transition:background .18s;
}
.side-logout:hover{background:rgba(237,231,216,.1)}
.side-build{font-size:10px;color:rgba(237,231,216,.35);text-align:center;margin:12px 0 0;letter-spacing:.08em}

/* ---- 主区 ---- */
.main{overflow-y:auto;padding:34px 44px 60px}
.view-head{margin-bottom:24px}
.view-title{font-family:var(--serif);font-size:30px;letter-spacing:.04em}
.view-sub{font-size:13px;color:var(--ink-2);margin-top:6px}

/* ---- 卡片 ---- */
.card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--sh-card);padding:22px 24px;
}
.card + .card{margin-top:18px}
.card-title{font-family:var(--serif);font-size:18px;display:flex;align-items:baseline;gap:10px}
.card-title .en{font-size:11px;color:var(--ink-3);letter-spacing:.14em;font-family:var(--sans)}
.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:12px;flex-wrap:wrap}

/* ---- 概览数字卡 ---- */
.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px}
.stat{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--sh-card);padding:16px 18px 14px;position:relative;overflow:hidden;
}
.stat::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--gold);border-radius:4px 0 0 4px;
}
.stat.green::before{background:var(--green-d)}
.stat.clay::before{background:var(--clay)}
.stat-label{font-size:13px;color:var(--ink-2)}
.stat-num{font-family:var(--serif);font-size:34px;line-height:1.15;margin-top:4px;font-weight:600}
.stat-num small{font-size:14px;color:var(--ink-3);font-weight:400;margin-left:2px}
.stat-sub{font-size:12px;color:var(--ink-3);margin-top:4px}

/* ---- 统一块级间距：视图内相邻兄弟 / 统计卡后任一元素 ---- */
#viewBody > * + *,
.stat-grid + *{margin-top:18px}

/* ---- 图表 ---- */
.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:1100px){.chart-grid{grid-template-columns:1fr}}
.chart-box svg{display:block;width:100%;height:auto}
.chart-legend{display:flex;gap:16px;font-size:12px;color:var(--ink-2);margin-top:10px}
.chart-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}

/* ---- 表格 ---- */
.tbl-wrap{overflow-x:auto}
table.tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.tbl th{
  text-align:left;font-weight:500;color:var(--ink-2);font-size:12.5px;
  padding:10px 12px;border-bottom:1px solid var(--line-2);white-space:nowrap;
}
.tbl td{padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr:hover td{background:var(--card-2)}
.tbl .num{font-family:var(--serif);font-weight:600}
.tbl .mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;color:var(--ink-2)}
.tbl .ops{white-space:nowrap}
.tbl .ops .btn{margin-right:6px}
.tbl .empty{padding:36px;text-align:center;color:var(--ink-3)}

/* ---- 徽章（参照 jizang：无边框 + 圆点 + inline-flex，避免按钮感） ---- */
.badge{
  display:inline-flex;align-items:center;gap:5px;
  font-size:11.5px;padding:3px 10px;border-radius:99px;line-height:1.4;
  white-space:nowrap;flex:none;
  background:var(--gold-soft);color:var(--gold-deep);
}
.badge::before{content:"";width:5px;height:5px;border-radius:99px;background:currentColor;opacity:.85;flex:none}
.badge.plain::before{display:none}
.badge.gold{background:#F2E3BE;color:#8A6514}
.badge.clay{background:var(--clay-soft);color:#96432A}
.badge.grey{background:rgba(83,69,57,.08);color:var(--ink-2)}
.badge.seal{background:rgba(180,68,59,.1);color:var(--seal)}
.badge.green{background:var(--green-soft);color:var(--green-d)}

/* ---- 工具行 ---- */
.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.toolbar input[type=text],.toolbar input[type=number],.toolbar input[type=password],.toolbar select{
  padding:9px 12px;border:1px solid var(--line-2);border-radius:var(--r-sm);
  background:var(--paper-2);font-size:13.5px;color:var(--ink);outline:none;
}
.toolbar input:focus,.toolbar select:focus{border-color:var(--gold-2)}
.toolbar input{min-width:180px}
.toolbar .spacer{flex:1}

/* ---- 分页 ---- */
.pager{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:14px;font-size:13px;color:var(--ink-2)}
.pager .btn{padding:6px 12px;font-size:12.5px}

/* ---- 弹层 ---- */
.mask{
  position:fixed;inset:0;z-index:40;background:rgba(74,59,38,.32);
  backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:28px;
}
.modal{
  width:min(560px,100%);max-height:86vh;overflow-y:auto;background:var(--card);
  border-radius:var(--r);box-shadow:var(--sh-lift);padding:26px 28px;
}
.modal.wide{width:min(860px,100%)}
.modal-title{font-family:var(--serif);font-size:20px;margin-bottom:18px;display:flex;justify-content:space-between;align-items:center}
.modal-close{border:none;background:transparent;font-size:20px;color:var(--ink-3);cursor:pointer;line-height:1;padding:4px}
.modal-close:hover{color:var(--ink)}
.fld-row{display:flex;gap:12px}
.fld-row>*{flex:1}
.form-tip{font-size:12px;color:var(--ink-3);margin-top:5px}

/* ---- 用户详情 ---- */
.ud-head{display:flex;gap:16px;align-items:center;margin-bottom:18px}
.ud-ava{width:56px;height:56px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:22px;color:#FFF}
.ud-name{font-family:var(--serif);font-size:20px}
.ud-meta{font-size:12.5px;color:var(--ink-2);margin-top:3px}
.ud-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px}
.ud-stat{background:var(--card-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 12px;text-align:center}
.ud-stat b{display:block;font-family:var(--serif);font-size:20px}
.ud-stat span{font-size:11.5px;color:var(--ink-2)}
.sec-title{font-size:13px;color:var(--ink-2);margin:18px 0 8px;letter-spacing:.05em}

/* ---- 系统页 ---- */
.sys-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:1100px){.sys-grid{grid-template-columns:1fr}}
.svc-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.svc-row:last-child{border-bottom:none}
.svc-dot{width:9px;height:9px;border-radius:50%;flex:none;background:var(--green);box-shadow:0 0 0 3px var(--green-soft)}
.svc-dot.off{background:var(--clay);box-shadow:0 0 0 3px var(--clay-soft)}
.svc-name{font-weight:500;min-width:86px}
.svc-val{color:var(--ink-2);font-size:12.5px}
.svc-right{margin-left:auto;font-size:12px;color:var(--ink-3)}
.compliance li{font-size:13px;color:var(--ink-2);padding:7px 0;border-bottom:1px dashed var(--line);list-style:none;display:flex;gap:9px;align-items:flex-start}
.compliance li:last-child{border-bottom:none}
.compliance li::before{content:"✓";color:var(--gold);font-weight:700;flex:none}
.compliance{padding:0;margin:0}

/* ---- 会员套餐卡 ---- */
.plan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;margin-bottom:18px}
.plan{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-card);padding:18px;position:relative}
.plan h4{font-family:var(--serif);font-size:18px;margin:0 0 4px}
.plan .price{font-family:var(--serif);font-size:26px;color:var(--gold-deep)}
.plan .price small{font-size:13px;color:var(--ink-3)}
.plan ul{margin:10px 0 0;padding:0;list-style:none}
.plan li{font-size:12.5px;color:var(--ink-2);padding:3px 0}
.plan li::before{content:"·";margin-right:6px;color:var(--gold)}
.plan .plan-ops{position:absolute;top:12px;right:12px}

/* ---- 码列表 ---- */
.code-cell{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;letter-spacing:.06em;background:var(--gold-soft);padding:2px 8px;border-radius:6px;color:#8A6514}
.code-copy{
  display:inline-flex;align-items:center;gap:6px;white-space:nowrap;
}
.code-txt{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;letter-spacing:.06em;
  background:var(--gold-soft);border:1px solid rgba(195,156,74,.35);color:#8A6514;
  padding:3px 9px;border-radius:6px;cursor:pointer;transition:background .15s;
}
.code-txt:hover{background:#F2E3BE}
.code-txt.used{color:var(--ink-3);background:rgba(83,69,57,.07);border-color:var(--line-2)}
.copy-mini{
  border:1px solid rgba(195,156,74,.45);background:var(--card);color:var(--gold-deep);
  font-size:11.5px;padding:3px 9px;border-radius:20px;cursor:pointer;line-height:1.4;
  transition:background .15s,transform .15s;
}
.copy-mini:hover{background:var(--gold-soft);transform:translateY(-1px)}
.copy-mini:active{transform:translateY(0)}
.gen-out{
  background:var(--card-2);border:1px dashed var(--line-2);border-radius:var(--r-sm);
  padding:12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;
  max-height:180px;overflow-y:auto;margin-top:12px;white-space:pre-wrap;word-break:break-all;
}
/* 引导文案框（生成结果：所见即所得） */
.guide-box{border:1px solid var(--line-2);border-radius:var(--r-sm);overflow:hidden;margin-top:12px}
.gd-h{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;background:var(--card-2);border-bottom:1px solid var(--line)}
.gd-t{font-size:13px;color:var(--ink-2)}
.guide-box textarea{
  display:block;width:100%;border:none;outline:none;resize:vertical;
  padding:12px 14px;background:var(--card);color:var(--ink);
  font-size:13px;line-height:1.7;font-family:inherit;
}
.code-actions{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}
#gOut{margin-top:16px}
.modal-foot{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}

/* ---- Toast ---- */
.toast{
  position:fixed;left:50%;bottom:36px;transform:translateX(-50%) translateY(20px);z-index:60;
  background:var(--brown-deep);color:#F5EFE2;font-size:13.5px;padding:11px 22px;border-radius:30px;
  box-shadow:var(--sh-lift);opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast.err{background:var(--clay)}

/* ---- 加载 ---- */
.loading{padding:40px;text-align:center;color:var(--ink-3);font-size:13px}

/* ---- 批阅统计：榜单 ---- */
.rank-medal{
  display:inline-flex;align-items:center;justify-content:center;
  width:22px;height:22px;border-radius:7px;font-size:12px;font-weight:700;
  background:rgba(83,69,57,.08);color:var(--ink-2);font-family:var(--serif);flex:none;
}
.rank-medal.r1{background:var(--grad-gold);color:#FFF;box-shadow:0 4px 10px -4px rgba(150,116,36,.8)}
.rank-medal.r2{background:#E8DFC9;color:#6B5B3E}
.rank-medal.r3{background:#E4C9A8;color:#7A5230}
.rv-user{display:flex;align-items:center;gap:9px;min-width:0}
.rv-user>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rv-cnt{display:flex;align-items:center;gap:10px}
.rv-cnt b{font-family:var(--serif);font-size:15px;min-width:18px}
.rv-bar{height:6px;border-radius:3px;background:rgba(83,69,57,.08);overflow:hidden;min-width:70px;flex:1;max-width:130px}
.rv-bar span{display:block;height:100%;border-radius:3px;background:var(--grad-gold)}

/* ---- 兑换码：弹层说明 / 开关 / 文字链 / 搜索 / 计数 ---- */
.note{
  font-size:12.5px;color:#8A6514;background:var(--gold-soft);
  border:1px solid rgba(195,156,74,.32);border-radius:var(--r-sm);
  padding:10px 12px;margin-bottom:16px;line-height:1.65;
}
.switch-row{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:12px 14px;border:1px solid var(--line-2);border-radius:var(--r-sm);
  background:var(--paper-2);margin-bottom:16px;cursor:pointer;user-select:none;
}
.sw-t{display:block;font-size:14px;font-weight:600}
.sw-s{display:block;font-size:12px;color:var(--ink-3);margin-top:3px;line-height:1.5}
.sw{position:relative;flex:none;width:44px;height:24px}
.sw input{position:absolute;inset:0;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.sw .tr{position:absolute;inset:0;border-radius:999px;background:rgba(83,69,57,.22);transition:background .2s;pointer-events:none}
.sw .tr::after{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:#FFF;box-shadow:0 1px 3px rgba(0,0,0,.28);transition:transform .2s}
.sw input:checked + .tr{background:var(--gold)}
.sw input:checked + .tr::after{transform:translateX(20px)}
.link-btn{
  border:none;background:transparent;font-size:12.5px;color:var(--ink-2);
  cursor:pointer;padding:4px 7px;border-radius:6px;line-height:1.5;
  transition:color .15s,background .15s;
}
.link-btn:hover{color:var(--gold-deep);background:var(--gold-soft)}
.link-btn.danger:hover{color:var(--clay);background:var(--clay-soft)}
.link-btn[disabled]{opacity:.4;cursor:not-allowed}
.link-btn[disabled]:hover{color:var(--ink-2);background:transparent}
.ops-link{white-space:nowrap}
.ops-link .link-btn + .link-btn{margin-left:2px}
.ops-link .link-btn::after{content:"·";color:var(--ink-3);margin-left:5px}
.ops-link .link-btn:last-child::after{content:""}
.search-ico{position:relative;display:inline-flex}
.search-ico input{padding-left:31px;min-width:190px}
.search-ico svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);pointer-events:none;opacity:.5}
.cnt-tag{font-size:12px;color:var(--ink-3);white-space:nowrap}

/* ---------- 群组管理（成员弹层） ---------- */
.gm-head { margin: -2px 0 14px; }
.gm-title { font-size: 16px; font-weight: 600; color: var(--ink); }
.gm-meta { font-size: 12.5px; color: var(--ink-3); margin-top: 4px; }
.rv-user { display: flex; align-items: center; gap: 8px; }

/* ---------- 审核模式配置 ---------- */
.rv-sec { font-size: 13px; font-weight: 600; color: var(--ink-2); margin: 14px 0 6px; letter-spacing: .02em; }
.rv-row { display: flex; flex-wrap: wrap; gap: 10px 22px; align-items: center; }
.rv-sw { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: var(--ink); cursor: pointer; }
.rv-sw input { width: 16px; height: 16px; accent-color: var(--orange, #C9882B); cursor: pointer; }
.rv-status { margin-top: 14px; font-size: 13px; color: var(--green-d, #5a8a4a); }
.rv-status.err { color: #b5524a; }
