.table-container {
    display: flex;
    flex-direction: column;
    height: 72vh;
}

.full-height-table {
    flex: 1;
    overflow: auto;
}

.table-divider {
    margin-top: 0px;
    margin-bottom: 8px;
}

.ant-tree .ant-tree-switcher {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: auto !important;
  min-height: 28px !important;
}

.ant-tree .ant-tree-title {
  display: flex !important;
  align-items: center !important;
  width: 100% !important;
}

/* ======================================================================
   统一视觉主题（与 paas-antd 主应用保持一致）
   1) 卡片：白卡 + 淡蓝细描边 + 柔和阴影 + 圆角，阴影默认常显、不做悬停变化
   2) 交互态统一为「往下按压一层」的内阴影，不位移、不上浮
   3) 主色品牌蓝；深色主题（html.paas-dark，由宿主应用切换）自动加深
   选择器加 html 前缀，稳定压过 antd-vue 4.x cssinjs 的 :where() 注入
   ====================================================================== */

:root {
  --paas-color-bg-elevated: #ffffff;
  --paas-color-bg-container: #ffffff;
  --paas-color-bg-layout: #f0f6ff;
  --paas-color-bg-muted: #f5f9ff;
  --paas-color-bg-subtle: #eaf2ff;
  --paas-color-sider-bg: #ffffff;
  --paas-color-sider-border: #dbe7f6;
  --paas-color-border: #dbe7f6;
  --paas-color-border-secondary: #e8f0fb;
  --paas-color-text-primary: #1f2937;
  --paas-color-text-secondary: #667085;
  --paas-color-text-tertiary: #98a2b3;
  --paas-color-text-on-primary: #ffffff;
  --paas-color-primary: #1677ff;
  --paas-color-primary-bg: color-mix(in srgb, var(--paas-color-primary) 10%, transparent);
  --paas-color-primary-border: color-mix(in srgb, var(--paas-color-primary) 30%, transparent);
  --paas-color-control-item-bg-active: color-mix(in srgb, var(--paas-color-primary) 10%, var(--paas-color-bg-elevated));
  --paas-color-control-item-bg-active-hover: color-mix(in srgb, var(--paas-color-primary) 18%, var(--paas-color-bg-elevated));
  --paas-color-control-item-text-active: var(--paas-color-primary);
  --paas-color-control-item-text-active-hover: var(--paas-color-primary-active);
  --paas-color-success: #22a06b;
  --paas-color-warning: #d98b16;
  --paas-color-error: #e5484d;
  --paas-color-info: #1677ff;
  --paas-color-neutral: #6c757d;
  --paas-color-success-bg: rgba(34, 160, 107, 0.12);
  --paas-color-warning-bg: rgba(217, 139, 22, 0.12);
  --paas-color-error-bg: rgba(229, 72, 77, 0.1);
  --paas-color-info-bg: rgba(22, 119, 255, 0.1);
  --paas-color-neutral-bg: rgba(108, 117, 125, 0.1);
  --paas-color-status-draft: #d98b16;
  --paas-color-status-pending: #1677ff;
  --paas-color-status-progress: #08979c;
  --paas-color-status-success: #22a06b;
  --paas-color-status-error: #e5484d;
  --paas-color-status-revoked: #7c3aed;
  --paas-color-status-neutral: #6c757d;
  --paas-color-status-suspended: #ea580c;
  --paas-color-status-delegated: #1677ff;
  --paas-color-status-admin: #db2777;
  --paas-color-scrollbar: rgba(100, 116, 139, 0.35);
  --paas-color-scrollbar-hover: rgba(100, 116, 139, 0.6);
  --paas-shadow-card: 0 1px 2px rgba(30, 64, 175, 0.025),
    0 3px 9px rgba(30, 64, 175, 0.03);
  --paas-shadow-card-hover: 0 2px 6px rgba(30, 64, 175, 0.045),
    0 6px 16px rgba(30, 64, 175, 0.04);
  --paas-shadow-popup: 0 8px 24px rgba(30, 64, 175, 0.12),
    0 2px 8px rgba(30, 64, 175, 0.07);
  --paas-shadow-inset: inset 0 1px 2px rgba(30, 64, 175, 0.08);
  --paas-radius: 8px;

  --paas-primary: var(--paas-color-primary);
  --paas-card-border: var(--paas-color-border);
  --paas-card-shadow: var(--paas-shadow-card);
  --glass-inset: var(--paas-shadow-inset);
  --glass-inset-blue: inset 0 1px 2px var(--paas-color-primary-border);
  --glass-row-hover: var(--paas-color-primary-bg);
  --glass-item-hover: var(--paas-color-primary-bg);
}

html.paas-dark {
  --paas-color-bg-layout: #101318;
  --paas-color-bg-elevated: #20252e;
  --paas-color-bg-container: #181c23;
  --paas-color-bg-muted: #1d222a;
  --paas-color-sider-bg: #181c23;
  --paas-color-sider-border: #303846;
  --paas-color-border: #303846;
  --paas-color-border-secondary: #272e39;
  --paas-color-text-primary: #e8ecf2;
  --paas-color-text-secondary: #aeb7c6;
  --paas-color-text-tertiary: #788395;
  --paas-color-text-on-primary: #ffffff;
  --paas-color-flow-canvas: #131820;
  --paas-color-flow-grid: #2b3442;
  --paas-color-flow-node: #202630;
  --paas-color-flow-node-end: #181e27;
  --paas-color-flow-node-text: #e8ecf2;
  --paas-color-flow-edge: #5d6b7f;
  --paas-color-flow-shadow: rgba(0, 0, 0, 0.16);
  --paas-color-primary-bg: color-mix(in srgb, var(--paas-color-primary) 14%, transparent);
  --paas-color-primary-border: color-mix(in srgb, var(--paas-color-primary) 36%, transparent);
  --paas-color-control-item-bg-active: color-mix(in srgb, var(--paas-color-primary) 28%, var(--paas-color-bg-elevated));
  --paas-color-control-item-bg-active-hover: color-mix(in srgb, var(--paas-color-primary) 38%, var(--paas-color-bg-elevated));
  --paas-color-control-item-text-active: #ffffff;
  --paas-color-control-item-text-active-hover: #ffffff;
  --paas-color-success-bg: rgba(34, 160, 107, 0.18);
  --paas-color-warning-bg: rgba(217, 139, 22, 0.18);
  --paas-color-error-bg: rgba(229, 72, 77, 0.18);
  --paas-color-info-bg: rgba(64, 150, 255, 0.14);
  --paas-color-neutral-bg: rgba(148, 163, 184, 0.16);
  --paas-color-status-draft: #f0a92e;
  --paas-color-status-pending: #4096ff;
  --paas-color-status-progress: #36cfc9;
  --paas-color-status-success: #3ecf8e;
  --paas-color-status-error: #ff7875;
  --paas-color-status-revoked: #a78bfa;
  --paas-color-status-neutral: #94a3b8;
  --paas-color-status-suspended: #ff9c6e;
  --paas-color-status-delegated: #69b1ff;
  --paas-color-status-admin: #f472b6;
  --paas-color-scrollbar: rgba(120, 131, 149, 0.45);
  --paas-color-scrollbar-hover: rgba(174, 183, 198, 0.62);
  --paas-shadow-card: 0 1px 2px rgba(0, 0, 0, 0.12),
    0 3px 9px rgba(0, 0, 0, 0.05);
  --paas-shadow-card-hover: 0 2px 6px rgba(0, 0, 0, 0.15),
    0 6px 16px rgba(0, 0, 0, 0.07);
  --paas-shadow-popup: 0 8px 22px rgba(0, 0, 0, 0.24),
    0 2px 6px rgba(0, 0, 0, 0.16);
  --paas-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.2);
}

html.paas-menu-dark {
  --paas-color-sider-bg: #111827;
  --paas-color-sider-border: #263244;
}

/* ---------- 卡片：默认常显阴影，不做悬停变化 ---------- */
html .ant-card:not(.app-selector-card) {
  border: 1px solid var(--paas-card-border);
  box-shadow: var(--paas-card-shadow);
  border-radius: var(--paas-radius);
}

/* ---------- 按钮：悬停/按下 = 下陷按压，不位移 ---------- */
html .ant-btn {
  border-radius: 8px;
}

html .ant-btn-default:not(:disabled):hover {
  border-color: var(--paas-color-primary-border);
  color: var(--paas-color-primary);
  box-shadow: none;
}

html .ant-btn-default:not(:disabled):active {
  box-shadow: var(--paas-shadow-inset);
}

html .ant-btn-primary:not(:disabled):hover {
  box-shadow: none;
}

html .ant-btn-text:not(:disabled):hover,
html .ant-btn-dashed:not(:disabled):hover {
  background: var(--glass-item-hover);
}

/* ---------- 输入类：悬停品牌描边、聚焦品牌光环 ---------- */
html .ant-input:hover,
html .ant-input-affix-wrapper:hover,
html .ant-input-number:hover,
html .ant-picker:hover,
html .ant-select:not(.ant-select-disabled):hover .ant-select-selector {
  border-color: var(--paas-color-primary-border);
}

html .ant-input:focus,
html .ant-input-affix-wrapper-focused,
html .ant-input-affix-wrapper:focus-within,
html .ant-input-number-focused,
html .ant-picker-focused,
html .ant-select-focused .ant-select-selector {
  border-color: var(--paas-color-primary);
  box-shadow: 0 0 0 3px var(--paas-color-primary-bg);
}

/* ---------- 表格：仅行悬停品牌淡蓝 ---------- */
html .ant-table-wrapper .ant-table-tbody > tr:hover > td {
  background: var(--glass-row-hover);
}

/* ---------- 分页：悬停下陷按压 ---------- */
html .ant-pagination-item:hover,
html .ant-pagination-prev:hover .ant-pagination-item-link,
html .ant-pagination-next:hover .ant-pagination-item-link {
  border-color: var(--paas-color-primary-border);
  box-shadow: none;
}

html .ant-pagination-item-active {
  border-color: var(--paas-color-primary);
}

/* ---------- 下拉选项 / 树节点：品牌色悬停与选中 ---------- */
html .ant-dropdown-menu-item:hover {
  background: var(--glass-item-hover);
}

html .ant-select-item-option-active:not(.ant-select-item-option-disabled) {
  background: var(--glass-item-hover);
}

html .ant-select-item-option-selected:not(.ant-select-item-option-disabled) {
  background: var(--paas-color-primary-bg);
}

html .ant-cascader-dropdown .ant-cascader-menu {
  color: var(--paas-color-text-primary);
  background: var(--paas-color-bg-elevated);
  border-inline-end-color: var(--paas-color-border-secondary);
}

html .ant-cascader-dropdown .ant-cascader-menu-item {
  color: var(--paas-color-text-secondary);
}

html.paas-dark .ant-cascader:not(.ant-cascader-disabled) .ant-select-selector {
  color: var(--paas-color-text-primary);
  background: var(--paas-color-bg-container);
  border-color: var(--paas-color-border);
}

html.paas-dark .ant-cascader:not(.ant-cascader-disabled):hover .ant-select-selector,
html.paas-dark .ant-cascader-focused .ant-select-selector {
  border-color: var(--paas-color-primary);
}

html .ant-cascader-menu-item-active:not(.ant-cascader-menu-item-disabled),
html .ant-cascader-menu-item-selected:not(.ant-cascader-menu-item-disabled) {
  color: var(--paas-color-control-item-text-active) !important;
  background: var(--paas-color-control-item-bg-active) !important;
}

html .ant-cascader-menu-item-active:not(.ant-cascader-menu-item-disabled):hover,
html .ant-cascader-menu-item-selected:not(.ant-cascader-menu-item-disabled):hover {
  color: var(--paas-color-control-item-text-active-hover) !important;
  background: var(--paas-color-control-item-bg-active-hover) !important;
}

html .ant-cascader .ant-select-selection-placeholder,
html .ant-select .ant-select-selection-placeholder {
  color: var(--paas-color-text-tertiary);
}

html .ant-cascader-menu-item:hover {
  color: var(--paas-color-text-primary);
}

html .ant-tree .ant-tree-node-content-wrapper:hover {
  background: var(--glass-item-hover);
}

html .ant-tree .ant-tree-node-content-wrapper.ant-tree-node-selected {
  background: var(--paas-color-primary-bg);
}

/* ---------- 标签页：品牌色点缀 ---------- */
html .ant-tabs-tab:hover {
  color: var(--paas-color-primary);
}

html .ant-tabs-ink-bar {
  background: var(--paas-color-primary);
}
