/* ============================================================
   全球能源 · 管理后台样式
   ============================================================ */
:root {
  --navy: #0B2545; --blue: #1F5EFF; --blue-d: #0F46D8;
  --bg: #F0F4F9; --text: #1B2B3F; --sub: #5A6B80; --muted: #8A99A8;
  --line: #E2E9F2; --card: #fff; --danger: #E5484D;
  /* 与前台一致的扩展色阶，供标签点选 / 编辑器等新增组件使用 */
  --ink-1: #101B2D; --ink-2: #33455C; --ink-4: #93A2B4;
  --blue-l: #EAF1FF; --up: #E5484D;
  --radius-sm: 10px;
  --ease: cubic-bezier(.4, 0, .2, 1);
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif;
  background: var(--bg); color: var(--text); font-size: 14px; line-height: 1.6;
}
a { color: inherit; text-decoration: none; }
.mono { font-family: ui-monospace, Consolas, monospace; }

/* ---------- 登录页 ---------- */
.login-body { min-height: 100vh; display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, var(--navy) 0%, #12386B 100%); }
.login-card { background: #fff; border-radius: 14px; padding: 40px 36px; width: 380px; box-shadow: 0 20px 60px rgba(0,0,0,0.3); }
.login-brand { display: flex; align-items: center; gap: 10px; margin-bottom: 24px; }
.login-brand img { width: 34px; height: 34px; }
.login-brand strong { font-size: 18px; }
.login-card label { display: block; font-size: 13px; color: var(--sub); margin-bottom: 6px; }
.login-card input { width: 100%; padding: 11px 14px; border: 1px solid var(--line); border-radius: 8px; font-size: 14px; outline: none; }
.login-card input:focus { border-color: var(--blue); }
.login-error { background: #FDECEC; color: var(--danger); font-size: 13px; border-radius: 6px; padding: 8px 12px; margin-bottom: 14px; }
.login-tip { font-size: 12px; color: var(--muted); margin-top: 16px; text-align: center; }

/* ---------- 布局 ---------- */
.admin-layout { display: flex; min-height: 100vh; }
.admin-side { width: 210px; background: var(--navy); color: #9FB1C1; display: flex; flex-direction: column; position: sticky; top: 0; height: 100vh; flex-shrink: 0; }
.side-brand { display: flex; align-items: center; gap: 10px; padding: 20px 18px; color: #fff; font-weight: 700; font-size: 15.5px; border-bottom: 1px solid rgba(255,255,255,0.08); }
.side-brand img { width: 26px; height: 26px; }
.admin-side nav { padding: 14px 10px; display: flex; flex-direction: column; gap: 4px; flex: 1; }
.admin-side nav a { padding: 10px 14px; border-radius: 8px; font-size: 14px; color: #B9C7D6; }
.admin-side nav a:hover { background: rgba(255,255,255,0.08); color: #fff; }
.admin-side nav a.on { background: var(--blue); color: #fff; font-weight: 600; }
.side-foot { padding: 14px 18px; border-top: 1px solid rgba(255,255,255,0.08); display: flex; flex-direction: column; gap: 8px; }
.side-foot a { font-size: 13px; color: #9FB1C1; }
.side-foot a:hover { color: #fff; }
.side-user { font-size: 12.5px; color: #C7D4E1; line-height: 1.5; }
.side-user strong { color: #fff; }
.side-role { font-size: 11px; color: #7E93A8; }
.admin-main { flex: 1; padding: 26px 30px; min-width: 0; }

/* ---------- 通用元素 ---------- */
.page-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 20px; flex-wrap: wrap; }
.page-head h2 { font-size: 20px; font-weight: 800; }
.page-head h2 small { font-size: 13px; color: var(--muted); font-weight: 400; margin-left: 8px; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  background: var(--blue); color: #fff; border: none; border-radius: 7px;
  padding: 8px 18px; font-size: 13.5px; font-weight: 600; cursor: pointer; }
.btn:hover { background: var(--blue-d); }
.btn.ghost { background: transparent; color: var(--sub); border: 1px solid var(--line); }
.btn.ghost:hover { color: var(--blue); border-color: var(--blue); background: #fff; }
.btn.danger { background: transparent; color: var(--danger); border: 1px solid #F5C6C8; }
.btn.danger:hover { background: #FDECEC; }
.btn.mini { padding: 4px 12px; font-size: 12.5px; border-radius: 6px; }
.search-inline { display: flex; gap: 8px; }
.search-inline input { padding: 8px 12px; border: 1px solid var(--line); border-radius: 7px; width: 220px; outline: none; }
.search-inline input:focus { border-color: var(--blue); }

/* 表格 */
.tbl { width: 100%; border-collapse: collapse; background: var(--card); border-radius: 10px; overflow: hidden; box-shadow: 0 2px 10px rgba(11,37,69,0.05); }
.tbl th { background: #F7FAFD; text-align: left; font-size: 12.5px; color: var(--sub); padding: 10px 12px; border-bottom: 1px solid var(--line); white-space: nowrap; }
.tbl td { padding: 10px 12px; border-bottom: 1px solid #F0F4F8; font-size: 13.5px; vertical-align: middle; }
.tbl tr:hover td { background: #FAFCFF; }
.t-title { max-width: 380px; }
.t-title a { font-weight: 600; }
.t-title a:hover { color: var(--blue); }
.t-tags { color: var(--muted); font-size: 12.5px; }
.t-ops { display: flex; gap: 6px; align-items: center; white-space: nowrap; }
.pill { font-size: 12px; padding: 3px 10px; border-radius: 999px; }
.pill.published { background: #E7F6EE; color: #16A34A; }
.pill.draft { background: #FFF4E0; color: #D97706; }
.pager { display: flex; gap: 8px; margin-top: 18px; }
.pager a { min-width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; background: #fff; border: 1px solid var(--line); border-radius: 6px; padding: 0 10px; }
.pager a.on { background: var(--blue); border-color: var(--blue); color: #fff; }
.empty { text-align: center; color: var(--muted); padding: 30px 0; }
.hint { font-size: 12.5px; color: var(--muted); margin-top: 8px; }

/* 表单 */
.article-form, .panel { background: var(--card); border-radius: 12px; padding: 24px 26px; box-shadow: 0 2px 10px rgba(11,37,69,0.05); }
.article-form { max-width: 860px; }
.field { margin-bottom: 16px; flex: 1; min-width: 0; }
.field label { display: block; font-size: 13px; color: var(--sub); margin-bottom: 6px; font-weight: 600; }
.field input[type="text"], .field input[type="password"], .field select, .field textarea, .panel .inp {
  width: 100%; padding: 9px 12px; border: 1px solid var(--line); border-radius: 7px; font-size: 14px; outline: none; font-family: inherit;
}
.field textarea { resize: vertical; line-height: 1.7; }
.field input:focus, .field select:focus, .field textarea:focus, .panel .inp:focus { border-color: var(--blue); }

/* 关联企业自动联想 */
.co-ac { position: relative; }
.co-ac input[type="text"] { padding-right: 36px; }
.co-clear { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); width: 22px; height: 22px; border: none; background: var(--line); color: var(--sub); border-radius: 50%; cursor: pointer; font-size: 16px; line-height: 1; display: flex; align-items: center; justify-content: center; }
.co-clear:hover { background: var(--danger); color: #fff; }
.co-list { position: absolute; z-index: 60; left: 0; right: 0; top: calc(100% + 4px); background: #fff; border: 1px solid var(--line); border-radius: var(--radius-sm); box-shadow: 0 10px 30px rgba(11, 37, 69, .14); max-height: 300px; overflow-y: auto; display: none; }
.co-item { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 12px; cursor: pointer; border-bottom: 1px solid #F1F5F9; }
.co-item:last-child { border-bottom: none; }
.co-item:hover, .co-item.active { background: var(--blue-l); }
.co-name { font-size: 14px; color: var(--ink-1); }
.co-name b { color: var(--blue); }
.co-meta { display: flex; gap: 6px; align-items: center; flex-shrink: 0; }
.co-cat { font-size: 12px; color: var(--sub); background: #EEF2F8; padding: 2px 8px; border-radius: 10px; }
.co-reg { font-size: 12px; color: var(--muted); }
.co-empty { padding: 11px 12px; color: var(--sub); font-size: 13px; }
.co-create { color: var(--blue); font-weight: 600; }
.co-create:hover { text-decoration: underline; }
.co-create-row { padding: 9px 12px; border-top: 1px dashed var(--line); }
.field-row { display: flex; gap: 16px; }
.content-editor { font-family: ui-monospace, Consolas, monospace; font-size: 13px; }
#coverPreview { margin-top: 8px; max-width: 260px; border-radius: 8px; border: 1px solid var(--line); }

/* ---------- 外链智能导入卡 ---------- */
.import-card { background: linear-gradient(135deg, #0B2545 0%, #143A6B 100%); color: #fff; border-radius: 12px; padding: 20px 22px; margin-bottom: 22px; box-shadow: 0 6px 22px rgba(11,37,69,0.16); }
.import-card .ic-head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.import-card .ic-badge { background: rgba(255,255,255,0.16); color: #fff; font-size: 12px; font-weight: 700; padding: 3px 10px; border-radius: 999px; letter-spacing: .5px; }
.import-card .ic-head h3 { font-size: 16px; font-weight: 700; color: #fff; }
.import-card .ic-row { display: flex; gap: 10px; }
.import-card .ic-row input { flex: 1; padding: 11px 14px; border: none; border-radius: 8px; font-size: 14px; outline: none; }
.import-card .ic-row .btn { background: #fff; color: var(--navy); font-weight: 700; }
.import-card .ic-row .btn:hover { background: #EAF1FF; }
.import-card .ic-row .btn[disabled] { opacity: .6; cursor: default; }
.import-card .hint { color: rgba(255,255,255,0.7); margin-top: 10px; }
.import-result { margin-top: 12px; border-radius: 8px; padding: 10px 14px; font-size: 13px; display: none; }
.import-result.show { display: block; }
.import-result.ok { background: rgba(255,255,255,0.12); color: #fff; }
.import-result.warn { background: #FFF4D6; color: #8A5A00; }
.import-result.err { background: #FDECEC; color: var(--danger); }

/* ---------- 编辑器辅助栏（字数 / 自动保存 / 嵌入代码） ---------- */
.rt-helpbar { display: flex; align-items: center; gap: 12px; padding: 8px 12px; background: #F3F6FB; border-bottom: 1px solid var(--line); font-size: 12.5px; color: var(--ink-3); flex-wrap: wrap; }
.rt-hbtn { border: 1px solid var(--line); background: #fff; color: var(--ink-2); border-radius: 6px; padding: 5px 12px; font-size: 12.5px; cursor: pointer; font-family: inherit; transition: all .16s var(--ease); }
.rt-hbtn:hover { border-color: var(--blue); color: var(--blue); }
.rt-count { font-variant-numeric: tabular-nums; }
.rt-autosave { margin-left: auto; color: #2E8B57; }

/* ---------- 编辑器容器（复用 345wk 文库站的 wangEditor 经典版：工具栏 + 编辑区，原生 placeholder） ---------- */
.rt-wrap { border: 1px solid var(--line); border-radius: var(--radius-sm); overflow: hidden; background: #fff; }
.rt-editor { min-height: 440px; background: #fff; position: relative; }
.rt-editor .w-e-text-container { min-height: 440px; border: none; }
.rt-editor .w-e-text { min-height: 420px; line-height: 1.85; font-size: 15px; color: var(--ink-1); padding: 14px 18px; }
.rt-editor .w-e-text p { margin-bottom: 12px; }
.rt-editor .w-e-text img { max-width: 100%; border-radius: 6px; margin: 10px 0; }
.rt-editor .w-e-text blockquote { border-left: 3px solid var(--blue); padding-left: 14px; color: var(--sub); margin: 12px 0; }
.rt-editor .w-e-text video, .rt-editor .w-e-text iframe { max-width: 100%; border-radius: 8px; margin: 10px 0; background: #000; }
.rt-editor .w-e-toolbar { flex-wrap: wrap; border-bottom: none; }
.rt-fallback { width: 100%; min-height: 420px; border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 14px; font-family: inherit; font-size: 15px; line-height: 1.85; resize: vertical; }
.keydata { border: 1px dashed var(--line); border-radius: 10px; padding: 14px 16px 4px; margin: 6px 0 16px; }
.keydata legend { font-size: 13px; color: var(--sub); font-weight: 600; padding: 0 8px; }
.kd-row { display: flex; gap: 10px; margin-bottom: 10px; }
.kd-row input { flex: 1; padding: 8px 12px; border: 1px solid var(--line); border-radius: 7px; font-size: 13px; outline: none; }
.kd-row input:focus { border-color: var(--blue); }
.flags { display: flex; gap: 22px; flex-wrap: wrap; }
.flags label { font-weight: 400; font-size: 14px; display: flex; align-items: center; gap: 6px; cursor: pointer; }
.form-ops { display: flex; gap: 10px; margin-top: 8px; }
.panel { margin-bottom: 22px; }
.panel h3 { font-size: 15.5px; margin-bottom: 12px; }
.inline-form { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-top: 14px; }
.inline-form .inp, .inline-form select { width: auto; min-width: 130px; }
.panel table { margin-bottom: 4px; }

@media (max-width: 760px) {
  .admin-layout { flex-direction: column; }
  .admin-side { width: 100%; height: auto; position: static; }
  .admin-side nav { flex-direction: row; overflow-x: auto; }
  .admin-main { padding: 16px; }
  .field-row { flex-direction: column; gap: 0; }
  .tbl { display: block; overflow-x: auto; }
}


/* ============================================================
   文章表单：常用标签点选 / 关键词提取 / wangEditor 编辑器
   ============================================================ */

/* ---------- 常用标签点选（多选 chips） ---------- */
.tag-picker { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 9px; padding: 10px 12px; background: #F7F9FC; border: 1px solid var(--line); border-radius: var(--radius-sm); }
.tp-label { font-size: 12.5px; color: var(--ink-4); margin-right: 2px; }
.tp-chip { border: 1px solid var(--line); background: #fff; color: var(--ink-2); border-radius: 999px; padding: 5px 14px; font-size: 13px; cursor: pointer; font-family: inherit; transition: all .16s var(--ease); }
.tp-chip:hover { border-color: var(--blue); color: var(--blue); }
.tp-chip.on { background: var(--blue); border-color: var(--blue); color: #fff; font-weight: 500; box-shadow: 0 2px 6px rgba(31,94,255,.22); }
.tp-chip.on::before { content: '✓ '; font-size: 11px; }
.tp-clear { margin-left: auto; border: none; background: transparent; color: var(--ink-4); font-size: 12.5px; cursor: pointer; font-family: inherit; text-decoration: underline; }
.tp-clear:hover { color: var(--up); }

/* ---------- 关键词提取 ---------- */
.kw-row { display: flex; gap: 10px; align-items: stretch; }
.kw-row input { flex: 1; }
.kw-row .btn { white-space: nowrap; height: auto; padding: 0 18px; }

/* 保存提示 */
.ops-hint { font-size: 13px; color: var(--ink-4); margin-left: 4px; }

/* ============================================================
   v3 管理后台视觉升级层
   ------------------------------------------------------------
   早期后台模板普遍使用 .btn / .badge / .form-card / .table-card /
   .admin-table / .muted / .link / .set-group / .alert 等组件类名，
   但 admin.css 仅定义了 .btn / .tbl / .article-form，其余全部退化为
   浏览器默认样式，表现为「样式古老、难看」。这里统一补齐，并与前台
   site.css 的 v3 视觉语言（深蓝 + 品牌蓝、卡片、渐变、圆角、阴影）对齐。
   ============================================================ */

/* ---------- 设计 token 补齐 ---------- */
:root {
  --line-2: #E7EDF5;
  --ink-3: #5A6B80;
  --radius: 12px;
  --radius-xs: 8px;
  --shadow-xs: 0 1px 2px rgba(16, 27, 45, .06);
  --shadow-sm: 0 2px 10px rgba(11, 37, 69, .07);
  --shadow: 0 10px 30px rgba(11, 37, 69, .14);
  --ring: 0 0 0 3px rgba(31, 94, 255, .12);
  --grad-blue: linear-gradient(180deg, #2E6BFF, var(--blue));
  --grad-card: linear-gradient(180deg, #FFFFFF, #FCFDFF);
}
*:focus-visible { outline: 2px solid rgba(31, 94, 255, .5); outline-offset: 2px; border-radius: 6px; }
::placeholder { color: #A9B6C6; }

/* ---------- 按钮（与前台统一） ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  height: 42px; padding: 0 22px; border-radius: var(--radius-sm);
  background: var(--grad-blue); color: #fff; font-size: 14px; font-weight: 500;
  border: 1px solid transparent; cursor: pointer; white-space: nowrap;
  box-shadow: 0 2px 8px rgba(31, 94, 255, .22);
  transition: transform .18s var(--ease), box-shadow .18s var(--ease), filter .18s var(--ease), background .18s var(--ease), color .18s var(--ease);
}
.btn:hover { filter: brightness(1.05); box-shadow: 0 8px 20px rgba(31, 94, 255, .28); transform: translateY(-1px); }
.btn:active { transform: translateY(0); }
.btn.ghost { background: #fff; color: var(--ink-2); border-color: var(--line); box-shadow: none; }
.btn.ghost:hover { color: var(--blue); border-color: #BFD3FF; background: #F7FAFF; filter: none; transform: translateY(-1px); }
.btn.danger { background: transparent; color: var(--danger); border-color: #F5C6C8; box-shadow: none; }
.btn.danger:hover { background: #FDECEC; color: var(--danger); filter: none; }
.btn.mini { height: 34px; padding: 0 15px; font-size: 13px; border-radius: 9px; }
.btn.block { width: 100%; }
.btn[disabled], .btn.disabled { opacity: .55; cursor: not-allowed; transform: none !important; box-shadow: none; }

/* ---------- 表单基元 ---------- */
.article-form, .panel {
  background: var(--grad-card); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 24px 26px; box-shadow: var(--shadow-sm);
}
.article-form { max-width: 880px; }
.field { display: flex; flex-direction: column; gap: 7px; margin-bottom: 16px; }
.field label { font-size: 13.5px; font-weight: 500; color: var(--ink-2); display: flex; align-items: center; gap: 6px; }
.field label .req { color: #E0533D; }
.field input[type="text"], .field input[type="password"], .field input[type="url"], .field input[type="email"], .field select, .field textarea, .panel .inp {
  width: 100%; min-height: 44px; border: 1px solid var(--line); border-radius: var(--radius-sm);
  padding: 11px 14px; font-size: 14px; font-family: inherit; background: #fff; color: var(--ink-1);
  transition: border-color .18s var(--ease), box-shadow .18s var(--ease), background .18s var(--ease);
}
.field select { height: 44px; padding: 0 36px 0 12px; appearance: none; -webkit-appearance: none;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2366788F' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 9.5l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 12px center; background-size: 15px; }
.field textarea { min-height: 84px; line-height: 1.75; resize: vertical; }
.field input:hover, .field textarea:hover, .field select:hover { border-color: #D3DEEE; }
.field input:focus, .field textarea:focus, .field select:focus, .panel .inp:focus { outline: none; border-color: var(--blue); box-shadow: var(--ring); background: #fff; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.field-row > .field { min-width: 0; }

/* ---------- 分组字段集（站点设置 / 页脚设置） ---------- */
.set-group {
  border: 1px solid var(--line); border-radius: var(--radius-sm);
  padding: 20px 20px 22px; margin: 0 0 18px; background: #fff;
}
.set-group legend {
  font-size: 13.5px; font-weight: 600; color: var(--blue);
  padding: 0 10px; margin-left: 6px;
}
.set-group .field:last-child { margin-bottom: 0; }

/* ---------- 提示条 ---------- */
.alert { border-radius: var(--radius-sm); padding: 11px 15px; font-size: 13.5px; margin-bottom: 14px; border: 1px solid transparent; }
.alert.ok { background: #E6F7EE; color: #0A8F55; border-color: #C7ECD6; }
.alert.warn { background: #FFF4E5; color: #B76E00; border-color: #F6E2BC; }
.alert.err { background: #FDECEC; color: #C0392B; border-color: #F5C6C8; }

/* ---------- 文本辅助 ---------- */
.muted { color: var(--ink-4); }
.block { display: block; }
.inline { display: inline-flex; align-items: center; gap: 8px; }
.accent { color: var(--blue); }
.hint code, .set-group code, .oss-panel code { background: #F1F5FB; border: 1px solid var(--line); border-radius: 5px; padding: 1px 6px; font-size: 12px; color: var(--ink-2); }

/* ---------- 状态徽标 ---------- */
.badge, .chip {
  display: inline-flex; align-items: center; gap: 5px; flex-shrink: 0;
  font-size: 11.5px; line-height: 1; padding: 5px 11px; border-radius: 999px;
  background: var(--line-2); color: var(--ink-3); font-weight: 500; white-space: nowrap;
}
.badge.on  { background: #E6F7EE; color: #0A8F55; }
.badge.off { background: #FDECEC; color: #C0392B; }
.badge.warn { background: #FFF4E5; color: #B76E00; }

/* ---------- 链接型按钮（行内操作：编辑 / 删除 / 查看） ---------- */
.link { border: none; background: transparent; color: var(--blue); font-size: 13px; font-family: inherit; cursor: pointer; padding: 4px 6px; border-radius: 6px; transition: background .16s var(--ease), color .16s var(--ease); }
.link:hover { background: var(--blue-l); text-decoration: underline; }
.link.danger { color: var(--danger); }
.link.danger:hover { background: #FDECEC; }

/* ---------- 行内操作容器 ---------- */
.row-ops { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
.row-ops .inline { margin: 0; }
.row-ops form { display: inline; }

/* ---------- 表单卡片（广告/快讯/投稿审核等） ---------- */
.form-card { background: var(--grad-card); border: 1px solid var(--line); border-radius: var(--radius); padding: 22px 24px; box-shadow: var(--shadow-sm); }
.form-card.wide { max-width: 880px; }
.form-card > h3 { font-size: 16.5px; font-weight: 600; color: var(--ink-1); margin-bottom: 14px; }
.form-card.highlight { border-color: #BFD3FF; box-shadow: 0 2px 10px rgba(31, 94, 255, .12); background: linear-gradient(180deg, #F7FAFF, #FFFFFF); }
.form-card .group-title { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; color: var(--ink-1); margin: 20px 0 12px; padding-bottom: 9px; border-bottom: 1px solid var(--line-2); }
.form-card .group-title:first-child { margin-top: 0; }
.form-card .group-title .bar { width: 3px; height: 14px; border-radius: 2px; background: var(--grad-blue); }

/* ---------- 表格卡片（替代裸 tbl，用于管理列表） ---------- */
.table-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-sm); overflow: hidden; margin-bottom: 4px; }
.admin-table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.admin-table th {
  text-align: left; font-size: 12.5px; color: var(--ink-3); font-weight: 600;
  padding: 12px 14px; background: #F7FAFD; border-bottom: 1px solid var(--line); white-space: nowrap;
}
.admin-table td { padding: 12px 14px; border-bottom: 1px solid #F0F4F8; color: var(--ink-2); vertical-align: middle; }
.admin-table tbody tr:last-child td { border-bottom: none; }
.admin-table tbody tr:hover td { background: #FAFCFF; }
.admin-table strong { color: var(--ink-1); font-weight: 600; }
.admin-table .muted.block { font-size: 12px; margin-top: 3px; }

/* ---------- 广告位位置徽标 ---------- */
.ad-positions { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 12px 16px; margin-bottom: 16px; font-size: 13px; color: var(--ink-2); }
.ad-positions code, .pos-tip { font-size: 12.5px; }
.ad-positions code { background: var(--blue-l); color: var(--blue); border-radius: 5px; padding: 1px 7px; margin: 0 2px; }
.pos-tip { color: var(--ink-4); }
.pos-badge { display: inline-flex; align-items: center; padding: 3px 10px; border-radius: 999px; font-size: 11.5px; font-weight: 600; background: var(--line-2); color: var(--ink-3); }
.pos-header { background: #EAF1FF; color: #1F5EFF; }
.pos-sidebar { background: #FFF4E5; color: #B76E00; }
.pos-feed { background: #E6F7EE; color: #0A8F55; }
.pos-article_bottom { background: #F3EAFF; color: #7C3AED; }

/* ---------- 投稿审核正文展示 ---------- */
.review-body { display: flex; flex-direction: column; gap: 10px; padding: 16px 18px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); margin-bottom: 16px; }
.review-content { font-size: 14px; color: var(--ink-2); line-height: 1.8; border-top: 1px dashed var(--line); padding-top: 12px; }

/* ---------- 七牛云备份面板 ---------- */
.oss-panel { margin-top: 22px; border-color: #BFD3FF; background: linear-gradient(180deg, #F7FAFF, #FFFFFF); }
.oss-status { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; font-size: 13px; }
.oss-status .muted { color: var(--ink-4); }
.oss-last { color: var(--ink-2); }
.oss-last b { color: var(--blue); font-weight: 600; }
.oss-actions { margin-top: 14px; }
.oss-result { display: none; margin-top: 14px; border-radius: var(--radius-sm); padding: 12px 15px; font-size: 13px; line-height: 1.7; border: 1px solid transparent; }
.oss-result.show { display: block; }
.oss-result.loading { background: #F1F5FB; color: var(--ink-3); border-color: var(--line); }
.oss-result.ok { background: #E6F7EE; color: #0A8F55; border-color: #C7ECD6; }
.oss-result.err { background: #FDECEC; color: #C0392B; border-color: #F5C6C8; }
.oss-result.warn { background: #FFF4E5; color: #B76E00; border-color: #F6E2BC; }

/* ---------- 页脚「恢复默认」按钮（作为独立表单，避免嵌套） ---------- */
.reset-form { margin-top: 14px; }

/* ---------- 仪表盘统计卡（让文章管理页更现代） ---------- */
.stat-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 20px; }
.stat-card { background: var(--grad-card); border: 1px solid var(--line); border-radius: var(--radius); padding: 18px 20px; box-shadow: var(--shadow-sm); }
.stat-card .s-num { font-size: 26px; font-weight: 700; color: var(--navy); font-variant-numeric: tabular-nums; }
.stat-card .s-label { font-size: 13px; color: var(--ink-3); margin-top: 4px; }
.stat-card .s-bar { height: 3px; border-radius: 2px; background: var(--grad-blue); margin-top: 12px; }

/* ---------- 响应式补充 ---------- */
@media (max-width: 1024px) {
  .stat-row { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 760px) {
  .field-row { grid-template-columns: 1fr; }
  .stat-row { grid-template-columns: 1fr 1fr; }
  .oss-actions { flex-wrap: wrap; }
  .oss-actions .btn { flex: 1 1 auto; }
  .admin-table { display: block; overflow-x: auto; white-space: nowrap; }
  .form-card, .article-form, .panel { padding: 18px 16px; }
}
