/* ==========================================================================
   admin 系统设置那几页的**统一版式**（系统配置 / 导航设置 / 账号管理 / AI 工具）。

   —— 为什么单开一份：admin 那几页用的是老的 `.card` / `.fgrid` / `.fld` 一套，
   而主界面（`.platform-page` / `.obj-layout`）已经是另一套语言 ⇒ 同一站里两种观感。
   这一份把 admin 页**套进主界面的语言**：分区有边界、标题与说明分两行、
   操作按钮右对齐成一排、说明文字次级色、空状态有一句人话。

   ⚠️ **只管排版**：字段、按钮、提交口径、权限判定一个都没动。
   ⚠️ 令牌一律取自平台公共变量（--fg/--fg2/--fg3/--line/--card/--bg-alt…），不另立一套颜色。
   ⚠️ **控件宽度不在这里再收一遍** —— FIX-50 已经把通用字段封在 280px、
   长值字段（地址/密钥）封在 380px；这里再收会把地址截断，那不叫「按内容收敛」。
   ========================================================================== */

.admin-page { display:flex; flex-direction:column; gap:14px; max-width:1180px; }

/* —— 页头：与全站其它页**同一副骨架**（PKG-045-T02）——
   骨架在公共壳（`css/deepseek.css` 的 `.page-heading`：高 68px、间距 12px、标题 20px/650）。
   ⚠️ 以前这里给管理员页单开了一套「标题与说明分两行」（`flex-direction:column`）
   ⇒ 全站页头条有 4 种形态、6 个高度 ⇒ 用户看到的「标题高度不一致」。
   ⇒ 现在**删掉**这条单开规则：管理员页与别的页一样，标题／说明／按钮同一行。 */
/* 标题字号／字距**与参照系同一个数**（规范 §2.1：20px/650/letter-spacing 0）——
   值与公共骨架 `.page-heading h1` 相同，只是管理员页另外定了行高。 */
.admin-page .page-hd h1 { font-size:20px; line-height:1.3; letter-spacing:0; font-weight:650; }
.admin-page .page-hd .sub { max-width:720px; color:var(--fg3); font-size:12px; line-height:1.65; }
/* —— 分区卡片：看得见边界（原来白底飘在白底上，看着像没分区）—— */
.admin-page .card { margin:0; overflow:hidden; border:1px solid var(--line); border-radius:var(--r-lg); background:var(--card,#fff); box-shadow:none; }
.admin-page .card-hd { display:flex; align-items:center; gap:8px; padding:13px 16px; border-bottom:1px solid var(--line); background:var(--bg-alt); }
.admin-page .card-hd .t { color:var(--fg); font-size:12px; font-weight:600; }
.admin-page .card-bd { padding:16px; }

/* —— 字段：标签在上、控件在一行 —— */
.admin-page .fld { margin-bottom:14px; }
.admin-page .fld label { display:block; margin-bottom:5px; color:var(--fg2); font-size:12px; }
.admin-page .fld .hint { color:var(--amber); font-size:11px; }
/* 分段按钮（provider 那一排）原来会**溢出到右边那一列的输入框上**
   —— 活站量：「qwen-ocr」压住了「ocr-service 地址」那个输入框。收在本格子里。 */
.admin-page .fld .seg { max-width:100%; flex-wrap:wrap; }

/* —— 说明文字：次级色，别跟正文抢眼 —— */
.admin-page .cell-sub { color:var(--fg3); font-size:11.5px; line-height:1.65; }
.admin-page p.cell-sub { margin:0 0 10px; }

/* —— 操作行：右对齐成一排；左侧留给状态回执 —— */
.admin-page .admin-actions {
  display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap;
  margin-top:14px; padding-top:13px; border-top:1px solid var(--line);
}
.admin-page .admin-actions .admin-note { margin-right:auto; color:var(--fg3); font-size:11.5px; line-height:1.6; }
.admin-page .admin-actions .testr { margin-left:2px; color:var(--fg3); font-size:11.5px; }

/* —— 空状态：一句人话（别让用户以为是坏了）—— */
.admin-empty {
  padding:22px 16px; border:1px dashed var(--line2); border-radius:var(--r-lg);
  background:var(--bg-alt); color:var(--fg3); font-size:12px; line-height:1.7; text-align:center;
}

/* —— 左导航（系统配置那排分组）：也套进同一套语言 —— */
.admin-page .cfg-layout { display:grid; grid-template-columns:180px minmax(0,1fr); gap:16px; align-items:start; }
.admin-page .cfg-nav {
  position:sticky; top:16px; display:flex; flex-direction:column; gap:2px;
  padding:6px; border:1px solid var(--line); border-radius:var(--r-lg); background:var(--bg-alt);
}
.admin-page .cfg-nav-item {
  width:100%; padding:8px 10px; border:0; border-radius:7px; background:transparent;
  color:var(--fg2); font-size:12px; text-align:left; cursor:pointer;
}
.admin-page .cfg-nav-item:hover { background:var(--card,#fff); color:var(--fg); }
.admin-page .cfg-nav-item.on { background:var(--card,#fff); color:var(--fg); font-weight:600; box-shadow:inset 3px 0 var(--brand,var(--green)); }
.admin-page .cfg-content { display:flex; min-width:0; flex-direction:column; gap:14px; }
.admin-config-page .cfg-group { display:grid; gap:14px; min-width:0; }

/* —— 企业管理那几处小修（2026-11-07 用户逐条提的）——
   ① 「新建部门」按钮**靠右**（卡片头那一行：标题在左，动作在右）；
   ② 部门表「改名 / 设置管理员」两个按钮**中间要有空隙**（原来两个挨在一起）。 */
.admin-accounts-page .card-hd .btn{margin-left:auto}
.admin-accounts-page .dtable td .btn+.btn{margin-left:6px}

/* —— 名单表格（账号管理）：表头有底、行之间有线；字号/行距同参照系（文件中心 .file-table） —— */
.admin-page .dtable th { background:var(--bg-alt); color:var(--fg3); font-size:12px; font-weight:500; height:37px; padding:0 12px; }
.admin-page .dtable td { font-size:12px; color:var(--fg2); padding:8px 12px; }
.admin-page .dtable th, .admin-page .dtable td { border-bottom:1px solid var(--line); }

/* —— 危险操作有区分 —— */
.admin-page .btn-danger { color:var(--red); border-color:color-mix(in srgb,var(--red) 32%,var(--line2)); }
.admin-page .btn-danger:hover { background:color-mix(in srgb,var(--red) 8%,transparent); }

/* —— 窄屏：左导航收成横排，别挤成一条细柱 —— */
@media (max-width:900px) {
  .admin-page .cfg-layout { grid-template-columns:minmax(0,1fr); }
  .admin-page .cfg-nav { position:static; flex-direction:row; flex-wrap:wrap; }
}

/* ==========================================================================
   管理后台「已安装业务域与系统组件」那页（2026-10-21 版式重做）。

   改前：8 张同样大的卡片平铺、四个数字平铺没有层次、卡片大片留白；
        「完全停用」跟「仓库管理」并排同权重（会误点）；
        「依赖、引用与运行检查」像一行死文本；状态徽标三套说法；
        管理功能的 tab 是纯文字，看不出当前在哪。
   改后：页头一条总览条 → 分「业务域 / 系统组件」两段 → 卡片收紧；
        危险操作收进 ⋯ 二级菜单（仍走二次确认）；检查区是能看出来的可展开控件；
        状态徽标统一词；tab 标出当前；能搜能筛。

   ⚠️ 只管排版：启停判断、预检口径、二次确认表单、动作口一个都没动。
   ⚠️ 令牌一律取自平台公共变量，不另立一套颜色。
   ========================================================================== */

/* —— tab：看得出当前在哪 —— */
.admin-page .admin-destinations { display:flex; flex-wrap:wrap; gap:4px; margin:0; padding:4px; border:1px solid var(--line); border-radius:10px;
  /* —— **不透明**（2026-11-07 用户：「不要是透明的」）：--bg-alt 是半透明叠色 ⇒
     页面底色一变，这排页签也跟着变 ⇒ 看着像「没画完」。这里给一档**实色**。 */
  background:color-mix(in srgb, var(--fg) 5%, var(--card,#fff)); }
.admin-page .admin-dest {
  padding:7px 13px; border:0; border-radius:7px; background:transparent;
  color:var(--fg2); font-size:12.5px; cursor:pointer;
}
.admin-page .admin-dest:hover { background:var(--card,#fff); color:var(--fg); }
.admin-page .admin-dest.on { background:var(--card,#fff); color:var(--fg); font-weight:600; box-shadow:0 1px 2px rgba(15,23,42,.08); }

/* —— 总览条：一眼看完再往下 ——
   改前：四个大盒子，一格占 290px，数字孤零零飘在中间 ⇒ 一片空。
   改后：**一条**紧凑的统计条（标签小、数字大、竖线分隔），高度只占一行。 */
.admin-page .admin-overview {
  display:flex; flex-wrap:wrap; align-items:stretch;
  border:1px solid var(--line); border-radius:10px; background:var(--card,#fff); overflow:hidden;
}
.admin-page .admin-overview-cell {
  display:flex; flex:1 1 130px; align-items:baseline; gap:8px;
  padding:10px 16px; border-right:1px solid var(--line);
}
.admin-page .admin-overview-cell:last-child { border-right:0; }
.admin-page .admin-overview-label { color:var(--fg3); font-size:11.5px; }
.admin-page .admin-overview-value { color:var(--fg); font-size:19px; font-weight:700; line-height:1.1; }

/* —— 工具条：搜 + 按状态筛 + 计数 —— */
.admin-page .admin-apps-toolbar { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.admin-page .admin-apps-search { flex:1 1 220px; max-width:320px; }
.admin-page .admin-apps-search input {
  width:100%; height:32px; padding:0 10px; border:1px solid var(--line); border-radius:7px;
  background:var(--control-bg); color:var(--fg); font:inherit; font-size:12.5px; outline:none;
}
.admin-page .admin-apps-search input:focus { border-color:var(--brand,var(--green)); box-shadow:0 0 0 2px color-mix(in srgb,var(--brand,var(--green)) 14%,transparent); }
.admin-page .admin-apps-toolbar select {
  height:32px; padding:0 8px; border:1px solid var(--line); border-radius:7px;
  background:var(--control-bg); color:var(--fg); font:inherit; font-size:12.5px;
}
.admin-page .admin-apps-count { margin-left:auto; color:var(--fg3); font-size:11.5px; }

/* —— 两段：业务域 / 系统组件 —— */
.admin-page .admin-apps-section { display:flex; flex-direction:column; gap:10px; }
.admin-page .admin-apps-section-head { display:flex; align-items:baseline; gap:9px; flex-wrap:wrap; }
.admin-page .admin-apps-section-title { margin:0; color:var(--fg); font-size:14.5px; font-weight:600; }
.admin-page .admin-apps-section-count {
  padding:2px 8px; border-radius:999px; background:var(--bg-alt); color:var(--fg2); font-size:11px;
}
.admin-page .admin-apps-section-hint { color:var(--fg3); font-size:11.5px; }
.admin-page .admin-apps-section .apps-grid { grid-template-columns:repeat(auto-fill,minmax(330px,1fr)); gap:12px; padding:0; }

/* —— 卡片：收紧（原来大片留白、内容撑不满）—— */
.admin-page .app-card {
  display:flex; flex-direction:column; gap:11px; padding:14px;
  border:1px solid var(--line); border-radius:12px; background:var(--card,#fff);
}
.admin-page .app-card.off { background:var(--bg-alt); }
.admin-page .app-card[hidden] { display:none; }
.admin-page .app-card-head { display:flex; align-items:center; gap:10px; }
.admin-page .app-card-title { min-width:0; flex:1; }
.admin-page .app-card-title h2 { margin:0; overflow:hidden; color:var(--fg); font-size:13.5px; text-overflow:ellipsis; white-space:nowrap; }
.admin-page .app-card-meta { margin:3px 0 0; overflow:hidden; color:var(--fg3); font-size:10.5px; text-overflow:ellipsis; white-space:nowrap; }
.admin-page .app-mark { flex:0 0 34px; height:34px; border-radius:9px; font-size:13px; }

/* 状态徽标：统一词 + 统一色（已启用绿 / 始终启用靛 / 已停用灰）。 */
.admin-page .app-state { flex:0 0 auto; padding:3px 9px; border-radius:999px; font-size:10.5px; white-space:nowrap; }
.admin-page .app-state-on { background:color-mix(in srgb,var(--green) 10%,var(--card,#fff)); color:var(--green-ink); }
.admin-page .app-state-locked { background:transparent; color:var(--fg2); box-shadow:inset 0 0 0 1px var(--line2); }
.admin-page .app-state-off { background:color-mix(in srgb,var(--line2) 26%,var(--card,#fff)); color:var(--fg3); }

/* 四个数字做成小格：数字大、标签小 —— 原来四个数字平铺，没有层次。 */
.admin-page .app-metrics {
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; margin:0;
  overflow:hidden; border:1px solid var(--line); border-radius:9px; background:var(--line);
}
.admin-page .app-metric { display:flex; flex-direction:column; align-items:center; gap:2px; padding:9px 4px; background:var(--card,#fff); }
.admin-page .app-metric dt { color:var(--fg3); font-size:10px; }
.admin-page .app-metric dd { margin:0; color:var(--fg); font-size:16px; font-weight:700; line-height:1.1; }

/* 日常入口：单独一行、权重轻（跟危险操作彻底分开）。 */
.admin-page .app-entries { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.admin-page .app-entries-label { color:var(--fg3); font-size:10.5px; }
.admin-page .app-entry {
  padding:4px 10px; border:1px solid var(--line); border-radius:999px;
  background:var(--card,#fff); color:var(--fg2); font:inherit; font-size:11.5px; cursor:pointer;
}
.admin-page .app-entry:hover { border-color:var(--line2); color:var(--fg); background:var(--bg-alt); }
.admin-page .app-card-note { margin:0; color:var(--fg3); font-size:10.5px; }

/* 检查区：能看出来的可展开控件（箭头 + hover 态），默认收起。 */
.admin-page .app-diag { border-top:1px solid var(--line); padding-top:9px; }
.admin-page .app-diag > summary {
  display:flex; align-items:center; gap:6px; padding:4px 6px; margin:0 -6px;
  border-radius:6px; color:var(--fg2); font-size:11.5px; cursor:pointer; list-style:none;
}
.admin-page .app-diag > summary::-webkit-details-marker { display:none; }
.admin-page .app-diag > summary::before {
  content:''; width:0; height:0; border-left:5px solid currentColor;
  border-top:4px solid transparent; border-bottom:4px solid transparent; transition:transform .15s ease;
}
.admin-page .app-diag[open] > summary::before { transform:rotate(90deg); }
.admin-page .app-diag > summary:hover { background:var(--bg-alt); color:var(--fg); }
.admin-page .app-diag-body { margin-top:9px; }
.admin-page .app-diag-scroll { max-height:260px; overflow:auto; border:1px solid var(--line); border-radius:8px; }
.admin-page .app-diag-note { margin:0; color:var(--fg3); font-size:11.5px; }
.admin-page .app-diag-event { display:flex; align-items:center; gap:8px; margin:8px 0 0; color:var(--fg2); font-size:11.5px; }

/* 二级菜单（⋯）：危险操作收在这里，不跟日常入口并排。 */
/* margin-top:auto ⇒ 卡片被拉齐时，⋯ 吸在卡片底部（原来中间空一大片）。 */
.admin-page .app-card-foot { display:flex; justify-content:flex-end; margin-top:auto; padding-top:2px; }
.admin-page .app-card-menu { position:relative; }
.admin-page .app-card-menu > summary {
  list-style:none; padding:4px 10px; border:1px solid var(--line); border-radius:7px;
  background:var(--card,#fff); color:var(--fg3); font-size:13px; line-height:1.2; cursor:pointer;
}
.admin-page .app-card-menu > summary::-webkit-details-marker { display:none; }
.admin-page .app-card-menu > summary:hover { border-color:var(--line2); color:var(--fg); }
.admin-page .app-card-menu-body {
  position:absolute; z-index:20; right:0; bottom:calc(100% + 6px); min-width:190px;
  display:flex; flex-direction:column; gap:2px; padding:6px;
  border:1px solid var(--line); border-radius:9px; background:var(--card,#fff); box-shadow:0 12px 28px rgba(15,23,42,.14);
}
.admin-page .app-menu-item {
  padding:7px 10px; border:0; border-radius:6px; background:transparent;
  color:var(--fg); font:inherit; font-size:12px; text-align:left; cursor:pointer;
}
.admin-page .app-menu-item:hover:not(:disabled) { background:var(--bg-alt); }
.admin-page .app-menu-item:disabled { color:var(--fg3); cursor:not-allowed; }
.admin-page .app-menu-danger { color:var(--red); }
.admin-page .app-menu-danger:hover:not(:disabled) { background:color-mix(in srgb,var(--red) 8%,transparent); }
.admin-page .app-menu-note { padding:7px 10px; color:var(--fg3); font-size:11.5px; }

@media (max-width:900px) {
  .admin-page .app-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
}


/* —— AI 工具（能力目录）：改前 56 条平铺成一面墙 ⇒ 按动作命名空间分组、每条收成两行 —— */
.admin-page .ai-tools-group { display:flex; flex-direction:column; gap:7px; }
.admin-page .ai-tools-group + .ai-tools-group { margin-top:6px; }
.admin-page .ai-tools-group-title {
  display:flex; align-items:baseline; gap:7px; margin:6px 0 1px;
  color:var(--fg2); font-size:11.5px; font-weight:600; letter-spacing:.4px;
}
.admin-page .ai-tools-group-title span {
  padding:1px 7px; border-radius:999px; background:var(--bg-alt); color:var(--fg3); font-size:10.5px; font-weight:500;
}
.admin-page .ai-tools-card { padding:11px 14px; border:1px solid var(--line); border-radius:10px; box-shadow:none; }
.admin-page .ai-tools-card-hd { gap:8px; margin-bottom:0; }
.admin-page .ai-tools-name { font-size:12.5px; font-weight:600; color:var(--fg); }
.admin-page .ai-tools-cap { font-size:10.5px; color:var(--fg3); }
.admin-page .ai-tools-kind { margin-left:auto; }
.admin-page .ai-tools-desc { margin:6px 0 0; color:var(--fg2); font-size:11.5px; line-height:1.6; }
.admin-page .ai-tools-meta { margin-top:5px; color:var(--fg3); font-size:10.5px; }

.admin-log-scroll { overflow:auto; min-width:0; border:1px solid var(--line); border-radius:var(--r); }
.admin-log-table { width:100%; border-collapse:collapse; font-size:13px; }
.admin-log-table th,.admin-log-table td { text-align:left; padding:10px 12px; white-space:nowrap; }
.admin-log-table th { position:sticky; top:0; color:var(--fg2); background:var(--bg-alt); font-weight:500; }
.admin-log-table td { border-top:1px solid var(--line); }
.admin-log-pager { display:flex; align-items:center; gap:8px; }
.admin-log-pager span { margin-right:auto; color:var(--fg3); font-size:12px; }

/* Admin data browsing shares the page gutter; record cells remain read-only. */
.main-scroll:has(>.object-admin-page),.main-scroll:has(>.apps-page),.main-scroll:has(>.personal-settings-page){padding-inline:0!important}
.object-admin-page,.apps-page.admin-page{max-width:none}
.apps-page .apps-grid{padding-inline:0}
.apps-page.admin-page>.page-heading{margin-bottom:-5px}
.object-admin-browser{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:540px;border:1px solid var(--line);border-radius:10px;background:var(--bg);overflow:hidden}
.object-admin-catalog{min-width:0;border-right:1px solid var(--line);background:var(--bg-alt);display:flex;flex-direction:column}
.object-admin-search,.object-admin-record-tools{display:flex;align-items:center;gap:8px;padding:12px;border-bottom:1px solid var(--line)}
.object-admin-search input,.object-admin-record-tools input{min-width:0;flex:1;height:34px;padding:0 10px;border:1px solid var(--line);border-radius:6px;background:var(--bg);font:inherit}
.object-admin-catalog nav{flex:1;min-width:0;padding:6px 6px 14px}
.object-admin-catalog .dataset-item{display:flex;align-items:center;justify-content:space-between;width:100%;gap:8px;text-align:left;padding:11px 10px;border-radius:6px}
.object-admin-catalog .dataset-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.object-admin-catalog .dataset-item small{white-space:nowrap;color:var(--fg3);font-size:11px}
.object-admin-catalog-pager{display:flex;align-items:center;justify-content:space-between;padding:10px 8px;gap:6px;border-top:1px solid var(--line);font-size:11px}
.object-admin-work{display:flex;flex-direction:column;min-width:0;overflow:hidden}
.object-admin-table-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px;border-bottom:1px solid var(--line)}
.object-admin-table-head h2{font-size:15px;margin:0}.object-admin-table-head p{margin:5px 0 0;color:var(--fg3);font-size:12px}.object-admin-table-head>span{white-space:nowrap;font-size:12px;color:var(--fg3)}
.object-admin-table-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.object-admin-table-actions>span{white-space:nowrap;color:var(--fg3);font-size:12px}.object-admin-record-tools input{max-width:360px}.object-admin-table-scroll{min-width:0;overflow:auto;flex:1}.object-admin-table{font-size:12px;line-height:1.5;min-width:100%;border-collapse:collapse;table-layout:auto}.object-admin-table th,.object-admin-table td{min-width:120px;max-width:320px;padding:10px 12px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);white-space:pre-wrap;overflow-wrap:anywhere;vertical-align:top}.object-admin-table thead th{position:sticky;top:0;z-index:1;background:var(--bg-alt);font-weight:500;white-space:nowrap}.object-admin-table .object-admin-row-number{min-width:52px;width:52px;max-width:52px;text-align:center;background:var(--bg-alt);color:var(--fg3);font-weight:400}.object-admin-empty{padding:28px;color:var(--fg3);text-align:center}
.object-admin-detail{width:min(760px,calc(100vw - 32px));max-height:calc(100vh - 48px)}.object-admin-detail .dlg-body{max-height:60vh;overflow:auto}.object-admin-record-facts{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0}.object-admin-record-facts>div{min-width:0}.object-admin-record-facts dt{font-size:12px;color:var(--fg3);margin-bottom:5px}.object-admin-record-facts dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
.personal-settings-page>.platform-section{padding:20px}.personal-settings-page .platform-section-head{margin-bottom:16px}.personal-settings-page .pf-facts{margin:0}.personal-settings-page .platform-quick-actions{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.personal-settings-page .platform-quick{display:flex;align-items:center;min-height:48px;padding:14px 16px;min-width:0}.personal-settings-page .platform-quick b{white-space:nowrap;word-break:keep-all}.personal-settings-page [data-password-help]{margin-top:2px}
@media(max-width:680px){.object-admin-browser{grid-template-columns:minmax(0,1fr);min-height:480px}.object-admin-catalog{border-right:0;border-bottom:1px solid var(--line)}.object-admin-catalog nav{max-height:180px;overflow:auto}.object-admin-record-facts{grid-template-columns:1fr}.object-admin-table-head{padding:14px}.personal-settings-page>.platform-section{padding:16px}}

/* All administration pages use the management page gutter and heading rhythm. */
.main-scroll:has(>.admin-page){padding:0!important}
.admin-page{max-width:none;min-height:100%;padding:0 26px 74px;box-sizing:border-box}
.admin-page>.page-heading{margin-bottom:-5px;flex-shrink:0}
.admin-page>.admin-destinations{flex-shrink:0}
.main-scroll:has(>.object-admin-page){display:flex;flex-direction:column;overflow:hidden}
.object-admin-page{flex:1;min-height:0;overflow:hidden}
.object-admin-browser{flex:1;min-height:0;grid-template-rows:minmax(0,1fr)}
.object-admin-catalog,.object-admin-work{min-height:0}
.object-admin-catalog nav{min-height:0;overflow:auto}
.object-admin-search,.object-admin-record-tools,.object-admin-table-head,.object-admin-catalog-pager{flex-shrink:0}
.object-admin-table-scroll{min-height:0;overscroll-behavior:contain}
@media(max-width:680px){
  .object-admin-browser{grid-template-rows:minmax(0,180px) minmax(0,1fr)}
}

/* Unified logs keep navigation/paging outside their only scroll container. */
.main-scroll:has(>.admin-logs-page){display:flex;flex-direction:column;min-height:0;overflow:hidden}
.admin-logs-page{display:flex;flex-direction:column;flex:1;min-height:0;height:100%;overflow:hidden;gap:14px}
.admin-logs-page>.page-heading,.admin-logs-page>nav,.admin-logs-page>.admin-apps-toolbar{flex:none}
.admin-logs-page>.admin-log-scroll{flex:1;min-height:0}
.admin-logs-page>.admin-log-pager{flex:none;margin-top:0}
.admin-log-table>thead th{z-index:1}
.admin-log-row{cursor:pointer}
.admin-log-toggle{padding:3px 8px;white-space:nowrap}
.admin-log-detail>td{white-space:normal;background:var(--bg-alt)}
.admin-log-detail-panel{min-width:0;max-width:100%;padding:4px 0}
.admin-log-detail-meta{margin:0 0 10px;color:var(--fg3);overflow-wrap:anywhere}
.admin-log-diff{width:100%;table-layout:fixed;border-collapse:collapse}
.admin-log-diff th,.admin-log-diff td{white-space:pre-wrap;overflow-wrap:anywhere;vertical-align:top;border:1px solid var(--line)}
.admin-log-diff th{position:static;background:var(--bg);width:33.333%}
.admin-log-diff pre{margin:0;font:inherit;white-space:pre-wrap;overflow-wrap:anywhere}

/* The administration title and destination navigation remain visible while content scrolls. */
.admin-page>.page-heading{position:sticky;top:0;z-index:20;background:var(--card,#fff)}
.admin-page>.admin-destinations{position:sticky;top:77px;z-index:19}

/* Enterprise account rows use formal organization controls. */
.admin-accounts-page .enterprise-directory{overflow:auto;padding:16px}
.admin-accounts-page .enterprise-directory th{white-space:nowrap}
.admin-accounts-page select,.enterprise-department-options{font:inherit}
.enterprise-department-options{display:grid;gap:8px}
.enterprise-department-options>div{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 12px;border:1px solid var(--line);border-radius:8px}
.enterprise-department-options label,.admin-accounts-page .enterprise-check label{display:inline-flex;align-items:center;gap:8px}
/* —— 「设为该部门管理员」那一格（2026-11-07 用户：「这个太丑了，改一些样式」）：
   原来是一个**裸勾选框**飘在格子中间 ⇒ 现在做成一枚**可点的胶囊**，
   勾上时底色与字色跟着品牌绿走（与全站主操作同一档），不再像「没做完的表单」。 */
.admin-accounts-page .enterprise-check{margin-bottom:14px}
.admin-accounts-page .enterprise-check label{
  min-height:34px;padding:0 12px;border:1px solid var(--line);border-radius:7px;
  background:var(--card,#fff);color:var(--fg2);font-size:12px;line-height:1.4;
  cursor:pointer;user-select:none;transition:border-color .12s ease,background .12s ease,color .12s ease}
.admin-accounts-page .enterprise-check label:hover{border-color:var(--line2);color:var(--fg)}
.admin-accounts-page .enterprise-check input{width:14px;height:14px;margin:0;accent-color:var(--brand,var(--green))}
.admin-accounts-page .enterprise-check input:checked+span{color:var(--green-ink,var(--fg));font-weight:600}
.enterprise-department-options input,.admin-accounts-page .enterprise-check input{width:auto;margin:0}
