/* tech-authz.css —— X-05「用户与权限」样式（技术板块第 5 页签）。
   由来（用户 2026-09-28 需求）：技术板块要能「看清系统有几种角色、角色是单选还是多选」，
   并直接完成建号 / 重置口令 / 停用启用 / 配角色。styles.css 已超行数上限（棘轮只许缩小），
   按仓内既有做法（见 tech-db.css）：新页签样式单开文件，不写进 styles.css。
   命名纪律：一律 `authz-` 前缀并整体限定在 `.dash .authz-page` 下 —— 裸通用类名（如 `dash`）
   会命中页面容器 `.dash` 造成整屏空白，前车之鉴见 tech-db.css 图例注释。 */

.dash .authz-page { padding: 20px 24px 40px; }
.dash .authz-page .page-title { font-size: 20px; font-weight: 700; color: #111827; margin-bottom: 3px; }
.dash .authz-page .page-subtitle { font-size: 12.5px; color: #9ca3af; margin-bottom: 18px; }

/* 区块：外观与通用 `.dash .block` 一致，仅补齐标题右侧说明的排版 */
.dash .authz-page .authz-hint { font-size: 12px; color: #9ca3af; }
.dash .authz-page .authz-body { margin-top: 4px; }
.dash .authz-page .authz-muted { font-size: 12.5px; color: #6b7280; line-height: 1.8; margin: 6px 0; }

/* 我的权限：一角色一卡，卡片里列该角色可见模块 */
.dash .authz-page .authz-cards { display: flex; flex-wrap: wrap; gap: 12px; margin: 8px 0; }
.dash .authz-page .authz-card { flex: 1 1 240px; min-width: 220px; border: 1px solid #e5e7eb;
    border-radius: 8px; padding: 12px 14px; background: #fafbff; }
.dash .authz-page .authz-card-title { font-size: 13.5px; font-weight: 600; color: #111827; margin-bottom: 8px; }
.dash .authz-page .authz-card-mods { display: flex; flex-wrap: wrap; gap: 6px; }

/* 并集可见模块（多处复用：我的权限 / 配置预览） */
.dash .authz-page .authz-union { font-size: 12.5px; color: #374151; line-height: 1.9; margin: 8px 0; }
.dash .authz-page .authz-union strong { color: #111827; margin-right: 6px; }

/* 筛选条 / 表单行 */
.dash .authz-page .authz-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 10px 0; }
.dash .authz-page .authz-input { padding: 5px 10px; border: 1px solid #d1d5db; border-radius: 16px;
    font-size: 12px; font-family: inherit; color: #374151; min-width: 180px; }
.dash .authz-page .authz-input:focus { outline: none; border-color: #2563eb; }

/* 账号表内：角色标签组 / 操作按钮组 */
.dash .authz-page .authz-row-roles { display: flex; flex-wrap: wrap; gap: 4px; }
.dash .authz-page .authz-row-ops { display: flex; flex-wrap: wrap; gap: 6px; }

/* 新建账号（折叠表单） */
.dash .authz-page .authz-create { margin-top: 14px; border: 1px dashed #d1d5db; border-radius: 8px;
    padding: 10px 14px; background: #fcfcfd; }
.dash .authz-page .authz-create > summary { cursor: pointer; font-size: 13px; font-weight: 600; color: #2563eb; }
.dash .authz-page .authz-form { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 12px; }
.dash .authz-page .authz-msg { flex: 1 1 100%; font-size: 12px; color: #b91c1c; min-height: 16px; }

/* 角色勾选（多选语义的可视化载体：一个账号可同时持有多个角色） */
.dash .authz-page .authz-role-picks { display: flex; flex-wrap: wrap; gap: 8px 16px; margin: 8px 0;
    padding: 10px 12px; border: 1px solid #eef2f7; border-radius: 8px; background: #fff; }
.dash .authz-page .authz-pick { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px;
    color: #374151; cursor: pointer; }
.dash .authz-page .authz-pick input { accent-color: #2563eb; }

/* 操作结果提示条（成功/失败共用；文案由 JS 决定） */
.dash .authz-page .authz-notice { margin: 0 0 14px; padding: 8px 12px; border-radius: 8px; font-size: 12.5px;
    color: #1d4ed8; background: #eff6ff; border: 1px solid #bfdbfe; }

/* 补齐通用样式缺的两处（styles.css 里没有 `.tag-red` / `.dash .btn-primary` 的取值） */
.dash .authz-page .tag-red { background: #fef2f2; color: #dc2626; }
.dash .authz-page .btn-sm.btn-primary { background: #2563eb; border-color: #2563eb; color: #fff; font-weight: 600; }
.dash .authz-page .btn-sm.btn-primary:hover { background: #1d4ed8; border-color: #1d4ed8; color: #fff; }
