Files
MyGoNavi/frontend/src/v2-theme.css
Syngnat c3a3387ee3 feat(ai): 优化 AI 对话体验与 MCP 接入配置
- AI 请求:增强 OpenAI 兼容接口降级逻辑,文本模型自动省略图片并在 400 场景重试
- MCP 接入:支持自定义 HTTP 服务监听地址、端口和 Authorization Bearer Token
- MCP 生命周期:停止服务后保留授权信息,并将主动关闭子进程视为正常停止
- 交互优化:移除 AI 对话导出入口,支持关闭常驻状态提示并收敛设置弹窗 toast 宽度
- UI 调整:优化 AI 输入框边框、聚焦态和 Authorization 运行中只读可查看体验
- 测试覆盖:补充 OpenAI 降级、MCP HTTP、AI Header 和设置面板相关用例
2026-06-12 14:51:37 +08:00

6527 lines
188 KiB
CSS

/* ──────────────────────────────────────────────────────────────────────
GoNavi V2 — UI
──────────────────────────────────────────────────────────────────────
This stylesheet contains the v2 tokens and the structural workbench
rules used by the React layout when:
body[data-ui-version="v2"]
is set by App.tsx (driven by the AppearanceSettings.uiVersion store
field). Legacy stays available as a rollback option in settings.
Strategy:
1. Define design tokens (light + dark) as CSS variables on the body.
2. Override the small handful of Ant Design / project class selectors
that drive the visual impression: surfaces, typography, sidebar
tree, tabs, buttons, tables, inputs, dropdowns, modals.
3. Keep specificity tight to the v2 scope so legacy is untouched.
File is self-contained — safe to import once at app entry.
────────────────────────────────────────────────────────────────────── */
/* ─── Light tokens ─────────────────────────────────────── */
body[data-ui-version="v2"][data-theme="light"] {
--gn-font-sans: "Inter", "PingFang SC", "Noto Sans CJK SC", "Noto Sans SC", "Source Han Sans SC", "WenQuanYi Micro Hei", "Microsoft YaHei", -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Segoe UI", "Ubuntu", sans-serif;
--gn-font-mono: "JetBrains Mono", "Noto Sans Mono CJK SC", "Noto Sans Mono", ui-monospace, "SF Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace;
--gn-bg-app: #f6f6f4;
--gn-bg-chrome: #ececea;
--gn-bg-panel: #ffffff;
--gn-bg-panel-2: #fafaf8;
--gn-bg-hover: rgba(15, 23, 42, 0.045);
--gn-bg-active: rgba(15, 23, 42, 0.075);
--gn-bg-selected: rgba(34, 197, 94, 0.10);
--gn-bg-input: #ffffff;
--gn-fg-1: #0c1322;
--gn-fg-2: #1f2937;
--gn-fg-3: #4b5563;
--gn-fg-4: #6b7280;
--gn-fg-5: #9ca3af;
--gn-br-1: rgba(15, 23, 42, 0.08);
--gn-br-2: rgba(15, 23, 42, 0.12);
--gn-br-3: rgba(15, 23, 42, 0.18);
--gn-accent: #16a34a;
--gn-accent-2: #15803d;
--gn-accent-soft: #dcfce7;
--gn-info: #0284c7;
--gn-info-soft: #e0f2fe;
--gn-warn: #d97706;
--gn-warn-soft: rgba(245, 158, 11, 0.14);
--gn-danger: #dc2626;
--gn-shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.05);
--gn-shadow-md: 0 4px 14px rgba(15, 23, 42, 0.08);
--gn-shadow-lg: 0 12px 40px rgba(15, 23, 42, 0.14);
--gn-shadow-card: 0 0 0 0.5px rgba(15, 23, 42, 0.10), 0 1px 3px rgba(15, 23, 42, 0.06);
--gn-kbd-bg: #f3f4f6;
--gn-kbd-fg: #374151;
}
/* ─── Dark tokens ──────────────────────────────────────── */
body[data-ui-version="v2"][data-theme="dark"] {
--gn-font-sans: "Inter", "PingFang SC", "Noto Sans CJK SC", "Noto Sans SC", "Source Han Sans SC", "WenQuanYi Micro Hei", "Microsoft YaHei", -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Segoe UI", "Ubuntu", sans-serif;
--gn-font-mono: "JetBrains Mono", "Noto Sans Mono CJK SC", "Noto Sans Mono", ui-monospace, "SF Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace;
--gn-bg-app: #0c0e12;
--gn-bg-chrome: #14171c;
--gn-bg-panel: #161a21;
--gn-bg-panel-2: #1b1f27;
--gn-bg-hover: rgba(255, 255, 255, 0.05);
--gn-bg-active: rgba(255, 255, 255, 0.08);
--gn-bg-selected: rgba(34, 197, 94, 0.14);
--gn-bg-input: #0f1217;
--gn-fg-1: #f1f3f5;
--gn-fg-2: #d6dade;
--gn-fg-3: #a8aeb5;
--gn-fg-4: #80868f;
--gn-fg-5: #5a6068;
--gn-br-1: rgba(255, 255, 255, 0.06);
--gn-br-2: rgba(255, 255, 255, 0.10);
--gn-br-3: rgba(255, 255, 255, 0.16);
--gn-accent: #22c55e;
--gn-accent-2: #16a34a;
--gn-accent-soft: rgba(34, 197, 94, 0.16);
--gn-info: #38bdf8;
--gn-info-soft: rgba(56, 189, 248, 0.14);
--gn-warn: #f59e0b;
--gn-warn-soft: rgba(245, 158, 11, 0.16);
--gn-danger: #f87171;
--gn-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
--gn-shadow-md: 0 4px 14px rgba(0, 0, 0, 0.45);
--gn-shadow-lg: 0 12px 40px rgba(0, 0, 0, 0.55);
--gn-shadow-card: 0 0 0 0.5px rgba(255, 255, 255, 0.08), 0 1px 3px rgba(0, 0, 0, 0.35);
--gn-kbd-bg: #20242c;
--gn-kbd-fg: #c7ccd2;
}
/* ─── Base typography & body ──────────────────────────── */
body[data-ui-version="v2"] {
font-family: var(--gn-font-sans) !important;
font-size: var(--gn-font-size, var(--gonavi-font-size, 14px));
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-synthesis: none;
font-feature-settings: "cv11", "ss01";
}
body[data-ui-version="v2"][data-platform="darwin"] {
-webkit-font-smoothing: subpixel-antialiased;
-moz-osx-font-smoothing: auto;
}
body[data-ui-version="v2"] code,
body[data-ui-version="v2"] pre,
body[data-ui-version="v2"] kbd,
body[data-ui-version="v2"] .ant-typography code,
body[data-ui-version="v2"] .gonavi-mono,
body[data-ui-version="v2"] [class*="monospace"] {
font-family: var(--gn-font-mono) !important;
}
/* ──────────────────────────────────────────────────────────
ANT DESIGN OVERRIDES — surfaces & chrome
────────────────────────────────────────────────────────── */
body[data-ui-version="v2"] .ant-layout,
body[data-ui-version="v2"] .ant-layout-content {
background: var(--gn-bg-app) !important;
}
body[data-ui-version="v2"] .ant-layout-sider {
background: var(--gn-bg-panel-2) !important;
border-right: 0.5px solid var(--gn-br-1) !important;
}
body[data-ui-version="v2"] .ant-layout-header {
background: var(--gn-bg-chrome) !important;
border-bottom: 0.5px solid var(--gn-br-1) !important;
}
/* ─── Tabs (top tab bar) ───────────────────────────────── */
body[data-ui-version="v2"] .ant-tabs > .ant-tabs-nav {
background: var(--gn-bg-panel-2);
margin-bottom: 0;
}
body[data-ui-version="v2"] .ant-tabs > .ant-tabs-nav::before {
border-bottom: 0.5px solid var(--gn-br-1) !important;
}
body[data-ui-version="v2"] .ant-tabs-tab {
padding: 8px 12px !important;
border-radius: 0 !important;
background: transparent !important;
border-right: 0.5px solid var(--gn-br-1) !important;
font-weight: 500 !important;
color: var(--gn-fg-3) !important;
transition: background 0.08s !important;
}
body[data-ui-version="v2"] .ant-tabs-tab:hover {
background: var(--gn-bg-hover) !important;
color: var(--gn-fg-1) !important;
}
body[data-ui-version="v2"] .ant-tabs-tab.ant-tabs-tab-active {
background: var(--gn-bg-panel) !important;
color: var(--gn-fg-1) !important;
font-weight: 600 !important;
position: relative;
}
body[data-ui-version="v2"] .ant-tabs-tab.ant-tabs-tab-active::after {
content: '';
position: absolute;
top: 0; left: 0; right: 0;
height: 2px;
background: var(--gn-accent);
}
body[data-ui-version="v2"] .ant-tabs-tab .ant-tabs-tab-btn {
font-family: var(--gn-font-sans);
font-size: var(--gn-font-size-sm, 12px);
}
body[data-ui-version="v2"] .ant-tabs-ink-bar {
display: none !important;
}
/* ─── Tree (sidebar database tree) ─────────────────────── */
body[data-ui-version="v2"] .ant-tree {
background: transparent !important;
font-size: var(--gn-sidebar-tree-font-size, var(--gn-font-size-sm, 12px));
color: var(--gn-fg-2);
}
body[data-ui-version="v2"] .ant-tree .ant-tree-treenode {
padding: 1px 4px !important;
}
body[data-ui-version="v2"] .ant-tree .ant-tree-node-content-wrapper {
border-radius: 6px !important;
padding: 2px 6px !important;
min-height: 26px !important;
transition: background 0.06s !important;
}
body[data-ui-version="v2"] .ant-tree .ant-tree-node-content-wrapper:hover {
background: var(--gn-bg-hover) !important;
}
body[data-ui-version="v2"] .ant-tree .ant-tree-node-content-wrapper.ant-tree-node-selected {
background: var(--gn-bg-selected) !important;
color: var(--gn-fg-1) !important;
font-weight: 400;
}
/* table names — mono */
body[data-ui-version="v2"] .ant-tree .ant-tree-title {
font-family: var(--gn-font-sans);
}
body[data-ui-version="v2"] .ant-tree .ant-tree-iconEle .anticon-table,
body[data-ui-version="v2"] .ant-tree .ant-tree-iconEle .anticon-eye,
body[data-ui-version="v2"] .ant-tree .ant-tree-iconEle .anticon-function {
color: var(--gn-accent);
}
body[data-ui-version="v2"] .ant-tree .ant-tree-iconEle .anticon-database {
color: var(--gn-info);
}
body[data-ui-version="v2"] .ant-tree-switcher {
color: var(--gn-fg-4) !important;
}
/* ─── Buttons ──────────────────────────────────────────── */
body[data-ui-version="v2"] .ant-btn {
font-weight: 500;
border-radius: 7px !important;
height: 30px !important;
padding: 0 12px !important;
box-shadow: none !important;
border-color: var(--gn-br-2) !important;
transition: background 0.08s, border-color 0.08s !important;
}
body[data-ui-version="v2"] .ant-btn-sm {
height: 24px !important;
padding: 0 8px !important;
font-size: 12px !important;
}
body[data-ui-version="v2"] .ant-btn-default {
background: var(--gn-bg-panel) !important;
color: var(--gn-fg-2) !important;
}
body[data-ui-version="v2"] .ant-btn-default:hover {
background: var(--gn-bg-hover) !important;
border-color: var(--gn-br-3) !important;
color: var(--gn-fg-1) !important;
}
body[data-ui-version="v2"] .ant-btn-primary {
background: var(--gn-accent) !important;
border-color: var(--gn-accent-2) !important;
color: #fff !important;
font-weight: 600 !important;
box-shadow: var(--gn-shadow-sm), inset 0 0.5px 0 rgba(255,255,255,0.15) !important;
}
body[data-ui-version="v2"] .ant-btn-primary:hover {
background: var(--gn-accent-2) !important;
border-color: var(--gn-accent-2) !important;
}
body[data-ui-version="v2"] .ant-btn-primary:disabled {
background: var(--gn-bg-active) !important;
border-color: var(--gn-br-2) !important;
color: var(--gn-fg-5) !important;
}
body[data-ui-version="v2"] .ant-btn-dangerous {
color: var(--gn-danger) !important;
}
body[data-ui-version="v2"] .ant-btn-link {
color: var(--gn-info) !important;
}
body[data-ui-version="v2"] .ant-btn-text {
color: var(--gn-fg-3) !important;
}
body[data-ui-version="v2"] .ant-btn-text:hover {
background: var(--gn-bg-hover) !important;
color: var(--gn-fg-1) !important;
}
/* ─── Inputs ──────────────────────────────────────────── */
body[data-ui-version="v2"] .ant-input,
body[data-ui-version="v2"] .ant-input-affix-wrapper,
body[data-ui-version="v2"] .ant-input-number,
body[data-ui-version="v2"] .ant-select-selector,
body[data-ui-version="v2"] .ant-picker {
background: var(--gn-bg-input) !important;
border-color: var(--gn-br-2) !important;
border-radius: 7px !important;
color: var(--gn-fg-1) !important;
box-shadow: none !important;
transition: border-color 0.08s, background 0.08s !important;
}
body[data-ui-version="v2"] .ant-input::placeholder,
body[data-ui-version="v2"] .ant-input-affix-wrapper input::placeholder {
color: var(--gn-fg-5) !important;
}
body[data-ui-version="v2"] .ant-input:focus,
body[data-ui-version="v2"] .ant-input-affix-wrapper-focused,
body[data-ui-version="v2"] .ant-input-number-focused,
body[data-ui-version="v2"] .ant-select-focused .ant-select-selector,
body[data-ui-version="v2"] .ant-picker-focused {
border-color: var(--gn-info) !important;
box-shadow: 0 0 0 3px rgba(56, 189, 248, 0.12) !important;
}
body[data-ui-version="v2"] .ant-input-search-button {
background: var(--gn-accent) !important;
border-color: var(--gn-accent-2) !important;
color: #fff !important;
}
/* ─── Select dropdown ─────────────────────────────────── */
body[data-ui-version="v2"] .ant-select-dropdown,
body[data-ui-version="v2"] .ant-dropdown-menu,
body[data-ui-version="v2"] .ant-picker-dropdown .ant-picker-panel-container {
background: var(--gn-bg-panel) !important;
border: 0.5px solid var(--gn-br-2) !important;
border-radius: 10px !important;
box-shadow: var(--gn-shadow-lg) !important;
padding: 4px !important;
}
body[data-ui-version="v2"] .ant-dropdown-menu-item,
body[data-ui-version="v2"] .ant-select-item {
border-radius: 6px !important;
padding: 6px 10px !important;
color: var(--gn-fg-1) !important;
min-height: 28px !important;
font-size: 12.5px !important;
}
body[data-ui-version="v2"] .ant-dropdown-menu-item:hover,
body[data-ui-version="v2"] .ant-select-item-option-active:not(.ant-select-item-option-disabled) {
background: var(--gn-bg-active) !important;
}
body[data-ui-version="v2"] .ant-select-item-option-selected:not(.ant-select-item-option-disabled) {
background: var(--gn-bg-selected) !important;
color: var(--gn-fg-1) !important;
font-weight: 600 !important;
}
body[data-ui-version="v2"] .ant-dropdown-menu-item-divider {
background: var(--gn-br-1) !important;
margin: 4px 0 !important;
}
/* Right-click menu items get a tighter, sectioned look */
body[data-ui-version="v2"] .ant-dropdown-menu-item-icon {
color: var(--gn-fg-4);
margin-right: 8px !important;
}
body[data-ui-version="v2"] .ant-dropdown-menu-item-danger {
color: var(--gn-danger) !important;
}
body[data-ui-version="v2"] .ant-dropdown-menu-item-danger:hover {
background: rgba(220, 38, 38, 0.08) !important;
}
body[data-ui-version="v2"] .ant-dropdown-menu-submenu-title {
border-radius: 6px !important;
padding: 6px 10px !important;
font-size: 12.5px !important;
}
/* ─── Tables (ant-table, used by some legacy panes) ────── */
body[data-ui-version="v2"] .ant-table {
background: var(--gn-bg-panel) !important;
color: var(--gn-fg-1);
}
body[data-ui-version="v2"] .ant-table-thead > tr > th {
background: var(--gn-bg-panel-2) !important;
color: var(--gn-fg-3) !important;
font-weight: 600 !important;
font-size: 11.5px !important;
border-bottom: 0.5px solid var(--gn-br-2) !important;
padding: 8px 12px !important;
}
body[data-ui-version="v2"] .ant-table-tbody > tr > td {
border-bottom: 0.5px solid var(--gn-br-1) !important;
padding: 6px 12px !important;
font-size: 12px;
}
body[data-ui-version="v2"] .ant-table-tbody > tr:hover > td {
background: var(--gn-bg-hover) !important;
}
body[data-ui-version="v2"] .ant-table-tbody > tr.ant-table-row-selected > td {
background: var(--gn-bg-selected) !important;
}
/* ─── Tags / Badges ────────────────────────────────────── */
body[data-ui-version="v2"] .ant-tag {
font-family: var(--gn-font-sans);
font-size: var(--gn-font-size-xs, 10px) !important;
font-weight: 600;
padding: 1px 6px !important;
border-radius: 4px !important;
line-height: 16px !important;
border: none !important;
letter-spacing: 0;
}
body[data-ui-version="v2"] .ant-tag-success,
body[data-ui-version="v2"] .ant-tag-green {
background: var(--gn-accent-soft) !important;
color: var(--gn-accent-2) !important;
}
body[data-ui-version="v2"] .ant-tag-processing,
body[data-ui-version="v2"] .ant-tag-blue {
background: var(--gn-info-soft) !important;
color: var(--gn-info) !important;
}
body[data-ui-version="v2"] .ant-tag-warning,
body[data-ui-version="v2"] .ant-tag-orange,
body[data-ui-version="v2"] .ant-tag-gold {
background: var(--gn-warn-soft) !important;
color: var(--gn-warn) !important;
}
body[data-ui-version="v2"] .ant-tag-error,
body[data-ui-version="v2"] .ant-tag-red {
background: rgba(220, 38, 38, 0.10) !important;
color: var(--gn-danger) !important;
}
/* ─── Switch ──────────────────────────────────────────── */
body[data-ui-version="v2"] .ant-switch-checked {
background: var(--gn-accent) !important;
}
/* ─── Modal ───────────────────────────────────────────── */
body[data-ui-version="v2"] .ant-modal .ant-modal-content {
background: var(--gn-bg-panel) !important;
border-radius: 14px !important;
box-shadow: var(--gn-shadow-lg) !important;
border: 0.5px solid var(--gn-br-2) !important;
padding: 0 !important;
overflow: hidden;
}
body[data-ui-version="v2"] .ant-modal .ant-modal-header {
background: var(--gn-bg-panel-2) !important;
border-bottom: 0.5px solid var(--gn-br-1) !important;
padding: 12px 18px !important;
margin: 0 !important;
}
body[data-ui-version="v2"] .ant-modal .ant-modal-title {
font-size: 14px !important;
font-weight: 600 !important;
color: var(--gn-fg-1) !important;
}
body[data-ui-version="v2"] .ant-modal .ant-modal-body {
padding: 18px !important;
}
body[data-ui-version="v2"] .ant-modal-confirm .ant-modal-confirm-title {
color: var(--gn-fg-1) !important;
}
body[data-ui-version="v2"] .ant-modal-confirm .ant-modal-confirm-content {
color: var(--gn-fg-2) !important;
}
body[data-ui-version="v2"] .ant-modal .ant-modal-footer {
border-top: 0.5px solid var(--gn-br-1) !important;
padding: 10px 18px !important;
margin: 0 !important;
}
/* ─── Tooltip ─────────────────────────────────────────── */
body[data-ui-version="v2"] .ant-tooltip-inner {
background: var(--gn-bg-panel) !important;
color: var(--gn-fg-1) !important;
border: 0.5px solid var(--gn-br-2) !important;
border-radius: 7px !important;
box-shadow: var(--gn-shadow-md) !important;
font-size: 11.5px !important;
padding: 5px 8px !important;
}
body[data-ui-version="v2"] .ant-tooltip-arrow::before {
background: var(--gn-bg-panel) !important;
}
/* ─── Badge ───────────────────────────────────────────── */
body[data-ui-version="v2"] .ant-badge-status-dot {
width: 7px;
height: 7px;
}
body[data-ui-version="v2"] .ant-badge-status-success {
box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.18);
}
/* ─── Segmented (used in some places like density picker) ─ */
body[data-ui-version="v2"] .ant-segmented {
background: var(--gn-bg-active) !important;
padding: 2px !important;
border-radius: 7px !important;
}
body[data-ui-version="v2"] .ant-segmented .ant-segmented-item {
border-radius: 5px !important;
color: var(--gn-fg-4) !important;
font-weight: 500 !important;
transition: color 0.08s !important;
}
body[data-ui-version="v2"] .ant-segmented .ant-segmented-item-selected,
body[data-ui-version="v2"] .ant-segmented .ant-segmented-thumb {
background: var(--gn-bg-panel) !important;
color: var(--gn-fg-1) !important;
box-shadow: var(--gn-shadow-sm) !important;
}
/* ─── Scrollbars ──────────────────────────────────────── */
body[data-ui-version="v2"] ::-webkit-scrollbar {
width: 10px;
height: 10px;
}
body[data-ui-version="v2"] ::-webkit-scrollbar-track {
background: transparent;
}
body[data-ui-version="v2"] ::-webkit-scrollbar-thumb {
background: var(--gn-br-3);
border: 3px solid transparent;
background-clip: content-box;
border-radius: 10px;
}
body[data-ui-version="v2"] ::-webkit-scrollbar-thumb:hover {
background: var(--gn-fg-5);
border: 3px solid transparent;
background-clip: content-box;
}
/* ─── DataGrid (project's internal class names) ────────── */
body[data-ui-version="v2"] [class*="data-grid"] thead,
body[data-ui-version="v2"] [class*="dataGrid"] thead,
body[data-ui-version="v2"] .gonavi-datagrid thead {
background: var(--gn-bg-panel-2) !important;
}
body[data-ui-version="v2"] [class*="data-grid"] th,
body[data-ui-version="v2"] [class*="dataGrid"] th {
border-bottom: 0.5px solid var(--gn-br-2) !important;
font-weight: 600 !important;
color: var(--gn-fg-2) !important;
font-size: var(--gn-data-table-font-size, var(--gn-font-size-mono, 12px)) !important;
}
/* monospace cells in data grid */
body[data-ui-version="v2"] [class*="data-grid"] td,
body[data-ui-version="v2"] [class*="dataGrid"] td {
font-family: var(--gn-font-mono) !important;
font-size: var(--gn-data-table-font-size, var(--gn-font-size-mono, 12px)) !important;
border-bottom: 0.5px solid var(--gn-br-1) !important;
color: var(--gn-fg-1) !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-fields-view,
body[data-ui-version="v2"] .gn-v2-data-grid-ddl-view,
body[data-ui-version="v2"] .gn-v2-data-grid-er-view {
flex: 1 1 auto;
min-height: 0;
overflow: auto;
background: var(--gn-bg-panel);
}
body[data-ui-version="v2"] .gn-v2-data-grid-fields-view {
display: flex;
flex-direction: column;
}
body[data-ui-version="v2"] .gn-v2-data-grid-fields-head,
body[data-ui-version="v2"] .gn-v2-data-grid-alt-toolbar {
min-height: 42px;
padding: 8px 12px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
border-bottom: 0.5px solid var(--gn-br-1);
background: var(--gn-bg-panel-2);
}
body[data-ui-version="v2"] .gn-v2-data-grid-fields-head > div,
body[data-ui-version="v2"] .gn-v2-data-grid-alt-toolbar > div {
min-width: 0;
display: inline-flex;
align-items: center;
gap: 8px;
}
body[data-ui-version="v2"] .gn-v2-data-grid-fields-head > div:first-child,
body[data-ui-version="v2"] .gn-v2-data-grid-alt-toolbar > div:first-child {
flex-direction: column;
align-items: flex-start;
gap: 1px;
}
body[data-ui-version="v2"] .gn-v2-data-grid-fields-head span,
body[data-ui-version="v2"] .gn-v2-data-grid-alt-toolbar span {
color: var(--gn-fg-5);
font-family: var(--gn-font-sans);
font-size: 10.5px;
font-weight: 650;
}
body[data-ui-version="v2"] .gn-v2-data-grid-fields-head strong,
body[data-ui-version="v2"] .gn-v2-data-grid-alt-toolbar strong {
max-width: 520px;
overflow: hidden;
color: var(--gn-fg-1);
font-family: var(--gn-font-sans);
font-size: 13px;
font-weight: 750;
text-overflow: ellipsis;
white-space: nowrap;
}
body[data-ui-version="v2"] .gn-v2-data-grid-fields-table {
min-width: 920px;
padding: 6px 0;
}
body[data-ui-version="v2"] .gn-v2-data-grid-fields-row {
display: grid;
grid-template-columns: 44px minmax(180px, 1.2fr) minmax(140px, 0.9fr) 72px 76px minmax(100px, 0.7fr) minmax(240px, 1.5fr);
align-items: center;
min-height: 34px;
border-bottom: 0.5px solid var(--gn-br-1);
}
body[data-ui-version="v2"] .gn-v2-data-grid-fields-row.is-head {
position: sticky;
top: 0;
z-index: 1;
min-height: 30px;
background: var(--gn-bg-panel-2);
}
body[data-ui-version="v2"] .gn-v2-data-grid-fields-row > span {
min-width: 0;
padding: 6px 10px;
overflow: hidden;
color: var(--gn-fg-3);
font-size: 12px;
text-overflow: ellipsis;
white-space: nowrap;
}
body[data-ui-version="v2"] .gn-v2-data-grid-fields-row.is-head > span {
color: var(--gn-fg-5);
font-family: var(--gn-font-mono);
font-size: 10.5px;
font-weight: 750;
}
body[data-ui-version="v2"] .gn-v2-data-grid-field-name,
body[data-ui-version="v2"] .gn-v2-data-grid-field-type,
body[data-ui-version="v2"] .gn-v2-data-grid-fields-row > span:nth-child(1),
body[data-ui-version="v2"] .gn-v2-data-grid-fields-row > span:nth-child(4),
body[data-ui-version="v2"] .gn-v2-data-grid-fields-row > span:nth-child(5),
body[data-ui-version="v2"] .gn-v2-data-grid-fields-row > span:nth-child(6) {
font-family: var(--gn-font-mono);
}
body[data-ui-version="v2"] .gn-v2-data-grid-field-name {
color: var(--gn-fg-1) !important;
font-weight: 700;
}
body[data-ui-version="v2"] .gn-v2-data-grid-field-type {
color: var(--gn-info) !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-fields-row em {
display: inline-flex;
align-items: center;
height: 18px;
padding: 0 6px;
border-radius: 4px;
background: var(--gn-warn-soft);
color: var(--gn-warn);
font-family: var(--gn-font-mono);
font-size: 10px;
font-style: normal;
font-weight: 800;
}
body[data-ui-version="v2"] .gn-v2-data-grid-ddl-view {
display: flex;
flex-direction: column;
}
body[data-ui-version="v2"] .gn-v2-data-grid-split-workspace {
flex: 1 1 auto;
min-width: 0;
min-height: 0;
position: relative;
display: grid;
grid-template-columns: minmax(0, 1fr) 8px var(--gn-v2-ddl-sidebar-width, 420px);
background: var(--gn-bg-panel);
}
body[data-ui-version="v2"] .gn-v2-data-grid-split-main {
min-width: 0;
min-height: 0;
display: flex;
flex-direction: column;
overflow: hidden;
}
body[data-ui-version="v2"] .gn-v2-data-grid-ddl-sidebar {
width: var(--gn-v2-ddl-sidebar-width, 420px);
min-width: 320px;
min-height: 0;
display: flex;
flex-direction: column;
background: var(--gn-bg-panel);
overflow: hidden;
}
body[data-ui-version="v2"] .gn-v2-data-grid-ddl-resizer {
position: relative;
z-index: 5;
width: 8px;
min-width: 8px;
cursor: col-resize;
background:
linear-gradient(
90deg,
transparent 0,
transparent 3px,
var(--gn-br-1) 3px,
var(--gn-br-1) 4px,
transparent 4px,
transparent 100%
);
touch-action: none;
}
body[data-ui-version="v2"] .gn-v2-data-grid-ddl-resizer::after {
content: '';
position: absolute;
top: 50%;
left: 50%;
width: 2px;
height: 42px;
border-radius: 2px;
background: var(--gn-br-2);
opacity: 0;
transform: translate(-50%, -50%);
transition: opacity 120ms ease, background 120ms ease;
}
body[data-ui-version="v2"] .gn-v2-data-grid-ddl-resizer:hover::after {
background: var(--gn-accent);
opacity: 1;
}
body[data-ui-version="v2"] .gn-v2-data-grid-ddl-resize-preview {
position: absolute;
top: 0;
bottom: 0;
left: 0;
z-index: 8;
width: 2px;
pointer-events: none;
opacity: 0;
background: var(--gn-accent);
transform: translate3d(0, 0, 0);
will-change: transform;
}
body[data-ui-version="v2"] .gn-v2-data-grid-ddl-view.is-side {
width: 100%;
height: 100%;
border-radius: 0;
overflow: hidden;
}
body[data-ui-version="v2"] .gn-v2-data-grid-ddl-view.is-side .gn-v2-data-grid-alt-toolbar {
min-height: 52px;
align-items: flex-start;
padding: 8px 10px;
}
body[data-ui-version="v2"] .gn-v2-data-grid-ddl-view.is-side .gn-v2-data-grid-alt-toolbar > div:first-child {
flex: 1 1 auto;
}
body[data-ui-version="v2"] .gn-v2-data-grid-ddl-view.is-side .gn-v2-data-grid-alt-toolbar > div:last-child {
justify-content: flex-end;
flex: 0 1 auto;
flex-wrap: wrap;
gap: 6px;
}
body[data-ui-version="v2"] .gn-v2-data-grid-ddl-view.is-side .gn-v2-data-grid-alt-toolbar strong {
max-width: 210px;
}
body[data-ui-version="v2"] .gn-v2-data-grid-ddl-code {
flex: 1 1 auto;
min-height: 0;
overflow: hidden;
padding: 0;
}
body[data-ui-version="v2"] .gn-v2-data-grid-alt-empty {
padding: 28px 16px;
color: var(--gn-fg-5);
font-size: 12.5px;
text-align: center;
}
body[data-ui-version="v2"] .gn-v2-data-grid-er-view {
padding: 34px;
display: grid;
grid-template-columns: minmax(220px, 0.75fr) 88px minmax(240px, 1fr);
align-items: center;
gap: 8px;
}
body[data-ui-version="v2"] .gn-v2-data-grid-er-node {
min-width: 0;
padding: 13px 14px;
border: 0.5px solid var(--gn-br-2);
border-radius: 8px;
background: var(--gn-bg-panel-2);
box-shadow: var(--gn-shadow-sm);
}
body[data-ui-version="v2"] .gn-v2-data-grid-er-node.is-main {
border-color: color-mix(in srgb, var(--gn-accent) 38%, var(--gn-br-2));
background: var(--gn-accent-soft);
}
body[data-ui-version="v2"] .gn-v2-data-grid-er-node span {
display: block;
color: var(--gn-fg-5);
font-family: var(--gn-font-mono);
font-size: 10px;
font-weight: 750;
}
body[data-ui-version="v2"] .gn-v2-data-grid-er-node strong {
display: block;
margin-top: 4px;
overflow: hidden;
color: var(--gn-fg-1);
font-family: var(--gn-font-mono);
font-size: 13px;
font-weight: 750;
text-overflow: ellipsis;
white-space: nowrap;
}
body[data-ui-version="v2"] .gn-v2-data-grid-er-node small {
display: block;
margin-top: 6px;
color: var(--gn-fg-4);
font-size: 11px;
}
body[data-ui-version="v2"] .gn-v2-data-grid-er-lines {
display: flex;
flex-direction: column;
gap: 22px;
}
body[data-ui-version="v2"] .gn-v2-data-grid-er-lines span {
height: 1px;
background: linear-gradient(90deg, var(--gn-br-3), var(--gn-info));
}
body[data-ui-version="v2"] .gn-v2-data-grid-er-side {
display: flex;
flex-direction: column;
gap: 10px;
}
/* ─── AI Chat Panel hooks (project's class names) ──────── */
body[data-ui-version="v2"] .ai-chat-panel {
background: var(--gn-bg-panel) !important;
border-left: 0.5px solid var(--gn-br-1) !important;
}
body[data-ui-version="v2"] .ai-chat-panel input,
body[data-ui-version="v2"] .ai-chat-panel textarea {
background: var(--gn-bg-input) !important;
border: 0.5px solid var(--gn-br-2) !important;
border-radius: 9px !important;
font-family: var(--gn-font-sans) !important;
}
/* AI accent button (send / 生成 SQL) */
body[data-ui-version="v2"] .ant-btn.ai-send,
body[data-ui-version="v2"] [class*="AISend"] {
background: linear-gradient(135deg, #0284c7 0%, #0369a1 100%) !important;
border-color: #0369a1 !important;
color: #fff !important;
}
/* ─── Code / SQL editor surfaces ───────────────────────── */
body[data-ui-version="v2"] .monaco-editor,
body[data-ui-version="v2"] .monaco-editor-background,
body[data-ui-version="v2"] .monaco-editor .margin {
background-color: var(--gn-bg-panel) !important;
}
body[data-ui-version="v2"] .monaco-editor,
body[data-ui-version="v2"] .monaco-editor .margin,
body[data-ui-version="v2"] .monaco-editor .view-lines,
body[data-ui-version="v2"] .monaco-editor .view-line,
body[data-ui-version="v2"] .monaco-editor textarea,
body[data-ui-version="v2"] .monaco-editor .inputarea {
font-family: var(--gn-font-mono) !important;
}
/* ─── Progress ────────────────────────────────────────── */
body[data-ui-version="v2"] .ant-progress-bg {
background: var(--gn-accent) !important;
}
body[data-ui-version="v2"] .ant-progress-success-bg {
background: var(--gn-accent) !important;
}
/* ─── Divider ─────────────────────────────────────────── */
body[data-ui-version="v2"] .ant-divider {
border-color: var(--gn-br-1) !important;
}
/* ──────────────────────────────────────────────────────────
Small additions — visual polish unique to v2
────────────────────────────────────────────────────────── */
/* Brand-tinted active row indicator in sidebar */
body[data-ui-version="v2"] .gn-v2-object-explorer .ant-tree .ant-tree-node-content-wrapper.ant-tree-node-selected::before {
content: '';
position: absolute;
left: -6px;
top: 4px;
bottom: 4px;
width: 2px;
background: var(--gn-accent);
border-radius: 2px;
}
body[data-ui-version="v2"] .ant-tree .ant-tree-node-content-wrapper {
position: relative;
}
/* Number-tabular for monospace stats / counts */
body[data-ui-version="v2"] .ant-statistic-content,
body[data-ui-version="v2"] [class*="data-count"],
body[data-ui-version="v2"] [class*="row-count"] {
font-variant-numeric: tabular-nums;
font-family: var(--gn-font-mono) !important;
}
/* Subtle inset highlight on the macOS-style traffic-light area + title */
body[data-ui-version="v2"][data-theme="light"] .ant-layout-header {
box-shadow: inset 0 -0.5px 0 rgba(15, 23, 42, 0.05) !important;
}
body[data-ui-version="v2"][data-theme="dark"] .ant-layout-header {
box-shadow: inset 0 -0.5px 0 rgba(255, 255, 255, 0.05) !important;
}
/* ─── Version indicator for v2 (purely cosmetic, added in settings) ─ */
body[data-ui-version="v2"] .gonavi-v2-version-ribbon {
display: inline-flex;
align-items: center;
gap: 4px;
font-size: 10px;
font-weight: 700;
letter-spacing: 0;
padding: 1px 5px;
background: var(--gn-info-soft);
color: var(--gn-info);
border-radius: 4px;
}
/* ══════════════════════════════════════════════════════════
EXTENDED COVERAGE — forms, deep modals, Redis viewer, etc.
══════════════════════════════════════════════════════════ */
/* ─── Form (新建连接、AI 设置 等) ──────────────────────── */
body[data-ui-version="v2"] .ant-form-item-label > label {
color: var(--gn-fg-3) !important;
font-size: 12.5px !important;
font-weight: 500 !important;
height: 26px !important;
}
body[data-ui-version="v2"] .ant-form-item-label > label.ant-form-item-required::before {
color: var(--gn-danger) !important;
}
body[data-ui-version="v2"] .ant-form-item {
margin-bottom: 14px !important;
}
body[data-ui-version="v2"] .ant-form-item-extra {
font-size: 11px !important;
color: var(--gn-fg-5) !important;
padding-top: 4px !important;
}
body[data-ui-version="v2"] .ant-form-item-explain-error {
font-size: 11.5px !important;
color: var(--gn-danger) !important;
}
/* ─── Radio ───────────────────────────────────────────── */
body[data-ui-version="v2"] .ant-radio-wrapper {
color: var(--gn-fg-2) !important;
font-size: 12.5px !important;
}
body[data-ui-version="v2"] .ant-radio-inner {
border-color: var(--gn-br-3) !important;
background: var(--gn-bg-input) !important;
}
body[data-ui-version="v2"] .ant-radio-checked .ant-radio-inner {
border-color: var(--gn-accent) !important;
background: var(--gn-accent) !important;
}
body[data-ui-version="v2"] .ant-radio-checked .ant-radio-inner::after {
background: #fff !important;
}
body[data-ui-version="v2"] .ant-radio-button-wrapper {
background: var(--gn-bg-panel) !important;
border-color: var(--gn-br-2) !important;
color: var(--gn-fg-2) !important;
height: 28px !important;
line-height: 26px !important;
font-size: 12.5px !important;
}
body[data-ui-version="v2"] .ant-radio-button-wrapper:hover {
color: var(--gn-fg-1) !important;
}
body[data-ui-version="v2"] .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled) {
background: var(--gn-accent-soft) !important;
border-color: var(--gn-accent) !important;
color: var(--gn-accent-2) !important;
font-weight: 600 !important;
}
/* ─── Checkbox ────────────────────────────────────────── */
body[data-ui-version="v2"] .ant-checkbox-inner {
border-color: var(--gn-br-3) !important;
background: var(--gn-bg-input) !important;
border-radius: 4px !important;
}
body[data-ui-version="v2"] .ant-checkbox-checked .ant-checkbox-inner {
background: var(--gn-accent) !important;
border-color: var(--gn-accent-2) !important;
}
body[data-ui-version="v2"] .ant-checkbox-wrapper {
color: var(--gn-fg-2) !important;
font-size: 12.5px !important;
}
body[data-ui-version="v2"] .ant-checkbox-indeterminate .ant-checkbox-inner::after {
background-color: var(--gn-accent) !important;
}
/* ─── Slider ──────────────────────────────────────────── */
body[data-ui-version="v2"] .ant-slider-rail {
background: var(--gn-bg-active) !important;
}
body[data-ui-version="v2"] .ant-slider-track {
background: var(--gn-accent) !important;
}
body[data-ui-version="v2"] .ant-slider-handle::after {
box-shadow: 0 0 0 2px var(--gn-accent) !important;
}
body[data-ui-version="v2"] .ant-slider:hover .ant-slider-track {
background: var(--gn-accent-2) !important;
}
/* ─── Steps (Modal multi-step flows) ──────────────────── */
body[data-ui-version="v2"] .ant-steps-item-process .ant-steps-item-icon {
background: var(--gn-accent) !important;
border-color: var(--gn-accent-2) !important;
}
body[data-ui-version="v2"] .ant-steps-item-finish .ant-steps-item-icon {
background: var(--gn-accent-soft) !important;
border-color: var(--gn-accent) !important;
}
body[data-ui-version="v2"] .ant-steps-item-finish .ant-steps-item-icon > .ant-steps-icon {
color: var(--gn-accent-2) !important;
}
body[data-ui-version="v2"] .ant-steps-item-finish > .ant-steps-item-container > .ant-steps-item-tail::after {
background-color: var(--gn-accent) !important;
}
body[data-ui-version="v2"] .ant-steps-item-title {
font-size: 13px !important;
font-weight: 600 !important;
color: var(--gn-fg-1) !important;
}
/* ─── Drawer ──────────────────────────────────────────── */
body[data-ui-version="v2"] .ant-drawer-content {
background: var(--gn-bg-panel) !important;
}
body[data-ui-version="v2"] .ant-drawer-header {
background: var(--gn-bg-panel-2) !important;
border-bottom: 0.5px solid var(--gn-br-1) !important;
padding: 12px 18px !important;
}
body[data-ui-version="v2"] .ant-drawer-title {
font-size: 14px !important;
font-weight: 600 !important;
color: var(--gn-fg-1) !important;
}
body[data-ui-version="v2"] .ant-drawer-footer {
border-top: 0.5px solid var(--gn-br-1) !important;
background: var(--gn-bg-panel-2) !important;
padding: 10px 18px !important;
}
/* ─── Collapse ────────────────────────────────────────── */
body[data-ui-version="v2"] .ant-collapse {
background: transparent !important;
border: 0.5px solid var(--gn-br-1) !important;
border-radius: 9px !important;
overflow: hidden;
}
body[data-ui-version="v2"] .ant-collapse-item {
border-bottom: 0.5px solid var(--gn-br-1) !important;
}
body[data-ui-version="v2"] .ant-collapse-item:last-child {
border-bottom: 0 !important;
}
body[data-ui-version="v2"] .ant-collapse-header {
background: var(--gn-bg-panel-2) !important;
color: var(--gn-fg-1) !important;
font-weight: 600 !important;
padding: 10px 14px !important;
}
body[data-ui-version="v2"] .ant-collapse-content {
background: var(--gn-bg-panel) !important;
border-top: 0.5px solid var(--gn-br-1) !important;
}
body[data-ui-version="v2"] .ant-collapse-content-box {
padding: 12px 14px !important;
}
/* ─── Card ────────────────────────────────────────────── */
body[data-ui-version="v2"] .ant-card {
background: var(--gn-bg-panel) !important;
border: 0.5px solid var(--gn-br-1) !important;
border-radius: 10px !important;
box-shadow: var(--gn-shadow-card) !important;
}
body[data-ui-version="v2"] .ant-card-head {
border-bottom: 0.5px solid var(--gn-br-1) !important;
min-height: 38px !important;
padding: 0 14px !important;
}
body[data-ui-version="v2"] .ant-card-head-title {
font-size: 13px !important;
font-weight: 600 !important;
color: var(--gn-fg-1) !important;
padding: 10px 0 !important;
}
body[data-ui-version="v2"] .ant-card-body {
padding: 14px !important;
}
/* ─── Statistic / number readouts ─────────────────────── */
body[data-ui-version="v2"] .ant-statistic-title {
font-size: 11px !important;
color: var(--gn-fg-4) !important;
letter-spacing: 0;
text-transform: uppercase;
font-weight: 600 !important;
}
body[data-ui-version="v2"] .ant-statistic-content {
font-family: var(--gn-font-mono) !important;
font-variant-numeric: tabular-nums;
color: var(--gn-fg-1) !important;
}
/* ─── Empty ───────────────────────────────────────────── */
body[data-ui-version="v2"] .ant-empty-description {
color: var(--gn-fg-4) !important;
font-size: 12.5px !important;
}
/* ─── Spin ────────────────────────────────────────────── */
body[data-ui-version="v2"] .ant-spin-dot-item {
background: var(--gn-accent) !important;
}
/* ─── Notification / Message ──────────────────────────── */
body[data-ui-version="v2"] .ant-message-notice-content,
body[data-ui-version="v2"] .ant-notification-notice {
background: var(--gn-bg-panel) !important;
border: 0.5px solid var(--gn-br-2) !important;
border-radius: 10px !important;
box-shadow: var(--gn-shadow-lg) !important;
color: var(--gn-fg-1) !important;
}
/* ─── Pagination ──────────────────────────────────────── */
body[data-ui-version="v2"] .ant-pagination-item {
border-radius: 5px !important;
border-color: var(--gn-br-2) !important;
background: var(--gn-bg-panel) !important;
font-family: var(--gn-font-mono) !important;
}
body[data-ui-version="v2"] .ant-pagination-item-active {
border-color: var(--gn-accent) !important;
background: var(--gn-accent-soft) !important;
}
body[data-ui-version="v2"] .ant-pagination-item-active a {
color: var(--gn-accent-2) !important;
}
body[data-ui-version="v2"] .ant-pagination-prev .ant-pagination-item-link,
body[data-ui-version="v2"] .ant-pagination-next .ant-pagination-item-link {
border-radius: 5px !important;
border-color: var(--gn-br-2) !important;
background: var(--gn-bg-panel) !important;
color: var(--gn-fg-3) !important;
}
/* ─── Alert / banners (security update etc.) ──────────── */
body[data-ui-version="v2"] .ant-alert {
border-radius: 9px !important;
border-width: 0.5px !important;
padding: 10px 12px !important;
}
body[data-ui-version="v2"] .ant-alert-info {
background: var(--gn-info-soft) !important;
border-color: rgba(56, 189, 248, 0.3) !important;
}
body[data-ui-version="v2"] .ant-alert-success {
background: var(--gn-accent-soft) !important;
border-color: rgba(34, 197, 94, 0.3) !important;
}
body[data-ui-version="v2"] .ant-alert-warning {
background: var(--gn-warn-soft) !important;
border-color: rgba(245, 158, 11, 0.3) !important;
}
/* ─── Tabs inside Modal/Drawer (smaller, no extra chrome) ─ */
body[data-ui-version="v2"] .ant-modal .ant-tabs > .ant-tabs-nav,
body[data-ui-version="v2"] .ant-drawer .ant-tabs > .ant-tabs-nav {
background: transparent !important;
margin-bottom: 12px !important;
}
body[data-ui-version="v2"] .ant-modal .ant-tabs-tab,
body[data-ui-version="v2"] .ant-drawer .ant-tabs-tab {
background: transparent !important;
border: none !important;
padding: 6px 12px !important;
}
body[data-ui-version="v2"] .ant-modal .ant-tabs-tab-active::after,
body[data-ui-version="v2"] .ant-drawer .ant-tabs-tab-active::after {
display: none !important;
}
body[data-ui-version="v2"] .ant-modal .ant-tabs-ink-bar,
body[data-ui-version="v2"] .ant-drawer .ant-tabs-ink-bar {
display: block !important;
background: var(--gn-accent) !important;
height: 2px !important;
}
/* ─── Tree-select / Cascader ──────────────────────────── */
body[data-ui-version="v2"] .ant-tree-select-dropdown,
body[data-ui-version="v2"] .ant-cascader-dropdown {
background: var(--gn-bg-panel) !important;
border: 0.5px solid var(--gn-br-2) !important;
border-radius: 10px !important;
box-shadow: var(--gn-shadow-lg) !important;
}
/* ─── Popover ─────────────────────────────────────────── */
body[data-ui-version="v2"] .ant-popover-inner {
background: var(--gn-bg-panel) !important;
border: 0.5px solid var(--gn-br-2) !important;
border-radius: 10px !important;
box-shadow: var(--gn-shadow-lg) !important;
}
body[data-ui-version="v2"] .ant-popover-title {
border-bottom: 0.5px solid var(--gn-br-1) !important;
font-size: 12.5px !important;
font-weight: 600 !important;
}
/* ─── Connection modal special touches ────────────────── */
/* The form preset cards usually use bordered divs, give them our card style */
body[data-ui-version="v2"] [class*="preset-card"],
body[data-ui-version="v2"] [class*="connection-preset"] {
background: var(--gn-bg-panel) !important;
border: 0.5px solid var(--gn-br-2) !important;
border-radius: 10px !important;
box-shadow: var(--gn-shadow-card) !important;
transition: border-color 0.08s, box-shadow 0.08s !important;
}
body[data-ui-version="v2"] [class*="preset-card"]:hover {
border-color: var(--gn-accent) !important;
box-shadow: 0 0 0 1px var(--gn-accent), var(--gn-shadow-md) !important;
}
/* ─── Settings center utility panels ──────────────────── */
/* The settings modal uses inline-styled panels — we can't override those,
but anything wrapped in `.ant-modal-body > div` benefits from these resets. */
body[data-ui-version="v2"] .ant-modal-body input[type="text"],
body[data-ui-version="v2"] .ant-modal-body input[type="number"] {
background: var(--gn-bg-input) !important;
border-color: var(--gn-br-2) !important;
border-radius: 7px !important;
}
/* ─── Redis viewer / Driver manager / overlay workbench ─── */
/* These render their cards via inline styles read from workbenchTheme
objects (see overlayWorkbenchTheme.ts, redisViewerWorkbenchTheme.ts,
driverManagerWorkbenchTheme.ts). Those files now branch on uiVersion
and supply v2 colors directly. The hooks below tighten edges that
inline styles can't reach. */
body[data-ui-version="v2"] .redis-viewer-workbench {
background: var(--gn-bg-app) !important;
/* the inner cards still read workbenchTheme — those return v2 palette
once the workbench theme files honor uiVersion */
}
body[data-ui-version="v2"] .redis-tree-expander-button:hover {
background: var(--gn-bg-hover) !important;
}
/* class-based selectors for Tree inside Redis viewer — tighten paddings */
body[data-ui-version="v2"] .redis-viewer-workbench .ant-tree-node-content-wrapper {
padding: 2px 8px !important;
}
/* ─── Logo / brand chip (a generic helper for v2 places) ─ */
body[data-ui-version="v2"] .gonavi-v2-brand-chip {
width: 24px; height: 24px;
border-radius: 7px;
background: linear-gradient(135deg, var(--gn-accent) 0%, var(--gn-accent-2) 100%);
color: #fff;
display: inline-flex;
align-items: center;
justify-content: center;
font-family: var(--gn-font-mono);
font-weight: 800;
font-size: 10px;
letter-spacing: 0;
box-shadow: inset 0 0.5px 0 rgba(255,255,255,0.3), 0 1px 2px rgba(15,23,42,0.18);
}
/* ─── Hide / soften legacy chrome that clashes with v2 ─── */
/* Antd's default Tabs add-icon area can look heavy — soften it */
body[data-ui-version="v2"] .ant-tabs-nav-add {
border-radius: 6px !important;
width: 28px !important;
height: 28px !important;
}
/* ─── Final: minor pixel hygiene ──────────────────────── */
body[data-ui-version="v2"] .ant-divider-horizontal {
margin: 12px 0 !important;
}
body[data-ui-version="v2"] .ant-typography {
color: var(--gn-fg-1);
}
body[data-ui-version="v2"] h1.ant-typography,
body[data-ui-version="v2"] h2.ant-typography,
body[data-ui-version="v2"] h3.ant-typography,
body[data-ui-version="v2"] h4.ant-typography {
letter-spacing: 0;
}
/* ─── V2 structural shell: redesigned sidebar / workbench ─ */
body[data-ui-version="v2"] .gn-v2-sidebar-shell {
background: var(--gn-bg-panel-2);
}
body[data-ui-version="v2"] .gn-v2-app-sider {
min-width: 232px !important;
max-width: 420px !important;
}
body[data-ui-version="v2"] .gn-v2-sidebar-redesign {
width: 100%;
background: var(--gn-bg-panel-2);
border-right: 0.5px solid var(--gn-br-1);
overflow: hidden;
}
body[data-ui-version="v2"] .gn-v2-connection-rail {
width: calc(38px * var(--gn-ui-scale, 1));
flex: 0 0 calc(38px * var(--gn-ui-scale, 1));
display: flex;
flex-direction: column;
align-items: center;
justify-content: flex-start;
gap: calc(4px * var(--gn-ui-scale, 1));
padding: calc(8px * var(--gn-ui-scale, 1)) 0;
border-right: 0.5px solid var(--gn-br-1);
background: transparent;
}
body[data-ui-version="v2"] .gn-v2-rail-items {
flex: 1 1 auto;
min-height: 0;
display: flex;
flex-direction: column;
align-items: center;
gap: calc(4px * var(--gn-ui-scale, 1));
width: 100%;
box-sizing: border-box;
padding-top: calc(4px * var(--gn-ui-scale, 1));
overflow-x: hidden;
overflow-y: auto;
scrollbar-width: thin;
scrollbar-color: color-mix(in srgb, var(--gn-accent) 45%, transparent) transparent;
}
body[data-ui-version="v2"] .gn-v2-rail-items::-webkit-scrollbar {
width: 5px;
}
body[data-ui-version="v2"] .gn-v2-rail-items::-webkit-scrollbar-thumb {
border-radius: 999px;
background: color-mix(in srgb, var(--gn-accent) 38%, transparent);
}
body[data-ui-version="v2"] .gn-v2-rail-group {
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
gap: calc(3px * var(--gn-ui-scale, 1));
}
body[data-ui-version="v2"] .gn-v2-rail-group + .gn-v2-rail-group {
padding-top: calc(5px * var(--gn-ui-scale, 1));
border-top: 0.5px solid var(--gn-br-1);
}
body[data-ui-version="v2"] .gn-v2-rail-group-header {
position: relative;
width: 100%;
min-height: calc(24px * var(--gn-ui-scale, 1));
overflow: visible;
border: none;
border-radius: 0;
display: flex;
align-items: center;
justify-content: flex-start;
gap: 4px;
padding: 0 4px 0 6px;
background: transparent;
color: var(--gn-fg-5);
box-shadow: none;
}
body[data-ui-version="v2"] .gn-v2-rail-group-header:hover {
background: transparent;
color: var(--gn-fg-3);
}
body[data-ui-version="v2"] .gn-v2-rail-group-chevron {
position: static;
display: inline-flex;
color: var(--gn-fg-5);
font-size: 9px;
line-height: 1;
transform: rotate(0deg);
transition: transform 120ms ease;
}
body[data-ui-version="v2"] .gn-v2-rail-group.is-collapsed .gn-v2-rail-group-chevron {
transform: rotate(-90deg);
}
body[data-ui-version="v2"] .gn-v2-rail-group-title {
min-width: 0;
color: var(--gn-fg-4);
font-size: 12px;
font-weight: 700;
line-height: 1;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
body[data-ui-version="v2"] .gn-v2-rail-group-count {
position: absolute;
top: -1px;
right: -1px;
min-width: 16px;
height: 16px;
border-radius: 999px;
display: inline-flex;
align-items: center;
justify-content: center;
padding: 0 4px;
border: 2px solid var(--gn-bg-panel-2);
background: var(--gn-accent);
color: #fff;
font-family: var(--gn-font-mono);
font-size: 9px;
font-weight: 800;
line-height: 1;
}
body[data-ui-version="v2"] .gn-v2-rail-group-items {
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
gap: calc(4px * var(--gn-ui-scale, 1));
}
body[data-ui-version="v2"] .gn-v2-rail-primary-actions,
body[data-ui-version="v2"] .gn-v2-rail-secondary-actions {
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
gap: calc(6px * var(--gn-ui-scale, 1));
}
body[data-ui-version="v2"] .gn-v2-rail-primary-actions {
padding-top: calc(4px * var(--gn-ui-scale, 1));
}
body[data-ui-version="v2"] .gn-v2-rail-secondary-actions {
margin-top: auto;
padding-bottom: calc(4px * var(--gn-ui-scale, 1));
}
body[data-ui-version="v2"] .gn-v2-rail-action-group,
body[data-ui-version="v2"] .gn-v2-rail-system-actions {
display: flex;
flex-direction: column;
align-items: center;
gap: calc(4px * var(--gn-ui-scale, 1));
}
body[data-ui-version="v2"] .gn-v2-rail-action-group {
padding-bottom: calc(6px * var(--gn-ui-scale, 1));
border-bottom: 0.5px solid var(--gn-br-1);
}
body[data-ui-version="v2"] .gn-v2-rail-action-wrap {
display: inline-flex;
}
body[data-ui-version="v2"] .gn-v2-rail-action {
color: var(--gn-fg-3);
}
body[data-ui-version="v2"] .gn-v2-rail-action:disabled {
opacity: 0.42;
color: var(--gn-fg-5);
cursor: not-allowed;
}
body[data-ui-version="v2"] .gn-v2-rail-item,
body[data-ui-version="v2"] .gn-v2-rail-tool {
position: relative;
width: calc(36px * var(--gn-ui-scale, 1));
height: calc(38px * var(--gn-ui-scale, 1));
border-radius: calc(9px * var(--gn-ui-scale, 1));
border: none;
background: transparent;
color: var(--gn-fg-4);
font-size: var(--gn-font-size-sm, 12px);
display: flex;
align-items: center;
justify-content: center;
gap: 0;
padding: 0;
}
body[data-ui-version="v2"] .gn-v2-rail-tool {
width: calc(24px * var(--gn-ui-scale, 1));
height: calc(32px * var(--gn-ui-scale, 1));
border-radius: calc(8px * var(--gn-ui-scale, 1));
justify-content: center;
padding: 0;
}
body[data-ui-version="v2"] .gn-v2-rail-item:hover,
body[data-ui-version="v2"] .gn-v2-rail-tool:hover {
background: var(--gn-bg-hover);
}
body[data-ui-version="v2"] .gn-v2-rail-item.is-active {
background: var(--gn-bg-active);
box-shadow: inset 0 0 0 0.5px var(--gn-br-1);
}
body[data-ui-version="v2"] .gn-v2-rail-active-bar {
display: none;
position: absolute;
left: -8px;
top: 7px;
bottom: 7px;
width: 3px;
border-radius: 3px;
background: var(--gn-accent);
}
body[data-ui-version="v2"] .gn-v2-rail-item.is-active .gn-v2-rail-active-bar {
display: block;
}
body[data-ui-version="v2"] .gn-v2-rail-icon {
display: flex;
width: 24px;
height: 24px;
align-items: center;
justify-content: center;
}
body[data-ui-version="v2"] .gn-v2-rail-badge {
width: 22px;
height: 22px;
border-radius: 6px;
display: inline-flex;
align-items: center;
justify-content: center;
color: #fff;
font-family: var(--gn-font-mono);
font-size: 9.5px;
font-weight: 800;
line-height: 1;
box-shadow: inset 0 0.5px 0 rgba(255,255,255,0.3), 0 0.5px 1px rgba(0,0,0,0.2);
letter-spacing: 0;
}
body[data-ui-version="v2"] .gn-v2-rail-badge-wrap {
position: relative;
width: 22px;
height: 22px;
flex: 0 0 22px;
}
body[data-ui-version="v2"] .gn-v2-rail-fallback {
display: none;
}
body[data-ui-version="v2"] .gn-v2-rail-status {
position: absolute;
right: -2px;
bottom: -2px;
width: 8px;
height: 8px;
border-radius: 50%;
border: 1.5px solid var(--gn-bg-panel);
background: var(--gn-fg-5);
}
body[data-ui-version="v2"] .gn-v2-rail-status.is-live {
background: #22c55e;
}
body[data-ui-version="v2"] .gn-v2-rail-status.is-error {
background: var(--gn-danger);
}
body[data-ui-version="v2"] .gn-v2-rail-create-button {
margin-top: 4px;
width: calc(40px * var(--gn-ui-scale, 1));
height: calc(40px * var(--gn-ui-scale, 1));
border: 1px dashed var(--gn-br-2);
border-radius: calc(14px * var(--gn-ui-scale, 1));
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 6px;
padding: 0;
color: var(--gn-fg-5);
background: transparent;
}
body[data-ui-version="v2"] .gn-v2-rail-create-button:hover {
background: color-mix(in srgb, var(--gn-bg-hover) 54%, transparent);
}
body[data-ui-version="v2"] .gn-v2-rail-create-icon {
width: 24px;
height: 24px;
border-radius: 8px;
display: inline-flex;
align-items: center;
justify-content: center;
background: color-mix(in srgb, var(--gn-bg-panel) 72%, var(--gn-accent) 28%);
color: var(--gn-accent);
box-shadow: inset 0 0 0 0.5px color-mix(in srgb, var(--gn-accent) 28%, transparent);
}
body[data-ui-version="v2"] .gn-v2-rail-create-label {
color: var(--gn-fg-5);
font-size: 10px;
line-height: 1;
}
body[data-ui-version="v2"] .gn-v2-object-explorer {
min-width: 0;
flex: 1 1 calc(100% - 38px);
background: var(--gn-bg-panel-2);
overflow: hidden;
}
body[data-ui-version="v2"] .gn-v2-active-connection-header {
padding: 10px 10px 8px 12px;
min-height: 52px;
border-bottom: 0.5px solid var(--gn-br-1);
display: flex;
align-items: center;
gap: 8px;
}
body[data-ui-version="v2"] .gn-v2-active-connection-trigger {
min-width: 0;
flex: 1 1 auto;
height: 34px;
display: flex;
align-items: center;
gap: 8px;
padding: 0 9px;
border: 0;
border-radius: 0;
background: transparent;
color: inherit;
text-align: left;
}
body[data-ui-version="v2"] .gn-v2-live-dot {
width: 7px;
height: 7px;
border-radius: 50%;
flex-shrink: 0;
background: var(--gn-fg-5);
}
body[data-ui-version="v2"] .gn-v2-live-dot.is-live {
background: #22c55e;
box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.18);
}
body[data-ui-version="v2"] .gn-v2-live-dot.is-error {
background: var(--gn-danger);
}
body[data-ui-version="v2"] .gn-v2-active-connection-copy {
min-width: 0;
flex: 1 1 auto;
}
body[data-ui-version="v2"] .gn-v2-active-connection-copy strong,
body[data-ui-version="v2"] .gn-v2-active-connection-copy span {
display: block;
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-family: var(--gn-font-sans);
letter-spacing: 0;
}
body[data-ui-version="v2"] .gn-v2-active-connection-copy strong {
color: var(--gn-fg-1);
font-size: 13px;
font-weight: 400;
line-height: 1.2;
}
body[data-ui-version="v2"] .gn-v2-active-connection-copy span {
margin-top: 2px;
color: var(--gn-fg-4);
font-size: 11px;
font-weight: 400;
line-height: 1.2;
}
body[data-ui-version="v2"] .gn-v2-active-connection-actions {
display: inline-flex;
align-items: center;
gap: 2px;
flex: 0 0 auto;
}
body[data-ui-version="v2"] .gn-v2-explorer-search {
padding: 10px 10px 6px !important;
border-bottom: none !important;
}
body[data-ui-version="v2"] .gn-v2-explorer-command-row,
body[data-ui-version="v2"] .gn-v2-explorer-legacy-filter-row {
display: flex;
align-items: center;
gap: 6px;
min-width: 0;
}
body[data-ui-version="v2"] .gn-v2-explorer-legacy-filter-row .ant-input-affix-wrapper {
flex: 1 1 auto;
min-width: 0;
}
body[data-ui-version="v2"] .gn-v2-explorer-command-trigger {
flex: 1 1 auto;
min-width: 0;
height: 30px;
display: flex;
align-items: center;
gap: 8px;
border: 0.5px solid var(--gn-br-2);
border-radius: 7px;
padding: 0 8px;
background: var(--gn-bg-input);
color: var(--gn-fg-4);
cursor: text;
font-size: 12px;
font-weight: 500;
text-align: left;
}
body[data-ui-version="v2"] .gn-v2-explorer-command-trigger:hover {
border-color: var(--gn-accent);
background: var(--gn-bg-hover);
color: var(--gn-fg-2);
}
body[data-ui-version="v2"] .gn-v2-explorer-command-trigger > span:nth-child(2) {
flex: 1 1 auto;
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
body[data-ui-version="v2"] .gn-v2-explorer-filter-action {
width: 30px;
height: 30px;
flex: 0 0 30px;
display: inline-flex;
align-items: center;
justify-content: center;
border: 0.5px solid var(--gn-br-2);
border-radius: 7px;
background: var(--gn-bg-input);
color: var(--gn-fg-4);
cursor: pointer;
}
body[data-ui-version="v2"] .gn-v2-explorer-filter-action:hover:not(:disabled) {
border-color: var(--gn-accent);
background: var(--gn-bg-hover);
color: var(--gn-fg-2);
}
body[data-ui-version="v2"] .gn-v2-explorer-filter-action:disabled {
opacity: 0.42;
cursor: not-allowed;
}
body[data-ui-version="v2"] .gn-v2-command-backdrop {
position: fixed;
inset: 0;
z-index: 3000;
display: flex;
align-items: flex-start;
justify-content: center;
padding: 10vh 16px 24px;
background: rgba(15, 23, 42, 0.24);
}
body[data-ui-version="v2"] .gn-v2-command-palette {
width: min(720px, calc(100vw - 32px));
max-height: min(760px, calc(100vh - 48px));
display: flex;
flex-direction: column;
overflow: hidden;
border: 0.5px solid var(--gn-br-2);
border-radius: 14px;
background: var(--gn-bg-panel);
box-shadow: 0 24px 80px rgba(15, 23, 42, 0.24);
}
body[data-ui-version="v2"] .gn-v2-command-searchbar {
height: 68px;
flex: 0 0 68px;
display: flex;
align-items: center;
gap: 14px;
padding: 0 22px;
border-bottom: 0.5px solid var(--gn-br-1);
color: var(--gn-fg-4);
}
body[data-ui-version="v2"] .gn-v2-command-searchbar .ant-input {
flex: 1 1 auto;
height: 54px;
min-width: 0;
padding: 0 !important;
border: 0 !important;
background: transparent !important;
box-shadow: none !important;
color: var(--gn-fg-1) !important;
font-size: 19px;
font-weight: 500;
}
body[data-ui-version="v2"] .gn-v2-command-searchbar .ant-input::placeholder {
color: var(--gn-fg-5);
}
body[data-ui-version="v2"] .gn-v2-command-searchbar > .anticon {
font-size: 18px;
color: var(--gn-fg-4);
}
body[data-ui-version="v2"] .gn-v2-command-filter-switch {
height: 30px;
flex: 0 0 auto;
display: inline-flex;
align-items: center;
justify-content: center;
}
body[data-ui-version="v2"] .gn-v2-command-searchbar .ant-switch {
flex: 0 0 auto;
}
body[data-ui-version="v2"] .gn-v2-command-searchbar .ant-btn {
width: 30px !important;
height: 30px !important;
flex: 0 0 30px;
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
border-radius: 8px !important;
color: var(--gn-fg-4) !important;
}
body[data-ui-version="v2"] .gn-v2-command-searchbar .ant-btn:hover:not(:disabled) {
background: var(--gn-bg-hover) !important;
color: var(--gn-fg-2) !important;
}
body[data-ui-version="v2"] .gn-v2-command-searchbar .ant-btn:disabled {
color: var(--gn-fg-5) !important;
}
body[data-ui-version="v2"] .gn-v2-command-searchbar > kbd,
body[data-ui-version="v2"] .gn-v2-command-footer kbd,
body[data-ui-version="v2"] .gn-v2-command-row kbd {
min-width: 28px;
height: 24px;
display: inline-flex;
align-items: center;
justify-content: center;
border: 0.5px solid var(--gn-br-2);
border-radius: 6px;
background: var(--gn-bg-panel-2);
color: var(--gn-fg-3);
font-family: var(--gn-font-mono);
font-size: 12px;
font-weight: 800;
}
body[data-ui-version="v2"] .gn-v2-command-list {
flex: 1 1 auto;
min-height: 0;
overflow-y: auto;
padding: 16px 0 14px;
}
body[data-ui-version="v2"] .gn-v2-command-section {
margin-bottom: 16px;
}
body[data-ui-version="v2"] .gn-v2-command-section-title {
padding: 0 22px 8px;
color: var(--gn-fg-4);
font-family: var(--gn-font-mono);
font-size: 12px;
font-weight: 850;
letter-spacing: 0;
text-transform: uppercase;
}
body[data-ui-version="v2"] .gn-v2-command-row {
width: 100%;
min-height: 48px;
display: flex;
align-items: center;
gap: 14px;
border: 0;
padding: 7px 22px;
background: transparent;
color: var(--gn-fg-2);
cursor: pointer;
text-align: left;
}
body[data-ui-version="v2"] .gn-v2-command-row:hover,
body[data-ui-version="v2"] .gn-v2-command-row.is-active {
background: var(--gn-bg-hover);
}
body[data-ui-version="v2"] .gn-v2-command-row-icon {
width: 22px;
flex: 0 0 22px;
display: inline-flex;
align-items: center;
justify-content: center;
color: var(--gn-fg-4);
font-size: 15px;
}
body[data-ui-version="v2"] .gn-v2-command-row-icon.is-node {
color: var(--gn-accent);
}
body[data-ui-version="v2"] .gn-v2-command-row-icon.is-action {
color: var(--gn-info);
}
body[data-ui-version="v2"] .gn-v2-command-row-main {
flex: 1 1 auto;
min-width: 0;
display: grid;
gap: 2px;
}
body[data-ui-version="v2"] .gn-v2-command-row-main strong {
overflow: hidden;
color: var(--gn-fg-1);
font-family: var(--gn-font-mono);
font-size: 14px;
font-weight: 700;
line-height: 1.3;
text-overflow: ellipsis;
white-space: nowrap;
}
body[data-ui-version="v2"] .gn-v2-command-row-main small {
overflow: hidden;
color: var(--gn-fg-4);
font-family: var(--gn-font-mono);
font-size: 11.5px;
line-height: 1.3;
text-overflow: ellipsis;
white-space: nowrap;
}
body[data-ui-version="v2"] .gn-v2-command-empty {
padding: 32px 22px;
color: var(--gn-fg-4);
font-size: 13px;
text-align: center;
}
body[data-ui-version="v2"] .gn-v2-command-footer {
min-height: 46px;
flex: 0 0 auto;
display: flex;
align-items: center;
gap: 20px;
padding: 10px 22px;
border-top: 0.5px solid var(--gn-br-1);
background: var(--gn-bg-panel-2);
color: var(--gn-fg-4);
font-size: 12px;
}
body[data-ui-version="v2"] .gn-v2-command-footer span {
display: inline-flex;
align-items: center;
gap: 6px;
min-width: 0;
}
@media (max-width: 720px) {
body[data-ui-version="v2"] .gn-v2-command-backdrop {
padding: 8px;
}
body[data-ui-version="v2"] .gn-v2-command-palette {
width: calc(100vw - 16px);
max-height: calc(100vh - 16px);
}
body[data-ui-version="v2"] .gn-v2-command-footer {
flex-wrap: wrap;
gap: 8px 14px;
}
}
body[data-ui-version="v2"] .gn-v2-explorer-search .ant-input-affix-wrapper {
height: 30px !important;
display: flex !important;
align-items: center !important;
border-radius: 7px !important;
border: 0.5px solid var(--gn-br-2) !important;
padding: 0 8px !important;
background: var(--gn-bg-input) !important;
color: var(--gn-fg-2) !important;
font-size: 12px !important;
font-weight: 500 !important;
}
body[data-ui-version="v2"] .gn-v2-explorer-search .ant-input {
height: 28px !important;
min-width: 0;
border: 0 !important;
border-radius: 0 !important;
padding: 0 !important;
background: transparent !important;
box-shadow: none !important;
color: var(--gn-fg-2) !important;
font-size: 12px !important;
font-weight: 500 !important;
}
body[data-ui-version="v2"] .gn-v2-explorer-search .ant-input-prefix {
margin-inline-end: 8px !important;
color: var(--gn-fg-4) !important;
}
body[data-ui-version="v2"] .gn-v2-explorer-search .ant-input-prefix .anticon {
font-size: 13px;
}
body[data-ui-version="v2"] .gn-v2-explorer-search .ant-input-suffix {
margin-inline-start: 8px !important;
}
body[data-ui-version="v2"] .gn-v2-search-shortcut {
display: inline-flex;
align-items: center;
gap: 4px;
}
body[data-ui-version="v2"] .gn-v2-search-shortcut kbd {
min-width: 18px;
height: 20px;
display: inline-flex;
align-items: center;
justify-content: center;
border: 0.5px solid var(--gn-br-2);
border-radius: 5px;
background: var(--gn-bg-panel-2);
color: var(--gn-fg-3);
font-family: var(--gn-font-mono);
font-size: 11px;
font-weight: 700;
}
body[data-ui-version="v2"] .gn-v2-explorer-filter-tabs {
display: flex;
gap: 4px;
padding: 2px 10px 8px;
}
body[data-ui-version="v2"] .gn-v2-explorer-filter-tabs button {
flex: 1;
height: 22px;
border: none;
border-radius: 5px;
background: transparent;
color: var(--gn-fg-4);
font-size: 11px;
font-weight: 600;
}
body[data-ui-version="v2"] .gn-v2-explorer-filter-tabs button.is-active {
background: var(--gn-bg-active);
color: var(--gn-fg-1);
}
body[data-ui-version="v2"] .gn-v2-explorer-toolbar {
display: none !important;
}
body[data-ui-version="v2"] .gn-v2-explorer-tree-shell {
--gn-v2-tree-horizontal-scroll-reserve: 32px;
margin: 0;
border: 0;
border-radius: 0;
background: transparent;
overflow: hidden !important;
}
body[data-ui-version="v2"] .gn-v2-explorer-tree-shell .sidebar-tree-scroll-content {
display: flex;
flex-direction: column;
min-height: 0;
height: 100%;
box-sizing: border-box;
padding: 4px 0 0;
}
body[data-ui-version="v2"] .gn-v2-explorer-tree-shell .ant-tree {
flex: 1 1 auto;
width: 100%;
min-width: 0;
min-height: 0;
height: 100%;
font-size: var(--gn-sidebar-tree-font-size, var(--gn-font-size-sm, 12px));
line-height: 1.2;
}
body[data-ui-version="v2"] .gn-v2-explorer-tree-shell .ant-tree-list {
height: calc(100% - var(--gn-v2-tree-horizontal-scroll-reserve));
min-height: 0;
box-sizing: border-box;
}
body[data-ui-version="v2"] .gn-v2-explorer-tree-shell .ant-tree-list-holder {
scrollbar-width: thin;
}
body[data-ui-version="v2"] .gn-v2-explorer-tree-shell .ant-tree-list-scrollbar-horizontal {
height: 12px !important;
left: 8px !important;
right: 8px !important;
bottom: calc((var(--gn-v2-tree-horizontal-scroll-reserve) - 12px) * -1) !important;
}
body[data-ui-version="v2"] .gn-v2-explorer-tree-shell .ant-tree-list-scrollbar-horizontal .ant-tree-list-scrollbar-thumb {
height: 8px !important;
border-radius: 999px !important;
background: color-mix(in srgb, var(--gn-fg-4) 52%, transparent) !important;
}
body[data-ui-version="v2"] .gn-v2-explorer-tree-shell .ant-tree-list-scrollbar-horizontal .ant-tree-list-scrollbar-thumb:hover,
body[data-ui-version="v2"] .gn-v2-explorer-tree-shell .ant-tree-list-scrollbar-horizontal .ant-tree-list-scrollbar-thumb-moving {
background: color-mix(in srgb, var(--gn-fg-3) 72%, transparent) !important;
}
body[data-ui-version="v2"] .gn-v2-explorer-tree-shell .ant-tree-list-holder-inner {
width: 100%;
min-width: 100%;
box-sizing: border-box;
}
body[data-ui-version="v2"] .gn-v2-explorer-tree-shell .ant-tree-treenode {
min-height: 26px !important;
padding: 0 6px !important;
align-items: center;
}
body[data-ui-version="v2"] .gn-v2-explorer-tree-shell .ant-tree-switcher {
width: 16px !important;
min-width: 16px !important;
align-self: stretch;
line-height: 26px !important;
font-size: 12px !important;
color: var(--gn-fg-4);
}
body[data-ui-version="v2"] .gn-v2-explorer-tree-shell .ant-tree-indent-unit {
width: 12px !important;
}
body[data-ui-version="v2"] .gn-v2-explorer-tree-shell .ant-tree-node-content-wrapper {
min-width: 0;
min-height: 26px !important;
padding: 0 6px !important;
display: flex !important;
align-items: center;
border-radius: 6px !important;
color: var(--gn-fg-3) !important;
}
body[data-ui-version="v2"] .gn-v2-explorer-tree-shell .ant-tree-node-content-wrapper:hover {
background: var(--gn-bg-hover) !important;
}
body[data-ui-version="v2"] .gn-v2-explorer-tree-shell .ant-tree-node-content-wrapper.ant-tree-node-selected {
background: var(--gn-bg-selected) !important;
color: var(--gn-fg-1) !important;
font-weight: 400 !important;
}
body[data-ui-version="v2"] .gn-v2-explorer-tree-shell .ant-tree-iconEle {
width: 15px !important;
min-width: 15px !important;
margin-right: 4px !important;
display: inline-flex !important;
align-items: center;
justify-content: center;
color: var(--gn-fg-4);
font-size: 13px;
}
body[data-ui-version="v2"] .gn-v2-explorer-tree-shell .ant-tree-iconEle .anticon-table,
body[data-ui-version="v2"] .gn-v2-explorer-tree-shell .ant-tree-iconEle .anticon-eye,
body[data-ui-version="v2"] .gn-v2-explorer-tree-shell .ant-tree-iconEle .anticon-code,
body[data-ui-version="v2"] .gn-v2-explorer-tree-shell .ant-tree-iconEle .anticon-function,
body[data-ui-version="v2"] .gn-v2-explorer-tree-shell .ant-tree-iconEle .anticon-thunderbolt {
color: var(--gn-accent);
}
body[data-ui-version="v2"] .gn-v2-explorer-tree-shell .ant-tree-iconEle .anticon-folder,
body[data-ui-version="v2"] .gn-v2-explorer-tree-shell .ant-tree-iconEle .anticon-folder-open {
color: var(--gn-fg-4);
}
body[data-ui-version="v2"] .gn-v2-explorer-tree-shell .gn-v2-tree-folder-icon {
width: 22px;
height: 22px;
display: inline-flex;
align-items: center;
justify-content: center;
flex: 0 0 22px;
}
body[data-ui-version="v2"] .gn-v2-explorer-tree-shell .gn-v2-tree-folder-icon .anticon-folder,
body[data-ui-version="v2"] .gn-v2-explorer-tree-shell .gn-v2-tree-folder-icon .anticon-folder-open {
color: #faad14;
font-size: 18px;
}
body[data-ui-version="v2"] .gn-v2-explorer-tree-shell .ant-tree-title {
min-width: 0;
flex: 1 1 auto;
display: inline-flex;
align-items: center;
overflow: visible;
}
body[data-ui-version="v2"] .gn-v2-explorer-tree-shell .ant-tree-title > span {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
body[data-ui-version="v2"] .gn-v2-explorer-tree-shell .ant-tree-title > .gn-v2-tree-title {
overflow: visible;
}
body[data-ui-version="v2"] .gn-v2-tree-title {
width: 100%;
min-width: 0;
display: inline-flex;
align-items: center;
gap: 5px;
color: var(--gn-fg-2);
font-family: var(--gn-font-sans);
font-size: var(--gn-sidebar-tree-font-size, var(--gn-font-size-sm, 12px));
font-weight: 400 !important;
line-height: 1.25;
}
body[data-ui-version="v2"] .gn-v2-tree-title.is-mono .gn-v2-tree-label {
font-family: inherit;
font-size: inherit;
font-weight: 400 !important;
}
body[data-ui-version="v2"] .gn-v2-tree-title.is-group {
font-weight: 400 !important;
color: var(--gn-fg-1);
}
body[data-ui-version="v2"] .gn-v2-tree-title.is-connection {
align-items: center;
gap: 6px;
}
body[data-ui-version="v2"] .gn-v2-tree-status {
position: relative;
margin: 0 2px 0 0;
width: 14px;
min-width: 14px;
height: 14px;
flex: 0 0 14px;
display: inline-flex;
align-items: center;
justify-content: center;
overflow: visible;
}
body[data-ui-version="v2"] .gn-v2-tree-status::before {
content: '';
width: 7px;
height: 7px;
border-radius: 50%;
flex: 0 0 7px;
background: #b8c0cc;
}
body[data-ui-version="v2"] .gn-v2-tree-status.is-success::before {
background: #22c55e;
box-shadow: 0 0 0 4px rgba(34, 197, 94, 0.18);
}
body[data-ui-version="v2"] .gn-v2-tree-status.is-error::before {
background: var(--gn-danger);
box-shadow: 0 0 0 4px rgba(239, 68, 68, 0.16);
}
body[data-ui-version="v2"] .gn-v2-tree-label {
min-width: 0;
flex: 1 1 auto;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
letter-spacing: 0;
font-weight: 400 !important;
}
body[data-ui-version="v2"] .gn-v2-tree-connection-copy {
min-width: 0;
flex: 1 1 auto;
color: var(--gn-fg-1);
font-weight: 400 !important;
}
body[data-ui-version="v2"] .gn-v2-tree-count {
flex: 0 0 auto;
color: var(--gn-fg-5);
font-family: var(--gn-font-sans);
font-variant-numeric: tabular-nums;
font-size: clamp(10px, calc(var(--gn-sidebar-tree-font-size, var(--gn-font-size-sm, 12px)) - 1px), 16px);
font-weight: 400 !important;
opacity: 0.82;
}
body[data-ui-version="v2"] .gn-v2-table-pin-action {
width: 18px;
height: 18px;
flex: 0 0 18px;
display: inline-flex;
align-items: center;
justify-content: center;
margin-left: 2px;
padding: 0;
border: 0;
border-radius: 4px;
background: transparent;
color: var(--gn-fg-5);
cursor: pointer;
opacity: 0;
transition: opacity 0.12s ease, color 0.12s ease, background 0.12s ease;
}
body[data-ui-version="v2"] .gn-v2-table-pin-action:hover {
background: var(--gn-bg-hover);
color: var(--gn-fg-2);
}
body[data-ui-version="v2"] .gn-v2-table-pin-action.is-pinned {
color: #f59e0b;
opacity: 1;
}
body[data-ui-version="v2"] .ant-tree-node-content-wrapper:hover .gn-v2-table-pin-action,
body[data-ui-version="v2"] .gn-v2-table-pin-action:focus-visible {
opacity: 1;
}
body[data-ui-version="v2"] .gn-v2-object-explorer .ant-tree .ant-tree-node-content-wrapper.ant-tree-node-selected::before {
display: none;
}
body[data-ui-version="v2"] .gn-v2-tree-title[data-node-type="database"] {
font-weight: 400 !important;
color: var(--gn-fg-1);
}
body[data-ui-version="v2"] .gn-v2-tree-title[data-node-type="queries-folder"],
body[data-ui-version="v2"] .gn-v2-tree-title[data-node-type="external-sql-root"] {
color: var(--gn-fg-1);
font-weight: 400 !important;
}
body[data-ui-version="v2"] .gn-v2-tree-external-root {
width: 100%;
min-width: 0;
display: inline-flex;
align-items: center;
justify-content: space-between;
gap: 8px;
}
body[data-ui-version="v2"] .gn-v2-tree-external-root .gn-v2-tree-title {
min-width: 0;
flex: 1 1 auto;
}
body[data-ui-version="v2"] .gn-v2-tree-external-root .gn-v2-tree-label {
display: inline-flex;
align-items: center;
gap: 6px;
}
body[data-ui-version="v2"] .gn-v2-tree-external-root-action {
flex: 0 0 auto;
padding-inline: 4px !important;
height: 20px !important;
}
body[data-ui-version="v2"] .gn-v2-tree-title[data-group-key="triggers"] {
color: var(--gn-fg-1);
}
body[data-ui-version="v2"] .gn-v2-tree-section-title {
display: flex;
align-items: center;
width: 100%;
height: 22px;
padding: 7px 4px 3px 2px;
color: var(--gn-fg-5);
font-family: var(--gn-font-sans);
font-size: clamp(10px, calc(var(--gn-sidebar-tree-font-size, var(--gn-font-size-sm, 12px)) - 1px), 16px);
font-weight: 400;
line-height: 1.1;
letter-spacing: 0;
pointer-events: none;
user-select: none;
}
body[data-ui-version="v2"] .ant-tree-treenode:has(.gn-v2-tree-section-title) {
pointer-events: none;
}
body[data-ui-version="v2"] .ant-tree-treenode:has(.gn-v2-tree-section-title) .ant-tree-switcher,
body[data-ui-version="v2"] .ant-tree-treenode:has(.gn-v2-tree-section-title) .ant-tree-iconEle {
display: none !important;
}
body[data-ui-version="v2"] .ant-tree-treenode:has(.gn-v2-tree-section-title) .ant-tree-node-content-wrapper {
min-height: 22px !important;
padding-left: 0 !important;
cursor: default !important;
background: transparent !important;
}
body[data-ui-version="v2"] .ant-tree-treenode:has(.gn-v2-tree-section-title) .ant-tree-title {
display: flex;
width: 100%;
}
body[data-ui-version="v2"] .gn-v2-sidebar-log-footer {
padding: 8px 10px;
border-top: 0.5px solid var(--gn-br-1);
background: var(--gn-bg-panel-2);
flex-shrink: 0;
}
body[data-ui-version="v2"] .gn-v2-sidebar-log-button {
width: 100%;
height: 28px;
border: 0;
border-radius: 8px;
background: transparent;
color: var(--gn-fg-2);
display: inline-flex;
align-items: center;
gap: 6px;
padding: 0 10px;
font-size: 12.5px;
font-weight: 400;
}
body[data-ui-version="v2"] .gn-v2-sidebar-log-button:hover {
background: var(--gn-bg-hover);
}
body[data-ui-version="v2"] .gn-v2-sidebar-log-button small {
margin-left: auto;
color: var(--gn-fg-4);
font-family: var(--gn-font-mono);
font-size: 10.5px;
font-weight: 400;
}
body[data-ui-version="v2"] .gn-v2-empty-workbench {
min-height: 100%;
display: grid;
grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.65fr);
gap: 18px;
padding: 24px;
background: var(--gn-bg-app);
}
body[data-ui-version="v2"] .gn-v2-empty-hero,
body[data-ui-version="v2"] .gn-v2-empty-panel {
align-self: stretch;
border: 0.5px solid var(--gn-br-1);
border-radius: 8px;
background: color-mix(in srgb, var(--gn-bg-panel) 88%, transparent);
box-shadow: var(--gn-shadow-card);
}
body[data-ui-version="v2"] .gn-v2-empty-hero {
display: flex;
flex-direction: column;
justify-content: center;
padding: 40px;
}
body[data-ui-version="v2"] .gn-v2-empty-eyebrow {
display: flex;
flex-wrap: wrap;
gap: 8px;
color: var(--gn-accent);
font-size: 11px;
font-weight: 800;
letter-spacing: 0;
text-transform: uppercase;
}
body[data-ui-version="v2"] .gn-v2-empty-hero h1 {
max-width: 720px;
margin: 18px 0 0;
color: var(--gn-fg-1);
font-size: 40px;
line-height: 1.08;
font-weight: 800;
}
@media (max-width: 720px) {
body[data-ui-version="v2"] .gn-v2-empty-hero h1 {
font-size: 28px;
}
}
body[data-ui-version="v2"] .gn-v2-empty-hero p {
max-width: 560px;
margin: 16px 0 0;
color: var(--gn-fg-3);
font-size: 14px;
line-height: 1.7;
}
body[data-ui-version="v2"] .gn-v2-empty-actions {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin-top: 28px;
}
body[data-ui-version="v2"] .gn-v2-empty-actions .ant-btn {
height: 38px !important;
border-radius: 8px !important;
}
body[data-ui-version="v2"] .gn-v2-empty-panel {
padding: 18px;
display: flex;
flex-direction: column;
gap: 10px;
font-family: var(--gn-font-sans);
}
body[data-ui-version="v2"] .gn-v2-panel-heading {
display: flex;
justify-content: space-between;
align-items: center;
color: var(--gn-fg-1);
font-family: var(--gn-font-sans);
font-size: 13px;
font-weight: 700;
line-height: 1.3;
letter-spacing: 0;
margin-bottom: 4px;
}
body[data-ui-version="v2"] .gn-v2-empty-panel button {
width: 100%;
min-height: 70px;
display: grid;
grid-template-columns: 34px minmax(0, 1fr);
gap: 12px;
align-items: center;
text-align: left;
border: 0.5px solid var(--gn-br-1);
border-radius: 8px;
background: var(--gn-bg-panel-2);
color: var(--gn-fg-1);
cursor: pointer;
font-family: var(--gn-font-sans);
}
body[data-ui-version="v2"] .gn-v2-empty-panel button:hover {
border-color: color-mix(in srgb, var(--gn-accent) 42%, var(--gn-br-1));
background: var(--gn-bg-hover);
}
body[data-ui-version="v2"] .gn-v2-empty-panel button > .anticon {
width: 34px;
height: 34px;
display: grid;
place-items: center;
border-radius: 8px;
color: var(--gn-accent);
background: var(--gn-accent-soft);
}
body[data-ui-version="v2"] .gn-v2-empty-panel strong,
body[data-ui-version="v2"] .gn-v2-empty-panel small {
display: block;
font-family: var(--gn-font-sans);
letter-spacing: 0;
}
body[data-ui-version="v2"] .gn-v2-empty-panel strong {
color: var(--gn-fg-1);
font-size: 13px;
font-weight: 650;
line-height: 1.35;
}
body[data-ui-version="v2"] .gn-v2-empty-panel small {
color: var(--gn-fg-4);
font-size: 11px;
margin-top: 3px;
font-weight: 500;
line-height: 1.45;
}
/* ─── Full V2 workbench shell: app / topbar / workspace ─ */
body[data-ui-version="v2"] .gn-v2-app-root {
background: var(--gn-bg-app) !important;
color: var(--gn-fg-1);
}
body[data-ui-version="v2"] .gn-v2-titlebar {
position: relative;
background: var(--gn-bg-chrome) !important;
border-bottom: 0.5px solid var(--gn-br-1) !important;
box-shadow: none !important;
}
body[data-ui-version="v2"] .gn-v2-titlebar-brand {
width: 18px;
height: 18px;
border-radius: 5px;
background: linear-gradient(135deg, var(--gn-accent) 0%, var(--gn-accent-2) 100%);
color: #fff;
display: inline-flex;
align-items: center;
justify-content: center;
font-family: var(--gn-font-mono);
font-size: 9px;
font-weight: 800;
box-shadow: inset 0 0.5px 0 rgba(255,255,255,0.3);
}
body[data-ui-version="v2"] .gn-v2-titlebar-copy {
display: flex;
min-width: 0;
flex-direction: column;
line-height: 1.05;
}
body[data-ui-version="v2"] .gn-v2-titlebar-copy strong {
color: var(--gn-fg-2);
font-size: 12px;
font-weight: 800;
}
body[data-ui-version="v2"] .gn-v2-titlebar-copy small {
max-width: 260px;
margin-top: 2px;
overflow: hidden;
color: var(--gn-fg-4);
font-family: var(--gn-font-mono);
font-size: 9.5px;
font-weight: 500;
text-overflow: ellipsis;
white-space: nowrap;
}
body[data-ui-version="v2"] .gn-v2-titlebar-center {
position: absolute;
left: 50%;
top: 50%;
display: inline-flex;
max-width: 520px;
transform: translate(-50%, -50%);
align-items: center;
gap: 8px;
color: var(--gn-fg-3);
font-family: var(--gn-font-mono);
font-size: 12px;
font-weight: 650;
overflow: hidden;
white-space: nowrap;
}
body[data-ui-version="v2"] .gn-v2-titlebar-center span:last-child {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
}
body[data-ui-version="v2"] .gn-v2-titlebar-live {
width: 7px;
height: 7px;
flex: 0 0 7px;
border-radius: 50%;
box-shadow: 0 0 0 3px color-mix(in srgb, currentColor 18%, transparent);
}
body[data-ui-version="v2"] .gn-v2-app-shell {
background: var(--gn-bg-app) !important;
}
body[data-ui-version="v2"] .gn-v2-app-sider {
background: var(--gn-bg-panel-2) !important;
}
body[data-ui-version="v2"] .gn-v2-workspace-shell {
background: var(--gn-bg-app) !important;
}
body[data-ui-version="v2"] .gn-v2-workspace-body {
background: var(--gn-bg-app);
}
body[data-ui-version="v2"] .gn-v2-workspace-main {
background: var(--gn-bg-panel) !important;
}
body[data-ui-version="v2"] .gn-v2-ai-panel-dock {
background: var(--gn-bg-panel);
}
body[data-ui-version="v2"] .gn-v2-ai-panel-overlay {
position: absolute;
inset: 0;
display: flex;
justify-content: flex-end;
pointer-events: none;
z-index: 14;
}
body[data-ui-version="v2"] .gn-v2-ai-panel-backdrop {
position: absolute;
inset: 0;
border: 0;
padding: 0;
background: rgba(248, 250, 252, 0.38);
backdrop-filter: blur(2px);
pointer-events: auto;
}
body[data-ui-version="v2"] .gn-v2-ai-panel-dock.is-overlay {
position: relative;
height: 100%;
pointer-events: auto;
z-index: 1;
}
body[data-ui-version="v2"] .gn-v2-ai-panel-dock.is-overlay .gn-v2-ai-panel {
height: 100%;
box-shadow: 0 18px 48px rgba(15, 23, 42, 0.18);
}
body[data-ui-version="v2"] .gn-v2-tab-workbench {
min-height: 0;
min-width: 0;
flex: 1 1 auto;
display: flex;
flex-direction: column;
overflow: hidden;
background: var(--gn-bg-panel);
}
body[data-ui-version="v2"] .gn-v2-main-tabs > .ant-tabs-nav {
height: 36px;
flex: 0 0 36px;
background: var(--gn-bg-panel-2);
}
body[data-ui-version="v2"] .gn-v2-main-tabs-double > .ant-tabs-nav {
height: 46px;
flex: 0 0 46px;
}
body[data-ui-version="v2"] .gn-v2-main-tabs .ant-tabs-nav-wrap,
body[data-ui-version="v2"] .gn-v2-main-tabs .ant-tabs-nav-list {
min-height: 36px;
}
body[data-ui-version="v2"] .gn-v2-main-tabs-double .ant-tabs-nav-wrap,
body[data-ui-version="v2"] .gn-v2-main-tabs-double .ant-tabs-nav-list {
min-height: 46px;
}
body[data-ui-version="v2"] .gn-v2-main-tabs .ant-tabs-tab {
width: 260px;
min-width: 260px;
max-width: 260px;
height: 36px;
margin: 0 !important;
padding: 0 !important;
}
body[data-ui-version="v2"] .gn-v2-main-tabs-double .ant-tabs-tab {
height: 46px;
}
body[data-ui-version="v2"] .gn-v2-main-tabs .ant-tabs-tab-btn {
width: 100%;
height: 100%;
}
body[data-ui-version="v2"] .gn-v2-tab-label {
position: relative;
width: 100%;
height: 100%;
box-sizing: border-box;
padding: 0 8px 0 10px;
gap: 7px;
}
body[data-ui-version="v2"] .gn-v2-tab-label-content {
min-width: 0;
flex: 1 1 auto;
display: flex;
align-items: center;
gap: 7px;
overflow: hidden;
}
body[data-ui-version="v2"] .gn-v2-tab-label-double {
padding-top: 4px;
padding-bottom: 3px;
}
body[data-ui-version="v2"] .gn-v2-tab-label-double .gn-v2-tab-label-content {
align-items: stretch;
justify-content: flex-start;
flex-direction: column;
gap: 0;
}
body[data-ui-version="v2"] .gn-v2-tab-label-double .gn-v2-tab-label-main {
flex: 0 1 auto;
gap: 5px;
line-height: 17px;
}
body[data-ui-version="v2"] .gn-v2-tab-label-main {
min-width: 0;
flex: 1 1 auto;
display: flex;
align-items: center;
gap: 7px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
color: var(--gn-fg-2);
font-weight: 700;
line-height: 16px;
}
body[data-ui-version="v2"] .gn-v2-tab-label-secondary {
min-width: 0;
display: block;
overflow: hidden;
color: var(--gn-fg-5);
font-family: var(--gn-font-mono);
font-size: 10px;
font-weight: 650;
line-height: 12px;
text-overflow: ellipsis;
white-space: nowrap;
}
body[data-ui-version="v2"] .gn-v2-tab-label-part {
min-width: 0;
flex: 0 0 auto;
overflow: hidden;
text-align: left;
text-overflow: ellipsis;
white-space: nowrap;
}
body[data-ui-version="v2"] .gn-v2-tab-label-part-object {
flex: 1 1 auto;
color: var(--gn-fg-2);
font-weight: 700;
}
body[data-ui-version="v2"] .gn-v2-tab-label-part-connection {
flex: 0 1 92px;
color: var(--gn-fg-2);
font-family: var(--gn-font-mono);
font-weight: 700;
}
body[data-ui-version="v2"] .gn-v2-tab-label-part-host,
body[data-ui-version="v2"] .gn-v2-tab-label-part-database,
body[data-ui-version="v2"] .gn-v2-tab-label-part-schema {
flex: 0 2 auto;
max-width: 112px;
}
body[data-ui-version="v2"] .gn-v2-tab-kind-icon {
display: inline-flex;
color: var(--gn-accent);
font-size: 12px;
}
body[data-ui-version="v2"] .gn-v2-tab-kind {
height: 17px;
flex: 0 0 auto;
display: inline-flex;
align-items: center;
padding: 0 5px;
border-radius: 3px;
background: var(--gn-bg-active);
color: var(--gn-fg-4);
font-family: var(--gn-font-mono);
font-size: 9.5px;
font-weight: 750;
}
body[data-ui-version="v2"] .gn-v2-tab-conn {
max-width: 76px;
overflow: hidden;
color: var(--gn-fg-5);
font-family: var(--gn-font-mono);
font-size: 10px;
text-overflow: ellipsis;
white-space: nowrap;
}
body[data-ui-version="v2"] .gn-v2-tab-close {
width: 18px;
height: 18px;
flex: 0 0 18px;
border: none;
border-radius: 4px;
background: transparent;
color: var(--gn-fg-4);
display: inline-flex;
align-items: center;
justify-content: center;
padding: 0;
opacity: 0.7;
}
body[data-ui-version="v2"] .gn-v2-tab-close:hover {
opacity: 1;
background: var(--gn-bg-active);
color: var(--gn-fg-1);
}
body[data-ui-version="v2"] .gn-v2-tab-context-menu-popup .ant-dropdown-menu {
min-width: 188px;
padding: 6px !important;
border: 0.5px solid var(--gn-br-2) !important;
border-radius: 12px !important;
background: color-mix(in srgb, var(--gn-bg-panel) 94%, transparent) !important;
box-shadow: 0 18px 44px rgba(15, 23, 42, 0.18), 0 0 0 1px rgba(15, 23, 42, 0.04) !important;
backdrop-filter: blur(12px);
}
body[data-ui-version="v2"] .gn-v2-tab-context-menu-popup .ant-dropdown-menu-item {
min-height: 34px !important;
padding: 7px 10px !important;
border-radius: 8px !important;
color: var(--gn-fg-2) !important;
font-size: 13px !important;
font-weight: 650 !important;
}
body[data-ui-version="v2"] .gn-v2-tab-context-menu-popup .ant-dropdown-menu-item:hover {
background: var(--gn-bg-active) !important;
color: var(--gn-fg-1) !important;
}
body[data-ui-version="v2"] .gn-v2-tab-context-menu-popup .ant-dropdown-menu-item-disabled {
color: var(--gn-fg-5) !important;
opacity: 0.5;
}
body[data-ui-version="v2"] .gn-v2-tab-context-menu-popup .ant-dropdown-menu-item-icon {
color: var(--gn-info);
font-size: 14px;
}
body[data-ui-version="v2"] .gn-v2-tab-context-menu-popup .ant-dropdown-menu-item-divider {
margin: 5px 4px !important;
background: var(--gn-br-1) !important;
}
body[data-ui-version="v2"] .gn-v2-tab-context-menu-popup .ant-dropdown-menu-title-content {
display: inline-flex;
align-items: center;
}
body[data-ui-version="v2"] .gn-v2-tab-context-menu-popup .ant-dropdown-menu-item:first-child {
color: var(--gn-fg-1) !important;
background: color-mix(in srgb, var(--gn-info) 8%, transparent) !important;
}
body[data-ui-version="v2"] .gn-v2-tab-context-menu-popup .ant-dropdown-menu-item:first-child:hover {
background: color-mix(in srgb, var(--gn-info) 14%, transparent) !important;
}
/* ─── V2 DataGrid: toolbar, smart filters, table, statusbar ─ */
body[data-ui-version="v2"] .gn-v2-data-viewer {
background: var(--gn-bg-panel);
}
body[data-ui-version="v2"] .gn-v2-data-grid {
padding: 0 !important;
background: var(--gn-bg-panel) !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-toolbar-frame {
margin: 0 !important;
border-width: 0 0 0.5px !important;
border-color: var(--gn-br-1) !important;
border-radius: 0 !important;
background: var(--gn-bg-panel) !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid .data-grid-toolbar-scroll {
min-height: 44px;
padding: 7px 12px !important;
gap: 4px !important;
background: var(--gn-bg-panel) !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid .data-grid-toolbar-scroll .ant-btn {
height: 28px !important;
border-radius: 7px !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-toolbar-title {
display: inline-flex;
align-items: center;
gap: 8px;
min-width: 180px;
max-width: 460px;
flex: 0 1 auto;
overflow: hidden;
white-space: nowrap;
color: var(--gn-fg-4);
}
body[data-ui-version="v2"] .gn-v2-data-grid-toolbar-title .gn-v2-data-grid-icon {
width: 18px;
height: 18px;
border-radius: 0;
background: transparent;
color: var(--gn-fg-1);
}
body[data-ui-version="v2"] .gn-v2-data-grid-toolbar-title strong {
min-width: 0;
overflow: hidden;
color: var(--gn-fg-1);
font-family: var(--gn-font-mono);
font-size: 13.5px;
font-weight: 400;
text-overflow: ellipsis;
}
body[data-ui-version="v2"] .gn-v2-data-grid-toolbar-title small {
min-width: 0;
overflow: hidden;
color: var(--gn-fg-4);
font-family: var(--gn-font-mono);
font-size: 10.5px;
font-weight: 400;
text-overflow: ellipsis;
}
body[data-ui-version="v2"] .gn-v2-toolbar-divider {
flex: 0 0 1px;
height: 20px !important;
margin: 0 8px !important;
background: var(--gn-br-1) !important;
}
body[data-ui-version="v2"] .gn-v2-toolbar-kbd {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 16px;
height: 18px;
margin-left: 4px;
padding: 0 4px;
border: 0.5px solid var(--gn-br-2);
border-radius: 4px;
background: var(--gn-bg-input);
color: inherit;
font-family: var(--gn-font-mono);
font-size: 10.5px;
font-weight: 650;
line-height: 18px;
}
body[data-ui-version="v2"] .gn-v2-data-grid .gn-v2-commit-button {
border-color: transparent !important;
background: var(--gn-accent-soft) !important;
color: var(--gn-accent-2) !important;
font-weight: 750 !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid .gn-v2-commit-button:disabled {
opacity: 1;
background: var(--gn-accent-soft) !important;
color: var(--gn-accent-2) !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid .gn-v2-commit-button .gn-v2-toolbar-kbd {
border: none;
background: rgba(22, 163, 74, 0.18);
color: var(--gn-accent-2);
}
body[data-ui-version="v2"] .gn-v2-data-grid .gn-v2-ai-insight-button {
border-color: transparent !important;
background: var(--gn-info-soft) !important;
color: var(--gn-info) !important;
font-weight: 750 !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid .gn-v2-ai-insight-button:hover {
filter: brightness(0.96);
}
body[data-ui-version="v2"] .gn-v2-data-grid .gn-v2-ai-insight-button .gn-v2-toolbar-kbd {
border: none;
background: var(--gn-bg-input);
color: var(--gn-info);
}
body[data-ui-version="v2"] .gn-v2-data-grid .gn-v2-query-result-toolbar-hide {
border-color: var(--gn-br-1) !important;
background: var(--gn-bg-panel) !important;
color: var(--gn-fg-2) !important;
font-weight: 650 !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid .gn-v2-query-result-toolbar-hide:hover {
background: var(--gn-bg-hover) !important;
color: var(--gn-fg-1) !important;
}
body[data-ui-version="v2"] .gn-v2-smart-filter-panel {
background: var(--gn-bg-panel-2) !important;
border-top: 0.5px solid var(--gn-br-1);
font-size: var(--gn-font-size, 14px);
}
body[data-ui-version="v2"] .gn-v2-smart-filter-panel [data-grid-quick-where="true"] {
min-height: 38px;
margin-bottom: 8px !important;
border: 0.5px solid var(--gn-br-2) !important;
border-radius: 8px !important;
background: var(--gn-bg-panel) !important;
}
body[data-ui-version="v2"] .gn-v2-smart-filter-panel [data-grid-quick-where="true"],
body[data-ui-version="v2"] .gn-v2-smart-filter-panel [data-grid-quick-where-input="true"] {
user-select: text !important;
-webkit-user-select: text !important;
}
body[data-ui-version="v2"] .gn-v2-smart-filter-panel .ant-btn,
body[data-ui-version="v2"] .gn-v2-smart-filter-panel .ant-input,
body[data-ui-version="v2"] .gn-v2-smart-filter-panel .ant-input-affix-wrapper,
body[data-ui-version="v2"] .gn-v2-smart-filter-panel .ant-input-affix-wrapper input,
body[data-ui-version="v2"] .gn-v2-smart-filter-panel .ant-input-textarea,
body[data-ui-version="v2"] .gn-v2-smart-filter-panel .ant-input-textarea textarea,
body[data-ui-version="v2"] .gn-v2-smart-filter-panel .ant-select,
body[data-ui-version="v2"] .gn-v2-smart-filter-panel .ant-select-selector,
body[data-ui-version="v2"] .gn-v2-smart-filter-panel .ant-select-selection-item,
body[data-ui-version="v2"] .gn-v2-smart-filter-panel .ant-select-selection-placeholder,
body[data-ui-version="v2"] .gn-v2-smart-filter-panel .ant-checkbox-wrapper {
font-size: var(--gn-font-size-sm, 12px) !important;
}
body[data-ui-version="v2"] .gn-v2-smart-filter-panel [data-grid-quick-where="true"] .ant-input,
body[data-ui-version="v2"] .gn-v2-smart-filter-panel [data-grid-quick-where="true"] .ant-input-affix-wrapper,
body[data-ui-version="v2"] .gn-v2-smart-filter-panel [data-grid-quick-where="true"] .ant-input-affix-wrapper input,
body[data-ui-version="v2"] .gn-v2-smart-filter-panel [data-grid-quick-where-input="true"] {
font-size: var(--gn-font-size, 14px) !important;
line-height: 1.35 !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-table-shell {
border: none !important;
border-radius: 0 !important;
background: var(--gn-bg-panel) !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-table-wrap {
background: var(--gn-bg-panel);
}
body[data-ui-version="v2"] .gn-v2-data-grid .ant-table-thead > tr > th {
height: 48px !important;
padding: 3px 8px !important;
background: var(--gn-bg-panel-2) !important;
color: var(--gn-fg-2) !important;
font-family: var(--gn-font-mono) !important;
font-weight: 400 !important;
vertical-align: top !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid .gn-v2-table-designer.is-embedded .ant-table-thead > tr > th {
height: var(--gn-v2-designer-header-height, 40px) !important;
min-height: var(--gn-v2-designer-header-height, 40px) !important;
padding: var(--gn-v2-designer-header-padding, 0 8px) !important;
color: var(--gn-fg-3) !important;
font-family: inherit !important;
font-size: var(--gn-v2-designer-content-font-size, 12px) !important;
font-weight: 600 !important;
vertical-align: middle !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid .gn-v2-table-designer.is-embedded .ant-table-thead .ant-table-column-title {
min-height: var(--gn-v2-designer-header-height, 40px) !important;
color: inherit !important;
font-family: inherit !important;
font-size: inherit !important;
font-weight: 600 !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid .gn-v2-table-designer.is-embedded .ant-table-thead .ant-table-column-sorters {
min-height: var(--gn-v2-designer-header-height, 40px) !important;
align-items: center !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid .ant-table-thead .ant-table-column-title {
font-size: var(--gn-data-table-font-size, var(--gn-font-size-mono, 12px));
font-weight: 400 !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid .ant-table-thead .ant-table-column-sorters {
min-height: 0 !important;
align-items: flex-start !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid .ant-table-thead > tr > th.is-single-line-title {
vertical-align: middle !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid .ant-table-thead > tr > th.is-single-line-title .ant-table-column-sorters {
min-height: 48px !important;
align-items: center !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid .sortable-header-cell-drag-handle {
min-height: 48px !important;
align-items: flex-start !important;
padding: 3px 8px !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid .sortable-header-cell-drag-handle > div {
align-items: flex-start !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid .is-single-line-title .sortable-header-cell-drag-handle {
align-items: center !important;
padding-top: 0 !important;
padding-bottom: 0 !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid .is-single-line-title .sortable-header-cell-drag-handle > div {
align-items: center !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid .ant-table-thead > tr > th:first-child,
body[data-ui-version="v2"] .gn-v2-data-grid .ant-table-selection-column {
width: 56px !important;
background: var(--gn-bg-panel-2) !important;
border-right: 0.5px solid var(--gn-br-1) !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid .gn-v2-table-designer.is-embedded .ant-table-thead > tr > th:first-child,
body[data-ui-version="v2"] .gn-v2-data-grid .gn-v2-table-designer.is-embedded .ant-table-thead > tr > th.ant-table-selection-column,
body[data-ui-version="v2"] .gn-v2-data-grid .gn-v2-table-designer.is-embedded .ant-table-selection-column {
width: var(--gn-v2-designer-selection-column-width, 44px) !important;
min-width: var(--gn-v2-designer-selection-column-width, 44px) !important;
max-width: var(--gn-v2-designer-selection-column-width, 44px) !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid .ant-table-thead > tr > th:first-child,
body[data-ui-version="v2"] .gn-v2-data-grid .ant-table-thead > tr > th.ant-table-selection-column {
vertical-align: middle !important;
text-align: center !important;
padding-top: 0 !important;
padding-bottom: 0 !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid .ant-table-thead > tr > th:first-child .ant-table-selection,
body[data-ui-version="v2"] .gn-v2-data-grid .ant-table-thead > tr > th.ant-table-selection-column .ant-table-selection {
min-height: 48px;
display: inline-flex;
align-items: center;
justify-content: center;
}
body[data-ui-version="v2"] .gn-v2-data-grid .gn-v2-table-designer.is-embedded .ant-table-thead > tr > th:first-child .ant-table-selection,
body[data-ui-version="v2"] .gn-v2-data-grid .gn-v2-table-designer.is-embedded .ant-table-thead > tr > th.ant-table-selection-column .ant-table-selection {
min-height: var(--gn-v2-designer-header-height, 40px) !important;
}
body[data-ui-version="v2"] .gn-v2-column-title {
width: 100%;
min-width: 0;
height: auto;
display: flex;
flex-direction: column;
justify-content: flex-start;
gap: 1px;
line-height: 1.1;
overflow: hidden;
}
body[data-ui-version="v2"] .gn-v2-column-title.is-single-line {
height: 100%;
justify-content: center;
}
body[data-ui-version="v2"] .gn-v2-column-title-main {
display: flex;
align-items: center;
gap: 5px;
min-width: 0;
}
body[data-ui-version="v2"] .gn-v2-column-title-icon {
width: calc(13px * var(--gn-ui-scale, 1));
height: calc(13px * var(--gn-ui-scale, 1));
flex: 0 0 calc(13px * var(--gn-ui-scale, 1));
display: inline-flex;
align-items: center;
justify-content: center;
color: var(--gn-fg-4);
font-size: var(--gn-font-size-xs, 10px);
}
body[data-ui-version="v2"] .gn-v2-column-title-icon.is-primary {
color: var(--gn-warn);
}
body[data-ui-version="v2"] .gn-v2-column-title-name {
min-width: 0;
overflow: hidden;
color: var(--gn-fg-1);
font-family: var(--gn-font-mono);
font-size: var(--gn-font-size-sm, 12px);
font-weight: 400 !important;
text-overflow: ellipsis;
white-space: nowrap;
}
body[data-ui-version="v2"] .gn-v2-column-badge {
height: calc(18px * var(--gn-ui-scale, 1));
padding: 0 calc(6px * var(--gn-ui-scale, 1));
border-radius: 4px;
display: inline-flex;
align-items: center;
justify-content: center;
font-family: var(--gn-font-mono);
font-size: var(--gn-font-size-xs, 10px);
font-weight: 800;
line-height: calc(18px * var(--gn-ui-scale, 1));
letter-spacing: 0;
}
body[data-ui-version="v2"] .gn-v2-column-badge.is-pk {
background: var(--gn-accent-soft);
color: var(--gn-accent-2);
}
body[data-ui-version="v2"] .gn-v2-column-badge.is-idx {
background: var(--gn-warn-soft);
color: var(--gn-warn);
}
body[data-ui-version="v2"] .gn-v2-column-title-type,
body[data-ui-version="v2"] .gn-v2-column-title-comment {
min-width: 0;
display: block;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
body[data-ui-version="v2"] .gn-v2-column-title-type {
color: var(--gn-fg-4);
font-family: var(--gn-font-mono);
font-size: var(--gn-font-size-xs, 10px);
font-weight: 400 !important;
}
body[data-ui-version="v2"] .gn-v2-column-title-comment {
color: var(--gn-fg-4);
font-family: var(--gn-font-mono);
font-size: var(--gn-font-size-xs, 10px);
font-weight: 400 !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid .react-resizable-handle::after {
content: '';
position: absolute;
top: 8px;
bottom: 8px;
left: 4px;
width: 2px;
border-radius: 1px;
background: transparent;
}
body[data-ui-version="v2"] .gn-v2-data-grid .react-resizable-handle:hover::after {
background: color-mix(in srgb, var(--gn-info) 42%, transparent);
}
body[data-ui-version="v2"] .gn-v2-data-grid .ant-table-tbody > tr > td,
body[data-ui-version="v2"] .gn-v2-data-grid .ant-table-tbody .ant-table-row > .ant-table-cell {
height: calc(28px * var(--gn-ui-scale, 1));
padding: 0 calc(10px * var(--gn-ui-scale, 1)) !important;
font-family: var(--gn-font-mono) !important;
font-size: var(--gn-data-table-font-size, var(--gn-font-size-mono, 12px)) !important;
line-height: calc(28px * var(--gn-ui-scale, 1)) !important;
vertical-align: middle !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid .ant-table-tbody > tr > td .editable-cell-value-wrap,
body[data-ui-version="v2"] .gn-v2-data-grid .ant-table-tbody .ant-table-row > .ant-table-cell .editable-cell-value-wrap {
min-height: calc(28px * var(--gn-ui-scale, 1));
line-height: calc(28px * var(--gn-ui-scale, 1));
}
body[data-ui-version="v2"] .gn-v2-data-grid .data-grid-virtual-inline-editing .ant-form-item,
body[data-ui-version="v2"] .gn-v2-data-grid .data-grid-virtual-inline-editing .ant-form-item-row,
body[data-ui-version="v2"] .gn-v2-data-grid .data-grid-virtual-inline-editing .ant-form-item-control,
body[data-ui-version="v2"] .gn-v2-data-grid .data-grid-virtual-inline-editing .ant-form-item-control-input,
body[data-ui-version="v2"] .gn-v2-data-grid .data-grid-virtual-inline-editing .ant-form-item-control-input-content {
display: flex !important;
align-items: center !important;
height: 24px !important;
min-height: 24px !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid .data-grid-virtual-inline-editing .ant-form-item {
margin: 0 !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid .data-grid-virtual-inline-editing .ant-input,
body[data-ui-version="v2"] .gn-v2-data-grid .data-grid-virtual-inline-editing .ant-input-affix-wrapper,
body[data-ui-version="v2"] .gn-v2-data-grid .data-grid-virtual-inline-editing .ant-picker {
display: flex !important;
align-items: center !important;
width: 100% !important;
height: 24px !important;
min-height: 24px !important;
line-height: 24px !important;
margin: 0 !important;
box-sizing: border-box !important;
position: static !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-statusbar {
--gn-v2-statusbar-control-height: 26px;
container-type: inline-size;
container-name: gn-v2-data-grid-statusbar;
height: calc(40px * var(--gn-ui-scale, 1));
min-height: calc(40px * var(--gn-ui-scale, 1));
display: flex;
align-items: center;
gap: calc(8px * var(--gn-ui-scale, 1));
flex-wrap: nowrap;
padding: 0 calc(10px * var(--gn-ui-scale, 1)) !important;
border-top: 0.5px solid var(--gn-br-1);
background: var(--gn-bg-panel-2);
white-space: nowrap;
overflow-x: auto;
overflow-y: hidden;
scrollbar-width: thin;
scrollbar-color: var(--gn-br-3) transparent;
flex-shrink: 0;
box-sizing: border-box;
}
body[data-ui-version="v2"] .gn-v2-data-grid-statusbar::-webkit-scrollbar {
height: 7px;
}
body[data-ui-version="v2"] .gn-v2-data-grid-statusbar::-webkit-scrollbar-track {
background: transparent;
}
body[data-ui-version="v2"] .gn-v2-data-grid-statusbar::-webkit-scrollbar-thumb {
border-radius: 999px;
background: var(--gn-br-3);
}
body[data-ui-version="v2"] .gn-v2-data-grid-status-main {
display: inline-flex;
align-items: center;
gap: calc(8px * var(--gn-ui-scale, 1));
min-width: max-content;
flex: 0 0 auto;
overflow: visible;
}
body[data-ui-version="v2"] .gn-v2-data-grid-status-right {
display: inline-flex;
align-items: center;
justify-content: flex-end;
flex: 0 0 auto;
min-width: max-content;
max-width: none;
margin-left: auto;
overflow: visible;
}
@media (max-width: 1180px) {
body[data-ui-version="v2"] .gn-v2-data-grid-statusbar {
overflow-x: auto;
}
body[data-ui-version="v2"] .gn-v2-data-grid-status-main {
flex: 0 0 auto;
overflow: visible;
}
body[data-ui-version="v2"] .gn-v2-data-grid-status-center {
flex: 0 0 auto;
}
}
body[data-ui-version="v2"] .gn-v2-data-grid-status-summary {
display: inline-flex;
align-items: center;
gap: 4px;
padding: 3px;
border: 0.5px solid var(--gn-br-1);
border-radius: 7px;
background: var(--gn-bg-panel);
}
body[data-ui-version="v2"] .gn-v2-data-grid-status-summary span {
min-height: 22px;
padding: 0 7px;
border-radius: 5px;
color: var(--gn-fg-4);
font-family: var(--gn-font-mono);
font-size: 10.5px;
font-weight: 650;
line-height: 22px;
}
body[data-ui-version="v2"] .gn-v2-data-grid-status-summary span:not(:first-child) {
background: var(--gn-bg-panel-2);
}
body[data-ui-version="v2"] .gn-v2-data-grid-view-tabs,
body[data-ui-version="v2"] .gn-v2-data-grid-result-switcher,
body[data-ui-version="v2"] .gn-v2-data-grid-status-center,
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap,
body[data-ui-version="v2"] .gn-v2-data-grid .data-grid-pagination-shell,
body[data-ui-version="v2"] .gn-v2-data-grid-page-find,
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find {
display: inline-flex;
align-items: center;
align-self: center;
min-width: 0;
}
body[data-ui-version="v2"] .gn-v2-data-grid-view-tabs {
height: var(--gn-v2-statusbar-control-height);
min-height: var(--gn-v2-statusbar-control-height);
gap: 2px;
flex: 0 0 auto;
}
body[data-ui-version="v2"] .gn-v2-data-grid-view-tabs .ant-btn {
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
height: 26px !important;
min-height: 26px !important;
line-height: 26px !important;
padding: 0 calc(10px * var(--gn-ui-scale, 1)) !important;
border-radius: 7px;
border-color: transparent !important;
font-size: var(--gn-font-size-sm, 12px) !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-view-tabs .ant-btn-primary {
background: var(--gn-bg-active) !important;
color: var(--gn-fg-1) !important;
border-color: transparent !important;
box-shadow: none !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-result-switcher {
height: var(--gn-v2-statusbar-control-height);
min-height: var(--gn-v2-statusbar-control-height);
gap: 6px;
flex: 0 0 auto;
padding-left: 4px;
color: var(--gn-fg-4);
font-family: var(--gn-font-mono);
font-size: 10.5px;
line-height: 26px;
}
body[data-ui-version="v2"] .gn-v2-data-grid-result-switcher > span {
display: inline-flex;
align-items: center;
height: var(--gn-v2-statusbar-control-height);
line-height: 26px;
}
body[data-ui-version="v2"] .gn-v2-data-grid-result-switcher .ant-segmented {
display: inline-flex;
align-items: center;
height: var(--gn-v2-statusbar-control-height) !important;
min-height: var(--gn-v2-statusbar-control-height) !important;
padding: 2px !important;
border: 0.5px solid var(--gn-br-1);
border-radius: 7px;
background: var(--gn-bg-panel);
box-sizing: border-box;
}
body[data-ui-version="v2"] .gn-v2-data-grid-result-switcher .ant-segmented-group {
display: inline-flex;
align-items: center;
height: 20px;
}
body[data-ui-version="v2"] .gn-v2-data-grid-result-switcher .ant-segmented-item {
display: inline-flex;
align-items: center;
justify-content: center;
height: 20px;
min-height: 20px;
border-radius: 5px;
line-height: 20px;
}
body[data-ui-version="v2"] .gn-v2-data-grid-result-switcher .ant-segmented-item-label {
display: inline-flex;
align-items: center;
justify-content: center;
height: 20px;
min-height: 20px;
padding: 0 8px;
color: var(--gn-fg-3);
font-size: var(--gn-font-size-sm, 12px);
line-height: 20px;
}
body[data-ui-version="v2"] .gn-v2-data-grid-result-switcher .ant-segmented-item-selected .ant-segmented-item-label {
color: var(--gn-fg-1);
}
body[data-ui-version="v2"] .gn-v2-data-grid-status-center {
height: var(--gn-v2-statusbar-control-height);
min-height: var(--gn-v2-statusbar-control-height);
gap: 4px;
flex: 0 0 auto;
min-width: max-content;
overflow: visible;
color: var(--gn-fg-4);
font-family: var(--gn-font-mono);
font-size: 10px;
line-height: 26px;
opacity: 0.88;
}
body[data-ui-version="v2"] .gn-v2-data-grid-status-center > span {
display: inline-flex;
align-items: center;
height: var(--gn-v2-statusbar-control-height);
flex: 0 0 auto;
line-height: 26px;
white-space: nowrap;
}
body[data-ui-version="v2"] .gn-v2-data-grid-status-center > span:not(:last-child)::after {
content: '';
display: inline-block;
width: 1px;
height: 10px;
margin-left: 6px;
vertical-align: -1px;
background: var(--gn-br-1);
}
body[data-ui-version="v2"] .gn-v2-data-grid-live {
color: var(--gn-accent-2) !important;
font-weight: 700;
}
body[data-ui-version="v2"] .gn-v2-data-grid-live::before {
content: '';
display: inline-block;
width: 6px;
height: 6px;
margin-right: 4px;
border-radius: 50%;
background: var(--gn-accent);
box-shadow: 0 0 0 3px var(--gn-accent-soft);
vertical-align: 1px;
}
body[data-ui-version="v2"] .gn-v2-data-grid-page-find {
height: var(--gn-v2-statusbar-control-height);
min-height: var(--gn-v2-statusbar-control-height);
gap: 2px;
flex: 0 0 auto;
max-width: 214px;
margin-left: 0;
overflow: visible;
}
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find {
display: grid !important;
grid-template-columns: 180px 28px;
column-gap: 4px;
height: 28px;
min-height: 28px;
gap: 4px;
flex: 0 0 auto;
max-width: 244px;
margin-left: 0;
overflow: hidden;
align-items: stretch;
box-sizing: border-box;
}
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find-field {
display: flex;
align-items: center;
flex: 0 0 180px;
width: 180px;
min-width: 180px;
height: 28px;
min-height: 28px;
align-self: stretch;
box-sizing: border-box;
}
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .ant-select {
display: flex !important;
align-items: center !important;
flex: 0 0 180px;
height: 28px !important;
min-height: 28px !important;
width: 180px !important;
min-width: 180px;
align-self: stretch;
vertical-align: top;
}
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .ant-input-affix-wrapper,
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .ant-select-selector {
display: flex !important;
align-items: center !important;
width: 180px !important;
min-width: 180px;
height: 28px !important;
min-height: 28px !important;
line-height: 28px !important;
border-radius: 6px !important;
border: 0.5px solid var(--gn-br-2) !important;
background: var(--gn-bg-input) !important;
box-shadow: none !important;
padding-top: 0 !important;
padding-bottom: 0 !important;
box-sizing: border-box !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .ant-btn {
align-self: stretch;
width: 28px !important;
min-width: 28px !important;
height: 28px !important;
min-height: 28px !important;
margin: 0 !important;
padding: 0 !important;
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
line-height: 1 !important;
border-width: 0.5px !important;
border-style: solid !important;
border-color: var(--gn-br-2) !important;
border-radius: 6px !important;
background: var(--gn-bg-input) !important;
box-shadow: none !important;
outline: none !important;
box-sizing: border-box !important;
vertical-align: top !important;
position: relative;
top: 0 !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find-submit {
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
flex: 0 0 28px;
width: 28px !important;
min-width: 28px !important;
height: 28px !important;
min-height: 28px !important;
align-self: stretch;
}
body[data-ui-version="v2"] .gn-v2-data-grid-page-find .ant-input-affix-wrapper {
width: 160px !important;
min-width: 160px;
max-width: 160px !important;
height: 26px !important;
min-height: 26px !important;
line-height: 26px !important;
border-radius: 6px !important;
border: 0.5px solid var(--gn-br-2) !important;
background: var(--gn-bg-input) !important;
box-shadow: none !important;
padding-inline: 8px !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-page-find .ant-input-affix-wrapper .ant-input,
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .ant-input-affix-wrapper .ant-input {
border: none !important;
outline: none !important;
background: transparent !important;
box-shadow: none !important;
border-radius: 0 !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-page-find .ant-input-affix-wrapper > input.ant-input:focus,
body[data-ui-version="v2"] .gn-v2-data-grid-page-find .ant-input-affix-wrapper > input.ant-input:focus-visible,
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .ant-input-affix-wrapper > input.ant-input:focus,
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .ant-input-affix-wrapper > input.ant-input:focus-visible {
border: none !important;
box-shadow: none !important;
outline: none !important;
background: transparent !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-page-find .ant-input-affix-wrapper.ant-input-affix-wrapper-focused,
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .ant-input-affix-wrapper.ant-input-affix-wrapper-focused {
border-color: color-mix(in srgb, var(--gn-info) 38%, var(--gn-br-2)) !important;
box-shadow: none !important;
outline: none !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .ant-btn:focus,
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .ant-btn:focus-visible,
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .ant-btn:active,
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .ant-btn.ant-btn-default:focus,
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .ant-btn.ant-btn-default:focus-visible,
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .ant-btn.ant-btn-icon-only:focus,
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .ant-btn.ant-btn-icon-only:focus-visible {
outline: none !important;
box-shadow: none !important;
border-color: var(--gn-br-3) !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .ant-btn::after,
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .ant-btn:focus::after,
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .ant-btn:focus-visible::after,
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .ant-btn:active::after {
display: none !important;
box-shadow: none !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .ant-select-selector,
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .ant-select-focused .ant-select-selector {
border-color: transparent !important;
background: transparent !important;
box-shadow: none !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-page-find .ant-btn {
width: 26px !important;
height: 26px !important;
min-height: 26px !important;
padding: 0 !important;
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
line-height: 1 !important;
border-width: 0.5px !important;
border-style: solid !important;
border-color: var(--gn-br-2) !important;
border-radius: 6px !important;
background: var(--gn-bg-input) !important;
box-shadow: none !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-page-find > span {
overflow: hidden;
color: var(--gn-fg-5);
text-overflow: ellipsis;
}
body[data-ui-version="v2"] .gn-v2-data-grid-statusbar [data-grid-page-find="true"] {
padding: 0;
border: none;
border-radius: 7px;
}
body[data-ui-version="v2"] .gn-v2-data-grid-statusbar [data-grid-column-quick-find="true"] {
padding: 0;
border: none;
border-radius: 7px;
}
body[data-ui-version="v2"] .gn-v2-data-grid-statusbar [data-grid-view-switcher="true"] {
margin-left: 0;
}
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap {
height: var(--gn-v2-statusbar-control-height);
min-height: var(--gn-v2-statusbar-control-height);
gap: 4px;
flex: 0 1 auto;
min-width: 0;
max-width: 100%;
margin-left: 0;
padding: 0 !important;
border-top: none !important;
background: transparent;
justify-content: flex-end !important;
overflow-x: auto;
overflow-y: hidden;
scrollbar-width: none;
}
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap::-webkit-scrollbar {
display: none;
}
body[data-ui-version="v2"] .gn-v2-data-grid .data-grid-pagination-shell {
gap: 4px;
flex: 0 0 max-content;
min-width: max-content;
align-items: center !important;
align-self: center;
justify-content: flex-start !important;
flex-wrap: nowrap !important;
max-width: none !important;
height: 26px !important;
min-height: 26px !important;
padding: 0 !important;
background: transparent !important;
border: none !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-statusbar .ant-btn,
body[data-ui-version="v2"] .gn-v2-data-grid-statusbar .ant-input-affix-wrapper,
body[data-ui-version="v2"] .gn-v2-data-grid-statusbar .ant-select,
body[data-ui-version="v2"] .gn-v2-data-grid-statusbar .ant-select-selector,
body[data-ui-version="v2"] .gn-v2-data-grid-statusbar .data-grid-pagination-page-chip,
body[data-ui-version="v2"] .gn-v2-data-grid-statusbar .data-grid-pagination-summary-value {
box-sizing: border-box;
height: var(--gn-v2-statusbar-control-height) !important;
min-height: var(--gn-v2-statusbar-control-height) !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-statusbar .ant-btn,
body[data-ui-version="v2"] .gn-v2-data-grid-statusbar .ant-btn > span,
body[data-ui-version="v2"] .gn-v2-data-grid-statusbar .ant-btn .ant-btn-icon,
body[data-ui-version="v2"] .gn-v2-data-grid-statusbar .anticon {
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
line-height: 1 !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-statusbar .ant-btn > span {
height: 100%;
}
body[data-ui-version="v2"] .gn-v2-data-grid-statusbar .anticon svg {
display: block;
}
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .data-grid-pagination-summary {
display: inline-flex;
align-items: center;
gap: 0;
margin-right: 0;
padding: 0 !important;
min-height: 26px !important;
border: none !important;
border-radius: 0 !important;
background: transparent !important;
box-shadow: none !important;
color: var(--gn-fg-3);
font-family: var(--gn-font-mono);
font-size: 11.5px;
}
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .data-grid-pagination-summary-value {
display: inline-flex;
align-items: center;
height: 26px;
margin-right: 2px;
color: var(--gn-fg-1);
font-family: var(--gn-font-mono);
font-size: 11.5px;
font-weight: 700;
line-height: 26px;
}
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .ant-btn {
width: 26px !important;
min-width: 26px !important;
height: 26px !important;
min-height: 26px !important;
padding: 0 !important;
display: inline-flex !important;
align-items: center !important;
justify-content: center;
border-width: 0.5px !important;
border-style: solid !important;
border-color: var(--gn-br-2) !important;
border-radius: 6px !important;
background: var(--gn-bg-input) !important;
box-shadow: none !important;
line-height: 1 !important;
vertical-align: top;
}
body[data-ui-version="v2"] .gn-v2-data-grid-page-find .ant-btn:hover,
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .ant-btn:hover,
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .ant-btn:hover {
border-color: var(--gn-br-3) !important;
background: var(--gn-bg-panel-2) !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-page-find .ant-btn:disabled,
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .ant-btn:disabled,
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .ant-btn:disabled {
border-color: var(--gn-br-1) !important;
background: var(--gn-bg-panel) !important;
color: var(--gn-fg-5) !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .ant-btn .ant-btn-icon,
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .ant-btn .anticon,
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .ant-btn svg {
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
width: 12px;
height: 12px;
line-height: 1 !important;
margin-inline-end: 0 !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .data-grid-pagination-page-chip {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 4px;
height: 26px;
min-height: 26px;
padding: 0 6px;
border: 0.5px solid var(--gn-br-1);
border-radius: 4px;
background: transparent;
color: var(--gn-fg-4);
font-family: var(--gn-font-mono);
font-size: 11.5px;
line-height: 26px;
}
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .data-grid-pagination-page-chip strong {
color: var(--gn-fg-1);
}
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .data-grid-pagination-jump {
display: inline-flex;
align-items: center;
gap: 3px;
height: 26px;
min-height: 26px;
color: var(--gn-fg-4);
font-family: var(--gn-font-mono);
font-size: 11px;
line-height: 26px;
white-space: nowrap;
}
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .data-grid-pagination-jump-label {
color: var(--gn-fg-4);
font-size: 11px;
}
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .data-grid-pagination-jump-input,
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .data-grid-pagination-jump-input.ant-input-number,
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .data-grid-pagination-jump-button.ant-btn {
height: 26px !important;
min-height: 26px !important;
border-width: 0.5px !important;
border-style: solid !important;
border-color: var(--gn-br-2) !important;
border-radius: 5px !important;
background: var(--gn-bg-input) !important;
box-shadow: none !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .data-grid-pagination-jump-input,
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .data-grid-pagination-jump-input.ant-input-number {
display: inline-flex !important;
align-items: stretch !important;
width: 44px !important;
min-width: 44px !important;
max-width: 44px !important;
line-height: 26px !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .data-grid-pagination-jump-input .ant-input-number-input-wrap,
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .data-grid-pagination-jump-input .ant-input-number-input {
height: 26px !important;
line-height: 26px !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .data-grid-pagination-jump-input .ant-input-number-input {
padding: 0 4px !important;
color: var(--gn-fg-1) !important;
font-family: var(--gn-font-mono);
font-size: 11px !important;
font-weight: 700;
text-align: center;
background: transparent !important;
box-shadow: none !important;
font-variant-numeric: tabular-nums;
}
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .data-grid-pagination-jump-input.ant-input-number-focused,
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .data-grid-pagination-jump-input.ant-input-number:focus-within {
border-color: color-mix(in srgb, var(--gn-info) 38%, var(--gn-br-2)) !important;
box-shadow: none !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .data-grid-pagination-jump-button.ant-btn {
width: 26px !important;
min-width: 26px !important;
padding: 0 !important;
color: var(--gn-fg-2) !important;
font-size: 11px !important;
font-weight: 700;
}
@container gn-v2-data-grid-statusbar (max-width: 1120px) {
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .data-grid-pagination-summary {
display: none;
}
}
@container gn-v2-data-grid-statusbar (max-width: 960px) {
body[data-ui-version="v2"] .gn-v2-data-grid-page-find {
max-width: 154px;
}
body[data-ui-version="v2"] .gn-v2-data-grid-page-find .ant-input-affix-wrapper {
width: 112px !important;
min-width: 112px;
max-width: 112px !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .data-grid-pagination-jump-label {
display: none;
}
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .data-grid-pagination-jump-input,
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .data-grid-pagination-jump-input.ant-input-number {
width: 38px !important;
min-width: 38px !important;
max-width: 38px !important;
}
}
@container gn-v2-data-grid-statusbar (max-width: 760px) {
body[data-ui-version="v2"] .gn-v2-data-grid-result-switcher > span {
display: none;
}
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find,
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .ant-select,
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .ant-input-affix-wrapper,
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .ant-select-selector {
width: 140px !important;
min-width: 140px !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find {
grid-template-columns: 140px 28px !important;
max-width: 180px;
}
}
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .data-grid-pagination-size-select,
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .data-grid-pagination-size-select.ant-select,
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .data-grid-pagination-size-select.ant-select-single,
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .data-grid-pagination-size-select.ant-select-single.ant-select-sm {
display: inline-flex !important;
align-items: center !important;
width: 66px !important;
min-width: 66px !important;
max-width: 66px !important;
height: 26px !important;
min-height: 26px !important;
line-height: 26px !important;
vertical-align: top;
}
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .data-grid-pagination-size-select .ant-select-selector {
height: 26px !important;
min-height: 26px !important;
padding: 0 20px 0 8px !important;
border-radius: 5px !important;
font-family: var(--gn-font-mono);
font-size: 11px !important;
display: flex !important;
align-items: center !important;
line-height: 26px !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .data-grid-pagination-size-select .ant-select-selection-wrap,
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .data-grid-pagination-size-select .ant-select-selection-item {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
height: 26px !important;
line-height: 26px !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .data-grid-pagination-size-select .ant-select-arrow {
top: 50% !important;
inset-inline-end: 6px !important;
width: 12px;
height: 12px;
margin-top: 0 !important;
transform: translateY(-50%) !important;
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
line-height: 1 !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .data-grid-pagination-size-select .ant-select-arrow .anticon,
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .data-grid-pagination-size-select .ant-select-arrow svg {
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
width: 12px;
height: 12px;
line-height: 1 !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .data-grid-pagination-size-select.ant-select-focused .ant-select-selector,
body[data-ui-version="v2"] .gn-v2-data-grid-pagination-wrap .data-grid-pagination-size-select.ant-select-open .ant-select-selector {
border-color: color-mix(in srgb, var(--gn-info) 38%, var(--gn-br-2)) !important;
box-shadow: none !important;
outline: none !important;
}
/* ─── V2 context menus, including portal-rendered custom menus ─ */
body[data-ui-version="v2"] .gn-v2-context-menu {
width: 260px !important;
min-width: 220px !important;
border: 0.5px solid var(--gn-br-2) !important;
border-radius: 10px !important;
background: var(--gn-bg-panel) !important;
box-shadow: var(--gn-shadow-lg) !important;
color: var(--gn-fg-1) !important;
overflow: hidden;
}
body[data-ui-version="v2"] .gn-v2-context-menu > div {
color: inherit;
}
body[data-ui-version="v2"] .gn-v2-context-menu > div:not(:empty) {
font-size: 12.5px;
}
body[data-ui-version="v2"] .gn-v2-table-context-menu-popup .ant-dropdown-menu {
display: none !important;
}
body[data-ui-version="v2"] .gn-v2-table-context-menu-popup {
width: 264px !important;
max-width: calc(100vw - 24px);
}
body[data-ui-version="v2"] .gn-v2-sidebar-context-menu-portal {
width: 264px;
max-width: calc(100vw - 24px);
}
body[data-ui-version="v2"] .gn-v2-table-overview-context-menu-portal {
width: 264px;
max-width: calc(100vw - 24px);
}
body[data-ui-version="v2"] .gn-v2-table-context-menu {
width: 264px;
max-height: min(582px, var(--gn-v2-context-menu-max-height, calc(100vh - 28px)));
display: flex;
flex-direction: column;
box-sizing: border-box;
overflow: hidden;
padding: 0;
border: 0.5px solid var(--gn-br-2);
border-radius: 10px;
background: var(--gn-bg-panel);
color: var(--gn-fg-1);
box-shadow: var(--gn-shadow-lg);
font-size: 12.5px;
animation: gnV2ContextMenuFadeIn 0.08s ease-out;
}
body[data-ui-version="v2"] .gn-v2-context-menu-body {
flex: 1 1 auto;
min-height: 0;
max-height: none;
overflow-y: auto;
overflow-x: hidden;
padding: 4px 4px 20px;
box-sizing: border-box;
overscroll-behavior: contain;
scroll-padding-bottom: 20px;
}
body[data-ui-version="v2"] .gn-v2-context-menu-body::-webkit-scrollbar {
width: 7px;
}
body[data-ui-version="v2"] .gn-v2-context-menu-body::-webkit-scrollbar-track {
background: transparent;
}
body[data-ui-version="v2"] .gn-v2-context-menu-body::-webkit-scrollbar-thumb {
border: 2px solid transparent;
border-radius: 999px;
background: color-mix(in srgb, var(--gn-fg-5) 58%, transparent);
background-clip: padding-box;
}
body[data-ui-version="v2"] .gn-v2-context-menu-header {
flex: 0 0 auto;
display: grid;
grid-template-columns: 16px minmax(0, 1fr) auto;
column-gap: 6px;
row-gap: 3px;
align-items: center;
padding: 10px 12px;
border-bottom: 0.5px solid var(--gn-br-1);
background: var(--gn-bg-panel-2);
}
body[data-ui-version="v2"] .gn-v2-context-menu-table-icon {
width: 14px;
height: 14px;
display: inline-flex;
align-items: center;
justify-content: center;
color: var(--gn-accent);
font-size: 13px;
}
body[data-ui-version="v2"] .gn-v2-context-menu-heading {
min-width: 0;
display: contents;
}
body[data-ui-version="v2"] .gn-v2-context-menu-heading strong {
grid-column: 2;
min-width: 0;
overflow: hidden;
color: var(--gn-fg-1);
font-family: var(--gn-font-mono);
font-size: 12.5px;
font-weight: 600;
line-height: 1.25;
text-overflow: ellipsis;
white-space: nowrap;
}
body[data-ui-version="v2"] .gn-v2-context-menu-heading small {
grid-column: 1 / -1;
overflow: hidden;
color: var(--gn-fg-4);
font-family: var(--gn-font-mono);
font-size: 10.5px;
line-height: 1.25;
text-overflow: ellipsis;
white-space: nowrap;
}
body[data-ui-version="v2"] .gn-v2-context-menu-engine-pill {
grid-column: 3;
max-width: 62px;
overflow: hidden;
padding: 1px 4px;
border-radius: 3px;
background: var(--gn-bg-active);
color: var(--gn-fg-4);
font-family: var(--gn-font-mono);
font-size: 9px;
font-weight: 600;
line-height: 1.2;
text-overflow: ellipsis;
white-space: nowrap;
}
body[data-ui-version="v2"] .gn-v2-context-menu-section-title {
padding: 8px 12px 2px;
color: var(--gn-fg-5);
font-size: 9.5px;
font-weight: 700;
letter-spacing: 0.08em;
text-transform: uppercase;
}
body[data-ui-version="v2"] .gn-v2-context-menu-divider {
height: 1px;
margin: 4px 0;
background: var(--gn-br-1);
}
body[data-ui-version="v2"] .gn-v2-context-menu-item {
width: 100%;
height: 28px;
display: flex;
gap: 8px;
align-items: center;
border: 0;
border-radius: 5px;
padding: 0 8px 0 10px;
background: transparent;
color: var(--gn-fg-1);
font: inherit;
font-size: 12.5px;
font-weight: 500;
text-align: left;
white-space: nowrap;
cursor: default;
}
body[data-ui-version="v2"] .gn-v2-context-menu-item:hover {
background: var(--gn-bg-active);
color: var(--gn-fg-1);
}
body[data-ui-version="v2"] .gn-v2-context-menu-item.is-disabled,
body[data-ui-version="v2"] .gn-v2-context-menu-item:disabled {
opacity: 0.48;
cursor: not-allowed;
}
body[data-ui-version="v2"] .gn-v2-context-menu-item.is-disabled:hover,
body[data-ui-version="v2"] .gn-v2-context-menu-item:disabled:hover {
background: transparent;
color: var(--gn-fg-1);
}
body[data-ui-version="v2"] .gn-v2-context-menu-item.is-featured {
color: var(--gn-info);
}
body[data-ui-version="v2"] .gn-v2-context-menu-item.is-featured:hover {
background: var(--gn-info-soft);
}
body[data-ui-version="v2"] .gn-v2-context-menu-item.is-ai {
color: var(--gn-info);
}
body[data-ui-version="v2"] .gn-v2-context-menu-item.is-ai:not(.is-featured) {
background: transparent;
}
body[data-ui-version="v2"] .gn-v2-context-menu-item.is-ai:not(.is-featured):hover {
background: var(--gn-info-soft);
}
body[data-ui-version="v2"] .gn-v2-context-menu-item.is-danger {
color: var(--gn-danger);
}
body[data-ui-version="v2"] .gn-v2-context-menu-item.is-danger:hover {
background: rgba(220, 38, 38, 0.08);
}
body[data-ui-version="v2"][data-theme="dark"] .gn-v2-context-menu-item.is-danger:hover {
background: rgba(248, 113, 113, 0.12);
}
body[data-ui-version="v2"] .gn-v2-context-menu-item-icon {
width: 14px;
flex: 0 0 14px;
display: inline-flex;
align-items: center;
justify-content: center;
color: var(--gn-fg-4);
font-size: 13px;
}
body[data-ui-version="v2"] .gn-v2-context-menu-item.is-featured .gn-v2-context-menu-item-icon,
body[data-ui-version="v2"] .gn-v2-context-menu-item.is-ai .gn-v2-context-menu-item-icon {
color: var(--gn-info);
}
body[data-ui-version="v2"] .gn-v2-group-context-menu .gn-v2-context-menu-item .anticon-check-square,
body[data-ui-version="v2"] .gn-v2-group-context-menu .gn-v2-context-menu-item.is-selected {
color: var(--gn-accent);
}
body[data-ui-version="v2"] .gn-v2-database-context-menu .gn-v2-context-menu-table-icon {
color: var(--gn-info);
}
body[data-ui-version="v2"] .gn-v2-context-menu-item.is-danger .gn-v2-context-menu-item-icon {
color: var(--gn-danger);
}
body[data-ui-version="v2"] .gn-v2-context-menu-item-title {
flex: 1 1 auto;
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
body[data-ui-version="v2"] .gn-v2-context-menu-kbd {
flex: 0 0 auto;
color: var(--gn-fg-5);
font-family: var(--gn-font-mono);
font-size: 10.5px;
font-weight: 500;
text-align: center;
}
@keyframes gnV2ContextMenuFadeIn {
from {
opacity: 0;
transform: translateY(-2px) scale(0.98);
}
to {
opacity: 1;
transform: translateY(0) scale(1);
}
}
/* ─── V2 Query editor ─ */
body[data-ui-version="v2"] .gn-v2-query-editor {
background: var(--gn-bg-app);
}
body[data-ui-version="v2"] .gn-v2-query-editor-pane {
border-bottom: 0.5px solid var(--gn-br-1);
background: var(--gn-bg-panel);
}
body[data-ui-version="v2"] .gn-v2-query-header {
min-height: 52px;
padding: 10px 14px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
border-bottom: 0.5px solid var(--gn-br-1);
background: var(--gn-bg-panel);
}
body[data-ui-version="v2"] .gn-v2-query-title {
min-width: 0;
display: flex;
flex-direction: column;
gap: 2px;
}
body[data-ui-version="v2"] .gn-v2-query-title span,
body[data-ui-version="v2"] .gn-v2-designer-title span {
color: var(--gn-fg-4);
font-size: 10.5px;
font-weight: 750;
letter-spacing: 0;
text-transform: uppercase;
}
body[data-ui-version="v2"] .gn-v2-query-title strong,
body[data-ui-version="v2"] .gn-v2-designer-title strong {
min-width: 0;
color: var(--gn-fg-1);
font-family: var(--gn-font-mono);
font-size: 15px;
font-weight: 750;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
body[data-ui-version="v2"] .gn-v2-query-context,
body[data-ui-version="v2"] .gn-v2-designer-meta {
display: inline-flex;
align-items: center;
gap: 6px;
flex-wrap: wrap;
justify-content: flex-end;
min-width: 0;
}
body[data-ui-version="v2"] .gn-v2-query-context span,
body[data-ui-version="v2"] .gn-v2-designer-meta span {
min-width: 0;
max-width: 220px;
height: 24px;
padding: 0 8px;
display: inline-flex;
align-items: center;
gap: 5px;
border: 0.5px solid var(--gn-br-1);
border-radius: 6px;
background: var(--gn-bg-panel-2);
color: var(--gn-fg-3);
font-family: var(--gn-font-mono);
font-size: 11px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
body[data-ui-version="v2"] .gn-v2-query-toolbar,
body[data-ui-version="v2"] .gn-v2-designer-toolbar {
padding: 8px 12px !important;
gap: 6px !important;
flex-wrap: wrap;
background: var(--gn-bg-panel-2) !important;
border: 0 !important;
border-radius: 0 !important;
}
body[data-ui-version="v2"] .gn-v2-query-toolbar {
min-height: 48px;
padding: 8px 12px !important;
gap: 6px 10px !important;
align-items: center !important;
background: var(--gn-bg-panel) !important;
border-bottom: 0.5px solid var(--gn-br-1) !important;
}
body[data-ui-version="v2"] .gn-v2-query-toolbar-selects,
body[data-ui-version="v2"] .gn-v2-query-toolbar-actions {
min-width: 0;
gap: 6px !important;
}
body[data-ui-version="v2"] .gn-v2-query-toolbar-selects {
flex: 0 1 auto !important;
flex-wrap: nowrap;
max-width: 760px;
}
body[data-ui-version="v2"] .gn-v2-query-toolbar-actions {
flex: 0 1 auto !important;
flex-wrap: wrap;
justify-content: flex-start;
}
body[data-ui-version="v2"] .gn-v2-query-toolbar .ant-select {
min-width: 0;
}
body[data-ui-version="v2"] .gn-v2-query-toolbar-connection-select {
width: 140px !important;
flex: 0 1 140px !important;
}
body[data-ui-version="v2"] .gn-v2-query-toolbar-database-select {
width: 166px !important;
flex: 1 1 166px !important;
max-width: 220px;
}
body[data-ui-version="v2"] .gn-v2-query-toolbar-max-rows-select {
width: 132px !important;
flex: 0 0 132px !important;
}
body[data-ui-version="v2"] .gn-v2-query-toolbar-transaction-mode-select {
width: 74px !important;
flex: 0 0 74px !important;
}
body[data-ui-version="v2"] .gn-v2-query-toolbar-transaction-delay-select {
width: 62px !important;
flex: 0 0 62px !important;
}
body[data-ui-version="v2"] .gn-v2-query-toolbar .ant-select-selector {
height: 32px !important;
padding: 0 10px !important;
border-radius: 9px !important;
}
body[data-ui-version="v2"] .gn-v2-query-toolbar .ant-select-selection-item,
body[data-ui-version="v2"] .gn-v2-query-toolbar .ant-select-selection-placeholder {
line-height: 30px !important;
}
body[data-ui-version="v2"] .gn-v2-query-toolbar .ant-btn {
height: 32px !important;
padding: 0 11px !important;
border-radius: 9px !important;
font-size: 12.5px !important;
}
body[data-ui-version="v2"] .gn-v2-query-toolbar-action-group.ant-btn-group {
display: inline-flex !important;
align-items: center;
flex: 0 0 auto;
gap: 6px;
}
body[data-ui-version="v2"] .gn-v2-query-toolbar-action-group.ant-btn-group > .ant-btn {
flex: 0 0 auto;
border-radius: 9px !important;
}
body[data-ui-version="v2"] .gn-v2-query-toolbar-action-group.ant-btn-group > .ant-btn:not(:first-child) {
margin-left: 0 !important;
}
body[data-ui-version="v2"] .gn-v2-query-toolbar-action-group.ant-btn-group > .ant-btn::before {
display: none !important;
}
body[data-ui-version="v2"] .gn-v2-query-transaction-commit-button {
display: inline-flex !important;
align-items: center;
gap: 6px;
border-color: transparent !important;
background: var(--gn-accent-soft) !important;
color: var(--gn-accent-2) !important;
font-weight: 750 !important;
}
body[data-ui-version="v2"] .gn-v2-query-transaction-commit-button .gn-v2-toolbar-kbd {
margin-left: 0;
min-width: 18px;
justify-content: center;
border: none;
background: rgba(22, 163, 74, 0.18);
color: var(--gn-accent-2);
}
body[data-ui-version="v2"] .gn-v2-query-toolbar-icon-action.ant-btn,
body[data-ui-version="v2"] .gn-v2-query-toolbar .ant-btn-icon-only {
width: 34px !important;
padding: 0 !important;
}
body[data-ui-version="v2"] .gn-v2-query-toolbar-run-action.ant-btn {
min-width: 64px;
padding: 0 13px !important;
font-weight: 650 !important;
}
body[data-ui-version="v2"] .gn-v2-query-toolbar-ai-action.ant-btn {
font-weight: 650 !important;
}
@media (max-width: 900px) {
body[data-ui-version="v2"] .gn-v2-query-toolbar-selects {
flex: 1 1 100% !important;
max-width: none;
}
body[data-ui-version="v2"] .gn-v2-query-toolbar-actions {
width: 100%;
justify-content: flex-start;
}
}
body[data-ui-version="v2"] .gn-v2-query-monaco-shell {
overflow: hidden;
border-top: 0.5px solid var(--gn-br-1);
border-bottom: 0.5px solid var(--gn-br-1);
background: var(--gn-bg-panel);
}
body[data-ui-version="v2"] .gn-v2-query-resizer {
height: 7px !important;
background: var(--gn-bg-panel-2) !important;
border-bottom: 0.5px solid var(--gn-br-1);
}
body[data-ui-version="v2"] .gn-v2-query-resizer:hover {
background: var(--gn-bg-hover) !important;
}
body[data-ui-version="v2"] .gn-v2-query-results {
background: var(--gn-bg-app);
}
body[data-ui-version="v2"] .gn-v2-query-results .query-result-tabs > .ant-tabs-nav {
background: var(--gn-bg-panel-2);
padding-left: 8px;
min-height: 38px;
}
body[data-ui-version="v2"] .gn-v2-query-results .query-result-tabs > .ant-tabs-nav .ant-tabs-extra-content {
display: inline-flex;
align-items: center;
padding-right: 8px;
}
body[data-ui-version="v2"] .gn-v2-query-results .query-result-tabs > .ant-tabs-nav .ant-tabs-tab {
width: auto !important;
min-width: 0 !important;
max-width: 148px !important;
height: 30px !important;
min-height: 30px;
margin: 4px 6px 4px 0 !important;
padding: 0 9px !important;
border: 0.5px solid var(--gn-br-1) !important;
border-radius: 999px !important;
background: color-mix(in srgb, var(--gn-bg-panel) 72%, transparent) !important;
color: var(--gn-fg-3) !important;
align-items: center !important;
justify-content: center !important;
font-size: 14px;
}
body[data-ui-version="v2"] .gn-v2-query-results .query-result-tabs > .ant-tabs-nav .ant-tabs-nav-list {
align-items: center;
width: auto;
}
body[data-ui-version="v2"] .gn-v2-query-results .query-result-tabs > .ant-tabs-nav .ant-tabs-tab-btn {
width: auto !important;
height: 100%;
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
font-size: 14px !important;
line-height: 1 !important;
}
body[data-ui-version="v2"] .gn-v2-query-results .query-result-tab-label {
height: 100%;
line-height: 1;
user-select: none;
-webkit-user-select: none;
}
body[data-ui-version="v2"] .gn-v2-query-results .query-result-tab-text {
font-size: 14px;
font-weight: 700;
}
body[data-ui-version="v2"] .gn-v2-query-results .query-result-tabs > .ant-tabs-nav .ant-tabs-tab:hover {
background: var(--gn-bg-hover) !important;
color: var(--gn-fg-1) !important;
}
body[data-ui-version="v2"] .gn-v2-query-results .query-result-tabs > .ant-tabs-nav .ant-tabs-tab.ant-tabs-tab-active {
border-color: color-mix(in srgb, var(--gn-accent) 38%, var(--gn-br-1)) !important;
background: color-mix(in srgb, var(--gn-accent) 10%, var(--gn-bg-panel)) !important;
color: var(--gn-fg-1) !important;
}
body[data-ui-version="v2"] .gn-v2-query-results .query-result-tabs > .ant-tabs-nav .ant-tabs-tab.ant-tabs-tab-active::after {
display: none;
}
body[data-ui-version="v2"] .gn-v2-query-results .query-result-tab-count {
background: color-mix(in srgb, var(--gn-accent) 12%, var(--gn-bg-active));
color: var(--gn-fg-2);
}
body[data-ui-version="v2"] .gn-v2-query-result-panel-header {
background: var(--gn-bg-panel-2);
border-bottom-color: var(--gn-br-1);
}
body[data-ui-version="v2"] .gn-v2-query-result-panel-header .query-result-panel-header-title {
color: var(--gn-fg-3);
}
body[data-ui-version="v2"] .gn-v2-query-empty,
body[data-ui-version="v2"] .gn-v2-query-success {
display: flex;
align-items: center;
justify-content: center;
color: var(--gn-fg-4) !important;
background: var(--gn-bg-app);
}
body[data-ui-version="v2"] .gn-v2-query-empty > div,
body[data-ui-version="v2"] .gn-v2-query-success > div {
display: flex;
flex-direction: column;
align-items: center;
gap: 6px;
padding: 18px;
text-align: center;
}
body[data-ui-version="v2"] .gn-v2-query-empty strong {
color: var(--gn-fg-1);
font-size: 13px;
}
body[data-ui-version="v2"] .gn-v2-query-empty span {
color: var(--gn-fg-4);
font-size: 12px;
}
body[data-ui-version="v2"] .gn-v2-query-error {
background: var(--gn-bg-panel) !important;
}
body[data-ui-version="v2"] .gn-v2-query-error .custom-scrollbar {
border-radius: 8px !important;
}
/* ─── V2 table designer ─ */
body[data-ui-version="v2"] .gn-v2-table-designer {
padding: 0 !important;
background: var(--gn-bg-app);
--gn-v2-designer-header-height: 40px;
--gn-v2-designer-header-padding: 0 8px;
--gn-v2-designer-cell-padding: 3px 8px;
--gn-v2-designer-selection-column-width: 44px;
--gn-v2-designer-row-selection-min-height: 14px;
--gn-v2-designer-content-font-size: 12px;
}
body[data-ui-version="v2"] .gn-v2-designer-tabs {
padding: 0 !important;
border: 0 !important;
border-radius: 0 !important;
background: var(--gn-bg-app) !important;
}
body[data-ui-version="v2"] .gn-v2-designer-tabs > .ant-tabs-nav {
padding: 0 10px;
background: var(--gn-bg-panel-2);
}
body[data-ui-version="v2"] .gn-v2-table-designer .gn-v2-designer-tabs {
background: var(--gn-bg-panel) !important;
}
body[data-ui-version="v2"] .gn-v2-table-designer .gn-v2-designer-tabs > .ant-tabs-nav {
padding: 0 12px !important;
min-height: 34px;
background: var(--gn-bg-panel) !important;
border-bottom: 0 !important;
box-shadow: none !important;
}
body[data-ui-version="v2"] .gn-v2-table-designer .gn-v2-designer-tabs > .ant-tabs-nav .ant-tabs-nav-list {
width: auto !important;
min-height: 34px;
gap: 0;
}
body[data-ui-version="v2"] .gn-v2-table-designer .gn-v2-designer-tabs > .ant-tabs-nav .ant-tabs-tab {
height: 34px;
min-height: 34px;
padding-inline: 12px !important;
border-right: 0 !important;
}
body[data-ui-version="v2"] .gn-v2-table-designer .gn-v2-designer-tabs > .ant-tabs-nav::before {
display: none !important;
}
body[data-ui-version="v2"] .gn-v2-designer-tabs .ant-tabs-content-holder {
padding: 10px;
}
body[data-ui-version="v2"] .gn-v2-table-designer .gn-v2-designer-tabs .ant-tabs-content-holder {
padding: 0 12px 12px !important;
border-top: 0 !important;
}
body[data-ui-version="v2"] .gn-v2-table-designer.is-embedded {
background: var(--gn-bg-panel) !important;
}
body[data-ui-version="v2"] .gn-v2-table-designer.is-embedded .gn-v2-designer-toolbar {
padding: 8px 12px 6px !important;
border-left: 0 !important;
border-right: 0 !important;
background: var(--gn-bg-panel) !important;
}
body[data-ui-version="v2"] .gn-v2-table-designer.is-embedded .gn-v2-designer-tabs {
background: var(--gn-bg-panel) !important;
}
body[data-ui-version="v2"] .gn-v2-table-designer.is-embedded .gn-v2-designer-tabs > .ant-tabs-nav {
padding: 0 12px !important;
min-height: 30px;
background: var(--gn-bg-panel) !important;
border-bottom: 0 !important;
box-shadow: none !important;
}
body[data-ui-version="v2"] .gn-v2-table-designer.is-embedded .gn-v2-designer-tabs > .ant-tabs-nav .ant-tabs-nav-list {
width: auto !important;
min-height: 30px;
gap: 0;
}
body[data-ui-version="v2"] .gn-v2-table-designer.is-embedded .gn-v2-designer-tabs > .ant-tabs-nav .ant-tabs-tab {
height: 30px;
min-height: 30px;
padding-inline: 10px !important;
border-right: 0 !important;
}
body[data-ui-version="v2"] .gn-v2-table-designer.is-embedded .gn-v2-designer-tabs > .ant-tabs-nav::before {
display: none !important;
}
body[data-ui-version="v2"] .gn-v2-table-designer.is-embedded .gn-v2-designer-tabs .ant-tabs-content-holder {
padding: 0 12px 12px !important;
border-top: 0 !important;
}
body[data-ui-version="v2"] .gn-v2-table-designer.is-embedded .gn-v2-designer-table-shell,
body[data-ui-version="v2"] .gn-v2-table-designer.is-embedded .gn-v2-designer-tab-content,
body[data-ui-version="v2"] .gn-v2-table-designer.is-embedded .gn-v2-designer-ddl-shell {
border-top: 0 !important;
border-left: 0 !important;
border-right: 0 !important;
border-bottom: 0 !important;
border-radius: 0 !important;
background: transparent !important;
}
body[data-ui-version="v2"] .gn-v2-table-designer.is-embedded .gn-v2-designer-actionbar {
padding-inline: 0 !important;
background: transparent !important;
}
body[data-ui-version="v2"] .gn-v2-table-designer .ant-table-thead > tr > th,
body[data-ui-version="v2"] .gn-v2-table-designer .ant-table-tbody > tr > td {
padding: var(--gn-v2-designer-cell-padding) !important;
}
body[data-ui-version="v2"] .gn-v2-table-designer .ant-table-thead > tr > th {
text-align: left !important;
font-size: var(--gn-v2-designer-content-font-size);
line-height: 1.1;
height: var(--gn-v2-designer-header-height);
min-height: var(--gn-v2-designer-header-height);
padding-top: 0 !important;
padding-bottom: 0 !important;
padding-left: 8px !important;
padding-right: 8px !important;
vertical-align: middle !important;
white-space: nowrap;
}
body[data-ui-version="v2"] .gn-v2-table-designer .ant-table-thead > tr > th .ant-table-column-title {
display: flex;
align-items: center;
justify-content: flex-start;
width: 100%;
min-height: var(--gn-v2-designer-header-height);
text-align: left !important;
}
body[data-ui-version="v2"] .gn-v2-table-designer .ant-table-thead > tr > th .ant-table-column-sorters {
min-height: var(--gn-v2-designer-header-height) !important;
align-items: center !important;
justify-content: flex-start !important;
}
body[data-ui-version="v2"] .gn-v2-table-designer .ant-table-thead > tr > th.ant-table-selection-column,
body[data-ui-version="v2"] .gn-v2-table-designer .ant-table-tbody > tr > td.ant-table-selection-column,
body[data-ui-version="v2"] .gn-v2-table-designer .table-designer-select-column {
width: var(--gn-v2-designer-selection-column-width) !important;
min-width: var(--gn-v2-designer-selection-column-width) !important;
max-width: var(--gn-v2-designer-selection-column-width) !important;
padding-inline: 0 !important;
padding-left: 0 !important;
padding-right: 0 !important;
}
body[data-ui-version="v2"] .gn-v2-table-designer .ant-table-thead > tr > th.ant-table-selection-column .ant-table-selection,
body[data-ui-version="v2"] .gn-v2-table-designer .ant-table-tbody > tr > td.ant-table-selection-column .ant-table-selection,
body[data-ui-version="v2"] .gn-v2-table-designer .table-designer-select-column .table-designer-select-check {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
min-height: var(--gn-v2-designer-row-selection-min-height);
}
body[data-ui-version="v2"] .gn-v2-table-designer .ant-table-thead > tr > th:first-child,
body[data-ui-version="v2"] .gn-v2-table-designer .ant-table-tbody > tr > td:first-child {
padding-inline: 0 !important;
}
body[data-ui-version="v2"] .gn-v2-table-designer .ant-table-tbody > tr > td {
vertical-align: middle !important;
}
body[data-ui-version="v2"] .gn-v2-table-designer .table-designer-cell-field .ant-input,
body[data-ui-version="v2"] .gn-v2-table-designer .table-designer-cell-field .ant-select-selection-item,
body[data-ui-version="v2"] .gn-v2-table-designer .table-designer-cell-field input {
font-size: var(--gn-v2-designer-content-font-size) !important;
}
body[data-ui-version="v2"] .gn-v2-table-designer .table-designer-cell-check .ant-checkbox {
transform: scale(0.92);
}
body[data-ui-version="v2"] .gn-v2-designer-table-shell,
body[data-ui-version="v2"] .gn-v2-designer-tab-content,
body[data-ui-version="v2"] .gn-v2-designer-ddl-shell {
border: 0.5px solid var(--gn-br-1) !important;
border-radius: 8px !important;
background: var(--gn-bg-panel) !important;
overflow: hidden;
}
body[data-ui-version="v2"] .gn-v2-designer-actionbar {
min-height: 36px;
padding: 8px;
align-items: center;
border-bottom: 0.5px solid var(--gn-br-1);
background: var(--gn-bg-panel-2);
}
body[data-ui-version="v2"] .gn-v2-designer-section-note {
padding: 0 2px;
color: var(--gn-fg-4) !important;
font-family: var(--gn-font-mono);
font-size: 11.5px !important;
}
body[data-ui-version="v2"] .gn-v2-designer-index-table .ant-tag {
font-size: 12px !important;
font-weight: 700 !important;
line-height: 18px !important;
padding: 1px 7px !important;
}
body[data-ui-version="v2"] .gn-v2-table-designer .ant-table-wrapper,
body[data-ui-version="v2"] .gn-v2-table-designer .ant-table-container {
border-radius: 0 !important;
}
/* ─── V2 Redis workbench ─ */
body[data-ui-version="v2"] .gn-v2-redis-workbench {
gap: 10px !important;
padding: 10px !important;
background: var(--gn-bg-app) !important;
}
body[data-ui-version="v2"] .gn-v2-redis-sidebar {
min-width: 320px !important;
gap: 10px !important;
}
body[data-ui-version="v2"] .gn-v2-redis-header,
body[data-ui-version="v2"] .gn-v2-redis-tree-card,
body[data-ui-version="v2"] .gn-v2-redis-value-header,
body[data-ui-version="v2"] .gn-v2-redis-value-card,
body[data-ui-version="v2"] .gn-v2-redis-empty-value {
border-radius: 8px !important;
border: 0.5px solid var(--gn-br-1) !important;
background: var(--gn-bg-panel) !important;
box-shadow: var(--gn-shadow-card) !important;
}
body[data-ui-version="v2"] .gn-v2-redis-header {
padding: 12px !important;
}
body[data-ui-version="v2"] .gn-v2-redis-toolbar {
align-items: center;
}
body[data-ui-version="v2"] .gn-v2-redis-tree-card {
padding: 8px !important;
}
body[data-ui-version="v2"] .gn-v2-redis-tree-shell {
border-radius: 7px !important;
border: 0.5px solid var(--gn-br-1) !important;
background: var(--gn-bg-panel-2) !important;
}
body[data-ui-version="v2"] .gn-v2-redis-workbench .ant-tree-checkbox {
margin-inline-end: 5px !important;
}
body[data-ui-version="v2"] .gn-v2-redis-value-pane {
min-width: 360px !important;
}
body[data-ui-version="v2"] .gn-v2-redis-value-layout {
gap: 10px !important;
}
body[data-ui-version="v2"] .gn-v2-redis-value-header {
padding: 14px !important;
}
body[data-ui-version="v2"] .gn-v2-redis-value-header strong {
font-family: var(--gn-font-mono);
font-size: 20px !important;
}
body[data-ui-version="v2"] .gn-v2-redis-value-actions,
body[data-ui-version="v2"] .gn-v2-redis-view-mode,
body[data-ui-version="v2"] .gn-v2-redis-value-subtoolbar,
body[data-ui-version="v2"] .gn-v2-redis-value-actionbar {
border-radius: 7px !important;
border: 0.5px solid var(--gn-br-1) !important;
background: var(--gn-bg-panel-2) !important;
}
body[data-ui-version="v2"] .gn-v2-redis-value-subtoolbar {
min-height: 30px;
border-width: 0 0 0.5px !important;
border-radius: 0 !important;
}
body[data-ui-version="v2"] .gn-v2-redis-value-actionbar {
padding: 8px !important;
margin-bottom: 0 !important;
border-bottom-left-radius: 0 !important;
border-bottom-right-radius: 0 !important;
}
body[data-ui-version="v2"] .gn-v2-redis-data-section .ant-table-wrapper {
flex: 1;
min-height: 0;
}
body[data-ui-version="v2"] .gn-v2-redis-context-menu {
width: 208px !important;
min-width: 188px !important;
padding: 6px !important;
}
/* ─── V2 Table Overview ─ */
body[data-ui-version="v2"] .gn-v2-table-overview {
background: var(--gn-bg-app) !important;
}
body[data-ui-version="v2"] .gn-v2-table-overview-header {
min-height: 54px;
padding: 12px 16px !important;
background: var(--gn-bg-panel) !important;
border-bottom: 0.5px solid var(--gn-br-1);
}
body[data-ui-version="v2"] .gn-v2-table-overview-icon {
width: 28px;
height: 28px;
display: inline-flex;
align-items: center;
justify-content: center;
border-radius: 7px;
color: #fff;
background: linear-gradient(135deg, var(--gn-accent) 0%, var(--gn-accent-2) 100%);
box-shadow: inset 0 0.5px 0 rgba(255,255,255,0.3);
}
body[data-ui-version="v2"] .gn-v2-table-overview-title {
color: var(--gn-fg-1) !important;
font-family: var(--gn-font-sans);
font-size: 14px !important;
font-weight: 700 !important;
letter-spacing: 0;
}
body[data-ui-version="v2"] .gn-v2-table-overview-summary {
color: var(--gn-fg-4) !important;
font-family: var(--gn-font-sans);
font-weight: 500;
}
body[data-ui-version="v2"] .gn-v2-table-overview-summary strong {
color: var(--gn-fg-2);
font-family: var(--gn-font-mono);
font-weight: 600;
font-variant-numeric: tabular-nums;
}
body[data-ui-version="v2"] .gn-v2-table-overview-content {
padding: 14px 16px 20px !important;
background: var(--gn-bg-app);
}
body[data-ui-version="v2"] .gn-v2-table-overview-sections {
display: flex;
flex-direction: column;
gap: 0;
}
body[data-ui-version="v2"] .gn-v2-table-overview-section-title {
color: var(--gn-fg-4) !important;
font-family: var(--gn-font-mono);
font-size: var(--gn-font-size-xs, 10px) !important;
letter-spacing: 0;
text-transform: none;
}
body[data-ui-version="v2"] .gn-v2-table-overview-section-title span:last-child {
min-width: 18px;
height: 18px;
display: inline-flex;
align-items: center;
justify-content: center;
border-radius: 999px;
background: var(--gn-bg-active);
color: var(--gn-fg-3);
font-size: var(--gn-font-size-xs, 10px);
font-weight: 700;
}
body[data-ui-version="v2"] .gn-v2-table-card-grid {
grid-template-columns: repeat(auto-fill, minmax(232px, 1fr)) !important;
gap: 10px !important;
}
body[data-ui-version="v2"] .gn-v2-table-card,
body[data-ui-version="v2"] .gn-v2-table-row {
border: 0.5px solid var(--gn-br-2) !important;
border-radius: 8px !important;
background: var(--gn-bg-panel) !important;
box-shadow: var(--gn-shadow-card);
transition: background 0.08s, border-color 0.08s, box-shadow 0.08s;
}
body[data-ui-version="v2"] .gn-v2-table-card:hover,
body[data-ui-version="v2"] .gn-v2-table-row:hover {
background: var(--gn-bg-hover) !important;
border-color: color-mix(in srgb, var(--gn-accent) 45%, var(--gn-br-2)) !important;
box-shadow: var(--gn-shadow-md);
}
body[data-ui-version="v2"] .gn-v2-table-card-name span {
font-family: var(--gn-font-mono);
}
body[data-ui-version="v2"] .gn-v2-table-card-meta {
font-family: var(--gn-font-mono);
font-size: 11px !important;
}
body[data-ui-version="v2"] .gn-v2-table-size-bar {
height: 2px;
margin-top: 10px;
border-radius: 1px;
background: var(--gn-bg-active);
overflow: hidden;
}
body[data-ui-version="v2"] .gn-v2-table-size-bar span {
display: block;
height: 100%;
border-radius: inherit;
background: linear-gradient(90deg, var(--gn-accent) 0%, var(--gn-info) 100%);
}
body[data-ui-version="v2"] .gn-v2-table-row-list {
gap: 0 !important;
background: var(--gn-bg-panel);
border: 0.5px solid var(--gn-br-1);
border-radius: 8px;
overflow: hidden;
}
body[data-ui-version="v2"] .gn-v2-table-row {
border-width: 0 0 0.5px !important;
border-radius: 0 !important;
box-shadow: none !important;
}
body[data-ui-version="v2"] .gn-v2-table-row:last-child {
border-bottom: 0 !important;
}
/* ─── V2 AI side panel ─ */
body[data-ui-version="v2"] .gn-v2-ai-panel {
width: 340px;
background: var(--gn-bg-panel) !important;
border-left: 0.5px solid var(--gn-br-1) !important;
}
body[data-ui-version="v2"] .gn-v2-ai-panel .ai-chat-header {
min-height: 78px;
padding: 0 !important;
display: flex !important;
flex-direction: column !important;
align-items: stretch !important;
justify-content: flex-start !important;
gap: 0 !important;
background: var(--gn-bg-panel-2) !important;
border-bottom: 0.5px solid var(--gn-br-1) !important;
box-sizing: border-box;
overflow: hidden;
}
body[data-ui-version="v2"] .gn-v2-ai-header-top,
body[data-ui-version="v2"] .gn-v2-ai-brand,
body[data-ui-version="v2"] .gn-v2-ai-header-actions,
body[data-ui-version="v2"] .gn-v2-ai-mode-tabs,
body[data-ui-version="v2"] .gn-v2-ai-session-row,
body[data-ui-version="v2"] .gn-v2-ai-suggestion-divider,
body[data-ui-version="v2"] .gn-v2-ai-suggestion-list button,
body[data-ui-version="v2"] .gn-v2-ai-context-row,
body[data-ui-version="v2"] .gn-v2-ai-context-toggle,
body[data-ui-version="v2"] .gn-v2-ai-context-add,
body[data-ui-version="v2"] .gn-v2-ai-input-actions,
body[data-ui-version="v2"] .gn-v2-ai-token-meter,
body[data-ui-version="v2"] .gn-v2-ai-token-bar {
display: flex;
align-items: center;
}
body[data-ui-version="v2"] .gn-v2-ai-header-top {
justify-content: space-between;
gap: 8px;
min-width: 0;
width: 100%;
flex: 0 0 auto;
height: 44px;
padding: 0 8px 0 12px;
border-bottom: 0.5px solid var(--gn-br-1);
}
body[data-ui-version="v2"] .gn-v2-ai-brand {
min-width: 0;
flex: 1 1 auto;
overflow: hidden;
}
body[data-ui-version="v2"] .gn-v2-ai-header-actions {
gap: 1px;
flex: 0 0 auto;
}
body[data-ui-version="v2"] .gn-v2-ai-header-actions .ant-btn {
width: 24px !important;
height: 24px !important;
padding: 0 !important;
border-color: transparent !important;
}
body[data-ui-version="v2"] .gn-v2-ai-panel .ai-logo {
background: linear-gradient(135deg, #0284c7 0%, #0369a1 100%) !important;
color: #fff !important;
box-shadow: inset 0 0.5px 0 rgba(255,255,255,0.3);
}
body[data-ui-version="v2"] .gn-v2-ai-panel .ai-title {
color: var(--gn-fg-1) !important;
font-size: 13px !important;
font-weight: 750 !important;
display: block;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
body[data-ui-version="v2"] .gn-v2-ai-panel .ai-title-stack {
min-width: 0;
display: flex;
flex-direction: column;
gap: 1px;
}
body[data-ui-version="v2"] .gn-v2-ai-panel .ai-title-stack small {
max-width: 150px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
color: var(--gn-fg-5);
font-size: 10.5px;
font-family: var(--gn-font-mono);
}
body[data-ui-version="v2"] .gn-v2-ai-provider-badge {
display: inline-flex;
align-items: center;
flex: 0 0 auto;
height: 17px;
padding: 0 5px;
border-radius: 3px;
background: var(--gn-accent-soft);
color: var(--gn-accent-2);
font-size: 9.5px;
font-weight: 800;
letter-spacing: 0;
}
body[data-ui-version="v2"] .gn-v2-ai-mode-tabs {
gap: 2px;
width: 100%;
flex: 0 0 auto;
padding: 8px 10px 4px;
}
body[data-ui-version="v2"] .gn-v2-ai-mode-tabs button {
flex: 1 1 0;
min-width: 0;
height: 26px;
border: none;
border-radius: 6px;
background: transparent;
color: var(--gn-fg-4);
font-size: 11.5px;
font-weight: 600;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 5px;
white-space: nowrap;
overflow: hidden;
}
body[data-ui-version="v2"] .gn-v2-ai-mode-tabs button span {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
body[data-ui-version="v2"] .gn-v2-ai-mode-tabs button.is-active {
background: var(--gn-bg-active);
color: var(--gn-fg-1);
}
body[data-ui-version="v2"] .gn-v2-ai-panel .ai-chat-messages {
padding: 8px 14px 12px;
gap: 10px;
background: var(--gn-bg-panel);
}
body[data-ui-version="v2"] .gn-v2-ai-panel .ai-chat-welcome {
flex: 0 0 auto !important;
align-items: stretch !important;
justify-content: flex-start;
padding: 16px 0 4px !important;
gap: 14px;
}
body[data-ui-version="v2"] .gn-v2-ai-welcome-title {
display: flex;
align-items: center;
gap: 8px;
}
body[data-ui-version="v2"] .gn-v2-ai-welcome-title > span {
width: 26px;
height: 26px;
display: inline-flex;
align-items: center;
justify-content: center;
border-radius: 7px;
background: var(--gn-info-soft);
}
body[data-ui-version="v2"] .gn-v2-ai-context-inline {
display: inline-flex;
align-items: center;
gap: 4px;
padding: 1px 5px;
border-radius: 4px;
background: var(--gn-info-soft);
color: var(--gn-info);
font-family: var(--gn-font-mono);
font-size: 11px;
font-weight: 650;
}
body[data-ui-version="v2"] .gn-v2-ai-quick-icon {
width: 20px;
height: 20px;
flex: 0 0 20px;
display: inline-flex !important;
align-items: center;
justify-content: center;
border-radius: 5px;
}
body[data-ui-version="v2"] .gn-v2-ai-quick-card.tone-info .gn-v2-ai-quick-icon {
background: var(--gn-info-soft);
color: var(--gn-info);
}
body[data-ui-version="v2"] .gn-v2-ai-quick-card.tone-success .gn-v2-ai-quick-icon {
background: var(--gn-accent-soft);
color: var(--gn-accent-2);
}
body[data-ui-version="v2"] .gn-v2-ai-quick-card.tone-warn .gn-v2-ai-quick-icon {
background: var(--gn-warn-soft);
color: var(--gn-warn);
}
body[data-ui-version="v2"] .gn-v2-ai-quick-card.tone-purple .gn-v2-ai-quick-icon {
background: rgba(168,85,247,0.12);
color: #9333ea;
}
body[data-ui-version="v2"] .gn-v2-ai-panel .quick-actions {
display: grid !important;
grid-template-columns: 1fr 1fr;
gap: 8px !important;
justify-content: stretch !important;
}
body[data-ui-version="v2"] .gn-v2-ai-panel .quick-action-btn {
min-height: 66px;
padding: 10px 11px !important;
display: flex !important;
flex-direction: column;
align-items: flex-start;
justify-content: center;
gap: 4px;
border-radius: 8px !important;
background: var(--gn-bg-panel-2) !important;
color: var(--gn-fg-2) !important;
border-color: var(--gn-br-2) !important;
text-align: left !important;
}
body[data-ui-version="v2"] .gn-v2-ai-panel .quick-action-btn:hover {
background: var(--gn-bg-hover) !important;
border-color: var(--gn-br-3) !important;
}
body[data-ui-version="v2"] .gn-v2-ai-panel .quick-action-btn strong {
color: var(--gn-fg-1);
font-size: 12.5px;
}
body[data-ui-version="v2"] .gn-v2-ai-panel .quick-action-btn span {
color: var(--gn-fg-4);
font-size: 11px;
line-height: 1.35;
}
body[data-ui-version="v2"] .gn-v2-ai-suggestion-list {
display: flex;
flex-direction: column;
gap: 6px;
}
body[data-ui-version="v2"] .gn-v2-ai-suggestion-divider {
gap: 8px;
padding: 2px 0;
}
body[data-ui-version="v2"] .gn-v2-ai-suggestion-divider span {
height: 1px;
flex: 1;
background: var(--gn-br-1);
}
body[data-ui-version="v2"] .gn-v2-ai-suggestion-divider small {
color: var(--gn-fg-5);
font-size: 10px;
font-weight: 700;
}
body[data-ui-version="v2"] .gn-v2-ai-suggestion-list button {
width: 100%;
gap: 8px;
min-height: 31px;
padding: 7px 10px;
border: 0.5px solid var(--gn-br-1);
border-radius: 7px;
background: transparent;
color: var(--gn-fg-2);
text-align: left;
font-size: 12px;
}
body[data-ui-version="v2"] .gn-v2-ai-suggestion-list button .anticon {
color: var(--gn-info);
flex: 0 0 auto;
}
body[data-ui-version="v2"] .gn-v2-ai-insights-list,
body[data-ui-version="v2"] .gn-v2-ai-history-list {
flex: 1 1 auto;
min-height: 0;
padding: 8px 2px 12px;
display: flex;
flex-direction: column;
gap: 8px;
}
body[data-ui-version="v2"] .gn-v2-ai-insight-card {
display: flex;
align-items: flex-start;
gap: 9px;
padding: 10px;
border: 0.5px solid var(--gn-br-1);
border-radius: 8px;
background: var(--gn-bg-panel-2);
}
body[data-ui-version="v2"] .gn-v2-ai-insight-card.tone-info .gn-v2-ai-insight-icon {
background: var(--gn-info-soft);
color: var(--gn-info);
}
body[data-ui-version="v2"] .gn-v2-ai-insight-card.tone-accent .gn-v2-ai-insight-icon {
background: var(--gn-accent-soft);
color: var(--gn-accent-2);
}
body[data-ui-version="v2"] .gn-v2-ai-insight-card.tone-warn .gn-v2-ai-insight-icon {
background: var(--gn-warn-soft);
color: var(--gn-warn);
}
body[data-ui-version="v2"] .gn-v2-ai-insight-icon {
width: 22px;
height: 22px;
flex: 0 0 22px;
display: inline-flex;
align-items: center;
justify-content: center;
border-radius: 6px;
}
body[data-ui-version="v2"] .gn-v2-ai-insight-card strong {
display: block;
color: var(--gn-fg-1);
font-size: 12.5px;
font-weight: 750;
}
body[data-ui-version="v2"] .gn-v2-ai-insight-card p {
margin: 4px 0 0;
color: var(--gn-fg-4);
font-size: 11.5px;
line-height: 1.45;
word-break: break-word;
}
body[data-ui-version="v2"] .gn-v2-ai-history-card {
width: 100%;
padding: 9px 10px;
display: flex;
flex-direction: column;
align-items: stretch;
gap: 5px;
border: 0.5px solid var(--gn-br-1);
border-radius: 8px;
background: transparent;
color: var(--gn-fg-2);
text-align: left;
}
body[data-ui-version="v2"] .gn-v2-ai-history-card.is-active {
background: var(--gn-bg-selected);
border-color: color-mix(in srgb, var(--gn-accent) 36%, var(--gn-br-1));
}
body[data-ui-version="v2"] .gn-v2-ai-history-card span {
display: flex;
align-items: center;
min-width: 0;
gap: 7px;
}
body[data-ui-version="v2"] .gn-v2-ai-history-card span .anticon {
color: var(--gn-info);
}
body[data-ui-version="v2"] .gn-v2-ai-history-card strong {
overflow: hidden;
color: var(--gn-fg-1);
font-size: 12.5px;
font-weight: 650;
text-overflow: ellipsis;
white-space: nowrap;
}
body[data-ui-version="v2"] .gn-v2-ai-history-card small {
padding-left: 21px;
color: var(--gn-fg-5);
font-family: var(--gn-font-mono);
font-size: 10.5px;
}
body[data-ui-version="v2"] .gn-v2-ai-empty-note {
padding: 32px 0;
color: var(--gn-fg-5);
font-size: 12px;
text-align: center;
}
body[data-ui-version="v2"] .gn-v2-ai-panel .ai-chat-input-area {
padding: 10px 12px 12px !important;
border-top: 0.5px solid var(--gn-br-1) !important;
background: var(--gn-bg-panel-2);
}
body[data-ui-version="v2"] .gn-v2-ai-panel .ai-chat-input-wrapper {
border-radius: 10px !important;
border: none !important;
background: transparent !important;
box-shadow: none !important;
gap: 4px !important;
}
body[data-ui-version="v2"] .gn-v2-ai-context-row {
justify-content: space-between;
gap: 6px;
min-height: 22px;
}
body[data-ui-version="v2"] .gn-v2-ai-context-toggle,
body[data-ui-version="v2"] .gn-v2-ai-context-add {
height: 22px;
border-radius: 6px;
font-size: 11.5px;
font-weight: 700;
}
body[data-ui-version="v2"] .gn-v2-ai-context-toggle {
gap: 5px;
padding: 0 8px;
border: 0.5px solid rgba(56,189,248,0.3);
background: var(--gn-info-soft);
color: var(--gn-info);
}
body[data-ui-version="v2"] .gn-v2-ai-context-toggle strong {
min-width: 15px;
height: 15px;
display: inline-flex;
align-items: center;
justify-content: center;
padding: 0 4px;
border-radius: 4px;
background: var(--gn-info);
color: #fff;
font-family: var(--gn-font-mono);
font-size: 10px;
}
body[data-ui-version="v2"] .gn-v2-ai-context-toggle .anticon-down {
transition: transform 0.12s ease;
}
body[data-ui-version="v2"] .gn-v2-ai-context-toggle.is-expanded .anticon-down {
transform: rotate(180deg);
}
body[data-ui-version="v2"] .gn-v2-ai-context-add {
gap: 4px;
padding: 0 8px;
border: 0.5px dashed var(--gn-br-3);
background: transparent;
color: var(--gn-fg-4);
}
body[data-ui-version="v2"] .gn-v2-ai-context-detail {
display: flex;
flex-direction: column;
gap: 6px;
padding: 8px;
border: 0.5px solid var(--gn-br-1);
border-radius: 8px;
background: var(--gn-bg-panel-2);
}
body[data-ui-version="v2"] .gn-v2-ai-context-detail-title {
padding: 0 4px;
color: var(--gn-fg-4);
font-size: 10px;
font-weight: 700;
}
body[data-ui-version="v2"] .gn-v2-ai-context-table-chip {
display: inline-flex !important;
align-items: center;
gap: 6px;
min-height: 24px;
border: 0.5px solid var(--gn-br-1) !important;
border-radius: 6px !important;
background: var(--gn-bg-panel) !important;
color: var(--gn-fg-1) !important;
font-family: var(--gn-font-mono);
font-size: 11.5px !important;
}
body[data-ui-version="v2"] .gn-v2-ai-attachment-row {
display: flex;
flex-wrap: wrap;
gap: 6px;
}
body[data-ui-version="v2"] .gn-v2-ai-attachment-thumb {
position: relative;
width: 54px;
height: 54px;
overflow: hidden;
border: 0.5px solid var(--gn-br-2);
border-radius: 7px;
}
body[data-ui-version="v2"] .gn-v2-ai-attachment-thumb img {
width: 100%;
height: 100%;
object-fit: cover;
}
body[data-ui-version="v2"] .gn-v2-ai-attachment-thumb button {
position: absolute;
top: 3px;
right: 3px;
width: 16px;
height: 16px;
padding: 0;
border: none;
border-radius: 50%;
background: rgba(0,0,0,0.55);
color: #fff;
font-size: 10px;
}
body[data-ui-version="v2"] .gn-v2-ai-attachment-file {
display: inline-flex;
align-items: center;
gap: 6px;
max-width: min(100%, 280px);
min-height: 28px;
padding: 4px 8px;
border: 0.5px solid var(--gn-br-2);
border-radius: 8px;
background: var(--gn-bg-panel);
color: var(--gn-fg-1);
font-size: 11.5px;
}
body[data-ui-version="v2"] .gn-v2-ai-attachment-file.has-warning {
border-color: rgba(217, 119, 6, 0.45);
background: rgba(217, 119, 6, 0.08);
}
body[data-ui-version="v2"] .gn-v2-ai-attachment-file-name {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
body[data-ui-version="v2"] .gn-v2-ai-attachment-file-meta {
color: var(--gn-fg-3);
flex-shrink: 0;
}
body[data-ui-version="v2"] .gn-v2-ai-attachment-file button {
width: 16px;
height: 16px;
padding: 0;
border: none;
border-radius: 50%;
background: var(--gn-bg-subtle);
color: var(--gn-fg-3);
line-height: 1;
}
body[data-ui-version="v2"] .gn-v2-ai-input-box {
min-height: 68px;
padding: 0;
}
body[data-ui-version="v2"] .gn-v2-ai-input-surface {
min-height: 68px;
padding: 6px 6px 6px 10px;
border: 0.5px solid var(--gn-br-2) !important;
border-radius: 10px !important;
background: var(--gn-bg-input) !important;
box-shadow: none !important;
}
body[data-ui-version="v2"] .gn-v2-ai-input-box textarea {
border: 0 !important;
border-radius: 0 !important;
background: transparent !important;
box-shadow: none !important;
font-size: 12.5px !important;
line-height: 1.55 !important;
padding: 0 !important;
}
body[data-ui-version="v2"] .gn-v2-ai-input-box textarea.ant-input:focus,
body[data-ui-version="v2"] .gn-v2-ai-input-box textarea.ant-input:focus-visible {
border-color: transparent !important;
outline: none !important;
box-shadow: none !important;
}
body[data-ui-version="v2"] .gn-v2-ai-slash-menu {
position: absolute;
bottom: 100%;
left: 0;
right: 0;
z-index: 100;
max-height: 220px;
padding: 4px;
margin-bottom: 4px;
overflow-y: auto;
border-radius: 8px;
box-shadow: var(--gn-shadow-lg);
}
body[data-ui-version="v2"] .gn-v2-ai-input-actions {
justify-content: flex-end;
gap: 4px;
margin-top: 6px;
}
body[data-ui-version="v2"] .gn-v2-ai-input-actions .ant-btn {
width: 24px !important;
height: 24px !important;
padding: 0 !important;
}
body[data-ui-version="v2"] .gn-v2-ai-model-bar {
display: flex;
align-items: center;
gap: 6px;
min-width: 0;
padding-top: 0;
white-space: nowrap;
}
body[data-ui-version="v2"] .gn-v2-ai-model-spacer {
flex: 1 1 auto;
min-width: 4px;
}
body[data-ui-version="v2"] .gn-v2-ai-context-chip,
body[data-ui-version="v2"] .gn-v2-ai-token-meter {
height: 20px;
min-width: 0;
display: inline-flex;
align-items: center;
gap: 4px;
padding: 0 6px;
border-radius: 4px !important;
border: 0.5px solid var(--gn-br-1) !important;
background: var(--gn-bg-active) !important;
color: var(--gn-fg-4) !important;
font-family: var(--gn-font-mono);
font-size: 10.5px;
}
body[data-ui-version="v2"] .gn-v2-ai-context-chip {
flex: 1 1 auto;
max-width: 180px;
overflow: hidden;
}
body[data-ui-version="v2"] .gn-v2-ai-context-chip > span:last-child {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
}
body[data-ui-version="v2"] .gn-v2-ai-context-live-dot {
width: 5px;
height: 5px;
flex: 0 0 5px;
border-radius: 50%;
background: var(--gn-accent);
}
body[data-ui-version="v2"] .gn-v2-ai-model-select {
width: 132px !important;
height: 26px !important;
flex: 0 0 132px;
}
body[data-ui-version="v2"] .gn-v2-ai-model-select .ant-select-selector {
display: flex !important;
align-items: center !important;
height: 26px !important;
min-height: 26px !important;
padding: 0 28px 0 10px !important;
border: 0.5px solid var(--gn-br-2) !important;
border-radius: 7px !important;
background: var(--gn-bg-panel) !important;
box-shadow: none !important;
font-family: var(--gn-font-mono);
font-size: 12px !important;
}
body[data-ui-version="v2"] .gn-v2-ai-model-select.ant-select-focused .ant-select-selector,
body[data-ui-version="v2"] .gn-v2-ai-model-select:hover .ant-select-selector {
border-color: var(--gn-info) !important;
box-shadow: 0 0 0 3px rgba(56, 189, 248, 0.12) !important;
}
body[data-ui-version="v2"] .gn-v2-ai-model-select .ant-select-selection-search {
left: 10px !important;
right: 28px !important;
inset-inline-start: 10px !important;
inset-inline-end: 28px !important;
height: 24px !important;
background: transparent !important;
border: 0 !important;
box-shadow: none !important;
}
body[data-ui-version="v2"] .gn-v2-ai-model-select .ant-select-selection-search-input {
height: 24px !important;
padding: 0 !important;
border: 0 !important;
border-radius: 0 !important;
background: transparent !important;
box-shadow: none !important;
color: var(--gn-fg-2) !important;
font-family: var(--gn-font-mono) !important;
font-size: 12px !important;
line-height: 24px !important;
}
body[data-ui-version="v2"] .gn-v2-ai-model-select .ant-select-selection-item,
body[data-ui-version="v2"] .gn-v2-ai-model-select .ant-select-selection-placeholder {
display: flex !important;
align-items: center !important;
height: 24px !important;
line-height: 24px !important;
padding-inline-end: 0 !important;
background: transparent !important;
color: var(--gn-fg-2) !important;
}
body[data-ui-version="v2"] .gn-v2-ai-model-select .ant-select-arrow {
inset-inline-end: 9px !important;
color: var(--gn-fg-4) !important;
font-size: 11px;
}
body[data-ui-version="v2"] .gn-v2-ai-token-meter {
flex: 0 0 auto;
gap: 5px !important;
}
body[data-ui-version="v2"] .gn-v2-ai-token-meter.is-warn {
border-color: color-mix(in srgb, var(--gn-warn) 35%, transparent) !important;
color: var(--gn-warn) !important;
}
body[data-ui-version="v2"] .gn-v2-ai-token-bar {
width: 32px;
height: 4px;
overflow: hidden;
border-radius: 2px;
background: var(--gn-bg-active);
}
body[data-ui-version="v2"] .gn-v2-ai-token-bar span {
display: block;
height: 100%;
border-radius: inherit;
background: var(--gn-info);
}
body[data-ui-version="v2"] .gn-v2-ai-panel .ai-chat-send-btn {
width: 28px !important;
height: 28px !important;
border-radius: 7px !important;
display: inline-flex !important;
align-items: center;
justify-content: center;
flex: 0 0 auto;
padding: 0 !important;
border: 0.5px solid var(--gn-info) !important;
background: var(--gn-info) !important;
background-color: var(--gn-info) !important;
color: #fff !important;
opacity: 1 !important;
cursor: pointer;
}
body[data-ui-version="v2"] .gn-v2-ai-panel .ai-chat-send-btn .anticon,
body[data-ui-version="v2"] .gn-v2-ai-panel .ai-chat-send-btn svg {
color: currentColor !important;
fill: currentColor !important;
font-size: 13px;
}
body[data-ui-version="v2"] .gn-v2-ai-panel .ai-chat-send-btn:disabled {
border-color: var(--gn-br-1) !important;
background: var(--gn-bg-active) !important;
background-color: var(--gn-bg-active) !important;
color: var(--gn-fg-5) !important;
opacity: 1 !important;
cursor: not-allowed;
}
body[data-ui-version="v2"] .gn-v2-ai-panel .ai-chat-stop-btn {
border-color: rgba(220,38,38,0.28) !important;
background: rgba(220,38,38,0.12) !important;
background-color: rgba(220,38,38,0.12) !important;
color: var(--gn-danger) !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find {
display: inline-flex !important;
align-items: center !important;
height: 28px !important;
min-height: 28px !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .gn-v2-data-grid-column-quick-find-row {
display: grid !important;
grid-template-columns: 180px 28px !important;
align-items: stretch !important;
column-gap: 4px !important;
height: 28px !important;
min-height: 28px !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .gn-v2-data-grid-column-quick-find-field,
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .gn-v2-data-grid-column-quick-find-autocomplete,
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .gn-v2-data-grid-column-quick-find-autocomplete .ant-select,
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .gn-v2-data-grid-column-quick-find-field .ant-input-affix-wrapper {
width: 180px !important;
min-width: 180px !important;
height: 28px !important;
min-height: 28px !important;
box-sizing: border-box !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .gn-v2-data-grid-column-quick-find-field,
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .gn-v2-data-grid-column-quick-find-autocomplete,
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .gn-v2-data-grid-column-quick-find-autocomplete .ant-select {
display: flex !important;
align-items: stretch !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .gn-v2-data-grid-column-quick-find-field .ant-input-affix-wrapper {
display: flex !important;
align-items: center !important;
line-height: 28px !important;
padding-top: 0 !important;
padding-bottom: 0 !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .gn-v2-data-grid-column-quick-find-submit.ant-btn {
width: 28px !important;
min-width: 28px !important;
max-width: 28px !important;
height: 28px !important;
min-height: 28px !important;
margin: 0 !important;
padding: 0 !important;
align-self: stretch !important;
justify-self: stretch !important;
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
line-height: 1 !important;
vertical-align: top !important;
box-sizing: border-box !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .gn-v2-data-grid-column-quick-find-submit.ant-btn > span,
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .gn-v2-data-grid-column-quick-find-submit.ant-btn .ant-btn-icon,
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .gn-v2-data-grid-column-quick-find-submit.ant-btn .anticon {
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
width: 100% !important;
height: 100% !important;
line-height: 1 !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .gn-v2-data-grid-column-quick-find-submit.ant-btn .anticon svg {
display: block !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .gn-v2-data-grid-column-quick-find-submit.ant-btn:focus,
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .gn-v2-data-grid-column-quick-find-submit.ant-btn:focus-visible,
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .gn-v2-data-grid-column-quick-find-submit.ant-btn:active {
box-shadow: none !important;
outline: none !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-column-quick-find .gn-v2-data-grid-column-quick-find-submit.ant-btn::after {
display: none !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-page-find {
gap: 2px !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-page-find .ant-input-prefix,
body[data-ui-version="v2"] .gn-v2-data-grid-page-find .ant-input-suffix {
display: inline-flex !important;
align-items: center !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-page-find .ant-input-prefix {
margin-inline-end: 6px !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-page-find .ant-input,
body[data-ui-version="v2"] .gn-v2-data-grid-page-find .ant-input::placeholder {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
body[data-ui-version="v2"] .gn-v2-data-grid-page-find {
max-width: 214px !important;
overflow: visible !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-page-find .gn-v2-data-grid-page-find-row {
display: grid !important;
grid-template-columns: 160px 26px 26px !important;
column-gap: 2px !important;
align-items: stretch !important;
height: 26px !important;
min-height: 26px !important;
flex: 0 0 auto !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-page-find .gn-v2-data-grid-page-find-input,
body[data-ui-version="v2"] .gn-v2-data-grid-page-find .gn-v2-data-grid-page-find-input.ant-input-affix-wrapper {
width: 160px !important;
min-width: 160px !important;
max-width: 160px !important;
height: 26px !important;
min-height: 26px !important;
box-sizing: border-box !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-page-find .gn-v2-data-grid-page-find-input.ant-input-affix-wrapper {
display: flex !important;
align-items: center !important;
padding-inline: 8px !important;
line-height: 26px !important;
}
body[data-ui-version="v2"] .gn-v2-data-grid-page-find .gn-v2-data-grid-page-find-prev.ant-btn,
body[data-ui-version="v2"] .gn-v2-data-grid-page-find .gn-v2-data-grid-page-find-next.ant-btn {
width: 26px !important;
min-width: 26px !important;
max-width: 26px !important;
height: 26px !important;
min-height: 26px !important;
margin: 0 !important;
padding: 0 !important;
align-self: stretch !important;
justify-self: stretch !important;
}