.system-config-scope {
  --navy-950: #101b32;
  --navy-900: #152440;
  --navy-800: #203456;
  --ink: #172033;
  --ink-soft: #344054;
  --muted: #667085;
  --muted-light: #98a2b3;
  --line: #e4e8ef;
  --line-strong: #d2d9e5;
  --canvas: #f5f7fa;
  --panel: #ffffff;
  --blue: #2463eb;
  --blue-strong: #174cc7;
  --blue-soft: #edf3ff;
  --blue-border: #bdd3ff;
  --green: #11865a;
  --green-soft: #eaf8f0;
  --amber: #b56708;
  --amber-soft: #fff7e6;
  --red: #c53a36;
  --red-soft: #fff0ef;
  --purple: #7449d9;
  --purple-soft: #f4efff;
  --shadow-lg: 0 18px 55px rgba(19, 37, 68, 0.16);
  --shadow-sm: 0 2px 8px rgba(16, 24, 40, 0.06);
  --radius: 10px;
  --radius-sm: 7px;
}

.system-config-scope, .system-config-scope * { box-sizing: border-box; }
.system-config-scope { min-width: 0; width: 100%; max-width: 100%; min-height: 100%; margin: 0; }
.system-config-scope > *,
.system-config-scope .content,
.system-config-scope .content > *,
.system-config-scope .page-header > *,
.system-config-scope .toolbar > * { min-width: 0; max-width: 100%; }
.system-config-scope {
  background: var(--canvas);
  color: var(--ink);
  font-family: -apple-system, "SF Pro Text", "PingFang SC", "Noto Sans SC", "Microsoft YaHei", sans-serif;
  font-size: 14px;
  line-height: 1.6;
}
.system-config-scope button, .system-config-scope input, .system-config-scope select, .system-config-scope textarea { font: inherit; }
.system-config-scope button { cursor: pointer; }
.system-config-scope a { color: inherit; text-decoration: none; }

.system-config-scope .app-shell { min-width: 0; min-height: 100vh; display: grid; grid-template-columns: 224px minmax(0, 1fr); }
.system-config-scope .app-sidebar { position: sticky; top: 0; height: 100vh; overflow: auto; background: var(--navy-950); color: #cad7ed; display: flex; flex-direction: column; padding: 18px 12px 14px; }
.system-config-scope .brand-block { padding: 4px 10px 15px; border-bottom: 1px solid rgba(202, 215, 237, 0.14); }
.system-config-scope .brand-mark { display: flex; align-items: center; gap: 10px; }
.system-config-scope .brand-symbol { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 9px; background: #2d65e9; color: #fff; font-size: 15px; font-weight: 800; box-shadow: 0 5px 14px rgba(36, 99, 235, 0.35); }
.system-config-scope .brand-name { color: #fff; font-size: 13px; font-weight: 750; letter-spacing: .01em; white-space: nowrap; }
.system-config-scope .nav-group { padding: 19px 4px 0; }
.system-config-scope .nav-label { padding: 0 9px 8px; color: #7386a8; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.system-config-scope .nav-list { display: grid; gap: 3px; }
.system-config-scope .nav-section-parent, .system-config-scope .nav-item { display: flex; align-items: center; gap: 10px; min-height: 39px; padding: 0 10px; border: 0; border-radius: 7px; background: transparent; color: #aebed9; text-align: left; transition: background .16s ease, color .16s ease; }
.system-config-scope .nav-section-parent { color: #dbe5f6; font-size: 13px; font-weight: 700; }
.system-config-scope .nav-item:hover { background: rgba(255,255,255,.07); color: #fff; }
.system-config-scope .nav-item.active { background: #fff; color: #17223a; font-weight: 700; box-shadow: 0 5px 13px rgba(0,0,0,.09); }
.system-config-scope .nav-item .nav-icon, .system-config-scope .nav-section-parent .nav-icon { width: 17px; height: 17px; flex: 0 0 17px; }
.system-config-scope .nav-item.sub { position: relative; margin-left: 8px; padding-left: 20px; min-height: 35px; font-size: 13px; }
.system-config-scope .nav-item.sub.active::before { position: absolute; top: 8px; bottom: 8px; left: 5px; width: 3px; border-radius: 999px; background: var(--blue); content: ""; }
.system-config-scope .nav-dot { width: 5px; height: 5px; border-radius: 50%; background: #60728f; flex: 0 0 5px; }
.system-config-scope .nav-item.active .nav-dot { background: var(--blue); }

.system-config-scope .app-main { min-width: 0; min-height: 100vh; }
.system-config-scope .topbar { height: 64px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 0 26px; background: #fff; border-bottom: 1px solid var(--line); }
.system-config-scope .breadcrumb { display: flex; align-items: center; flex-wrap: wrap; color: var(--muted); font-size: 13px; }
.system-config-scope .breadcrumb strong { color: var(--ink); }
.system-config-scope .breadcrumb-sep { margin: 0 8px; color: #c1c7d0; }
.system-config-scope .top-actions { display: flex; align-items: center; gap: 13px; }
.system-config-scope .operator { color: var(--ink-soft); font-size: 12px; }
.system-config-scope .top-avatar { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; background: #eff4ff; color: var(--blue-strong); font-size: 12px; font-weight: 800; }
.system-config-scope .content { max-width: 1760px; padding: 22px 26px 32px; margin: 0 auto; }

.system-config-scope .page-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; margin-bottom: 16px; }
.system-config-scope .page-eyebrow { display: flex; align-items: center; gap: 7px; color: var(--blue-strong); font-size: 11px; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.system-config-scope .page-title { margin: 2px 0 4px; color: var(--ink); font-size: 23px; font-weight: 780; letter-spacing: -.025em; line-height: 1.35; }
.system-config-scope .page-description { margin: 0; color: var(--muted); font-size: 13px; }
.system-config-scope .page-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 8px; padding-top: 7px; }

.system-config-scope .btn { min-height: 34px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; border: 1px solid var(--line-strong); border-radius: 7px; background: #fff; color: var(--ink-soft); padding: 0 12px; font-size: 12px; font-weight: 700; white-space: nowrap; transition: color .15s ease, background .15s ease, border-color .15s ease, transform .15s ease; }
.system-config-scope .btn:hover { background: #fafcff; border-color: #aebcce; color: var(--ink); }
.system-config-scope .btn:active { transform: translateY(1px); }
.system-config-scope .btn.primary { background: var(--blue); border-color: var(--blue); color: #fff; }
.system-config-scope .btn.primary:hover { background: var(--blue-strong); border-color: var(--blue-strong); color: #fff; }
.system-config-scope .btn.danger { color: var(--red); border-color: #ecc7c4; }
.system-config-scope .btn.danger:hover { color: #ab2b27; background: var(--red-soft); border-color: #e6a4a0; }
.system-config-scope .btn.ghost { border-color: transparent; background: transparent; color: var(--muted); }
.system-config-scope .btn.ghost:hover { color: var(--blue-strong); background: var(--blue-soft); }
.system-config-scope .btn.small { min-height: 29px; padding: 0 9px; font-size: 11px; }
.system-config-scope .btn.icon { width: 34px; padding: 0; }
.system-config-scope .btn:disabled { cursor: not-allowed; opacity: .45; }
.system-config-scope .btn svg { width: 15px; height: 15px; }

.system-config-scope .card { min-width: 0; background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.system-config-scope .card.flat { box-shadow: none; }
.system-config-scope .card-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 52px; padding: 11px 16px; border-bottom: 1px solid var(--line); }
.system-config-scope .card-title { margin: 0; color: var(--ink); font-size: 14px; font-weight: 760; }
.system-config-scope .card-subtitle { margin: 2px 0 0; color: var(--muted); font-size: 11px; }
.system-config-scope .card-body { padding: 16px; }

.system-config-scope .kpi-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin-bottom: 16px; overflow: hidden; }
.system-config-scope .kpi { min-height: 88px; padding: 14px 16px; border-right: 1px solid var(--line); background: #fff; }
.system-config-scope .kpi:last-child { border-right: 0; }
.system-config-scope .kpi-label { display: flex; align-items: center; gap: 6px; color: var(--muted); font-size: 11px; }
.system-config-scope .kpi-value { margin-top: 5px; color: var(--ink); font-size: 23px; font-weight: 780; line-height: 1.1; }
.system-config-scope .kpi-foot { margin-top: 6px; color: var(--muted); font-size: 11px; }
.system-config-scope .kpi-icon { width: 16px; height: 16px; color: var(--blue); }

.system-config-scope .notice { display: flex; align-items: flex-start; gap: 9px; padding: 10px 12px; margin-bottom: 16px; border: 1px solid #f1d295; border-radius: 8px; background: var(--amber-soft); color: #7c4e09; font-size: 12px; line-height: 1.6; }
.system-config-scope .notice svg { width: 16px; min-width: 16px; margin-top: 1px; }
.system-config-scope .notice strong { font-weight: 760; }
.system-config-scope .notice.info { border-color: #bdd4ff; background: #f1f6ff; color: #2451a7; }
.system-config-scope .notice.success { border-color: #b9e7ce; background: #f0fbf5; color: #147548; }
.system-config-scope .notice.danger { border-color: #f0c4c1; background: var(--red-soft); color: #9c302c; }

.system-config-scope .toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; padding: 11px 14px; border-bottom: 1px solid var(--line); }
.system-config-scope .toolbar .spacer { flex: 1; }
.system-config-scope .field-wrap { position: relative; min-width: 170px; }
.system-config-scope .field-wrap svg { position: absolute; top: 50%; left: 10px; width: 15px; height: 15px; color: var(--muted-light); transform: translateY(-50%); pointer-events: none; }
.system-config-scope .field, .system-config-scope .textarea { width: 100%; border: 1px solid var(--line-strong); border-radius: 7px; background: #fff; color: var(--ink); outline: none; transition: border-color .15s ease, box-shadow .15s ease; }
.system-config-scope .select { width: auto; border: 1px solid var(--line-strong); border-radius: 7px; background: #fff; color: var(--ink); outline: none; transition: border-color .15s ease, box-shadow .15s ease; }
.system-config-scope .field, .system-config-scope .select { height: 34px; padding: 0 10px; font-size: 12px; }
.system-config-scope .field-wrap .field { padding-left: 32px; }
.system-config-scope .select { min-width: 116px; }
.system-config-scope .textarea { min-height: 86px; padding: 9px 10px; resize: vertical; font-size: 12px; }
.system-config-scope .field:focus, .system-config-scope .select:focus, .system-config-scope .textarea:focus { border-color: #73a0ff; box-shadow: 0 0 0 3px rgba(36,99,235,.1); }
.system-config-scope .field.error, .system-config-scope .select.error { border-color: #e46e67; background: #fffafa; }
.system-config-scope .field-hint { margin-top: 4px; color: var(--muted); font-size: 11px; }
.system-config-scope .field-error { margin-top: 4px; color: var(--red); font-size: 11px; }

.system-config-scope .table-scroll { overflow: auto; }
.system-config-scope .data-table { width: 100%; border-collapse: collapse; }
.system-config-scope .data-table th { position: sticky; top: 0; z-index: 1; padding: 10px 12px; border-bottom: 1px solid var(--line); background: #f8fafc; color: #667085; font-size: 11px; font-weight: 760; text-align: left; white-space: nowrap; }
.system-config-scope .data-table td { padding: 11px 12px; border-bottom: 1px solid #edf0f4; color: var(--ink-soft); font-size: 12px; vertical-align: middle; white-space: nowrap; }
.system-config-scope .data-table tbody tr { transition: background .13s ease; }
.system-config-scope .data-table tbody tr:hover { background: #fbfcff; }
.system-config-scope .data-table tbody tr:last-child td { border-bottom: 0; }
.system-config-scope .data-table .actions-cell { text-align: right; white-space: nowrap; }
.system-config-scope .department-page .card { min-height: 0; }
.system-config-scope .department-toolbar { gap: 8px; }
.system-config-scope .department-count { margin-left: 2px; color: var(--muted); font-size: 11px; white-space: nowrap; }
.system-config-scope .department-toolbar-actions { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.system-config-scope .department-tree-table { table-layout: fixed; }
.system-config-scope .department-tree-table th, .system-config-scope .department-tree-table td { padding-right: 8px; padding-left: 8px; }
.system-config-scope .department-tree-table th:nth-child(1), .system-config-scope .department-tree-table td:nth-child(1) { width: 29%; }
.system-config-scope .department-tree-table th:nth-child(2), .system-config-scope .department-tree-table td:nth-child(2) { width: 15%; }
.system-config-scope .department-tree-table th:nth-child(3), .system-config-scope .department-tree-table td:nth-child(3) { width: 17%; }
.system-config-scope .department-tree-table th:nth-child(4), .system-config-scope .department-tree-table td:nth-child(4) { width: 9%; }
.system-config-scope .department-tree-table th:nth-child(5), .system-config-scope .department-tree-table td:nth-child(5) { width: 9%; }
.system-config-scope .department-tree-table .actions-cell { width: 21%; min-width: 0; }
.system-config-scope .department-tree-table td:not(.actions-cell) { overflow: hidden; text-overflow: ellipsis; }
.system-config-scope .department-name { display: flex; align-items: center; min-width: 0; }
.system-config-scope .department-name-label { overflow: hidden; color: var(--ink-soft); font-size: 12px; font-weight: 560; white-space: nowrap; text-overflow: ellipsis; }
.system-config-scope .department-name-label.parent { color: var(--ink); font-weight: 720; }
.system-config-scope .department-tree-toggle, .system-config-scope .department-tree-spacer { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; flex: 0 0 22px; }
.system-config-scope .department-tree-toggle { border: 0; border-radius: 4px; background: transparent; color: var(--muted); cursor: pointer; }
.system-config-scope .department-tree-toggle:hover { background: #f4f7fc; color: var(--blue-strong); }
.system-config-scope .department-tree-toggle svg { width: 14px; height: 14px; }
.system-config-scope .department-history { display: inline-flex; flex: 0 0 auto; margin-left: 4px; color: #aab4c3; opacity: .65; }
.system-config-scope .department-history svg { width: 12px; height: 12px; }
.system-config-scope .row-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: nowrap; gap: 4px; }
.system-config-scope .unified-row-actions { min-width: max-content; }
.system-config-scope .row-action-more { position: relative; display: inline-flex; }
.system-config-scope .row-action-menu, .row-action-menu-portal { z-index: 1200; width: max-content; min-width: 142px; padding: 5px; border: 1px solid #dfe4ec; border-radius: 8px; background: #fff; box-shadow: 0 10px 26px rgba(16, 24, 40, .15); text-align: left; }
.system-config-scope .row-action-menu button, .row-action-menu-portal button { display: flex; align-items: center; gap: 7px; width: 100%; min-height: 32px; padding: 0 9px; border: 0; border-radius: 5px; background: transparent; color: #435067; font: inherit; font-size: 11px; white-space: nowrap; cursor: pointer; }
.system-config-scope .row-action-menu button:hover, .row-action-menu-portal button:hover { background: #f4f7fb; color: #17243d; }
.system-config-scope .row-action-menu button:focus-visible, .row-action-menu-portal button:focus-visible { outline: 2px solid #2f6fed; outline-offset: -2px; }
.system-config-scope .row-action-menu button:disabled, .row-action-menu-portal button:disabled { color: #aeb7c5; cursor: not-allowed; }
.system-config-scope .row-action-menu button.danger, .row-action-menu-portal button.danger { color: #c23c50; }
.system-config-scope .row-action-menu button.danger:hover, .row-action-menu-portal button.danger:hover { background: #fff1f0; }
.system-config-scope .row-action-menu svg, .row-action-menu-portal svg { width: 13px; height: 13px; }
.system-config-scope.connectors-page .connector-filter-card,
.system-config-scope.connectors-page .connector-list-card { overflow: hidden; border-color: #e2e8f0; border-radius: 10px; box-shadow: 0 2px 10px rgba(15, 23, 42, .04); }
.system-config-scope.connectors-page .connector-list-card > .ant-card-head { min-height: 54px; padding: 0 18px; border-bottom-color: #e6ebf2; }
.system-config-scope.connectors-page .connector-list-card > .ant-card-body { padding: 0; }
.system-config-scope.connectors-page .connector-app-table .ant-table { color: #344054; font-size: 13px; }
.system-config-scope.connectors-page .connector-app-table .ant-table-thead > tr > th { height: 54px; padding: 12px 16px; border-bottom-color: #dfe6ef; background: #f8fafc; color: #526176; font-size: 12px; font-weight: 760; }
.system-config-scope.connectors-page .connector-app-table .ant-table-tbody > tr > td { height: 70px; padding: 12px 16px; border-bottom-color: #e8edf3; vertical-align: middle; }
.system-config-scope.connectors-page .connector-app-table .ant-table-tbody > tr:hover > td { background: #fbfcff; }
.system-config-scope.connectors-page .connector-app-table .ant-table-cell-fix-left,
.system-config-scope.connectors-page .connector-app-table .ant-table-cell-fix-right { background: #fff; }
.system-config-scope.connectors-page .connector-app-table .ant-table-tbody > tr:hover > .ant-table-cell-fix-left,
.system-config-scope.connectors-page .connector-app-table .ant-table-tbody > tr:hover > .ant-table-cell-fix-right { background: #fbfcff; }
.system-config-scope.connectors-page .connector-platform-cell { display: flex; align-items: center; gap: 10px; min-width: 0; }
.system-config-scope.connectors-page .connector-platform-mark { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; flex: 0 0 34px; border-radius: 50%; background: #edf3ff; color: #2f6fed; font-size: 13px; font-weight: 760; }
.system-config-scope.connectors-page .connector-cell-copy { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
.system-config-scope.connectors-page .connector-cell-copy strong { overflow: hidden; color: #17243d; font-size: 13px; font-weight: 680; line-height: 1.35; white-space: nowrap; text-overflow: ellipsis; }
.system-config-scope.connectors-page .connector-cell-copy span { overflow: hidden; color: #8a96a8; font-size: 11px; line-height: 1.35; white-space: nowrap; text-overflow: ellipsis; }
.system-config-scope.connectors-page .connector-code-value { display: block; max-width: 100%; color: #435067; font-family: "IBM Plex Mono", "Cascadia Code", monospace; font-size: 11px; }
.system-config-scope.connectors-page .connector-app-table .row-actions { gap: 7px; }
.system-config-scope.connectors-page .connector-app-table .row-actions .btn { min-height: 34px; padding: 0 10px; border-color: #d6deea; border-radius: 8px; background: #fff; color: #344054; font-size: 12px; font-weight: 620; }
.system-config-scope.connectors-page .connector-app-table .row-actions .btn:hover { border-color: #9eb9ee; background: #f5f8ff; color: #245edb; }
.system-config-scope.connectors-page .connector-app-table .ant-pagination { min-height: 62px; margin: 0; padding: 14px 18px; border-top: 1px solid #e8edf3; }
.system-config-scope .department-tree-table .row-actions .btn { padding: 0 7px; font-size: 10px; }
.system-config-scope .department-actions { min-width: 0; }
.system-config-scope .position-page .card { min-height: 0; }
.system-config-scope .position-toolbar { gap: 8px; }
.system-config-scope .position-count { margin-left: 2px; color: var(--muted); font-size: 11px; white-space: nowrap; }
.system-config-scope .position-toolbar-actions { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.system-config-scope .position-table { table-layout: fixed; }
.system-config-scope .position-table th, .system-config-scope .position-table td { padding-right: 8px; padding-left: 8px; }
.system-config-scope .position-table th:nth-child(1), .system-config-scope .position-table td:nth-child(1) { width: 21%; }
.system-config-scope .position-table th:nth-child(2), .system-config-scope .position-table td:nth-child(2) { width: 13%; }
.system-config-scope .position-table th:nth-child(3), .system-config-scope .position-table td:nth-child(3) { width: 15%; }
.system-config-scope .position-table th:nth-child(4), .system-config-scope .position-table td:nth-child(4) { width: 12%; }
.system-config-scope .position-table th:nth-child(5), .system-config-scope .position-table td:nth-child(5) { width: 8%; }
.system-config-scope .position-table th:nth-child(6), .system-config-scope .position-table td:nth-child(6) { width: 10%; }
.system-config-scope .position-table th:nth-child(7), .system-config-scope .position-table td:nth-child(7) { width: 8%; }
.system-config-scope .position-table .actions-cell { width: 13%; min-width: 0; }
.system-config-scope .position-table td:not(.actions-cell) { overflow: hidden; text-overflow: ellipsis; }
.system-config-scope .position-table .row-actions .btn { padding: 0 7px; font-size: 10px; }
.system-config-scope .import-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.system-config-scope .upload-file-button { min-height: 29px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 0 9px; border: 1px solid var(--line-strong); border-radius: 7px; background: #fff; color: var(--ink-soft); font-size: 11px; font-weight: 700; cursor: pointer; }
.system-config-scope .upload-file-button:hover { border-color: #aebcce; background: #fafcff; color: var(--ink); }
.system-config-scope .upload-file-button svg { width: 14px; height: 14px; }
.system-config-scope .upload-file-button input { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.system-config-scope .import-file-name { max-width: 200px; overflow: hidden; color: var(--muted); font-size: 11px; white-space: nowrap; text-overflow: ellipsis; }
.system-config-scope .import-hint { margin: 12px 0; color: var(--muted); font-size: 11px; line-height: 1.7; }
.system-config-scope .import-summary { display: flex; gap: 6px; margin-bottom: 10px; }
.system-config-scope .import-result-table { max-height: 236px; overflow: auto; border: 1px solid var(--line); border-radius: 8px; }
.system-config-scope .import-result-table .data-table th, .system-config-scope .import-result-table .data-table td { padding: 8px 10px; }
.system-config-scope .import-error { color: var(--red) !important; }
.system-config-scope .import-success { color: #147d50 !important; }
.system-config-scope .import-empty { padding: 38px 12px; border: 1px dashed #cfd8e6; border-radius: 8px; color: var(--muted); font-size: 12px; text-align: center; }
.system-config-scope .row-link { border: 0; padding: 0; background: transparent; color: var(--blue-strong); font-size: inherit; font-weight: 700; }
.system-config-scope .row-link:hover { color: var(--blue); text-decoration: underline; }
.system-config-scope .entity-name { display: flex; align-items: center; gap: 8px; min-width: 120px; }
.system-config-scope .entity-avatar { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: #eaf0fb; color: #31558f; font-size: 11px; font-weight: 800; }
.system-config-scope .entity-main { color: var(--ink); font-weight: 720; }
.system-config-scope .entity-sub { margin-top: 1px; color: var(--muted); font-size: 10px; }
.system-config-scope .muted { color: var(--muted); }
.system-config-scope .empty-state { padding: 50px 20px; color: var(--muted); text-align: center; }
.system-config-scope .empty-state svg { width: 31px; height: 31px; color: #aeb8c7; }
.system-config-scope .empty-state strong { display: block; margin-top: 8px; color: var(--ink-soft); font-size: 13px; }
.system-config-scope .empty-state p { margin: 3px 0 0; font-size: 12px; }

.system-config-scope .badge { display: inline-flex; align-items: center; gap: 4px; min-height: 21px; padding: 0 8px; border-radius: 999px; font-size: 10px; font-weight: 740; line-height: 1; white-space: nowrap; }
.system-config-scope .badge.blue { background: var(--blue-soft); color: #2259bc; }
.system-config-scope .badge.green { background: var(--green-soft); color: #147d50; }
.system-config-scope .badge.amber { background: var(--amber-soft); color: #9a5805; }
.system-config-scope .badge.red { background: var(--red-soft); color: #af3530; }
.system-config-scope .badge.gray { background: #eef1f5; color: #5a6475; }
.system-config-scope .badge.purple { background: var(--purple-soft); color: #6841c5; }
.system-config-scope .tag-list { display: flex; flex-wrap: wrap; gap: 4px; white-space: normal; }
.system-config-scope .role-tag { display: inline-flex; align-items: center; min-height: 21px; max-width: 130px; overflow: hidden; padding: 0 7px; border: 1px solid #dce3ee; border-radius: 5px; background: #fafbfc; color: #556274; font-size: 10px; white-space: nowrap; text-overflow: ellipsis; }

.system-config-scope .org-layout { display: grid; grid-template-columns: 270px minmax(0, 1fr); min-height: 640px; }
.system-config-scope .org-tree-panel { min-width: 0; border-right: 1px solid var(--line); }
.system-config-scope .org-main-panel { min-width: 0; display: flex; flex-direction: column; }
.system-config-scope .tree-panel-head { min-height: 46px; padding: 8px 12px; }
.system-config-scope .tree-toolbar { display: flex; gap: 7px; padding: 11px 12px; border-bottom: 1px solid var(--line); }
.system-config-scope .tree-toolbar .field-wrap { min-width: 0; flex: 1; }
.system-config-scope .tree-actions { display: flex; gap: 4px; }
.system-config-scope .tree-actions .btn { min-height: 28px; padding: 0 7px; font-size: 10px; }
.system-config-scope .tree-actions .btn svg { width: 13px; height: 13px; }
.system-config-scope .department-tree { padding: 8px; }
.system-config-scope .tree-node-row { display: flex; align-items: center; min-width: 0; }
.system-config-scope .tree-node-toggle { width: 23px; height: 28px; display: grid; place-items: center; border: 0; background: transparent; color: var(--muted); }
.system-config-scope .tree-node-toggle.placeholder { pointer-events: none; opacity: 0; }
.system-config-scope .tree-node-toggle svg { width: 14px; height: 14px; }
.system-config-scope .tree-node { flex: 1; min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 30px; padding: 0 8px; border: 0; border-radius: 6px; background: transparent; color: var(--ink-soft); text-align: left; }
.system-config-scope .tree-node:hover { background: #f4f7fc; }
.system-config-scope .tree-node.selected { background: var(--blue-soft); color: #1e55b5; font-weight: 720; }
.system-config-scope .tree-node-label { overflow: hidden; font-size: 12px; white-space: nowrap; text-overflow: ellipsis; }
.system-config-scope .tree-node-count { flex: 0 0 auto; color: #8a96a8; font-size: 10px; }
.system-config-scope .tree-node.selected .tree-node-count { color: #3a6dcc; }
.system-config-scope .tree-empty { padding: 26px 12px; color: var(--muted); font-size: 12px; text-align: center; }
.system-config-scope .org-filter-total { font-size: 11px; }
.system-config-scope .org-main-panel .table-scroll { min-height: 0; flex: 1; }
.system-config-scope .org-employee-table { table-layout: fixed; }
.system-config-scope .org-employee-table th, .system-config-scope .org-employee-table td { padding-right: 8px; padding-left: 8px; }
.system-config-scope .org-employee-table th:nth-child(1), .system-config-scope .org-employee-table td:nth-child(1) { width: 8%; }
.system-config-scope .org-employee-table th:nth-child(2), .system-config-scope .org-employee-table td:nth-child(2) { width: 9%; }
.system-config-scope .org-employee-table th:nth-child(3), .system-config-scope .org-employee-table td:nth-child(3) { width: 11%; }
.system-config-scope .org-employee-table th:nth-child(4), .system-config-scope .org-employee-table td:nth-child(4) { width: 9%; }
.system-config-scope .org-employee-table th:nth-child(5), .system-config-scope .org-employee-table td:nth-child(5) { width: 17%; }
.system-config-scope .org-employee-table th:nth-child(6), .system-config-scope .org-employee-table td:nth-child(6) { width: 13%; }
.system-config-scope .org-employee-table th:nth-child(7), .system-config-scope .org-employee-table td:nth-child(7) { width: 7%; }
.system-config-scope .org-employee-table th:nth-child(8), .system-config-scope .org-employee-table td:nth-child(8) { width: 26%; }
.system-config-scope .org-employee-table td:not(.actions-cell) { overflow: hidden; text-overflow: ellipsis; }
.system-config-scope .org-employee-table .tag-list { max-height: 48px; overflow: hidden; }
.system-config-scope .org-employee-table .actions-cell { min-width: 0; }
.system-config-scope .org-employee-table .row-actions { gap: 4px; }
.system-config-scope .org-employee-table .row-actions .btn { padding: 0 7px; font-size: 10px; }
.system-config-scope .pagination { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 9px; min-height: 56px; padding: 10px 14px; border-top: 1px solid var(--line); background: #fff; }
.system-config-scope .pagination-total { color: var(--muted); font-size: 11px; white-space: nowrap; }
.system-config-scope .pagination-controls { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 7px; margin-left: auto; }
.system-config-scope .pagination-size { display: inline-flex; align-items: center; gap: 5px; color: var(--muted); font-size: 11px; white-space: nowrap; }
.system-config-scope .pagination-size .select { min-width: 82px; height: 29px; padding: 0 6px; font-size: 11px; }
.system-config-scope .pagination-pages { display: inline-flex; align-items: center; gap: 4px; }
.system-config-scope .pagination-page { min-width: 29px; height: 29px; padding: 0 6px; border: 1px solid var(--line-strong); border-radius: 6px; background: #fff; color: var(--ink-soft); font-size: 11px; font-weight: 700; }
.system-config-scope .pagination-page:hover { border-color: #9db9f4; color: var(--blue-strong); background: var(--blue-soft); }
.system-config-scope .pagination-page.active { border-color: var(--blue); background: var(--blue); color: #fff; }
.system-config-scope .pagination-ellipsis { min-width: 15px; color: var(--muted); text-align: center; }
.system-config-scope .pagination-jump { display: inline-flex; align-items: center; gap: 5px; color: var(--muted); font-size: 11px; white-space: nowrap; }
.system-config-scope .pagination-jump .field { width: 48px; height: 29px; padding: 0 6px; text-align: center; }

.system-config-scope .split-roles { display: grid; grid-template-columns: 315px minmax(0, 1fr); min-height: 690px; }
.system-config-scope .role-list-panel { min-width: 0; border-right: 1px solid var(--line); }
.system-config-scope .role-list { padding: 8px; }
.system-config-scope .role-card { display: block; width: 100%; padding: 11px 12px; border: 1px solid transparent; border-radius: 8px; background: transparent; color: inherit; text-align: left; }
.system-config-scope .role-card:hover { border-color: #e3e9f3; background: #fafcff; }
.system-config-scope .role-card.selected { border-color: var(--blue-border); background: var(--blue-soft); }
.system-config-scope .role-card-title { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--ink); font-size: 13px; font-weight: 750; }
.system-config-scope .role-card-meta { display: flex; gap: 10px; margin-top: 5px; color: var(--muted); font-size: 10px; }
.system-config-scope .role-card-desc { margin-top: 5px; color: #697688; font-size: 11px; line-height: 1.45; }
.system-config-scope .permission-header { padding: 15px 18px 0; }
.system-config-scope .permission-role-name { color: var(--ink); font-size: 17px; font-weight: 780; }
.system-config-scope .permission-role-info { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin-top: 5px; color: var(--muted); font-size: 11px; }
.system-config-scope .tabs { display: flex; align-items: stretch; gap: 4px; margin-top: 15px; border-bottom: 1px solid var(--line); }
.system-config-scope .tab { position: relative; height: 39px; padding: 0 12px; border: 0; background: transparent; color: var(--muted); font-size: 12px; font-weight: 720; }
.system-config-scope .tab.active { color: var(--blue-strong); }
.system-config-scope .tab.active::after { position: absolute; right: 8px; bottom: -1px; left: 8px; height: 2px; border-radius: 2px 2px 0 0; background: var(--blue); content: ""; }
.system-config-scope .permission-panel { padding: 15px 18px 18px; }
.system-config-scope .permission-tip { display: flex; align-items: flex-start; gap: 8px; padding: 9px 10px; margin-bottom: 12px; border-radius: 7px; background: #f7f9fc; color: var(--muted); font-size: 11px; line-height: 1.55; }
.system-config-scope .permission-tip svg { width: 15px; min-width: 15px; color: #4b73bf; }
.system-config-scope .permission-tree { border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
.system-config-scope .permission-group { border-bottom: 1px solid var(--line); }
.system-config-scope .permission-group:last-child { border-bottom: 0; }
.system-config-scope .permission-group-title { display: flex; align-items: center; gap: 8px; min-height: 39px; padding: 0 12px; background: #f8fafc; color: var(--ink); font-size: 12px; font-weight: 750; }
.system-config-scope .permission-row { display: grid; grid-template-columns: minmax(170px, 1fr) minmax(250px, 1.7fr); align-items: center; gap: 10px; min-height: 48px; padding: 7px 12px 7px 38px; border-top: 1px solid #edf0f4; }
.system-config-scope .permission-row:hover { background: #fcfdff; }
.system-config-scope .permission-menu-name { display: flex; align-items: center; gap: 7px; min-width: 0; font-size: 12px; font-weight: 680; }
.system-config-scope .permission-menu-name svg { width: 14px; height: 14px; color: #607aab; }
.system-config-scope .permission-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 9px 13px; }
.system-config-scope .check-option { display: inline-flex; align-items: center; gap: 5px; color: var(--ink-soft); font-size: 11px; white-space: nowrap; }
.system-config-scope .check-option input { width: 14px; height: 14px; margin: 0; accent-color: var(--blue); }
.system-config-scope .sensitive { display: inline-flex; align-items: center; min-height: 17px; padding: 0 5px; border-radius: 4px; background: var(--red-soft); color: var(--red); font-size: 9px; font-weight: 760; }
.system-config-scope .permission-save-bar { position: sticky; bottom: 0; display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 13px; padding: 10px 12px; border: 1px solid #cbdafa; border-radius: 8px; background: #f6f9ff; }
.system-config-scope .permission-save-diff { display: flex; gap: 12px; color: #405273; font-size: 11px; }
.system-config-scope .diff-add { color: var(--green); font-weight: 740; }
.system-config-scope .diff-remove { color: var(--red); font-weight: 740; }
.system-config-scope .permission-footer-actions { display: flex; gap: 7px; }
.system-config-scope .data-scope-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.system-config-scope .scope-option { display: flex; align-items: flex-start; gap: 8px; min-height: 56px; padding: 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; transition: border-color .15s ease, background .15s ease; }
.system-config-scope .scope-option:hover { border-color: #b7c9ea; }
.system-config-scope .scope-option.selected { border-color: #86aaf3; background: #f4f8ff; }
.system-config-scope .scope-option input { margin: 2px 0 0; accent-color: var(--blue); }
.system-config-scope .scope-option strong { display: block; color: var(--ink-soft); font-size: 12px; }
.system-config-scope .scope-option span { display: block; margin-top: 1px; color: var(--muted); font-size: 10px; line-height: 1.4; }
.system-config-scope .selection-tree { max-height: 205px; margin-top: 12px; overflow: auto; border: 1px solid var(--line); border-radius: 8px; padding: 8px; }
.system-config-scope .selection-tree-row { display: flex; align-items: center; gap: 7px; min-height: 29px; padding-right: 7px; color: var(--ink-soft); font-size: 12px; }
.system-config-scope .selection-tree-row input { accent-color: var(--blue); }

.system-config-scope .role-directory-card { overflow: hidden; }

/* SM-OPS 数据运维 */
.system-config-scope .data-operations-page { min-width: 0; max-width: 100%; }
.system-config-scope .data-operations-intro { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 16px; padding: 14px 16px; border: 1px solid #dce4ef; border-radius: 10px; background: linear-gradient(120deg, #f7faff 0%, #fff 70%); }
.system-config-scope .data-operations-intro > div:first-child { display: grid; gap: 4px; }
.system-config-scope .data-operations-intro strong { color: #182844; font-size: 13px; }
.system-config-scope .data-operations-intro p { margin: 0; color: #68758a; font-size: 11px; }
.system-config-scope .data-operations-intro > div:last-child { display: flex; align-items: center; gap: 7px; color: #7b8798; font-size: 10px; white-space: nowrap; }
.system-config-scope .data-operations-intro > div:last-child strong { font-size: 11px; }
.system-config-scope .data-operations-intro i { width: 1px; height: 16px; margin: 0 4px; background: #dbe3ee; }
.system-config-scope .data-operations-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; align-items: start; gap: 16px; }
.system-config-scope .operations-catalog { min-width: 0; overflow: hidden; border: 1px solid #dfe5ec; border-radius: 10px; background: #fff; }
.system-config-scope .operations-catalog-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 17px 18px 13px; }
.system-config-scope .operations-catalog-head h2 { margin: 0; color: #17243d; font-size: 15px; }
.system-config-scope .operations-catalog-head p { margin: 4px 0 0; color: #738096; font-size: 10px; }
.system-config-scope .operations-catalog-head > span { color: #78859a; font-size: 10px; }
.system-config-scope .operation-category-tabs { display: flex; gap: 4px; padding: 0 18px 12px; overflow-x: auto; border-bottom: 1px solid #edf0f5; }
.system-config-scope .operation-category-tabs button { min-height: 28px; padding: 0 10px; border: 1px solid transparent; border-radius: 6px; background: transparent; color: #66748a; font-size: 10px; font-weight: 700; white-space: nowrap; }
.system-config-scope .operation-category-tabs button[aria-pressed="true"] { border-color: #cbdcfb; background: #edf4ff; color: #2359b7; }
.system-config-scope .operation-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 14px; background: #f7f9fc; }
.system-config-scope .operation-catalog-card { display: grid; grid-template-rows: auto 1fr auto auto; gap: 13px; min-width: 0; min-height: 240px; padding: 16px; border: 1px solid #dde4ed; border-radius: 10px; background: #fff; }
.system-config-scope .operation-catalog-card.executable { border-color: #b9cff8; box-shadow: inset 0 3px #2f6fed; }
.system-config-scope .operation-catalog-card.high-risk { border-color: #ecd3b0; }
.system-config-scope .operation-card-top, .system-config-scope .operation-card-actions { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.system-config-scope .operation-icon { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 9px; }
.system-config-scope .operation-icon svg { width: 17px; height: 17px; }
.system-config-scope .operation-icon.blue { background: #edf4ff; color: #2763ca; }
.system-config-scope .operation-icon.green { background: #eaf8f1; color: #158058; }
.system-config-scope .operation-icon.amber { background: #fff4e4; color: #b66c18; }
.system-config-scope .operation-icon.purple { background: #f2edff; color: #6e4bc2; }
.system-config-scope .operation-catalog-card h3 { margin: 0; color: #17243d; font-size: 14px; }
.system-config-scope .operation-catalog-card p { margin: 6px 0 0; color: #66748a; font-size: 11px; line-height: 1.65; }
.system-config-scope .operation-catalog-card dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; padding: 10px 0; border-top: 1px solid #edf0f5; border-bottom: 1px solid #edf0f5; }
.system-config-scope .operation-catalog-card dl div { display: grid; gap: 3px; }
.system-config-scope .operation-catalog-card dt { color: #8a96a8; font-size: 9px; }
.system-config-scope .operation-catalog-card dd { margin: 0; color: #34445d; font-size: 10px; font-weight: 700; }
.system-config-scope .operation-card-actions > span { display: flex; align-items: center; gap: 5px; color: #7a879a; font-size: 9px; }
.system-config-scope .operation-card-actions > span svg { width: 13px; height: 13px; }
.system-config-scope .operations-overview { display: grid; gap: 12px; }
.system-config-scope .operations-overview section { padding: 15px; border: 1px solid #dfe5ec; border-radius: 10px; background: #fff; }
.system-config-scope .overview-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; color: #22324c; font-size: 12px; font-weight: 760; }
.system-config-scope .operations-overview section > strong { color: #1e2d47; font-size: 12px; }
.system-config-scope .operations-overview section > p { margin: 4px 0 12px; color: #8290a3; font-size: 9px; }
.system-config-scope .overview-result { display: grid; gap: 7px; padding-top: 10px; border-top: 1px solid #edf0f5; }
.system-config-scope .overview-result span { display: flex; align-items: center; gap: 6px; color: #66748a; font-size: 10px; }
.system-config-scope .overview-result svg { width: 13px; height: 13px; }
.system-config-scope .overview-result b { margin-left: auto; color: #243650; }
.system-config-scope .overview-result .warning, .system-config-scope .overview-result .warning b { color: #b66c18; }
.system-config-scope .overview-empty { display: grid; justify-items: center; gap: 7px; padding: 16px 4px 6px; color: #91a0b4; text-align: center; }
.system-config-scope .overview-empty svg { width: 25px; height: 25px; }
.system-config-scope .overview-empty p { margin: 0; font-size: 10px; line-height: 1.6; }
.system-config-scope .operations-overview ul { display: grid; gap: 8px; margin: 0; padding-left: 16px; color: #66748a; font-size: 10px; line-height: 1.55; }
.system-config-scope .data-operation-state {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 16px;
  padding: 14px 16px;
  border: 1px solid #dfe5ec;
  border-radius: 8px;
}
.system-config-scope .data-operation-state svg { width: 18px; height: 18px; flex: 0 0 auto; margin-top: 2px; }
.system-config-scope .data-operation-state strong { color: #17243d; }
.system-config-scope .data-operation-state p { margin: 4px 0 0; color: #67748a; }
.system-config-scope .data-operation-state.warning { border-color: #f0cda4; background: #fff3e3; }
.system-config-scope .data-operation-state.warning svg { color: #b66c18; }
.system-config-scope .data-operation-state.error { border-color: #efb8c1; background: #fdecef; }
.system-config-scope .data-operation-state.error svg { color: #c23c50; }
.system-config-scope .is-spinning { animation: data-operation-spin 900ms linear infinite; }
@keyframes data-operation-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .system-config-scope .is-spinning { animation: none; } }
.system-config-scope .role-binding-stepper { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 16px; }
.system-config-scope .role-binding-step { position: relative; display: flex; align-items: center; gap: 7px; color: #8a96a8; font-size: 10px; }
.system-config-scope .role-binding-step:not(:last-child)::after { position: absolute; top: 12px; right: 8px; left: 31px; height: 1px; background: #dfe4ec; content: ""; }
.system-config-scope .role-binding-step > span { position: relative; z-index: 1; display: grid; place-items: center; width: 24px; height: 24px; border: 1px solid #cfd7e3; border-radius: 50%; background: #fff; }
.system-config-scope .role-binding-step > strong { position: relative; z-index: 1; padding-right: 5px; background: #fff; }
.system-config-scope .role-binding-step.active, .system-config-scope .role-binding-step.done { color: #245ec4; }
.system-config-scope .role-binding-step.active > span, .system-config-scope .role-binding-step.done > span { border-color: #2f6fed; background: #2f6fed; color: #fff; }
.system-config-scope .role-binding-step.done:not(:last-child)::after { background: #2f6fed; }
.system-config-scope .role-binding-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 150px)); gap: 8px; padding: 11px; border: 1px solid #dce5f3; border-radius: 8px; background: #f7faff; }
.system-config-scope .role-binding-summary > div { display: flex; align-items: center; gap: 7px; color: #607089; font-size: 10px; }
.system-config-scope .role-binding-summary svg { width: 15px; height: 15px; color: #2f6fed; }
.system-config-scope .role-binding-summary span { display: flex; align-items: baseline; gap: 5px; }
.system-config-scope .role-binding-summary strong { color: #17243d; font-size: 16px; }
.system-config-scope .role-binding-summary p { grid-column: 1 / -1; margin: 2px 0 0; color: #6f7d91; font-size: 10px; }
.system-config-scope .assignment-option { position: relative; }
.system-config-scope .assignment-option.is-locked { border-color: #e4e8ee; background: #f6f7f9; color: #8792a2; cursor: not-allowed; }
.system-config-scope .assignment-option.is-locked:has(input:checked) { border-color: #d9dee6; background: #f2f4f7; }
.system-config-scope .assignment-option em { display: inline-flex; align-items: center; gap: 3px; margin-left: auto; color: #7b8798; font-size: 9px; font-style: normal; white-space: nowrap; }
.system-config-scope .assignment-option em svg { width: 11px; height: 11px; }
.system-config-scope .role-binding-review h3 { margin: 16px 0 4px; color: #17243d; font-size: 13px; }
.system-config-scope .role-binding-review > p { margin: 0 0 10px; color: #68758a; font-size: 10px; }
.system-config-scope .role-binding-role { display: flex; align-items: center; gap: 8px; padding: 11px; border: 1px solid #dce5f3; border-radius: 8px; background: #f7faff; }
.system-config-scope .role-binding-role span { color: #748197; font-size: 10px; }
.system-config-scope .role-binding-role strong { color: #17243d; font-size: 12px; }
.system-config-scope .role-binding-role code { margin-left: auto; color: #47628c; font-size: 9px; }
.system-config-scope .role-binding-review-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; max-height: 280px; overflow: auto; }
.system-config-scope .role-binding-review-list > div { display: flex; align-items: center; gap: 8px; padding: 10px; border: 1px solid #dfe4ec; border-radius: 8px; }
.system-config-scope .role-binding-review-list > div > span:last-child { display: grid; gap: 2px; }
.system-config-scope .role-binding-review-list strong { color: #263750; font-size: 11px; }
.system-config-scope .role-binding-review-list small { color: #8290a3; font-size: 9px; }
.system-config-scope .role-binding-success { display: grid; justify-items: center; gap: 8px; padding: 32px 12px 26px; text-align: center; }
.system-config-scope .role-binding-success svg { width: 42px; height: 42px; color: #15915f; }
.system-config-scope .role-binding-success h3 { margin: 0; color: #17243d; font-size: 17px; }
.system-config-scope .role-binding-success p { margin: 0; color: #68758a; font-size: 11px; }
.system-config-scope .role-toolbar .field-wrap { width: min(100%, 350px); }
.system-config-scope .role-total { font-size: 11px; white-space: nowrap; }
.system-config-scope .role-table { min-width: 1180px; }
.system-config-scope .role-table th:first-child, .system-config-scope .role-table td:first-child { min-width: 190px; }
.system-config-scope .role-table .role-name-cell { display: flex; align-items: center; gap: 7px; }
.system-config-scope .role-table .role-description { max-width: 230px; margin-top: 3px; overflow: hidden; color: var(--muted); font-size: 10px; text-overflow: ellipsis; }
.system-config-scope .role-table .role-code { color: #42526a; font: 10px/1.4 ui-monospace, "SFMono-Regular", Consolas, monospace; }
.system-config-scope .role-row-actions { justify-content: flex-end; gap: 4px; }
.system-config-scope .role-member-toolbar { margin: 12px 0 8px; border: 1px solid var(--line); border-radius: 8px; }
.system-config-scope .role-member-list { display: grid; max-height: 370px; overflow: auto; gap: 6px; }

.system-config-scope .form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.system-config-scope .form-grid > label.field { display: flex; flex-direction: column; gap: 5px; height: auto; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.system-config-scope .form-item { min-width: 0; }
.system-config-scope .form-item.full { grid-column: 1 / -1; }
.system-config-scope .form-item label { display: flex; align-items: center; gap: 3px; margin-bottom: 5px; color: var(--ink-soft); font-size: 11px; font-weight: 720; }
.system-config-scope .required { color: var(--red); }
.system-config-scope .form-item .field, .system-config-scope .form-item .select { width: 100%; height: 36px; }
.system-config-scope .form-divider { height: 1px; margin: 16px 0; background: var(--line); }
.system-config-scope .form-section-title { margin: 0 0 11px; color: var(--ink); font-size: 13px; font-weight: 760; }
.system-config-scope .stepper { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin-bottom: 19px; }
.system-config-scope .step { position: relative; display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: 11px; font-weight: 700; }
.system-config-scope .step:not(:last-child)::after { position: absolute; top: 12px; right: 7px; left: 31px; height: 1px; background: var(--line-strong); content: ""; }
.system-config-scope .step-index { position: relative; z-index: 1; width: 24px; height: 24px; display: grid; place-items: center; border: 1px solid var(--line-strong); border-radius: 50%; background: #fff; color: var(--muted); font-size: 11px; }
.system-config-scope .step > span:last-child { position: relative; z-index: 1; padding: 0 4px; background: #fff; }
.system-config-scope .step.active, .system-config-scope .step.done { color: var(--blue-strong); }
.system-config-scope .step.active .step-index, .system-config-scope .step.done .step-index { border-color: var(--blue); background: var(--blue); color: #fff; }
.system-config-scope .step.done:not(:last-child)::after { background: var(--blue); }
.system-config-scope .assignment-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; }
.system-config-scope .assignment-option { display: flex; align-items: flex-start; gap: 8px; min-height: 49px; padding: 9px; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.system-config-scope .assignment-option:has(input:checked) { border-color: #90b2f5; background: #f5f8ff; }
.system-config-scope .assignment-option input { margin: 3px 0 0; accent-color: var(--blue); }
.system-config-scope .assignment-option strong { display: block; color: var(--ink-soft); font-size: 12px; }
.system-config-scope .assignment-option span { display: block; margin-top: 1px; color: var(--muted); font-size: 10px; }
.system-config-scope .permission-summary { padding: 11px 12px; border: 1px solid #c9daf9; border-radius: 8px; background: #f5f8ff; }
.system-config-scope .permission-summary-title { display: flex; align-items: center; gap: 6px; color: #2c58a7; font-size: 12px; font-weight: 740; }
.system-config-scope .permission-summary-title svg { width: 15px; height: 15px; }
.system-config-scope .permission-summary-content { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 8px; margin-top: 9px; }
.system-config-scope .permission-summary-content div { padding-right: 8px; border-right: 1px solid #d5e1f8; }
.system-config-scope .permission-summary-content div:last-child { border-right: 0; }
.system-config-scope .permission-summary-content label { display: block; color: #6679a2; font-size: 10px; }
.system-config-scope .permission-summary-content strong { display: block; margin-top: 2px; color: #2c4d8e; font-size: 14px; }

.system-config-scope .modal-backdrop { position: fixed; z-index: 50; inset: 0; display: flex; align-items: center; justify-content: center; padding: 22px; background: rgba(11, 23, 43, .47); animation: fade-in .16s ease; }
.system-config-scope .modal { width: min(670px, calc(100vw - 44px)); max-height: min(800px, calc(100vh - 44px)); display: flex; flex-direction: column; overflow: hidden; border-radius: 12px; background: #fff; box-shadow: var(--shadow-lg); animation: modal-in .18s ease; }
.system-config-scope .modal.small { width: min(455px, calc(100vw - 44px)); }
.system-config-scope .modal-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 57px; padding: 12px 18px; border-bottom: 1px solid var(--line); }
.system-config-scope .modal-title { margin: 0; color: var(--ink); font-size: 16px; font-weight: 780; }
.system-config-scope .modal-close { width: 30px; height: 30px; display: grid; place-items: center; border: 0; border-radius: 6px; background: transparent; color: var(--muted); }
.system-config-scope .modal-close:hover { background: #f2f5fa; color: var(--ink); }
.system-config-scope .modal-close svg { width: 17px; height: 17px; }
.system-config-scope .modal-body { min-height: 0; flex: 1; padding: 18px; overflow: auto; }
.system-config-scope .modal-foot { display: flex; align-items: center; justify-content: flex-end; gap: 8px; min-height: 59px; padding: 11px 18px; border-top: 1px solid var(--line); }
.system-config-scope .action-dialog-content { margin-top: 15px; }
.system-config-scope .action-dialog-form { display: grid; gap: 13px; }
.system-config-scope .action-dialog-form .form-item label { margin-bottom: 6px; }
.system-config-scope .action-dialog-hint { display: block; margin-top: 5px; color: var(--muted); font-size: 11px; line-height: 1.5; }
.system-config-scope .action-dialog-hint.error { color: var(--red); }
.system-config-scope .drawer-backdrop { position: fixed; z-index: 50; inset: 0; background: rgba(11, 23, 43, .32); animation: fade-in .16s ease; }
.system-config-scope .drawer { position: absolute; top: 0; right: 0; width: min(600px, 92vw); height: 100%; display: flex; flex-direction: column; background: #fff; box-shadow: var(--shadow-lg); animation: slide-in .2s ease; }
.system-config-scope .drawer .modal-body { padding: 0; }
.system-config-scope .drawer-profile { display: flex; align-items: center; gap: 12px; padding: 17px 18px; border-bottom: 1px solid var(--line); }
.system-config-scope .drawer-profile-avatar { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 50%; background: #eaf1ff; color: var(--blue-strong); font-size: 15px; font-weight: 800; }
.system-config-scope .drawer-profile h3 { margin: 0; color: var(--ink); font-size: 17px; }
.system-config-scope .drawer-profile p { margin: 2px 0 0; color: var(--muted); font-size: 11px; }
.system-config-scope .drawer-section { padding: 17px 18px; border-bottom: 1px solid var(--line); }
.system-config-scope .drawer-section:last-child { border-bottom: 0; }
.system-config-scope .drawer-section h4 { margin: 0 0 11px; color: var(--ink); font-size: 13px; font-weight: 760; }
.system-config-scope .detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px 18px; }
.system-config-scope .detail-key { color: var(--muted); font-size: 10px; }
.system-config-scope .detail-value { margin-top: 2px; color: var(--ink-soft); font-size: 12px; font-weight: 650; word-break: break-word; }
.system-config-scope .permission-lines { display: grid; gap: 7px; }
.system-config-scope .permission-line { display: grid; grid-template-columns: 105px 1fr; gap: 8px; align-items: start; color: var(--muted); font-size: 11px; }
.system-config-scope .permission-line strong { color: var(--ink-soft); font-weight: 700; }

.system-config-scope .toast { position: fixed; z-index: 80; bottom: 24px; left: 50%; display: flex; align-items: center; gap: 7px; min-height: 38px; padding: 0 13px; border-radius: 8px; background: #17243b; color: #fff; box-shadow: 0 10px 24px rgba(16, 27, 50, .23); font-size: 12px; font-weight: 650; transform: translateX(-50%); animation: toast-in .2s ease; }
.system-config-scope .toast.success svg { color: #78e2ae; }
.system-config-scope .toast.warning svg { color: #ffd075; }
.system-config-scope .toast.error svg { color: #ff978f; }
.system-config-scope .toast svg { width: 16px; height: 16px; }

@keyframes fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes modal-in { from { opacity: .2; transform: translateY(10px) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes slide-in { from { transform: translateX(28px); } to { transform: translateX(0); } }
@keyframes toast-in { from { opacity: 0; transform: translate(-50%, 9px); } to { opacity: 1; transform: translate(-50%, 0); } }

@media (max-width: 1320px) {
.system-config-scope .app-shell { grid-template-columns: 205px minmax(0, 1fr); }
.system-config-scope .content { padding-right: 18px; padding-left: 18px; }
.system-config-scope .topbar { padding-right: 18px; padding-left: 18px; }
.system-config-scope .kpi { padding-right: 12px; padding-left: 12px; }
.system-config-scope .org-layout { grid-template-columns: 240px minmax(0, 1fr); }
}
@media (max-width: 1160px) {
.system-config-scope .app-shell { grid-template-columns: 188px minmax(0, 1fr); }
.system-config-scope .brand-name { font-size: 13px; }
.system-config-scope .app-sidebar { padding-left: 8px; padding-right: 8px; }
.system-config-scope .org-layout { grid-template-columns: 218px minmax(0, 1fr); }
.system-config-scope .permission-row { grid-template-columns: 155px minmax(230px, 1fr); padding-left: 26px; }
}

.system-config-scope .operation-log-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.system-config-scope .operation-log-table { min-width: 980px; }
.system-config-scope .operation-log-summary { max-width: 28rem; overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; }
.system-config-scope .operation-log-detail { display: grid; gap: 0; }
.system-config-scope .operation-log-snapshot { margin: 0; overflow: auto; border: 1px solid var(--line); border-radius: 7px; background: #f8fafc; padding: 11px 12px; color: #43506a; font: 11px/1.6 "SFMono-Regular", Consolas, monospace; white-space: pre-wrap; }
@media (max-width: 900px) {
  .system-config-scope .operation-log-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .system-config-scope .operation-log-kpis { grid-template-columns: 1fr; }
}
.authorization-page .resource-toolbar { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.authorization-page .resource-toolbar-wrap { justify-content: flex-start; }
.authorization-page .resource-toolbar .search-field { flex: 1; max-width: 420px; }
.authorization-page .compact-field { min-width: 300px; margin: 0; }
.resource-name, .resource-context, .authorization-menu-row { display: flex; align-items: center; gap: 8px; }
.resource-name svg, .resource-context svg { width: 16px; height: 16px; color: #2f6cf6; }
.resource-context { margin: 4px 0 14px; color: #64748b; }
.resource-table code, .authorization-page code { font-size: 12px; color: #38517a; overflow-wrap: anywhere; }
.resource-editor { position: fixed; inset: 0; z-index: 1200; display: grid; place-items: center; padding: 24px; background: rgb(15 28 51 / 48%); }
.resource-editor-card { width: min(760px, 100%); max-height: calc(100vh - 48px); overflow: auto; padding: 24px; border-radius: 16px; background: #fff; box-shadow: 0 24px 70px rgb(20 39 75 / 24%); }
.resource-editor-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 20px; }
.authorization-page .field-wide { grid-column: 1 / -1; }
.authorization-page textarea { min-height: 84px; resize: vertical; }
.system-config-scope .operation-config-page > .card { padding: 0; overflow: hidden; }
.system-config-scope .operation-config-bar { display: grid; grid-template-columns: minmax(260px, 1fr) minmax(260px, 1fr) minmax(280px, 1.2fr) auto; align-items: end; gap: 12px 16px; padding: 14px 18px; border-bottom: 1px solid #dce6f3; background: #f8fafd; }
.system-config-scope .operation-config-bar .operation-menu-field { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 10px; min-width: 0; width: auto; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; }
.system-config-scope .operation-config-bar .operation-menu-field > span { color: #334155; font-size: 13px; font-weight: 650; }
.system-config-scope .operation-config-bar .operation-menu-field .searchable-select { width: 100%; }
.system-config-scope .operation-config-bar .operation-menu-field .searchable-select-trigger { height: 42px; }
.system-config-scope .operation-config-search { min-width: 0; }
.system-config-scope .operation-config-search .search-field { width: 100%; min-width: 0; }
.system-config-scope .operation-config-actions { display: flex; flex-wrap: wrap; gap: 8px; min-width: max-content; }
.system-config-scope .operation-config-actions .button { flex: 0 0 auto; }
.system-config-scope .operation-config-meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 18px 0; }
.system-config-scope .operation-resource-section { background: #fff; }
.system-config-scope .operation-result-count { flex: 0 0 auto; color: #8290a3; font-size: 12px; }
.system-config-scope .operation-result-count strong { color: #245fd7; font-size: 15px; }
.system-config-scope .operation-resource-guide { margin: 8px 0 0; color: #64748b; font-size: 12px; line-height: 1.5; }
.system-config-scope .operation-resource-toolbar { display: flex; align-items: center; gap: 10px; padding-top: 6px; }
.system-config-scope .operation-resource-toolbar .search-field { width: 100%; min-width: 0; }
.system-config-scope .operation-resource-toolbar .button { flex: 0 0 auto; }
.system-config-scope .operation-table-wrap { border-top: 1px solid #e4eaf2; border-bottom: 1px solid #e4eaf2; }
.system-config-scope .operation-resource-table { min-width: 1040px; }
.system-config-scope .operation-resource-table thead th { height: 42px; background: #f7f9fc; color: #53627a; font-size: 11px; font-weight: 700; letter-spacing: .02em; }
.system-config-scope .operation-resource-table tbody td { height: 54px; }
.system-config-scope .operation-name-cell { display: flex; align-items: center; gap: 7px; color: #20324f; font-weight: 650; }
.system-config-scope .operation-muted { color: #94a3b8; }
.system-config-scope .operation-empty-cell, .system-config-scope .operation-loading-cell { height: 250px !important; padding: 0 !important; text-align: center; }
.system-config-scope .operation-empty-state { display: flex; align-items: center; flex-direction: column; justify-content: center; width: min(520px, 92%); height: 250px; margin: 0 auto; }
.system-config-scope .operation-empty-icon { display: grid; width: 48px; height: 48px; margin-bottom: 12px; place-items: center; border: 1px solid #cfe0ff; border-radius: 14px; background: #eef4ff; color: #2f6cf6; }
.system-config-scope .operation-empty-icon svg { width: 23px; height: 23px; }
.system-config-scope .operation-empty-state h3 { margin: 0 0 6px; color: #263650; font-size: 15px; }
.system-config-scope .operation-empty-state p { max-width: 460px; margin: 0 0 15px; color: #7a879a; font-size: 12px; line-height: 1.7; }
.system-config-scope .operation-loading-cell { color: #718096; font-size: 13px; }
.system-config-scope .operation-resource-note { display: flex; align-items: center; gap: 8px; padding: 12px 24px; background: #fbfcfe; color: #7b8798; font-size: 11px; }
.system-config-scope .operation-resource-note svg { width: 15px; height: 15px; color: #d18a16; }
.permission-role-selector { display: flex; align-items: flex-end; gap: 16px; margin-bottom: 14px; }
.permission-role-selector > .field { min-width: 360px; margin: 0; }
.permission-role-selector .notice { flex: 1; margin: 0; }
.authorization-tree, .data-policy-panel { padding: 16px 0; }
.authorization-menu-node { border-left: 1px solid #dce5f2; }
.authorization-menu-row { min-height: 44px; padding: 8px 12px; border-bottom: 1px solid #edf1f7; }
.authorization-menu-row .check-option { min-width: 220px; }
.authorization-menu-row code { flex: 1; }
.authorization-operation-list { display: flex; flex-wrap: wrap; gap: 8px 18px; padding: 10px 16px 12px 42px; background: #f8fafc; }
.authorization-operation-list .check-option { min-width: 290px; }
.authorization-operation-list code { margin-left: 6px; }
.department-policy-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; margin-top: 10px; }
.authorization-loading { padding: 48px; color: #64748b; text-align: center; }
@media (max-width: 900px) { .authorization-page .resource-toolbar, .permission-role-selector { align-items: stretch; flex-direction: column; } .authorization-page .resource-toolbar .search-field, .permission-role-selector > .field, .authorization-page .compact-field { width: 100%; max-width: none; min-width: 0; } }
@media (max-width: 1180px) {
  .system-config-scope .operation-config-bar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .system-config-scope .operation-config-search { grid-column: 1 / -1; }
  .system-config-scope .operation-config-actions { grid-column: 1 / -1; }
}
@media (max-width: 700px) {
  .system-config-scope .operation-config-bar { grid-template-columns: minmax(0, 1fr); align-items: stretch; }
  .system-config-scope .operation-config-bar .operation-menu-field { grid-template-columns: 1fr; }
  .system-config-scope .operation-config-search, .system-config-scope .operation-config-actions { grid-column: auto; }
  .system-config-scope .operation-config-actions .button { flex: 1 1 0; }
  .system-config-scope .operation-config-meta { flex-direction: column; align-items: flex-start; }
  .system-config-scope .operation-resource-note { align-items: flex-start; padding-right: 16px; padding-left: 16px; }
}
.system-config-scope .permission-shell-card { padding: 0; overflow: hidden; }
.system-config-scope .permission-role-toolbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px 24px; padding: 16px 18px; border-bottom: 1px solid var(--line); background: #fff; }
.system-config-scope .permission-role-control { display: grid; grid-template-columns: auto minmax(240px, 360px); align-items: center; gap: 10px; min-width: 0; }
.system-config-scope .permission-role-label { color: var(--ink-soft); font-size: 12px; font-weight: 700; white-space: nowrap; }
.system-config-scope .permission-role-control select { min-width: 0; width: 100%; height: 38px; padding: 0 34px 0 11px; border: 1px solid var(--line-strong); border-radius: 7px; background-color: #fff; color: var(--ink); outline: none; transition: border-color .15s ease, box-shadow .15s ease; }
.system-config-scope .permission-role-control select:focus-visible { border-color: #73a0ff; box-shadow: 0 0 0 3px rgb(36 99 235 / 10%); }
.system-config-scope .permission-role-summary { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 10px 18px; min-width: 0; margin-left: auto; color: var(--muted); font-size: 12px; }
.system-config-scope .permission-role-summary strong { margin-left: 4px; color: var(--ink); font-size: 15px; }
.system-config-scope .permission-tabs { margin: 0; padding: 0 18px; border-bottom: 1px solid var(--line); }
.system-config-scope .authorization-workspace { display: grid; grid-template-columns: minmax(240px, 290px) minmax(0, 1fr); min-width: 0; min-height: clamp(520px, calc(100dvh - 390px), 720px); }
.system-config-scope .authorization-menu-panel { min-width: 0; border-right: 1px solid var(--line); background: #f8fafc; }
.system-config-scope .authorization-column-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 58px; padding: 12px 14px; border-bottom: 1px solid var(--line); }
.system-config-scope .authorization-column-head > div { display: grid; gap: 3px; }
.system-config-scope .authorization-column-head strong { color: var(--ink); font-size: 13px; }
.system-config-scope .authorization-column-head span { color: var(--muted); font-size: 10px; }
.system-config-scope .authorization-column-head b { display: grid; place-items: center; min-width: 28px; height: 22px; padding: 0 8px; border-radius: 999px; background: #e8edf4; color: #536176; font-size: 11px; }
.system-config-scope .authorization-search { display: flex; align-items: center; gap: 8px; height: 36px; margin: 12px; padding: 0 10px; border: 1px solid #d8e0eb; border-radius: 7px; background: #fff; }
.system-config-scope .authorization-search:focus-within { border-color: #2f6fed; box-shadow: 0 0 0 3px rgb(47 111 237 / 10%); }
.system-config-scope .authorization-search svg { width: 15px; color: #8190a5; }
.system-config-scope .authorization-search input { min-width: 0; width: 100%; border: 0; outline: 0; background: transparent; color: var(--ink); font-size: 12px; }
.system-config-scope .authorization-menu-scroll { max-height: calc(clamp(520px, calc(100dvh - 390px), 720px) - 70px); padding: 0 8px 14px; overflow: auto; }
.system-config-scope .authorization-menu-group { margin: 5px 0 10px; }
.system-config-scope .authorization-menu-group-title { display: grid; grid-template-columns: 16px minmax(0, 1fr) auto; align-items: center; gap: 6px; padding: 7px 8px; color: #526176; font-size: 11px; }
.system-config-scope .authorization-menu-group-title svg { width: 14px; }
.system-config-scope .authorization-menu-group-title span { color: #8795a8; font-variant-numeric: tabular-nums; }
.system-config-scope .authorization-menu-item { display: grid; grid-template-columns: 28px minmax(0, 1fr); align-items: center; gap: 2px; width: 100%; margin: 2px 0; padding: 3px 8px 3px 5px; border: 1px solid transparent; border-radius: 8px; background: transparent; color: #526176; text-align: left; }
.system-config-scope .authorization-menu-item:hover { background: #eef3f9; }
.system-config-scope .authorization-menu-item.selected { border-color: #b9d0ff; background: #eaf2ff; box-shadow: inset 3px 0 #2f6fed; color: #174b9e; }
.system-config-scope .authorization-menu-grant { display: grid; place-items: center; width: 28px; height: 32px; margin: 0; padding: 0; border: 0; border-radius: 6px; background: transparent; color: inherit; cursor: pointer; }
.system-config-scope .authorization-menu-grant:hover { background: #dbe7fb; }
.system-config-scope .authorization-menu-grant:disabled { cursor: not-allowed; opacity: .5; }
.system-config-scope .authorization-menu-grant:focus-visible, .system-config-scope .authorization-menu-row:focus-visible { outline: 2px solid #2f6fed; outline-offset: -1px; }
.system-config-scope .authorization-menu-grant svg { width: 16px; color: #a0adbd; }
.system-config-scope .authorization-menu-grant svg.granted { color: #2f6fed; }
.system-config-scope .authorization-menu-row { display: block; min-width: 0; margin: 0; padding: 8px 4px; border: 0; border-radius: 6px; background: transparent; color: inherit; text-align: left; cursor: pointer; }
.system-config-scope .authorization-menu-row:hover { background: #e2ecfa; }
.system-config-scope .authorization-menu-row:disabled { cursor: not-allowed; opacity: .5; }
.system-config-scope .authorization-menu-row span { display: grid; gap: 2px; min-width: 0; }
.system-config-scope .authorization-menu-row strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.system-config-scope .authorization-menu-row small { overflow: hidden; color: #8a97a9; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.system-config-scope .authorization-operation-area { min-width: 0; background: #fff; }
.system-config-scope .operation-transfer-shell { min-width: 0; height: 100%; }
.system-config-scope .menu-access-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 58px; padding: 10px 16px; border-bottom: 1px solid var(--line); background: #fff; }
.system-config-scope .menu-access-row > div { display: flex; align-items: center; gap: 9px; }
.system-config-scope .menu-access-row svg { width: 17px; color: #2f6fed; }
.system-config-scope .menu-access-row span { display: grid; gap: 2px; }
.system-config-scope .menu-access-row small { color: var(--muted); font-size: 10px; }
.system-config-scope .menu-access-switch { display: flex; align-items: center; gap: 8px; color: #3d4d63; font-size: 11px; }
.system-config-scope .operation-transfer-grid { display: grid; grid-template-columns: minmax(0, 1fr) 58px minmax(0, 1fr); gap: 10px; min-width: 0; height: 460px; padding: 12px; }
.system-config-scope .operation-list-panel { display: flex; min-width: 0; flex-direction: column; overflow: hidden; border: 1px solid #dce3ec; border-radius: 10px; background: #f8fafc; }
.system-config-scope .operation-list-panel.assigned { border-color: #a9c8ff; background: #f2f7ff; box-shadow: inset 3px 0 #2f6fed; }
.system-config-scope .operation-list-panel.assigned .authorization-column-head b { background: #dceaff; color: #1d5bc5; }
.system-config-scope .operation-select-all { display: flex; align-items: center; gap: 8px; min-height: 34px; padding: 0 13px; border-top: 1px solid #edf1f6; border-bottom: 1px solid #e4e9f0; color: #67758a; font-size: 10px; }
.system-config-scope .operation-list-scroll { min-height: 0; flex: 1; padding: 8px; overflow: auto; }
.system-config-scope .operation-transfer-item { display: grid; grid-template-columns: 18px minmax(0, 1fr) auto 16px; align-items: start; gap: 8px; margin-bottom: 7px; padding: 10px; border: 1px solid #e0e6ee; border-radius: 8px; background: #fff; cursor: grab; }
.system-config-scope .operation-transfer-item:hover, .system-config-scope .operation-transfer-item.selected { border-color: #93b7f7; box-shadow: 0 4px 12px rgb(46 78 120 / 8%); }
.system-config-scope .operation-transfer-item:active { cursor: grabbing; }
.system-config-scope .operation-transfer-copy { display: grid; gap: 4px; min-width: 0; }
.system-config-scope .operation-transfer-copy > div { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.system-config-scope .operation-transfer-copy > div svg { width: 14px; color: #2f6fed; }
.system-config-scope .operation-transfer-copy strong { color: var(--ink); font-size: 11px; }
.system-config-scope .operation-transfer-copy code { overflow: hidden; color: #42628f; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.system-config-scope .operation-transfer-copy > span { display: flex; gap: 6px; overflow: hidden; color: #7c899b; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.system-config-scope .operation-transfer-copy > span b { color: #315f9f; }
.system-config-scope .operation-transfer-item em { padding: 2px 5px; border-radius: 4px; background: #fff2d9; color: #9b6410; font-size: 8px; font-style: normal; }
.system-config-scope .operation-drag-handle { width: 14px; color: #a9b4c3; }
.system-config-scope .operation-list-empty { display: grid; place-items: center; gap: 7px; min-height: 190px; padding: 20px; color: #8996a8; text-align: center; }
.system-config-scope .operation-list-empty strong { color: #5f6d80; font-size: 11px; }
.system-config-scope .operation-list-empty span { font-size: 10px; }
.system-config-scope .operation-transfer-controls { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; }
.system-config-scope .operation-transfer-controls .btn { width: 38px; height: 38px; }
.system-config-scope .permission-save-bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 62px; padding: 10px 16px; border-top: 1px solid var(--line); background: #f8fafc; box-shadow: 0 -5px 18px rgb(36 57 87 / 5%); }
.system-config-scope .permission-save-bar.dirty { border-top-color: #f0c677; background: #fffaf0; }
.system-config-scope .permission-save-bar > div:first-child { display: grid; gap: 3px; }
.system-config-scope .permission-save-bar strong { color: var(--ink); font-size: 11px; }
.system-config-scope .permission-save-bar span { color: var(--muted); font-size: 10px; }
.system-config-scope .permission-save-actions { display: flex; gap: 8px; }
.system-config-scope .permission-data-panel { min-height: clamp(470px, calc(100vh - 370px), 680px); padding: 18px; }
.system-config-scope .unsaved-authorization-message { display: flex; align-items: flex-start; gap: 12px; color: #526176; line-height: 1.7; }
.system-config-scope .unsaved-authorization-message svg { width: 21px; flex: 0 0 auto; color: #d18a16; }
.system-config-scope .unsaved-authorization-message p { margin: 0; }

@media (max-width: 1439px) {
  .system-config-scope .content { padding: 20px; }
  .system-config-scope .kpi-grid { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
  .system-config-scope .form-grid,
  .system-config-scope .detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .system-config-scope .operation-transfer-grid { grid-template-columns: minmax(0, 1fr) 46px minmax(0, 1fr); gap: 8px; padding: 10px; }
  .system-config-scope .data-operations-layout { grid-template-columns: minmax(0, 1fr) 270px; }
}

@media (max-width: 1199px) {
  .system-config-scope .toolbar .field-wrap,
  .system-config-scope .toolbar .search-field { flex: 1 1 260px; }
  .system-config-scope .org-layout { grid-template-columns: 1fr; }
  .system-config-scope .table-scroll,
  .system-config-scope .table-wrap { max-width: 100%; overflow-x: auto; }
  .system-config-scope .permission-role-toolbar { align-items: flex-start; flex-direction: column; }
  .system-config-scope .permission-role-summary { justify-content: flex-start; margin-left: 0; }
  .system-config-scope .authorization-workspace { grid-template-columns: 1fr; min-height: 0; }
  .system-config-scope .authorization-menu-panel { max-height: 330px; border-right: 0; border-bottom: 1px solid var(--line); }
  .system-config-scope .authorization-menu-scroll { max-height: 250px; }
  .system-config-scope .data-operations-layout { grid-template-columns: 1fr; }
  .system-config-scope .operations-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 959px) {
  .system-config-scope .operation-transfer-grid { grid-template-columns: 1fr; height: auto; }
  .system-config-scope .operation-transfer-controls { flex-direction: row; }
  .system-config-scope .operation-transfer-controls .btn svg { transform: rotate(90deg); }
  .system-config-scope .operation-list-panel { min-height: 310px; }
}

@media (max-width: 759px) {
  .system-config-scope .content { padding: 14px 12px 24px; }
  .system-config-scope .page-header { align-items: stretch; flex-direction: column; gap: 10px; }
  .system-config-scope .page-actions { width: 100%; justify-content: flex-start; padding-top: 0; }
  .system-config-scope .form-grid,
  .system-config-scope .detail-grid,
  .system-config-scope .kpi-grid { grid-template-columns: 1fr; }
  .system-config-scope .toolbar { align-items: stretch; }
  .system-config-scope .toolbar .field-wrap,
  .system-config-scope .toolbar .search-field,
  .system-config-scope .toolbar .select { width: 100%; flex-basis: 100%; }
  .system-config-scope .resource-editor { padding: 12px; }
  .system-config-scope .resource-editor-card { max-height: calc(100dvh - 24px); padding: 18px; }
  .system-config-scope .permission-role-control { grid-template-columns: 1fr; width: 100%; }
  .system-config-scope .permission-role-control select { width: 100%; }
  .system-config-scope .permission-role-summary { width: 100%; }
  .system-config-scope .menu-access-row,
  .system-config-scope .permission-save-bar { align-items: stretch; flex-direction: column; }
  .system-config-scope .menu-access-switch { justify-content: flex-start; }
  .system-config-scope .permission-save-actions { width: 100%; justify-content: stretch; }
  .system-config-scope .permission-save-actions .btn { flex: 1; }
  .system-config-scope .operation-list-panel { min-height: 280px; }
  .system-config-scope .data-operations-intro { align-items: flex-start; flex-direction: column; }
  .system-config-scope .data-operations-intro > div:last-child { flex-wrap: wrap; white-space: normal; }
  .system-config-scope .operation-card-grid, .system-config-scope .operations-overview, .system-config-scope .role-binding-review-list { grid-template-columns: 1fr; }
  .system-config-scope .operation-card-actions { align-items: stretch; flex-direction: column; }
  .system-config-scope .operation-card-actions .btn { width: 100%; }
  .system-config-scope .role-binding-step > strong { display: none; }
  .system-config-scope .role-binding-summary { grid-template-columns: 1fr 1fr; }
}

/* 系统管理员禁止操作自己角色的权限提示 */
.system-config-scope .permission-own-admin-lock {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 0 18px 12px;
  padding: 10px 12px;
  border: 1px solid #f0c36d;
  border-radius: 8px;
  background: #fff8e6;
  color: #8a5b0a;
  font-size: 12px;
  line-height: 1.6;
}
.system-config-scope .permission-own-admin-lock svg { width: 16px; height: 16px; flex: 0 0 auto; margin-top: 2px; color: #d18a16; }

.workbench-sidebar {
  grid-row: 1 / -1;
  min-width: 0;
  min-height: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background:
    radial-gradient(circle at 10% 0, rgb(54 112 226 / 18%), transparent 24%),
    #101b32;
  color: #fff;
}

.workbench-brand {
  width: calc(100% - 32px);
  min-height: 84px;
  display: flex;
  align-items: center;
  gap: 13px;
  flex: 0 0 auto;
  margin: 0 16px;
  border: 0;
  border-bottom: 1px solid rgb(255 255 255 / 11%);
  background: transparent;
  padding: 0 5px;
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.workbench-brand-mark {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 12px;
  background: linear-gradient(145deg, #3978f6, #2165df);
  font-family: Georgia, serif;
  font-size: 23px;
  font-weight: 700;
  box-shadow: 0 10px 24px rgb(34 102 226 / 32%);
}

.workbench-brand-copy,
.workbench-brand-copy strong,
.workbench-brand-copy small {
  display: block;
}

.workbench-brand-copy {
  min-width: 0;
}

.workbench-brand-copy strong {
  overflow: hidden;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.01em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.workbench-brand-copy small {
  margin-top: 5px;
  color: #7385a4;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 0.16em;
}

.workbench-brand:focus-visible {
  outline: 2px solid #75a6ff;
  outline-offset: -2px;
}

.workbench-sidebar-section {
  flex: 0 0 auto;
  padding: 23px 24px 8px;
  color: #6688bf;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
}

.workbench-navigation.ant-menu {
  min-height: 0;
  flex: 1;
  overflow-x: hidden;
  overflow-y: auto;
  border-inline-end: 0;
  background: transparent;
  padding: 2px 12px 16px;
  scrollbar-color: rgb(126 146 177 / 58%) transparent;
  scrollbar-width: thin;
}

.workbench-navigation.ant-menu::-webkit-scrollbar {
  width: 6px;
  background: transparent;
}

.workbench-navigation.ant-menu::-webkit-scrollbar-track,
.workbench-navigation.ant-menu::-webkit-scrollbar-corner {
  background: transparent;
}

.workbench-navigation.ant-menu::-webkit-scrollbar-thumb {
  border: 1px solid transparent;
  border-radius: 999px;
  background: rgb(126 146 177 / 58%);
  background-clip: padding-box;
}

.workbench-navigation.ant-menu::-webkit-scrollbar-thumb:hover {
  background: rgb(151 173 207 / 78%);
  background-clip: padding-box;
}

.workbench-navigation.ant-menu::-webkit-scrollbar-button {
  display: none;
  width: 0;
  height: 0;
}

.workbench-navigation.ant-menu-dark .ant-menu-submenu-title {
  height: 48px;
  margin: 3px 0;
  border-radius: 9px;
  padding-inline: 13px !important;
  color: #aebdd4;
  font-size: 13px;
  font-weight: 650;
}

.workbench-navigation.ant-menu-dark .ant-menu-submenu-title:hover,
.workbench-navigation.ant-menu-dark .ant-menu-submenu-open > .ant-menu-submenu-title {
  background: rgb(255 255 255 / 7%) !important;
  color: #fff !important;
}

.workbench-navigation .ant-menu-submenu-title .anticon {
  color: #8fa6c8;
  font-size: 17px;
}

.workbench-navigation .ant-menu-submenu-open > .ant-menu-submenu-title .anticon {
  color: #73a4ff;
}

.workbench-navigation.ant-menu-dark .ant-menu-sub {
  background: transparent;
}

.workbench-navigation.ant-menu-dark .ant-menu-item {
  width: auto;
  height: 42px;
  margin: 2px 0;
  border-radius: 9px;
  padding-left: 44px !important;
  color: #92a4c0;
  font-size: 13px;
}

.workbench-navigation.ant-menu-dark .ant-menu-item:hover {
  background: rgb(255 255 255 / 7%) !important;
  color: #fff !important;
}

.workbench-navigation.ant-menu-dark .ant-menu-item-selected {
  position: relative;
  background: #f7f9fd !important;
  color: #17243d !important;
  font-weight: 700;
}

.workbench-navigation.ant-menu-dark .ant-menu-item-selected::before {
  position: absolute;
  top: 10px;
  bottom: 10px;
  left: 9px;
  width: 3px;
  border-radius: 999px;
  background: #3475f4;
  content: '';
}

.workbench-navigation .ant-menu-submenu-arrow {
  color: #677d9e;
}

.workbench-sidebar-footer {
  flex: 0 0 auto;
  margin: 0 20px;
  border-top: 1px solid rgb(255 255 255 / 9%);
  padding: 15px 4px 17px;
  color: #536987;
  font-size: 9px;
  letter-spacing: 0.14em;
}

@media (max-width: 1280px) {
  .workbench-brand {
    width: calc(100% - 24px);
    margin-inline: 12px;
  }

  .workbench-brand-copy strong {
    font-size: 14px;
  }

  .workbench-navigation.ant-menu {
    padding-inline: 9px;
  }
}
/* KDL AI 运营中台公共界面契约。业务中心只覆盖 --accent 与 --accent-soft。 */
.workbench-content :is(.biz-center, .dashboard-overview, .system-page, .system-governance-page) {
  --ink: var(--platform-ink);
  --muted: var(--platform-muted);
  --line: var(--platform-line);
  min-width: 0;
  color: var(--platform-text);
  font-family: Aptos, 'Microsoft YaHei UI', 'Microsoft YaHei', sans-serif;
}

.workbench-content :is(.biz-center, .dashboard-overview, .system-page, .system-governance-page) {
  width: 100%;
  max-width: 100%;
  overflow-wrap: anywhere;
}

.workbench-content :is(img, video, canvas) { max-width: 100%; }

.workbench-content :is(
  .business-table,
  .ak-table,
  .at-table,
  .sc-table,
  .sg-table,
  .dg-table,
  .system-table,
  .ant-table-wrapper
) {
  max-width: 100%;
  overflow-x: auto;
  scrollbar-gutter: stable;
}

.workbench-content .biz-center { --accent: var(--platform-primary); --accent-soft: var(--platform-primary-soft); }
.workbench-content .biz-center[data-center='research'] { --accent: var(--platform-center-research); --accent-soft: var(--platform-center-research-soft); }
.workbench-content .biz-center[data-center='visual'] { --accent: var(--platform-center-visual); --accent-soft: var(--platform-center-visual-soft); }
.workbench-content .biz-center[data-center='content'] { --accent: var(--platform-center-content); --accent-soft: var(--platform-center-content-soft); }
.workbench-content .biz-center[data-center='commerce'] { --accent: var(--platform-center-commerce); --accent-soft: var(--platform-center-commerce-soft); }
.workbench-content .biz-center[data-center='supply'] { --accent: var(--platform-center-supply); --accent-soft: var(--platform-center-supply-soft); }
.workbench-content .biz-center[data-center='automation'] { --accent: var(--platform-center-automation); --accent-soft: var(--platform-center-automation-soft); }
.workbench-content .biz-center[data-center='knowledge'],
.workbench-content .biz-center[data-center='department'] { --accent: var(--platform-center-business); --accent-soft: var(--platform-center-business-soft); }
.workbench-content .biz-center[data-center='data'] { --accent: var(--platform-primary); --accent-soft: var(--platform-primary-soft); }
.workbench-content .dashboard-overview { --accent: var(--platform-primary); --accent-soft: var(--platform-primary-soft); }
.workbench-content .system-page { --system-blue: var(--platform-primary); }
.workbench-content .system-governance-page {
  --sg-blue: var(--platform-center-business);
  --sg-blue-soft: var(--platform-center-business-soft);
}

.workbench-content :is(.list-page-header, .center-header, .sg-page-header, .dg-page-header) h1 {
  color: var(--platform-ink);
  letter-spacing: -0.02em;
}

.workbench-content :is(.list-page-header, .center-header, .sg-page-header, .dg-page-header) p {
  color: var(--platform-subtle);
  line-height: 1.6;
}

.workbench-content :is(.workspace-section, .list-table-panel, .ak-panel, .sc-panel, .sg-panel, .dg-panel) {
  border-color: var(--platform-line);
  border-radius: var(--platform-radius-card);
  background: var(--platform-surface);
  box-shadow: none;
}

.workbench-content :is(.workspace-section, .ak-panel, .sc-panel, .sg-panel, .dg-panel, .sg-section) > header {
  border-bottom-color: var(--platform-line-soft);
}

.workbench-content :is(.workspace-section, .ak-panel, .sc-panel, .sg-panel, .dg-panel, .sg-section) > header h2,
.workbench-content :is(.workspace-section, .ak-panel, .sc-panel, .sg-panel, .dg-panel, .sg-section) > header h3 {
  color: var(--platform-ink);
  font-size: 15px;
  line-height: 1.4;
}

.workbench-content :is(.filter-bar, .list-filter-row, .ak-filter-row, .sg-filter, .sc-analytics-filters, .dg-report-toolbar) {
  border-color: var(--platform-line);
  background: #fafbfd;
}

/* 平台筛选控件统一为同一高度，避免原生控件、Ant Design 和业务搜索容器上下错位。 */
.workbench-shell .workbench-content :is(
  .filter-bar,
  .list-filter-row,
  .ak-filter-row,
  .at-filter-bar,
  .sg-filter,
  .sc-analytics-filters,
  .dg-report-toolbar,
  .system-toolbar,
  .db-filter-row
) :is(
  input:not([type='checkbox']):not([type='radio']),
  select,
  button
),
.workbench-shell .workbench-content :is(
  .ak-search,
  .at-search,
  .at-rail-search,
  .ant-input-affix-wrapper,
  .ant-input-search .ant-input,
  .ant-input-search-button,
  .ant-picker
) {
  box-sizing: border-box;
  height: 38px;
  min-height: 38px;
}

.workbench-shell .workbench-content :is(
  .filter-bar,
  .list-filter-row,
  .ak-filter-row,
  .at-filter-bar,
  .sg-filter,
  .sc-analytics-filters,
  .dg-report-toolbar,
  .system-toolbar,
  .db-filter-row
) :is(input:not([type='checkbox']):not([type='radio']), select) {
  padding-block: 0;
}

.workbench-shell .workbench-content :is(
  .filter-bar,
  .list-filter-row,
  .ak-filter-row,
  .at-filter-bar,
  .sg-filter,
  .sc-analytics-filters,
  .dg-report-toolbar,
  .system-toolbar,
  .db-filter-row
) button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.workbench-shell .workbench-content .ant-select-single {
  height: 38px;
}

.workbench-shell .workbench-content .ant-select-single .ant-select-selector {
  height: 38px !important;
  padding-block: 0 !important;
}

.workbench-shell .workbench-content .ant-select-single :is(.ant-select-selection-item, .ant-select-selection-placeholder) {
  line-height: 36px !important;
}

.workbench-shell .workbench-content .ant-input-affix-wrapper > input.ant-input,
.workbench-shell .workbench-content :is(.ak-search, .at-search, .at-rail-search) > input {
  height: auto;
  min-height: 0;
  padding-block: 0;
}

.workbench-content :is(input, select, textarea, .ant-input, .ant-select-selector, .ant-picker) {
  border-color: #ccd5df;
  border-radius: var(--platform-radius-control);
  color: var(--platform-text);
  font: inherit;
}

.workbench-content :is(input, select, textarea):focus-visible,
.workbench-content :is(.button, button, [role='button']):focus-visible {
  outline: 3px solid color-mix(in srgb, var(--accent, var(--platform-primary)) 24%, transparent);
  outline-offset: 2px;
}

.workbench-content .button {
  min-height: 38px;
  border-radius: var(--platform-radius-control);
  font-weight: 650;
  box-shadow: none;
}

.workbench-content .button.primary {
  border-color: var(--accent, var(--platform-primary));
  background: var(--accent, var(--platform-primary));
  color: #fff;
}

.workbench-content .button.secondary {
  border-color: var(--platform-line);
  background: var(--platform-surface);
  color: var(--platform-text);
}

.workbench-content .button:disabled {
  cursor: not-allowed;
  opacity: 0.56;
}

.workbench-content :is(.task-shortcut, .list-metric-strip button, .ak-metric-grid article, .sg-audit-metrics article, .dg-metric) {
  border-color: var(--platform-line);
  background: var(--platform-surface);
}

.workbench-content .list-metric-strip button.active,
.workbench-content .task-shortcut.is-active {
  box-shadow: inset 0 -3px var(--accent, var(--platform-primary));
  background: var(--accent-soft, var(--platform-primary-soft));
  color: var(--accent, var(--platform-primary));
}

.workbench-content :is(.task-shortcut, .list-metric-strip button, .ak-metric-grid article, .sg-audit-metrics article, .dg-metric) strong {
  color: var(--platform-ink);
  font-family: Georgia, 'Noto Serif SC', 'Songti SC', serif;
  font-variant-numeric: tabular-nums;
}

.workbench-content :is(.business-table__head, .ak-table__head, .sg-table__head, .dg-table__head) {
  min-height: 40px;
  border-bottom-color: var(--platform-line-soft);
  background: #fafbfd;
  color: var(--platform-muted);
  font-size: 10px;
  font-weight: 700;
}

.workbench-content :is(.business-table__body, .ak-table__body, .sg-table__body, .dg-table__body) > article {
  min-height: 52px;
  border-bottom-color: var(--platform-line-soft);
  color: #4e5b70;
}

.workbench-content :is(.business-table__body, .ak-table__body, .sg-table__body, .dg-table__body) > article:hover {
  background: #f6f9fd;
}

.workbench-content :is(.detail-drawer, .ak-detail-drawer, .sc-detail-drawer, .dw-drawer),
.ant-drawer .ant-drawer-content {
  border-left: 1px solid var(--platform-line);
  background: var(--platform-surface);
  box-shadow: var(--platform-shadow-overlay);
}

.workbench-content :is(.ak-interface-notice, .at-interface-notice, .dw-interface-notice, .sc-interface-notice, .sg-interface-notice) {
  border-color: #ead9b8;
  border-radius: var(--platform-radius-card);
  background: var(--platform-warning-soft);
  color: #79571d;
}

.workbench-content :is(.sg-boundary, .at-boundary, .dw-scope-banner) {
  border-color: #cddceb;
  border-radius: var(--platform-radius-card);
  background: #f3f7fb;
  color: #44617d;
}

.platform-page-state {
  min-height: 260px;
  display: grid;
  place-content: center;
  justify-items: center;
  padding: 32px;
  color: var(--platform-text);
  text-align: center;
}

.platform-page-state.is-compact { min-height: 160px; padding: 24px; }

.platform-page-state > span {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--platform-neutral-soft);
  color: var(--platform-neutral);
  font-size: 14px;
  font-weight: 750;
}

.platform-page-state > strong { margin-top: 14px; color: var(--platform-ink); font-size: 15px; }
.platform-page-state > p { max-width: 440px; margin: 7px 0 0; color: var(--platform-muted); font-size: 12px; line-height: 1.65; }
.platform-page-state__action { margin-top: 16px; }
.platform-page-state.is-loading > span { color: var(--platform-info); animation: platform-state-pulse 1s ease-in-out infinite alternate; }
.platform-page-state.is-error > span { background: var(--platform-danger-soft); color: var(--platform-danger); }
.platform-page-state.is-degraded > span { background: var(--platform-warning-soft); color: var(--platform-warning); }
.platform-page-state.is-forbidden > span { background: var(--platform-neutral-soft); color: var(--platform-ink); }

.platform-state-banner {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  align-items: center;
  gap: 11px;
  border: 1px solid #cddceb;
  border-radius: var(--platform-radius-card);
  background: var(--platform-info-soft);
  padding: 12px 14px;
  color: #315f8f;
}

.platform-state-banner > span {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgb(255 255 255 / 72%);
  font-weight: 800;
}

.platform-state-banner strong,
.platform-state-banner p { display: block; margin: 0; }
.platform-state-banner strong { font-size: 12px; }
.platform-state-banner p { margin-top: 3px; font-size: 11px; line-height: 1.55; opacity: 0.82; }
.platform-state-banner.is-degraded { border-color: #ead9b8; background: var(--platform-warning-soft); color: #79571d; }
.platform-state-banner.is-error { border-color: #efcbd1; background: var(--platform-danger-soft); color: #8f2f3f; }
.platform-state-banner.is-forbidden { border-color: #d9dfe7; background: var(--platform-neutral-soft); color: #4f5c70; }

@keyframes platform-state-pulse {
  from { opacity: 0.45; transform: scale(0.92); }
  to { opacity: 1; transform: scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  .platform-page-state.is-loading > span { animation: none; }
}

/* 平台控件语义：同类操作不随业务中心强调色变化。 */
.workbench-shell .workbench-content :is(
  .button.primary,
  .list-query,
  .ant-btn-primary
) {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border: 1px solid var(--platform-primary);
  border-radius: var(--platform-radius-control);
  background: var(--platform-primary);
  padding: 0 15px;
  color: #fff;
  font: inherit;
  font-size: 12px;
  font-weight: 650;
  line-height: 1;
  box-shadow: none;
  cursor: pointer;
}

.workbench-shell .workbench-content :is(
  .button.primary,
  .list-query,
  .ant-btn-primary
):not(:disabled):hover {
  border-color: #1b57b7;
  background: #1b57b7;
  color: #fff;
}

.workbench-shell .workbench-content :is(
  .button.primary,
  .list-query,
  .ant-btn-primary
):not(:disabled):active {
  border-color: #164a9c;
  background: #164a9c;
}

.workbench-shell .workbench-content :is(
  .button.secondary,
  .ant-btn-default,
  .content-reset
) {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border: 1px solid var(--platform-line);
  border-radius: var(--platform-radius-control);
  background: var(--platform-surface);
  padding: 0 14px;
  color: var(--platform-text);
  font: inherit;
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  box-shadow: none;
  cursor: pointer;
}

.workbench-shell .workbench-content :is(
  .button.secondary,
  .ant-btn-default,
  .content-reset
):not(:disabled):hover {
  border-color: #aebbd0;
  background: #f7f9fc;
  color: var(--platform-primary);
}

.workbench-shell .workbench-content :is(
  .button.danger,
  .ant-btn-dangerous,
  .ant-btn-primary.ant-btn-dangerous
) {
  border-color: var(--platform-danger);
  background: var(--platform-danger);
  color: #fff;
}

.workbench-shell .workbench-content :is(
  .button.primary,
  .button.secondary,
  .button.danger,
  .list-query,
  .ant-btn
):disabled {
  border-color: #d9dfe7;
  background: #eef1f5;
  color: #9aa4b2;
  box-shadow: none;
  cursor: not-allowed;
  opacity: 1;
}

.workbench-shell .workbench-content .text-action {
  border: 0;
  background: transparent;
  padding: 4px 6px;
  color: var(--platform-primary);
  font: inherit;
  font-size: 11px;
  font-weight: 650;
  cursor: pointer;
}

.workbench-shell .workbench-content .text-action:hover {
  color: #164a9c;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.workbench-shell .workbench-content select {
  min-height: 38px;
  appearance: none;
  border: 1px solid #ccd5df;
  border-radius: var(--platform-radius-control);
  background-color: var(--platform-surface);
  background-image:
    linear-gradient(45deg, transparent 50%, #718095 50%),
    linear-gradient(135deg, #718095 50%, transparent 50%);
  background-position:
    calc(100% - 15px) 16px,
    calc(100% - 10px) 16px;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
  padding: 0 34px 0 11px;
  color: var(--platform-text);
  font: inherit;
  font-size: 12px;
  line-height: 36px;
  box-shadow: none;
  cursor: pointer;
}

.workbench-shell .workbench-content select:hover {
  border-color: #9eafc6;
}

.workbench-shell .workbench-content select:focus {
  border-color: var(--platform-primary);
  outline: 3px solid rgb(33 101 214 / 14%);
  outline-offset: 1px;
}

.workbench-shell .workbench-content select:disabled {
  border-color: #d9dfe7;
  background-color: #f1f3f6;
  color: #9aa4b2;
  cursor: not-allowed;
}

.workbench-shell .workbench-content .ant-select-single {
  min-height: 38px;
}

.workbench-shell .workbench-content .ant-select-single .ant-select-selector {
  height: 38px;
  border-color: #ccd5df;
  border-radius: var(--platform-radius-control);
  background: var(--platform-surface);
  padding: 0 34px 0 11px;
  box-shadow: none;
}

.workbench-shell .workbench-content .ant-select-single .ant-select-selection-item,
.workbench-shell .workbench-content .ant-select-single .ant-select-selection-placeholder {
  line-height: 36px;
  font-size: 12px;
}

.workbench-shell .workbench-content .ant-select:hover .ant-select-selector {
  border-color: #9eafc6;
}

.workbench-shell .workbench-content .ant-select-focused .ant-select-selector {
  border-color: var(--platform-primary);
  box-shadow: 0 0 0 3px rgb(33 101 214 / 14%);
}

.workbench-shell .workbench-content .ant-select-arrow {
  color: #718095;
}

.ant-select-dropdown,
.ant-dropdown .ant-dropdown-menu {
  border: 1px solid var(--platform-line);
  border-radius: var(--platform-radius-card);
  background: var(--platform-surface);
  padding: 5px;
  box-shadow: var(--platform-shadow-overlay);
}

@media (max-width: 1280px) {
  .workbench-content :is(
    .list-page-header,
    .center-header,
    .sg-page-header,
    .dg-page-header,
    .workspace-section > header,
    .ak-panel > header,
    .at-panel > header,
    .sc-panel > header,
    .sg-panel > header,
    .dg-panel > header
  ) { flex-wrap: wrap; }
}

@media (max-width: 1100px) {
  .workbench-content :is(
    .filter-bar,
    .list-filter-row,
    .ak-filter-row,
    .at-filter-bar,
    .sg-filter,
    .sc-analytics-filters,
    .dg-report-toolbar,
    .system-toolbar,
    .db-filter-row,
    .dw-filter-bar
  ) { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }

  .workbench-content :is(
    .business-table__head,
    .business-table__body > article,
    .ak-table__head,
    .ak-table__body > article,
    .at-table__head,
    .at-table__body > article,
    .sc-table__head,
    .sc-table__body > article,
    .sg-table__head,
    .sg-table__body > article,
    .dg-table__head,
    .dg-table__body > article
  ) { min-width: 760px; }
}

@media (max-width: 760px) {
  .workbench-content :is(
    .filter-bar,
    .list-filter-row,
    .ak-filter-row,
    .at-filter-bar,
    .sg-filter,
    .sc-analytics-filters,
    .dg-report-toolbar,
    .system-toolbar,
    .db-filter-row,
    .dw-filter-bar
  ) { grid-template-columns: minmax(0, 1fr) !important; }

  .platform-state-banner { grid-template-columns: 34px minmax(0, 1fr); }
  .platform-state-banner > :last-child { grid-column: 2; justify-self: start; }
  .ant-drawer .ant-drawer-content-wrapper { width: calc(100vw - 12px) !important; max-width: calc(100vw - 12px); }
}

.ant-select-dropdown .ant-select-item,
.ant-dropdown .ant-dropdown-menu-item {
  min-height: 36px;
  border-radius: 5px;
  color: var(--platform-text);
  font-size: 12px;
}

.ant-select-dropdown .ant-select-item-option-selected:not(.ant-select-item-option-disabled),
.ant-dropdown .ant-dropdown-menu-item-selected {
  background: var(--platform-primary-soft);
  color: var(--platform-primary);
  font-weight: 650;
}
.biz-center {
  --accent: #2165d6;
  --accent-soft: #eaf1ff;
  --ink: #172033;
  --muted: #67748a;
  --line: #dfe5ec;
  --paper: #fff;
  min-height: calc(100vh - 104px);
  color: var(--ink);
  font-family: Aptos, 'Microsoft YaHei', sans-serif;
}

.biz-center[data-center='research'] { --accent: #a24d22; --accent-soft: #fff0e8; }
.biz-center[data-center='visual'] { --accent: #a13f50; --accent-soft: #fcecef; }
.biz-center[data-center='commerce'] { --accent: #16705a; --accent-soft: #e8f5f0; }

.center-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 30px;
  border-bottom: 1px solid var(--line);
  padding: 5px 2px 22px;
}

.center-header__identity { display: flex; align-items: flex-start; gap: 16px; }
.center-header__code { margin-top: 5px; border-radius: 5px; background: var(--accent-soft); color: var(--accent); padding: 6px 9px; font-size: 12px; font-weight: 800; letter-spacing: .06em; }
.center-header h1 { margin: 0; font-family: Georgia, 'Songti SC', serif; font-size: 30px; font-weight: 500; letter-spacing: -.02em; }
.center-header p { max-width: 780px; margin: 8px 0 0; color: var(--muted); font-size: 14px; line-height: 1.65; }
.center-header__side { display: flex; flex-direction: column; align-items: flex-end; gap: 12px; }
.center-header__actions { display: flex; gap: 8px; }
.center-header__update { display: inline-flex; align-items: center; gap: 7px; color: #7d899a; font-size: 12px; }
.center-header__update i { width: 7px; height: 7px; border-radius: 50%; background: #39a57b; box-shadow: 0 0 0 4px #e7f6f0; }

.button { min-height: 38px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; border: 1px solid transparent; border-radius: 7px; padding: 0 15px; font: inherit; font-size: 13px; font-weight: 650; cursor: pointer; transition: transform 160ms ease, box-shadow 160ms ease, background 160ms ease; }
.button:hover:not(:disabled) { transform: translateY(-1px); }
.button.primary { background: var(--accent); color: #fff; box-shadow: 0 8px 18px color-mix(in srgb, var(--accent) 18%, transparent); }
.button.secondary { border-color: #ccd4df; background: #fff; color: #354257; }
.button:disabled { cursor: not-allowed; opacity: .45; }
.button.wide { width: 100%; }
.button.filter-confirm { align-self: flex-end; background: #1d2939; color: #fff; }

.data-quality-banner { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 16px 0; border: 1px solid #d8e6dd; border-radius: 8px; background: #f7fbf8; padding: 13px 16px; }
.data-quality-banner > div { display: grid; grid-template-columns: auto auto 1fr; align-items: center; gap: 9px; }
.data-quality-banner strong { font-size: 13px; }
.data-quality-banner p { margin: 0; color: #66766d; font-size: 12px; }
.data-quality-banner button { border: 0; background: transparent; color: #8b5513; font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.quality-pulse { width: 8px; height: 8px; border-radius: 50%; background: #28a26f; box-shadow: 0 0 0 5px #ddf3e9; }

.task-shortcuts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 16px 0; }
.task-shortcut { position: relative; min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 9px; background: #fff; padding: 16px 18px; text-align: left; cursor: pointer; transition: border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease; }
.task-shortcut::before { position: absolute; inset: 0 auto 0 0; width: 3px; background: #aab4c2; content: ''; }
.task-shortcut:hover { transform: translateY(-2px); box-shadow: 0 10px 26px rgb(34 46 64 / 8%); }
.task-shortcut.is-active { border-color: color-mix(in srgb, var(--accent) 38%, var(--line)); box-shadow: 0 9px 24px color-mix(in srgb, var(--accent) 10%, transparent); }
.task-shortcut.is-positive::before { background: #28986d; }
.task-shortcut.is-warning::before { background: #db8b2b; }
.task-shortcut.is-critical::before { background: #d14b5b; }
.task-shortcut.is-info::before { background: #397bd8; }
.task-shortcut > span { display: block; color: var(--muted); font-size: 12px; }
.task-shortcut > strong { display: block; margin: 7px 0 6px; font-family: Georgia, serif; font-size: 27px; font-weight: 500; }
.task-shortcut > small { display: block; overflow: hidden; color: #8290a3; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }

.view-tabs { display: flex; gap: 3px; margin: 16px 0; border-bottom: 1px solid var(--line); }
.view-tabs button { min-height: 43px; display: inline-flex; align-items: center; gap: 7px; border: 0; border-bottom: 2px solid transparent; background: transparent; color: #68758a; padding: 0 15px; font: inherit; font-size: 13px; cursor: pointer; }
.view-tabs button.is-active { border-color: var(--accent); color: var(--accent); font-weight: 750; }
.view-tabs button span { border-radius: 999px; background: #eef1f5; padding: 2px 7px; color: #68758a; font-size: 11px; }

.workspace-section { min-width: 0; border: 1px solid var(--line); border-radius: 9px; background: var(--paper); padding: 20px; }
.section-heading { min-height: 43px; display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 17px; }
.section-heading h2 { margin: 0; font-size: 16px; font-weight: 750; }
.section-heading p { margin: 6px 0 0; color: var(--muted); font-size: 12px; }

.filter-bar { display: grid; grid-template-columns: repeat(3, minmax(150px, 1fr)) auto; align-items: end; gap: 10px; margin-bottom: 16px; border-radius: 8px; background: #f6f8fa; padding: 13px; }
.filter-bar label, .form-grid label, .copy-block label, .visual-setup-grid label, .assistant-tools label { display: grid; gap: 6px; color: #637086; font-size: 12px; font-weight: 650; }
.filter-bar input, .filter-bar select, .form-grid input, .form-grid select, .inspection-table select, .inspection-table input, .visual-setup-grid input, .visual-setup-grid textarea, .copy-block input, .copy-block textarea, .assistant-tools textarea { min-height: 38px; width: 100%; border: 1px solid #ccd5df; border-radius: 6px; outline: 0; background: #fff; color: #263247; padding: 8px 10px; font: inherit; font-size: 13px; }
.filter-bar input:focus, .filter-bar select:focus, .form-grid input:focus, .visual-setup-grid textarea:focus, .copy-block textarea:focus { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.visual-setup-grid textarea, .copy-block textarea, .assistant-tools textarea { min-height: 82px; resize: vertical; }

.business-table { min-width: 0; overflow-x: auto; }
.business-table__head, .business-table > article { min-width: 880px; display: grid; align-items: center; gap: 14px; }
.business-table__head { min-height: 40px; border-bottom: 1px solid var(--line); color: #7d899c; padding: 0 10px; font-size: 12px; font-weight: 650; }
.business-table > article { min-height: 62px; border-bottom: 1px solid #edf0f4; padding: 10px; color: #4e5b70; font-size: 13px; }
.business-table > article:last-child { border-bottom: 0; }
.business-table > article:hover { background: #fafbfc; }
.business-table strong { color: #263247; font-size: 13px; }
.business-table small { display: block; margin-top: 4px; color: #8a95a6; font-size: 12px; }
.table-primary { display: flex; align-items: flex-start; gap: 9px; }
.product-cell { display: flex; align-items: center; gap: 10px; }
.product-cell img { width: 44px; height: 44px; flex: 0 0 auto; border-radius: 6px; background: #f1f3f5; object-fit: cover; }
.text-action { border: 0; background: transparent; color: var(--accent); font: inherit; font-size: 12px; font-weight: 750; white-space: nowrap; cursor: pointer; }
.arrow-forward { transform: rotate(180deg); }
.due-time { color: #7a5660; white-space: nowrap; }

.status-tag { display: inline-flex; width: fit-content; align-items: center; border-radius: 999px; background: #eef1f5; color: #657185; padding: 5px 9px; font-size: 11px; font-weight: 750; white-space: nowrap; }
.status-tag.is-positive { background: #e4f4ec; color: #1d7655; }
.status-tag.is-warning { background: #fff1da; color: #9a6415; }
.status-tag.is-critical { background: #fde9ec; color: #b83949; }
.status-tag.is-info { background: #e9f1fd; color: #2d69bd; }
.positive-text { color: #21815d; }
.critical-text { color: #c13e50 !important; font-weight: 700; }

.compact-tabs, .subview-switch, .sku-switch, .choice-chips { display: inline-flex; gap: 4px; border-radius: 7px; background: #f1f3f6; padding: 3px; }
.compact-tabs button, .subview-switch button, .sku-switch button, .choice-chips button { min-height: 31px; border: 0; border-radius: 5px; background: transparent; color: #647187; padding: 0 11px; font: inherit; font-size: 12px; cursor: pointer; }
.compact-tabs button.is-active, .subview-switch button.is-active, .sku-switch button.is-active, .choice-chips button.is-active { background: #fff; color: var(--accent); font-weight: 750; box-shadow: 0 3px 10px rgb(31 45 61 / 8%); }

.dashboard-overview { min-height: calc(100vh - 104px); color: #14213a; font-family: Aptos, 'Microsoft YaHei', sans-serif; }
.db-page-header { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 13px; }
.db-page-header h1 { margin: 0; font-size: 25px; font-weight: 780; letter-spacing: -.02em; }
.db-page-header p { margin: 6px 0 0; color: #687892; font-size: 12px; }
.db-page-header > div:last-child { display: flex; gap: 8px; }
.dashboard-overview .button.primary { --accent: #1769e8; }
.db-filter-row { display: grid; grid-template-columns: repeat(5, minmax(130px, 1fr)) auto auto; gap: 8px; margin-bottom: 12px; }
.db-filter-row select, .db-alert-panel select { min-height: 38px; border: 1px solid #cad4e1; border-radius: 6px; outline: 0; background: #fff; color: #1d2b42; padding: 0 12px; font: inherit; font-size: 13px; }
.db-query-button, .db-reset-button, .db-alert-panel header button { min-height: 38px; border: 1px solid #c8d3e0; border-radius: 6px; background: #fff; color: #16243a; padding: 0 13px; font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; }
.db-query-button { display: inline-flex; align-items: center; gap: 6px; }
.db-quality-strip { min-height: 43px; display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 12px; border: 1px solid #f0cf8d; background: #fff9ed; color: #825414; padding: 0 14px; font-size: 12px; }
.db-quality-strip strong { margin-right: 8px; }
.db-quality-strip button { border: 0; background: transparent; color: #1264db; font: inherit; font-size: 12px; font-weight: 750; cursor: pointer; }
.db-metric-grid { display: grid; grid-template-columns: repeat(5, 1fr); margin-bottom: 14px; border-top: 1px solid #d8e0ea; border-left: 1px solid #d8e0ea; background: #fff; }
.db-metric-cell { min-height: 106px; border: 0; border-right: 1px solid #d8e0ea; border-bottom: 1px solid #d8e0ea; background: #fff; padding: 14px; color: #18263d; text-align: left; cursor: pointer; }
.db-metric-cell:hover { background: #f9fbfe; }
.db-metric-cell header, .db-metric-cell footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.db-metric-cell header > span { color: #64748b; font-size: 12px; }
.db-metric-cell header > div { display: flex; gap: 4px; }
.db-metric-cell .status-tag { padding: 4px 7px; font-size: 10px; }
.db-metric-cell > strong { display: block; margin: 11px 0 9px; font-size: 25px; line-height: 1; }
.db-metric-cell.is-neutral > strong { color: #74839a; }
.db-metric-cell footer span, .db-metric-cell footer small { overflow: hidden; color: #6c7b92; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.db-metric-cell footer span { color: #087f66; }
.db-metric-cell.is-critical footer span { color: #c8384b; }
.db-summary-panel, .db-alert-panel { margin-bottom: 14px; border: 1px solid #d8e0ea; border-radius: 7px; background: #fff; }
.db-summary-panel > header, .db-alert-panel > header { min-height: 50px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #d8e0ea; padding: 0 16px; }
.db-summary-panel h2, .db-alert-panel h2 { margin: 0; font-size: 15px; }
.db-summary-panel header button { border: 0; background: transparent; color: #1264db; font: inherit; font-size: 12px; font-weight: 750; cursor: pointer; }
.db-summary-panel > div { display: grid; grid-template-columns: repeat(3, 1fr); margin: 16px; border-top: 1px solid #dce3ec; border-left: 1px solid #dce3ec; }
.db-summary-panel article { min-height: 76px; border-right: 1px solid #dce3ec; border-bottom: 1px solid #dce3ec; padding: 14px; }
.db-summary-panel article span, .db-summary-panel article strong { display: block; }
.db-summary-panel article span { color: #66758c; font-size: 11px; }
.db-summary-panel article strong { margin-top: 8px; font-size: 22px; }
.db-summary-panel > p { margin: -4px 16px 15px; color: #718098; font-size: 11px; }
.db-chain-empty { min-height: 130px; display: grid; place-items: center; margin-bottom: 14px; border: 1px dashed #bdcce0; background: #fbfcfe; color: #62728a; font-size: 12px; }
.db-alert-panel > header > div { display: flex; gap: 7px; }
.db-alert-panel header select { min-width: 120px; }
.db-alert-table { overflow-x: auto; }
.db-alert-head, .db-alert-table article { min-width: 920px; display: grid; grid-template-columns: 74px minmax(270px, 1.7fr) minmax(180px, 1.15fr) 150px 90px 70px 54px; align-items: center; gap: 14px; }
.db-alert-head { min-height: 42px; background: #f6f8fb; color: #68768b; padding: 0 12px; font-size: 12px; }
.db-alert-table article { min-height: 62px; border-top: 1px solid #e7ebf1; padding: 9px 12px; color: #47556b; font-size: 12px; }
.db-alert-table article > div:nth-child(2) strong, .db-alert-table article > div:nth-child(2) small { display: block; }
.db-alert-table article > div:nth-child(2) strong { color: #18263d; font-size: 12px; }
.db-alert-table article small { margin-top: 4px; color: #8490a1; font-size: 11px; }
.db-alert-table article > button { border: 0; background: transparent; color: #1264db; font: inherit; font-size: 12px; font-weight: 750; cursor: pointer; }
.db-owner { display: flex; align-items: center; gap: 8px; }
.db-owner > b { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: #edf3fb; color: #326bb5; }
.db-owner span strong, .db-owner span small { display: block; }
.db-detail-drawer { --accent: #1769e8; }

.workspace-overlay { position: fixed; z-index: 1000; inset: 0; display: flex; justify-content: flex-end; background: rgb(17 24 39 / 42%); backdrop-filter: blur(2px); }
.detail-drawer { width: min(650px, 56vw); min-width: 500px; height: 100%; overflow-y: auto; background: #fff; box-shadow: -18px 0 50px rgb(20 30 45 / 18%); animation: drawer-in 230ms ease-out; }
.detail-drawer > header { display: flex; align-items: flex-start; justify-content: space-between; border-bottom: 1px solid var(--line); padding: 24px; }
.detail-drawer > header span { color: var(--accent); font-size: 12px; font-weight: 800; }
.detail-drawer > header h2 { margin: 7px 0 0; font-size: 20px; }
.detail-drawer > header button { border: 0; background: transparent; color: #6e7a8e; font-size: 27px; cursor: pointer; }
.detail-drawer > section { border-bottom: 1px solid var(--line); padding: 22px 24px; }
.detail-drawer > section h3 { margin: 0 0 10px; font-size: 15px; }
.detail-drawer > section p { color: #667389; font-size: 13px; line-height: 1.75; }
.detail-drawer > footer { display: flex; justify-content: flex-end; gap: 9px; padding: 20px 24px; }
.drawer-kpis { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; padding: 20px 24px 0; }
.drawer-kpis div { border-radius: 7px; background: #f5f7f9; padding: 13px; }
.drawer-kpis span, .drawer-kpis strong { display: block; }
.drawer-kpis span { color: var(--muted); font-size: 11px; }
.drawer-kpis strong { margin-top: 6px; font-size: 15px; }
.source-list { display: grid; gap: 8px; }
.source-list article { display: flex; justify-content: space-between; border-radius: 6px; background: #f6f8fa; padding: 10px 12px; font-size: 12px; }
.source-list article.is-warning { background: #fff5e5; }

.workspace-return { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); padding: 0 0 14px; }
.workspace-return button { border: 0; background: transparent; color: var(--accent); font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; }
.workspace-return > span { color: #788599; font-size: 12px; font-weight: 700; }
.product-workbench-header, .visual-taskbar { display: flex; align-items: center; gap: 16px; margin: 15px 0; border: 1px solid var(--line); border-radius: 9px; background: #fff; padding: 18px 20px; }
.product-workbench-header > img { width: 66px; height: 66px; border-radius: 8px; object-fit: cover; }
.product-workbench-header > div { flex: 1; }
.product-workbench-header span, .visual-taskbar > div:first-child > span { color: var(--accent); font-size: 11px; font-weight: 800; }
.product-workbench-header h1, .visual-taskbar h1 { margin: 5px 0; font-family: Georgia, 'Songti SC', serif; font-size: 25px; font-weight: 500; }
.product-workbench-header p, .visual-taskbar p { margin: 0; color: var(--muted); font-size: 12px; }
.research-stagebar { display: grid; grid-template-columns: repeat(5, 1fr); margin-bottom: 15px; border: 1px solid var(--line); border-radius: 9px; background: #fff; padding: 16px; }
.research-stagebar > div { position: relative; display: flex; align-items: center; gap: 9px; color: #8b96a6; }
.research-stagebar > div::after { position: absolute; right: 12px; left: 43px; bottom: -4px; height: 2px; background: #e4e8ee; content: ''; }
.research-stagebar > div:last-child::after { display: none; }
.research-stagebar span { width: 30px; height: 30px; flex: 0 0 auto; display: grid; place-items: center; border: 1px solid #d6dde6; border-radius: 50%; background: #fff; font-size: 12px; }
.research-stagebar strong { font-size: 12px; }
.research-stagebar .is-reached { color: var(--accent); }
.research-stagebar .is-reached span { border-color: var(--accent); background: var(--accent); color: #fff; }
.research-workbench-grid { display: grid; grid-template-columns: minmax(0, 1fr) 286px; align-items: start; gap: 14px; }
.research-context-panel { position: sticky; top: 78px; border: 1px solid var(--line); border-radius: 9px; background: #fff; padding: 19px; }
.research-context-panel h2 { margin: 0 0 12px; font-size: 14px; }
.research-context-panel h2:not(:first-child) { margin-top: 24px; }
.research-context-panel dl { margin: 0; }
.research-context-panel dl div { display: flex; justify-content: space-between; border-bottom: 1px solid #eef1f4; padding: 9px 0; font-size: 12px; }
.research-context-panel dt { color: #7a8799; }
.research-context-panel dd { margin: 0; color: #2f3b4e; font-weight: 700; }
.activity-list { display: grid; gap: 12px; }
.activity-list article { display: grid; grid-template-columns: 9px 1fr; gap: 8px; }
.activity-list article > span { width: 8px; height: 8px; margin-top: 4px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 4px var(--accent-soft); }
.activity-list strong { font-size: 11px; }
.activity-list p { margin: 4px 0 0; color: #7b8798; font-size: 12px; }
.notice { margin-bottom: 16px; border-radius: 7px; padding: 11px 13px; font-size: 12px; }
.notice.warning { background: #fff3df; color: #865512; }
.notice.info { background: #eaf2ff; color: #285d9f; }
.form-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 13px; }
.form-grid.two-columns { grid-template-columns: 1fr 1fr; margin: 16px 0; }
.form-workspace h3, .inspection-workspace h3 { margin: 24px 0 12px; font-size: 14px; }
.sku-spec-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.sku-spec-grid article { display: grid; grid-template-columns: 52px 1fr auto; align-items: center; gap: 10px; border: 1px solid var(--line); border-radius: 7px; padding: 10px; }
.sku-spec-grid img { width: 52px; height: 52px; border-radius: 6px; object-fit: cover; }
.sku-spec-grid span { display: block; margin-top: 5px; color: #7d8999; font-size: 12px; }
.workspace-actions { display: flex; align-items: center; justify-content: flex-end; gap: 9px; margin-top: 20px; border-top: 1px solid var(--line); padding-top: 16px; }
.workspace-actions > span { margin-right: auto; color: #68758a; font-size: 12px; }
.success-state { min-height: 360px; display: grid; place-content: center; justify-items: center; text-align: center; }
.success-state > .anticon { color: #2c9b71; font-size: 44px; }
.success-state > span { margin-top: 12px; color: var(--accent); font-size: 12px; font-weight: 800; }
.success-state h2 { margin: 14px 0 6px; font-family: Georgia, 'Songti SC', serif; font-size: 24px; font-weight: 500; }
.success-state p { max-width: 480px; margin: 0 0 18px; color: var(--muted); font-size: 13px; }
.design-context-card { display: grid; grid-template-columns: 150px 1fr; gap: 16px; border-radius: 8px; background: #f6f7f8; padding: 12px; }
.design-context-card img { width: 150px; height: 100px; border-radius: 6px; object-fit: cover; }
.design-context-card span, .design-context-card strong, .design-context-card p { display: block; }
.design-context-card span { color: var(--muted); font-size: 11px; }
.design-context-card strong { margin-top: 7px; }
.design-context-card p { margin: 7px 0 0; color: #7d8999; font-size: 12px; }
.inspection-table .business-table__head, .inspection-table > article { min-width: 650px; grid-template-columns: 1fr 1fr 150px 1.2fr; }
.white-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.white-image-grid article { display: grid; grid-template-columns: 120px 1fr auto; align-items: center; gap: 13px; border: 1px dashed #cdd5df; border-radius: 8px; padding: 12px; }
.white-image-grid article.is-ready { border-style: solid; }
.white-image-grid img, .upload-placeholder { width: 120px; height: 120px; border-radius: 6px; object-fit: cover; }
.upload-placeholder { display: grid; place-content: center; justify-items: center; gap: 8px; background: #f3f5f7; color: #8793a3; text-align: center; }
.white-image-grid article > div span { display: block; margin-top: 6px; color: #8490a0; font-size: 12px; }
.white-image-grid article > button { border: 0; background: transparent; color: var(--accent); font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.research-table .business-table__head, .research-table > article { grid-template-columns: minmax(210px, 1.4fr) 100px minmax(190px, 1.2fr) 70px 120px 105px 70px; }

.visual-taskbar { justify-content: space-between; }
.visual-taskbar > div:last-child { display: flex; align-items: center; gap: 8px; }
.visual-overview-grid { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 14px; }
.visual-table .business-table__head, .visual-table > article { grid-template-columns: minmax(180px, 1.25fr) 100px 80px 130px minmax(125px, 1fr) 76px 70px 60px 70px; }
.inline-progress { display: grid; grid-template-columns: minmax(70px, 1fr) auto; gap: 5px 8px; align-items: center; }
.inline-progress > div { height: 5px; overflow: hidden; border-radius: 999px; background: #e8ecf1; }
.inline-progress > div span { display: block; height: 100%; border-radius: inherit; background: var(--accent); }
.inline-progress small, .inline-progress b { color: #7f8a9a; font-size: 11px; }
.inline-progress b { grid-column: 2; grid-row: 1; }
.visual-focus-card { overflow: hidden; border: 1px solid #eadde0; border-radius: 9px; background: #fffafb; padding: 18px; }
.visual-focus-card > span { color: var(--accent); font-size: 11px; font-weight: 800; letter-spacing: .1em; }
.focus-gallery { display: grid; grid-template-columns: 1.3fr .7fr; gap: 6px; height: 145px; margin: 14px 0; }
.focus-gallery img { width: 100%; height: 100%; min-width: 0; border-radius: 6px; object-fit: cover; }
.visual-focus-card h2 { margin: 13px 0 8px; font-family: Georgia, 'Songti SC', serif; font-size: 19px; font-weight: 500; }
.visual-focus-card p { color: #6f7889; font-size: 12px; line-height: 1.7; }
.visual-focus-card dl { margin: 14px 0; }
.visual-focus-card dl div { display: flex; justify-content: space-between; border-bottom: 1px solid #eee5e7; padding: 8px 0; font-size: 12px; }
.visual-focus-card dt { color: #8b7d82; }
.visual-focus-card dd { margin: 0; font-weight: 700; }
.visual-setup-grid { display: grid; grid-template-columns: .8fr 1.15fr .85fr; gap: 12px; }
.product-fact-image { width: 100%; height: 200px; margin: 12px 0; border-radius: 7px; background: #f2f2f2; object-fit: cover; }
.fact-list { margin: 0; }
.fact-list div { display: flex; justify-content: space-between; border-bottom: 1px solid #eee; padding: 8px 0; font-size: 12px; }
.fact-list dt { color: #7c8798; }
.fact-list dd { margin: 0; font-weight: 700; }
.visual-setup-grid label { margin-bottom: 12px; }
.asset-source { display: grid; gap: 8px; margin-bottom: 16px; }
.asset-source > strong { font-size: 12px; }
.asset-source > span { border-radius: 5px; background: #f5f6f8; padding: 9px; color: #59667a; font-size: 12px; }
.mini-gallery { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.mini-gallery img { width: 100%; height: 90px; border-radius: 5px; object-fit: cover; }
.copy-studio { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 12px; }
.copy-block { position: relative; margin-bottom: 13px; }
.copy-block > span { position: absolute; right: 9px; bottom: 8px; color: #8994a3; font-size: 11px; }
.assistant-tools { border: 1px solid var(--line); border-radius: 9px; background: #fff; padding: 18px; }
.assistant-tools > span { color: var(--accent); font-size: 11px; font-weight: 800; }
.assistant-tools h2 { margin: 8px 0 16px; font-size: 15px; }
.assistant-tools > button:not(.button) { width: 100%; min-height: 38px; border: 1px solid #d7dde5; border-radius: 6px; background: #fff; color: #4f5c6f; margin-bottom: 7px; font: inherit; font-size: 12px; cursor: pointer; }
.assistant-tools label { margin: 12px 0; }
.image-studio { min-height: 550px; display: grid; grid-template-columns: 190px minmax(0, 1fr) 240px; gap: 12px; }
.slot-list, .assistant-tools { border: 1px solid var(--line); border-radius: 9px; background: #fff; padding: 14px; }
.slot-list > span { display: block; margin-bottom: 12px; color: #7d899a; font-size: 11px; font-weight: 800; }
.slot-list button { width: 100%; display: grid; grid-template-columns: 24px 1fr; align-items: center; gap: 8px; border: 1px solid transparent; border-radius: 6px; background: transparent; margin-bottom: 6px; padding: 10px; color: #7a8698; text-align: left; cursor: pointer; }
.slot-list button.is-active { border-color: color-mix(in srgb, var(--accent) 25%, #dfe5ec); background: var(--accent-soft); color: var(--accent); }
.slot-list strong, .slot-list small { display: block; font-size: 11px; }
.slot-list small { margin-top: 3px; font-weight: 400; }
.image-canvas { display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 9px; background: #f2f2f0; padding: 14px; }
.canvas-meta { display: flex; justify-content: space-between; margin-bottom: 10px; font-size: 12px; }
.image-canvas > img { width: 100%; min-height: 380px; flex: 1; border-radius: 5px; object-fit: cover; }
.image-canvas footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-top: 12px; }
.image-canvas footer > button:not(.button) { border: 0; background: transparent; color: var(--accent); font: inherit; font-size: 12px; cursor: pointer; }
.video-studio { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 12px; }
.storyboard-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 9px; }
.storyboard-row article { overflow: hidden; border: 1px solid var(--line); border-radius: 7px; }
.storyboard-row img { width: 100%; height: 150px; object-fit: cover; }
.storyboard-row span, .storyboard-row small { display: block; padding: 7px 9px 0; font-size: 12px; }
.storyboard-row small { padding: 4px 9px 9px; color: #8894a4; }
.video-preview { border-radius: 9px; background: #19202c; color: #fff; padding: 16px; }
.video-preview > span { font-size: 12px; }
.video-preview > div { position: relative; margin: 14px 0; }
.video-preview img { width: 100%; height: 230px; border-radius: 6px; object-fit: cover; opacity: .75; }
.video-preview .anticon { position: absolute; inset: 50% auto auto 50%; color: #fff; font-size: 42px; transform: translate(-50%, -50%); }

.commerce-product-table .business-table__head, .commerce-product-table > article { grid-template-columns: minmax(190px, 1.35fr) 140px 120px 110px 120px 90px 80px; }
.plans-table .business-table__head, .plans-table > article { grid-template-columns: minmax(190px, 1.4fr) 120px 120px 110px 130px 80px 80px; }
.inventory-table .business-table__head, .inventory-table > article { min-width: 1020px; grid-template-columns: 150px 120px 90px minmax(190px, 1.3fr) 85px minmax(180px, 1.3fr) 115px; }
.inventory-table article > div:last-child { display: grid; gap: 5px; }
.pricing-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: 14px; }
.strategy-card { border: 1px solid var(--line); border-radius: 8px; padding: 19px; }
.strategy-card > div:first-child { display: flex; justify-content: space-between; }
.strategy-card > div:first-child > span { color: var(--accent); font-size: 11px; font-weight: 800; }
.strategy-card h2 { margin: 14px 0 7px; font-family: Georgia, 'Songti SC', serif; font-size: 21px; font-weight: 500; }
.strategy-card p { color: var(--muted); font-size: 12px; }
.strategy-card dl { margin: 18px 0; }
.strategy-card dl div { display: flex; justify-content: space-between; border-bottom: 1px solid #edf0f3; padding: 9px 0; font-size: 12px; }
.strategy-card dt { color: #7e8a9b; }
.strategy-card dd { margin: 0; font-weight: 650; }
.price-simulation { display: grid; gap: 9px; }
.price-simulation article { display: grid; grid-template-columns: 1fr 140px auto; align-items: center; gap: 12px; border: 1px solid var(--line); border-radius: 7px; padding: 14px; }
.price-simulation span { display: block; margin-top: 5px; color: #8792a2; font-size: 12px; }
.operation-table .business-table__head, .operation-table > article { grid-template-columns: 150px 90px minmax(160px, 1.2fr) 100px minmax(170px, 1.3fr) 90px 80px; }
.operation-steps { display: grid; grid-template-columns: repeat(4, 1fr); border-bottom: 1px solid var(--line); padding: 18px 24px; }
.operation-steps span { position: relative; color: #8a95a5; font-size: 12px; }
.operation-steps span::after { position: absolute; right: 12px; left: 86px; top: 8px; height: 1px; background: #dfe4ea; content: ''; }
.operation-steps span:last-child::after { display: none; }
.operation-steps .is-done, .operation-steps .is-active { color: var(--accent); font-weight: 700; }
.preview-row { display: grid; grid-template-columns: 110px 1fr auto; align-items: center; gap: 12px; border-bottom: 1px solid #eef1f4; padding: 12px 0; font-size: 12px; }
.preview-row > span:first-child { color: #7b8798; }
.confirmation-check { display: grid; grid-template-columns: 18px 1fr; gap: 9px; margin: 18px 24px 0; border-radius: 7px; background: #fff5e5; padding: 12px; color: #72511d; font-size: 12px; line-height: 1.55; }

.empty-state { min-height: 260px; display: grid; place-content: center; justify-items: center; text-align: center; }
.empty-state > span { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; background: #f1f3f6; color: #8b96a6; }
.empty-state strong { margin-top: 12px; }
.empty-state p { max-width: 360px; color: var(--muted); font-size: 12px; }

@keyframes drawer-in { from { transform: translateX(30px); opacity: .5; } to { transform: translateX(0); opacity: 1; } }

@media (max-width: 1380px) {
  .center-header h1 { font-size: 27px; }
  .db-filter-row { grid-template-columns: repeat(3, 1fr); }
  .db-metric-grid { grid-template-columns: repeat(3, 1fr); }
  .visual-overview-grid { grid-template-columns: 1fr; }
  .visual-focus-card { min-height: auto; }
  .visual-focus-card { display: grid; grid-template-columns: 180px 1fr; gap: 12px 18px; }
  .focus-gallery { grid-row: span 4; margin: 0; }
  .visual-setup-grid { grid-template-columns: 1fr 1fr; }
  .visual-setup-grid > :last-child { grid-column: span 2; }
  .image-studio { grid-template-columns: 170px minmax(0, 1fr); }
  .image-studio > :last-child { grid-column: span 2; }
}

@media (max-width: 980px) {
  .center-header { flex-direction: column; }
  .center-header__side { width: 100%; align-items: flex-start; }
  .task-shortcuts { grid-template-columns: 1fr 1fr; }
  .filter-bar, .form-grid { grid-template-columns: 1fr 1fr; }
  .research-workbench-grid, .pricing-layout, .copy-studio, .video-studio { grid-template-columns: 1fr; }
  .db-filter-row { grid-template-columns: 1fr 1fr; }
  .db-metric-grid { grid-template-columns: 1fr 1fr; }
  .research-context-panel { position: static; }
  .detail-drawer { width: 86vw; min-width: 0; }
  .visual-setup-grid, .image-studio { grid-template-columns: 1fr; }
  .visual-setup-grid > :last-child, .image-studio > :last-child { grid-column: auto; }
  .storyboard-row { grid-template-columns: 1fr 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .task-shortcut, .button, .detail-drawer { animation: none; transition: none; }
}
/* 页面名称已由左侧导航和顶部面包屑承载，列表页头仅保留关键操作。 */
.list-page-header { min-height: 0; display: flex; align-items: center; justify-content: flex-end; gap: 10px; margin-bottom: 12px; }
.list-page-header > div:first-child { display: none; }
.list-page-header:has(> div:only-child) { display: none; }
.list-page-header > div:last-child:not(:first-child) { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.list-page-header h1 { margin: 0; color: #17243d; font-size: 24px; line-height: 1.35; }
.list-page-header p { margin: 7px 0 0; color: #7b879e; font-size: 13px; }
.list-page-header-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.list-metric-strip { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); overflow: hidden; margin-bottom: 16px; border: 1px solid #e4e9f1; border-radius: 8px; background: #fff; }
.list-metric-strip.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.list-metric-strip button { min-height: 84px; padding: 14px 18px; border: 0; border-right: 1px solid #edf0f5; background: #fff; color: #68758b; text-align: left; cursor: pointer; }
.list-metric-strip button:last-child { border-right: 0; }
.list-metric-strip button strong { display: block; margin-top: 8px; color: #17243d; font-size: 24px; line-height: 1; }
.list-metric-strip button.active { box-shadow: inset 0 -3px #cb1f31; background: #fff8f8; color: #9f1727; }
.list-table-panel { overflow: hidden; border: 1px solid #e4e9f1; border-radius: 8px; background: #fff; }
.list-filter-row { display: grid; align-items: center; gap: 10px; padding: 14px 16px; border-bottom: 1px solid #edf0f5; background: #fafbfd; }
.product-filters { grid-template-columns: minmax(220px, 1.5fr) repeat(4, minmax(120px, .7fr)) auto auto; }
.visual-filters { grid-template-columns: minmax(220px, 1.5fr) repeat(5, minmax(110px, .7fr)) auto; }
.commerce-filters { grid-template-columns: minmax(240px, 1.6fr) repeat(4, minmax(120px, .7fr)) auto; }
.list-query { min-width: 88px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.commerce-product-table--ue .business-table__head,
.commerce-product-table--ue article { grid-template-columns: 34px minmax(190px, 1.35fr) minmax(130px, .9fr) minmax(120px, .85fr) minmax(110px, .75fr) 90px 112px 90px 102px; }

@media (max-width: 1180px) {
  .list-metric-strip, .list-metric-strip.four { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .product-filters, .visual-filters, .commerce-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .list-page-header { flex-direction: column; }
  .list-page-header-actions { justify-content: flex-start; }
  .list-metric-strip, .list-metric-strip.four, .product-filters, .visual-filters, .commerce-filters { grid-template-columns: 1fr; }
  .list-metric-strip button { border-right: 0; border-bottom: 1px solid #edf0f5; }
}

/* 产品研发中心弹窗与本地证据选择 */
.research-overlay-center {
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.research-modal-center {
  width: min(560px, 92vw);
  max-height: min(760px, calc(100vh - 48px));
  overflow-y: auto;
  border-radius: 12px;
}

.research-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  padding: 20px 22px;
}

.research-form-grid label,
.research-modal-field {
  display: grid;
  gap: 7px;
  color: #536176;
  font-size: 12px;
  font-weight: 650;
}

.research-form-grid label.full,
.research-modal-field.full {
  grid-column: 1 / -1;
}

.research-upload-zone {
  display: grid;
  justify-items: center;
  gap: 9px;
  margin: 20px 22px 12px;
  border: 1px dashed #aebed2;
  border-radius: 10px;
  padding: 26px 20px;
  background: #f8fbff;
  color: #52647c;
  text-align: center;
}

.research-upload-zone input {
  max-width: 100%;
}

.research-upload-zone small,
.research-modal-note {
  color: #8793a3;
  font-size: 11px;
  line-height: 1.6;
}

.research-file-list {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 22px 16px;
  border: 1px solid #e0e6ee;
  border-radius: 8px;
  padding: 11px 13px;
  background: #fff;
  color: #34445b;
  font-size: 12px;
}

.research-file-type {
  display: grid;
  place-items: center;
  min-width: 34px;
  height: 28px;
  border-radius: 6px;
  background: #eaf2fd;
  color: #2864aa;
  font-size: 10px;
  font-weight: 750;
}

.research-confirm-list,
.research-revision-skus {
  display: grid;
  gap: 8px;
  padding: 20px 22px;
}

.research-confirm-row,
.research-revision-sku {
  display: flex;
  align-items: center;
  gap: 11px;
  border: 1px solid #e3e8ef;
  border-radius: 8px;
  padding: 12px 14px;
  background: #fafbfd;
  color: #415168;
  font-size: 12px;
}

.research-confirm-row strong {
  margin-left: auto;
  color: #25824a;
}

.research-revision-sku {
  cursor: pointer;
}

.research-field-error {
  grid-column: 1 / -1;
  margin: 0;
  color: #c9293c;
  font-size: 12px;
}

.research-modal-center > .research-modal-note {
  display: block;
  margin: 0 22px 16px;
}

@media (max-width: 680px) {
  .research-overlay-center {
    align-items: flex-end;
    padding: 0;
  }

  .research-modal-center {
    width: 100%;
    max-height: 88vh;
    border-radius: 14px 14px 0 0;
  }

  .research-form-grid {
    grid-template-columns: 1fr;
  }
}
.platform-page-header {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  border-bottom: 1px solid var(--platform-line);
  padding: 2px 0 18px;
}

.platform-page-header__identity {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 14px;
}

.platform-page-header__code {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border: 1px solid #ccdaeb;
  border-radius: 9px;
  background: #edf4fb;
  color: #315f8f;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.platform-page-header__copy {
  min-width: 0;
}

.platform-page-header__copy small {
  display: block;
  margin-bottom: 4px;
  color: #8a6a34;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.14em;
}

.platform-page-header h1 {
  margin: 0;
  color: var(--platform-ink);
  font-size: 23px;
  font-weight: 750;
  line-height: 1.3;
  letter-spacing: -0.025em;
}

.platform-page-header p {
  max-width: 760px;
  margin: 5px 0 0;
  color: var(--platform-muted);
  font-size: 12px;
  line-height: 1.65;
}

.platform-page-header__side,
.platform-page-header__actions,
.platform-page-header__summary {
  display: flex;
  align-items: center;
}

.platform-page-header__side {
  flex: 0 0 auto;
  justify-content: flex-end;
  gap: 14px;
}

.platform-page-header__actions {
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.platform-page-header__summary {
  flex-wrap: wrap;
  gap: 8px;
  color: var(--platform-muted);
  font-size: 11px;
  white-space: nowrap;
}

.platform-page-header__summary > .anticon {
  color: #5277a3;
  font-size: 19px;
}

.platform-page-header__summary strong {
  color: var(--platform-ink);
  font-size: 20px;
}

.platform-page-header__actions .button,
.platform-filter-bar .button,
.layout-content :is(.at-filter-bar, .ak-filter-row) .button {
  min-height: 36px;
  border-radius: var(--platform-radius-control);
}

.platform-filter-bar {
  min-width: 0;
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 10px;
  border: 1px solid var(--platform-line-soft);
  border-radius: var(--platform-radius-card);
  background: #fafbfd;
  padding: 12px 14px;
}

.platform-filter-bar > :first-child {
  flex: 1 1 220px;
}

.platform-filter-bar .ant-input-affix-wrapper,
.platform-filter-bar .ant-select-selector,
.platform-filter-bar .ant-btn {
  min-height: 36px;
  border-radius: var(--platform-radius-control) !important;
}

.platform-filter-bar .ant-select {
  min-width: 150px;
}

.platform-filter-bar.platform-filter-grid {
  display: grid;
}

.list-table-panel > .platform-filter-bar {
  border: 0;
  border-bottom: 1px solid var(--platform-line-soft);
  border-radius: 0;
}

.biz-center > .platform-page-header,
.biz-center > .platform-metric-strip {
  margin-bottom: 16px;
}

.platform-page-panel {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--platform-line);
  border-radius: var(--platform-radius-card);
  background: var(--platform-surface);
  box-shadow: 0 6px 20px rgb(32 49 73 / 4%);
}

.platform-page-panel > header {
  min-height: 60px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border-bottom: 1px solid var(--platform-line-soft);
  padding: 11px 16px;
}

.platform-page-panel > header h2 {
  margin: 0;
  color: var(--platform-ink);
  font-size: 15px;
  font-weight: 700;
}

.platform-page-panel > header p {
  margin: 4px 0 0;
  color: var(--platform-muted);
  font-size: 11px;
  line-height: 1.55;
}

.platform-page-panel__action {
  flex: 0 0 auto;
}

.platform-page-notice {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  border: 1px solid #cddceb;
  border-radius: var(--platform-radius-card);
  background: #f3f7fb;
  padding: 11px 13px;
  color: #44617d;
  font-size: 12px;
}

.platform-page-notice.is-warning { border-color: #ead9b8; background: #fff8e9; color: #79571d; }
.platform-page-notice.is-error { border-color: #efc9d0; background: #fff3f5; color: #9f3043; }
.platform-page-notice.is-success { border-color: #cae4d7; background: #f1faf5; color: #287653; }
.platform-page-notice__icon { flex: 0 0 auto; font-size: 17px; }
.platform-page-notice__content { min-width: 0; flex: 1; line-height: 1.6; }
.platform-page-notice > button { flex: 0 0 auto; border: 0; background: transparent; color: inherit; font: inherit; cursor: pointer; }

.platform-metric-strip {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  overflow: hidden;
  border: 1px solid var(--platform-line);
  border-radius: var(--platform-radius-card);
  background: var(--platform-surface);
  box-shadow: 0 6px 20px rgb(32 49 73 / 4%);
}

.platform-metric-strip > article,
.platform-metric-strip > button {
  min-width: 0;
  min-height: 88px;
  display: grid;
  grid-template-columns: auto 1fr;
  align-content: center;
  gap: 3px 11px;
  position: relative;
  border: 0;
  border-right: 1px solid var(--platform-line-soft);
  background: transparent;
  padding: 15px 18px;
  color: var(--platform-text);
  text-align: left;
}

.platform-metric-strip > :last-child {
  border-right: 0;
}

.platform-metric-strip > button {
  cursor: pointer;
}

.platform-metric-strip > button:hover,
.platform-metric-strip > button.is-active {
  background: #f5f8fd;
}

.platform-metric-strip > button.is-active::after {
  position: absolute;
  right: 16px;
  bottom: 0;
  left: 16px;
  height: 3px;
  border-radius: 999px 999px 0 0;
  background: var(--platform-primary);
  content: '';
}

.platform-metric-strip__icon {
  grid-row: 1 / 4;
  align-self: center;
  color: #54779f;
  font-size: 21px;
}

.platform-metric-strip__label {
  color: var(--platform-muted);
  font-size: 11px;
}

.platform-metric-strip strong {
  overflow: hidden;
  color: var(--platform-ink);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.15;
  text-overflow: ellipsis;
}

.platform-metric-strip small {
  overflow: hidden;
  color: var(--platform-subtle);
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* 兼容尚未迁移的业务页面，先统一标题区和筛选控件的视觉基线。 */
.layout-content .list-page-header,
.layout-content .sg-page-header {
  min-height: 72px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border-bottom: 1px solid var(--platform-line);
  margin-bottom: 14px;
  padding: 0 0 15px;
}

.layout-content .list-page-header > div:first-child,
.layout-content .sg-page-header > div:first-child {
  display: flex;
}

.layout-content .list-page-header:has(> div:only-child) {
  display: flex;
}

.layout-content .list-page-header h1,
.layout-content .sg-page-header h1 {
  margin: 0;
  color: var(--platform-ink);
  font-size: 23px;
  line-height: 1.35;
}

.layout-content .list-page-header p,
.layout-content .sg-page-header p {
  margin: 5px 0 0;
  color: var(--platform-muted);
  font-size: 12px;
  line-height: 1.6;
}

.layout-content :is(.filter-bar, .at-filter-bar, .ak-filter-row, .commerce-filter-bar, .research-filter-bar, .sg-filter) {
  gap: 10px;
  border-color: var(--platform-line-soft);
  background: #fafbfd;
  padding: 12px 14px;
}

.layout-content :is(.filter-bar, .at-filter-bar, .ak-filter-row, .commerce-filter-bar, .research-filter-bar, .sg-filter) :is(input, select, .ant-input-affix-wrapper, .ant-select-selector) {
  min-height: 36px;
  border-radius: var(--platform-radius-control);
}

.layout-content :is(.workspace-section, .list-table-panel, .sg-panel, .at-panel) {
  border-color: var(--platform-line);
  border-radius: var(--platform-radius-card);
  box-shadow: 0 6px 20px rgb(32 49 73 / 4%);
}

@media (max-width: 900px) {
  .platform-page-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .platform-page-header__side {
    width: 100%;
    justify-content: space-between;
  }

  .layout-content .list-page-header,
  .layout-content .sg-page-header {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 620px) {
  .platform-page-header__identity {
    align-items: flex-start;
  }

  .platform-page-header__side {
    align-items: flex-start;
    flex-direction: column;
  }

  .platform-page-header__actions {
    justify-content: flex-start;
  }

  .platform-metric-strip {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 980px) {
  .platform-page-panel,
  .sg-panel,
  .at-panel,
  .list-table-panel,
  .workspace-section {
    overflow: hidden;
  }

  .platform-page-panel > header,
  .layout-content .sg-page-header {
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
  }

  .platform-page-panel__action,
  .platform-page-header__actions,
  .platform-page-panel > header .platform-page-panel__action {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 8px;
  }
}

@media (max-width: 768px) {
  .platform-page {
    padding: 0;
  }

  .platform-page-header__title {
    width: 100%;
  }

  .platform-page-panel > header {
    padding-inline: 12px;
  }

  .platform-page-panel > section {
    padding-inline: 12px;
  }
}

@media (max-width: 480px) {
  .platform-page-header__side {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    align-items: stretch;
  }

  .platform-page-header__actions,
  .platform-page-panel__actions {
    width: 100%;
    justify-content: stretch;
  }

  .platform-page-header__actions .ant-btn,
  .platform-page-panel__actions .ant-btn {
    width: 100%;
  }
}

:root {
  --platform-nav: #171716;
  --platform-nav-active: #f8f4ee;
  --platform-bg: #f4f6f9;
  --platform-surface: #fff;
  --platform-ink: #17243d;
  --platform-text: #344155;
  --platform-muted: #67748a;
  --platform-subtle: #7b879e;
  --platform-line: #dfe5ec;
  --platform-line-soft: #edf0f5;
  --platform-primary: #2165d6;
  --platform-primary-soft: #eaf1ff;
  --platform-success: #288a64;
  --platform-success-soft: #e8f5ef;
  --platform-warning: #b66c18;
  --platform-warning-soft: #fff3e3;
  --platform-danger: #c23c50;
  --platform-danger-soft: #fdecef;
  --platform-info: #2165d6;
  --platform-info-soft: #eaf1ff;
  --platform-neutral: #68758a;
  --platform-neutral-soft: #eef2f6;
  --platform-radius-control: 6px;
  --platform-radius-card: 8px;
  --platform-radius-feature: 10px;
  --platform-shadow-overlay: 0 18px 50px rgb(23 36 61 / 16%);
  --platform-center-research: #a24d22;
  --platform-center-research-soft: #fff0e8;
  --platform-center-visual: #a13f50;
  --platform-center-visual-soft: #fcecef;
  --platform-center-content: #b64256;
  --platform-center-content-soft: #fdeef1;
  --platform-center-commerce: #16705a;
  --platform-center-commerce-soft: #e8f5f0;
  --platform-center-supply: #1f706b;
  --platform-center-supply-soft: #e8f5f3;
  --platform-center-automation: #236b7c;
  --platform-center-automation-soft: #e8f4f6;
  --platform-center-business: #315f8f;
  --platform-center-business-soft: #edf4fb;
  color: var(--platform-text);
  background: var(--platform-bg);
  font-family: Aptos, "Microsoft YaHei UI", "Microsoft YaHei", sans-serif;
  color-scheme: light;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}

* { box-sizing: border-box; }
html, body, #root { width: 100%; min-height: 100%; margin: 0; }
body { min-width: 320px; overflow-x: hidden; }

.layout-content { width: 100%; min-width: 0; min-height: 100%; padding: 24px; }
.page-loading, .centered-page {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 24px;
}

.workbench-shell {
  --workbench-sidebar-width: 248px;
  height: 100vh;
  height: 100dvh;
  display: grid;
  grid-template: 60px minmax(0, 1fr) / var(--workbench-sidebar-width) minmax(0, 1fr);
  overflow: hidden;
  background: var(--platform-bg);
}

.workbench-header {
  grid-row: 1;
  grid-column: 2;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border-bottom: 1px solid #dce3ec;
  background: rgb(255 255 255 / 96%);
  padding: 0 20px;
}

.workbench-header-context,
.workbench-breadcrumb,
.account-trigger {
  display: flex;
  align-items: center;
}

.workbench-header-context { min-width: 0; gap: 8px; }

.workbench-mobile-nav-trigger { display: none; }

.workbench-breadcrumb {
  min-width: 0;
  gap: 8px;
  color: #7a8698;
  font-size: 12px;
}

.workbench-breadcrumb b { color: #c2c9d2; font-weight: 400; }

.workbench-breadcrumb strong {
  overflow: hidden;
  color: #172033;
  font-weight: 650;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.account-trigger { height: 40px; gap: 9px; color: #566276; }
.account-trigger .ant-avatar { background: #eaf2ff; color: #1768e5; }

.workbench-content {
  grid-row: 2;
  grid-column: 2;
  min-width: 0;
  min-height: 0;
  overflow: auto;
  background: var(--platform-bg);
}

.login-page {
  --login-ink: #2c2c2c;
  --login-muted: #77726a;
  --login-gold: #c9a96e;
  --login-cream: #f7f3ee;
  position: relative;
  min-height: 100vh;
  display: grid;
  grid-template-columns: minmax(620px, 1fr) minmax(520px, 40vw);
  overflow: hidden;
  background: var(--login-cream);
  color: var(--login-ink);
}

.login-particle-canvas {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  opacity: 0.36;
  pointer-events: none;
}

.login-visual {
  position: relative;
  min-height: 100vh;
  overflow: hidden;
  background: #f8f8f8;
  isolation: isolate;
}

.login-visual-image {
  position: absolute;
  inset: -4%;
  width: 108%;
  height: 108%;
  object-fit: cover;
  object-position: 51% 43%;
  animation: login-image-reveal 1.1s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.login-visual-shade {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(180deg, transparent 48%, rgb(20 19 18 / 8%) 68%, rgb(20 19 18 / 72%) 100%),
    linear-gradient(90deg, rgb(255 255 255 / 10%), transparent 55%);
}

.login-visual-content {
  position: absolute;
  z-index: 2;
  right: clamp(48px, 5vw, 88px);
  bottom: clamp(48px, 7vh, 88px);
  left: clamp(48px, 5vw, 88px);
  max-width: 690px;
  color: #fff;
  animation: login-copy-reveal 720ms 180ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.login-visual-kicker,
.login-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.login-visual-kicker::before {
  width: 32px;
  height: 1px;
  background: var(--login-gold);
  content: '';
}

.login-visual-content h1 {
  margin: 18px 0 14px;
  font-family: Georgia, 'Noto Serif SC', 'Songti SC', serif;
  font-size: clamp(34px, 3.2vw, 54px);
  font-weight: 500;
  line-height: 1.22;
  letter-spacing: -0.035em;
}

.login-visual-content p {
  max-width: 600px;
  margin: 0;
  color: rgb(255 255 255 / 82%);
  font-size: 14px;
  line-height: 1.8;
}

.login-capabilities {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 24px 0 0;
  padding: 0;
  list-style: none;
}

.login-capabilities li {
  border: 1px solid rgb(255 255 255 / 26%);
  border-radius: 999px;
  background: rgb(255 255 255 / 10%);
  padding: 7px 12px;
  font-size: 12px;
  backdrop-filter: blur(10px);
}

.login-workspace {
  position: relative;
  z-index: 1;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  overflow: hidden;
  padding: clamp(44px, 7vh, 84px) clamp(42px, 4vw, 72px);
  background:
    radial-gradient(circle at 100% 0, rgb(33 101 214 / 12%), transparent 34%),
    linear-gradient(145deg, #f8fafc 0%, var(--platform-bg) 56%, #edf2f8 100%);
}

.login-workspace::before {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgb(23 36 61 / 3%) 1px, transparent 1px),
    linear-gradient(90deg, rgb(23 36 61 / 3%) 1px, transparent 1px);
  background-size: 32px 32px;
  content: '';
  mask-image: linear-gradient(135deg, #000, transparent 66%);
}

.login-workspace::after {
  position: absolute;
  top: -110px;
  right: -130px;
  width: 330px;
  height: 330px;
  border: 1px solid rgb(33 101 214 / 12%);
  border-radius: 50%;
  box-shadow: 0 0 0 52px rgb(33 101 214 / 3%);
  content: '';
}

.login-panel {
  position: relative;
  z-index: 1;
  width: min(100%, 520px);
  margin: auto;
  overflow: hidden;
  border: 1px solid var(--platform-line);
  border-radius: 16px;
  background: rgb(255 255 255 / 96%);
  padding: clamp(28px, 3vw, 40px);
  box-shadow: 0 24px 70px rgb(23 36 61 / 13%);
  animation: login-panel-reveal 640ms 80ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.login-panel::before {
  position: absolute;
  inset: 0 0 auto;
  height: 3px;
  background: linear-gradient(90deg, var(--platform-primary), #6ca4ef 72%, transparent);
  content: '';
}

.login-brand {
  display: flex;
  align-items: center;
  gap: 13px;
}

.login-brand-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 154px;
  height: 40px;
  overflow: hidden;
}

.login-brand-mark img {
  display: block;
  width: 100%;
  max-width: 154px;
  height: 100%;
  object-fit: contain;
}

.login-brand strong,
.login-brand span {
  display: block;
}

.login-brand strong {
  font-size: 15px;
  font-weight: 650;
  letter-spacing: 0.04em;
}

.login-brand div > span {
  margin-top: 4px;
  color: var(--platform-muted);
  font-size: 9px;
  letter-spacing: 0.16em;
}

.login-heading {
  margin: clamp(40px, 6vh, 58px) 0 30px;
}

.login-eyebrow {
  color: var(--platform-primary);
}

.login-heading h2 {
  margin: 12px 0 10px;
  color: var(--platform-ink);
  font-family: Aptos, 'Microsoft YaHei UI', 'Microsoft YaHei', sans-serif;
  font-size: 34px;
  font-weight: 700;
  letter-spacing: -0.03em;
}

.login-heading p {
  margin: 0;
  color: var(--platform-muted);
  font-size: 13px;
  line-height: 1.7;
}

.login-page .ant-pro-form-login-container {
  width: 100%;
  min-height: 0;
  padding: 0;
  background: transparent;
}

.login-page .ant-pro-form-login-main {
  width: 100%;
  min-width: 0;
}

.login-page .ant-form-item-label > label {
  height: auto;
  color: #4c4945;
  font-size: 12px;
  font-weight: 600;
}

.login-page .ant-input-affix-wrapper {
  min-height: 48px;
  border-color: #dcd6cd;
  border-radius: 4px;
  background: rgb(255 255 255 / 72%);
  box-shadow: none;
}

.login-page .ant-input-affix-wrapper:hover,
.login-page .ant-input-affix-wrapper-focused {
  border-color: var(--login-gold);
}

.login-page .ant-input-prefix {
  margin-right: 10px;
  color: #9a9287;
}

.login-page .ant-pro-form-login-main .ant-btn-primary {
  width: 100%;
  min-height: 48px;
  margin-top: 8px;
  border-color: var(--login-ink);
  border-radius: 4px;
  background: var(--login-ink);
  font-weight: 650;
  letter-spacing: 0.05em;
  box-shadow: none;
}

.login-page .ant-pro-form-login-main .ant-btn-primary:hover {
  border-color: #161616;
  background: #161616;
}

.login-page .ant-pro-form-login-main .ant-btn-primary:focus-visible,
.login-page .ant-input-affix-wrapper:focus-within {
  outline: 3px solid rgb(201 169 110 / 24%);
  outline-offset: 2px;
}

.login-error { margin-bottom: 16px; }

.login-security-note {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 26px;
  color: var(--platform-muted);
  font-size: 11px;
}

.login-security-note .anticon { color: var(--platform-primary); }

.login-footer {
  position: absolute;
  right: clamp(42px, 4vw, 72px);
  bottom: 28px;
  left: clamp(42px, 4vw, 72px);
  display: flex;
  justify-content: space-between;
  color: var(--platform-subtle);
  font-size: 10px;
  letter-spacing: 0.08em;
}

.login-page .ant-input-affix-wrapper:hover { border-color: #9eafc6; }

.login-page .ant-input-affix-wrapper-focused {
  border-color: var(--platform-primary);
  box-shadow: 0 0 0 3px rgb(33 101 214 / 14%);
}

.login-page .ant-btn-primary {
  border-color: var(--platform-primary);
  background: var(--platform-primary);
  box-shadow: none;
}

.login-page .ant-btn-primary:not(:disabled):hover {
  border-color: #1b57b7;
  background: #1b57b7;
}

@keyframes login-image-reveal {
  from { opacity: 0; transform: scale(1.1); }
  to { opacity: 1; transform: scale(1); }
}

@keyframes login-copy-reveal {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes login-panel-reveal {
  from { opacity: 0; transform: translateX(22px); }
  to { opacity: 1; transform: translateX(0); }
}

@media (max-width: 1100px) {
  body:has(.login-page) { min-width: 320px; }

  .login-page { grid-template-columns: minmax(360px, 1fr) minmax(470px, 50vw); }

  .login-visual-content h1 { font-size: 34px; }
}

@media (max-width: 780px) {
  .login-page { display: block; }
  .login-visual { display: none; }
  .login-workspace { padding: 36px 28px 72px; }
  .login-heading { margin-top: 42px; }
  .login-footer { right: 28px; left: 28px; }
}

@media (max-width: 1280px) {
  .workbench-shell {
    --workbench-sidebar-width: 224px;
  }

  .layout-content { padding: 20px; }
}

@media (max-width: 1100px) {
  .workbench-shell {
    --workbench-sidebar-width: 212px;
  }
}

@media (max-width: 760px) {
  .workbench-shell {
    grid-template: 54px minmax(0, 1fr) / minmax(0, 1fr);
  }

  .workbench-shell > .workbench-sidebar { display: none; }
  .workbench-header { grid-column: 1; gap: 10px; padding: 0 10px; }
  .workbench-content { grid-column: 1; }
  .workbench-mobile-nav-trigger { display: inline-flex; flex: 0 0 auto; }
  .workbench-breadcrumb > span, .workbench-breadcrumb > b, .account-trigger > span { display: none; }
  .layout-content { padding: 12px; }
}

.workbench-mobile-drawer .ant-drawer-header { border-bottom-color: rgb(255 255 255 / 10%); background: #101b32; }
.workbench-mobile-drawer .ant-drawer-title, .workbench-mobile-drawer .ant-drawer-close { color: #fff; }
.workbench-mobile-drawer .ant-drawer-body { padding: 0; background: #101b32; }
.workbench-mobile-drawer .workbench-sidebar { min-height: 100%; }

@media (max-width: 480px) {
  .login-workspace { padding: 24px 16px 64px; }
  .login-panel { padding: 24px 20px; }
  .login-heading { margin: 34px 0 24px; }
  .login-heading h2 { font-size: 30px; }
  .login-footer { right: 16px; bottom: 18px; left: 16px; }
}

@media (prefers-reduced-motion: reduce) {
  .login-visual-image,
  .login-visual-content,
  .login-panel { animation: none; }
}

/* Dark technology-style login page. */
.login-page {
  --login-bg: #0b1326;
  --login-surface: rgb(14 26 49 / 82%);
  --login-surface-strong: rgb(24 39 68 / 94%);
  --login-text: #f7f9fd;
  --login-muted: #9eabc0;
  --login-line: rgb(159 180 218 / 18%);
  position: relative;
  width: 100%;
  min-width: 0;
  min-height: 100vh;
  min-height: 100dvh;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  place-items: center;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 32px;
  background:
    radial-gradient(circle at 12% 8%, rgb(33 101 214 / 23%), transparent 32%),
    radial-gradient(circle at 88% 86%, rgb(82 70 174 / 18%), transparent 34%),
    linear-gradient(145deg, #091124 0%, var(--login-bg) 50%, #140d29 100%);
  color: var(--login-text);
  isolation: isolate;
}

.login-page::before {
  position: fixed;
  inset: 0;
  z-index: -2;
  background-image:
    linear-gradient(rgb(113 148 208 / 5%) 1px, transparent 1px),
    linear-gradient(90deg, rgb(113 148 208 / 5%) 1px, transparent 1px);
  background-size: 52px 52px;
  content: '';
  mask-image: radial-gradient(circle at center, #000 22%, transparent 78%);
  pointer-events: none;
}

.login-page::after {
  position: fixed;
  z-index: -1;
  top: -220px;
  left: -180px;
  width: 620px;
  height: 620px;
  border-radius: 50%;
  background: radial-gradient(circle, rgb(49 126 246 / 18%), transparent 68%);
  content: '';
  filter: blur(22px);
  animation: login-glow-float 14s ease-in-out infinite;
  pointer-events: none;
}

.login-workspace {
  position: relative;
  width: 100%;
  min-width: 0;
  min-height: 0;
  display: grid;
  place-items: center;
  overflow: visible;
  padding: 0;
  background: transparent;
}

.login-workspace::before {
  position: fixed;
  z-index: -1;
  right: -210px;
  bottom: -250px;
  width: 680px;
  height: 680px;
  border-radius: 50%;
  background: radial-gradient(circle, rgb(105 74 190 / 16%), transparent 68%);
  content: '';
  filter: blur(28px);
  animation: login-glow-float 16s -7s ease-in-out infinite reverse;
  pointer-events: none;
}

.login-workspace::after { content: none; }

.login-panel {
  position: relative;
  z-index: 1;
  width: min(100%, 560px);
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--login-line);
  border-radius: 20px;
  background: var(--login-surface);
  padding: 34px 38px 30px;
  color: var(--login-text);
  box-shadow: 0 28px 80px rgb(0 0 0 / 34%), inset 0 1px rgb(255 255 255 / 7%);
  backdrop-filter: blur(22px);
  animation: login-panel-reveal 560ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.login-panel::before {
  height: 1px;
  background: linear-gradient(90deg, transparent, rgb(82 145 247 / 70%), rgb(129 101 207 / 55%), transparent);
}

.login-brand { gap: 12px; }

.login-brand-mark {
  width: 154px;
  height: 40px;
  border: 0;
  background: none;
  box-shadow: none;
}

.login-brand strong { color: var(--login-text); font-size: 16px; }
.login-brand div > span { color: #7788a5; }

.login-heading { margin: 28px 0 20px; }
.login-eyebrow { color: #76a8fa; }

.login-heading h1 {
  margin: 10px 0 7px;
  color: var(--login-text);
  font-family: Aptos, 'Microsoft YaHei UI', 'Microsoft YaHei', sans-serif;
  font-size: 29px;
  font-weight: 700;
  letter-spacing: -.025em;
  line-height: 1.3;
}

.login-heading p { color: var(--login-muted); }

.login-mode-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px;
  margin-bottom: 22px;
  padding: 4px;
  border: 1px solid rgb(139 160 194 / 10%);
  border-radius: 10px;
  background: rgb(255 255 255 / 4%);
}

.login-mode-tabs button {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: #7f8ca3;
  font: inherit;
  font-size: 13px;
  cursor: pointer;
  transition: background .18s ease, color .18s ease, box-shadow .18s ease;
}

.login-mode-tabs button:hover { color: #cbd7e9; }

.login-mode-tabs button[aria-selected='true'] {
  background: rgb(56 107 193 / 22%);
  color: #f7faff;
  box-shadow: inset 0 0 0 1px rgb(100 156 245 / 20%);
}

.login-mode-tabs button:focus-visible,
.login-mode-return:focus-visible {
  outline: 3px solid rgb(75 139 239 / 28%);
  outline-offset: 2px;
}

.login-mode-panel { min-height: 300px; }
.login-mode-panel[hidden] { display: none; }

.login-page .ant-pro-form-login-container,
.login-page .ant-pro-form-login-main {
  width: 100% !important;
  min-width: 0;
}

.login-page .ant-form-item { margin-bottom: 17px; }

.login-page .ant-form-item-label > label {
  color: #cbd6e8;
  font-size: 12px;
  font-weight: 600;
}

.login-page .ant-input-affix-wrapper {
  min-height: 48px;
  border-color: rgb(151 171 205 / 18%);
  border-radius: 9px;
  background: rgb(255 255 255 / 5%);
  box-shadow: none;
}

.login-page .ant-input,
.login-page .ant-input-password input,
.login-page .ant-input-affix-wrapper input { background: transparent; color: var(--login-text); }
.login-page .ant-input::placeholder { color: #66748c; }
.login-page .ant-input-prefix,
.login-page .ant-input-password-icon { color: #74839d; }

.login-page .ant-input-affix-wrapper:hover { border-color: rgb(104 151 226 / 60%); }

.login-page .ant-input-affix-wrapper-focused,
.login-page .ant-input-affix-wrapper:focus-within {
  border-color: #4b8bef;
  box-shadow: 0 0 0 3px rgb(54 125 239 / 14%);
  outline: 0;
}

.login-page .ant-pro-form-login-main .ant-btn-primary,
.login-page .ant-btn-primary {
  min-height: 48px;
  margin-top: 4px;
  border-color: var(--platform-primary);
  border-radius: 9px;
  background: var(--platform-primary);
  color: #fff;
  box-shadow: 0 10px 26px rgb(33 101 214 / 24%);
}

.login-page .ant-pro-form-login-main .ant-btn-primary:not(:disabled):hover,
.login-page .ant-btn-primary:not(:disabled):hover {
  border-color: #2e73e2;
  background: #2e73e2;
  transform: translateY(-1px);
}

.login-page .ant-alert-error {
  border-color: rgb(217 91 108 / 28%);
  background: rgb(135 34 51 / 20%);
}

.login-page .ant-alert-error .ant-alert-message,
.login-page .ant-alert-error .ant-alert-icon { color: #ff9aaa; }

.login-dingtalk-panel {
  display: flex;
  align-items: center;
  flex-direction: column;
  justify-content: center;
  padding: 22px 10px 8px;
  text-align: center;
}

.login-dingtalk-icon {
  width: 82px;
  height: 82px;
  display: grid;
  margin-bottom: 18px;
  place-items: center;
  border: 1px solid rgb(115 159 231 / 24%);
  border-radius: 20px;
  background: rgb(54 111 205 / 12%);
  color: #76a8fa;
  font-size: 38px;
}

.login-dingtalk-panel h2 { margin: 0; color: var(--login-text); font-size: 17px; }
.login-dingtalk-panel p { max-width: 310px; margin: 10px 0 20px; color: var(--login-muted); font-size: 12px; line-height: 1.7; }

.login-dingtalk-qr {
  display: grid;
  place-items: center;
  margin-bottom: 16px;
  padding: 12px;
  border: 1px solid rgb(115 159 231 / 24%);
  border-radius: 12px;
  background: #ffffff;
}

.login-dingtalk-refresh {
  min-height: 36px;
  margin-bottom: 10px;
  border: 1px solid rgb(126 159 211 / 22%);
  border-radius: 7px;
  background: rgb(255 255 255 / 4%);
  padding: 0 14px;
  color: #a9c9ff;
  font: inherit;
  font-size: 12px;
  cursor: pointer;
}

.login-dingtalk-refresh:hover {
  border-color: rgb(112 163 245 / 46%);
  background: rgb(67 121 207 / 12%);
  color: #d5e5ff;
}

.login-dingtalk-loading {
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 12px;
  padding: 44px 0;
  color: var(--login-muted);
  font-size: 12px;
}

.login-mode-return {
  min-height: 36px;
  border: 1px solid rgb(126 159 211 / 22%);
  border-radius: 7px;
  background: rgb(255 255 255 / 4%);
  padding: 0 14px;
  color: #a9c9ff;
  font: inherit;
  font-size: 12px;
  cursor: pointer;
}

.login-mode-return:hover { border-color: rgb(112 163 245 / 46%); background: rgb(67 121 207 / 12%); color: #d5e5ff; }

.login-security-note { justify-content: center; margin-top: 22px; color: #73819a; }
.login-security-note .anticon { color: #6f9ce4; }

.login-footer {
  position: static;
  z-index: 1;
  display: block;
  margin-top: 20px;
  color: #5e6c84;
  font-size: 10px;
  letter-spacing: .08em;
  text-align: center;
}

@keyframes login-glow-float {
  0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
  50% { transform: translate3d(34px, -22px, 0) scale(1.05); }
}

@keyframes login-panel-reveal {
  from { opacity: 0; transform: translateY(18px) scale(.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (max-width: 760px) {
  .login-page { display: grid; padding: 20px; }
  .login-workspace { padding: 0; }
  .login-panel { padding: 30px; }
  .login-heading { margin-top: 25px; }
}

@media (max-width: 480px) {
  .login-page { padding: 12px; }
  .login-panel { width: 100%; border-radius: 16px; padding: 25px 20px 22px; }
  .login-heading h1 { font-size: 26px; }
  .login-mode-panel { min-height: 288px; }
  .login-footer { margin-top: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  .login-page::after,
  .login-workspace::before,
  .login-panel { animation: none; }

  .login-mode-tabs button,
  .login-page .ant-btn-primary { transition: none; }
}

/* 全站自适应兜底规则：所有页面共享同一套基础行为 */
:root {
  --kdl-page-padding-x: clamp(10px, 2vw, 20px);
}

.layout-content {
  padding-inline: var(--kdl-page-padding-x);
  width: 100%;
  max-width: 100%;
}

.layout-content,
.layout-content :is(.ant-card, .platform-page-panel, .workspace-section, .list-table-panel, .sg-panel, .at-panel) {
  min-width: 0;
}

.layout-content .ant-input,
.layout-content .ant-input-password,
.layout-content .ant-select,
.layout-content .ant-input-affix-wrapper,
.layout-content .ant-picker,
.layout-content .ant-input-number,
.layout-content .ant-cascader-picker,
.layout-content .ant-textarea,
.layout-content .ant-input-affix-wrapper input,
.layout-content .ant-select-selector,
.layout-content .ant-input-number-input {
  max-width: 100%;
}

.layout-content :is(.filter-bar, .form-grid, .list-filter-row, .at-filter-row, .ak-filter-row, .commerce-filter-bar, .research-filter-bar, .sg-filter, .sg-toolbar, .tool-bar) {
  width: 100%;
  min-width: 0;
  display: grid;
  align-items: end;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px 12px;
}

.layout-content :is(.list-page-header-actions, .platform-page-header__actions, .platform-page-panel__actions, .sg-toolbar, .tool-bar) {
  width: 100%;
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

.layout-content :is(.list-query, .platform-page-header, .platform-page-header__side) {
  min-width: 0;
}

.layout-content .list-page-header h1,
.layout-content .sg-page-header h1 {
  min-width: 0;
  overflow-wrap: anywhere;
}

.layout-content .ant-form-item {
  min-width: 0;
}

.layout-content .ant-form-item-label > label {
  white-space: nowrap;
}

.layout-content .ant-form-item-control,
.layout-content .ant-form-item-control-input,
.layout-content .ant-form-item-control-input-content {
  min-width: 0;
}

.layout-content .ant-form-item-control-input-content .ant-input,
.layout-content .ant-form-item-control-input-content .ant-select,
.layout-content .ant-form-item-control-input-content .ant-picker {
  width: 100%;
}

.layout-content .ant-table-wrapper,
.layout-content .ant-table-container,
.layout-content .ant-table,
.layout-content .sc-table-shell,
.layout-content .research-table,
.layout-content .commerce-table,
.layout-content .dw-table,
.layout-content .list-table-panel {
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
}

.layout-content .ant-drawer-content {
  min-width: 0;
}

@media (max-width: 1380px) {
  .layout-content :is(.filter-bar, .form-grid, .list-filter-row, .at-filter-row, .ak-filter-row, .commerce-filter-bar, .research-filter-bar, .sg-filter, .sg-toolbar, .tool-bar) {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 980px) {
  .layout-content :is(.filter-bar, .form-grid, .list-filter-row, .at-filter-row, .ak-filter-row, .commerce-filter-bar, .research-filter-bar, .sg-filter, .sg-toolbar, .tool-bar) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .layout-content :is(.list-page-header-actions, .platform-page-header__actions, .platform-page-panel__actions, .sg-toolbar, .tool-bar) {
    justify-content: flex-start;
  }

  .layout-content .ant-card {
    margin-bottom: 12px;
  }
}

@media (max-width: 700px) {
  .layout-content :is(.filter-bar, .form-grid, .list-filter-row, .at-filter-row, .ak-filter-row, .commerce-filter-bar, .research-filter-bar, .sg-filter, .sg-toolbar, .tool-bar) {
    grid-template-columns: 1fr;
  }

  .layout-content .list-page-header-actions,
  .layout-content .platform-page-header__actions,
  .layout-content .platform-page-panel__actions,
  .layout-content .tool-bar {
    align-items: stretch;
  }

  .layout-content .list-page-header-actions .ant-btn,
  .layout-content .platform-page-header__actions .ant-btn,
  .layout-content .platform-page-panel__actions .ant-btn,
  .layout-content .tool-bar .ant-btn,
  .layout-content .sg-toolbar .ant-btn {
    width: auto;
    min-width: 0;
  }

  .layout-content .ant-drawer .ant-drawer-content-wrapper {
    width: min(100vw, 100%) !important;
  }
}

@media (max-width: 480px) {
  .layout-content {
    padding-inline: 8px;
  }

  .layout-content :is(.filter-bar, .form-grid, .list-filter-row, .at-filter-row, .ak-filter-row, .commerce-filter-bar, .research-filter-bar, .sg-filter, .sg-toolbar, .tool-bar) {
    gap: 8px;
  }
}
