/* Generated by build_ui_tokens_r7.py; edit design-r7/ui-tokens.json. */
:root {
  --ui-font: system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",sans-serif;
  --ui-ease: cubic-bezier(.2,0,0,1);
  --ui-font-12: 12px;
  --ui-font-13: 13px;
  --ui-font-14: 14px;
  --ui-font-16: 16px;
  --ui-font-20: 20px;
  --ui-font-24: 24px;
  --ui-font-32: 32px;
  --ui-radius-6: 6px;
  --ui-radius-8: 8px;
  --ui-radius-12: 12px;
  --ui-space-4: 4px;
  --ui-space-8: 8px;
  --ui-space-12: 12px;
  --ui-space-16: 16px;
  --ui-space-20: 20px;
  --ui-space-24: 24px;
  --ui-space-32: 32px;
  --ui-space-40: 40px;
  --ui-space-48: 48px;
  --ui-space-56: 56px;
  --ui-space-64: 64px;
  --ui-motion-fast: 120ms;
  --ui-motion-normal: 160ms;
  --ui-motion-slow: 200ms;
  --ui-layout-header: 56px;
  --ui-layout-sidebar: 240px;
  --ui-layout-collapsed: 64px;
  --ui-layout-content: 1440px;
  --ui-layout-tableRow: 44px;
}
:root {
  --ui-base: #F7F7F6;
  --ui-raised: #FFFFFF;
  --ui-overlay: #FFFFFF;
  --ui-hover: #ECEDEF;
  --ui-border: #D8DADC;
  --ui-muted: #606468;
  --ui-text: #151617;
  --ui-disabled: #85898D;
  --ui-brand: #354E3B;
  --ui-brandText: #FFFFFF;
  --ui-success: #24663D;
  --ui-warning: #82530D;
  --ui-danger: #B42E38;
  --ui-info: #255C9A;
  --ui-gray-0: #FFFFFF;
  --ui-gray-1: #F7F7F6;
  --ui-gray-2: #ECEDEF;
  --ui-gray-3: #D8DADC;
  --ui-gray-4: #85898D;
  --ui-gray-5: #606468;
  --ui-gray-6: #343638;
  --ui-gray-7: #151617;
  --ui-elevation-1: 0 4px 12px #15161714;
  --ui-elevation-2: 0 8px 24px #1516171f;
  --ui-elevation-3: 0 16px 48px #15161729;
}
:root.dark {
  --ui-base: #151617;
  --ui-raised: #202123;
  --ui-overlay: #292B2D;
  --ui-hover: #343638;
  --ui-border: #45484B;
  --ui-muted: #B3B6B9;
  --ui-text: #ECEDEF;
  --ui-disabled: #85898D;
  --ui-brand: #AEC1B2;
  --ui-brandText: #151617;
  --ui-success: #91C5A1;
  --ui-warning: #D8BB80;
  --ui-danger: #EF9CA1;
  --ui-info: #A5BFDF;
  --ui-gray-0: #ECEDEF;
  --ui-gray-1: #B3B6B9;
  --ui-gray-2: #85898D;
  --ui-gray-3: #45484B;
  --ui-gray-4: #343638;
  --ui-gray-5: #292B2D;
  --ui-gray-6: #202123;
  --ui-gray-7: #151617;
  --ui-elevation-1: 0 4px 12px #00000033;
  --ui-elevation-2: 0 8px 24px #0000004d;
  --ui-elevation-3: 0 16px 48px #00000066;
}
/* R7: approved charcoal tokens; existing routes and business actions are retained. */
.xinai-workspace.xinai-workspace,.dark .xinai-workspace.xinai-workspace,.relay-public.relay-public,.dark .relay-public.relay-public{
 --xinai-bg:var(--ui-base);--xinai-surface:var(--ui-raised);--xinai-ink:var(--ui-text);--xinai-muted:var(--ui-muted);--xinai-border:var(--ui-border);--xinai-accent:var(--ui-brand);--xinai-accent-soft:var(--ui-hover);
 font-family:var(--ui-font);font-size:var(--ui-font-14);line-height:1.5;font-variant-numeric:tabular-nums;background:var(--ui-base);color:var(--ui-text)
}
.xinai-topbar.xinai-topbar,.dark .xinai-topbar.xinai-topbar{--xn-paper:var(--ui-raised);--xn-ink:var(--ui-text);--xn-green:var(--ui-text);--xn-line:var(--ui-border);--xn-hover:var(--ui-hover)}
.xinai-workspace .xinai-topbar header{height:var(--ui-layout-header);background:var(--ui-raised)!important}
.xinai-workspace .sidebar-header{height:var(--ui-layout-header);min-height:var(--ui-layout-header)}
.xinai-workspace .sidebar.w-64{width:var(--ui-layout-sidebar)}
.xinai-workspace .sidebar.w-\[72px\]{width:var(--ui-layout-collapsed)}
.xinai-workspace .sidebar-section-title{font-size:var(--ui-font-12);letter-spacing:normal}
.xinai-workspace .sidebar-link{min-height:40px;border-radius:var(--ui-radius-6)}
.xinai-workspace:not(:has(.key-workspace)) main{max-width:var(--ui-layout-content);margin-inline:auto}
.xinai-workspace :is(.stat-value,.xinai-wallet-value){font-size:var(--ui-font-32);letter-spacing:normal}
.xinai-workspace .btn-primary,.dark .xinai-workspace .btn-primary,.xinai-workspace .xinai-tools .xinai-canvas-link,.dark .xinai-workspace .xinai-tools .xinai-canvas-link,.relay-public .relay-button:not(.relay-button-outline){background:var(--ui-brand);color:var(--ui-brandText);border-color:var(--ui-brand);box-shadow:none;border-radius:var(--ui-radius-6)}
.xinai-workspace .btn-primary:hover,.xinai-workspace .xinai-tools .xinai-canvas-link:hover{background:var(--ui-text);color:var(--ui-base);transform:none}
.xinai-workspace :is(button,input,select,textarea){font-family:var(--ui-font)}
.xinai-workspace :is(.rounded-lg,.rounded-md){border-radius:var(--ui-radius-6)}
.xinai-workspace :is(.rounded-xl,.card,.table-container,.stat-card){border-radius:var(--ui-radius-8)}
.xinai-workspace :is(.rounded-2xl,.rounded-3xl){border-radius:var(--ui-radius-12)}
.xinai-workspace :is(.card,.stat-card,.sidebar,.btn-primary,.btn-secondary){box-shadow:none}
.xinai-workspace :is(.dropdown-menu,.xinai-tools-popup){background:var(--ui-overlay);border-color:var(--ui-border);box-shadow:var(--ui-elevation-2);border-radius:var(--ui-radius-8)}
.xinai-workspace :is(table thead,thead th){position:sticky;top:0;z-index:1;background:var(--ui-hover);color:var(--ui-text)}
.xinai-workspace:not(:has(.key-workspace)) table :is(td,th){height:44px;padding-block:var(--ui-space-8);font-size:var(--ui-font-13)}
.xinai-workspace table tbody tr:hover{background:var(--ui-hover)}
.xinai-workspace :is(a,button,input,textarea,select,[tabindex]):focus-visible{outline:2px solid var(--ui-brand);outline-offset:2px}
.xinai-workspace :is(.text-gray-400,.text-gray-500,.text-gray-600,.dark\:text-dark-400,.dark\:text-dark-300){color:var(--ui-muted)}
.xinai-workspace :is(.bg-white,.bg-gray-50,.dark\:bg-dark-800){background-color:var(--ui-raised)}
.xinai-workspace :is(.bg-gray-100,.dark\:bg-dark-700){background-color:var(--ui-hover)}
.xinai-workspace :is(.text-gray-900,.text-gray-800,.dark\:text-white){color:var(--ui-text)}
.xinai-workspace [class*='bg-gradient-to-']{background-image:none;box-shadow:none}
.xinai-workspace .xinai-tools a,.xinai-workspace .xinai-tools summary{font-size:var(--ui-font-13);font-weight:500}
.xinai-workspace .xinai-tools-popup p{font-size:var(--ui-font-12);margin:var(--ui-space-8)}
.driver-popover.theme-tour-popover{background:var(--ui-overlay)!important;color:var(--ui-text)!important;border-color:var(--ui-border)!important;border-radius:var(--ui-radius-8)!important;box-shadow:var(--ui-elevation-2)!important;font-family:var(--ui-font)!important}
.driver-popover.theme-tour-popover :is(.driver-popover-footer,.driver-popover-description){background:var(--ui-overlay)!important;color:var(--ui-text)!important;border-color:var(--ui-border)!important}
.driver-popover.theme-tour-popover .driver-popover-next-btn{background:var(--ui-brand)!important;color:var(--ui-brandText)!important;box-shadow:none!important}
.xinai-workspace.lp-screen.lp-native-xinai .lp-form-card h2{font-family:var(--ui-font)!important}
@media(min-width:1024px){.xinai-workspace .lg\:ml-64{margin-left:var(--ui-layout-sidebar)}.xinai-workspace .lg\:ml-\[72px\]{margin-left:var(--ui-layout-collapsed)}}
@media(prefers-reduced-motion:reduce){.xinai-workspace *{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* The running table's scoped density rules load after the app shell. */
.xinai-workspace:not(:has(.key-workspace)) .table-wrapper table :is(th,td):not([colspan]){height:var(--ui-layout-tableRow)!important;min-height:0!important;padding:var(--ui-space-4) var(--ui-space-16)!important;font-size:var(--ui-font-13)!important;line-height:1.5!important;border-color:var(--ui-border)!important}
.xinai-workspace:not(:has(.key-workspace)) .table-wrapper :is(thead,thead th){background:var(--ui-hover)!important;color:var(--ui-text)!important}
.xinai-workspace:not(:has(.key-workspace)) .table-wrapper :is(tbody,tr,td){background-color:var(--ui-raised)!important;color:var(--ui-text)}
.xinai-workspace:not(:has(.key-workspace)) .table-wrapper tbody tr:hover td{background-color:var(--ui-hover)!important}
.xinai-workspace:not(:has(.key-workspace)) .table-wrapper :is(th,td)[class*="sticky"]{box-shadow:none!important}

.xinai-workspace:not(:has(.key-workspace)) .table-wrapper tbody tr:has(input[data-test="select-row"]:checked)>td{background:var(--ui-hover)!important}
.xinai-column-resize{position:absolute;right:0;top:0;width:8px;height:100%;cursor:col-resize;touch-action:none;z-index:2}
.xinai-column-resize:hover,.xinai-column-resize:focus-visible{border-right:2px solid var(--ui-brand)}
.xinai-workspace:not(:has(.key-workspace)) .table-wrapper th:has(.xinai-column-resize){padding-right:var(--ui-space-24)!important}

/* Keep both group controls and action labels; arrange them in one compact row. */
.xinai-workspace:not(:has(.key-workspace)) .table-wrapper .key-group-stack{display:flex;align-items:center;gap:var(--ui-space-8);height:28px;min-height:0}
.xinai-workspace:not(:has(.key-workspace)) .table-wrapper .key-group-stack .key-group-button{margin-block:0;height:28px;min-height:28px}
.xinai-workspace:not(:has(.key-workspace)) .table-wrapper td.sticky-col-right button.flex-col{flex-direction:row;align-items:center;min-height:28px;height:28px;padding:var(--ui-space-4);gap:var(--ui-space-4)}
.xinai-workspace:not(:has(.key-workspace)) .table-wrapper td>.text-sm:has(>div.mt-0\.5){display:flex;align-items:center;gap:var(--ui-space-12)}
.xinai-workspace:not(:has(.key-workspace)) .table-wrapper td>.text-sm>div.mt-0\.5{margin-top:0}

.xinai-workspace .font-mono:not(code):not(pre){font-family:var(--ui-font);font-variant-numeric:tabular-nums}
.xinai-workspace:not(:has(.key-workspace)) .table-wrapper td>span.min-h-9{min-height:var(--ui-space-32);height:var(--ui-space-32);padding-block:var(--ui-space-4)}
.xinai-workspace:not(:has(.key-workspace)) .table-wrapper .key-group-stack{flex-direction:row;min-width:440px;width:max-content}
.xinai-workspace:not(:has(.key-workspace)) .table-wrapper .key-group-stack .key-group-button{width:auto;flex-shrink:0;gap:var(--ui-space-8);border-radius:var(--ui-radius-6)}
.xinai-workspace:not(:has(.key-workspace)) .table-wrapper .key-primary-button .key-table-group{flex-wrap:nowrap;gap:var(--ui-space-4)}
.xinai-workspace:not(:has(.key-workspace)) .table-wrapper .key-primary-button .truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;max-width:160px}
.xinai-workspace:not(:has(.key-workspace)) .table-wrapper .key-group-role{font-size:var(--ui-font-12);margin-left:var(--ui-space-8)}
.xinai-workspace:not(:has(.key-workspace)) .table-wrapper .key-backup-name{white-space:nowrap;font-size:var(--ui-font-12)}
