/* ============================================================
   词元成章 · 后台管理设计系统（adm- 前缀）
   仅作用于后台已登录区域；复用 main.css 的色板变量（--p1/--p2/--p3/--bg…）
   第 1 期：布局框架（侧边栏/顶栏/抽屉）+ 页面头/卡片/统计卡/表格/徽章/空态
   ============================================================ */

/* ---------- 设计 token（后台局部：浅色科技风，与前台统一；侧栏/顶栏保留深色玻璃质感）---------- */
.adm{
  --adm-side-w:222px;
  --adm-top-h:62px;
  --adm-r-lg:18px;
  --adm-r-md:13px;
  --adm-bg-card:#ffffff;
  --adm-line:#e6e9f2;
  --adm-line-hi:#d2d8e8;
  --adm-side-bg:linear-gradient(180deg,#141830 0%,#0c0f22 100%);
  /* 内容区文字与品牌主色（补齐此前缺失的变量定义）*/
  --adm-txt:#161a27;
  --adm-txt-soft:#41485e;
  --adm-p3:#6d5efc;
  --adm-p4:#0ea5e9;
}

/* ---------- 整体框架 ---------- */
.adm{min-height:100vh}
.adm-side{
  position:fixed;top:0;left:0;bottom:0;width:var(--adm-side-w);z-index:60;
  background:var(--adm-side-bg);border-right:1px solid rgba(255,255,255,.08);
  display:flex;flex-direction:column;
  backdrop-filter:blur(16px);
  transition:transform .28s cubic-bezier(.2,.8,.2,1);
  /* 深色侧栏内强制浅色文字（覆盖全站浅色化后的 --txt/--sub）*/
  color:#e9ecff;--txt:#e9ecff;--sub:#98a1c9;--p3:#7dd3fc;
}
.adm-main{margin-left:var(--adm-side-w);min-width:0;display:flex;flex-direction:column;min-height:100vh}

/* 侧边栏品牌 */
.adm-brand{
  display:flex;align-items:center;gap:11px;height:var(--adm-top-h);padding:0 20px;
  border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0;
}
.adm-brand .mk{
  width:36px;height:36px;border-radius:11px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:19px;font-weight:800;color:#fff;
  background:var(--grad);box-shadow:0 6px 16px rgba(109,94,252,.45),inset 0 1px 0 rgba(255,255,255,.3);
}
.adm-brand b{font-size:16px;letter-spacing:.5px;white-space:nowrap;color:#f2f4ff}
.adm-brand small{display:block;font-size:11px;color:var(--sub);letter-spacing:2px;margin-top:1px}

/* 侧边栏菜单 */
.adm-nav{padding:16px 13px;display:flex;flex-direction:column;gap:5px;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.22) transparent}
.adm-nav::-webkit-scrollbar{width:6px}
.adm-nav::-webkit-scrollbar-track{background:transparent}
.adm-nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.18);border-radius:3px}
.adm-nav::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.32)}
.adm-navcap{color:#7c86b8;letter-spacing:2px;padding:10px 12px 4px;font-size:11px}
.adm-navsec{display:flex;flex-direction:column}
.adm-navitem-wrap{display:flex;align-items:center;position:relative;border-radius:10px;transition:background .18s;margin:0 6px}
.adm-navitem-wrap:hover .adm-navsort{opacity:1}
.adm-navitem-wrap:hover{background:rgba(255,255,255,.04)}
.adm-navitem-wrap > a{flex:1}
.adm-navsort{position:absolute;right:3px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;opacity:0;transition:opacity .2s}
.adm-navsort-btn{margin-bottom:1px;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);
  border-radius:5px;color:#94a3b8;cursor:pointer;
  font-size:9px;width:18px;height:15px;line-height:13px;text-align:center;
  transition:all .15s;padding:0;
}
.adm-navsort-btn:hover{color:#a87bff;background:rgba(168,123,255,.15);border-color:rgba(168,123,255,.3)}
.adm-navsort-btn:disabled{opacity:.12;cursor:default;background:transparent;border-color:transparent}
.adm-navitem{
  position:relative;display:flex;align-items:center;gap:12px;
  padding:11px 13px;border-radius:12px;color:var(--sub);
  font-size:14.5px;font-weight:600;text-decoration:none;
  transition:background .18s,color .18s;
}
.adm-navitem svg{width:19px;height:19px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.8}
.adm-navitem:hover{background:rgba(255,255,255,.05);color:var(--txt)}
.adm-navitem.on{
  color:#fff;background:linear-gradient(90deg,rgba(109,94,252,.26),rgba(168,85,247,.12));
  box-shadow:inset 0 0 0 1px rgba(139,125,255,.28);
}
.adm-navitem.on::before{
  content:"";position:absolute;left:-13px;top:50%;transform:translateY(-50%);
  width:4px;height:22px;border-radius:0 4px 4px 0;
  background:var(--grad);box-shadow:0 0 12px rgba(109,94,252,.8);
}
.adm-sidefoot{padding:13px;border-top:1px solid rgba(255,255,255,.08);flex-shrink:0}
.adm-sidefoot a{
  display:flex;align-items:center;gap:10px;padding:10px 13px;border-radius:12px;
  color:var(--sub);font-size:13.5px;text-decoration:none;transition:.18s;
}
.adm-sidefoot a svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8}
.adm-sidefoot a:hover{color:var(--p3);background:rgba(255,255,255,.05)}

/* ---------- 顶栏（深色玻璃，文字强制浅色）---------- */
.adm-top{
  position:sticky;top:0;z-index:50;height:var(--adm-top-h);flex-shrink:0;
  display:flex;align-items:center;gap:14px;padding:0 clamp(16px,3vw,30px);
  background:rgba(12,15,30,.92);border-bottom:1px solid rgba(255,255,255,.08);
  backdrop-filter:blur(14px);
  color:#eef1ff;--txt:#eef1ff;--sub:#98a1c9;--p3:#7dd3fc;
}
.adm-top h1{font-size:17px;font-weight:700;white-space:nowrap;color:#f2f4ff}
.adm-top .crumb{font-size:12.5px;color:var(--sub);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.adm-topsp{flex:1}
.adm-env{
  font-size:11.5px;font-weight:700;letter-spacing:.5px;color:var(--p3);
  border:1px solid rgba(34,211,238,.35);background:rgba(34,211,238,.08);
  padding:4px 10px;border-radius:99px;white-space:nowrap;
}
.adm-userchip{display:flex;align-items:center;gap:9px;color:var(--txt);font-size:13.5px;white-space:nowrap}
.adm-userchip .av{
  width:32px;height:32px;border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:700;color:#fff;background:var(--grad-cool);
}
.adm-logout{
  display:inline-flex;align-items:center;gap:7px;flex-shrink:0;
  padding:8px 14px;border-radius:10px;font-size:13.5px;font-weight:600;
  color:var(--sub);border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.04);
  text-decoration:none;transition:.18s;
}
.adm-logout svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9}
.adm-logout:hover{color:#fca5a5;border-color:rgba(248,113,113,.4);background:rgba(248,113,113,.08)}
.adm-menubtn{
  display:none;width:38px;height:38px;border:1px solid rgba(255,255,255,.14);border-radius:10px;
  background:rgba(255,255,255,.05);color:var(--txt);font-size:19px;cursor:pointer;flex-shrink:0;
}
.adm-mask{display:none;position:fixed;inset:0;background:rgba(4,5,12,.6);z-index:55;backdrop-filter:blur(2px)}

/* ---------- 主内容区 ---------- */
.adm-body{padding:26px clamp(16px,3vw,30px) 60px;max-width:1240px;width:100%;margin:0 auto}
/* 兼容旧 .admin-wrap 容器设定（其他页第 2/3 期再重构，先保证布局与旧表单样式不失效）*/
.adm-body.admin-wrap{max-width:1240px;margin:0 auto;padding:26px clamp(16px,3vw,30px) 60px}
.adm-body>h2{font-size:22px;font-weight:800;letter-spacing:-.2px;margin:4px 0 18px}

/* 页面头 */
.adm-pagehead{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:2px 0 22px;flex-wrap:wrap}
.adm-pagehead h2{font-size:22px;font-weight:800;letter-spacing:-.2px;margin:0}
.adm-pagehead p{color:var(--sub);font-size:13.5px;margin:6px 0 0}
.adm-pagehead .act{flex-shrink:0;display:flex;gap:10px;align-items:center}

/* 卡片 */
.adm-card{
  background:var(--adm-bg-card);border:1px solid var(--adm-line);
  border-radius:var(--adm-r-lg);padding:22px 22px;
  box-shadow:0 12px 34px -18px rgba(30,41,82,.22),inset 0 1px 0 rgba(255,255,255,.7);
  margin-bottom:20px;
}
.adm-card-h{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.adm-card-h h3{font-size:15.5px;font-weight:700;margin:0;display:flex;align-items:center;gap:9px}
.adm-card-h h3::before{content:"";width:4px;height:15px;border-radius:2px;background:var(--grad)}
.adm-card-h .hint{font-size:12.5px;color:var(--sub)}
.adm-card-h > div{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end}

/* 欢迎条 */
.adm-hello{
  position:relative;overflow:hidden;
  display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;
  background:linear-gradient(115deg,rgba(109,94,252,.12),rgba(14,165,233,.07) 60%,rgba(109,94,252,.04));
  border:1px solid rgba(109,94,252,.22);border-radius:var(--adm-r-lg);
  padding:20px 24px;margin-bottom:22px;
}
.adm-hello h2{font-size:19px;font-weight:800;margin:0 0 5px;color:var(--adm-txt)}
.adm-hello p{color:var(--sub);font-size:13.5px;margin:0}
.adm-hello .date{
  font-size:13px;color:var(--sub);background:#fff;
  border:1px solid var(--adm-line);padding:8px 14px;border-radius:99px;white-space:nowrap;
}

/* 统计卡 */
.adm-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}
.adm-stat{
  position:relative;overflow:hidden;
  background:var(--adm-bg-card);border:1px solid var(--adm-line);border-radius:var(--adm-r-lg);
  padding:20px 20px 18px;display:flex;align-items:center;gap:15px;
  box-shadow:0 12px 34px -18px rgba(30,41,82,.2);
  transition:transform .2s,border-color .2s,box-shadow .2s;
}
.adm-stat:hover{transform:translateY(-3px);border-color:rgba(109,94,252,.4);box-shadow:0 18px 44px -20px rgba(109,94,252,.35)}
.adm-stat .ic{
  width:46px;height:46px;border-radius:13px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
}
.adm-stat .ic svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8}
.adm-stat .lb{font-size:13px;color:var(--sub);margin-bottom:5px}
.adm-stat .vl{font-size:27px;font-weight:800;line-height:1.1;letter-spacing:-.5px;color:var(--adm-txt)}
.adm-stat .vl small{font-size:14px;font-weight:700;color:var(--sub);margin-left:2px}
.adm-stat.t-purple .ic{color:#6d5efc;background:rgba(109,94,252,.12);box-shadow:inset 0 0 0 1px rgba(109,94,252,.28)}
.adm-stat.t-cyan   .ic{color:#0ea5e9;background:rgba(14,165,233,.12);box-shadow:inset 0 0 0 1px rgba(14,165,233,.28)}
.adm-stat.t-green  .ic{color:#16a34a;background:rgba(22,163,74,.1);box-shadow:inset 0 0 0 1px rgba(22,163,74,.26)}
.adm-stat.t-amber  .ic{color:#d97706;background:rgba(217,119,6,.1);box-shadow:inset 0 0 0 1px rgba(217,119,6,.26)}
.adm-stat.t-pink   .ic{color:#db2777;background:rgba(219,39,119,.09);box-shadow:inset 0 0 0 1px rgba(219,39,119,.24)}
.adm-stat.t-blue   .ic{color:#2563eb;background:rgba(37,99,235,.1);box-shadow:inset 0 0 0 1px rgba(37,99,235,.26)}

/* ============ 导航栏目管理 ============ */
.adm-navgrid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:12px;
}
.adm-navck{
  display:flex;flex-direction:column;gap:7px;
  border:1px solid var(--adm-line);border-radius:12px;padding:13px 15px;background:#fafbfe;
}
.adm-navck .switch{font-size:14px}
.adm-navck code{
  font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;
  color:#6d5efc;background:rgba(109,94,252,.08);padding:3px 8px;border-radius:7px;
  align-self:flex-start;
}
.adm-navck small{font-size:12px;color:#b45309}
.adm-navck.is-off-global{opacity:.7;background:#f6f7fa}
/* 自定义栏目行：排序按钮 / 删除按钮 / 新行高亮 */
.adm-orderbtn{
  width:26px;height:26px;border-radius:7px;margin:0 2px;cursor:pointer;
  border:1px solid var(--adm-line);background:#fff;color:var(--adm-txt-soft);
  font-size:13px;line-height:1;transition:all .15s;
}
.adm-orderbtn:hover{border-color:var(--adm-p3);color:var(--adm-p3);background:rgba(109,94,252,.06)}
.adm-table .adm-rowdel{padding:6px 12px;font-size:12.5px}
.adm-table tr.adm-navnew td{background:#f6f7ff}
.adm-navempty td{font-size:13.5px}
/* 统一排序表：内置行标识 */
.adm-navname{font-size:14px;color:var(--adm-txt)}
.adm-tagline{
  display:inline-block;font-size:11px;font-weight:700;letter-spacing:.5px;
  color:#7c3aed;background:rgba(139,92,246,.1);border:1px solid rgba(139,92,246,.24);
  padding:2px 8px;border-radius:99px;vertical-align:1px;
}
.adm-navurl{font-size:12px;color:#6d5efc;background:rgba(109,94,252,.07);padding:3px 8px;border-radius:7px}
.adm-navwarn{display:block;margin-top:5px;font-size:12px;color:#b45309}
.adm-table tr.adm-navbuiltin td{background:#fbfcfe}
.adm-table tr.adm-navbuiltin:hover td{background:rgba(109,94,252,.04)}
/* 页脚二维码上传模块 */
.adm-qrbox{display:flex;gap:22px;align-items:flex-start;margin-top:14px;flex-wrap:wrap}
.adm-qrpreview{
  width:132px;height:132px;border-radius:14px;overflow:hidden;flex:0 0 auto;
  border:1px solid var(--adm-line);background:#f7f8fc;
  display:flex;align-items:center;justify-content:center;
}
.adm-qrpreview img{width:100%;height:100%;object-fit:cover;display:block}
.adm-qrph{display:flex;flex-direction:column;align-items:center;gap:8px;color:#9aa3b8}
.adm-qrph svg{fill:none;stroke:#aab2c8;stroke-width:1.5}
.adm-qrph span{font-size:12.5px}
.adm-qract{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding-top:4px}
.adm-qract .adm-btn{margin:0}
@media (max-width:640px){ .adm-navgrid{grid-template-columns:1fr} }

/* 数据表格 */
.adm-tablewrap{overflow-x:auto;border-radius:var(--adm-r-md);border:1px solid var(--adm-line);background:#fff}
/* 重置 main.css 全局 table 的独立卡片边框/背景，避免双重描边 */
table.adm-table{margin:0;background:transparent;border:0;border-radius:0;overflow:visible}
.adm-table{width:100%;border-collapse:collapse;font-size:14px;min-width:640px}
.adm-table thead th{
  text-align:left;font-size:12.5px;font-weight:700;letter-spacing:.5px;color:var(--sub);
  background:#f6f7fc;padding:13px 16px;white-space:nowrap;
  border-bottom:1px solid var(--adm-line);
}
.adm-table tbody td{padding:13px 16px;border-bottom:1px solid #eef0f7;vertical-align:middle;color:var(--adm-txt)}
.adm-table tbody tr:last-child td{border-bottom:0}
.adm-table tbody tr{transition:background .15s}
.adm-table tbody tr:nth-child(even){background:#fafbfe}
.adm-table tbody tr:hover{background:rgba(109,94,252,.06)}
.adm-table .num{text-align:right;font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap}
.adm-table .mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12.5px;color:#41485e}
.adm-table .mut{color:var(--sub);font-size:12.5px;white-space:nowrap}
.adm-table a.tl{color:var(--adm-txt);text-decoration:none}
.adm-table a.tl:hover{color:var(--adm-p3)}

/* 状态徽章（白底深字，保证对比度）*/
.adm-badge{
  display:inline-flex;align-items:center;gap:6px;
  font-size:12px;font-weight:700;padding:4px 10px;border-radius:99px;white-space:nowrap;
}
.adm-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.adm-badge.b-green{color:#15803d;background:rgba(34,197,94,.12);box-shadow:inset 0 0 0 1px rgba(34,197,94,.28)}
.adm-badge.b-amber{color:#b45309;background:rgba(245,158,11,.12);box-shadow:inset 0 0 0 1px rgba(245,158,11,.28)}
.adm-badge.b-gray{color:#64748b;background:rgba(100,116,139,.12);box-shadow:inset 0 0 0 1px rgba(100,116,139,.24)}
.adm-badge.b-purple{color:#7c3aed;background:rgba(139,92,246,.12);box-shadow:inset 0 0 0 1px rgba(139,92,246,.28)}

/* 空状态 */
.adm-empty{padding:52px 20px;text-align:center;color:var(--sub)}
.adm-empty .ei{
  width:60px;height:60px;margin:0 auto 14px;border-radius:18px;
  display:flex;align-items:center;justify-content:center;
  background:#f5f6fb;border:1px dashed var(--adm-line-hi);
}
.adm-empty .ei svg{width:28px;height:28px;fill:none;stroke:var(--sub);stroke-width:1.6}
.adm-empty p{margin:0;font-size:14px}

/* 成功提示条 */
.adm-body .ok-msg{
  display:flex;align-items:center;gap:9px;margin-bottom:18px;
  background:rgba(34,197,94,.1);border:1px solid rgba(34,197,94,.3);
  color:#15803d;border-radius:12px;padding:11px 15px;font-size:13.5px;font-weight:600;
}
.adm-body .ok-msg::before{content:"✓";display:inline-flex;align-items:center;justify-content:center;
  width:19px;height:19px;border-radius:50%;background:#22c55e;color:#fff;font-size:12px;font-weight:800}

/* 错误提示条 */
.adm-body .err-msg{
  display:flex;align-items:center;gap:9px;margin-bottom:18px;
  background:rgba(248,113,113,.1);border:1px solid rgba(248,113,113,.32);
  color:#dc2626;border-radius:12px;padding:11px 15px;font-size:13.5px;font-weight:600;
}
.adm-body .err-msg::before{content:"!";display:inline-flex;align-items:center;justify-content:center;
  width:19px;height:19px;border-radius:50%;background:#f87171;color:#fff;font-size:12px;font-weight:800;flex:0 0 19px}
.adm-body .adm-btn[disabled]{opacity:.42;cursor:not-allowed}

/* 主按钮（页面头内）*/
.adm-btnpri{
  display:inline-flex;align-items:center;gap:7px;
  padding:10px 18px;border-radius:12px;border:0;cursor:pointer;
  font-size:14px;font-weight:700;color:#fff;font-family:inherit;text-decoration:none;white-space:nowrap;
  background:var(--grad);box-shadow:0 10px 24px -8px rgba(109,94,252,.7),inset 0 1px 0 rgba(255,255,255,.25);
  transition:transform .18s,filter .18s;
}
.adm-btnpri:hover{transform:translateY(-2px);filter:brightness(1.07);color:#fff}
.adm-btnpri svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.1}

/* pay/settings 页总标题与顶栏页面名重复，第 2/3 期重构前先隐藏（news 页的“发布/编辑资讯”保留）*/
.adm-tab-pay>h2,.adm-tab-settings>h2{display:none}
.adm-tab-pay>.form-card,.adm-tab-settings>.form-card{margin-top:4px}

/* ---------- 响应式 ---------- */
@media (max-width:1100px){.adm-stats{grid-template-columns:repeat(2,1fr)}}
@media (max-width:960px){
  .adm-side{transform:translateX(-100%);box-shadow:0 0 60px rgba(0,0,0,.5)}
  .adm-side.open{transform:translateX(0)}
  .adm-main{margin-left:0}
  .adm-menubtn{display:inline-flex;align-items:center;justify-content:center}
  .adm-mask.show{display:block}
  .adm-env{display:none}
  .adm-userchip span{display:none}
}
@media (max-width:600px){
  .adm-stats{grid-template-columns:1fr}
  .adm-body{padding:18px 14px 48px}
  .adm-hello{padding:17px 18px}
}

/* ============================================================
   第 2 期：表单分区 / 统一控件 / wangEditor 适配 / 按钮系列
   ============================================================ */

/* 页面标题块 */
.adm-pagetitle{margin:2px 0 18px}
.adm-pagetitle h1{margin:0;font-size:21px;font-weight:800;letter-spacing:.3px;color:var(--adm-txt)}
.adm-pagetitle p{margin:5px 0 0;color:var(--sub);font-size:13.5px}

/* 表单分区 */
.adm-fgroup{margin-bottom:26px}
.adm-fgroup:last-child{margin-bottom:0}
.adm-fgroup-title{
  font-size:14px;font-weight:700;color:var(--adm-txt);margin:0 0 14px;
  display:flex;align-items:center;gap:9px;letter-spacing:.2px;
}
.adm-fgroup-title::before{
  content:"";display:inline-block;width:3px;height:15px;border-radius:2px;
  background:linear-gradient(180deg,var(--adm-p3),var(--adm-p4));
}
.adm-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.adm-field:last-child{margin-bottom:0}
.adm-field>label{font-size:13px;color:var(--adm-txt-soft);font-weight:600}
.adm-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}

/* 统一输入控件（覆盖 main.css） */
.adm-body input[type=text],
.adm-body input[type=number],
.adm-body input[type=tel],
.adm-body input[type=url],
.adm-body input[type=email],
.adm-body input[type=password],
.adm-body input[type=search],
.adm-body input[type=date],
.adm-body select,
.adm-body textarea{
  width:100%;height:42px;padding:0 13px;border-radius:10px;
  background:#f7f8fc;border:1px solid #dde1ee;
  color:var(--adm-txt);font-size:14px;font-family:inherit;transition:border-color .18s,box-shadow .18s,background .18s;
  box-sizing:border-box;
}
/* 搜索框去掉浏览器原生清除按钮的样式差异，保持与其他控件同高 */
.adm-body input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}
.adm-body input[type=date]{cursor:pointer;color:var(--adm-txt-soft)}
.adm-body input[type=date]:valid{color:var(--adm-txt)}
.adm-body textarea{height:auto;min-height:76px;padding:10px 13px;resize:vertical;line-height:1.65}
/* 新闻正文源码编辑器：等宽字体、保留缩进、可纵向拉伸 */
.adm-body textarea.adm-code{
  min-height:460px;padding:14px 16px;background:#fbfcff;
  font-family:Consolas,"Courier New",ui-monospace,monospace;
  font-size:13px;line-height:1.7;white-space:pre;overflow:auto;tab-size:2;
}
.adm-body input::placeholder,.adm-body textarea::placeholder{color:#9aa3b8}
.adm-body input:focus,.adm-body select:focus,.adm-body textarea:focus{
  outline:none;border-color:var(--adm-p3);
  box-shadow:0 0 0 3px rgba(109,94,252,.16);background:#fff;
}
.adm-body select{
  cursor:pointer;appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236d5efc' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;padding-right:38px;
}
.adm-body select option{background:#fff;color:#1f2430}

/* 表单底部操作 */
.adm-form-actions{
  display:flex;align-items:center;gap:10px;margin-top:22px;padding-top:18px;
  border-top:1px solid var(--adm-line);
}

/* 通用按钮系列 */
.adm-btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:8px 15px;border-radius:9px;font-size:13px;font-weight:600;font-family:inherit;
  cursor:pointer;text-decoration:none;white-space:nowrap;transition:all .18s;
  background:#f1f3fa;color:var(--adm-txt-soft);border:1px solid #dde1ee;
}
.adm-btn:hover{background:#e9ecf8;border-color:#ccd3ea;color:var(--adm-txt)}
.adm-btn-primary{background:var(--grad);border:0;color:#fff;box-shadow:0 8px 20px -6px rgba(109,94,252,.5)}
/* 必须显式补回背景：基类 .adm-btn:hover 特异性(0,2,0)高于本类(0,1,0)，
   不写 background 会被灰底 #e9ecf8 抢走，形成灰底白字 */
.adm-btn-primary:hover{background:var(--grad);filter:brightness(1.07);transform:translateY(-1px);color:#fff}
.adm-btn-primary:active{background:var(--grad);filter:brightness(.95);transform:translateY(0);color:#fff}
/* 按钮内图标统一尺寸（类名重构后旧 .adm-btnpri svg 规则已不再覆盖这些按钮） */
.adm-btn svg{width:16px;height:16px;flex-shrink:0}
.adm-btn-ghost{background:transparent;border-color:transparent}
.adm-btn-ghost:hover{background:#f1f3fa;border-color:transparent;color:var(--adm-p3)}
.adm-btn-danger{color:#dc2626;border-color:rgba(239,68,68,.35);background:rgba(239,68,68,.06)}
.adm-btn-danger:hover{background:rgba(239,68,68,.12);border-color:#ef4444;color:#b91c1c}

/* 表格内操作区：让编辑/删除并排 */
.adm-body table.adm-table form{display:inline;margin:0}
.adm-body table.adm-table .td-title a{color:var(--adm-txt);text-decoration:none;font-weight:600}
.adm-body table.adm-table .td-title a:hover{color:var(--adm-p3)}

/* 新闻资讯·操作列：置顶位选择 + 置顶/编辑/删除 单行并排、等高对齐，不再折行错位 */
.adm-body table.adm-table td.adm-news-acts{white-space:nowrap;text-align:right;min-width:238px}
.adm-body table.adm-table td.adm-news-acts form{
  display:inline-flex;align-items:center;vertical-align:middle;margin:0 2px;
}
.adm-body table.adm-table td.adm-news-acts .adm-pinform{gap:6px}
.adm-body table.adm-table td.adm-news-acts > a{vertical-align:middle}
/* 置顶位下拉：覆盖后台表单全局 select 规则（width:100%/height:42px/padding-right:38px），
   与同行操作按钮等高、紧凑成组 */
.adm-body select.adm-slot-sel{
  width:auto;min-width:66px;height:35px;box-sizing:border-box;
  padding:0 28px 0 12px;font-size:13px;border-radius:9px;
  background-color:#f1f3fa;border-color:#dde1ee;color:var(--adm-txt-soft);
  cursor:pointer;transition:all .18s;
}
.adm-body select.adm-slot-sel:hover{border-color:#ccd3ea;color:var(--adm-txt)}
.adm-body select.adm-slot-sel:focus{
  outline:none;border-color:var(--adm-p3);background-color:#f1f3fa;
  box-shadow:0 0 0 3px rgba(109,94,252,.12);
}

/* ---------- wangEditor 深色适配 ---------- */
/* 用 body.adm-body 提高特异性，覆盖 wangeditor/style.css 的 :root 变量 */
body.adm-body{
  --w-e-textarea-bg-color:#fcfcfe;
  --w-e-textarea-color:#1f2430;
  --w-e-textarea-border-color:var(--adm-line);
  --w-e-textarea-slight-bg-color:#f4f5f9;
  --w-e-textarea-slight-border-color:var(--adm-line);
  --w-e-textarea-slight-color:#aab0c0;
  --w-e-textarea-selected-border-color:var(--adm-p3);
  --w-e-textarea-handler-bg-color:var(--adm-p3);
  --w-e-toolbar-color:#5b6172;
  --w-e-toolbar-bg-color:#fafafc;
  --w-e-toolbar-active-color:var(--adm-p4);
  --w-e-toolbar-active-bg-color:#eeeff7;
  --w-e-toolbar-disabled-color:#c4c9d6;
  --w-e-toolbar-border-color:var(--adm-line);
  --w-e-modal-button-bg-color:#fff;
  --w-e-modal-button-border-color:var(--adm-line);
}
.adm-body #wfToolbar{
  border:1px solid var(--adm-line);border-bottom:0;
  border-radius:12px 12px 0 0;overflow:hidden;
  background:var(--w-e-toolbar-bg-color);
}
.adm-body #wfEditor{
  border:1px solid var(--adm-line);border-radius:0 0 12px 12px;
  overflow:hidden;height:380px;background:var(--w-e-textarea-bg-color);
}
/* 修正 wangEditor 弹层 z-index 不被侧边栏遮挡 */
.adm-body .w-e-select-list,.adm-body .w-e-drop-panel,.adm-body .w-e-modal{z-index:90}

/* ============================================================
   第 3 期：支付设置 / 站点设置 专属样式
   ============================================================ */

/* 顶部说明条 */
.adm-infobar{
  display:flex;flex-wrap:wrap;align-items:center;gap:10px;
  padding:13px 16px;border-radius:12px;margin-bottom:18px;
  background:rgba(109,94,252,.07);border:1px solid rgba(109,94,252,.22);
  color:var(--adm-txt-soft);font-size:13.5px;line-height:1.6;
}
.adm-infobar b{color:var(--adm-txt);font-weight:700}
.adm-infobar code{
  font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px;
  color:var(--adm-p3);background:rgba(109,94,252,.1);
  padding:3px 8px;border-radius:7px;word-break:break-all;
}
.adm-copy{
  display:inline-flex;align-items:center;gap:5px;
  padding:5px 11px;border-radius:8px;font-size:12px;font-weight:600;font-family:inherit;
  cursor:pointer;white-space:nowrap;transition:all .18s;
  background:rgba(109,94,252,.1);color:var(--adm-p3);border:1px solid rgba(109,94,252,.26);
}
.adm-copy:hover{background:rgba(109,94,252,.18);color:#5b4ddb}
.adm-copy svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2}
.adm-copy.done{background:rgba(34,197,94,.12);color:#15803d;border-color:rgba(34,197,94,.35)}

/* 密码/密钥小眼睛 */
.adm-pwd{position:relative}
.adm-pwd input{padding-right:46px!important}
.adm-eye{
  position:absolute;right:8px;top:50%;transform:translateY(-50%);
  width:30px;height:30px;border-radius:8px;border:0;background:transparent;
  color:var(--sub);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .15s,background .15s;
}
.adm-eye:hover{color:var(--adm-p3);background:#f1f3fa}
.adm-eye svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8}

/* 多行密钥(blur 遮罩) */
.adm-ta-wrap{position:relative}
.adm-ta-wrap textarea{transition:filter .2s}
.adm-ta-wrap.masked textarea{filter:blur(7px);pointer-events:none}
.adm-ta-wrap .adm-eye{top:42px}

/* 开关（覆盖 main.css .switch） */
.adm-body .switch{
  display:inline-flex;align-items:center;gap:10px;cursor:pointer;
  font-size:13.5px;color:var(--adm-txt);font-weight:600;user-select:none;
}
.adm-body .switch input{
  appearance:none;-webkit-appearance:none;
  width:38px;height:22px;border-radius:999px;margin:0;flex:0 0 auto;
  background:#d2d7e5;border:1px solid #c3c9db;
  position:relative;cursor:pointer;transition:all .2s;padding:0;
}
.adm-body .switch input::after{
  content:"";position:absolute;left:2px;top:2px;width:16px;height:16px;
  border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 3px rgba(0,0,0,.3);
}
.adm-body .switch input:checked{background:var(--grad);border-color:transparent}
.adm-body .switch input:checked::after{transform:translateX(16px)}

/* 短信测试行 */
.adm-body .sms-row{display:flex;gap:10px;flex-wrap:wrap}
.adm-body .sms-row input{flex:1;min-width:200px}

/* 辅助提示文字 */
.adm-hint{color:var(--sub);font-size:13px;margin:6px 0 0;line-height:1.6}
/* SMTP/短信测试结果：错误指引含换行，按纯文本换行渲染（textContent 已防 XSS） */
#mailTestRes,#smsTestRes{white-space:pre-line;line-height:1.75}

/* 吸底保存栏 */
.adm-stickybar{
  position:sticky;bottom:0;z-index:5;
  display:flex;align-items:center;gap:10px;justify-content:flex-end;
  margin:0 -24px -24px;padding:14px 24px;
  /* 起始即近不透明白：原 0% 全透明会让滚动时后方文字从栏顶透出 */
  background:linear-gradient(180deg,rgba(255,255,255,.86) 0%,rgba(255,255,255,.98) 22%,#fff 42%);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  border-top:1px solid var(--adm-line);
}
.adm-card .adm-stickybar{margin:0 -22px -22px;padding:14px 22px;border-radius:0 0 16px 16px}

/* 通道卡片轻微区分 */
.adm-chan-grid{display:grid;grid-template-columns:1fr;gap:18px}

/* ============================================================
   会员体系 · 卡档（铜 / 银 / 金）徽章与卡片
   ============================================================ */
.adm-badge.b-bronze{color:#b56b3c;background:rgba(210,135,74,.12);box-shadow:inset 0 0 0 1px rgba(210,135,74,.3)}
.adm-badge.b-silver{color:#64748b;background:rgba(148,163,184,.16);box-shadow:inset 0 0 0 1px rgba(148,163,184,.34)}
.adm-badge.b-gold{color:#a87f0e;background:rgba(226,180,64,.14);box-shadow:inset 0 0 0 1px rgba(226,180,64,.38)}

/* 数据概览：卡档分布 */
.adm-tiergrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;padding:4px 22px 22px}
.adm-tiercell{
  position:relative;display:block;text-decoration:none;color:var(--adm-txt);
  border:1px solid var(--adm-line);border-radius:14px;padding:16px 18px;
  background:#fafbfe;overflow:hidden;transition:transform .18s,border-color .18s,background .18s;
}
.adm-tiercell::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:#9aa3bd}
.adm-tiercell.t-bronze::before{background:linear-gradient(180deg,#e8a476,#b56b3c)}
.adm-tiercell.t-silver::before{background:linear-gradient(180deg,#cbd5e1,#94a3b8)}
.adm-tiercell.t-gold::before{background:linear-gradient(180deg,#f5d06a,#cf9b2e)}
.adm-tiercell:hover{transform:translateY(-3px);border-color:var(--adm-line-hi);background:#f4f5fd}
.tc-top{display:flex;align-items:baseline;gap:8px}
.tc-card{font-size:15px;font-weight:800}
.t-bronze .tc-card{color:#b56b3c}.t-silver .tc-card{color:#64748b}.t-gold .tc-card{color:#a87f0e}.t-free .tc-card{color:#8b95b2}
.tc-name{font-size:12.5px;color:var(--sub)}
.tc-num{font-size:32px;font-weight:800;margin-top:8px;letter-spacing:-1px;color:var(--adm-txt)}
.tc-num small{font-size:13px;font-weight:500;color:var(--sub);margin-left:3px}

/* 会员体系：三档等级展示卡 */
.adm-tiershow{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.adm-tiercard{
  position:relative;border:1px solid var(--adm-line);border-radius:18px;padding:24px 22px;
  background:linear-gradient(165deg,#ffffff,#f7f8fd);overflow:hidden;
}
.adm-tiercard::after{content:"";position:absolute;top:-60px;right:-60px;width:170px;height:170px;border-radius:50%;
  background:radial-gradient(circle,rgba(109,94,252,.08),transparent 70%)}
.adm-tiercard.t-bronze{box-shadow:inset 0 0 0 1px rgba(210,135,74,.14)}
.adm-tiercard.t-silver{box-shadow:inset 0 0 0 1px rgba(148,163,184,.18)}
.adm-tiercard.t-gold{box-shadow:inset 0 0 0 1px rgba(226,180,64,.22)}
.tc-medal{
  width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:24px;font-weight:800;color:#221a10;margin-bottom:14px;
}
.t-bronze .tc-medal{background:linear-gradient(140deg,#efb184,#b56b3c);box-shadow:0 8px 20px rgba(181,107,60,.4)}
.t-silver .tc-medal{background:linear-gradient(140deg,#eef2fa,#98a4bb);box-shadow:0 8px 20px rgba(152,164,187,.4)}
.t-gold .tc-medal{background:linear-gradient(140deg,#f8dc86,#cf9b2e);box-shadow:0 8px 22px rgba(207,155,46,.45)}
.tc-tier{font-size:15px;color:var(--sub);font-weight:600}
.tc-cardname{font-size:21px;font-weight:800;margin:2px 0 12px;display:flex;align-items:center;gap:8px;color:var(--adm-txt)}
.tc-tag{font-size:11px;font-weight:700;padding:2px 9px;border-radius:99px;background:rgba(14,165,233,.12);color:#0284c7}
.tc-price{font-size:38px;font-weight:800;letter-spacing:-1px;line-height:1;color:var(--adm-txt)}
.tc-price small{font-size:18px;margin-right:2px}
.tc-unit{font-size:14px;font-weight:500;color:var(--sub);margin-left:5px}
.tc-feat{list-style:none;margin:16px 0 0;padding:0;color:var(--sub);font-size:13.5px}
.tc-feat li{padding:7px 0;border-top:1px dashed var(--adm-line)}
.tc-feat b{color:var(--adm-txt)}

/* 套餐定价编辑：每档一条，左侧卡色条 */
.adm-planedit{border:1px solid var(--adm-line);border-radius:13px;padding:14px 16px 6px;margin-bottom:14px;background:#fafbfe}
.adm-planedit{border-left:3px solid #8a93b8}
.adm-planedit.t-bronze{border-left-color:#d2874a}
.adm-planedit.t-silver{border-left-color:#aebcd2}
.adm-planedit.t-gold{border-left-color:#e2b440}
.adm-planedit-h{margin-bottom:6px}

/* ============================================================
   注册用户：注册开关 / 手动建号 / 账号查询 / 表格 / 分页 / 详情
   ============================================================ */

/* ---- 注册开关 & 手动建号卡片 ---- */
.adm-regcard .adm-fgroup-title{margin-bottom:12px}
.adm-regswitch{display:flex;align-items:center;flex-wrap:wrap;margin:0}
.adm-regswitch .switch{margin-right:12px}
.adm-regcreate{
  margin-top:16px;padding-top:18px;
  border-top:1px solid var(--adm-line);
  background:linear-gradient(180deg,rgba(109,94,252,.045),rgba(109,94,252,0));
  border-radius:0 0 12px 12px;
}
.adm-regcreate-h{margin-bottom:12px;display:flex;align-items:baseline;flex-wrap:wrap}
.adm-regcreate-h strong{font-size:13.5px;font-weight:700;color:var(--adm-txt);margin-right:10px}
.adm-regcreate-h span{font-size:12.5px;color:var(--sub)}
/* 负 margin 技巧模拟 gap：搜狗等旧内核不支持 flex gap，子项统一 margin:6px 保证 PC/移动端等距 */
.adm-createform{display:flex;flex-wrap:wrap;margin:-6px}
.adm-ccf{flex:1 1 150px;min-width:140px;margin:6px}
.adm-ccf > em{
  display:block;font-style:normal;font-size:12px;font-weight:600;
  color:var(--adm-txt-soft);margin-bottom:6px;
}
.adm-ccf > em b{color:#ef4444;font-weight:700;margin-left:2px}
.adm-ccf input,.adm-ccf select{width:100%}
.adm-ccf-actions{flex:0 0 auto;margin:6px 6px 6px auto;display:flex;align-items:flex-end}

/* ---- 账号查询卡片 ---- */
.adm-userquery{
  display:flex;flex-wrap:wrap;align-items:flex-end;
  padding:16px 16px 10px;margin-bottom:18px;
}
/* 外层负 margin 抵消子项 margin，使内容与卡片边缘对齐 */
.adm-userquery > .uq-field,
.adm-userquery > .uq-actions{margin:0 6px 10px}
.uq-field{min-width:0}
.uq-field > em{
  display:block;font-style:normal;font-size:12px;font-weight:600;
  color:var(--adm-txt-soft);margin-bottom:6px;
}
.uq-key{flex:2 1 260px;min-width:220px}
.adm-userquery > label.uq-field:not(.uq-key){flex:1 1 150px;min-width:140px}
.uq-date{flex:2 1 300px;min-width:250px}
.uq-dates{display:flex;align-items:center}
.uq-dates input{flex:1 1 0;min-width:0}
.uq-dates i{flex-shrink:0;margin:0 9px;font-style:normal;font-size:12.5px;color:var(--sub)}
.uq-actions{flex:0 0 auto;margin-left:auto;display:flex;align-items:center}
.uq-actions .adm-btn{margin:0 0 0 8px;height:42px;padding:0 18px}
.uq-actions .adm-btn:first-child{margin-left:0}

.adm-u-name{font-weight:700}
.adm-u-sub{font-size:12px;color:var(--sub);margin-top:2px;white-space:nowrap}

.adm-pager{display:flex;align-items:center;justify-content:center;gap:16px;margin:20px 0 8px;font-size:14px}
.adm-pager a{padding:8px 16px;border:1px solid var(--adm-line);border-radius:10px;color:var(--adm-txt);text-decoration:none;background:#fff}
.adm-pager a:hover{border-color:var(--adm-line-hi);background:#f6f7fd}
.adm-pager .dis{padding:8px 16px;color:#9aa3b8;border:1px solid var(--adm-line);border-radius:10px}
.adm-pager .cur{color:var(--sub)}

/* 详情头部 */
.adm-uvhead{display:flex;gap:18px;align-items:flex-start;padding:22px}
.adm-avatar{
  width:60px;height:60px;border-radius:16px;flex-shrink:0;font-size:28px;font-weight:800;color:#fff;
  display:flex;align-items:center;justify-content:center;
  background:var(--grad);box-shadow:0 10px 24px rgba(109,94,246,.4);
}
.adm-uvmain{min-width:0}
.adm-uvname{display:flex;flex-wrap:wrap;align-items:center;gap:9px;font-size:19px;font-weight:800;color:var(--adm-txt)}
.adm-uvsub{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:11px;font-size:13.5px;color:var(--sub)}
.adm-uvsub i{color:#8a93a8;font-style:normal}

/* 汇总指标 */
.adm-sumgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-top:18px}
.adm-sumcell{border:1px solid var(--adm-line);border-radius:14px;padding:15px 17px;background:#fafbfe}
.adm-sumcell .lb{font-size:12.5px;color:var(--sub);margin-bottom:8px}
.adm-sumcell .vl{font-size:26px;font-weight:800;letter-spacing:-.5px;color:var(--adm-txt)}
.adm-sumcell .vl small{font-size:13px;font-weight:500;color:var(--sub);margin-left:3px}
.adm-sumcell .vl.sm{font-size:16px;font-weight:700;line-height:1.5}

/* 管理操作 */
.adm-ops{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:20px}
.adm-op{border:1px solid var(--adm-line);border-radius:13px;padding:15px;background:#fafbfe}
.adm-op>label{display:block;font-size:13.5px;font-weight:700;margin-bottom:10px}
.adm-oprow{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.adm-oprow input,.adm-oprow select{flex:1 1 110px;min-width:0}

@media(max-width:1100px){
  .adm-tiergrid{grid-template-columns:repeat(2,1fr)}
  .adm-tiershow{grid-template-columns:1fr}
  .adm-sumgrid{grid-template-columns:repeat(2,1fr)}
  .adm-ops{grid-template-columns:1fr}
}
@media(max-width:640px){
  .adm-tiergrid,.adm-sumgrid{grid-template-columns:1fr}
  /* 移动端：建号表单与查询条件全部整行排列，按钮等宽方便触控 */
  .adm-ccf{flex:1 1 100%;min-width:0}
  .adm-ccf-actions{flex:1 1 100%;margin-left:6px}
  .adm-ccf-actions .adm-btn{flex:1;justify-content:center}
  .uq-key,
  .adm-userquery > label.uq-field:not(.uq-key),
  .uq-date{flex:1 1 100%;min-width:0}
  .uq-actions{flex:1 1 100%;margin-left:6px}
  .uq-actions .adm-btn{flex:1;justify-content:center;margin-top:0}
}

/* ============ 采集中心 · 定时任务配置 ============ */
/* 运行状态条 */
.sch-status{
  display:grid;grid-template-columns:1fr 1.2fr 1.2fr 2fr;gap:1px;
  background:var(--adm-line);border:1px solid var(--adm-line);
  border-radius:var(--adm-r-md);overflow:hidden;margin-bottom:18px;
}
.sch-stat{background:#fafbfe;padding:13px 16px;display:flex;flex-direction:column;gap:6px;min-width:0}
.sch-stat .lb{font-size:12px;color:var(--adm-txt-soft);letter-spacing:.5px}
.sch-stat .vl{font-size:14px;font-weight:700;color:var(--adm-txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sch-stat-wide .vl{font-weight:600;font-size:13px}

/* 调度模式分段选择 */
.sch-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.sch-mode{
  display:flex;flex-direction:column;gap:5px;padding:14px 16px;
  border:1.5px solid var(--adm-line);border-radius:12px;background:#fafbfe;
  cursor:pointer;transition:border-color .18s,background .18s;
}
.sch-mode input{position:absolute;opacity:0;pointer-events:none}
.sch-mode span{font-size:14.5px;font-weight:700;color:var(--adm-txt)}
.sch-mode small{font-size:12px;color:var(--adm-txt-soft);line-height:1.5}
.sch-mode:hover{border-color:var(--adm-line-hi)}
.sch-mode:has(input:checked){
  border-color:var(--adm-p3);background:rgba(109,94,252,.06);
  box-shadow:inset 0 0 0 1px rgba(109,94,252,.25);
}
.sch-mode:has(input:checked) span{color:var(--adm-p3)}

/* 模式面板：默认隐藏，命中 .on 显示 */
.sch-panel{display:none;margin-top:16px}
.sch-panel.on{display:block}

/* 时间点动态行 */
.sch-times{display:flex;flex-direction:column;gap:9px}
.sch-time-row{display:flex;align-items:center;gap:10px}
.sch-time-row input[type=time]{width:170px}
.sch-time-row .sch-time-del{padding:7px 14px}

/* 星期勾选 */
.sch-days{display:flex;flex-wrap:wrap;gap:9px}
.sch-day{
  display:inline-flex;align-items:center;gap:7px;
  border:1.5px solid var(--adm-line);border-radius:99px;padding:8px 15px;
  background:#fafbfe;cursor:pointer;font-size:13.5px;font-weight:600;color:var(--adm-txt-soft);
  transition:.18s;
}
.sch-day input{position:absolute;opacity:0;pointer-events:none}
.sch-day:hover{border-color:var(--adm-line-hi)}
.sch-day:has(input:checked){
  border-color:var(--adm-p3);background:rgba(109,94,252,.08);color:var(--adm-p3);
  box-shadow:inset 0 0 0 1px rgba(109,94,252,.2);
}
@media(max-width:900px){
  .sch-status{grid-template-columns:1fr 1fr}
  .sch-modes{grid-template-columns:1fr}
}

/* ============================================================
   伪原创词库 · 编辑模态框
   ============================================================ */
.adm-modal-mask{
  position:fixed;inset:0;z-index:100;display:none;
  background:rgba(15,18,36,.45);backdrop-filter:blur(4px);
  align-items:center;justify-content:center;padding:20px;
}
.adm-modal-mask.on{display:flex}
.adm-modal{
  background:var(--adm-bg-card);border-radius:18px;box-shadow:0 24px 60px rgba(15,18,36,.22);
  width:100%;max-width:520px;max-height:90vh;overflow-y:auto;
  animation:admModalIn .22s cubic-bezier(.2,.8,.2,1);
}
@keyframes admModalIn{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}
.adm-modal-h{
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 22px 14px;border-bottom:1px solid var(--adm-line);
}
.adm-modal-h h3{font-size:16px;font-weight:700;color:var(--adm-txt)}
.adm-modal-x{
  width:32px;height:32px;border-radius:8px;border:0;background:#f1f3fa;
  color:var(--adm-txt-soft);cursor:pointer;display:flex;align-items:center;justify-content:center;
  font-size:15px;transition:background .15s,color .15s;
}
.adm-modal-x:hover{background:#e2e5f0;color:var(--adm-txt)}
.adm-modal .adm-field{margin-bottom:14px}
.adm-modal .adm-field label{display:block;font-size:13px;font-weight:600;color:var(--adm-txt-soft);margin-bottom:6px}
.adm-modal .adm-field input,.adm-modal .adm-field select{
  width:100%;height:38px;border:1px solid var(--adm-line);border-radius:10px;
  padding:0 12px;font-size:14px;color:var(--adm-txt);background:#fff;
  transition:border-color .15s,box-shadow .15s;
}
.adm-modal .adm-field input:focus,.adm-modal .adm-field select:focus{
  border-color:var(--adm-p3);box-shadow:0 0 0 3px rgba(109,94,252,.12);outline:none;
}

/* ============================================================
   伪原创词库 · 内置词库维护卡片
   ============================================================ */
.lex-maint{
  display:flex;gap:0;align-items:stretch;flex-wrap:wrap;
  padding:6px 18px 18px;
}
.lex-maint-group{
  display:flex;gap:10px;align-items:flex-end;
  padding:14px 26px;flex:1;min-width:280px;
}
.lex-maint-group:first-child{padding-left:8px}
.lex-maint-group:last-child{padding-right:8px}
.lex-maint-divider{
  width:1px;background:linear-gradient(to bottom,transparent,var(--adm-line) 18%,var(--adm-line) 82%,transparent);
  margin:14px 0;
}
.lex-maint-group .adm-field{margin-bottom:0}
.lex-maint-group .adm-field select{width:170px;height:38px}
.lex-maint-group .adm-btn-primary,.lex-maint-group .adm-btn-danger{flex:0 0 auto}
@media(max-width:900px){
  .lex-maint{flex-direction:column;padding:6px 10px 14px}
  .lex-maint-group{padding:10px 8px;min-width:0}
  .lex-maint-divider{width:auto;height:1px;margin:0 8px;
    background:linear-gradient(to right,transparent,var(--adm-line) 12%,var(--adm-line) 88%,transparent)}
}

/* ============================================================
   伪原创词库 · 批量导入扩容卡片
   ============================================================ */
.lex-import{padding:6px 18px 18px}
.lex-import-bar{display:flex;gap:16px;flex-wrap:wrap;padding:10px 0 14px}
.lex-import-bar .adm-field{margin-bottom:0}
.lex-import-bar .adm-field select{width:190px;height:38px}
.lex-import textarea{
  width:100%;box-sizing:border-box;border:1px solid var(--adm-line);border-radius:12px;
  padding:12px 14px;font-family:inherit;font-size:13.5px;line-height:1.7;color:var(--adm-txt);
  background:#fbfcff;resize:vertical;transition:border-color .15s,box-shadow .15s,background .15s;
}
.lex-import textarea:focus{
  outline:none;border-color:var(--adm-p3);background:#fff;
  box-shadow:0 0 0 3px rgba(109,94,252,.12);
}
.lex-import textarea::placeholder{color:#a3a9c2}
.lex-import-foot{margin-top:12px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}

/* ============================================================
   伪原创词库 · 提示条 + 统计卡 + 新增词条 + 列表 + 分页
   ============================================================ */
.lex-alert{
  margin-bottom:14px;padding:10px 18px;border-radius:10px;font-size:14px;font-weight:500;
  display:flex;align-items:center;gap:8px;
}
.lex-alert.ok{background:rgba(34,197,94,.1);color:#22c55e;border:1px solid rgba(34,197,94,.3)}
.lex-alert.err{background:rgba(239,68,68,.12);color:#f87171;border:1px solid rgba(239,68,68,.35)}

/* 统计卡 */
.lex-stats{
  display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:14px;
}
.lex-stat-card{
  display:block;text-decoration:none;padding:16px 18px;border-radius:14px;cursor:pointer;
  background:var(--adm-bg-card);border:1px solid var(--adm-line);
  transition:transform .15s,border-color .15s,box-shadow .15s;
}
.lex-stat-card:hover{transform:translateY(-2px);border-color:var(--adm-p3);box-shadow:0 8px 24px rgba(109,94,252,.12)}
.lex-stat-card.on{
  border-color:var(--adm-p3);background:linear-gradient(135deg,rgba(109,94,252,.06),rgba(168,85,247,.04));
  box-shadow:0 0 0 2px rgba(168,85,247,.25);
}
.lex-stat-card .lb{font-size:13px;font-weight:600;color:var(--adm-txt-soft);margin-bottom:8px}
.lex-stat-card .vl{font-size:24px;font-weight:800;color:var(--adm-txt);line-height:1}
.lex-stat-card .vl small{font-size:12px;font-weight:500;color:#94a3b8}
@media(max-width:900px){.lex-stats{grid-template-columns:repeat(2,1fr)}}

/* 新增词条 */
.lex-add{padding:6px 18px 18px}
.lex-add-bar{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-end;padding:10px 0 4px}
.lex-add-bar .adm-field{margin-bottom:0}
.lex-add-bar .adm-field select,.lex-add-bar .adm-field input{width:180px;height:38px}
.lex-add-bar .adm-field input[type="text"]{
  border:1px solid var(--adm-line);border-radius:10px;padding:0 12px;font-size:14px;
  color:var(--adm-txt);background:#fff;transition:border-color .15s,box-shadow .15s;
}
.lex-add-bar .adm-field input[type="text"]:focus{
  outline:none;border-color:var(--adm-p3);box-shadow:0 0 0 3px rgba(109,94,252,.12);
}
.lex-add-bar .adm-btn-primary{flex:0 0 auto;margin-bottom:0}

/* 列表筛选栏 */
.lex-filter{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.lex-filter select,.lex-filter input[type="text"]{
  height:34px;padding:0 10px;border:1px solid var(--adm-line);border-radius:8px;
  font-size:13px;color:var(--adm-txt);background:#fff;transition:border-color .15s;
}
.lex-filter select{width:140px}
.lex-filter input[type="text"]{width:160px}
.lex-filter select:focus,.lex-filter input[type="text"]:focus{
  outline:none;border-color:var(--adm-p3);
}

/* 列表操作列 */
.lex-acts{white-space:nowrap}
.lex-acts form,.lex-acts button{margin-left:4px}
.lex-acts .lex-del{color:#ef4444}
.lex-desc{font-size:12px;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lex-empty{text-align:center;padding:28px 0!important}

/* ============================================================
   资讯正文编辑器 · 富文本 / 源码双模式
   ============================================================ */
.wf-ed-bar{
  display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  padding:7px 8px;margin-bottom:10px;
  background:#f7f8fd;border:1px solid var(--adm-line);border-radius:11px;
}
.wf-ed-modes{display:inline-flex;padding:3px;background:#e9ebf5;border-radius:9px}
.wf-ed-mode{
  border:0;background:transparent;cursor:pointer;
  padding:6px 16px;border-radius:7px;
  font-family:inherit;font-size:13px;font-weight:600;color:var(--adm-txt-soft);
  transition:background .16s,color .16s,box-shadow .16s;
}
.wf-ed-mode:hover{color:var(--adm-txt)}
.wf-ed-mode.on{
  background:#fff;color:var(--adm-p3);
  box-shadow:0 1px 4px rgba(30,41,82,.14);
}
.wf-ed-mode:disabled{opacity:.45;cursor:not-allowed}
.wf-ed-status{
  font-size:12.5px;font-weight:600;color:var(--adm-txt-soft);
  padding:4px 11px;border-radius:99px;background:#fff;border:1px solid var(--adm-line);
  white-space:nowrap;
}
.wf-ed-status.warn{color:#b45309;background:#fffbeb;border-color:#fde68a}
.wf-ed-status.err{color:#b91c1c;background:#fef2f2;border-color:#fecaca}
.wf-ed-status.ok{color:#15803d;background:#f0fdf4;border-color:#bbf7d0}

/* 操作区「允许正文大幅删减」勾选 */
.wf-shrink{
  display:inline-flex;align-items:center;gap:7px;
  font-size:13px;color:var(--adm-txt-soft);cursor:pointer;user-select:none;
}
.wf-shrink input{width:15px;height:15px;margin:0;accent-color:var(--adm-p3);cursor:pointer}

/* 页面顶部提示条 */
.adm-notice{
  margin-bottom:16px;padding:12px 18px;border-radius:11px;
  font-size:13.5px;font-weight:500;line-height:1.6;
}
.adm-notice.ok{background:#f0fdf4;border:1px solid #bbf7d0;color:#15803d}
.adm-notice.err{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c}
@media(max-width:640px){
  .wf-ed-bar{align-items:flex-start;flex-direction:column;gap:8px}
  .wf-ed-modes{width:100%}
  .wf-ed-mode{flex:1}
}

/* 分页 */
.lex-pager{display:flex;justify-content:center;align-items:center;gap:10px;padding:16px 0}


