/**
 * Seango L0 设计令牌 + 旧项目 Element 映射。
 * 新项目：由 zhongshu-console.css 前置拼接。
 * 旧项目：单独引入本文件，不要拉整个 zhongshu-hub。
 */
:root {
  --ink: #18181b;
  --muted: #71717a;
  --line: #e4e4e7;
  --soft: #f4f4f5;
  --shell-canvas: var(--soft);
  --panel: #ffffff;
  --brand: #165dff;
  --brand-dark: #0e42d2;
  --brand-soft: #e8f3ff;
  --sidebar-bg: #ffffff;
  --sidebar-accent: #f4f4f5;
  --sidebar-foreground: #18181b;
  --sidebar-primary: #18181b;
  --sidebar-primary-foreground: #fafafa;
  --green: #00b42a;
  --green-soft: #e8ffea;
  --orange: #ff7d00;
  --orange-soft: #fff7e8;
  --red: #f53f3f;
  --red-soft: #ffece8;
  --violet: #7250c9;
  --shadow: 0 1px 3px rgba(15, 23, 42, .10), 0 1px 2px -1px rgba(15, 23, 42, .10);
  --shadow-hover: 0 4px 12px rgba(15, 23, 42, .10);
  --radius: 10px;
  --background: var(--panel);
  --foreground: var(--ink);
  --card: var(--panel);
  --card-foreground: var(--ink);
  --popover: var(--panel);
  --popover-foreground: var(--ink);
  --primary: var(--brand);
  --primary-foreground: #fff;
  --secondary: #f4f4f5;
  --secondary-foreground: var(--ink);
  --accent: var(--sidebar-accent);
  --accent-foreground: var(--ink);
  --destructive: var(--red);
  --destructive-foreground: #fff;
  --muted-foreground: var(--muted);
  --border: var(--line);
  --input: #d4d4d8;
  --ring: #6366f1;
  --chart-1: #165dff;
  --chart-2: #0d9488;
  --chart-3: #7c3aed;
  --chart-4: #ea580c;
  --chart-5: #db2777;
  --radius-sm: 6px;
  --radius-md: 8px;
  --radius-lg: var(--radius);
  --radius-xl: 14px;
  --shadow-xs: 0 1px 2px rgba(15, 23, 42, .04);
  --shadow-sm: 0 2px 8px 0 rgba(15, 23, 42, 0.114);
  --shadow-md: 0 4px 16px rgba(15, 23, 42, .10);
  --shadow-lg: 0 10px 30px rgba(15, 23, 42, .12);
  --shadow-inset-left: 0 0 0 transparent;
  --shadow-inset-panel: var(--shadow-inset-left), var(--shadow-sm);
  --sidebar-inset-gap: 0;
  /* 与 Ant Design Pro 分析页一致：AlibabaSans 自托管，中文回落系统 UI。 */
  --sg-font: AlibabaSans, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  --sg-font-code: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
  --sg-font-table-head: 600 14px/22px var(--sg-font);
  --sg-font-table-body: 400 14px/22px var(--sg-font);
  --sg-font-table-primary: 400 14px/22px var(--sg-font);
  --sg-list-hero-outer: url("/images/workspace/list-hero-outer.png");
  --sg-list-hero-inner: url("/images/workspace/list-hero.png");
  /* 组件库视觉体系，对齐 Semi Design。子项目只许覆盖 --brand / --brand-dark / --brand-soft。 */
  /* Arco theme 2838：https://arco.design/themes/design/2838/setting/base/Color */
  --sg-canvas: #f7f8fa;
  --sg-surface: #ffffff;
  --sg-ink: #121314;
  --sg-subtle: #5c5c5c;
  --sg-faint: #909399;
  --sg-placeholder: #c2c2c2;
  --sg-line: #ebeef5;
  --sg-line-soft: #e5e6eb;
  --sg-line-control: #dcdfe6;
  --sg-header: #fafafa;
  --sg-hover: #fafafa;
  --sg-fill: #fafafa;
  --sg-fill-hover: #f2f3f5;
  --sg-radius-control: 4px;
  --sg-radius-menu: 6px;
  --sg-radius-card: 4px;
  --sg-shadow-card: none;
  --sg-control: 32px;
  --sg-control-sm: 28px;
  --sg-motion-fast: 100ms;
  --sg-motion-mid: 200ms;
  --sg-ease: cubic-bezier(0.34, 0.69, 0.1, 1);
  /* 吨吨钢 --zs-* 过渡别名，源是 --brand */
  --zs-color-primary: var(--brand);
  --zs-color-primary-hover: var(--brand-dark);
  --zs-color-primary-active: var(--brand-dark);
  --zs-color-primary-soft: var(--brand-soft);
  --zs-color-danger: var(--red);
  --zs-color-bg-page: var(--soft);
  --zs-color-bg-card: var(--panel);
  --zs-color-text-title: var(--ink);
  --zs-color-text-main: var(--muted);
  --zs-color-border-subtle: var(--line);
  --zs-radius-card: var(--radius);
  --zs-radius-component: var(--radius-md);
  --zs-radius-small: var(--radius-sm);
  /* Font / Size / Border / Shadow：2838 未改项用 Arco 默认，改过的圆角与按钮态写在下面。 */
  --sg-font-body-1: 12px;
  --sg-font-body-2: 13px;
  --sg-font-body-3: 14px;
  --sg-font-title-1: 16px;
  --sg-font-title-2: 20px;
  --sg-font-title-3: 24px;
  --sg-leading: 1.5715;
  --sg-radius-none: 0;
  --sg-radius-small: 4px;
  --sg-radius-medium: 6px;
  --sg-radius-large: 8px;
  --sg-radius-circle: 50%;
  --sg-fill-2: #f2f3f5;
  --sg-fill-3: #e5e6eb;
  --sg-line-4: #cdd0d6;
  --sg-size-mini: 24px;
  --sg-size-small: 28px;
  --sg-size-default: 32px;
  --sg-size-large: 36px;
  --sg-size-title: 44px;
  --sg-icon-size: 14px;
  --sg-icon-hover: 24px;
  --sg-shadow-1: 0 2px 5px rgba(0, 0, 0, .1);
  --sg-shadow-2: 0 4px 10px rgba(0, 0, 0, .1);
  --sg-shadow-3: 0 8px 20px rgba(0, 0, 0, .1);
  --sg-shadow-pop: var(--sg-shadow-1);
  --sg-shadow-focus: none;
  font-family: var(--sg-font);
  line-height: var(--sg-leading);
  color: var(--ink);
  background: var(--soft);
}

.theme-dark {
  --ink: #e2e8f0;
  --muted: #94a3b8;
  --line: #263449;
  --soft: #0f172a;
  --panel: #111c2f;
  --brand: #60a5fa;
  --brand-dark: #93c5fd;
  --brand-soft: #172554;
  --sidebar-bg: #0f172a;
  --sidebar-accent: #1e293b;
  --sidebar-foreground: #f8fafc;
  --shadow: 0 1px 2px rgba(0,0,0,.3), 0 10px 24px rgba(0,0,0,.16);
  --background: #111c2f;
  --foreground: #f8fafc;
  --card: #111c2f;
  --card-foreground: #f8fafc;
  --popover: #111c2f;
  --popover-foreground: #f8fafc;
  --secondary: #172033;
  --secondary-foreground: #f8fafc;
  --accent: #172033;
  --accent-foreground: #f8fafc;
  --border: #334155;
  --input: #334155;
  --muted-foreground: #94a3b8;
  --sg-canvas: #0b1220;
  --sg-surface: #111c2f;
  --sg-ink: #f8fafc;
  --sg-subtle: #94a3b8;
  --sg-faint: #94a3b8;
  --sg-line: #334155;
  --sg-line-soft: #263449;
  --sg-header: #172033;
  --sg-hover: #1e293b;
  --sg-shadow-card: none;
  color-scheme: dark;
}
.theme-dark input[type="date"],
.theme-dark input[type="datetime-local"],
.theme-dark input[type="time"] {
  color-scheme: dark;
}
.theme-dark .sg-date-range input[type="date"],
.theme-dark .sg-date-range input[type="datetime-local"] {
  background: var(--card);
  color: var(--foreground);
  border-color: var(--line);
}
.theme-dark .ui-sheet-panel,
.theme-dark .ui-dialog {
  background: var(--card);
  color: var(--card-foreground);
  border-color: var(--line);
}
.theme-dark .sg-hub-row,
.theme-dark .dash-hub-row { border-bottom-color: rgba(255, 255, 255, .08); }
.theme-dark .sg-hub-row dt,
.theme-dark .dash-hub-row dt { color: rgba(255, 255, 255, .45); }
.theme-dark .sg-hub-row dd,
.theme-dark .dash-hub-row dd { color: rgba(255, 255, 255, .88); }
.theme-dark .sg-hub-sync,
.theme-dark .dash-hub-sync {
  background: transparent;
  border-color: rgba(255, 255, 255, .16);
}

/* L1 语义类：旧项目可包一层，不必改 DOM */
.sg-page-head { margin: 0 0 16px; }
.sg-page-head h1 { margin: 0; font-size: var(--sg-font-title-1); font-weight: 600; letter-spacing: 0; line-height: var(--sg-leading); color: var(--sg-ink); }
.sg-table-wrap { overflow: auto; border: 1px solid var(--sg-line); border-radius: var(--sg-radius-card); background: var(--sg-surface); }
.sg-list-table { width: 100%; border-collapse: collapse; }
.sg-list-table th { font: var(--sg-font-table-head); color: var(--sg-faint); text-align: left; padding: 0 12px; height: 44px; border-bottom: 1px solid var(--sg-line); background: var(--sg-header); }
.sg-list-table td { font: var(--sg-font-table-body); color: var(--sg-ink); padding: 10px 12px; height: 52px; border-bottom: 1px solid var(--sg-line-soft); transition: background var(--sg-motion-fast) var(--sg-ease); }
.sg-list-table td.sg-primary-cell, .sg-list-table .primary-cell { font: var(--sg-font-table-primary); color: var(--sg-ink); }
.sg-list-table tbody tr:hover { background: var(--sg-hover); }

/* 列表页标准：白卡片页头。类名保留 content-page-head--banner，视觉以组件库为准。 */
.content-page-head--banner,
.sg-page-head--banner {
  position: relative;
  min-height: 0;
  margin-bottom: 16px;
  padding: 4px 2px 0;
  border: 0;
  border-radius: 0;
  overflow: visible;
  background: transparent;
  box-shadow: none;
}
.content-page-head--banner-inner {
  background: var(--sg-list-hero-inner) center / 100% 100% no-repeat, var(--brand-soft);
}
.content-page-head--banner h1,
.sg-page-head--banner h1 { color: var(--sg-ink); font-size: var(--sg-font-title-1); font-weight: 600; letter-spacing: 0; }
.content-page-head--banner .lead,
.sg-page-head--banner .lead { margin-top: 4px; color: var(--sg-subtle); font-size: var(--sg-font-body-2); line-height: var(--sg-leading); }
.theme-dark .content-page-head--banner,
.theme-dark .content-page-head--banner-inner,
.theme-dark .sg-page-head--banner {
  background: linear-gradient(90deg, color-mix(in srgb, var(--brand-soft) 70%, var(--panel)), var(--brand-soft));
}
.theme-dark .content-page-head--banner h1,
.theme-dark .sg-page-head--banner h1 { color: var(--foreground); }
.theme-dark .content-page-head--banner .lead,
.theme-dark .sg-page-head--banner .lead { color: var(--muted-foreground); }

.list-card,
.sg-list-card,
.sg-card {
  padding: 16px;
  overflow: visible;
  border: 1px solid var(--sg-line-soft);
  border-radius: var(--sg-radius-card);
  background: var(--sg-surface);
  box-shadow: var(--sg-shadow-card);
}
.sg-card-head {
  display: flex;
  align-items: center;
  min-height: var(--sg-size-title);
  margin: -16px -16px 16px;
  padding: 0 16px;
  border-bottom: 1px solid var(--sg-line-soft);
  color: var(--sg-ink);
  font-size: var(--sg-font-title-1);
  font-weight: 500;
}
.list-toolbar,
.sg-list-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  padding: 8px 12px;
  margin: 0;
  border: 1px solid var(--sg-line-soft);
  border-radius: var(--sg-radius-small);
  background: var(--sg-surface);
  box-shadow: none;
}
.list-toolbar--filter { gap: 12px; padding: 10px 12px 10px 14px; }
.list-search,
.sg-list-search {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 8px;
  width: 280px;
  max-width: 100%;
  height: var(--sg-size-default);
  padding: 0 12px;
  border: 1px solid var(--sg-line-control);
  border-radius: var(--sg-radius-small);
  background: transparent;
  box-sizing: border-box;
}
.list-search .input,
.sg-list-search .input {
  flex: 1 1 auto;
  width: auto;
  min-width: 0;
  height: 34px;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  font-size: 14px;
}
.list-toolbar-actions { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.list-card .table-wrap,
.sg-list-card .sg-table-wrap {
  margin: 12px 0 0;
  border: 1px solid var(--sg-line-soft);
  border-radius: var(--sg-radius-none);
  overflow-x: auto;
  background: #fff;
}
.sg-badge { display: inline-flex; align-items: center; padding: 0 8px; height: 24px; border-radius: var(--sg-radius-small); font-size: var(--sg-font-body-1); font-weight: 500; border: 1px solid transparent; }
.sg-count { display: inline-flex; align-items: center; justify-content: center; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 8px; background: var(--red); color: #fff; font-size: 12px; font-weight: 500; line-height: 16px; }
.sg-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: var(--sg-size-default); padding: 0 16px; border-radius: var(--sg-radius-small); border: 1px solid var(--sg-line-control); background: transparent; color: var(--sg-ink); font-size: var(--sg-font-body-3); font-weight: 400; line-height: 1; cursor: pointer; box-shadow: none; transition: background var(--sg-motion-fast) var(--sg-ease), border-color var(--sg-motion-fast) var(--sg-ease), color var(--sg-motion-fast) var(--sg-ease); }
.sg-button:hover { background: transparent; border-color: var(--sg-line-control); color: var(--sg-ink); }
.sg-button:active { background: var(--sg-fill-2); border-color: var(--sg-line-4); }
.sg-button:focus-visible { outline: 2px solid color-mix(in srgb, var(--brand) 45%, transparent); outline-offset: 2px; }
.sg-button:disabled { background: var(--sg-fill); border-color: var(--sg-line-soft); color: var(--sg-placeholder); cursor: not-allowed; }
.sg-button-primary { background: var(--brand); border-color: var(--brand); color: #fff; }
.sg-button-primary:hover { color: #fff; background: color-mix(in srgb, var(--brand) 78%, #fff); border-color: color-mix(in srgb, var(--brand) 78%, #fff); }
.sg-button-primary:active { color: #fff; background: var(--brand-dark); border-color: var(--brand-dark); }
.sg-button-outline { background: var(--brand-soft); border-color: color-mix(in srgb, var(--brand) 48%, #fff); color: var(--brand); }
.sg-button-outline:hover { background: var(--brand); border-color: var(--brand); color: #fff; }
.sg-button-outline:active { background: var(--brand-dark); border-color: var(--brand-dark); color: #fff; }
.sg-button-dashed { background: transparent; border-style: dashed; border-color: var(--brand); color: var(--brand); }
.sg-button-dashed:hover { background: transparent; border-color: color-mix(in srgb, var(--brand) 78%, #fff); color: color-mix(in srgb, var(--brand) 78%, #fff); }
.sg-button-dashed:active { background: var(--brand-soft); border-color: var(--brand-dark); color: var(--brand-dark); }
.sg-button-small { height: var(--sg-size-small); padding: 0 12px; gap: 4px; }
.sg-button-mini { height: var(--sg-size-mini); padding: 0 8px; gap: 6px; font-size: var(--sg-font-body-1); }
.sg-link { color: var(--brand); text-decoration: none; }
.sg-link:hover { color: color-mix(in srgb, var(--brand) 78%, #fff); }
.sg-link:active { color: var(--brand-dark); }
.sg-link[aria-disabled="true"] { color: color-mix(in srgb, var(--brand) 48%, #fff); pointer-events: none; }
.sg-divider { display: block; height: 1px; margin: 16px 0; border: 0; background: var(--sg-line-soft); }
.sg-avatar { display: inline-grid; place-items: center; width: 32px; height: 32px; border-radius: var(--sg-radius-circle); background: var(--sg-fill-3); color: var(--sg-subtle); font-size: var(--sg-font-body-3); font-weight: 500; overflow: hidden; }
.sg-icon-hover { display: inline-grid; place-items: center; width: var(--sg-icon-hover); height: var(--sg-icon-hover); padding: 0; border: 0; border-radius: var(--sg-radius-circle); background: transparent; color: var(--sg-subtle); cursor: pointer; }
.sg-icon-hover:hover { background: var(--sg-fill-2); color: var(--sg-ink); }
.sg-button[aria-busy="true"] { position: relative; pointer-events: none; opacity: .72; }
.sg-button[aria-busy="true"]::before { content: ""; width: 14px; height: 14px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: sg-spin .6s linear infinite; }
.sg-empty { padding: 48px 24px; text-align: center; color: var(--sg-subtle); font-size: 13px; }
@keyframes sg-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .sg-button, .sg-list-table td { transition: none; }
  .sg-button[aria-busy="true"]::before { animation: none; }
}

.sg-date-range { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.sg-date-range input[type="date"] { height: 32px; padding: 0 8px; border: 1px solid var(--input); border-radius: var(--radius-sm); background: var(--card); color: var(--foreground); }
.sg-toast-stack { position: fixed; z-index: 80; right: 16px; bottom: 16px; display: flex; flex-direction: column; gap: 8px; max-width: 360px; }
.sg-toast { padding: 10px 12px; border-radius: var(--radius-sm); border: 1px solid var(--border); background: var(--card); color: var(--foreground); font-size: 13px; box-shadow: var(--shadow-sm); }
.sg-toast-success { border-color: var(--green); background: var(--green-soft); }
.sg-toast-danger { border-color: var(--red); background: var(--red-soft); }
.sg-host-upload { display: grid; gap: 8px; }
.sg-host-upload-preview img { width: 72px; height: 72px; object-fit: cover; border-radius: var(--radius-sm); border: 1px solid var(--border); }
.sg-tree { list-style: none; margin: 0; padding: 0; }
.sg-tree ul { list-style: none; margin: 4px 0 0; padding-left: 16px; border-left: 1px solid var(--border); }
.sg-tree-label { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--foreground); }
.sg-transfer-panes { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.sg-transfer-pane { border: 1px solid var(--border); border-radius: var(--radius); padding: 10px; min-height: 120px; background: var(--card); }
.sg-transfer-title { margin: 0 0 8px; font-size: 12px; font-weight: 600; color: var(--foreground); }
.sg-transfer-row { display: flex; align-items: center; gap: 6px; font-size: 13px; margin: 0 0 6px; color: var(--foreground); }
.sg-stepper-list { display: flex; flex-wrap: wrap; gap: 12px; list-style: none; margin: 0 0 12px; padding: 0; }
.sg-stepper-item { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 13px; }
.sg-stepper-index { width: 22px; height: 22px; border-radius: 999px; display: grid; place-items: center; border: 1px solid var(--border); font-size: 11px; font-weight: 600; }
.sg-stepper-item.is-current { color: var(--foreground); font-weight: 600; }
.sg-stepper-item.is-current .sg-stepper-index, .sg-stepper-item.is-done .sg-stepper-index { background: var(--brand); border-color: var(--brand); color: #fff; }
.sg-stepper-item.is-done { color: var(--foreground); }
.sg-stepper-body { padding: 12px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--card); font-size: 13px; }
.sg-rich-text .textarea { min-height: 8rem; }
.sg-progress { display: grid; gap: 8px; }
.sg-progress-track { height: 9px; overflow: hidden; border-radius: 999px; background: var(--soft); }
.sg-progress-track > span { display: block; height: 100%; border-radius: inherit; background: var(--brand); }
.sg-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; color: var(--muted-foreground); font-size: 13px; }
.sg-kbd { padding: 2px 5px; border: 1px solid var(--border); border-radius: 4px; background: var(--background); font: 10px ui-monospace, SFMono-Regular, Menlo, monospace; }
.sg-spinner { display: inline-block; width: 16px; height: 16px; border: 2px solid var(--border); border-top-color: var(--brand); border-radius: 50%; }
.sg-timeline { display: grid; }

/* Element Plus 改肤：只改外观变量与表头密度 */
html.seango-theme, .seango-theme {
  --el-color-primary: var(--brand);
  --el-color-primary-light-3: color-mix(in srgb, var(--brand) 70%, #fff);
  --el-color-primary-light-5: color-mix(in srgb, var(--brand) 50%, #fff);
  --el-color-primary-light-7: var(--brand-soft);
  --el-color-primary-light-9: var(--brand-soft);
  --el-color-primary-dark-2: var(--brand-dark);
  --el-color-danger: var(--red);
  --el-color-success: var(--green);
  --el-color-warning: var(--orange);
  --el-border-radius-base: var(--radius-sm);
  --el-font-size-base: 13px;
  --el-text-color-primary: var(--foreground);
  --el-text-color-regular: var(--muted-foreground);
  --el-border-color: var(--border);
  --el-bg-color: var(--card);
  --el-bg-color-page: var(--soft);
  --el-fill-color-light: var(--soft);
}
.seango-theme .el-table th.el-table__cell {
  font: var(--sg-font-table-head);
  color: var(--foreground);
  background: var(--soft);
}
.seango-theme .el-table td.el-table__cell {
  font: var(--sg-font-table-body);
  color: var(--muted-foreground);
}
.seango-theme .el-button {
  border-radius: var(--radius-sm);
  font-size: 13px;
}
.seango-theme .el-button--primary {
  --el-button-bg-color: var(--brand);
  --el-button-border-color: var(--brand);
}
.seango-theme .el-empty__description { font-size: 13px; color: var(--muted); }

.sg-topbar-widgets { display: inline-flex; align-items: center; gap: 8px; }
.sg-topbar-widgets button {
  position: relative;
  width: 32px;
  height: 32px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--card);
  color: var(--foreground);
  cursor: pointer;
}
.sg-topbar-widgets .sg-widget-badge {
  position: absolute;
  top: -4px;
  right: -4px;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 999px;
  background: var(--red);
  color: #fff;
  font-size: 10px;
  line-height: 16px;
}
.sg-widget-panel {
  position: absolute;
  right: 0;
  top: calc(100% + 6px);
  width: 320px;
  max-height: 360px;
  overflow: auto;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-md);
  z-index: 90;
}
.sg-widget-panel a, .sg-widget-panel button.sg-widget-row {
  display: block;
  width: 100%;
  text-align: left;
  padding: 10px 12px;
  border: 0;
  background: transparent;
  color: var(--foreground);
  font-size: 13px;
  cursor: pointer;
}
.sg-widget-wrap { position: relative; }

/* Arco 2838 数据展示 / 录入 / 反馈 / 导航。未改项保持 Arco 默认。 */
.sg-comment { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 12px; color: var(--sg-ink); font-size: var(--sg-font-body-3); line-height: var(--sg-leading); }
.sg-comment header { display: flex; align-items: baseline; gap: 8px; }
.sg-comment strong { font-weight: 500; }
.sg-comment time { color: var(--sg-faint); font-size: var(--sg-font-body-1); }
.sg-comment p { margin: 4px 0 0; }
.sg-comment-actions { display: flex; gap: 12px; margin-top: 8px; }
.sg-comment-actions button { padding: 0; border: 0; background: transparent; color: var(--sg-subtle); font-size: var(--sg-font-body-1); cursor: pointer; }
.definition, .sg-descriptions { border: 1px solid var(--sg-line-soft); border-radius: var(--sg-radius-small); overflow: hidden; }
.definition dt, .sg-descriptions dt { background: var(--sg-header); color: var(--sg-subtle); }
.sg-empty, .empty { color: var(--sg-placeholder); }
.sg-empty .empty-mark, .empty .empty-mark { margin-bottom: 4px; color: var(--sg-placeholder); background: transparent; }
.ui-popover-panel, .ui-dropdown-panel, .sg-popover {
  border: 1px solid var(--sg-line-soft);
  border-radius: var(--sg-radius-medium);
  box-shadow: var(--sg-shadow-pop);
}
.ui-alert, .notice, .sg-toast { border-radius: var(--sg-radius-small); }
.sg-toast, .notice { border-radius: var(--sg-radius-large); }
.ui-dialog { border-width: 0; border-radius: var(--sg-radius-large); }
.ui-dialog-body { padding: 18px 20px; }
.ui-dialog-footer { display: flex; justify-content: flex-end; gap: 10px; padding: 12px 20px; border-top: 1px solid var(--sg-line-control); }
.ui-sheet-body, .ui-sheet-panel .ui-sheet-body { padding: 12px 16px; }
.ui-sheet-footer, .ui-sheet-panel .ui-sheet-footer { padding: 10px 16px; border-top-color: var(--sg-line-soft); }
.ui-accordion, .ui-collapsible { border: 1px solid var(--sg-line-soft); border-radius: var(--sg-radius-small); }
.ui-accordion-item, .ui-collapsible > summary { padding-left: 12px; padding-right: 12px; }
.ui-tooltip-host[data-tooltip]::after { padding: 6px 10px; border-radius: var(--sg-radius-small); font-size: var(--sg-font-body-1); }
.check input, .sg-tree input[type="checkbox"] { width: 16px; height: 16px; }
.ui-switch-track, .ui-switch { width: 44px; height: 24px; }
.sg-stepper-index { width: 24px; height: 24px; font-size: 14px; }
.sg-transfer-pane { height: 250px; border-color: var(--sg-line-soft); border-radius: var(--sg-radius-none); }
.input[aria-invalid="true"], .select[aria-invalid="true"], .textarea[aria-invalid="true"] { border-color: var(--red); box-shadow: none; background: var(--sg-surface); }

/* Frozen shell recipes. Subprojects pull this file; do not restyle these in host CSS. */
.seango-theme .nav-group-summary,
.seango-theme .nav-group[open] > .nav-group-summary,
.seango-theme .nav-group.is-active > .nav-group-summary {
  color: inherit;
  background: transparent;
  font-size: 14px;
  font-weight: 500;
  line-height: 22px;
  box-shadow: none;
}
.seango-theme .nav-group.is-active > .nav-group-summary,
.seango-theme .nav-group.is-active > .nav-group-summary .nav-icon {
  color: var(--brand);
}
.seango-theme .nav-group-items {
  gap: 2px;
  margin: 0 0 4px;
  padding: 0 0 0 32px;
  border-left: 0;
}
.seango-theme .nav-group-items a {
  min-height: 36px;
  padding: 0 10px;
  border-radius: 8px;
  color: var(--sg-subtle);
  font-size: 14px;
  font-weight: 400;
  background: transparent;
  box-shadow: none;
}
.seango-theme .nav-group-items a:hover {
  color: var(--sg-ink);
  background: var(--sg-fill-hover, #f2f3f5);
}
.seango-theme .nav-group-items a.active,
.seango-theme .nav > a.active {
  color: var(--brand);
  background: var(--brand-soft);
  font-weight: 500;
  box-shadow: none;
}
.seango-theme .list-page-stack {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
}
.seango-theme .list-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 64px;
  padding: 16px 8px;
  box-sizing: border-box;
}
.seango-theme .list-card-head h1 {
  margin: 0;
  font-size: 16px;
  font-weight: 600;
  line-height: 24px;
  color: rgba(0, 0, 0, .88);
}
.seango-theme .list-table thead th {
  height: 47px;
  padding: 12px 8px;
  color: rgba(0, 0, 0, .88);
  background: var(--sg-header, #fafafa);
  font: 600 14px/22px var(--sg-font);
  border-bottom: 1px solid #f0f0f0;
}
.seango-theme .list-table tbody td {
  height: 47px;
  padding: 12px 8px;
  font: 400 14px/22px var(--sg-font);
  border-bottom: 1px solid #f0f0f0;
}
.seango-theme .list-table tbody tr:hover td { background: var(--sg-hover, #fafafa); }
.seango-theme .ui-sheet-overlay,
.seango-theme .ui-alert-backdrop,
.seango-theme .ui-dialog::backdrop { background: var(--sg-overlay, rgba(0, 0, 0, .45)); }
.seango-theme .ui-dialog,
.seango-theme .ui-alert-dialog-panel {
  border: 1px solid var(--sg-line);
  border-radius: 8px;
  background: #fff;
  box-shadow: none;
}
.seango-theme .ui-dialog-title { font-size: 16px; font-weight: 600; line-height: 24px; }
.seango-theme .ui-sheet-panel { width: min(480px, 100vw); box-shadow: none; }
.seango-theme .ui-popover-panel,
.seango-theme .ui-dropdown-panel {
  border: 1px solid var(--sg-line);
  border-radius: 6px;
  box-shadow: 0 2px 5px rgba(0, 0, 0, .1);
}
.seango-theme .ui-alert {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  gap: 8px 12px;
  padding: 12px 16px;
  border: 1px solid var(--sg-line);
  border-radius: 8px;
}
.seango-theme .ui-alert-info { color: var(--brand); border-color: color-mix(in srgb, var(--brand) 22%, var(--sg-line)); background: color-mix(in srgb, var(--brand) 8%, #fff); }
.seango-theme .ui-alert-success { color: var(--green); border-color: color-mix(in srgb, var(--green) 28%, var(--sg-line)); background: color-mix(in srgb, var(--green) 8%, #fff); }
.seango-theme .ui-alert-warning { color: var(--orange); border-color: color-mix(in srgb, var(--orange) 28%, var(--sg-line)); background: color-mix(in srgb, var(--orange) 8%, #fff); }
.seango-theme .ui-alert-danger,
.seango-theme .ui-alert-destructive { color: var(--red); border-color: color-mix(in srgb, var(--red) 28%, var(--sg-line)); background: color-mix(in srgb, var(--red) 8%, #fff); }
.seango-theme .sg-hub-card {
  min-height: 0;
  padding: 0 0 16px;
  border: 1px solid var(--sg-line);
  border-radius: 8px;
  background: #fff;
  box-shadow: none;
}
.seango-theme .sg-hub-head,
.seango-theme .sg-hub-card .sg-share-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 56px;
  padding: 16px 24px 8px;
}
.seango-theme .sg-hub-head h2,
.seango-theme .sg-hub-card .sg-share-head h2 {
  margin: 0;
  color: rgba(0, 0, 0, .88);
  font-size: 16px;
  font-weight: 600;
  line-height: 24px;
}
.seango-theme .sg-hub-actions,
.seango-theme .dash-hub-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.seango-theme .sg-hub-badge,
.seango-theme .dash-hub-badge {
  display: inline-flex;
  align-items: center;
  height: 24px;
  padding: 0 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 500;
  white-space: nowrap;
}
.seango-theme .sg-hub-badge--success,
.seango-theme .dash-hub-badge--success { color: var(--green); background: var(--green-soft); }
.seango-theme .sg-hub-badge--warning,
.seango-theme .dash-hub-badge--warning { color: var(--orange); background: var(--orange-soft); }
.seango-theme .sg-hub-badge--danger,
.seango-theme .dash-hub-badge--danger { color: var(--red); background: var(--red-soft, #ffece8); }
.seango-theme .sg-hub-badge--neutral,
.seango-theme .dash-hub-badge--neutral { color: var(--sg-subtle); background: var(--sg-fill-2); }
.seango-theme .sg-hub-sync,
.seango-theme .dash-hub-sync {
  display: inline-flex;
  align-items: center;
  height: 32px;
  padding: 0 12px;
  border: 1px solid var(--sg-line);
  border-radius: 6px;
  background: #fff;
  color: var(--brand);
  font-size: 14px;
  line-height: 22px;
  text-decoration: none;
  cursor: pointer;
  font-family: inherit;
}
.seango-theme .sg-hub-sync:hover,
.seango-theme .dash-hub-sync:hover { border-color: var(--brand); }
.seango-theme .sg-hub-body,
.seango-theme .sg-hub-card .sg-share-body { padding: 8px 24px 8px; }
.seango-theme .sg-hub-hint,
.seango-theme .dash-hub-hint {
  margin: 0 0 12px;
  padding: 10px 12px;
  border: 1px solid var(--sg-line);
  border-radius: 6px;
  background: var(--sg-fill-2);
  color: rgba(0, 0, 0, .65);
  font-size: 13px;
  line-height: 22px;
}
.seango-theme .sg-hub-list,
.seango-theme .dash-hub-list { margin: 0; padding: 0; }
.seango-theme .sg-hub-row,
.seango-theme .dash-hub-row {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr);
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid #f0f0f0;
}
.seango-theme .sg-hub-row:last-child,
.seango-theme .dash-hub-row:last-child { border-bottom: 0; }
.seango-theme .sg-hub-row dt,
.seango-theme .dash-hub-row dt {
  margin: 0;
  color: rgba(0, 0, 0, .45);
  font-size: 13px;
  line-height: 22px;
}
.seango-theme .sg-hub-row dd,
.seango-theme .dash-hub-row dd {
  margin: 0;
  color: rgba(0, 0, 0, .88);
  font-size: 13px;
  font-weight: 600;
  line-height: 22px;
  word-break: break-all;
}
.seango-theme .sg-hub-row dd.is-success,
.seango-theme .dash-hub-row dd.is-success { color: var(--green); }
.seango-theme .sg-hub-row dd.is-warning,
.seango-theme .dash-hub-row dd.is-warning { color: var(--orange); }
.seango-theme .sg-hub-empty,
.seango-theme .sg-hub-card .dash-empty {
  margin: 0;
  color: var(--sg-subtle);
  font-size: 13px;
  line-height: 22px;
}
.seango-theme .ui-icon { display: block; flex: 0 0 auto; }
.seango-theme .ui-icon--14 { width: 14px; height: 14px; }
.seango-theme .ui-icon--16 { width: 16px; height: 16px; }
.seango-theme .ui-icon--20 { width: 20px; height: 20px; }

@font-face{font-family:AlibabaSans;font-style:normal;font-weight:300;font-display:swap;src:url("/assets/fonts/AlibabaSans-Light.woff2") format("woff2")}@font-face{font-family:AlibabaSans;font-style:normal;font-weight:400;font-display:swap;src:url("/assets/fonts/AlibabaSans-Regular.woff2") format("woff2")}@font-face{font-family:AlibabaSans;font-style:normal;font-weight:500;font-display:swap;src:url("/assets/fonts/AlibabaSans-Medium.woff2") format("woff2")}@font-face{font-family:AlibabaSans;font-style:normal;font-weight:600;font-display:swap;src:url("/assets/fonts/AlibabaSans-Medium.woff2") format("woff2")}@font-face{font-family:AlibabaSans;font-style:normal;font-weight:700;font-display:swap;src:url("/assets/fonts/AlibabaSans-Medium.woff2") format("woff2")}
/* L0 令牌在 seango-theme.css，由 WebAssetController 前置拼接。字体与主题配置台一致：system-ui。 */

* { box-sizing: border-box; }
html { min-height: 100%; overflow-x: hidden; scrollbar-width: thin; scrollbar-color: var(--line) transparent; }
body { min-height: 100vh; margin: 0; background: var(--shell-canvas); color: var(--ink); font-family: var(--sg-font); font-size: 14px; font-weight: 400; line-height: var(--sg-leading, 1.5715); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
::selection { color: #fff; background: var(--brand); }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, .button { cursor: pointer; }
:focus-visible { outline: 2px solid color-mix(in srgb, var(--ring) 55%, transparent); outline-offset: 2px; }
.skip-link { position: fixed; z-index: 100; top: -50px; left: 16px; padding: 10px 14px; border-radius: 9px; color: #fff; background: var(--ink); font-size: 12px; transition: top .15s ease; }
.skip-link:focus { top: 16px; }

.shell { min-height: 100vh; display: flex; align-items: stretch; gap: 0; padding: 0; background: var(--sidebar-bg); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.is-hidden { display: none !important; }
.ui-icon { display: block; flex: 0 0 auto; }
.sidebar { flex: 0 0 256px; width: 256px; min-width: 256px; padding: 8px; border-radius: 0; box-shadow: none; background: var(--sidebar-bg); box-sizing: border-box; }
.workspace,
.workspace-inset { flex: 1 1 auto; min-width: 0; margin: 8px 8px 8px var(--sidebar-inset-gap, 0); min-height: calc(100vh - 16px); display: flex; flex-direction: column; border: 0; border-radius: 12px; background: var(--background); box-shadow: var(--shadow-inset-panel); overflow: visible; position: relative; }
.workspace-inset > .topbar:first-child { border-radius: 12px 12px 0 0; }
.topbar { position: sticky; z-index: 10; top: 0; flex-shrink: 0; height: 64px; padding: 0 16px; display: flex; align-items: center; justify-content: space-between; border-bottom: 0; background: var(--background); box-shadow: none; }
.topbar-start, .topbar-actions { display: flex; align-items: center; gap: 12px; min-width: 0; }
.topbar-start { flex: 1; }
.topbar-start .command-menu { margin-left: auto; margin-right: 4px; }
.topbar-actions { padding-left: 4px; }
.topbar-trigger { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 28px; height: 28px; padding: 0; border: 1px solid var(--border); border-radius: var(--radius-sm); color: var(--foreground); background: var(--background); box-shadow: var(--shadow-xs); cursor: pointer; transition: background .15s ease, color .15s ease, border-color .15s ease; text-decoration: none; }
.topbar-trigger:hover { color: var(--foreground); border-color: var(--border); background: var(--accent); }
.topbar-trigger .ui-icon { width: 16px; height: 16px; }
.topbar-separator { width: 1px; height: 24px; background: var(--line); }
.topbar-separator-small { height: 22px; }
.content { flex: 1 1 auto; width: 100%; max-width: 80rem; margin: 0 auto; padding: 24px 16px 32px; position: relative; }

/* Shadcn-style, no-JavaScript disclosure primitives. They keep the shell usable
   under the strict CSP while still providing command and profile menus. */
details > summary { list-style: none; cursor: pointer; }
details > summary::-webkit-details-marker { display: none; }
.mobile-nav { display: none; position: relative; }
.mobile-nav > summary { display: grid; place-items: center; }
.mobile-nav-panel { position: absolute; z-index: 30; top: 44px; left: -8px; width: min(280px, calc(100vw - 32px)); padding: 10px; border: 1px solid var(--line); border-radius: 10px; background: #fff; box-shadow: 0 15px 42px rgba(15,23,42,.14); }
.mobile-nav-panel a { display: flex; gap: 9px; align-items: center; padding: 9px 10px; border-radius: 7px; color: #475569; font-size: 13px; }
.mobile-nav-panel a:hover { color: var(--brand); background: var(--brand-soft); }
.mobile-nav-label { margin: 9px 10px 4px; color: #94a3b8; font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.command-menu { position: relative; }
.command-trigger { display: flex; align-items: center; justify-content: space-between; gap: 10px; width: auto; min-width: 168px; max-width: 220px; min-height: 36px; padding: 0 10px 0 12px; border: 1px solid #e2e8f0; border-radius: 9999px; color: #94a3b8; background: #fff; font-size: 13px; cursor: pointer; list-style: none; }
.command-trigger:hover { border-color: #cbd5e1; color: #64748b; background: #fff; }
.command-trigger-leading { display: inline-flex; align-items: center; gap: 8px; min-width: 0; flex: 1; }
.command-trigger-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.command-search-icon { display: inline-flex; flex-shrink: 0; color: inherit; }
.command-trigger-kbd { margin-left: auto; flex-shrink: 0; padding: 2px 6px; border: 1px solid #e2e8f0; border-radius: 6px; color: #64748b; background: #f8fafc; font: 11px/1.2 ui-sans-serif, system-ui, sans-serif; font-weight: 500; letter-spacing: .02em; box-shadow: none; }
.header-icon-button { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 8px; color: #0f172a; }
.header-icon-button:hover { color: var(--brand); background: var(--brand-soft); }
.command-panel { position: absolute; z-index: 40; top: 44px; right: 0; width: min(360px, calc(100vw - 32px)); padding: 10px; border: 1px solid var(--line); border-radius: 10px; background: #fff; box-shadow: 0 16px 44px rgba(15,23,42,.15); }
.command-heading, .command-foot { display: flex; align-items: center; justify-content: space-between; padding: 5px 8px 9px; color: #334155; font-size: 11px; font-weight: 750; }
.command-input { display: flex; gap: 8px; align-items: center; margin-bottom: 7px; padding: 9px 10px; border: 1px solid var(--line); border-radius: 7px; color: #94a3b8; background: #f8fafc; font-size: 12px; }
.command-panel > a { display: flex; align-items: center; gap: 9px; padding: 8px 9px; border-radius: 7px; color: #475569; font-size: 12px; }
.command-panel > a:hover { color: var(--brand); background: var(--brand-soft); }
.command-panel > a small { margin-left: auto; color: #94a3b8; font-size: 10px; }
.command-arrow { width: 16px; color: #94a3b8; text-align: center; }
.command-divider, .profile-divider { height: 1px; margin: 7px 0; background: #f1f5f9; }
.theme-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.theme-actions a { display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 7px 8px; border: 1px solid var(--line); border-radius: 6px; color: #64748b; font-size: 11px; text-align: center; }
.theme-actions a:hover, .theme-actions a.selected { color: var(--brand); border-color: #bfdbfe; background: var(--brand-soft); }
.command-foot { padding: 9px 8px 3px; color: #64748b; font-weight: 500; }
.profile-menu { position: relative; }
.profile-menu summary { display: flex; align-items: center; gap: 9px; min-width: 0; }
.profile-menu-sidebar summary { padding: 4px; }
.profile-copy { min-width: 0; flex: 1; }
.profile-copy strong { display: block; overflow: hidden; color: #0f172a; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.profile-copy span { display: block; margin-top: 3px; color: #64748b; font-size: 10px; }
.profile-more, .profile-chevron { color: #94a3b8; font-size: 13px; letter-spacing: .04em; }
.profile-menu-top summary { padding: 3px 4px; border-radius: 7px; }
.profile-menu-top summary:hover { background: #f8fafc; }
.profile-top-name { max-width: 120px; overflow: hidden; color: #475569; font-size: 12px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.profile-panel { position: absolute; z-index: 50; width: 238px; padding: 9px; border: 1px solid var(--line); border-radius: 10px; background: #fff; box-shadow: 0 16px 44px rgba(15,23,42,.15); }
.profile-panel-sidebar { z-index: 120; right: 0; bottom: calc(100% + 4px); left: auto; }
.profile-panel-top { top: 43px; right: 0; }
.profile-panel a, .profile-panel button { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 8px 9px; border: 0; border-radius: 7px; color: #475569; background: transparent; font-size: 12px; text-align: left; }
.profile-panel a:hover, .profile-panel button:hover { color: var(--brand); background: var(--brand-soft); }
.profile-panel kbd { margin-left: auto; }
.profile-panel-user { display: flex; align-items: center; gap: 9px; padding: 5px 4px 8px; }
.profile-panel-user strong, .profile-panel-user small { display: block; }
.profile-panel-user strong { color: #0f172a; font-size: 12px; }
.profile-panel-user small { margin-top: 3px; color: #64748b; font-size: 10px; }
.profile-danger { color: #b91c1c !important; }
.avatar { position: relative; width: 30px; height: 30px; flex: 0 0 30px; overflow: hidden; border-radius: 999px; display: grid; place-items: center; color: var(--brand-dark); background: #dbeafe; font-size: 12px; font-weight: 850; }
.avatar-fallback { position: absolute; inset: 0; display: grid; place-items: center; border-radius: inherit; }
.avatar img { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; display: block; border-radius: inherit; object-fit: cover; background: var(--sidebar-accent); }
.avatar-sidebar { width: 30px; height: 30px; flex-basis: 30px; }

.page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 26px; padding-bottom: 22px; border-bottom: 1px solid rgba(221, 227, 238, .88); }
.eyebrow { margin: 0 0 7px; color: var(--brand); font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 7px; font-size: clamp(25px, 3vw, 34px); letter-spacing: -.035em; }
h2 { margin-bottom: 6px; font-size: 19px; letter-spacing: -.02em; }
h3 { margin-bottom: 5px; font-size: 15px; }
.lead { max-width: 760px; margin-bottom: 0; color: var(--muted); line-height: 1.7; font-size: 14px; }
.actions { display: flex; flex-wrap: wrap; gap: 10px; }
.button { min-height: 40px; padding: 10px 15px; border: 1px solid transparent; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; font-size: 12px; font-weight: 750; transition: transform .15s ease, box-shadow .15s ease, background .15s ease, border-color .15s ease; }
.button-primary { color: #fff; background: var(--brand); box-shadow: 0 7px 18px rgba(33,86,217,.2); }
.button-primary:hover { background: var(--brand-dark); transform: translateY(-1px); }
.button-secondary { border-color: var(--line); color: var(--ink); background: #fff; }
.button-secondary:hover { border-color: #cbd4e4; background: #fbfcff; }
.button-small { min-height: 32px; padding: 7px 10px; font-size: 12px; }

.notice { margin-bottom: 18px; padding: 13px 15px; border-radius: 11px; font-size: 13px; line-height: 1.55; }
.notice-success { border: 1px solid #bdebd7; color: #116744; background: var(--green-soft); }
.notice-error { border: 1px solid color-mix(in srgb, var(--red) 24%, var(--border)); color: var(--red); background: var(--red-soft); }
.notice-info { border: 1px solid #cfdcff; color: #244cae; background: var(--brand-soft); }
.notice ul { margin: 5px 0 0; padding-left: 20px; }

.grid { display: grid; gap: 18px; }
.grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.span-2 { grid-column: span 2; }
.stack { display: grid; gap: 18px; }
.section-gap { margin-top: 18px; }
.card { border: 1px solid var(--border); border-radius: 12px; background: var(--card); box-shadow: var(--shadow-sm); }
.card:hover { box-shadow: var(--shadow-sm); }
.card-pad { padding: 22px; }
.card-head { padding: 20px 22px 16px; display: flex; align-items: center; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--line); }
.card-head p { margin: 4px 0 0; color: var(--muted); font-size: 12px; }
.card-body { padding: 22px; }
.metric { position: relative; overflow: visible; min-height: auto; padding: 24px; display: flex; flex-direction: column; gap: 24px; border: 1px solid var(--border); border-radius: 12px; box-shadow: var(--shadow-sm); background: var(--background); }
.metric::after { display: none; }
.metric-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 0; }
.metric-body { padding: 0; display: flex; flex-direction: column; gap: 6px; }
.metric-icon { width: 16px; height: 16px; border: 0; border-radius: 0; color: var(--muted-foreground); background: transparent; }
.metric-icon .ui-icon { width: 16px; height: 16px; }
.metric-label { color: var(--foreground); font-size: 14px; font-weight: 500; line-height: 1; }
.metric-value { margin: 0; padding: 0; font-size: 38px; line-height: 1.1; font-weight: 900; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.metric-trend { margin: 0; padding: 0; font-size: 12px; font-weight: 500; line-height: 1.4; color: var(--muted-foreground); }
.metric-trend.is-up { color: var(--foreground); }
.metric-trend.is-down { color: #dc2626; }
.metric-trend.is-neutral { color: var(--muted-foreground); }
.metric-hint { display: none; }
.metric:not(.metric-link) > .metric-hint,
.card-body > .metric-hint,
.card.metric > .metric-hint { display: block; margin: 0; padding: 0; color: var(--muted-foreground); font-size: 12px; font-weight: 500; line-height: 1.4; }
.metric.metric-link { display: flex; flex-direction: column; gap: 32px; color: inherit; text-decoration: none; transition: border-color .15s ease, box-shadow .15s ease; }
.metric-link:hover { box-shadow: var(--shadow-md); }
.insight-card { min-height: 148px; padding: 20px 21px; }
.insight-head { display: flex; align-items: center; justify-content: space-between; }
.insight-icon { width: 28px; height: 28px; border-radius: 9px; display: grid; place-items: center; font-size: 14px; font-weight: 850; }
.insight-blue { color: var(--brand); background: var(--brand-soft); }
.insight-violet { color: var(--violet); background: #f1edff; }
.insight-orange { color: var(--orange); background: var(--orange-soft); }
.insight-value { margin-top: 12px; font-size: 25px; font-weight: 820; letter-spacing: -.04em; }
.mini-bars { height: 40px; margin-top: 7px; padding: 8px 10px; display: flex; align-items: flex-end; gap: 4px; border: 1px solid var(--border); border-radius: 8px; background: color-mix(in srgb, var(--muted-foreground) 5%, var(--card)); box-sizing: border-box; }
.mini-bars span { flex: 1; min-width: 4px; max-width: 20px; border-radius: 4px 4px 2px 2px; background: color-mix(in srgb, var(--primary) 68%, var(--foreground)); opacity: .88; transition: opacity .15s ease, background .15s ease; }
.trend-row-link:hover .mini-bars span { opacity: 1; background: var(--primary); }
.mini-bars .bar-level-1 { height: 6px; opacity: .35; }
.mini-bars .bar-level-2 { height: 10px; opacity: .45; }
.mini-bars .bar-level-3 { height: 14px; opacity: .55; }
.mini-bars .bar-level-4 { height: 18px; opacity: .65; }
.mini-bars .bar-level-5 { height: 22px; opacity: .75; }
.mini-bars .bar-level-6 { height: 26px; opacity: .85; }
.mini-bars .bar-level-7 { height: 30px; opacity: .92; }
.mini-bars .bar-level-8 { height: 34px; opacity: 1; }
.insight-baseline { margin-top: 15px; display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 11px; }
.status-dot { width: 7px; height: 7px; border-radius: 50%; }
.dot-success { background: var(--green); box-shadow: 0 0 0 4px var(--green-soft); }
.dot-warning { background: var(--orange); box-shadow: 0 0 0 4px var(--orange-soft); }

.toolbar { margin-bottom: 16px; padding: 14px; display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.toolbar form { width: 100%; display: flex; flex-wrap: wrap; gap: 10px; }
.grow { flex: 1 1 260px; }
.field { display: grid; gap: 8px; }
.field label, .field .ui-label { color: var(--foreground); font-size: 14px; font-weight: 500; line-height: 1.4; }
.field small, .field-hint { margin: 0; color: var(--muted-foreground); font-size: 12px; line-height: 1.5; font-weight: 400; }
.input, .select, .textarea { width: 100%; min-height: 36px; border: 1px solid var(--input); border-radius: 6px; padding: 8px 12px; color: var(--foreground); background: var(--background); font-size: 14px; outline: none; box-shadow: var(--shadow-xs); transition: border-color .15s ease, box-shadow .15s ease; }
.textarea { min-height: 112px; resize: vertical; line-height: 1.55; padding-top: 10px; padding-bottom: 10px; }
.input::placeholder, .textarea::placeholder { color: var(--muted-foreground); opacity: 1; }
.input:focus, .select:focus, .textarea:focus { border-color: color-mix(in srgb, var(--foreground) 22%, var(--border)); box-shadow: 0 0 0 2px color-mix(in srgb, var(--foreground) 6%, transparent); }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 24px; align-items: start; }
.form-grid > .field { align-self: start; }
.field-full { grid-column: 1 / -1; }
.check { display: flex; align-items: center; gap: 9px; color: #3f4a60; font-size: 13px; }
.check input { width: 17px; height: 17px; accent-color: var(--brand); }
.form-actions { grid-column: 1 / -1; padding-top: 6px; display: flex; gap: 10px; }

.table-wrap { width: 100%; overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th { padding: 13px 16px; color: #7b869a; background: #fafbfc; border-bottom: 1px solid var(--line); text-align: left; white-space: nowrap; font-size: 11px; font-weight: 720; letter-spacing: .02em; }
td { padding: 16px; border-bottom: 1px solid #edf0f5; color: #3a465b; font-size: 13px; vertical-align: middle; }
.list-table th,
.list-table td { border-bottom: 0; }
tbody tr:hover { background: #fcfdff; }
.primary-cell strong { display: block; color: var(--ink); font-size: 13px; }
.primary-cell span { display: block; margin-top: 4px; color: var(--muted); font-size: 11px; }
.link { color: var(--brand); font-weight: 720; }
.link:hover { text-decoration: underline; }
.muted { color: var(--muted); }
.nowrap { white-space: nowrap; }
.text-right { text-align: right; }

.badge { display: inline-flex; align-items: center; min-height: 22px; padding: 2px 8px; border: 1px solid transparent; border-radius: 6px; font-size: 12px; font-weight: 500; line-height: 16px; white-space: nowrap; }
.badge::before { display: none; }
.badge-tone-success, .badge-ready, .badge-online, .badge-enabled, .badge-deal, .badge-maintaining, .badge-done { color: var(--green); background: var(--green-soft); border-color: #b7e5d2; }
.badge-tone-info, .badge-configured, .badge-developing, .badge-intention, .badge-testing, .badge-in-progress { color: var(--brand); background: var(--brand-soft); border-color: #bfdbfe; }
.badge-tone-warning, .badge-setup_required, .badge-attention, .badge-paused, .badge-lead, .badge-planning, .badge-todo, .badge-backlog { color: var(--orange); background: var(--orange-soft); border-color: #fed7aa; }
.badge-tone-danger, .badge-disabled, .badge-invalid, .badge-lost, .badge-closed, .badge-canceled, .badge-failed { color: var(--red); background: var(--red-soft); border-color: color-mix(in srgb, var(--red) 24%, var(--border)); }
.badge-tone-neutral, .badge-available { color: #58657a; background: #eef1f5; border-color: #dce2ea; }

.pagination { margin-top: 16px; display: flex; align-items: center; justify-content: space-between; color: var(--muted); font-size: 12px; }
.pagination .pages { display: flex; gap: 8px; }
.empty { padding: 44px 24px; text-align: center; }
.empty-mark { width: 46px; height: 46px; margin: 0 auto 14px; border-radius: 14px; display: grid; place-items: center; color: var(--brand); background: var(--brand-soft); font-weight: 850; }
.empty p { max-width: 480px; margin: 7px auto 17px; color: var(--muted); line-height: 1.65; font-size: 13px; }

.hero-card { padding: 28px; display: grid; grid-template-columns: 1fr auto; gap: 30px; align-items: center; background: linear-gradient(135deg, #fff, #f6f9ff); }
.hero-card .app-icon { width: 58px; height: 58px; }
.hero-copy { display: flex; gap: 18px; align-items: flex-start; }
.hero-copy h1 { margin-bottom: 8px; font-size: 28px; }
.hero-metrics { display: flex; gap: 26px; }
.hero-metrics strong { display: block; font-size: 23px; }
.hero-metrics span { color: var(--muted); font-size: 10px; }
.steps { counter-reset: step; display: grid; gap: 12px; }
.step { position: relative; padding: 3px 0 3px 42px; min-height: 32px; display: flex; align-items: center; color: #435068; font-size: 13px; }
.step::before { counter-increment: step; content: counter(step); position: absolute; left: 0; width: 28px; height: 28px; border-radius: 9px; display: grid; place-items: center; color: var(--brand); background: var(--brand-soft); font-size: 11px; font-weight: 800; }
.code { padding: 2px 6px; border-radius: 5px; color: #334160; background: #edf0f5; font: 12px/1.5 var(--sg-font-code, Consolas, Menlo, monospace); }
.secret { word-break: break-all; font: 11px ui-monospace, SFMono-Regular, Menlo, monospace; }
.definition { display: grid; grid-template-columns: 145px 1fr; gap: 0; }
.definition dt, .definition dd { margin: 0; padding: 11px 0; border-bottom: 1px solid #edf0f5; font-size: 13px; }
.definition dt { color: var(--muted); }
.definition dd { color: #344057; }
.timeline { display: grid; gap: 0; }
.timeline-item { position: relative; padding: 0 0 20px 26px; border-left: 1px solid #dfe4ed; }
.timeline-item:last-child { padding-bottom: 0; }
.timeline-item::before { content: ""; position: absolute; left: -5px; top: 2px; width: 9px; height: 9px; border: 2px solid #fff; border-radius: 50%; background: var(--brand); box-shadow: 0 0 0 1px #b7c8ee; }
.timeline-item p { margin: 5px 0 0; color: var(--muted); line-height: 1.55; font-size: 12px; }

/* 可复用 UI 契约：宿主项目可仅覆盖这些 token，不需要引入前端构建链。 */
.ui-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.ui-toolbar .field { min-width: 180px; }
.ui-divider { height: 1px; margin: 22px 0; background: var(--line); }
.ui-eyebrow { color: var(--brand); font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.ui-subtle { color: var(--muted); font-size: 12px; }
.ui-icon-button { width: 36px; height: 36px; padding: 0; border: 1px solid var(--line); border-radius: 10px; color: var(--muted); background: #fff; }
.ui-icon-button:hover { color: var(--brand); border-color: #b9c8ee; background: var(--brand-soft); }
.data-count { color: var(--muted); font-size: 12px; }
.table-wrap table { min-width: 720px; }
.table-wrap thead th { position: sticky; top: 0; z-index: 1; }
.table-empty { padding: 54px 24px; text-align: center; color: var(--muted); }
.table-empty strong { display: block; margin-bottom: 7px; color: var(--ink); font-size: 14px; }
.form-grid .field-full > h2 { margin-bottom: 6px; }
.button-danger { color: #a52b34; border-color: #f0c9cc; background: #fff7f7; }
.button-danger:hover { background: var(--red-soft); }
.toolbar-inline { margin: 0; padding: 15px 22px; border-bottom: 1px solid var(--line); background: #fbfcfe; }
.toolbar-inline form { position: relative; align-items: center; }
.search-field { position: relative; flex: 1 1 340px; min-width: 220px; }
.search-field .input { width: 100%; padding-left: 38px; }
.toolbar-search-icon { position: absolute; z-index: 1; top: 50%; left: 12px; display: inline-flex; align-items: center; color: #94a3b8; transform: translateY(-50%); pointer-events: none; }
.toolbar-inline form .search-field .input { width: 100%; padding-left: 38px; }
.toolbar-inline form .input { width: auto; }
.toolbar-inline form .select { width: auto; min-width: 150px; }
.users-filter { overflow: visible; }
.users-list-card { overflow: visible; }
.users-table th:last-child, .users-table td:last-child { width: 72px; }
.row-actions { position: relative; display: inline-block; }
.row-actions > summary { display: grid; place-items: center; }
.row-actions-panel { position: absolute; z-index: 20; top: 38px; right: 0; width: 132px; padding: 5px; border: 1px solid var(--line); border-radius: 9px; background: #fff; box-shadow: 0 12px 30px rgba(15,23,42,.13); }
.row-actions-panel a, .row-actions-panel button { display: block; width: 100%; padding: 8px 9px; border: 0; border-radius: 6px; color: #475569; background: transparent; font-size: 12px; text-align: left; }
.row-actions-panel a:hover, .row-actions-panel button:hover { color: var(--brand); background: var(--brand-soft); }
.summary-card { min-height: 122px; padding: 18px 20px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 4px; }
.summary-card strong { display: block; margin: 10px 0 4px; font-size: 25px; letter-spacing: -.04em; }
.summary-card > span:last-child { color: var(--muted); font-size: 11px; }
.user-cell { display: flex; align-items: center; gap: 11px; min-width: 190px; }
.user-cell strong, .user-cell small { display: block; }
.user-cell small { margin-top: 4px; color: var(--muted); font-size: 11px; }
.user-username { font-size: 13px !important; font-weight: 650; }
.avatar { width: 34px; height: 34px; flex: 0 0 34px; border-radius: 999px; color: var(--brand); background: var(--brand-soft); font-size: 13px; font-weight: 850; }
.avatar-sidebar { border-radius: 8px; }
.role-label { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; }
.role-icon { display: inline-flex; color: #64748b; }
.inline-form { display: inline; }
.link-button { padding: 0; border: 0; background: transparent; }
.input-readonly { display: flex; align-items: center; color: var(--muted); background: #f6f8fb; }
.role-picker { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.role-option { display: flex; align-items: flex-start; gap: 10px; padding: 12px; border: 1px solid var(--line); border-radius: 11px; background: #fff; cursor: pointer; }
.role-option:hover { border-color: #b9c8ee; background: var(--brand-soft); }
.role-option input { margin-top: 3px; accent-color: var(--brand); }
.role-option strong, .role-option small { display: block; }
.role-option small { margin-top: 4px; color: var(--muted); font-size: 11px; }

/* Optional dark mode is persisted in a secure, HttpOnly-compatible cookie by
   the theme endpoint; token 值见 seango-theme.css .theme-dark。 */
.theme-dark, .theme-dark body { background: #0f172a; color: var(--ink); }
.theme-dark .sidebar, .theme-dark .topbar, .theme-dark .card, .theme-dark .command-panel, .theme-dark .profile-panel, .theme-dark .mobile-nav-panel { border-color: var(--line); }
.theme-dark .sidebar { color: #cbd5e1; background: var(--sidebar-bg); }
.theme-dark .workspace-inset { background: var(--background); box-shadow: var(--shadow-inset-panel); }
.theme-dark .brand strong, .theme-dark .profile-copy strong, .theme-dark .profile-panel-user strong, .theme-dark h1, .theme-dark h2, .theme-dark h3, .theme-dark .primary-cell strong { color: #f8fafc; }
.theme-dark .brand span, .theme-dark .profile-copy span, .theme-dark .profile-panel-user small, .theme-dark .muted, .theme-dark .metric-label, .theme-dark .lead { color: #94a3b8; }
.theme-dark .nav a.active, .theme-dark .profile-panel a:hover, .theme-dark .profile-panel button:hover, .theme-dark .command-panel > a:hover, .theme-dark .row-actions-panel a:hover, .theme-dark .row-actions-panel button:hover { background: #172554; border-color: #1e40af; }
.theme-dark .nav a, .theme-dark .profile-panel a, .theme-dark .profile-panel button, .theme-dark .command-panel > a, .theme-dark .mobile-nav-panel a { color: #cbd5e1; }
.theme-dark .nav a:hover, .theme-dark .mobile-nav-panel a:hover { color: #bfdbfe; background: #172033; }
.theme-dark .topbar-trigger { border-color: var(--border); color: var(--foreground); background: color-mix(in srgb, var(--background) 88%, #fff 12%); box-shadow: none; }
.theme-dark .topbar-trigger:hover { border-color: var(--border); color: var(--foreground); background: var(--accent); }
.theme-dark .nav-icon, .theme-dark .command-trigger, .theme-dark .command-input, .theme-dark .sidebar-user, .theme-dark th, .theme-dark .app-stat, .theme-dark .input-readonly { border-color: var(--line); background: #0f172a; }
.theme-dark .input, .theme-dark .select, .theme-dark .textarea, .theme-dark .button-secondary, .theme-dark .ui-icon-button, .theme-dark .role-option, .theme-dark .customer-level { border-color: var(--line); color: #e2e8f0; background: #111c2f; }
.theme-dark .row-actions-panel { border-color: var(--line); background: #111c2f; }
.theme-dark .row-actions-panel a, .theme-dark .row-actions-panel button { color: #cbd5e1; }
.theme-dark td { border-color: #1e293b; color: #cbd5e1; }
.theme-dark th { color: #94a3b8; }
.theme-dark tbody tr:hover { background: #172033; }
.theme-dark .card-head, .theme-dark .ui-divider, .theme-dark .command-divider, .theme-dark .profile-divider { border-color: var(--line); background: transparent; }
.theme-dark .button-secondary:hover { border-color: #3b82f6; background: #172554; }

@media (max-width: 1050px) {
  .grid-4, .app-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
  .shell { flex-direction: column; padding: 0; }
  .sidebar { position: static; width: 100%; min-width: 0; flex: 0 0 auto; height: auto; max-height: none; padding: 8px 12px; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 8px; }
  .team-switcher { flex: 1 1 auto; min-width: 0; padding: 0; }
  .sidebar > .nav, .sidebar-user { display: none; }
  .mobile-nav { display: block; }
  .topbar-trigger { display: none; }
  .topbar { height: 58px; padding: 0 14px; }
  .topbar-actions { gap: 8px; }
  .command-trigger { width: 36px; padding: 0; justify-content: center; border-radius: 9999px; }
  .command-trigger-leading, .command-trigger-kbd, .topbar-separator-small { display: none; }
  .command-trigger .command-search-icon { display: inline-flex; }
  .content { padding: 24px 18px 44px; }
  .page-head { align-items: flex-start; flex-direction: column; }
  .hero-card { grid-template-columns: 1fr; }
  .hero-metrics { justify-content: space-between; }
  .login-shell { grid-template-columns: 1fr; }
  .login-story { min-height: 270px; padding: 34px; }
  .login-story h2 { margin-top: 28px; font-size: 30px; }
}
@media (max-width: 600px) {
  .grid-4, .grid-3, .grid-2, .app-grid, .form-grid { grid-template-columns: 1fr; }
  .span-2, .field-full { grid-column: auto; }
  .hero-copy { display: block; }
  .hero-copy .app-icon { margin-bottom: 16px; }
  .page-head .actions, .page-head .button { width: 100%; }
  .definition { grid-template-columns: 1fr; }
  .definition dt { border-bottom: 0; padding-bottom: 2px; }
  .definition dd { padding-top: 2px; }
  .role-picker { grid-template-columns: 1fr; }
  .command-panel { right: -45px; }
  .profile-panel-top { right: -5px; }
}

/* --------------------------------------------------------------------------
   Shadcn Admin source-aligned component layer
   Values mirror the supplied template: 16rem/3rem sidebar, 4px spacing grid,
   0.625rem radius, 64px header, 32/36px controls and restrained shadows.
   -------------------------------------------------------------------------- */
body { font-size: 14px; line-height: var(--sg-leading, 1.5715); background: var(--shell-canvas); }
.shell { display: flex; align-items: stretch; gap: 0; padding: 0; background: var(--sidebar-bg); overflow: visible; }
.sidebar { position: sticky; top: 0; display: flex; flex-direction: column; flex: 0 0 256px; width: 256px; min-width: 256px; height: 100vh; max-height: 100vh; overflow: visible; padding: 8px; color: var(--sidebar-foreground); border: 0; border-radius: 0; box-shadow: none; background: var(--sidebar-bg); align-self: flex-start; box-sizing: border-box; }
.brand { min-height: 72px; padding: 20px 16px 16px; border-bottom: 0; }
.brand-logo, .brand-logo img { width: 166px; height: 26px; }
.nav { display: flex; min-height: 0; flex: 1 1 auto; flex-direction: column; gap: 6px; overflow-x: hidden; overflow-y: auto; padding: 0 12px 12px; scrollbar-gutter: auto; }
.nav-label { display: flex; align-items: center; height: 38px; flex: 0 0 38px; margin: 14px 0 0; padding: 0 10px; color: #64748b; font-size: 12px; font-weight: 600; letter-spacing: 0; text-transform: none; }
.nav-label-line { display: none; }
.nav a { display: flex; align-items: center; width: 100%; min-height: 44px; padding: 10px 10px; gap: 10px; border-radius: 8px; color: #0f172a; font-size: 14px; font-weight: 500; text-decoration: none; box-sizing: border-box; transition: background .15s ease, color .15s ease; }
.nav a > span:not(.nav-icon) { min-width: 0; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nav a:hover { color: var(--sidebar-foreground); background: var(--sidebar-accent); }
.nav a.active { color: var(--brand-dark); background: var(--brand-soft); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--brand) 18%, transparent); font-weight: 600; }
.nav a.active::before { display: none; }
.nav-icon { width: 16px; height: 16px; border: 0; border-radius: 0; color: currentColor; background: transparent; }
.nav a.active .nav-icon { color: currentColor; border: 0; background: transparent; }
.nav-count { min-width: 20px; height: 20px; margin-left: auto; padding: 0 5px; border-radius: 999px; display: grid; place-items: center; color: #fff; background: var(--brand); font-size: 10px; font-weight: 600; }
.nav a .nav-count.nav-count-compact,
.nav-count[data-debug-pending-verify-badge] {
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    font-size: 9px;
    font-weight: 600;
    line-height: 1;
    flex-shrink: 0;
}

/* Sidebar collapsible groups (settings / auth / errors in template nav) */
.nav-group { margin: 0; flex-shrink: 0; }
.nav-group > summary { list-style: none; cursor: pointer; }
.nav-group > summary::-webkit-details-marker { display: none; }
.nav-group-summary { display: flex; align-items: center; width: 100%; gap: 10px; min-height: 44px; padding: 10px 10px; border-radius: 8px; color: #0f172a; font-size: 14px; font-weight: 500; box-sizing: border-box; transition: background .15s ease, color .15s ease; }
.nav-group-summary > span:not(.nav-icon):not(.nav-group-chevron) { min-width: 0; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nav-group-summary:hover { color: var(--sidebar-foreground); background: var(--sidebar-accent); }
.nav-group[open] > .nav-group-summary,
.nav-group.is-active > .nav-group-summary { color: var(--brand-dark); background: var(--brand-soft); font-weight: 600; }
.nav-group-chevron { width: 16px; height: 16px; margin-left: auto; color: var(--muted-foreground); transition: transform .15s ease; }
.nav-group-chevron .ui-icon { width: 16px; height: 16px; }
.nav-group[open] > .nav-group-summary .nav-group-chevron { transform: rotate(90deg); }
.nav-group-items { display: grid; gap: 2px; margin: 2px 0 4px; padding: 2px 0 2px 20px; border-left: 1px solid var(--line); margin-left: 20px; }
.nav-group-items a { min-height: 34px; padding: 7px 10px; border-radius: 6px; color: var(--muted-foreground); font-size: 13px; font-weight: 500; display: flex; align-items: center; }
.nav-group-items a:hover { color: var(--sidebar-foreground); background: var(--sidebar-accent); }
.nav-group-items a.active { color: var(--brand-dark); background: var(--brand-soft); font-weight: 600; }

.team-switcher { position: relative; z-index: 50; flex-shrink: 0; margin: 0; padding: 8px 12px; overflow: visible; box-sizing: border-box; }
.team-switcher[open] { z-index: 100; }
.team-switcher-trigger { position: relative; z-index: 2; display: flex; align-items: center; gap: 8px; width: 100%; min-height: 48px; padding: 8px; border: 0; border-radius: 8px; list-style: none; cursor: pointer; box-sizing: border-box; background: transparent; transition: background .15s ease, color .15s ease; }
.team-switcher-trigger > * { pointer-events: none; }
.team-switcher-trigger::-webkit-details-marker { display: none; }
.team-switcher-trigger:hover, .team-switcher[open] > .team-switcher-trigger { background: var(--sidebar-accent); color: var(--sidebar-foreground); }
.team-switcher-logo { width: 32px; height: 32px; flex: 0 0 32px; display: grid; place-items: center; overflow: hidden; border: 0; border-radius: 8px; color: var(--sidebar-primary-foreground); background: var(--sidebar-primary); }
.team-switcher-logo img { width: 18px; height: auto; max-height: 18px; object-fit: contain; filter: brightness(0) invert(1); }
.team-switcher-trigger:has(.team-switcher-logo--brand) { padding: 4px 8px; }
.team-switcher-logo.team-switcher-logo--brand { width: auto; max-width: calc(100% - 28px); height: auto; align-self: stretch; flex: 1 1 auto; min-width: 0; display: flex; align-items: stretch; background: transparent; border-radius: 0; overflow: hidden; }
.team-switcher-logo.team-switcher-logo--brand img { display: block; width: 100%; height: 100%; max-width: none; max-height: none; object-fit: contain; object-position: left center; filter: none; }
.team-switcher-logo--text { font-size: 13px; font-weight: 700; color: var(--sidebar-primary-foreground); }
.team-switcher-copy { min-width: 0; flex: 1; text-align: left; }
.team-switcher-copy strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; font-weight: 600; line-height: 1.25; color: var(--sidebar-foreground); }
.team-switcher-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin-top: 2px; color: var(--muted-foreground); font-size: 12px; line-height: 1.25; }
.team-switcher-chevron { width: 16px; margin-left: auto; color: var(--muted-foreground); flex-shrink: 0; }
.team-switcher-chevron .ui-icon { width: 16px; height: 16px; }
.team-switcher-menu { position: absolute; z-index: 200; top: calc(100% + 4px); left: 8px; right: 8px; width: auto; min-width: 14rem; padding: 4px; border: 1px solid var(--border); border-radius: 10px; background: var(--popover); box-shadow: var(--shadow-lg); display: none; gap: 2px; pointer-events: auto; isolation: isolate; }
.team-switcher[open] .team-switcher-menu { display: grid; }
.team-switcher-menu-label { margin: 0; padding: 6px 8px; color: var(--muted-foreground); font-size: 12px; font-weight: 500; }
.team-switcher-item { display: flex; align-items: center; gap: 8px; padding: 8px; border-radius: 8px; color: var(--foreground); font-size: 14px; }
.team-switcher-item:hover { background: var(--accent); }
.team-switcher-item.is-active { background: var(--accent); }
.team-switcher-mark { width: 24px; height: 24px; display: grid; place-items: center; border: 1px solid var(--border); border-radius: 6px; color: var(--foreground); background: var(--background); font-size: 11px; font-weight: 700; flex-shrink: 0; }
.team-switcher-mark-muted { color: var(--muted-foreground); background: var(--secondary); }
.team-switcher-mark-logo { padding: 0; overflow: hidden; border: 0; background: transparent; }
.team-switcher-mark-logo img { width: 100%; height: 100%; object-fit: contain; filter: none; }
.team-switcher-item strong { display: block; font-size: 13px; font-weight: 600; }
.team-switcher-item small { display: block; margin-top: 2px; color: var(--muted-foreground); font-size: 11px; }

.sidebar-user { flex-shrink: 0; position: relative; z-index: 40; margin: auto 8px 8px; padding: 0; border: 0; border-radius: 8px; background: transparent; overflow: visible; }
.profile-menu-sidebar summary { min-height: 52px; padding: 10px; border-radius: 8px; }
.profile-menu-sidebar summary:hover, .profile-menu-sidebar[open] summary { background: var(--sidebar-accent); }
.profile-copy strong { font-size: 14px; font-weight: 600; line-height: 1.25; }
.profile-copy span { margin-top: 2px; font-size: 12px; line-height: 1.25; }
.profile-more { width: 16px; color: #0f172a; }
.avatar-sidebar { width: 32px; height: 32px; flex-basis: 32px; border-radius: 8px; }
.workspace,
.workspace-inset { position: relative; min-height: calc(100vh - 16px); min-width: 0; margin: 8px 8px 8px var(--sidebar-inset-gap, 0); overflow: visible; border: 0; border-radius: 12px; background: var(--background); box-shadow: var(--shadow-inset-panel); display: flex; flex-direction: column; flex: 1 1 auto; }
.workspace::before { display: none; }
.topbar { height: 64px; padding: 0 16px; border-bottom: 0; border-radius: 0; background: var(--background); box-shadow: none; flex-shrink: 0; }
.topbar-start, .topbar-actions { gap: 12px; }
.topbar-separator { height: 24px; background: var(--line); }
.command-trigger { width: auto; min-width: 168px; max-width: 220px; min-height: 36px; border-radius: 9999px; box-shadow: none; }
kbd:not(.command-trigger-kbd) { padding: 2px 5px; border: 1px solid var(--border); border-radius: 4px; color: var(--muted-foreground); background: var(--background); font: 10px ui-monospace, SFMono-Regular, Menlo, monospace; white-space: nowrap; }
.header-icon-button { width: 36px; height: 36px; border-radius: 6px; }
.header-icon-button:hover { color: #0f172a; background: #f1f5f9; }
.profile-menu-top summary { padding: 2px; border-radius: 999px; }
.profile-menu-top .avatar { border-radius: 999px; }
.content { width: 100%; max-width: 80rem; margin: 0 auto; padding: 24px 16px 32px; flex: 1 1 auto; }

.page-head { align-items: flex-start; margin-bottom: 24px; padding-bottom: 0; border-bottom: 0; }
.page-head .eyebrow { color: var(--muted-foreground); font-size: 14px; font-weight: 500; letter-spacing: 0; text-transform: none; }
.list-page-stack { display: flex; flex-direction: column; gap: 24px; min-width: 0; max-width: 100%; }
.list-page-top { margin-bottom: 24px; }
.list-page-header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 16px; width: 100%; }
.list-page-header-inline { align-items: center; }
.list-page-header-inline .list-page-toolbar-row { flex: 1 1 520px; margin-left: auto; min-width: min(100%, 420px); }
.list-page-toolbar-form { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; width: 100%; }
.list-page-toolbar-form .search-field { flex: 1 1 220px; max-width: 280px; min-width: 160px; }
.list-table-section { display: flex; flex-direction: column; gap: 16px; }
.list-table-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; --toolbar-control-height: 32px; position: relative; z-index: 2; overflow: visible; }
.list-table-toolbar-main { display: flex; flex: 1 1 420px; flex-wrap: wrap; align-items: center; gap: 8px; min-width: 0; }
.list-table-toolbar-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-left: auto; flex-shrink: 0; }
.list-table-actions { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-left: auto; }
.list-page-toolbar-form { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; width: 100%; --toolbar-control-height: 32px; }
.list-table-toolbar .input,
.list-table-toolbar .select,
.list-table-toolbar .button,
.list-table-toolbar summary.button,
.list-page-toolbar-form .input,
.list-page-toolbar-form .select,
.list-page-toolbar-form .button,
.list-page-toolbar-form summary.button { min-height: var(--toolbar-control-height); height: var(--toolbar-control-height); box-sizing: border-box; font-size: 13px; line-height: 1; border-radius: 6px; }
.list-table-toolbar .input,
.list-page-toolbar-form .input { padding: 0 12px; box-shadow: none; }
.list-table-toolbar .search-field .input,
.list-page-toolbar-form .search-field .input { padding-left: 38px; padding-right: 12px; }
.list-table-toolbar .select,
.list-page-toolbar-form .select { padding: 0 28px 0 12px; box-shadow: none; }
.list-table-toolbar .button,
.list-table-toolbar summary.button,
.list-page-toolbar-form .button,
.list-page-toolbar-form summary.button { padding: 0 12px; font-weight: 500; transform: none; box-shadow: none; }
.list-table-toolbar .button-outline,
.list-table-toolbar summary.button-outline,
.list-page-toolbar-form .button-outline { border: 1px solid var(--border); color: var(--foreground); background: var(--background); }
.list-table-toolbar .button-outline:hover,
.list-table-toolbar summary.button-outline:hover,
.list-page-toolbar-form .button-outline:hover { border-color: color-mix(in srgb, var(--foreground) 12%, var(--border)); background: var(--accent); color: var(--foreground); transform: none; }
.list-table-toolbar .button-primary,
.list-page-toolbar-form .button-primary { border: 1px solid var(--primary); color: var(--primary-foreground); background: var(--primary); box-shadow: none; }
.list-table-toolbar .button-primary:hover,
.list-page-toolbar-form .button-primary:hover { background: color-mix(in srgb, var(--primary) 90%, #000); transform: none; }
.input-compact, .select-compact { min-height: 32px; height: 32px; padding-top: 0; padding-bottom: 0; font-size: 13px; box-shadow: none; }
.list-table-toolbar .search-field { flex: 0 1 250px; min-width: 180px; }
.list-table-toolbar .search-field .input { width: 100%; }

/* --------------------------------------------------------------------------
   Shadcn UI primitives → Blade/CSS（对照 shadcn-admin-main/src/components/ui）
   无 React/Radix 运行时；dialog 用原生 <dialog>，菜单用 <details>。
   -------------------------------------------------------------------------- */
.button-ghost { border-color: transparent; color: var(--foreground); background: transparent; box-shadow: none; }
.button-ghost:hover { color: var(--foreground); background: var(--accent); transform: none; }
.button-outline { border-color: var(--border); color: var(--foreground); background: var(--background); box-shadow: var(--shadow-xs); }
.button-outline:hover { border-color: #cbd5e1; background: var(--accent); transform: none; }
.button-destructive { color: var(--destructive-foreground); border-color: transparent; background: var(--destructive); box-shadow: var(--shadow-xs); }
.button-destructive:hover { background: color-mix(in srgb, var(--destructive) 88%, #000); transform: none; }
.button-link { min-height: auto; padding: 0; border: 0; color: var(--primary); background: transparent; box-shadow: none; font-weight: 500; }
.button-link:hover { text-decoration: underline; transform: none; }
.button-icon { width: 36px; min-width: 36px; padding: 0; }

.ui-label { display: block; color: var(--foreground); font-size: 14px; font-weight: 500; line-height: 1.4; }
.ui-label-hint { margin-top: 4px; color: var(--muted-foreground); font-size: 12px; font-weight: 400; }
.ui-separator { flex-shrink: 0; border: 0; margin: 0; background: var(--border); }
.ui-separator[data-orientation="horizontal"] { width: 100%; height: 1px; }
.ui-separator[data-orientation="vertical"] { width: 1px; height: 100%; min-height: 16px; align-self: stretch; }

.ui-badge-outline { color: var(--foreground); border-color: var(--border); background: var(--background); }
.ui-badge-secondary { color: var(--secondary-foreground); border-color: transparent; background: var(--secondary); }
.ui-badge-destructive { color: #fff; border-color: transparent; background: var(--destructive); }

.password-field { position: relative; display: grid; gap: 6px; }
.password-field-control { position: relative; display: flex; align-items: center; }
.password-field-control .input { padding-right: 40px; -webkit-text-security: disc; }
.password-reveal { position: absolute; right: 4px; z-index: 1; display: grid; place-items: center; min-width: 40px; height: 32px; padding: 0 8px; border-radius: var(--radius-sm); cursor: pointer; }
.password-reveal input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.password-reveal span { color: var(--primary); font-size: 12px; font-weight: 600; line-height: 1; }
.password-reveal-hide { display: none; }
.password-field-control:has(.password-reveal-input:checked) .input { -webkit-text-security: none; }
.password-field-control:has(.password-reveal-input:checked) .password-reveal-show { display: none; }
.password-field-control:has(.password-reveal-input:checked) .password-reveal-hide { display: block; }
.copy-field,
.secret-field { display: grid; gap: 6px; min-width: 0; }
.input-readonly { color: var(--foreground); background: color-mix(in srgb, var(--muted-foreground) 4%, var(--background)); cursor: text; }
.secret-field .secret-plain { display: none; }
.secret-field:has(.password-reveal-input:checked) .secret-masked { display: none; }
.secret-field:has(.password-reveal-input:checked) .secret-plain { display: block; }
.project-access-head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 12px 16px; }
.project-access-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.project-access-actions--end { margin-left: auto; justify-content: flex-end; }
.project-access-fields { align-items: start; }
.project-app-bindings-panel > .card-body.list-table-section { gap: 16px; padding-top: 20px; }
.project-handoff-meta { margin-top: 8px; }
.credential-flash { display: flex; flex-wrap: wrap; gap: 8px; }
.inline-form { display: inline; margin: 0; }

.ui-switch-field { display: inline-flex; align-items: center; gap: 10px; cursor: pointer; }
.ui-switch-field input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.ui-switch-track { width: 36px; height: 20px; padding: 2px; display: inline-flex; align-items: center; border-radius: 999px; background: #cbd5e1; transition: background .15s ease; }
.ui-switch-track::after { content: ""; width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: var(--shadow-xs); transition: transform .15s ease; }
.ui-switch-field input:checked + .ui-switch-track { background: var(--primary); }
.ui-switch-field input:checked + .ui-switch-track::after { transform: translateX(16px); }
.ui-switch-field input:focus-visible + .ui-switch-track { outline: 3px solid rgba(148, 163, 184, .35); outline-offset: 2px; }

.ui-skeleton-block { border-radius: var(--radius-md); background: linear-gradient(90deg, #f1f5f9 25%, #e7edf5 50%, #f1f5f9 75%); background-size: 200% 100%; animation: ui-skeleton-pulse 1.7s ease-in-out infinite; }
.ui-skeleton-line { height: 14px; }
.ui-skeleton-title { height: 24px; width: 40%; }
.ui-skeleton-avatar { width: 40px; height: 40px; border-radius: 999px; }

.ui-dialog { width: min(480px, calc(100vw - 32px)); max-height: calc(100vh - 32px); padding: 0; border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--background); box-shadow: var(--shadow-lg); position: relative; }
.ui-dialog::backdrop { background: rgba(15, 23, 42, .45); }
.ui-dialog-body { padding: 24px; display: grid; gap: 16px; }
.ui-dialog-header { display: grid; gap: 6px; text-align: start; }
.ui-dialog-title { margin: 0; font-size: 18px; font-weight: 600; letter-spacing: -.015em; }
.ui-dialog-description { margin: 0; color: var(--muted-foreground); font-size: 14px; line-height: 1.5; }
.ui-dialog-footer { padding: 0 24px 24px; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.ui-dialog-close { position: absolute; top: 16px; right: 16px; width: 32px; height: 32px; border: 0; border-radius: var(--radius-sm); color: var(--muted-foreground); background: transparent; cursor: pointer; }
.ui-dialog-close:hover { color: var(--foreground); background: var(--accent); }

.ui-sheet { width: min(420px, 100vw); max-width: 100vw; height: 100%; max-height: 100vh; margin: 0 0 0 auto; padding: 0; border: 0; border-left: 1px solid var(--border); border-radius: 0; background: var(--background); box-shadow: var(--shadow-lg); }
.ui-sheet::backdrop { background: rgba(15, 23, 42, .45); }
.ui-sheet-header { padding: 20px 20px 12px; border-bottom: 1px solid var(--line); }
.ui-sheet-body { padding: 20px; overflow-y: auto; }
.ui-sheet-footer { margin-top: auto; padding: 16px 20px 20px; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }

.ui-dropdown { position: relative; display: inline-block; }
.ui-dropdown-panel { position: absolute; z-index: 50; min-width: 8rem; padding: 4px; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--popover); color: var(--popover-foreground); box-shadow: var(--shadow-md); }
.ui-dropdown-item { display: flex; align-items: center; gap: 8px; width: 100%; padding: 8px 10px; border: 0; border-radius: var(--radius-sm); color: var(--foreground); background: transparent; font-size: 14px; text-align: left; cursor: pointer; }
.ui-dropdown-item:hover, .ui-dropdown-item:focus-visible { background: var(--accent); outline: none; }
.ui-dropdown-item.is-destructive { color: var(--destructive); }
.ui-dropdown-item.is-destructive:hover { background: var(--red-soft); }
.ui-dropdown-separator { height: 1px; margin: 4px 0; background: var(--border); }

/* ---- Unified content page titles (dashboard / list / settings / detail) ---- */
.content-page-head { margin-bottom: 24px; }
.content-page-head h1,
.page-head-row h1,
.list-page-header .page-head h1,
.list-page-header > h1 { margin: 0; font-size: 24px; font-weight: 700; letter-spacing: -.025em; line-height: 1.25; color: var(--foreground); }
.content-page-head .lead,
.page-head-lead { margin: 6px 0 0; font-size: 14px; line-height: 1.5; color: var(--muted-foreground); }
.content-page-head--split { display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; gap: 12px 16px; }
.content-page-head--split .content-page-head-main { flex: 0 0 auto; min-width: 0; }
.content-page-head--split .content-page-head-main .lead,
.content-page-head--split .content-page-head-main .page-head-lead { margin: 6px 0 0; }
.content-page-head--split .content-page-head-actions { display: flex; flex: 1 1 auto; flex-wrap: nowrap; align-items: center; justify-content: flex-end; gap: 8px; min-width: 0; margin-left: auto; }
.content-page-head--split .content-page-head-actions .list-page-toolbar-form { flex-wrap: nowrap; justify-content: flex-end; width: auto; max-width: 100%; }
.content-page-head--split .list-page-toolbar-form .search-field { flex: 0 1 200px; max-width: 220px; min-width: 120px; }
.content-page-head--form { margin-bottom: 24px; }
.content-page-head-title-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-width: 0; }
.content-page-head-title-row h1 { flex: 1 1 auto; min-width: 0; margin: 0; font-size: 24px; font-weight: 700; letter-spacing: -.025em; line-height: 1.25; color: var(--foreground); }
.content-page-head--form .lead { margin: 6px 0 0; font-size: 14px; line-height: 1.5; color: var(--muted-foreground); }
.list-page-top > .list-page-toolbar-form--standalone { margin-top: -8px; }
.list-page-toolbar-form--standalone { flex-wrap: nowrap; justify-content: flex-start; width: 100%; }
.list-page-toolbar-form--standalone .search-field { flex: 0 1 240px; max-width: 280px; min-width: 160px; }
.list-page-toolbar-form--standalone .filter-select,
.list-page-toolbar-form--standalone .button { flex-shrink: 0; white-space: nowrap; }
.list-filter-submit,
.list-page-toolbar-form .list-filter-submit,
.list-table-toolbar .list-filter-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  flex: 0 0 auto;
  white-space: nowrap;
  font-weight: 500;
}
.list-filter-submit .ui-icon { width: 14px; height: 14px; flex-shrink: 0; }
.list-filter-submit span { line-height: 1; }
.content-page-head--dashboard { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; }
.content-page-head--dashboard > h1 { flex: 0 0 auto; min-width: 0; }
.content-page-head--dashboard .ui-tabs { flex: 0 1 auto; min-width: 0; }
.content-page-head--dashboard .content-page-head-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-left: auto; }
.content-page-head-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
@media (min-width: 768px) {
  .content-page-head h1,
  .page-head-row h1,
  .list-page-header .page-head h1,
  .list-page-header > h1,
  .content-page-head-title-row h1 { font-size: 30px; line-height: 1.2; }
}

@media (max-width: 960px) {
  .content-page-head--split { flex-wrap: wrap; align-items: flex-start; }
  .content-page-head--split .content-page-head-actions { flex: 1 1 100%; margin-left: 0; justify-content: flex-start; }
  .content-page-head--split .content-page-head-actions .list-page-toolbar-form { flex-wrap: wrap; width: 100%; }
}

.settings-layout { display: flex; flex: 1; flex-direction: column; gap: 8px; align-items: stretch; }
.settings-aside { flex: 0 0 auto; width: 100%; }
.settings-nav { display: flex; flex-direction: column; gap: 4px; width: 100%; padding: 8px 4px; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.settings-nav a { width: 100%; min-height: 36px; height: 36px; padding: 0 12px; display: inline-flex; align-items: center; gap: 8px; border: 0; border-radius: 6px; color: var(--foreground); font-size: 14px; font-weight: 500; line-height: 1; text-decoration: none; transition: background .15s ease, color .15s ease; }
.settings-nav a .ui-icon { width: 18px; height: 18px; flex-shrink: 0; color: var(--muted-foreground); }
.settings-nav a:hover { background: var(--accent); text-decoration: none; }
.settings-nav a.is-active { background: var(--secondary); color: var(--foreground); font-weight: 500; text-decoration: none; }
.settings-nav a.is-active:hover { background: var(--accent); text-decoration: none; }
.settings-nav a.is-active .ui-icon { color: var(--foreground); }
.settings-section-head { flex: none; }
.settings-section-head h3 { margin: 0 0 2px; font-size: 18px; font-weight: 500; letter-spacing: -.015em; line-height: 1.35; }
.settings-section-head p { margin: 0; font-size: 14px; line-height: 1.5; color: var(--muted-foreground); }
.settings-page-separator.ui-separator,
.settings-section-separator.ui-separator { border: 0; height: 1px; background: var(--border); }
.settings-page-separator.ui-separator { margin: 16px 0; }
.settings-section-separator.ui-separator { margin: 16px 0; flex: none; }
.settings-content { flex: 1 1 auto; min-width: 0; padding: 4px; display: flex; flex-direction: column; align-items: flex-start; overflow: visible; }
.settings-content-section { display: flex; flex-direction: column; width: 100%; max-width: 42rem; }
.settings-section-body { width: 100%; padding: 0 2px 48px; }
.settings-form { display: grid; gap: 0; width: 100%; padding: 0; margin: 0; }
.settings-form .field,
.settings-form .asset-field { display: grid; grid-template-columns: minmax(112px, 132px) minmax(0, 1fr); align-items: center; column-gap: 16px; row-gap: 4px; margin: 0; padding: 11px 0; border-bottom: 1px solid var(--border); }
.settings-form .field:has(.field-hint),
.settings-form .field:has(.avatar-upload) { align-items: start; }
.settings-form .asset-field { align-items: center; }
.settings-form .field .ui-label,
.settings-form .asset-field .ui-label { margin: 0; padding-top: 7px; font-size: 13px; font-weight: 500; line-height: 1.3; color: var(--muted-foreground); }
.settings-form .asset-field .ui-label { padding-top: 0; align-self: center; }
.settings-form .field > :not(.ui-label),
.settings-form .asset-field > :not(.ui-label):not(.field-hint) { grid-column: 2; }
.settings-form .asset-field > .ui-label { grid-column: 1; grid-row: 1 / span 2; align-self: center; }
.settings-form .asset-field > .asset-field-controls { grid-column: 2; grid-row: 1; }
.settings-form .field-hint { grid-column: 2; margin: 0; font-size: 12px; line-height: 1.45; color: var(--muted-foreground); }
.settings-form .input,
.settings-form .select,
.settings-form .textarea,
.settings-form .file-input { width: 100%; max-width: 100%; min-height: 36px; padding: 7px 12px; font-size: 14px; line-height: 1.5; color: var(--foreground); border: 1px solid var(--input); border-radius: 6px; background: transparent; box-shadow: var(--shadow-xs); outline: none; transition: border-color .15s ease, box-shadow .15s ease; }
.settings-form .input::placeholder,
.settings-form .textarea::placeholder { color: var(--muted-foreground); opacity: 1; }
.settings-form .textarea { min-height: 64px; padding-top: 8px; padding-bottom: 8px; resize: none; field-sizing: content; }
.settings-form .field:has(.textarea),
.settings-form .field:has(.field-hint),
.settings-form .field:has(.avatar-upload),
.settings-form .field.field-stacked { align-items: start; }
.settings-form .field:has(.textarea) .ui-label,
.settings-form .field.field-stacked .ui-label { padding-top: 8px; }
.settings-form .field.field-avatar-upload { grid-column: 1 / -1; grid-template-columns: 1fr; padding: 11px 0 16px; border-bottom: 1px solid var(--border); }
.settings-form .settings-avatar-upload { width: 100%; min-height: 96px; padding: 16px 20px; display: grid; grid-template-columns: 64px minmax(0, 1fr); align-items: center; gap: 20px; border: 1px dashed color-mix(in srgb, var(--foreground) 16%, var(--border)); border-radius: 10px; background: color-mix(in srgb, var(--secondary) 85%, var(--background)); box-sizing: border-box; }
.settings-form .settings-avatar-upload .avatar-upload-fields { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; min-width: 0; width: 100%; }
.settings-form .settings-avatar-title { margin: 0; font-size: 14px; font-weight: 500; line-height: 1.3; color: var(--foreground); }
.settings-form .settings-avatar-hint { margin: 0; grid-column: auto; }
.settings-form .settings-avatar-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; width: 100%; }
.settings-form .settings-avatar-upload .file-input { width: auto; max-width: 100%; min-height: auto; height: auto; padding: 0; border: 0; background: transparent; box-shadow: none; color: var(--muted-foreground); font-size: 13px; }
.settings-form .settings-avatar-remove { display: inline-flex; align-items: center; gap: 6px; margin: 0; font-size: 13px; color: var(--muted-foreground); white-space: nowrap; cursor: pointer; }
.settings-form .input:focus,
.settings-form .select:focus,
.settings-form .textarea:focus { border-color: color-mix(in srgb, var(--foreground) 22%, var(--border)); box-shadow: 0 0 0 2px color-mix(in srgb, var(--foreground) 6%, transparent); }
.settings-form .input-readonly { min-height: 36px; padding: 7px 12px; font-size: 14px; color: var(--muted-foreground); background: var(--secondary); box-shadow: none; }
.theme-dark .settings-form .input,
.theme-dark .settings-form .select,
.theme-dark .settings-form .textarea { background: color-mix(in srgb, var(--input) 30%, transparent); }
.settings-form--sheet .field,
.settings-form--sheet .asset-field { grid-template-columns: 1fr; row-gap: 6px; padding: 10px 0; border-bottom: 0; }
.settings-form--sheet .field > :not(.ui-label),
.settings-form--sheet .field-hint { grid-column: 1; }
.settings-form--sheet .field .ui-label,
.settings-form--sheet .field.field-stacked .ui-label { padding-top: 0; }
.settings-form--sheet .role-picker-compact { display: grid; gap: 8px; max-height: 220px; overflow-y: auto; padding: 2px 0; }
.settings-form-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 16px 0 0; padding: 0; border: 0; }
.settings-form .button-primary,
.theme-settings-panel .button-primary { min-height: 36px; padding: 8px 16px; border-radius: 6px; font-size: 14px; font-weight: 500; color: #fafafa; background: #18181b; border: 1px solid #18181b; box-shadow: 0 1px 2px rgba(15,23,42,.05); transform: none; width: auto; display: inline-flex; align-self: flex-start; justify-self: start; white-space: nowrap; }
.settings-form .button-primary:hover,
.theme-settings-panel .button-primary:hover { color: #fafafa; background: #27272a; border-color: #27272a; transform: none; }
.theme-dark .settings-form .button-primary,
.theme-dark .theme-settings-panel .button-primary { color: #18181b; background: #fafafa; border-color: #fafafa; }
.theme-dark .settings-form .button-primary:hover,
.theme-dark .theme-settings-panel .button-primary:hover { color: #18181b; background: #e4e4e7; border-color: #e4e4e7; }
.settings-content-section .theme-settings-panel { width: 100%; padding: 0; gap: 20px; border: 0; background: transparent; box-shadow: none; }
@media (min-width: 1024px) {
  .settings-layout { flex-direction: row; gap: 48px; align-items: flex-start; }
  .settings-aside { position: sticky; top: 84px; flex: 0 0 11rem; width: 11rem; }
  .settings-page-separator.ui-separator { margin: 24px 0; }
}
@media (max-width: 640px) {
  .settings-form .field,
  .settings-form .asset-field { grid-template-columns: 1fr; row-gap: 6px; padding: 12px 0; }
  .settings-form .field .ui-label,
  .settings-form .asset-field .ui-label { padding-top: 0; }
  .settings-form .field > :not(.ui-label),
  .settings-form .asset-field > :not(.ui-label),
  .settings-form .asset-field > .asset-field-controls,
  .settings-form .field-hint { grid-column: 1; }
  .settings-form .asset-field > .ui-label { grid-row: auto; }
  .list-page-toolbar-form--standalone { flex-wrap: wrap; }
}
.permission-matrix { display: grid; gap: 24px; }
.permission-group { padding-top: 4px; }
.permission-group-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.permission-group-head h2 { margin: 0; font-size: 15px; font-weight: 600; }
.permission-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 8px; }
.permission-option { display: flex; align-items: flex-start; gap: 10px; padding: 12px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--background); cursor: pointer; transition: border-color .15s ease, background .15s ease; }
.permission-option:hover { border-color: #cbd5e1; background: var(--accent); }
.permission-option:has(input:checked) { border-color: color-mix(in srgb, var(--brand) 35%, var(--border)); background: var(--brand-soft); box-shadow: 0 0 0 1px color-mix(in srgb, var(--brand) 12%, transparent); }
.permission-option strong { display: block; font-size: 13px; font-weight: 500; }
.permission-option small { display: block; margin-top: 4px; font-size: 11px; color: var(--muted-foreground); }
.theme-picker-card { max-width: 520px; }
.theme-picker-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.theme-picker-option { display: grid; gap: 10px; padding: 12px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--background); transition: border-color .15s ease, box-shadow .15s ease; }
.theme-picker-option:hover { border-color: #cbd5e1; }
.theme-picker-option.is-active { border-color: var(--brand); box-shadow: 0 0 0 1px rgba(37,99,235,.12); }
.theme-picker-option strong { display: block; font-size: 14px; }
.theme-picker-option small { display: block; margin-top: 2px; color: var(--muted-foreground); font-size: 12px; }
.theme-picker-preview { height: 72px; border-radius: var(--radius-md); border: 1px solid var(--line); }
.theme-picker-preview-light { background: linear-gradient(135deg, #fff 0%, #f4f4f5 100%); }
.theme-picker-preview-dark { background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%); }
.shell-showcase .team-switcher-logo:not(.team-switcher-logo--brand) { background: var(--sidebar-primary); }
.shell-showcase .team-switcher-logo.team-switcher-logo--brand,
.shell-debug .team-switcher-logo.team-switcher-logo--brand { width: auto; max-width: calc(100% - 28px); height: auto; align-self: stretch; flex: 1 1 auto; min-width: 0; display: flex; align-items: stretch; background: transparent; border-radius: 0; overflow: hidden; }
.shell-showcase .team-switcher-logo.team-switcher-logo--brand img,
.shell-debug .team-switcher-logo.team-switcher-logo--brand img { width: 100%; height: 100%; max-width: none; max-height: none; object-fit: contain; object-position: left center; object-view-box: inset(26% 0.8% 26% 0.8%); filter: none; }
.shell.theme-light.shell-showcase .team-switcher-logo.team-switcher-logo--brand img { mix-blend-mode: multiply; }
.shell-showcase .team-switcher-mark-muted { color: var(--violet); background: color-mix(in srgb, var(--violet) 10%, #fff); }
.shell-debug .team-switcher-logo:not(.team-switcher-logo--brand) { background: var(--sidebar-primary); }
.shell-debug .team-switcher-mark-muted { color: var(--amber, #d97706); background: color-mix(in srgb, var(--amber, #f59e0b) 12%, #fff); }
.debug-notification-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.debug-notification-table .debug-notification-item { display: table-row; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; gap: 0; }
.debug-notification-table .debug-notification-item.is-unread { background: color-mix(in srgb, var(--brand, #1677ff) 6%, var(--card)); }
.debug-notification-table .debug-notification-item.is-unread td:first-child { box-shadow: inset 3px 0 0 var(--amber, #f59e0b); }
.debug-notification-table .debug-notification-item.is-read { opacity: 1; }
.debug-notification-excerpt { margin: 4px 0 0; font-size: 13px; line-height: 1.5; }
.debug-notification-table .list-row-links { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 8px; }
.debug-notification-table .list-row-links form { margin: 0; display: inline; }
.debug-notification-main { display: grid; gap: 6px; min-width: 0; }
.debug-notification-main strong { font-size: 14px; font-weight: 650; line-height: 1.4; color: var(--foreground); }
.debug-notification-main p { margin: 0; font-size: 13px; line-height: 1.55; color: var(--muted-foreground); }
.debug-notification-time { font-size: 12px; color: var(--muted-foreground); }
.debug-notification-meta { display: flex; flex-wrap: wrap; gap: 8px 12px; font-size: 12px; color: var(--muted-foreground); }
.debug-notification-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; align-items: center; }
.team-switcher-static .team-switcher-trigger-static { cursor: default; }
.team-switcher-static .team-switcher-trigger-static:hover { background: transparent; }
.workspace-badge { display: inline-flex; align-items: center; min-height: 24px; padding: 0 8px; border-radius: 999px; border: 1px solid var(--line); background: var(--secondary); color: var(--muted-foreground); font-size: 11px; font-weight: 600; }
.workspace-badge-debug { border-color: color-mix(in srgb, var(--amber, #f59e0b) 35%, var(--line)); color: color-mix(in srgb, var(--amber, #d97706) 80%, var(--foreground)); background: color-mix(in srgb, var(--amber, #f59e0b) 10%, var(--secondary)); }
.debug-kanban { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; align-items: stretch; min-height: 420px; }
.debug-kanban--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.debug-kanban-column { min-width: 0; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 12px; background: var(--card); min-height: 360px; }
.debug-kanban-column--pending_verify { border-color: color-mix(in srgb, var(--amber, #f59e0b) 40%, var(--line)); }
.debug-kanban-column--closed { opacity: .88; }
.debug-kanban-column-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 12px; border-bottom: 1px solid var(--line); }
.debug-kanban-column-head h2 { margin: 0; font-size: 13px; font-weight: 650; }
.debug-kanban-cards { display: grid; align-content: start; gap: 8px; padding: 10px; flex: 1; max-height: 62vh; overflow: auto; }
.debug-kanban-card { display: grid; gap: 6px; padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--background); color: inherit; text-decoration: none; }
.debug-kanban-card:hover { border-color: color-mix(in srgb, var(--primary) 35%, var(--line)); box-shadow: 0 1px 0 color-mix(in srgb, var(--primary) 12%, transparent); }
.debug-kanban-card-top { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.debug-kanban-card-meta { display: flex; gap: 8px; flex-wrap: wrap; font-size: 12px; color: var(--muted-foreground); }
.debug-kanban-empty { margin: 8px 2px; font-size: 12px; }
.debug-board-toolbar { margin: 0 0 12px; }
.debug-board-toggle { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--muted-foreground); white-space: nowrap; }
.debug-priority-chip { font-size: 11px; font-weight: 650; padding: 1px 6px; border-radius: 999px; background: var(--secondary); }
.debug-priority-chip--urgent, .debug-kanban-card--urgent { border-color: color-mix(in srgb, #dc2626 35%, var(--line)); }
.debug-priority-chip--urgent { color: #b91c1c; background: color-mix(in srgb, #dc2626 10%, var(--secondary)); }
.debug-priority-chip--high { color: #c2410c; background: color-mix(in srgb, #ea580c 12%, var(--secondary)); }
.debug-kanban-card strong { font-size: 14px; line-height: 1.35; }
.debug-task-table-wrap { overflow-x: auto; }
.debug-task-table .primary-cell { min-width: 160px; max-width: 280px; }
.debug-task-table .primary-cell .link strong { font-weight: 500; }
.debug-task-project-cell {
    max-width: 140px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 13px;
    font-weight: 500;
    color: var(--foreground);
}
.debug-task-complete-col form { margin: 0; display: inline-flex; align-items: center; justify-content: center; }
.debug-task-complete {
    display: inline-block;
    width: 16px;
    height: 16px;
    margin: 0;
    padding: 0;
    border: 1px solid var(--input);
    border-radius: 999px;
    background: var(--background);
    cursor: pointer;
    vertical-align: middle;
    box-shadow: var(--shadow-xs);
    transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
button.debug-task-complete:hover { border-color: color-mix(in srgb, var(--primary) 45%, var(--input)); }
.debug-task-complete.is-done {
    border-color: var(--primary);
    background: var(--primary);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 8.2 6.6 10.8 12 5.4' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 12px 12px;
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--primary) 18%, transparent);
}
.debug-task-complete.is-disabled { opacity: .35; cursor: default; pointer-events: none; }
.debug-priority-level {
    min-width: 24px;
    height: 24px;
    padding: 0 7px;
    display: inline-grid;
    place-items: center;
    border: 1px solid var(--line);
    border-radius: 6px;
    color: var(--muted-foreground);
    background: var(--background);
    font-size: 12px;
    font-weight: 500;
}
.debug-priority-level[title*="紧急"] { color: #b91c1c; border-color: color-mix(in srgb, #dc2626 35%, var(--line)); }
.debug-priority-level[title*="高"] { color: #c2410c; }
.debug-task-sheet, .debug-sheet-stack { display: grid; gap: 12px; }
.debug-sheet-stack .field, .debug-sheet-more { display: grid; gap: 8px; }
.debug-sheet-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.debug-sheet-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 12px; padding: 10px 12px; border-radius: var(--radius-sm); background: var(--muted); border: 1px solid var(--line); }
.debug-sheet-toolbar-hint { font-size: 13px; }
.debug-sheet-toolbar > form { margin: 0; display: inline-flex; flex-wrap: nowrap; align-items: center; gap: 8px; }
.debug-status-form { display: flex; flex-wrap: nowrap; align-items: center; gap: 8px; margin: 0; }
.debug-status-form .select,
.debug-status-form .input { width: auto; min-width: 120px; max-width: 168px; flex: 0 0 auto; }
.debug-more-list { display: grid; gap: 10px; padding: 4px 0 2px; }
.debug-more-row { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; gap: 8px; align-items: center; margin: 0; }
.debug-more-label { font-size: 13px; color: var(--muted-foreground); }
.debug-more-row .select,
.debug-more-row .input { width: 100%; min-width: 0; }
.debug-title-card, .debug-type-card { padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px; background: var(--card); }
.debug-title-card { font-size: 16px; font-weight: 650; line-height: 1.55; }
.debug-title-input { font-size: 16px; font-weight: 600; line-height: 1.5; }
.debug-type-card { display: flex; align-items: center; justify-content: space-between; gap: 12px; background: color-mix(in srgb, var(--primary) 6%, var(--card)); }
.debug-props {
    margin: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px 28px;
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--card);
}
.debug-props > div { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 8px; align-items: baseline; min-width: 0; }
.debug-title-meta { display: block; margin-top: 6px; font-size: 12px; font-weight: 500; }
.debug-props dt { margin: 0; color: var(--muted-foreground); font-size: 13px; font-weight: 500; }
.debug-props dd { margin: 0; font-size: 13px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.debug-sheet-body { display: grid; gap: 10px; padding-top: 8px; border-top: 1px solid var(--line); }
.debug-sheet-h { margin: 0; font-size: 13px; font-weight: 650; }
.debug-sheet-hint { margin: 0; font-size: 13px; }
.debug-sheet-flow { padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--secondary); }
.debug-sheet-disclose { border-top: 1px solid var(--line); padding-top: 12px; }
.debug-sheet-disclose > summary { cursor: pointer; font-size: 13px; font-weight: 600; color: var(--muted-foreground); }
.debug-sheet-disclose[open] > summary { margin-bottom: 10px; color: var(--foreground); }
.debug-sheet-hero { display: grid; gap: 6px; }
.debug-sheet-hero-main { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.debug-sheet-title { margin: 0; font-size: 20px; line-height: 1.35; }
.debug-sheet-sub { margin: 0; }
.debug-prose { font-size: 14px; line-height: 1.7; white-space: pre-wrap; }
.debug-comments { display: grid; gap: 12px; margin-top: 4px; }
.debug-comments-title { margin: 0; font-size: 15px; font-weight: 650; line-height: 1.35; color: var(--foreground); }
.debug-comments-empty { margin: 0; font-size: 13px; }
.debug-composer { border: 1px solid var(--line); border-radius: 10px; overflow: hidden; background: var(--card); }
.debug-composer-actions-only { border-style: dashed; background: transparent; }
.debug-composer-actions-only .debug-composer-bar { border-top: 0; }
.debug-composer .textarea { border: 0; border-radius: 0; box-shadow: none; min-height: 44px; }
.debug-composer-bar { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 8px; padding: 6px 8px 8px; border-top: 1px solid var(--line); }
.debug-composer-action-form { margin: 0; display: inline-flex; }
.debug-composer-bar .button-outline { --button-bg: var(--background); }
.debug-sheet-danger { margin-top: 8px; padding-top: 12px; border-top: 1px dashed var(--line); }
.debug-sheet-danger-row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.debug-comment-meta { display: flex; flex-wrap: wrap; gap: 8px; align-items: baseline; }
.debug-comment-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; }
.debug-comment-item { margin: 0; padding: 0; border: 0; background: transparent; }
.debug-comment-row { display: flex; align-items: flex-start; gap: 10px; }
.debug-comment-avatar { width: 32px; height: 32px; flex: 0 0 32px; font-size: 13px; font-weight: 600; }
.debug-comment-avatar .avatar-fallback { border: 0; color: #fff; font-weight: 600; }
.debug-comment-avatar-tone-0 .avatar-fallback { background: #6366f1; }
.debug-comment-avatar-tone-1 .avatar-fallback { background: #8b5cf6; }
.debug-comment-avatar-tone-2 .avatar-fallback { background: #3b82f6; }
.debug-comment-avatar-tone-3 .avatar-fallback { background: #0ea5e9; }
.debug-comment-avatar-tone-4 .avatar-fallback { background: #14b8a6; }
.debug-comment-avatar-tone-5 .avatar-fallback { background: #f97316; }
.debug-comment-main { min-width: 0; flex: 1 1 auto; display: grid; gap: 4px; }
.debug-comment-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; min-height: 32px; line-height: 1.35; }
.debug-comment-author { font-size: 14px; font-weight: 600; color: var(--foreground); }
.debug-comment-time { font-size: 12px; font-weight: 400; color: var(--muted-foreground); }
.debug-comment-body { margin: 0; font-size: 14px; line-height: 1.65; color: var(--foreground); word-break: break-word; white-space: pre-wrap; }
.debug-callout { padding: 12px; border-radius: 10px; border: 1px solid var(--line); background: var(--secondary); margin: 12px 0; }
.debug-callout-reply { border-color: color-mix(in srgb, var(--amber, #f59e0b) 40%, var(--line)); background: color-mix(in srgb, var(--amber, #f59e0b) 8%, var(--card)); }
.debug-callout-fail { border-color: color-mix(in srgb, #dc2626 35%, var(--line)); background: color-mix(in srgb, #dc2626 8%, var(--card)); }
.debug-callout-ok { border-color: color-mix(in srgb, #059669 35%, var(--line)); background: color-mix(in srgb, #059669 8%, var(--card)); }
.debug-shot-block { margin: 0 0 16px; }
.debug-shot-thumbs { display: flex; flex-wrap: wrap; gap: 8px; }
.debug-shot { display: block; width: 160px; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; background: var(--background); }
.debug-shot img { display: block; width: 160px; height: 100px; object-fit: cover; }
.debug-list-problem { display: flex; align-items: flex-start; gap: 10px; color: inherit; text-decoration: none; }
.debug-list-problem strong { display: block; }
.debug-list-excerpt { display: block; margin-top: 2px; font-size: 12px; line-height: 1.4; }
.debug-list-shot { width: 96px; height: 60px; flex: 0 0 96px; object-fit: cover; border-radius: 8px; border: 1px solid var(--line); background: var(--secondary); }
.debug-shot-empty, .debug-paste-hint { margin: 0 0 8px; font-size: 13px; color: var(--muted-foreground); }
.debug-paste-hint .link { background: none; border: 0; padding: 0; color: var(--primary); cursor: pointer; font: inherit; }
.debug-sheet-actions { display: grid; gap: 12px; }
.debug-inline-form { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
@media (max-width: 560px) { .debug-sheet-pair { grid-template-columns: 1fr; } .debug-props { grid-template-columns: 1fr; } }
@media (max-width: 1100px) { .debug-kanban { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .debug-kanban { grid-template-columns: 1fr; } }
.asset-field { display: grid; gap: 6px; }
.asset-field-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; min-width: 0; }
.asset-field-controls .file-input { flex: 1 1 auto; width: auto; min-width: 180px; max-width: 100%; }
.settings-form .asset-field-controls .file-input { width: 100%; max-width: 100%; }
.asset-field-preview { width: 52px; height: 52px; flex: 0 0 52px; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; background: var(--secondary); }
.asset-field-preview img { width: 100%; height: 100%; object-fit: contain; }
.asset-field-preview-missing { border-color: color-mix(in srgb, var(--destructive, #dc2626) 45%, var(--line)); background: color-mix(in srgb, var(--destructive, #dc2626) 8%, var(--secondary)); }
.asset-field-preview-placeholder { display: grid; place-items: center; width: 100%; height: 100%; color: var(--destructive, #dc2626); font-size: 12px; font-weight: 600; }

.card-description { margin: 4px 0 0; color: var(--muted-foreground); font-size: 14px; line-height: 1.5; }
.card-footer { padding: 16px 24px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; border-top: 1px solid var(--line); }

.input[aria-invalid="true"], .select[aria-invalid="true"], .textarea[aria-invalid="true"] { border-color: #fca5a5; box-shadow: 0 0 0 3px rgba(239, 68, 68, .15); }
.field-error { margin-top: 4px; color: var(--destructive); font-size: 12px; }

.notice { border-radius: var(--radius-md); box-shadow: var(--shadow-xs); }

.eyebrow { margin: 0 0 4px; color: var(--muted-foreground); font-size: 12px; font-weight: 500; line-height: 1.4; letter-spacing: 0; text-transform: none; }
.page-context { display: none; align-items: center; gap: 6px; min-width: 0; max-width: min(360px, 40vw); overflow: hidden; color: var(--muted-foreground); font-size: 13px; white-space: nowrap; }
.page-context span + span::before { content: "/"; margin: 0 6px; color: #cbd5e1; }
.page-context span:last-child { color: var(--foreground); font-weight: 500; overflow: hidden; text-overflow: ellipsis; }
.topbar-separator-context { display: none; }
@media (min-width: 900px) {
  .page-context, .topbar-separator-context { display: inline-flex; }
}
.mobile-nav-sublabel { margin: 8px 0 2px 34px; padding: 0 10px; color: var(--muted-foreground); font-size: 11px; font-weight: 600; letter-spacing: .02em; text-transform: uppercase; }
h1 { margin-bottom: 2px; font-size: inherit; line-height: inherit; font-weight: inherit; letter-spacing: inherit; }
h2 { font-size: 18px; line-height: 1.35; font-weight: 650; letter-spacing: -.015em; }
h3 { font-size: 14px; font-weight: 650; }
.lead { font-size: 14px; line-height: 1.5; }
.button { min-height: 36px; padding: 8px 16px; border-radius: 7px; font-size: 14px; font-weight: 500; box-shadow: 0 1px 2px rgba(15,23,42,.04); }
.button .ui-icon { width: 16px; height: 16px; }
.button:hover { transform: none; }
.button-primary { box-shadow: 0 1px 2px rgba(15,23,42,.08); }
.button-secondary:hover { border-color: var(--line); background: #f1f5f9; }
.button-small { min-height: 32px; padding: 6px 10px; }

/* Reusable source-aligned primitives for pages enabled by host projects. */
.ui-tabs { width: max-content; max-width: 100%; margin: 0 0 16px; padding: 3px; display: flex; align-items: center; gap: 2px; overflow-x: auto; border-radius: 9px; color: var(--muted); background: #f1f5f9; }
.ui-tab { min-height: 32px; padding: 6px 12px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: 7px; color: var(--ink); font-size: 14px; font-weight: 500; white-space: nowrap; transition: background .15s ease, border-color .15s ease, box-shadow .15s ease; }
.ui-tab:hover { background: rgba(255,255,255,.65); }
.ui-tab.is-active { border-color: color-mix(in srgb, var(--brand) 20%, var(--border)); background: var(--background); color: var(--brand-dark); box-shadow: 0 1px 2px rgba(15,23,42,.08); font-weight: 600; }
.ui-tab.is-disabled { color: #94a3b8; cursor: not-allowed; opacity: .72; }
.ui-alert { padding: 14px 16px; display: grid; grid-template-columns: auto 1fr; gap: 10px; border: 1px solid var(--line); border-radius: 9px; background: #fff; }
.ui-alert-title { margin: 0; font-size: 14px; font-weight: 600; }
.ui-alert-description { margin: 2px 0 0; color: var(--muted); font-size: 13px; }
.ui-skeleton { min-height: 16px; border-radius: 6px; background: linear-gradient(90deg, #f1f5f9 25%, #e7edf5 50%, #f1f5f9 75%); background-size: 200% 100%; animation: ui-skeleton-pulse 1.7s ease-in-out infinite; }
.ui-switch { width: 36px; height: 20px; padding: 2px; display: inline-flex; align-items: center; border: 0; border-radius: 999px; background: #cbd5e1; }
.ui-switch::after { content: ""; width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(15,23,42,.18); transition: transform .15s ease; }
.ui-switch.is-active { background: var(--brand); }
.ui-switch.is-active::after { transform: translateX(16px); }
@keyframes ui-skeleton-pulse { to { background-position: -200% 0; } }

.grid { gap: 16px; }
.section-gap { margin-top: 16px; }
.list-create-button { flex: 0 0 auto; white-space: nowrap; }
.card { border: 1px solid var(--border); border-radius: 12px; background: var(--card); box-shadow: var(--shadow-sm); }
.card:hover { box-shadow: var(--shadow-sm); }
.card-pad, .card-body { padding: 24px; }
.card-head { padding: 24px 24px 14px; border-bottom: 0; }
.card-head p { margin-top: 4px; font-size: 14px; }
.dashboard-quick-actions .button .nav-count { margin-left: 6px; }
.ui-tab-badge { min-width: 18px; height: 18px; margin-left: 8px; padding: 0 6px; display: inline-grid; place-items: center; border-radius: 999px; color: #fff; background: var(--brand); font-size: 11px; font-weight: 600; line-height: 1; }
.avatar-initials.avatar-sm { width: 36px; height: 36px; flex: 0 0 36px; border-radius: 999px; font-size: 13px; font-weight: 600; }
.avatar-initials.avatar-md { width: 48px; height: 48px; flex: 0 0 48px; border-radius: 999px; font-size: 16px; font-weight: 600; }
.avatar-initials .avatar-fallback { width: 100%; height: 100%; display: grid; place-items: center; border: 1px solid var(--line); border-radius: inherit; color: var(--ink); background: #f8fafc; }
.dashboard-activity-item .avatar-initials { flex: 0 0 auto; }
.dashboard-activity-empty .avatar-initials { margin-bottom: 4px; }
.list-page-toolbar-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; min-width: 0; }
.list-table-actions { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.list-active-filters { margin: -8px 0 8px; }
.list-table-section { display: flex; flex-direction: column; gap: 16px; overflow: visible; }
.list-table-section .list-bulk-form { margin: 0; padding: 0; overflow: visible; }
.list-table-section .table-wrap { overflow-x: auto; overflow-y: visible; margin: 0; border: 1px solid var(--border); border-radius: 6px; background: var(--card); }
.list-table-section:has(.row-actions[open]) .table-wrap,
.list-table-section:has(.list-bulk-form .row-actions[open]) .table-wrap,
.data-card:has(.row-actions[open]) .table-wrap { overflow: visible; }
.list-table-section:has(.row-actions[open]),
.data-card:has(.row-actions[open]) { position: relative; z-index: 3; }
.row-actions[open] { z-index: 90; }
.list-table-section .list-table td.text-right { overflow: visible; position: relative; }
.list-table-section .pagination { margin: 16px 0 0; padding: 12px 8px 0; border: 0; background: transparent; box-shadow: none; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 16px; }
.list-table-section .pagination .pages { margin-left: auto; }
.list-data-card-head { display: none; }
.list-data-card-head-main { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; min-width: 0; }
.list-data-card-head-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-left: auto; }
.dashboard-page-tabs { margin: 0; flex: 0 0 auto; width: fit-content; max-width: 100%; }
.dashboard-page-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-left: auto; }
.permission-matrix-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 12px; margin-bottom: 12px; }
.permission-matrix-head h2 { margin: 0; font-size: 16px; }
.permission-matrix-inline { padding: 0; border: 0; background: transparent; box-shadow: none; }
.public-docs-body { background: var(--soft); }
.public-docs-header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 16px; padding: 16px 28px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.92); backdrop-filter: blur(16px); }
.public-docs-brand { display: flex; align-items: center; gap: 12px; }
.public-docs-brand strong { display: block; font-size: 15px; }
.public-docs-brand small { display: block; color: var(--muted); font-size: 12px; }
.public-docs-header-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.public-docs-main { width: min(1180px, 100%); margin: 0 auto; padding: 28px 24px 72px; }
.public-docs-hero { margin-bottom: 18px; }
.public-docs-hero h1 { margin: 0 0 8px; font-size: 28px; letter-spacing: -.03em; }
.public-docs-note { margin-top: 8px; font-size: 13px; }
.list-data-card-count { color: var(--ink); font-size: 13px; font-weight: 600; }
.list-data-card-meta { font-size: 12px; }
.list-filter-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-left: auto; }
.list-filter-tag { min-height: 24px; padding: 2px 10px; display: inline-flex; align-items: center; border: 1px solid color-mix(in srgb, var(--brand) 22%, var(--border)); border-radius: 999px; color: var(--brand-dark); background: var(--brand-soft); font-size: 12px; font-weight: 500; }
.list-table .primary-cell.is-stacked > a, .list-table .primary-cell.is-stacked > strong { display: block; }
.list-table .primary-cell.is-stacked > span { display: block; margin: 2px 0 0; color: var(--muted); font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.list-table .primary-cell.is-stacked > span::before { content: none; margin: 0; }
.header-icon-button-badge { position: relative; }
.header-badge { position: absolute; top: 4px; right: 4px; min-width: 16px; height: 16px; padding: 0 4px; display: grid; place-items: center; border-radius: 999px; color: #fff; background: #ef4444; font-size: 10px; font-weight: 700; line-height: 1; pointer-events: none; }
.notification-list { display: grid; }
.notification-item { padding: 16px 20px; display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--line); }
.notification-item:last-child { border-bottom: 0; }
.notification-item.is-unread { background: #f8fbff; }
.list-table tbody tr.is-row-unread { background: #f8fbff; }
.list-table tbody tr.is-row-unread td { border-color: color-mix(in srgb, var(--line) 70%, #93c5fd); }
.notification-item-main { min-width: 0; display: flex; align-items: flex-start; gap: 14px; }
.notification-copy { min-width: 0; }
.notification-copy strong { display: block; color: var(--ink); font-size: 14px; font-weight: 600; }
.notification-copy p { margin: 4px 0; color: var(--ink); font-size: 13px; line-height: 1.55; }
.notification-copy small { color: var(--muted); font-size: 12px; }
.api-docs-layout { display: grid; grid-template-columns: minmax(220px, 280px) minmax(0, 1fr); gap: 16px; align-items: start; }
.api-docs-nav-list { padding: 8px; display: grid; gap: 4px; }
.api-docs-nav-list a { padding: 8px 12px; border-radius: 6px; color: var(--ink); text-decoration: none; font-size: 14px; }
.api-docs-nav-list a:hover { background: #f1f5f9; }
.api-docs-nav-list a.is-active { color: var(--brand-dark); background: var(--brand-soft); font-weight: 600; }
.api-docs-foot { padding: 12px 16px 16px; font-size: 12px; }
.api-docs-panel .card-head { border-bottom: 1px solid var(--line); }
.api-method { min-width: 52px; padding: 2px 8px; display: inline-flex; justify-content: center; border-radius: 6px; font-size: 11px; font-weight: 700; letter-spacing: .03em; }
.api-method-get { color: #166534; background: #dcfce7; }
.api-method-post { color: #1d4ed8; background: #dbeafe; }
.api-method-put { color: #9a3412; background: #ffedd5; }
.api-method-delete { color: #991b1b; background: #fee2e2; }
.code, .sg-kbd, kbd { font-family: var(--sg-font-code, Consolas, Menlo, monospace); font-size: 12px; }

.command-search-form { padding: 0 8px 8px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.command-input-live { flex: 1 1 220px; min-width: 180px; display: inline-flex; align-items: center; gap: 8px; padding: 0 10px; min-height: 36px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.command-input-live .input { width: 100%; min-height: 34px; padding: 0; border: 0; box-shadow: none; background: transparent; }
.command-input-live .input:focus { box-shadow: none; }
.search-hero { padding: 20px 24px; }
.search-hero-form { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.search-field-wide { flex: 1 1 420px; min-width: min(100%, 280px); }
.search-results { display: grid; gap: 16px; }
.search-result-list { padding: 8px; display: grid; gap: 4px; }
.search-result-item { padding: 10px 12px; display: flex; align-items: center; gap: 10px; border-radius: 8px; color: inherit; text-decoration: none; }
.search-result-item:hover { background: #f8fafc; }
.search-result-item strong { display: block; font-size: 14px; }
.search-result-item small { color: var(--muted); font-size: 12px; }
.search-result-foot { padding: 12px 20px 16px; border-top: 1px solid var(--line); }
.dashboard-reports-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dashboard-reports-wide { grid-column: 1 / -1; }
.dashboard-overview-secondary { grid-template-columns: minmax(0, 3fr) minmax(280px, 2fr); gap: 16px; }
.dashboard-todo-groups { display: grid; gap: 16px; }
.dashboard-todo-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; font-size: 13px; }
.dashboard-todo-item { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid #f1f5f9; color: inherit; text-decoration: none; }
.dashboard-todo-item:last-child { border-bottom: 0; }
.dashboard-todo-item:hover strong { color: var(--brand); }
.dashboard-todo-item small { display: block; color: var(--muted); font-size: 12px; }
.dashboard-todo-empty { padding: 8px 0; font-size: 13px; }
.dashboard-risk-banner { display: flex; align-items: center; gap: 10px; margin-top: 4px; padding: 10px 12px; border: 1px solid #fecaca; border-radius: 8px; background: #fef2f2; color: #991b1b; text-decoration: none; font-size: 13px; }
.dashboard-risk-banner small { display: block; color: #b91c1c; font-size: 12px; }
.bar-list-item-link { display: block; color: inherit; text-decoration: none; }
.bar-list-item-link:hover .bar-list-label span { color: var(--brand); }
.trend-row-link { display: grid; gap: 7px; color: inherit; text-decoration: none; }
.trend-row-link:hover .bar-list-label span { color: var(--brand); }
.dashboard-tab-foot { margin-top: 8px; font-size: 13px; }
.dashboard-risk-banner-compact { margin-top: 14px; }
.dashboard-report-toolbar { display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; gap: 12px 16px; padding: 12px 16px; margin-top: 4px; }
.dashboard-period-form { display: flex; flex: 1 1 auto; flex-wrap: nowrap; align-items: center; gap: 10px; min-width: 0; }
.dashboard-period-label { flex-shrink: 0; font-size: 13px; white-space: nowrap; }
.dashboard-report-toolbar-actions { display: flex; flex: 0 0 auto; flex-wrap: nowrap; align-items: center; gap: 8px; margin-left: auto; }
.report-link-list { display: grid; gap: 10px; }
.report-link-card { padding: 14px 16px; display: grid; gap: 4px; border: 1px solid var(--line); border-radius: 8px; color: inherit; text-decoration: none; background: #fafafa; }
.report-link-card:hover { border-color: #bfdbfe; background: #eff6ff; }
.report-link-card strong { font-size: 14px; }
.report-link-card span { color: var(--muted); font-size: 12px; }
.api-spec-group + .api-spec-group { margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--line); }
.api-spec-tag { margin: 0 0 12px; padding: 0 20px; font-size: 14px; font-weight: 600; }
.curl-example-list { padding: 8px 20px 20px; display: grid; gap: 16px; }
.curl-example-card h3 { margin: 0 0 10px; font-size: 14px; font-weight: 600; }
.curl-example-pre { margin: 0; padding: 14px 16px; overflow-x: auto; border: 1px solid var(--line); border-radius: 8px; background: #0f172a; color: #e2e8f0; font-size: 12px; line-height: 1.55; }
.curl-example-pre code { font-family: var(--sg-font-code, Consolas, Menlo, monospace); white-space: pre; }
.list-sort-select .select { min-width: 132px; }
.list-table-tools { padding: 12px 20px 0; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.list-table-tools-end, .list-table-tools-start { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.bulk-actions-bar { display: none; }
.bulk-actions-dock { position: fixed; z-index: 50; bottom: 24px; left: 50%; display: none; align-items: center; gap: 8px; padding: 8px; border: 1px solid var(--border); border-radius: 12px; background: color-mix(in srgb, var(--background) 95%, transparent); box-shadow: var(--shadow-lg); backdrop-filter: blur(12px); transform: translateX(-50%); transition: transform .2s ease, opacity .2s ease; }
.list-bulk-form:has(input[name="ids[]"]:checked) .bulk-actions-dock,
.list-bulk-form.is-bulk-active .bulk-actions-dock { display: flex; }
.list-bulk-form:has(input[name="ids[]"]:checked),
.list-bulk-form.is-bulk-active { padding-bottom: 72px; }
.bulk-actions-clear { width: 32px; min-width: 32px; height: 32px; padding: 0; border-radius: 999px; }
.bulk-actions-separator { height: 20px; align-self: center; }
.bulk-actions-meta { display: inline-flex; align-items: center; gap: 8px; padding-inline: 4px; color: var(--foreground); font-size: 14px; white-space: nowrap; }
.bulk-actions-badge { min-width: 32px; height: 24px; padding: 0 8px; display: inline-grid; place-items: center; border-radius: 8px; color: var(--primary-foreground); background: var(--primary); font-size: 12px; font-weight: 600; line-height: 1; }
.bulk-actions-label { color: var(--foreground); font-size: 14px; font-weight: 500; }
.bulk-actions-buttons { display: inline-flex; align-items: center; gap: 6px; }
.bulk-actions-buttons .button-icon { width: 32px; min-width: 32px; height: 32px; padding: 0; border-radius: 8px; }
.bulk-actions-hint { display: none; }
.ui-popover { position: relative; display: inline-block; }
.ui-popover > summary { list-style: none; cursor: pointer; }
.ui-popover > summary::-webkit-details-marker { display: none; }
.ui-popover-panel { position: absolute; z-index: 80; top: calc(100% + 4px); right: 0; min-width: 12rem; padding: 8px; border: 1px solid var(--border); border-radius: 8px; background: var(--popover); color: var(--popover-foreground); box-shadow: var(--shadow-lg); }
.column-toggle-panel { display: grid; gap: 8px; min-width: 180px; padding: 4px; }
.column-toggle-panel label { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--ink); cursor: pointer; }
.bulk-confirm-card { max-width: 720px; }
.bulk-confirm-list { margin: 16px 0 20px; padding-left: 20px; color: var(--ink); }
.bulk-confirm-list li { margin: 4px 0; }
.bulk-confirm-list-dialog { margin: 0; padding: 12px 12px 12px 28px; max-height: 160px; overflow: auto; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--secondary); color: var(--muted-foreground); font-size: 13px; line-height: 1.5; }
.bulk-confirm-list-dialog li { margin: 2px 0; }
.bulk-confirm-list-dialog li::marker { color: color-mix(in srgb, var(--red) 55%, var(--muted)); }
.bulk-delete-overlay { display: block; }
.bulk-delete-backdrop { display: none; position: fixed; inset: 0; z-index: 240; background: rgba(15, 23, 42, .45); cursor: default; }
.bulk-delete-toggle:not(:checked) ~ .bulk-delete-modal { display: none; }
.bulk-delete-toggle:checked ~ .bulk-delete-backdrop { display: block; }
.bulk-delete-toggle:checked ~ .bulk-delete-modal {
  display: flex;
  flex-direction: column;
  position: fixed;
  z-index: 250;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: min(480px, calc(100vw - 32px));
  max-height: min(560px, calc(100vh - 48px));
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--background);
  box-shadow: var(--shadow-lg);
  overflow: hidden;
}
.bulk-delete-modal-body {
  display: grid;
  gap: 16px;
  padding: 24px;
  overflow-y: auto;
}
.bulk-delete-modal-header { display: grid; gap: 6px; }
.bulk-delete-modal-title { margin: 0; font-size: 18px; font-weight: 600; letter-spacing: -.015em; color: var(--foreground); }
.bulk-delete-modal-lead { margin: 0; color: var(--muted-foreground); font-size: 14px; line-height: 1.5; }
.bulk-delete-modal-footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
  padding: 16px 24px 24px;
  border-top: 1px solid var(--border);
  background: var(--background);
  flex-shrink: 0;
}
.bulk-delete-modal-footer form { display: inline-flex; margin: 0; }
.bulk-delete-modal .ui-alert-destructive { margin: 0; }
.ui-dialog-destructive .ui-dialog-body { gap: 14px; }
.ui-alert-destructive { border-color: color-mix(in srgb, var(--red) 24%, var(--border)); background: var(--red-soft); }
.ui-alert-destructive > span { color: var(--red); }
.ui-alert-destructive .ui-alert-title { color: var(--red); }
.ui-alert-destructive .ui-alert-description { color: color-mix(in srgb, var(--red) 68%, var(--muted)); }
.command-results { padding: 0 8px 4px; }
.command-results-group { margin-bottom: 6px; }
.command-results-label { padding: 4px 8px; font-size: 10px; font-weight: 750; color: #94a3b8; text-transform: uppercase; letter-spacing: .04em; }
.command-result-item { display: flex; align-items: center; gap: 9px; padding: 7px 8px; border-radius: 7px; color: #475569; font-size: 12px; text-decoration: none; }
.command-result-item:hover { color: var(--brand); background: var(--brand-soft); }
.command-result-item small { margin-left: auto; color: #94a3b8; font-size: 10px; }
.command-results-empty { padding: 8px 10px 4px; font-size: 12px; }
.command-results-foot { display: flex; justify-content: space-between; gap: 8px; padding: 6px 8px 2px; font-size: 12px; }
.chat-list-item.is-unread strong { color: var(--ink); }
.chat-list-empty, .chat-compose-hint { padding: 12px 16px; font-size: 13px; }
.chat-compose-hint { border-top: 1px solid var(--line); margin: 0; }
.metric > .metric-label { margin: 0; padding: 24px 24px 8px; }
.metric > .section-gap { margin: 0; padding: 4px 24px 12px; }
.card-body > .metric-value { margin-top: 12px; padding: 0; }
.card-body > .metric-hint { margin-top: 4px; padding: 0; color: var(--muted-foreground); font-size: 12px; font-weight: 500; }
.insight-card { min-height: 142px; padding: 24px; }
.insight-icon { width: 24px; height: 24px; border-radius: 6px; }
.insight-value { font-size: 24px; }

/* App integrations — shadcn-admin apps/index.tsx */
.app-page-head { margin-bottom: 24px; }
.app-controls { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 24px; }
.app-controls-main { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.app-controls .input, .app-controls .select { min-height: 36px; }
.app-controls .app-search { width: 280px; }
.app-controls .app-type { width: 150px; }
.app-sort-control { position: relative; display: flex; align-items: center; }
.app-sort-control > span { position: absolute; z-index: 1; left: 12px; display: inline-flex; color: var(--muted); pointer-events: none; }
.app-sort-control > span .ui-icon { width: 16px; height: 16px; }
.app-sort-control .select { width: 142px; padding-left: 36px; }
.app-separator { height: 1px; margin-bottom: 24px; background: var(--line); }
.app-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-bottom: 24px; }
.app-card { display: flex; flex-direction: column; padding: 16px; border: 1px solid var(--border); border-radius: 8px; background: var(--card); transition: border-color .15s ease, box-shadow .15s ease; }
.app-card-link { color: inherit; text-decoration: none; }
.app-card:hover, .app-card-link:hover { border-color: var(--border); box-shadow: var(--shadow-md); }
.app-card-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 32px; }
.app-card-icon, .app-mark { width: 40px; height: 40px; flex: 0 0 40px; display: grid; place-items: center; border: 0; border-radius: 8px; color: var(--foreground); background: var(--secondary); font-size: 13px; font-weight: 700; }
.app-card-icon .ui-icon { width: 20px; height: 20px; }
.app-card-mark { font-size: 13px; font-weight: 700; }
.app-card-status { min-height: 32px; padding: 0 12px; white-space: nowrap; pointer-events: none; font-size: 12px; font-weight: 500; }
.app-card-status.is-connected { color: #1d4ed8; border-color: #93c5fd; background: #eff6ff; }
.app-card-body { display: grid; gap: 4px; }
.app-card-title { margin: 0; font-size: 16px; font-weight: 600; line-height: 1.35; color: var(--foreground); }
.app-card-desc { margin: 0; color: var(--muted-foreground); font-size: 14px; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.app-empty { grid-column: 1 / -1; border: 1px dashed var(--line); border-radius: 8px; }

.field { gap: 8px; }
.field label { color: var(--foreground); font-size: 14px; font-weight: 500; }
.input, .select, .textarea { min-height: 36px; padding: 8px 12px; border-radius: 6px; border-color: var(--input); font-size: 14px; box-shadow: var(--shadow-xs); background: var(--background); }
.input:focus, .select:focus, .textarea:focus { border-color: color-mix(in srgb, var(--foreground) 22%, var(--border)); box-shadow: 0 0 0 2px color-mix(in srgb, var(--foreground) 6%, transparent); }
.textarea { min-height: 96px; padding-top: 10px; padding-bottom: 10px; resize: vertical; }
.input-readonly { display: flex; align-items: center; color: var(--muted-foreground); background: var(--secondary); box-shadow: none; }
.toolbar, .toolbar-inline { margin-bottom: 16px; padding: 0; border: 0; background: transparent; box-shadow: none; }
.toolbar.card { border: 0; background: transparent; box-shadow: none; }
.toolbar form, .toolbar-inline form { align-items: center; gap: 8px; }
.toolbar .input, .toolbar-inline form .input { width: 250px; min-height: 32px; }
.toolbar .select, .toolbar-inline form .select { width: auto; min-width: 132px; min-height: 32px; }
.search-field { flex: 0 1 250px; min-width: 180px; }
.toolbar-inline form .search-field .input { width: 100%; min-height: 32px; }
.filter-select { position: relative; display: inline-flex; align-items: center; }
.filter-select .ui-icon { position: absolute; z-index: 1; left: 10px; pointer-events: none; }
.filter-select:has(.ui-icon) .select { padding-left: 32px; }
.toolbar .filter-select .select,
.list-page-toolbar-row .filter-select .select { border-style: solid; font-weight: 400; }
.toolbar .button, .toolbar-inline .button { min-height: 32px; padding: 6px 10px; }

.users-list-card, .data-card { overflow: visible; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.data-card .list-bulk-form,
.list-table-section .list-bulk-form { display: flex; flex-direction: column; margin: 0; padding: 0; }
.data-card .list-bulk-form .table-wrap,
.list-table-section .table-wrap { overflow-x: auto; margin: 0; border: 1px solid var(--border); border-radius: 6px; background: var(--card); }
.data-card .list-table,
.list-table-section .list-table { width: 100%; min-width: 100%; border-collapse: collapse; font-size: 13px; font-weight: 400; table-layout: auto; }
.data-card .list-table thead tr { border-bottom: 1px solid var(--border); }
.data-card .list-table tbody tr { border-bottom: 1px solid var(--border); transition: background-color .15s ease; }
.data-card .list-table tbody tr:last-child { border-bottom: 0; }
.data-card .list-table thead th { position: static; height: 40px; padding: 0 16px; border-bottom: 0; color: var(--foreground); background: var(--card); font-size: 12px; font-weight: 600; letter-spacing: 0; text-align: left; vertical-align: middle; white-space: nowrap; }
.data-card .list-table tbody td { height: auto; padding: 12px 16px; border-bottom: 0; color: var(--muted-foreground); font-size: 13px; font-weight: 400; vertical-align: middle; white-space: nowrap; }
.data-card .list-table tbody tr:hover,
.data-card .list-table tbody tr:focus-within { background: color-mix(in srgb, var(--muted-foreground) 5%, transparent); }
.table-wrap { border-radius: inherit; }
.table-wrap table:not(.list-table) { min-width: 720px; font-size: 14px; }
.table-wrap thead th { position: sticky; top: 0; z-index: 1; }
th { height: 40px; padding: 0 16px; color: var(--foreground); background: var(--card); font-size: 12px; font-weight: 600; letter-spacing: 0; }
td { height: auto; padding: 12px 16px; color: var(--muted-foreground); font-size: 13px; white-space: nowrap; vertical-align: middle; }
tbody tr { transition: background .15s ease; }
tbody tr:hover { background: color-mix(in srgb, var(--muted-foreground) 5%, transparent); }
tbody tr:focus-within { background: color-mix(in srgb, var(--muted-foreground) 5%, transparent); }
.data-card tbody tr:hover,
.data-card tbody tr:focus-within { background: color-mix(in srgb, var(--muted-foreground) 5%, transparent); }
.primary-cell strong, .user-username { font-size: 13px; font-weight: 500; color: var(--foreground); }
.cell-truncate { max-width: 320px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.primary-cell span, .user-cell small { margin-top: 2px; font-size: 12px; }
.table-sort { display: inline-flex; align-items: center; gap: 6px; }
.table-sort .ui-icon { width: 14px; height: 14px; color: var(--muted); }
.user-cell { gap: 8px; }
.customer-level { min-width: 24px; height: 24px; padding: 0 7px; display: inline-grid; place-items: center; border: 1px solid var(--line); border-radius: 6px; color: var(--muted); background: #fff; font-size: 12px; font-weight: 400; }
.ui-icon-button { width: 32px; height: 32px; border-radius: 6px; }
.row-actions > summary { border-color: transparent; color: var(--foreground); background: transparent; box-shadow: none; }
.row-actions > summary:hover, .row-actions[open] > summary { border-color: transparent; color: var(--foreground); background: var(--accent); }
.row-actions-panel { z-index: 80; top: calc(100% + 4px); min-width: 168px; padding: 4px; border-radius: 8px; box-shadow: var(--shadow-lg); }
.row-actions-panel a, .row-actions-panel button { display: flex; align-items: center; gap: 8px; padding: 8px 10px; font-size: 14px; font-weight: 500; }
.row-actions-panel .ui-icon { width: 15px; height: 15px; color: var(--muted); }
.row-actions-panel .row-action-danger { color: var(--red); }
.row-actions-panel .row-action-danger .ui-icon { color: currentColor; }
.row-actions-panel .row-action-disabled { color: #94a3b8; cursor: not-allowed; }
.row-actions-panel .row-action-disabled:hover { color: #94a3b8; background: transparent; }
.list-table tbody tr:nth-last-child(-n+2) .row-actions-panel { top: auto; bottom: 34px; }
.list-table .primary-cell { max-width: 360px; }
.list-table .primary-cell > a, .list-table .primary-cell > strong { display: inline; font-weight: 500; }
.list-table .primary-cell > span { display: none; }
.pagination { margin-top: 0; padding: 0 8px; border: 0; font-size: 14px; background: transparent; }
.pagination-total { min-width: 132px; color: var(--muted-foreground); }
.pagination-state { color: var(--foreground); font-size: 13px; font-weight: 500; }
.pagination .button { min-width: 32px; height: 32px; padding: 0 8px; border-radius: 6px; font-size: 14px; font-weight: 500; }
.pagination .button:not(.button-primary):not(.button-secondary) { border-color: var(--border); background: var(--background); box-shadow: var(--shadow-xs); }
.pagination .pages { gap: 4px; }
.pagination-icon { width: 32px; padding: 0 !important; }
.pagination-icon .ui-icon { width: 15px; height: 15px; }
.pagination-disabled { opacity: .45; cursor: default; }
.empty { padding: 64px 24px; }
.empty-mark { width: 40px; height: 40px; margin-bottom: 12px; border-radius: 10px; }

/* Long business forms follow the hierarchy of the reference settings pages. */
.form-card { width: min(1040px, 100%); margin-inline: 0; padding: 28px; gap: 20px 24px; }
.content-page-head--form + .form-card { margin-top: 20px; }
.form-grid > * { min-width: 0; }
.member-form { width: 100%; max-width: 1040px; }
.form-section-title { padding: 2px 0 12px; border-bottom: 1px solid var(--line); }
.form-section-title:not(:first-child) { margin-top: 8px; }
.form-card > .form-section-title:first-of-type { margin-top: 0; }
.form-section-heading { display: flex; align-items: center; gap: 9px; margin: 0; font-size: 15px; font-weight: 600; }
.form-section-heading .ui-icon { color: var(--muted); }
.form-section-title p { margin: 4px 0 0 25px; color: var(--muted); font-size: 12px; }
.form-actions { margin-top: 4px; padding-top: 20px; border-top: 1px solid var(--line); }
.avatar-upload { min-height: 92px; padding: 16px; display: flex; align-items: center; gap: 18px; border: 1px dashed #cbd5e1; border-radius: 10px; background: #f8fafc; }
.avatar-large { width: 64px; height: 64px; flex-basis: 64px; border-radius: 14px; font-size: 20px; }
.avatar-upload-fields { min-width: 0; display: grid; gap: 6px; }
.avatar-upload-fields > label:not(.check) { color: var(--ink); font-size: 14px; font-weight: 500; }
.avatar-upload-fields small { color: var(--muted); font-size: 12px; }
.file-input { max-width: 100%; color: var(--muted); font-size: 13px; }
.file-input::file-selector-button { min-height: 32px; margin-right: 10px; padding: 6px 10px; border: 1px solid var(--line); border-radius: 6px; color: var(--ink); background: #fff; font: inherit; font-weight: 500; cursor: pointer; }
.file-input::file-selector-button:hover { background: #f1f5f9; }
.danger-zone { width: min(1040px, 100%); margin: 16px auto 0; border: 1px solid #fecaca; border-radius: 10px; background: #fff; }
.danger-zone > summary { min-height: 64px; padding: 14px 18px; display: flex; align-items: center; justify-content: space-between; gap: 16px; color: #991b1b; }
.danger-zone > summary strong, .danger-zone > summary small { display: block; }
.danger-zone > summary strong { font-size: 14px; }
.danger-zone > summary small { margin-top: 3px; color: #b45359; font-size: 12px; font-weight: 400; }
.danger-zone[open] > summary { border-bottom: 1px solid #fecaca; }
.danger-zone[open] > summary > span:last-child { transform: rotate(180deg); }
.danger-zone-panel { padding: 18px; display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.danger-zone-panel p { margin: 0; color: var(--muted); font-size: 13px; }
.detail-summary .card-body { min-height: 144px; }
.detail-summary .metric-value, .date-value { font-variant-numeric: tabular-nums; }
.dashboard-detail-grid { grid-template-columns: minmax(0, 4fr) minmax(0, 3fr); }
.dashboard-detail-grid > .card { min-width: 0; }
.dashboard-overview-grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(320px, 3fr); gap: 16px; }
.dashboard-overview-grid > .card { min-width: 0; }
.dashboard-chart-card, .dashboard-activity-card { min-height: 420px; }

.ui-area-chart { position: relative; min-height: 280px; padding: 8px 20px 12px 4px; }
.dashboard-area-chart { min-height: 320px; }
.ui-area-chart-svg { width: 100%; height: auto; min-height: 260px; display: block; overflow: hidden; }
.ui-area-chart-grid { stroke: rgba(148, 163, 184, .28); stroke-width: 1; vector-effect: non-scaling-stroke; }
.ui-area-chart-y-label { fill: var(--muted-foreground); font-size: 11px; font-family: inherit; }
.ui-area-chart-x-label { fill: var(--muted-foreground); font-size: 11px; font-family: inherit; }
.ui-area-chart-line { fill: none; stroke-width: 2.5; vector-effect: non-scaling-stroke; stroke-linecap: round; stroke-linejoin: round; }
.ui-area-chart-line-primary { stroke: var(--chart-1); }
.ui-area-chart-line-secondary { stroke: var(--chart-2); }
.ui-area-chart-area { stroke: none; }
.ui-area-chart-area-primary { fill: color-mix(in srgb, var(--chart-1) 18%, transparent); }
.ui-area-chart-area-secondary { fill: color-mix(in srgb, var(--chart-2) 14%, transparent); }
.ui-area-chart-legend { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 8px; padding-left: 16px; color: var(--muted-foreground); font-size: 12px; }
.ui-area-chart-dot { width: 10px; height: 10px; border-radius: 999px; display: inline-block; margin-right: 6px; vertical-align: -1px; }
.ui-area-chart-dot-primary { background: var(--chart-1); }
.ui-area-chart-dot-secondary { background: var(--chart-2); }

.dashboard-chart { position: relative; height: 326px; padding: 18px 30px 24px; display: grid; grid-template-columns: repeat(7, minmax(44px, 1fr)); align-items: end; gap: 16px; }
.dashboard-chart::before { content: ""; position: absolute; z-index: 0; inset: 18px 30px 55px; background: repeating-linear-gradient(to top, transparent 0, transparent calc(25% - 1px), rgba(226,232,240,.7) 25%); pointer-events: none; }
.dashboard-chart-column { position: relative; z-index: 1; height: 100%; min-width: 0; display: grid; grid-template-rows: minmax(0, 1fr) 24px; justify-items: center; align-items: end; gap: 8px; }
.dashboard-chart-value { position: absolute; left: 50%; top: -24px; color: var(--muted); font-size: 12px; font-weight: 500; font-variant-numeric: tabular-nums; transform: translateX(-50%); }
.dashboard-chart-track { width: min(40px, 58%); height: calc(100% - 18px); display: flex; align-items: end; }
.dashboard-chart-bar { position: relative; width: 100%; min-height: 4px; border-radius: 5px 5px 2px 2px; background: linear-gradient(180deg, #3b82f6, var(--brand)); box-shadow: 0 1px 2px rgba(37,99,235,.20); }
.dashboard-chart-label { color: var(--muted); font-size: 12px; white-space: nowrap; }
.chart-level-0 { height: 4px; opacity: .18; }
.chart-level-1 { height: 10%; }
.chart-level-2 { height: 20%; }
.chart-level-3 { height: 30%; }
.chart-level-4 { height: 40%; }
.chart-level-5 { height: 50%; }
.chart-level-6 { height: 60%; }
.chart-level-7 { height: 70%; }
.chart-level-8 { height: 80%; }
.chart-level-9 { height: 90%; }
.chart-level-10 { height: 100%; }
.dashboard-activity-list { padding: 0 24px 24px; display: grid; gap: 32px; }
.dashboard-activity-item { min-width: 0; padding: 0; display: flex; align-items: center; gap: 16px; border-radius: 8px; color: inherit; text-decoration: none; }
.dashboard-activity-item:hover .activity-copy strong { color: var(--brand); }
.activity-icon { width: 36px; height: 36px; flex: 0 0 36px; display: grid; place-items: center; border-radius: 999px; color: var(--ink); background: var(--secondary); border: 1px solid var(--line); }
.activity-copy { min-width: 0; flex: 1; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; }
.activity-copy strong, .activity-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.activity-copy strong { color: var(--ink); font-size: 14px; font-weight: 500; line-height: 1.25; transition: color .15s ease; }
.activity-copy small { width: 100%; margin-top: 0; color: var(--muted-foreground); font-size: 14px; line-height: 1.25; }
.dashboard-activity-item > .badge { flex: 0 0 auto; margin-left: auto; }
.dashboard-activity-empty { min-height: 250px; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 12px; color: var(--muted); }
.dashboard-activity-empty strong { color: var(--ink); font-size: 14px; font-weight: 500; }
.dashboard-tab-content { margin-top: 4px; }
.dashboard-analytics-grid { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); align-items: stretch; }
.dashboard-analytics-grid > .card { min-width: 0; }
.dashboard-analytics-grid > .dashboard-analytics-card { display: flex; flex-direction: column; }
.analytics-card-head { margin-bottom: 24px; display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.analytics-card-head h2 { margin: 0; }
.bar-list { display: grid; gap: 18px; }
.bar-list-item, .trend-row { display: grid; gap: 7px; }
.bar-list-label { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--muted); font-size: 12px; }
.bar-list-label strong { color: var(--ink); font-weight: 600; font-variant-numeric: tabular-nums; }
.progress-track { height: 9px; overflow: hidden; border-radius: 999px; background: #f1f5f9; }
.progress-track > span { height: 100%; display: block; border-radius: inherit; background: var(--brand); }
.progress-level-0 { width: 0; }
.progress-level-1 { width: 10%; }
.progress-level-2 { width: 20%; }
.progress-level-3 { width: 30%; }
.progress-level-4 { width: 40%; }
.progress-level-5 { width: 50%; }
.progress-level-6 { width: 60%; }
.progress-level-7 { width: 70%; }
.progress-level-8 { width: 80%; }
.progress-level-9 { width: 90%; }
.progress-level-10 { width: 100%; }
.trend-row + .trend-row { margin-top: 18px; }
.trend-row .mini-bars { height: 40px; margin-top: 0; gap: 4px; }
.button-primary .ui-icon { stroke-width: 2; }
.link { font-weight: 500; text-underline-offset: 3px; }
.role-option:has(input:checked) { border-color: color-mix(in srgb, var(--brand) 35%, var(--border)); background: var(--brand-soft); box-shadow: 0 0 0 1px color-mix(in srgb, var(--brand) 12%, transparent); }
.role-option:has(input:focus-visible) { border-color: var(--brand); box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 20%, transparent); }

.shell.is-sidebar-collapsed .sidebar { flex: 0 0 64px; width: 64px; min-width: 64px; padding: 8px; overflow: visible; }
.shell.is-sidebar-collapsed .brand,
.shell.is-sidebar-collapsed .team-switcher-trigger { min-height: 48px; padding: 8px; justify-content: center; }
.shell.is-sidebar-collapsed .brand-logo,
.shell.is-sidebar-collapsed .team-switcher-logo { width: 32px; height: 32px; display: grid; place-items: center; overflow: hidden; }
.shell.is-sidebar-collapsed .team-switcher-logo img { width: 100%; height: 100%; max-width: 28px; max-height: 28px; object-fit: contain; }
.shell.is-sidebar-collapsed .team-switcher-logo--brand { max-width: 32px; flex: 0 0 32px; overflow: hidden; }
.shell.is-sidebar-collapsed .team-switcher-logo--brand img { width: auto; height: auto; max-width: 28px; max-height: 28px; filter: none; }
.shell.is-sidebar-collapsed .nav { padding-inline: 0; }
.shell.is-sidebar-collapsed .nav-label,
.shell.is-sidebar-collapsed .nav a > span:not(.nav-icon),
.shell.is-sidebar-collapsed .nav-group-summary > span:not(.nav-icon),
.shell.is-sidebar-collapsed .nav-count,
.shell.is-sidebar-collapsed .team-switcher-copy,
.shell.is-sidebar-collapsed .team-switcher-chevron { display: none; }
.shell.is-sidebar-collapsed .nav-label { height: 0; margin: 0; padding: 0; overflow: hidden; flex: 0 0 0; }
.shell.is-sidebar-collapsed .nav a,
.shell.is-sidebar-collapsed .nav-group-summary { width: 100%; min-width: 0; min-height: 36px; padding: 8px; justify-content: center; box-sizing: border-box; }
.shell.is-sidebar-collapsed .nav-group-items { display: none; }
.shell.is-sidebar-collapsed .nav-group-chevron { display: none; }
.shell.is-sidebar-collapsed .team-switcher-trigger { justify-content: center; padding-inline: 8px; }
.shell.is-sidebar-collapsed .nav-icon { width: 16px; height: 16px; flex: 0 0 16px; }
.shell.is-sidebar-collapsed .team-switcher { padding-inline: 0; }

/* Split login: left illustration + right form, matching the SEANGO mock. */
.login-page { min-height: 100vh; margin: 0; padding: 0; display: block; background: #fff; color: #0f172a; }
.login-shell { width: 100%; min-height: 100vh; display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(440px, .88fr); align-items: stretch; overflow: hidden; background: #fff; }
.login-preview { position: relative; min-height: 100vh; overflow: hidden; background: #e7f3fe; }
.login-preview-media { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 46%; user-select: none; pointer-events: none; }
.login-preview-video { z-index: 1; }
.login-story { position: relative; z-index: 2; height: 100%; min-height: 100vh; padding: 44px 64px 36px; display: flex; flex-direction: column; font-family: var(--sg-font); }
.login-story-brand { display: inline-flex; width: fit-content; margin-top: 14px; }
.login-story-brand img { display: block; height: 36px; width: auto; max-width: 240px; object-fit: contain; }
.login-story h2 { margin: 38px 0 0 -4.5px; width: fit-content; max-width: none; color: #050725; font-size: 54px; font-weight: 900; line-height: 1.05; letter-spacing: 0.02em; -webkit-text-stroke: 0.9px currentColor; }
.login-story h2 em { font-style: normal; font-weight: 900; color: #044efa; }
.login-story p { margin: 18px 0 0 -1px; width: fit-content; color: #6e7a93; font-size: 20px; font-weight: 500; line-height: 1.2; letter-spacing: 0.04em; }
.login-story-rule { display: block; width: 40px; height: 3px; margin-top: 22px; border-radius: 99px; background: #0464fc; }
.login-story-foot { margin-top: auto; color: #7b8ba0; }
.login-story-foot span { display: block; font-size: 13px; font-weight: 500; letter-spacing: 0.06em; }
.login-story-foot i { margin: 0 10px; font-style: normal; color: #b7c3d3; }
.login-story-foot small { display: block; margin-top: 6px; color: #9aabbe; font-size: 12px; font-weight: 500; letter-spacing: 0.01em; text-transform: none; }
.login-panel { position: relative; display: grid; place-items: center; padding: 72px 40px 40px; overflow: hidden; background: #f4f8fe; }
.login-panel-ornament { position: absolute; pointer-events: none; user-select: none; opacity: 0.8; background-repeat: no-repeat; background-size: 100% 100%; }
.login-panel-ornament-tr { top: 0; right: 0; width: 173px; height: 223px; background-image: url("data:image/png;base64,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"); }
.login-panel-ornament-bl { left: 0; bottom: 0; width: 257px; height: 191px; background-image: url("data:image/png;base64,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"); }
.login-panel-inner, .login-corner { z-index: 1; }
.login-corner { position: absolute; top: 28px; right: 40px; margin: 0; display: flex; flex-direction: column; align-items: flex-end; gap: 2px; color: #94a3b8; font-size: 12px; line-height: 1.45; text-align: right; }
.login-corner-mark { width: 2px; height: 16px; margin-bottom: 6px; border-radius: 99px; background: #2f6bff; }
.login-corner strong { color: #64748b; font-size: 12px; font-weight: 600; letter-spacing: 0.01em; }
.login-panel-inner { position: relative; width: min(400px, 100%); }
.login-logo { display: flex; justify-content: flex-start; margin-bottom: 28px; }
.login-logo img { display: block; width: auto; height: 36px; max-width: 240px; object-fit: contain; }
.login-glyph { display: block; width: 18px; height: 18px; }
.login-heading { display: grid; gap: 8px; margin-bottom: 22px; }
.login-heading h1 { margin: 0; color: #0f172a; font-size: 28px; font-weight: 900; letter-spacing: -.03em; -webkit-text-stroke: 0.4px currentColor; }
.login-heading .login-lead { margin: 0; color: #64748b; font-size: 14px; line-height: 1.5; text-align: left; }
.login-form { padding: 0; display: grid; gap: 14px; }
.login-mode-switch { display: flex; gap: 0; margin-bottom: 18px; padding: 4px; border-radius: 12px; background: #f3f5f8; }
.login-mode-link { flex: 1 1 0; min-height: 40px; display: inline-grid; place-items: center; border-radius: 8px; color: #64748b; font-size: 14px; font-weight: 600; text-decoration: none; }
.login-mode-link.is-active { color: #1d4ed8; background: #fff; box-shadow: 0 4px 12px rgba(15, 23, 42, .08); }
.login-input { position: relative; }
.login-input .input { min-height: 48px; padding: 12px 42px; border: 1px solid #e6eaf2; border-radius: 10px; background: #fff; box-shadow: none; color: #0f172a; }
.login-input .input::placeholder { color: #b0b7c3; }
.login-input .input:focus { border-color: #93c5fd; box-shadow: 0 0 0 4px rgba(37, 99, 235, .12); }
.login-input-icon { position: absolute; left: 14px; top: 50%; display: grid; place-items: center; width: 18px; height: 18px; color: #747a8d; transform: translateY(-50%); pointer-events: none; }
.login-input-action { position: absolute; right: 8px; top: 50%; display: grid; place-items: center; width: 32px; height: 32px; margin: 0; color: #94a3b8; border-radius: 8px; transform: translateY(-50%); pointer-events: none; }
.login-form-links { display: flex; justify-content: flex-end; margin-top: 8px; }
.login-form-links .link { color: var(--brand); font-size: 13px; font-weight: 600; text-decoration: none; }
.login-form .field-hint { margin: 0; }
.login-page .login-submit { width: 100%; min-height: 48px; margin-top: 6px; border: 0; border-radius: 10px; background: var(--brand); color: #fff; font-size: 16px; font-weight: 700; letter-spacing: .04em; }
.login-page .login-submit:hover { background: var(--brand-dark); }
.login-page .login-submit .ui-icon { width: 16px; height: 16px; stroke: #fff; }
.login-notice { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 16px 0 0; padding: 12px 14px; border: 1px solid #d7f5e6; border-radius: 10px; background: #f3fbf6; color: #148f58; font-size: 14px; font-weight: 600; }
.login-notice-icon { display: grid; place-items: center; width: 18px; height: 18px; background: none; }
.login-foot { margin: 18px 0 0; color: #94a3b8; font-size: 12px; line-height: 1.55; text-align: center; }
.login-preview-dark { display: none; }
.theme-dark .login-preview-light { display: none; }
.theme-dark .login-preview-dark { display: block; }

/* Error screens use the same typography and controls as shadcn-admin. */
.error-page { min-height: 100vh; margin: 0; background: #fff; }
.error-shell { min-height: 100vh; padding: 32px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; text-align: center; }
.error-code { margin: 0; color: var(--ink); font-size: clamp(88px, 12vw, 112px); line-height: 1; font-weight: 700; letter-spacing: -.055em; }
.error-title { margin: 4px 0 0; font-size: 16px; font-weight: 500; }
.error-description { max-width: 440px; margin: 0; color: var(--muted); font-size: 14px; line-height: 1.6; }
.error-actions { display: flex; gap: 16px; margin-top: 24px; }
.error-brand { position: absolute; top: 28px; left: 32px; }
.error-brand img { width: 166px; height: 26px; }

.theme-dark.login-page, .theme-dark .login-shell, .theme-dark .login-panel { background: #fff; }
.theme-dark.error-page { background: #0f172a; }
.theme-dark.login-page .login-heading h1, .theme-dark.login-page .field label { color: #0f172a; }
.theme-dark .error-code, .theme-dark .error-title { color: #f8fafc; }
.theme-dark.login-page .login-logo { width: auto; margin-inline: 0; padding: 0; border-radius: 0; background: transparent; }
.theme-dark .error-brand { padding: 8px 10px; border-radius: 8px; background: #fff; }
.theme-dark, .theme-dark .sidebar { background: var(--sidebar-bg); }
.theme-dark .nav-group-summary,
.theme-dark .nav-group-items a { color: #cbd5e1; }
.theme-dark .nav-group-items a.active,
.theme-dark .nav-group[open] > .nav-group-summary,
.theme-dark .nav-group.is-active > .nav-group-summary { color: #f8fafc; background: #172033; }
.theme-dark .team-switcher-menu { border-color: var(--line); background: #111c2f; }
.theme-dark .team-switcher-copy strong { color: #e2e8f0; }
.theme-dark .app-card { border-color: var(--line); background: #111c2f; }
.theme-dark .app-card-icon, .theme-dark .app-mark { color: #e2e8f0; border-color: var(--line); background: #0f172a; }
.theme-dark .app-card-title a { color: #f8fafc; }
.theme-dark .app-card-status.is-connected { color: #bfdbfe; border-color: #1d4ed8; background: #172554; }
.theme-dark .card, .theme-dark .data-card { border-color: var(--line); }
.theme-dark .row-actions > summary:hover, .theme-dark .row-actions[open] > summary { background: #172033; }
.theme-dark .badge-tone-success, .theme-dark .badge-ready, .theme-dark .badge-online, .theme-dark .badge-enabled, .theme-dark .badge-deal, .theme-dark .badge-maintaining, .theme-dark .badge-done { border-color: #166044; background: rgba(22,135,93,.16); }
.theme-dark .badge-tone-info, .theme-dark .badge-configured, .theme-dark .badge-developing, .theme-dark .badge-intention, .theme-dark .badge-testing, .theme-dark .badge-in-progress { border-color: #1d4ed8; background: rgba(37,99,235,.16); }
.theme-dark .badge-tone-warning, .theme-dark .badge-setup_required, .theme-dark .badge-attention, .theme-dark .badge-paused, .theme-dark .badge-lead, .theme-dark .badge-planning, .theme-dark .badge-todo, .theme-dark .badge-backlog { border-color: #9a4d0a; background: rgba(189,101,11,.16); }
.theme-dark .badge-tone-danger, .theme-dark .badge-disabled, .theme-dark .badge-invalid, .theme-dark .badge-lost, .theme-dark .badge-closed, .theme-dark .badge-canceled, .theme-dark .badge-failed { border-color: #8f242b; background: rgba(189,47,54,.16); }
.theme-dark .badge-tone-neutral, .theme-dark .badge-available { border-color: #475569; background: rgba(100,116,139,.14); }
.theme-dark .role-option:has(input:checked) { border-color: #2563eb; background: #172554; }
.theme-dark .ui-tabs, .theme-dark .progress-track { background: #0f172a; }
.theme-dark .ui-tab { color: #cbd5e1; }
.theme-dark .ui-tab.is-active { color: #f8fafc; border-color: #334155; background: #1e293b; }
.theme-dark .ui-skeleton, .theme-dark .ui-skeleton-block { background: linear-gradient(90deg, #1e293b 25%, #334155 50%, #1e293b 75%); background-size: 200% 100%; }
.theme-dark .ui-tab:hover { background: #172033; }
.theme-dark .ui-alert, .theme-dark .avatar-upload { border-color: #334155; background: #0f172a; }
.theme-dark .ui-alert-destructive { border-color: color-mix(in srgb, var(--red) 42%, #334155); background: color-mix(in srgb, var(--red) 14%, #0f172a); }
.theme-dark .ui-alert-destructive > span,
.theme-dark .ui-alert-destructive .ui-alert-title { color: #fca5a5; }
.theme-dark .ui-alert-destructive .ui-alert-description { color: #fecaca; }
.theme-dark .bulk-delete-modal .bulk-confirm-list-dialog { border-color: #334155; background: color-mix(in srgb, var(--secondary) 36%, #0f172a); color: #cbd5e1; }
.theme-dark .activity-icon { color: #e2e8f0; background: #1e293b; }
.theme-dark .ui-area-chart-grid { stroke: rgba(100, 116, 139, .35); }
.theme-dark .ui-area-chart-area-primary { fill: color-mix(in srgb, var(--chart-1) 28%, transparent); }
.theme-dark .ui-area-chart-area-secondary { fill: color-mix(in srgb, var(--chart-2) 20%, transparent); }
.theme-dark .ui-area-chart-line-secondary { stroke: var(--chart-2); }
.theme-dark .public-docs-header { background: rgba(15, 23, 42, .92); }
.theme-dark .dashboard-chart::before { background: repeating-linear-gradient(to top, transparent 0, transparent calc(25% - 1px), rgba(51,65,85,.65) 25%); }
.theme-dark .workspace::before { display: none; }
.theme-dark .file-input::file-selector-button { color: #e2e8f0; border-color: #334155; background: #111c2f; }
.theme-dark .danger-zone { border-color: #7f1d1d; background: #111c2f; }
.theme-dark .danger-zone[open] > summary { border-color: #7f1d1d; }

@media (max-width: 820px) {
  .login-shell { display: block; }
  .login-panel { min-height: 100vh; padding: 28px 22px; }
  .login-preview { display: none; }
  .login-corner { display: none; }
  .content { padding: 24px 16px 44px; }
  .search-field { flex: 1 1 100%; }
  .list-page-toolbar-row .toolbar form,
  .list-page-toolbar-row .toolbar-inline form { flex-wrap: wrap; }
  .shell { flex-direction: column; gap: 0; padding: 0; }
  .sidebar { position: static; width: 100%; min-width: 0; flex: 0 0 auto; height: auto; max-height: none; top: 0; border-radius: 0; }
  .data-card .table-wrap, .users-list-card .table-wrap, .list-table-section .table-wrap { overflow-x: auto; }
  .toolbar .input, .toolbar-inline form .input { width: 100%; }
  .workspace,
  .workspace-inset { margin: 0; min-height: 100vh; border-radius: 0; box-shadow: none; }
  .workspace::before { display: none; }
  .topbar { border-radius: 0; }
  .app-controls { align-items: stretch; flex-direction: column; }
  .app-controls-main { display: grid; grid-template-columns: 1fr 1fr auto; }
  .app-controls .app-search { width: 100%; grid-column: 1 / -1; }
  .app-controls .app-type { width: 100%; }
  .app-sort-control .select { width: 100%; }
  .app-sort-control { width: 100%; }
  .pagination { align-items: flex-start; flex-wrap: wrap; gap: 12px; }
  .pagination-state { order: 3; width: 100%; }
}

.list-select-col { width: 40px; min-width: 40px; padding: 8px !important; text-align: center; vertical-align: middle; }
.list-select-col input[type="checkbox"] { appearance: none; -webkit-appearance: none; width: 16px; height: 16px; margin: 0; border: 1px solid var(--input); border-radius: 999px; background: var(--background); cursor: pointer; vertical-align: middle; box-shadow: var(--shadow-xs); transition: border-color .15s ease, background .15s ease, box-shadow .15s ease; }
.list-select-col input[type="checkbox"]:hover { border-color: color-mix(in srgb, var(--primary) 45%, var(--input)); }
.list-select-col input[type="checkbox"]:checked { border-color: var(--primary); background: var(--primary); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 8.2 6.6 10.8 12 5.4' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: center; background-size: 12px 12px; box-shadow: 0 0 0 1px color-mix(in srgb, var(--primary) 18%, transparent); }
.list-select-all { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; vertical-align: middle; }
.list-select-all:hover .list-select-all-box { border-color: var(--primary); }
.list-select-all-box { width: 16px; height: 16px; border: 1px solid var(--input); border-radius: 999px; background: var(--background); box-shadow: var(--shadow-xs); box-sizing: border-box; transition: border-color .15s ease, background .15s ease; }
.list-select-all-box.is-checked { border-color: var(--primary); background: var(--primary); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 8.2 6.6 10.8 12 5.4' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: center; background-size: 12px 12px; box-shadow: 0 0 0 1px color-mix(in srgb, var(--primary) 18%, transparent); }

.config-drawer { position: relative; }
.config-drawer-panel { position: absolute; z-index: 50; top: 44px; right: 0; width: min(340px, calc(100vw - 24px)); padding: 0; border: 1px solid var(--border); border-radius: 14px; background: var(--popover); box-shadow: 0 16px 40px rgba(15,23,42,.12); overflow: hidden; }
.theme-settings-panel { display: grid; gap: 14px; padding: 14px 16px 16px; }
.theme-settings-panel-compact { gap: 10px; padding: 12px 14px 14px; }
.theme-settings-head strong { display: block; font-size: 14px; font-weight: 600; letter-spacing: -.01em; }
.theme-settings-head p { margin: 4px 0 0; font-size: 12px; line-height: 1.45; }
.theme-settings-section { display: grid; gap: 8px; padding-top: 2px; }
.theme-settings-section + .theme-settings-section { padding-top: 8px; border-top: 1px solid var(--line); }
.theme-settings-section-head { color: var(--muted-foreground); font-size: 12px; font-weight: 600; }
.theme-settings-segment { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; padding: 3px; border: 1px solid var(--border); border-radius: 8px; background: var(--secondary); }
.theme-settings-segment-wide { max-width: 280px; }
.theme-settings-segment-item { min-height: 32px; padding: 0 10px; display: inline-flex; align-items: center; justify-content: center; border-radius: 6px; color: var(--foreground); font-size: 13px; font-weight: 500; transition: background .15s ease, box-shadow .15s ease; }
.theme-settings-segment-item:hover { background: color-mix(in srgb, var(--background) 70%, transparent); }
.theme-settings-segment-item.is-active { color: var(--foreground); background: var(--background); box-shadow: var(--shadow-xs); }
.theme-settings-dots { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.theme-settings-dot { width: 24px; height: 24px; display: inline-flex; border-radius: 999px; border: 2px solid transparent; box-shadow: inset 0 0 0 1px rgba(15,23,42,.08); transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease; }
.theme-settings-dot:hover { transform: scale(1.05); }
.theme-settings-dot.is-active { border-color: var(--brand); box-shadow: 0 0 0 2px color-mix(in srgb, var(--brand) 25%, transparent); }
.theme-settings-dots-labeled { display: grid; grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); gap: 8px; }
.theme-settings-dot-item { display: grid; gap: 6px; justify-items: center; padding: 8px 4px; border: 1px solid var(--border); border-radius: 10px; background: var(--background); transition: border-color .15s ease, background .15s ease; }
.theme-settings-dot-item:hover { background: var(--accent); }
.theme-settings-dot-item.is-active { border-color: var(--brand); background: color-mix(in srgb, var(--brand-soft) 55%, var(--background)); }
.theme-settings-dot-item .theme-settings-dot { width: 20px; height: 20px; }
.theme-settings-color-blue .theme-settings-dot,
a.theme-settings-dot.theme-settings-color-blue { background: #2563eb; }
.theme-settings-color-slate .theme-settings-dot,
a.theme-settings-dot.theme-settings-color-slate { background: #475569; }
.theme-settings-color-emerald .theme-settings-dot,
a.theme-settings-dot.theme-settings-color-emerald { background: #059669; }
.theme-settings-color-violet .theme-settings-dot,
a.theme-settings-dot.theme-settings-color-violet { background: #7c3aed; }
.theme-settings-color-orange .theme-settings-dot,
a.theme-settings-dot.theme-settings-color-orange { background: #ea580c; }
.theme-settings-color-black .theme-settings-dot,
a.theme-settings-dot.theme-settings-color-black { background: #18181b; }
.theme-settings-dots-compact { gap: 10px; }
.theme-settings-label { font-size: 11px; font-weight: 500; color: var(--muted-foreground); text-align: center; }
.theme-settings-reset { width: fit-content; max-width: none; }
.theme-settings-reset-link { align-self: flex-start; color: var(--muted-foreground); font-size: 12px; font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }
.theme-settings-reset-link:hover { color: var(--foreground); }
.content .lead { font-size: 14px; font-weight: 500; line-height: 1.6; color: var(--muted-foreground); }
.card-head p, .card-description, .metric-hint { font-weight: 500; }
.theme-dark .config-drawer-panel { border-color: var(--line); background: #111c2f; }
.header-icon-button.is-active { border-color: color-mix(in srgb, var(--brand) 28%, var(--border)); color: var(--brand-dark); background: var(--brand-soft); }
.dashboard-chart-full .dashboard-chart-card { min-height: 380px; }
.dashboard-chart-full .dashboard-area-chart { min-height: 340px; padding-inline: 8px 16px; }
.grid.grid-4 { gap: 16px; }
.dashboard-tab-content.grid-4,
.dashboard-analytics-stats { gap: 16px; }
.dashboard-renewal-alerts { gap: 12px; }
.contract-scan-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; padding: 0 16px 16px; }
.contract-scan-item { display: grid; gap: 10px; }
.contract-scan-preview { display: flex; align-items: center; justify-content: center; min-height: 140px; border: 1px solid var(--border); border-radius: 8px; overflow: hidden; background: var(--secondary); text-decoration: none; color: var(--muted-foreground); }
.contract-scan-preview img { width: 100%; height: 140px; object-fit: cover; }
.contract-scan-preview--doc { flex-direction: column; gap: 8px; font-size: 13px; font-weight: 600; }
.contract-scan-meta .muted { margin: 4px 0 0; font-size: 12px; }
.contract-scan-actions { display: flex; justify-content: flex-end; }
.contract-scan-upload { margin: 0 16px 16px; }
.contract-scan-grid--embedded { padding: 0; margin-bottom: 8px; }
.contract-scans-body { padding: 20px 20px 28px; }
.contract-scans .card-head + .card-body { padding-top: 4px; }
.card-head-actions { display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.contract-renewal-dialog { width: min(560px, calc(100vw - 32px)); border: 0; padding: 0; }
.contract-renewal-dialog .ui-dialog-body { max-height: min(70vh, 640px); overflow: auto; }
.contract-attachment-upload-dialog { width: min(520px, calc(100vw - 32px)); border: 0; padding: 0; }
.contract-attachment-upload-bar--dialog { margin-top: 4px; }
.contract-index-attachments .link { white-space: nowrap; }
.contract-attachment-list-wrap { margin: 0; }
.contract-scans-body .contract-attachment-list-wrap,
.contract-renewals-body .contract-attachment-list-wrap {
  border: 1px solid var(--line);
  border-radius: 10px;
  overflow: hidden;
}
.contract-attachment-list-wrap .list-table { margin: 0; }
.contract-attachment-panel { display: grid; gap: 0; min-width: 0; }
.contract-attachment-panel--embedded { gap: 0; }
.contract-attachment-empty { margin: 0 0 8px; font-size: 13px; line-height: 1.5; }
.contract-attachment-list { table-layout: fixed; width: 100%; }
.contract-attachment-list th:nth-child(1),
.contract-attachment-list td:nth-child(1) { width: 42%; }
.contract-attachment-list th:nth-child(2),
.contract-attachment-list td:nth-child(2) { width: 14%; }
.contract-attachment-list th:nth-child(3),
.contract-attachment-list td:nth-child(3) { width: 28%; }
.contract-attachment-list th:nth-child(4),
.contract-attachment-list td:nth-child(4) { width: 16%; }
.contract-attachment-list .contract-attachment-filename {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--foreground);
  font-size: 13px;
  font-weight: 500;
}
.contract-attachment-time { font-size: 12px; color: var(--muted-foreground); }
.contract-attachment-actions { display: inline-flex; align-items: center; gap: 8px; justify-content: flex-end; width: 100%; }
.contract-attachment-actions .link,
.contract-attachment-actions .link-as-button { font-size: 13px; font-weight: 500; }
.contract-attachment-file-input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.contract-attachment-upload { position: relative; min-width: 0; }
.contract-attachment-upload-bar { display: flex; align-items: center; gap: 8px; flex-wrap: nowrap; min-width: 0; }
.contract-attachment-upload-hint { flex: 1 1 auto; min-width: 0; font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.contract-attachment-upload-loading { display: none; align-items: center; gap: 8px; margin-top: 8px; font-size: 13px; color: var(--muted-foreground); }
.contract-attachment-upload.is-uploading .contract-attachment-upload-bar { opacity: .45; pointer-events: none; }
.contract-attachment-upload.is-uploading .contract-attachment-upload-loading { display: inline-flex; }
.contract-attachment-upload-queue { margin: 8px 0 0; }
.ui-spinner {
  width: 14px;
  height: 14px;
  border: 2px solid var(--border);
  border-top-color: var(--primary);
  border-radius: 50%;
  animation: contract-ui-spin .7s linear infinite;
}
@keyframes contract-ui-spin { to { transform: rotate(360deg); } }
.contract-form.is-uploading { opacity: .72; pointer-events: none; }
.contract-form.is-uploading .form-actions--sticky { opacity: 1; }
.contract-renewals-section { overflow: hidden; }
.contract-renewals-section .card-head { padding-bottom: 4px; }
.contract-renewals-section .card-body { padding-top: 8px; padding-bottom: 28px; }
.contract-renewals-body { padding: 20px 20px 28px; }
.contract-renewals-section .card-head + .contract-renewals-body { padding-top: 4px; }
.contract-renewals-section .contract-renewals-summary-wrap { margin: 0; }
.contract-renewal-summary-table { table-layout: fixed; width: 100%; }
.contract-renewal-summary-table th:nth-child(1),
.contract-renewal-summary-table td:nth-child(1) { width: 14%; }
.contract-renewal-summary-table th:nth-child(2),
.contract-renewal-summary-table td:nth-child(2) { width: 14%; }
.contract-renewal-summary-table th:nth-child(3),
.contract-renewal-summary-table td:nth-child(3) { width: 52%; }
.contract-renewal-summary-table th:nth-child(4),
.contract-renewal-summary-table td:nth-child(4) { width: 20%; }
.contract-renewal-files-table { table-layout: fixed; width: 100%; }
.contract-renewal-file-cell .link { font-size: 13px; font-weight: 500; }
.contract-renewal-table-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 6px 12px;
  max-width: 100%;
}
.contract-renewal-table-actions .link,
.contract-renewal-table-actions .link-as-button {
  font-size: 13px;
  font-weight: 500;
  white-space: nowrap;
}
.contract-renewal-remark-text { margin: 0; white-space: pre-wrap; word-break: break-word; }
.contract-renewal-remark-empty { margin: 0; }
.contract-modal-overlay { display: block; }
.contract-modal-backdrop { display: block; position: fixed; inset: 0; z-index: 240; background: rgba(15, 23, 42, .45); cursor: default; }
.contract-modal-panel {
  position: fixed;
  z-index: 241;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: min(560px, calc(100vw - 32px));
  max-height: min(88vh, 760px);
  display: flex;
  flex-direction: column;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--background);
  box-shadow: var(--shadow-lg);
  overflow: hidden;
}
.contract-modal-panel-upload { width: min(520px, calc(100vw - 32px)); }
.contract-modal-panel-confirm { width: min(420px, calc(100vw - 32px)); }
.contract-delete-renewal-summary { margin: 0; }
.contract-modal-header {
  position: relative;
  display: block;
  padding: 24px 56px 12px 24px;
  border-bottom: 1px solid var(--line);
}
.contract-modal-header-copy { min-width: 0; }
.contract-modal-title { margin: 0; font-size: 18px; font-weight: 600; letter-spacing: -.015em; }
.contract-modal-description { margin: 6px 0 0; font-size: 14px; line-height: 1.5; color: var(--muted-foreground); }
.contract-modal-close {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 32px;
  height: 32px;
  display: inline-grid;
  place-items: center;
  border: 0;
  border-radius: var(--radius-sm);
  color: var(--muted-foreground);
  background: transparent;
  text-decoration: none;
  font-size: 20px;
  line-height: 1;
}
.contract-modal-close:hover { color: var(--foreground); background: var(--accent); }
.contract-modal-body { padding: 24px; overflow: auto; }
.contract-modal-body .form-grid { gap: 16px; }
.contract-modal-upload-picker { display: grid; gap: 12px; }
.contract-modal-upload-picker .file-input { width: 100%; max-width: 100%; }
.contract-modal-upload-picker .field-hint { margin: 0; }
.contract-modal-footer {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 0 24px 24px;
  border-top: 0;
}
.contract-modal-panel .contract-modal-body + .contract-modal-footer {
  padding-top: 0;
}
.contract-attachment-actions .link-as-button {
  display: inline;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  cursor: pointer;
}
.contract-attachment-inline { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.contract-attachment-inline .link { font-size: 13px; }
.contract-form-attachments { margin-top: -4px; }
.contract-form-attachments .table-wrap { border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.contract-attachments-manage-hint { margin: 12px 0 0; }
.contract-pending-files { margin: 8px 0 0; padding: 0; list-style: none; display: grid; gap: 6px; font-size: 13px; }
.contract-pending-file { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 6px 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--secondary); }
.contract-index-attachments { min-width: 56px; vertical-align: middle; }
.contract-form .form-section-title { margin-top: 12px; }
.contract-form .form-section-title + .field,
.contract-form .form-section-title + .contract-form-attachments { margin-top: 4px; }
.contract-form .form-actions--sticky {
  position: sticky;
  bottom: 0;
  z-index: 4;
  margin-top: 16px;
  padding: 16px 0 4px;
  background: color-mix(in srgb, var(--card) 92%, transparent);
  backdrop-filter: blur(6px);
  border-top: 1px solid var(--line);
  box-shadow: 0 -8px 24px color-mix(in srgb, var(--foreground) 6%, transparent);
}
@media (min-width: 1100px) {
  .dashboard-analytics-stats { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
.dashboard-tab-content { gap: 16px; margin-bottom: 16px; }
.dashboard-tab-content .metric.metric-link { gap: 32px; }
.dashboard-tab-content .metric-value { font-size: 38px; line-height: 1.1; font-weight: 900; }
.dashboard-tab-content .metric.metric-link > .metric-hint { display: block; margin-top: 4px; }
.dashboard-page-tabs.ui-tabs { background: var(--secondary); border: 1px solid var(--border); border-radius: 8px; }
.dashboard-page-tabs .ui-tab { font-size: 12px; min-height: 28px; padding: 4px 10px; }
.dashboard-page-tabs .ui-tab.is-active { font-weight: 600; }

/* ---- Shadcn deep polish (chart / table / topbar / inner pages) ---- */

/* Team switcher 与 nav 链接同宽；侧栏左右留白 12px */
.sidebar > .team-switcher,
.sidebar > .nav { padding-inline: 12px; }

.page-head-stack,
.page-head-detail:not(.content-page-head--split) { display: grid; gap: 8px; margin-bottom: 24px; padding-bottom: 0; border-bottom: 0; align-items: stretch; }
.content-page-head.content-page-head--split.page-head-detail { display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; gap: 12px 16px; margin-bottom: 24px; }
.page-head-top { display: grid; gap: 6px; min-width: 0; }
.page-head-detail .page-head-top { width: 100%; }
.page-head-row { display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; gap: 16px; min-width: 0; width: 100%; }
.page-head-row h1 { flex: 1 1 auto; min-width: 0; }
.page-head-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; flex: 0 0 auto; margin-left: auto; }
.page-head-actions .ui-popover-panel { display: grid; gap: 2px; min-width: 10rem; }
.page-head-actions .ui-popover-panel a { display: block; padding: 6px 8px; border-radius: 4px; }
.page-head-actions .ui-popover-panel a:hover { background: var(--sg-fill-hover, #f2f3f5); }
.page-head-lead { margin: 0; max-width: none; font-size: 14px; line-height: 1.5; }
.page-head-back { flex-shrink: 0; white-space: nowrap; }

.card.metric:not(.metric-link) { display: flex; flex-direction: column; gap: 0; min-height: auto; padding: 24px; border-radius: 12px; box-shadow: var(--shadow-sm); }
.card.metric:not(.metric-link) > .metric-label { margin: 0 0 24px; padding: 0; color: var(--foreground); font-size: 14px; font-weight: 500; line-height: 1; }
.card.metric:not(.metric-link) > .metric-value,
.card.metric:not(.metric-link) > .metric-slot { margin: 0 0 6px; padding: 0; font-size: 30px; line-height: 1.1; font-weight: 700; letter-spacing: -.03em; }
.card.metric:not(.metric-link) > .metric-slot { min-height: 32px; display: flex; align-items: center; }
.card.metric:not(.metric-link) > .metric-hint { display: block; margin: 0; padding: 0; color: var(--muted-foreground); font-size: 12px; font-weight: 500; line-height: 1.4; }
.detail-metrics { margin-bottom: 16px; }

.dashboard-chart-card { border: 1px solid var(--border); border-radius: 12px; box-shadow: var(--shadow-sm); overflow: hidden; min-height: auto; }
.dashboard-chart-card .card-head { padding: 24px 24px 0; border-bottom: 0; align-items: flex-start; }
.dashboard-chart-card .card-head h2 { margin: 0; font-size: 16px; font-weight: 600; letter-spacing: -.01em; }
.dashboard-chart-card .card-head p { margin-top: 6px; color: var(--muted-foreground); font-size: 14px; line-height: 1.5; }
.dashboard-chart-card .ui-area-chart { padding: 8px 12px 20px; min-height: 300px; }
.dashboard-chart-full .dashboard-area-chart { min-height: 300px; padding-inline: 8px 12px; }
.ui-area-chart-grid { stroke: var(--border); stroke-width: 1; }
.ui-area-chart-y-label,
.ui-area-chart-x-label { fill: var(--muted-foreground); font-size: 12px; }
.ui-area-chart-legend { padding-left: 24px; padding-bottom: 4px; gap: 20px; }

.users-list-card,
.data-card { overflow: visible; padding: 0; border: 0; border-radius: 8px; background: transparent; box-shadow: none; }
.data-card .list-bulk-form { display: flex; flex-direction: column; margin: 0; padding: 0; gap: 0; }
.data-card .list-bulk-form .table-wrap,
.list-table-section .table-wrap { overflow-x: auto; margin: 0; border: 1px solid var(--border); border-radius: 6px; background: var(--card); }
.data-card .list-table thead tr { border-bottom: 1px solid var(--border); }
.data-card .list-table tbody tr { border-bottom: 1px solid var(--border); }
.data-card .list-table tbody tr:last-child { border-bottom: 0; }
.data-card .list-table tbody tr:has(input[name="ids[]"]:checked),
.data-card .list-table tbody tr.is-row-selected { background: color-mix(in srgb, var(--brand-soft) 72%, var(--card)); }
.list-table-section .list-table tbody tr:has(input[name="ids[]"]:checked) { background: color-mix(in srgb, var(--brand-soft) 72%, var(--card)); }
.data-card .list-table thead th { height: 40px; padding: 0 16px; color: var(--foreground); background: var(--card); font-size: 12px; font-weight: 600; }
.data-card .list-table tbody td { padding: 12px 16px; font-size: 13px; font-weight: 400; color: var(--muted-foreground); }
.data-card .list-table .primary-cell > a,
.data-card .list-table .primary-cell > strong { font-size: 13px; font-weight: 500; color: var(--foreground); }
.data-card td.text-right { overflow: visible; position: relative; }
.data-card .pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 16px;
  margin: 16px;
  padding: 12px 16px;
  border: 1px solid var(--border);
  border-radius: 6px;
}
.data-card .pagination .pages { margin-left: auto; flex-wrap: wrap; }
.data-card .pagination-total,
.data-card .pagination-state { flex: 0 0 auto; white-space: nowrap; }
.data-card > .table-wrap { margin: 0; border: 1px solid var(--border); border-radius: 6px; overflow-x: auto; max-width: 100%; }
.list-page-stack > .data-card,
.list-page-stack > .list-table-section { min-width: 0; max-width: 100%; }
.data-card .list-table td.text-right,
.list-table-section .list-table td.text-right { overflow: visible; position: relative; }

.row-actions { position: relative; z-index: 2; }
.row-actions > summary { width: 32px; height: 32px; min-height: 32px; padding: 0; border: 0; border-radius: 6px; color: var(--foreground); background: transparent; box-shadow: none; }
.row-actions > summary:hover,
.row-actions[open] > summary { color: var(--foreground); background: var(--accent); }
.row-actions-panel { z-index: 80; top: calc(100% + 4px); right: 0; width: auto; min-width: 168px; padding: 4px; border: 1px solid var(--border); border-radius: 8px; background: var(--popover); box-shadow: var(--shadow-lg); }
.row-actions-panel a,
.row-actions-panel button { padding: 8px 10px; border-radius: 6px; color: var(--foreground); font-size: 14px; font-weight: 500; line-height: 1.2; white-space: nowrap; }
.row-actions-panel a:hover,
.row-actions-panel button:hover { color: var(--foreground); background: var(--accent); }
.row-actions-panel .ui-icon { width: 16px; height: 16px; color: var(--muted-foreground); }
.list-table tbody tr:nth-last-child(-n+2) .row-actions-panel { top: auto; bottom: calc(100% + 4px); }

.topbar-actions .header-icon-button { width: 36px; height: 36px; border: 0; border-radius: 999px; color: var(--foreground); background: transparent; box-shadow: none; }
.topbar-actions .header-icon-button:hover { color: var(--foreground); background: var(--accent); }
.topbar-actions .header-icon-button.is-active { color: var(--brand-dark); background: var(--brand-soft); }
.config-drawer > summary.header-icon-button { border-radius: 999px; }
.profile-menu-top > summary { display: inline-flex; align-items: center; padding: 2px; border-radius: 999px; cursor: pointer; }
.profile-menu-top > summary:hover { background: var(--accent); }
.profile-menu-top .avatar { width: 32px; height: 32px; flex-basis: 32px; border-radius: 999px; }

.docs-hero-banner { margin-bottom: 20px; padding: 28px 32px; border-radius: 16px; color: #fff; background: linear-gradient(135deg, #1e3a8a 0%, #2563eb 55%, #3b82f6 100%); box-shadow: 0 18px 40px rgba(37,99,235,.18); }
.docs-hero-eyebrow { margin: 0 0 8px; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; opacity: .82; }
.docs-hero-copy h1 { margin: 0 0 8px; font-size: 32px; letter-spacing: -.03em; }
.docs-hero-copy > p { margin: 0 0 16px; opacity: .92; }
.docs-hero-meta { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; font-size: 14px; line-height: 1.6; }
.docs-hero-meta code { padding: 2px 6px; border-radius: 6px; background: rgba(255,255,255,.14); }
.docs-tab-bar { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.docs-tab { min-height: 36px; padding: 8px 14px; border: 1px solid var(--line); border-radius: 999px; color: var(--ink); background: #fff; font-size: 14px; font-weight: 500; }
.docs-tab.is-active { border-color: #bfdbfe; color: var(--brand-dark); background: var(--brand-soft); }
.docs-handbook-layout { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 20px; align-items: start; }
.docs-handbook-nav { position: sticky; top: 24px; padding: 14px; border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: var(--shadow-xs); }
.docs-nav-label { margin: 0 0 10px; padding: 0 8px; color: var(--muted); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.docs-handbook-panel { overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: #fff; box-shadow: var(--shadow-sm); }
.docs-part-banner { padding: 24px 28px; color: #fff; background: linear-gradient(135deg, #1d4ed8, #2563eb); }
.docs-part-banner-dark { background: linear-gradient(135deg, #0f172a, #1e293b); }
.docs-part-banner h2 { margin: 8px 0 6px; font-size: 24px; letter-spacing: -.02em; }
.docs-part-banner p { margin: 0; opacity: .88; line-height: 1.6; }
.docs-part-tag { display: inline-block; padding: 4px 10px; border-radius: 999px; background: rgba(255,255,255,.14); font-size: 11px; font-weight: 700; letter-spacing: .08em; }
.docs-section-block { padding: 22px 28px 28px; }
.docs-section-title { margin: 0 0 14px; padding-left: 12px; border-left: 4px solid var(--brand); font-size: 18px; font-weight: 600; }
.public-docs-body { background: linear-gradient(180deg, #eef2ff 0%, #f8fafc 180px, #f8fafc 100%); }
.public-docs-main { width: min(1180px, 100%); margin: 0 auto; padding: 28px 24px 72px; }
.theme-dark .list-select-all-box { background: #0f172a; border-color: #475569; }
.theme-dark .docs-handbook-nav, .theme-dark .docs-handbook-panel { background: #111c2f; border-color: #334155; }
.theme-dark .docs-tab { background: #111c2f; border-color: #334155; color: #e2e8f0; }

@media (max-width: 1180px) {
  .team-switcher-menu { top: calc(100% + 8px); }
}

@media (max-width: 1050px) and (min-width: 601px) {
  .app-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .member-form { grid-template-columns: 1fr; }
  .member-form .field-full, .member-form .form-actions { grid-column: auto; }
  .dashboard-detail-grid { grid-template-columns: 1fr; }
  .dashboard-overview-grid { grid-template-columns: 1fr; }
  .dashboard-analytics-grid { grid-template-columns: 1fr; }
  .docs-handbook-layout { grid-template-columns: 1fr; }
  .docs-handbook-nav { position: static; }
  .api-docs-layout { grid-template-columns: 1fr; }
  .dashboard-reports-grid { grid-template-columns: 1fr; }
  .dashboard-overview-secondary { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
  .content { padding-inline: 16px; }
  .app-controls-main { grid-template-columns: 1fr auto; }
  .app-grid { grid-template-columns: 1fr; }
  .form-card { padding: 20px; }
  .dashboard-detail-grid { grid-template-columns: 1fr; }
  .dashboard-overview-grid { grid-template-columns: 1fr; }
  .dashboard-analytics-grid { grid-template-columns: 1fr; }
  .api-docs-layout { grid-template-columns: 1fr; }
  .dashboard-reports-grid { grid-template-columns: 1fr; }
  .dashboard-overview-secondary { grid-template-columns: 1fr; }
  .dashboard-chart { padding-inline: 12px; gap: 8px; }
  .form-card .avatar-upload { align-items: flex-start; flex-direction: column; }
  .settings-form .settings-avatar-upload { grid-template-columns: 1fr; justify-items: start; gap: 12px; }
  .danger-zone-panel { align-items: flex-start; flex-direction: column; }
  .pagination-total { display: none; }
  .pagination .pages { width: 100%; overflow-x: auto; }
  .list-page-header-inline { flex-wrap: wrap; }
}

/* SidebarInset — shadcn: m-2 ms-0 rounded-xl shadow-sm; collapsed → ms-2 */
.shell { display: flex; min-height: 100vh; padding: 0; gap: 0; background: var(--sidebar-bg); align-items: stretch; }
.shell > .sidebar { flex: 0 0 256px; width: 256px; min-width: 256px; padding: 8px; border-radius: 0; box-shadow: none; background: var(--sidebar-bg); box-sizing: border-box; position: relative; align-self: stretch; }
.shell > .workspace,
.shell > .workspace-inset { flex: 1 1 auto; min-width: 0; margin: 8px 8px 8px var(--sidebar-inset-gap, 0); min-height: calc(100vh - 16px); overflow: visible; border-radius: 12px; box-shadow: var(--shadow-inset-panel); background: var(--background); }
.shell > .workspace-inset > .topbar { border-bottom: 0; box-shadow: none; background: var(--background); }
.shell > .workspace-inset > .topbar .topbar-trigger { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; padding: 0; border: 1px solid var(--border); border-radius: var(--radius-sm); color: var(--foreground); background: var(--background); box-shadow: var(--shadow-xs); cursor: pointer; text-decoration: none; transition: background .15s ease, color .15s ease, border-color .15s ease; }
.shell > .workspace-inset > .topbar .topbar-trigger:hover { color: var(--foreground); border-color: var(--border); background: var(--accent); }
.shell > .workspace-inset > .topbar .topbar-trigger .ui-icon { width: 16px; height: 16px; }
.shell > .workspace-inset > .content { max-width: 80rem; padding: 24px 16px 32px; }
.shell.is-sidebar-collapsed > .sidebar { flex: 0 0 64px; width: 64px; min-width: 64px; padding-inline: 8px; }
.shell.is-sidebar-collapsed > .workspace,
.shell.is-sidebar-collapsed > .workspace-inset { margin: 8px; }

/* Sheet drawer（shadcn Sheet） */
.ui-sheet-drawer { position: relative; display: inline-flex; vertical-align: middle; max-width: 100%; }
.ui-sheet-drawer > summary { list-style: none; cursor: pointer; }
.ui-sheet-drawer > summary::-webkit-details-marker { display: none; }
.ui-sheet-drawer > summary.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; padding: 0; margin: -1px; }
.ui-sheet-overlay { display: none; position: fixed; inset: 0; z-index: 220; background: rgba(15, 23, 42, .45); text-decoration: none; }
.ui-sheet-panel { position: fixed; z-index: 221; top: 0; right: 0; width: min(420px, 100vw); height: 100vh; max-height: 100dvh; min-height: 0; display: flex; flex-direction: column; overflow: hidden; border-left: 1px solid var(--border); background: var(--background); box-shadow: var(--shadow-lg); transform: translateX(100%); transition: transform .18s ease; }
.ui-sheet-panel.ui-sheet-panel-wide { width: min(520px, 100vw); }
.ui-sheet-panel.ui-sheet-panel-debug { width: min(600px, 100vw); }
.ui-sheet-drawer[open] .ui-sheet-overlay { display: block; }
.ui-sheet-drawer[open] .ui-sheet-panel { transform: translateX(0); }
.ui-sheet-header { flex-shrink: 0; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 20px 20px 12px; border-bottom: 1px solid var(--line); }
.ui-sheet-header-title-row { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.ui-sheet-header-title-row strong { font-size: 16px; font-weight: 600; line-height: 1.35; }
.ui-sheet-header-title-row .badge { flex-shrink: 0; }
.ui-sheet-header-status-group { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.ui-sheet-header-status-form { margin: 0; display: inline-flex; max-width: 100%; }
.debug-status-select.badge {
    appearance: none;
    -webkit-appearance: none;
    padding-right: 22px;
    cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%2364748b' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 6px center;
    background-size: 12px 12px;
}
.debug-status-select.badge:focus-visible { outline: 2px solid color-mix(in srgb, var(--primary) 45%, transparent); outline-offset: 2px; }
.ui-sheet-header-end { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
.ui-sheet-header-actions { display: flex; align-items: center; gap: 8px; }
.ui-sheet-header-actions .ui-sheet-header-form { margin: 0; }
.ui-sheet-header-copy p { margin: 6px 0 0; font-size: 13px; line-height: 1.5; }
.ui-sheet-close { position: relative; z-index: 222; width: 32px; height: 32px; display: inline-grid; place-items: center; border: 0; border-radius: var(--radius-sm); color: var(--muted-foreground); background: transparent; text-decoration: none; font-size: 20px; line-height: 1; pointer-events: auto; }
.ui-sheet-close:hover { color: var(--foreground); background: var(--accent); }
.ui-sheet-body { min-height: 0; padding: 20px; overflow-y: auto; flex: 1 1 auto; -webkit-overflow-scrolling: touch; }
.ui-sheet-footer { flex-shrink: 0; margin-top: auto; padding: 16px 20px 20px; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.console-modals-portal > .ui-sheet-drawer { position: fixed; inset: 0; z-index: 220; display: block; max-width: none; pointer-events: none; }
.console-modals-portal > .ui-sheet-drawer[open] .ui-sheet-overlay,
.console-modals-portal > .ui-sheet-drawer[open] .ui-sheet-panel,
.console-modals-portal > .ui-sheet-drawer[open] .ui-sheet-header,
.console-modals-portal > .ui-sheet-drawer[open] .ui-sheet-close,
.console-modals-portal > .ui-sheet-drawer[open] .ui-sheet-body,
.console-modals-portal > .ui-sheet-drawer[open] .ui-sheet-footer { pointer-events: auto; }
.ui-sheet-checkbox { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
.console-modals-portal > .ui-sheet-checkbox-layer { position: fixed; inset: 0; z-index: 220; display: block; pointer-events: none; }
.ui-sheet-checkbox:not(:checked) + .ui-sheet-checkbox-layer { visibility: hidden; }
.ui-sheet-checkbox:checked + .ui-sheet-checkbox-layer { visibility: visible; }
.ui-sheet-checkbox:checked + .ui-sheet-checkbox-layer .ui-sheet-overlay { display: block; pointer-events: auto; }
.ui-sheet-checkbox:checked + .ui-sheet-checkbox-layer .ui-sheet-panel,
.ui-sheet-checkbox:checked + .ui-sheet-checkbox-layer .ui-sheet-header,
.ui-sheet-checkbox:checked + .ui-sheet-checkbox-layer .ui-sheet-close,
.ui-sheet-checkbox:checked + .ui-sheet-checkbox-layer .ui-sheet-body,
.ui-sheet-checkbox:checked + .ui-sheet-checkbox-layer .ui-sheet-footer { pointer-events: auto; }
.ui-sheet-checkbox:checked + .ui-sheet-checkbox-layer .ui-sheet-panel { transform: translateX(0); }
.project-bind-sheet-form { display: flex; flex-direction: column; min-height: 0; flex: 1 1 auto; }
.project-bind-sheet-form .ui-sheet-body { flex: 1 1 auto; }
.project-bind-sheet-list { margin: 0; padding: 0; border: 0; display: flex; flex-direction: column; gap: 8px; }
.project-bind-sheet-list legend { margin-bottom: 8px; }
.project-bind-capability { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 12px; border: 1px solid var(--border); border-radius: 10px; background: var(--card); cursor: pointer; }
.project-bind-capability-form { margin: 0; }
.project-bind-capability:has(input[name="_bind_pick"]:checked) { border-color: var(--primary); box-shadow: 0 0 0 1px color-mix(in srgb, var(--primary) 35%, transparent); }
.project-bind-capability-head { display: flex; align-items: flex-start; gap: 10px; }
.project-bind-capability-head input { margin-top: 3px; }
.project-bind-capability-head strong { display: block; font-size: 14px; }
.project-bind-profile-panel { display: none; }
.project-bind-capability:has(input[name="_bind_pick"]:checked) .project-bind-profile-panel { display: block; }
.ui-sheet-panel { z-index: 221; }
.member-form:not(:has([name="account_kind"] option[value="debug"]:checked)) [data-debug-project-panel] { display: none !important; }
.ui-sheet-panel.ui-sheet-panel-member { width: min(520px, 100vw); }

/* 行内确认（避免 details 嵌套） */
.ui-alert-inline { display: block; width: 100%; }
.ui-alert-backdrop { display: none; position: fixed; inset: 0; z-index: 240; background: rgba(15, 23, 42, .45); cursor: default; }
.ui-alert-toggle:not(:checked) ~ .ui-alert-dialog-panel { display: none; }
.ui-alert-toggle:checked ~ .ui-alert-backdrop { display: block; }
.ui-alert-toggle:checked ~ .ui-alert-dialog-panel { display: block; position: fixed; z-index: 250; top: 50%; left: 50%; transform: translate(-50%, -50%); width: min(360px, calc(100vw - 32px)); padding: 16px; border: 1px solid var(--border); border-radius: 12px; background: var(--popover); box-shadow: var(--shadow-lg); }
.ui-alert-toggle:checked ~ .ui-alert-trigger { display: none; }
.ui-alert-dialog-actions { margin-top: 12px; display: flex; justify-content: flex-end; gap: 8px; align-items: center; }
.ui-alert-dialog-header strong { display: block; font-size: 14px; font-weight: 600; }
.ui-alert-dialog-header p { margin: 6px 0 0; color: var(--muted-foreground); font-size: 13px; line-height: 1.5; }
.row-actions-panel .ui-alert-inline > .ui-alert-trigger { display: flex; align-items: center; gap: 8px; width: 100%; padding: 8px 10px; border: 0; border-radius: 6px; color: var(--foreground); background: transparent; font-size: 14px; font-weight: 500; text-align: left; cursor: pointer; }
.row-actions-panel .ui-alert-inline > .ui-alert-trigger.row-action-danger { color: var(--red); }
.row-actions-panel .ui-alert-inline > .ui-alert-trigger:hover { background: var(--accent); }

/* Dashboard 分析/报表卡片 */
.dashboard-analytics-card,
.dashboard-reports-wide { overflow: hidden; }
.dashboard-analytics-card-head { padding: 24px 24px 0; border-bottom: 0; align-items: baseline; }
.dashboard-analytics-card--chart .dashboard-analytics-card-head { padding-inline: 16px; }
.dashboard-analytics-card-head h2 { margin: 0; font-size: 16px; font-weight: 600; }
.dashboard-analytics-card .card-body { flex: 1 1 auto; display: flex; flex-direction: column; padding-top: 16px; padding-bottom: 20px; overflow: hidden; min-height: 280px; }
.dashboard-analytics-card--chart .card-body { padding-inline: 8px; }
.dashboard-risk-area-chart.ui-area-chart {
  flex: 1 1 auto;
  min-height: 220px;
  margin-top: 0;
  padding: 0;
  max-width: 100%;
  overflow: hidden;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.dashboard-risk-area-chart .ui-area-chart-svg {
  display: block;
  flex: 1 1 auto;
  width: 100%;
  max-width: 100%;
  min-height: 200px;
  height: auto;
  max-height: 320px;
  overflow: hidden;
}
.dashboard-risk-area-chart .ui-area-chart-legend {
  flex: 0 0 auto;
  margin-top: 10px;
  padding-left: 8px;
  padding-bottom: 0;
}
.dashboard-risk-area-chart .ui-area-chart-y-label { font-size: 10px; }
.dashboard-risk-area-chart .ui-area-chart-x-label { font-size: 10px; }
.field-hint { margin: 6px 0 0; font-size: 12px; line-height: 1.5; }

/* 列表表格 hover（对照 shadcn tasks hover:bg-muted/50） */
.list-table-section .list-table tbody tr { border-bottom: 1px solid var(--border); transition: background-color .15s ease; }
.list-table-section .list-table tbody tr:last-child { border-bottom: 0; }
.list-table-section .list-table tbody tr:hover,
.list-table-section .list-table tbody tr:focus-within { background: color-mix(in srgb, var(--muted-foreground) 5%, var(--card)); }
.list-table-section .list-table tbody td { padding: 12px 16px; }
.list-table-section .list-table thead th { height: 40px; padding: 0 16px; color: var(--muted-foreground); font-size: 13px; font-weight: 500; }
.list-table-section .table-wrap .list-table tbody td { padding: 12px 16px; }
.list-table-section .table-wrap .list-table thead th { padding: 0 16px; }
.list-table-section .row-actions-panel { min-width: 160px; }
.team-switcher-logo:not(.team-switcher-logo--brand) img { width: 100%; height: 100%; object-fit: contain; }
.team-switcher-logo.team-switcher-logo--brand img { width: 100%; height: 100%; max-width: none; max-height: none; object-fit: contain; object-position: left center; filter: none; }

/* ── Shadcn alignment polish (final pass: token + micro-detail only) ── */
.button { min-height: 36px; padding: 8px 16px; border-radius: 6px; font-size: 14px; font-weight: 500; box-shadow: var(--shadow-xs); transform: none; transition: background .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease; }
.button:hover { transform: none; }
.button-primary { color: var(--primary-foreground); background: var(--primary); border-color: transparent; box-shadow: var(--shadow-xs); }
.button-primary:hover { background: color-mix(in srgb, var(--primary) 90%, #000); border-color: transparent; transform: none; }
.button-outline,
.button-secondary { border-color: var(--border); background: var(--background); color: var(--foreground); box-shadow: var(--shadow-xs); }
.button-outline:hover,
.button-secondary:hover { background: var(--accent); border-color: var(--border); color: var(--foreground); }
.button-small { min-height: 32px; padding: 0 12px; font-size: 13px; border-radius: 6px; }
.button .ui-icon { width: 16px; height: 16px; flex-shrink: 0; }
.list-table-toolbar .button,
.list-table-toolbar summary.button { min-height: var(--toolbar-control-height, 32px); padding: 0 12px; font-size: 13px; border-radius: 6px; }
.list-table-toolbar .input,
.list-table-toolbar .select { min-height: var(--toolbar-control-height, 32px); padding: 0 10px; font-size: 13px; }
.input, .select, .textarea { min-height: 36px; padding: 8px 12px; border-radius: 6px; border-color: var(--input); font-size: 14px; line-height: 1.5; background: var(--background); box-shadow: var(--shadow-xs); }
.input::placeholder,
.textarea::placeholder { color: color-mix(in srgb, var(--muted-foreground) 85%, transparent); }
.theme-dark .input,
.theme-dark .select,
.theme-dark .textarea { background: color-mix(in srgb, var(--input) 28%, transparent); }
.card:not(.data-card):not(.toolbar):not(.toolbar-inline) { border-radius: 8px; box-shadow: var(--shadow-sm); }
.card-head { padding: 20px 24px 0; border-color: var(--border); }
.card-body { padding: 20px 24px 24px; }
.ui-label { font-size: 13px; font-weight: 500; color: var(--foreground); }
.field-hint,
.settings-form .field-hint { color: var(--muted-foreground); font-size: 12px; }
.link { color: var(--primary); font-weight: 500; text-decoration: none; }
.link:hover { text-decoration: underline; text-underline-offset: 4px; }
.badge { min-height: 20px; padding: 2px 8px; border-radius: 999px; font-size: 12px; font-weight: 500; letter-spacing: 0; }
.ui-icon-button { width: 32px; height: 32px; min-height: 32px; padding: 0; border: 0; border-radius: 6px; color: var(--muted-foreground); background: transparent; box-shadow: none; }
.ui-icon-button:hover { color: var(--foreground); background: var(--accent); border-color: transparent; }
.ui-tabs { padding: 3px; border-radius: 8px; background: var(--secondary); color: var(--muted-foreground); }
.ui-tab { min-height: 32px; padding: 4px 12px; border-radius: 6px; font-size: 14px; font-weight: 500; }
.ui-tab.is-active { border-color: transparent; background: var(--background); color: var(--foreground); box-shadow: var(--shadow-xs); font-weight: 500; }
.data-card .list-table tbody td { padding: 12px 8px; }
.data-card .list-table thead th { height: 40px; padding: 0 8px; font-size: 13px; font-weight: 500; color: var(--muted-foreground); letter-spacing: 0; }
.data-card .list-table tbody tr:hover,
.data-card .list-table tbody tr:focus-within { background: color-mix(in srgb, var(--muted-foreground) 5%, var(--card)); }
.list-table .primary-cell > a,
.list-table .primary-cell > strong { font-weight: 500; color: var(--foreground); }
.list-table .primary-cell > a:hover { color: var(--primary); }
.row-actions { position: relative; z-index: 2; }
.row-actions > summary { width: 32px; height: 32px; min-height: 32px; padding: 0; border: 0; border-radius: 6px; color: var(--foreground); background: transparent; box-shadow: none; }
.row-actions > summary:hover,
.row-actions[open] > summary { color: var(--foreground); background: var(--accent); }
.row-actions-panel { z-index: 80; top: calc(100% + 4px); right: 0; width: auto; min-width: 168px; padding: 4px; border: 1px solid var(--border); border-radius: 8px; background: var(--popover); box-shadow: var(--shadow-lg); }
.row-actions-panel a,
.row-actions-panel button { display: flex; align-items: center; gap: 8px; width: 100%; padding: 8px 10px; border: 0; border-radius: 6px; color: var(--foreground); background: transparent; font-size: 14px; font-weight: 500; text-align: left; }
.row-actions-panel a:hover,
.row-actions-panel button:hover { color: var(--foreground); background: var(--accent); }
.theme-dark .row-actions-panel a:hover,
.theme-dark .row-actions-panel button:hover { background: var(--accent); color: var(--foreground); border-color: transparent; }
.pagination { gap: 8px; color: var(--muted-foreground); }
.pagination-total { font-size: 13px; }
.pagination .button { min-height: 32px; border-radius: 6px; }
.ui-sheet-header,
.ui-sheet-footer { border-color: var(--border); }
.ui-alert-dialog-panel { border-radius: 8px; }
.file-input { font-size: 13px; color: var(--muted-foreground); }
.file-input::file-selector-button { margin-right: 10px; padding: 6px 12px; border: 1px solid var(--border); border-radius: 6px; background: var(--background); color: var(--foreground); font-size: 13px; font-weight: 500; box-shadow: var(--shadow-xs); cursor: pointer; }
.file-input::file-selector-button:hover { background: var(--accent); }
.settings-form .settings-avatar-upload,
.settings-form .field-avatar-upload { border-color: var(--border); border-radius: 10px; }
.theme-dark .settings-form .settings-avatar-upload,
.theme-dark .settings-form .field-avatar-upload { border-color: var(--border); background: color-mix(in srgb, var(--secondary) 40%, transparent); }
.theme-dark .asset-field-preview { border-color: var(--border); background: var(--secondary); }
.content-page-head { margin-bottom: 24px; }
.empty { padding: 48px 16px; color: var(--muted-foreground); font-size: 14px; }
.muted,
.cell-muted { color: var(--muted-foreground); font-size: 13px; }
.list-table td:not(.list-select-col) input[type="checkbox"] { width: 16px; height: 16px; border-radius: 4px; accent-color: var(--primary); }
.list-create-button { min-height: 36px; padding: 8px 16px; border-radius: 6px; font-size: 14px; font-weight: 500; }
.list-create-button.button-small,
.page-head-actions .button-small,
.content-page-head-actions .button-small {
  min-height: 32px;
  padding: 0 12px;
  font-size: 13px;
  border-radius: 6px;
}
.button:focus-visible,
.input:focus-visible,
.select:focus-visible,
.ui-icon-button:focus-visible,
.row-actions > summary:focus-visible { outline: 2px solid color-mix(in srgb, var(--foreground) 20%, transparent); outline-offset: 2px; }

/* Shell chrome — topbar / sidebar / dashboard cards */
.command-trigger { width: auto; min-width: 168px; max-width: 220px; min-height: 36px; padding: 0 10px 0 12px; border-color: var(--border); border-radius: 9999px; color: var(--muted-foreground); background: var(--background); font-size: 13px; box-shadow: none; }
.command-trigger:hover { border-color: color-mix(in srgb, var(--border) 80%, var(--foreground)); color: var(--muted-foreground); background: var(--accent); }
.command-trigger-kbd { border-color: var(--border); color: var(--muted-foreground); background: var(--secondary); }
.command-search-icon { color: inherit; }
.command-panel { top: calc(100% + 6px); padding: 6px; border-color: var(--border); border-radius: 8px; background: var(--popover); box-shadow: var(--shadow-lg); }
.command-heading,
.command-foot { padding: 6px 8px; color: var(--muted-foreground); font-size: 12px; font-weight: 500; }
.command-input { margin-bottom: 4px; padding: 8px 10px; border-color: var(--border); border-radius: 6px; color: var(--muted-foreground); background: var(--secondary); font-size: 13px; }
.command-panel > a { padding: 8px 10px; border-radius: 6px; color: var(--foreground); font-size: 13px; font-weight: 500; }
.command-panel > a:hover { color: var(--foreground); background: var(--accent); }
.command-panel > a small { color: var(--muted-foreground); font-size: 11px; }
.command-divider,
.profile-divider { background: var(--border); }
.header-icon-button { width: 32px; height: 32px; border-radius: 6px; color: var(--foreground); }
.header-icon-button:hover { color: var(--foreground); background: var(--accent); }
.profile-menu-top summary:hover { background: var(--accent); }
.profile-top-name { color: var(--foreground); font-size: 13px; font-weight: 500; }
.profile-panel { padding: 6px; border-color: var(--border); border-radius: 8px; background: var(--popover); box-shadow: var(--shadow-lg); }
.profile-panel a,
.profile-panel button { padding: 8px 10px; border-radius: 6px; color: var(--foreground); font-size: 13px; font-weight: 500; }
.profile-panel a:hover,
.profile-panel button:hover { color: var(--foreground); background: var(--accent); }
.profile-panel-user strong { color: var(--foreground); }
.profile-panel-user small { color: var(--muted-foreground); }
.profile-copy strong { color: var(--foreground); }
.profile-copy span { color: var(--muted-foreground); }
.mobile-nav-panel { border-color: var(--border); border-radius: 8px; background: var(--popover); box-shadow: var(--shadow-lg); }
.mobile-nav-panel a { border-radius: 6px; color: var(--foreground); font-size: 13px; }
.mobile-nav-panel a:hover { color: var(--foreground); background: var(--accent); }
.nav-label { color: var(--muted-foreground); font-size: 12px; font-weight: 500; }
.nav a { color: var(--sidebar-foreground); }
.nav a.active { color: var(--sidebar-foreground); background: var(--sidebar-accent); box-shadow: none; font-weight: 500; }
.nav-group[open] > .nav-group-summary,
.nav-group.is-active > .nav-group-summary { color: var(--sidebar-foreground); background: var(--sidebar-accent); font-weight: 500; box-shadow: none; }
.nav-group-items a.active { color: var(--sidebar-foreground); background: var(--sidebar-accent); font-weight: 500; }
.theme-dark .nav a.active,
.theme-dark .nav-group[open] > .nav-group-summary,
.theme-dark .nav-group.is-active > .nav-group-summary,
.theme-dark .nav-group-items a.active { background: var(--sidebar-accent); color: var(--sidebar-foreground); border-color: transparent; }
.metric,
.card.metric { border-radius: 8px; }
.dashboard-chart-card .card-head,
.dashboard-analytics-card-head { padding: 24px 24px 0; border-bottom: 0; }
.form-card .field > small,
.form-grid .field > small { display: block; margin: 6px 0 0; color: var(--muted-foreground); font-size: 12px; line-height: 1.5; }
.ui-sheet-footer .button-primary { min-height: 36px; padding: 8px 16px; border-radius: 6px; font-size: 14px; font-weight: 500; color: #fafafa; background: #18181b; border: 1px solid #18181b; box-shadow: var(--shadow-xs); transform: none; }
.ui-sheet-footer .button-primary:hover { color: #fafafa; background: #27272a; border-color: #27272a; transform: none; }
.theme-dark .ui-sheet-footer .button-primary { color: #18181b; background: #fafafa; border-color: #fafafa; }
.theme-dark .ui-sheet-footer .button-primary:hover { color: #18181b; background: #e4e4e7; border-color: #e4e4e7; }
.config-drawer-panel { border-radius: 8px; }
.theme-settings-dot.is-active { border-color: var(--primary); box-shadow: 0 0 0 2px color-mix(in srgb, var(--primary) 25%, transparent); }

/* ── 用户定稿 flat 面：polish 不得加回阴影 ── */
.data-card,
.users-list-card,
.list-table-section,
.card.toolbar,
.toolbar,
.toolbar-inline,
.toolbar.card,
.settings-content-section .theme-settings-panel { box-shadow: none; }
.data-card,
.users-list-card { border: 0; border-radius: 0; background: transparent; padding: 0; }
.list-table-toolbar .input,
.list-table-toolbar .select,
.list-table-toolbar .button,
.list-table-toolbar summary.button,
.list-table-toolbar .button-outline,
.list-table-toolbar .button-primary,
.list-page-toolbar-form .input,
.list-page-toolbar-form .select,
.list-page-toolbar-form .button,
.list-page-toolbar-form summary.button,
.list-page-toolbar-form .button-outline,
.list-page-toolbar-form .button-primary,
.input-compact,
.select-compact { box-shadow: none; }
.settings-form .settings-avatar-upload .file-input,
.settings-form .input-readonly,
.command-input-live .input,
.command-input-live .input:focus,
.command-trigger,
.button-ghost,
.button-link,
.row-actions > summary,
.topbar,
.sidebar { box-shadow: none; }
/* SidebarInset 阴影：与 shadcn 一致，直接写在 .shell > .workspace-inset（见 :root --shadow-inset-panel） */
.form-card.card,
.card.metric,
.metric,
.notice,
.app-card { box-shadow: var(--shadow-sm); }
.ui-sheet-panel,
.row-actions-panel,
.command-panel,
.profile-panel,
.team-switcher-menu,
.config-drawer-panel { box-shadow: var(--shadow-lg); }

/* ── 定稿覆盖（须在 polish 层之后）── */

/* SidebarInset：阴影写在元素本身；侧栏勿设 z-index，否则会盖住向左扩散的左缘阴影 */
.shell > main.workspace.workspace-inset,
main.workspace.workspace-inset { box-shadow: var(--shadow-inset-panel); }

/* 列表 / 页头搜索框：为左侧图标留 gutter */
.search-field .input,
.list-table-toolbar .search-field .input,
.list-page-toolbar-form .search-field .input { padding-left: 38px; padding-right: 12px; }

/* 报表页：周期选择与 CSV 导出同一行 */
.dashboard-report-toolbar.toolbar { flex-wrap: nowrap; align-items: center; padding: 12px 16px; gap: 12px 16px; }
.dashboard-report-toolbar .dashboard-period-form,
.dashboard-report-toolbar.toolbar form { width: auto; flex: 0 1 auto; flex-wrap: nowrap; min-width: 0; }
.dashboard-report-toolbar-actions { flex: 0 0 auto; margin-left: auto; white-space: nowrap; }

/* 应用集成等：标题与筛选同一行 */
.content-page-head--split.content-page-head--toolbar { flex-wrap: nowrap; align-items: flex-start; }
.content-page-head--split.content-page-head--toolbar .content-page-head-main { flex: 0 0 auto; }
.content-page-head--split.content-page-head--toolbar .content-page-head-actions { flex: 1 1 auto; min-width: 0; justify-content: flex-end; align-self: center; }
.content-page-head--split.content-page-head--toolbar .list-page-toolbar-form .filter-select,
.content-page-head--split.content-page-head--toolbar .list-page-toolbar-form .list-filter-submit,
.content-page-head--split.content-page-head--toolbar .list-page-toolbar-form .search-field { flex-shrink: 0; }

/* 分析页 mini sparkline */
.dashboard-analytics-card .trend-row .mini-bars,
.trend-row .mini-bars {
  position: relative;
  height: 48px;
  margin-top: 0;
  padding: 0 1px 1px;
  gap: 3px;
  border: 0;
  border-radius: 0;
  background: transparent;
  align-items: flex-end;
}
.dashboard-analytics-card .trend-row .mini-bars::after,
.trend-row .mini-bars::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: color-mix(in srgb, var(--border) 85%, transparent);
  pointer-events: none;
}
.dashboard-analytics-card .trend-row .mini-bars span,
.trend-row .mini-bars span {
  position: relative;
  z-index: 1;
  min-width: 3px;
  max-width: none;
  border-radius: 4px 4px 1px 1px;
  background: color-mix(in srgb, var(--primary) 72%, var(--foreground));
  opacity: .82;
  transition: opacity .15s ease, transform .15s ease, background .15s ease;
}
.trend-row-link:hover .mini-bars span { opacity: 1; background: var(--primary); transform: translateY(-1px); }

/* 30 天风险窗口：分类图标 + 色条 */
.risk-window-row {
  display: grid;
  gap: 10px;
  padding: 14px 0;
  border-bottom: 1px solid color-mix(in srgb, var(--border) 72%, transparent);
}
.risk-window-row:last-of-type { border-bottom: 0; padding-bottom: 0; }
.risk-window-head { display: flex; align-items: center; gap: 12px; min-width: 0; }
.risk-window-icon {
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: color-mix(in srgb, var(--primary) 10%, var(--card));
  color: var(--primary);
  border: 1px solid color-mix(in srgb, var(--primary) 16%, var(--border));
}
.risk-window-icon .ui-icon { width: 18px; height: 18px; stroke-width: 2; }
.risk-window-copy { flex: 1 1 auto; display: flex; align-items: baseline; justify-content: space-between; gap: 12px; min-width: 0; }
.risk-window-label { font-size: 14px; color: var(--foreground); }
.risk-window-value { font-size: 18px; font-weight: 650; letter-spacing: -0.02em; }
.risk-window-bars { height: 44px; padding: 0 2px 2px; gap: 4px; }
.risk-window-row--project .risk-window-icon { color: #2563eb; background: color-mix(in srgb, #2563eb 10%, var(--card)); border-color: color-mix(in srgb, #2563eb 18%, var(--border)); }
.risk-window-row--project .risk-window-bars span { background: color-mix(in srgb, #2563eb 78%, var(--foreground)); }
.risk-window-row--maintenance .risk-window-icon { color: #d97706; background: color-mix(in srgb, #d97706 10%, var(--card)); border-color: color-mix(in srgb, #d97706 18%, var(--border)); }
.risk-window-row--maintenance .risk-window-bars span { background: color-mix(in srgb, #d97706 78%, var(--foreground)); }
.risk-window-row--contract .risk-window-icon { color: #7c3aed; background: color-mix(in srgb, #7c3aed 10%, var(--card)); border-color: color-mix(in srgb, #7c3aed 18%, var(--border)); }
.risk-window-row--contract .risk-window-bars span { background: color-mix(in srgb, #7c3aed 78%, var(--foreground)); }
.risk-window-row--ssl .risk-window-icon { color: #059669; background: color-mix(in srgb, #059669 10%, var(--card)); border-color: color-mix(in srgb, #059669 18%, var(--border)); }
.risk-window-row--ssl .risk-window-bars span { background: color-mix(in srgb, #059669 78%, var(--foreground)); }
.risk-window-row.trend-row-link { color: inherit; text-decoration: none; transition: transform .15s ease; }
.risk-window-row.trend-row-link:hover .risk-window-label { color: var(--brand); }
.risk-window-row.trend-row-link:hover .risk-window-icon { transform: translateY(-1px); box-shadow: var(--shadow-sm); }
.risk-window-row.trend-row-link:hover .risk-window-bars span { opacity: 1; transform: translateY(-2px); }

.messages-page-tabs.ui-tabs { margin-bottom: 0; }
.messages-broadcast-stack { display: grid; gap: 24px; }
.messages-list-head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 16px; }
.messages-list-head .content-page-head-main { display: grid; gap: 10px; }
.messages-kind-segment { display: inline-flex; flex-wrap: wrap; gap: 6px; padding: 3px; border: 1px solid var(--border); border-radius: 8px; background: var(--secondary); }
.messages-kind-segment-item { position: relative; min-height: 32px; padding: 0 12px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; border-radius: 6px; color: var(--foreground); font-size: 13px; font-weight: 500; transition: background .15s ease, box-shadow .15s ease; }
.messages-kind-segment-item:hover { background: color-mix(in srgb, var(--background) 70%, transparent); }
.messages-kind-segment-item.is-active { color: var(--foreground); background: var(--background); box-shadow: var(--shadow-xs); }
.messages-kind-badge { min-width: 18px; height: 18px; padding: 0 5px; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; background: var(--destructive); color: #fff; font-size: 11px; font-weight: 600; line-height: 1; }
.messages-compose-card .card-head h2,
.messages-sent-card .card-head h2 { margin: 0; font-size: 16px; font-weight: 600; }
.messages-compose-card .card-head p,
.messages-sent-card .card-head .lead { margin: 4px 0 0; font-size: 13px; }
.messages-sent-card .card-head.content-page-head--toolbar { align-items: flex-start; gap: 16px; }
.messages-sent-excerpt { margin: 6px 0 0; font-size: 13px; line-height: 1.5; }
.project-app-bindings-table .project-app-binding-form { margin: 0; }
.project-app-bindings-table { table-layout: fixed; width: 100%; }
.project-app-bindings-table th:nth-child(1),
.project-app-bindings-table td:nth-child(1) { width: 18%; }
.project-app-bindings-table th:nth-child(2),
.project-app-bindings-table td:nth-child(2) { width: 34%; }
.project-app-bindings-table th:nth-child(3),
.project-app-bindings-table td:nth-child(3) { width: 12%; }
.project-app-bindings-table th:nth-child(4),
.project-app-bindings-table td:nth-child(4) { width: 18%; }
.project-app-bindings-table th:nth-child(5),
.project-app-bindings-table td:nth-child(5) { width: 12%; }
.project-app-bindings-table .select { width: 100%; max-width: 100%; min-width: 0; }
.project-app-bindings-foot { margin: 12px 0 0; padding: 0 4px; font-size: 13px; }
.project-app-bind-panel h3 { margin: 0 0 12px; font-size: 15px; font-weight: 600; }
.project-app-bind-picker { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.project-app-bind-picker li { margin: 0; }
.dashboard-period-form .select,
.dashboard-period-form .select-compact { width: auto; min-width: 108px; max-width: 132px; min-height: 32px; height: 32px; padding: 0 28px 0 10px; font-size: 13px; }
.dashboard-period-form .button-small { min-height: 32px; }
.dashboard-chart-full .dashboard-area-chart .ui-area-chart-svg { width: 100%; height: auto; min-height: 300px; max-height: 360px; }

.application-detail-page { min-width: 0; }
.application-profiles-section { min-width: 0; max-width: 100%; }
.application-profiles-head h2 { margin: 0; font-size: 16px; font-weight: 600; }
.application-profiles-head p { margin: 4px 0 0; font-size: 13px; line-height: 1.5; }
.application-config-field[hidden] { display: none !important; }
.application-profiles-table { table-layout: fixed; width: 100%; }
.application-profiles-table .primary-cell.application-profile-name strong { display: inline; font-weight: 600; }
.application-profiles-table th:nth-child(1),
.application-profiles-table td:nth-child(1) { width: 22%; }
.application-profiles-table th:nth-child(2),
.application-profiles-table td:nth-child(2) { width: 14%; }
.application-profiles-table th:nth-child(3),
.application-profiles-table td:nth-child(3) { width: 14%; }
.application-profiles-table th:nth-child(4),
.application-profiles-table td:nth-child(4) { width: 28%; }
.application-profiles-table th:nth-child(5),
.application-profiles-table td:nth-child(5) { width: 8%; }
.application-profiles-table th:nth-child(6),
.application-profiles-table td:nth-child(6) { width: 10%; }
.application-profile-identity { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.application-profile-status { vertical-align: top; }
.application-profiles-section .empty-state { padding: 24px 0; }
.application-sms-templates-wrap { margin-top: 8px; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.application-sms-templates-table { margin: 0; }
.application-sms-templates-table th:nth-child(1),
.application-sms-templates-table td:nth-child(1) { width: 28%; }
.application-sms-templates-table th:nth-child(2),
.application-sms-templates-table td:nth-child(2) { width: 34%; }
.application-sms-templates-table th:nth-child(3),
.application-sms-templates-table td:nth-child(3) { width: 38%; }
.application-sms-templates-actions { margin-top: 10px; }
.application-sms-default-template { margin-top: 12px; }
.project-notify-api-hints { margin-top: 12px; }
.project-notify-api-hints .code { font-size: 12px; }
.project-notifications-panel .form-section-heading { margin: 0 0 8px; font-size: 14px; }

@media (max-width: 720px) {
  .content-page-head--split.content-page-head--toolbar { flex-wrap: wrap; align-items: flex-start; }
  .content-page-head--split.content-page-head--toolbar .content-page-head-actions { flex: 1 1 100%; margin-left: 0; justify-content: flex-start; }
  .dashboard-report-toolbar.toolbar { flex-wrap: wrap; }
  .dashboard-report-toolbar-actions { margin-left: 0; width: 100%; }
}

/* KPI / 图表卡：polish 层之后恢复 shadow-sm */
.card:not(.data-card):not(.toolbar):not(.toolbar-inline),
.card.metric,
a.card.metric.metric-link,
.dashboard-chart-card,
.dashboard-analytics-card,
.dashboard-reports-wide,
.form-card.card,
.notice,
.app-card { box-shadow: var(--shadow-sm); }
a.card.metric.metric-link:hover,
.metric-link:hover { box-shadow: var(--shadow-md); }

/* 列表表格：容器（按场景） */
.list-table-section:not(.card) .table-wrap,
.list-table-section:not(.card) .list-bulk-form .table-wrap {
  border-radius: 8px;
  box-shadow: var(--shadow-xs);
}
.list-table-section.card .table-wrap,
.list-table-section.card .list-bulk-form .table-wrap {
  border-radius: 0 0 8px 8px;
  box-shadow: none;
}
.data-card .table-wrap,
.data-card .list-bulk-form .table-wrap,
.card > .table-wrap,
.card-body .table-wrap,
.detail-panel-card .table-wrap {
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow-x: auto;
  background: var(--card);
}
.card > .table-wrap {
  border-top: 1px solid var(--border);
  border-radius: 0 0 12px 12px;
  box-shadow: none;
}
.detail-panel-card > .card-body .table-wrap {
  border-radius: 8px;
}

/* 列表表格 typography（全局 .table-wrap .list-table） */
.table-wrap .list-table,
.list-bulk-form .table-wrap .list-table {
  font-size: 13px;
  line-height: 1.45;
  -webkit-font-smoothing: antialiased;
}
.table-wrap .list-table thead th,
.list-bulk-form .table-wrap .list-table thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  height: 40px;
  padding: 0 16px;
  border-bottom: 1px solid var(--border);
  background: var(--card);
  color: var(--foreground);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0;
  box-shadow: 0 1px 0 color-mix(in srgb, var(--border) 86%, transparent);
}
.table-wrap .list-table thead th.text-right,
.list-bulk-form .table-wrap .list-table thead th.text-right {
  text-align: right;
}
.table-wrap .list-table tbody td,
.list-bulk-form .table-wrap .list-table tbody td {
  padding: 12px 16px;
  font-size: 13px;
  font-weight: 400;
  color: var(--muted-foreground);
}
.table-wrap .list-table .primary-cell > a,
.table-wrap .list-table .primary-cell > strong,
.list-bulk-form .table-wrap .list-table .primary-cell > a,
.list-bulk-form .table-wrap .list-table .primary-cell > strong {
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0;
  color: var(--foreground);
}
.table-wrap .list-table .primary-cell > a,
.list-bulk-form .table-wrap .list-table .primary-cell > a {
  text-decoration: none;
  transition: color .12s ease;
}
.table-wrap .list-table .primary-cell > a:hover,
.list-bulk-form .table-wrap .list-table .primary-cell > a:hover {
  color: var(--primary);
}
.table-wrap .list-table .primary-cell .muted,
.table-wrap .list-table .primary-cell > span.muted,
.list-bulk-form .table-wrap .list-table .primary-cell .muted,
.list-bulk-form .table-wrap .list-table .primary-cell > span.muted {
  display: block;
  margin-top: 2px;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
  color: var(--muted-foreground);
}
.table-wrap .list-table td.muted,
.list-bulk-form .table-wrap .list-table td.muted {
  color: var(--muted-foreground);
}
.table-wrap .list-table td .muted small,
.table-wrap .list-table .primary-cell .muted small {
  font-size: inherit;
}
.table-wrap .list-table tbody td.nowrap,
.list-bulk-form .table-wrap .list-table tbody td.nowrap {
  font-size: 13px;
  font-weight: 400;
  color: var(--muted-foreground);
  font-variant-numeric: tabular-nums;
}
.table-wrap .list-table .code,
.list-bulk-form .table-wrap .list-table .code {
  font-size: 12px;
  font-weight: 400;
  color: var(--muted-foreground);
}
.table-wrap .list-table .badge,
.list-bulk-form .table-wrap .list-table .badge {
  min-height: 22px;
  padding: 2px 8px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.35;
  vertical-align: middle;
}
.table-wrap .list-table tbody td.list-select-col,
.list-bulk-form .table-wrap .list-table tbody td.list-select-col {
  width: 44px;
  padding-inline: 16px 10px;
  text-align: center;
  vertical-align: middle;
}
.table-wrap .list-table thead th.list-select-col,
.list-bulk-form .table-wrap .list-table thead th.list-select-col {
  width: 44px;
  padding-inline: 16px 10px;
  text-align: center;
}
.table-wrap .list-table tbody td.text-right,
.list-bulk-form .table-wrap .list-table tbody td.text-right {
  padding-right: 12px;
  text-align: right;
  vertical-align: middle;
}
.table-wrap .list-table tbody td.list-select-col input[type="checkbox"],
.list-bulk-form .table-wrap .list-table tbody td.list-select-col input[type="checkbox"] {
  margin: 0;
  vertical-align: middle;
}
.table-wrap .list-table tbody tr,
.list-bulk-form .table-wrap .list-table tbody tr {
  border-bottom: 1px solid color-mix(in srgb, var(--border) 92%, transparent);
  transition: background-color .12s ease;
}
.table-wrap .list-table tbody tr:last-child,
.list-bulk-form .table-wrap .list-table tbody tr:last-child {
  border-bottom: 0;
}
.table-wrap .list-table tbody tr:hover,
.table-wrap .list-table tbody tr:focus-within,
.list-bulk-form .table-wrap .list-table tbody tr:hover,
.list-bulk-form .table-wrap .list-table tbody tr:focus-within {
  background: color-mix(in srgb, var(--muted-foreground) 3%, var(--card));
}
.table-wrap .list-table tbody tr:has(input[name="ids[]"]:checked),
.list-bulk-form .table-wrap .list-table tbody tr:has(input[name="ids[]"]:checked),
.table-wrap .list-table tbody tr.is-row-selected,
.list-bulk-form .table-wrap .list-table tbody tr.is-row-selected {
  background: color-mix(in srgb, var(--accent) 50%, var(--card));
}
.table-wrap .list-table tbody tr .row-actions > summary,
.list-bulk-form .table-wrap .list-table tbody tr .row-actions > summary {
  opacity: .5;
  transition: opacity .12s ease, background .12s ease;
}
.table-wrap .list-table tbody tr:hover .row-actions > summary,
.table-wrap .list-table tbody tr:focus-within .row-actions > summary,
.table-wrap .list-table tbody tr .row-actions[open] > summary,
.list-bulk-form .table-wrap .list-table tbody tr:hover .row-actions > summary,
.list-bulk-form .table-wrap .list-table tbody tr:focus-within .row-actions > summary,
.list-bulk-form .table-wrap .list-table tbody tr .row-actions[open] > summary {
  opacity: 1;
}
.messages-feed-table td { vertical-align: top; }
.messages-feed-table .primary-cell > strong,
.messages-feed-table td.primary-cell > strong {
  display: block;
  font-size: 13px;
  font-weight: 500;
  color: var(--foreground);
}

/* 详情页卡片：标题 / 副标题 / 空态 / 内嵌表格 */
.detail-panel-card {
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
}
.detail-panel-card > .card-head {
  padding: 20px 24px 16px;
  border-bottom: 1px solid var(--border);
  align-items: flex-start;
  gap: 12px 16px;
}
.detail-panel-card > .card-head.card-head-inline {
  align-items: center;
}
.detail-panel-card > .card-head .card-head-main {
  min-width: 0;
  flex: 1 1 auto;
}
.detail-panel-card > .card-head h2,
.detail-panel-card .detail-panel-title {
  margin: 0;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: -.01em;
  line-height: 1.35;
  color: var(--foreground);
}
.detail-panel-card > .card-head .card-description,
.detail-panel-card .card-description {
  margin: 4px 0 0;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.5;
  color: var(--muted-foreground);
}
.detail-panel-card > .card-body {
  padding: 20px 24px 24px;
}
.detail-panel-card > .card-head + .card-body {
  padding-top: 16px;
}
.detail-panel-card > .card-body:only-child {
  padding-top: 20px;
}
.card-empty {
  margin: 0;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.55;
  color: var(--muted-foreground);
}
.card-empty .link {
  font-weight: 500;
}
.card-body-foot {
  margin-top: 16px;
}
.detail-panel-card .empty.compact-empty {
  padding: 8px 0 4px;
}
.detail-panel-card .empty.compact-empty h3 {
  margin: 8px 0 4px;
  font-size: 14px;
  font-weight: 600;
  color: var(--foreground);
}
.detail-panel-card .empty.compact-empty p {
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
  color: var(--muted-foreground);
}

.contract-detail-meta {
  display: grid;
  grid-template-columns: minmax(240px, 320px) minmax(0, 1fr);
  gap: 16px;
  align-items: stretch;
}
.contract-detail-meta-card .card-body,
.contract-detail-remark-card .card-body {
  height: 100%;
}
.detail-meta-list {
  list-style: none;
  margin: 16px 0 0;
  padding: 0;
  display: grid;
  gap: 0;
}
.detail-meta-item {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  padding: 12px 0;
  border-bottom: 1px solid var(--border);
}
.detail-meta-item:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}
.detail-meta-label {
  font-size: 12px;
  font-weight: 500;
  color: var(--muted-foreground);
  line-height: 1.5;
}
.detail-meta-value {
  font-size: 14px;
  font-weight: 500;
  color: var(--foreground);
  line-height: 1.5;
  word-break: break-word;
}
.detail-meta-code {
  display: inline-block;
  margin-left: 6px;
  vertical-align: middle;
}
.detail-remark {
  margin-top: 12px;
  padding: 14px 16px;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: var(--secondary);
  color: var(--foreground);
  font-size: 13px;
  line-height: 1.65;
  white-space: pre-wrap;
  word-break: break-word;
}
.contract-attachment-list thead th {
  padding: 12px 16px 16px;
  color: var(--muted-foreground);
  font-size: 12px;
  font-weight: 600;
  border-bottom: 1px solid var(--border);
  vertical-align: bottom;
}
.contract-attachment-list tbody td {
  padding: 14px 16px;
  vertical-align: middle;
  border-bottom: 1px solid color-mix(in srgb, var(--border) 72%, transparent);
}
.contract-attachment-list tbody tr:last-child td {
  border-bottom: 0;
}
.contract-renewal-files-table tbody tr.is-renewal-summary td {
  background: color-mix(in srgb, var(--secondary) 72%, var(--card));
}
.contract-renewal-attachment-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 6px;
}
.contract-renewal-attachment-list li {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
  min-width: 0;
}
.contract-renewal-attachment-list .contract-attachment-filename {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.contract-renewal-attachments-cell { vertical-align: top; }
.asset-upload-status.is-error { color: var(--destructive, #dc2626); }
.asset-upload-status.is-success { color: color-mix(in srgb, var(--primary) 82%, var(--foreground)); }

/* VeanUI-inspired primitives: reuse frozen tokens, no inline styles (style-src 'self'). */
.ui-number-field { position: relative; display: flex; align-items: center; }
.ui-number-field .input { padding-right: 40px; }
.ui-number-unit { position: absolute; right: 12px; color: var(--muted-foreground); font-size: 12px; pointer-events: none; }
.ui-progress { display: grid; gap: 8px; }
.ui-progress-label { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--muted-foreground); font-size: 12px; }
.ui-progress-value { color: var(--foreground); font-variant-numeric: tabular-nums; font-weight: 600; }
.ui-breadcrumb-list { display: flex; flex-wrap: wrap; align-items: center; gap: 2px; margin: 0; padding: 0; list-style: none; }
.ui-breadcrumb-item { display: inline-flex; align-items: center; gap: 2px; color: var(--muted-foreground); font-size: 13px; }
.ui-breadcrumb-sep { display: inline-flex; color: #cbd5e1; }
.ui-breadcrumb-sep .ui-icon { width: 12px; height: 12px; }
.ui-breadcrumb-link { color: var(--muted-foreground); }
.ui-breadcrumb-link:hover { color: var(--foreground); text-decoration: underline; text-underline-offset: 3px; }
.ui-breadcrumb-current { color: var(--foreground); font-weight: 500; }
.ui-kbd-group { display: inline-flex; align-items: center; gap: 4px; }
.ui-collapsible > summary { cursor: pointer; font-weight: 600; }
.ui-collapsible-panel { margin-top: 8px; padding-left: 12px; border-left: 2px solid var(--line); color: var(--muted-foreground); font-size: 14px; }
.ui-accordion { display: grid; gap: 0; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--card); }
.ui-accordion-item { margin: 0; padding: 12px 14px; border-bottom: 1px solid var(--border); }
.ui-accordion-item:last-child { border-bottom: 0; }
.ui-accordion-item > summary { font-size: 14px; font-weight: 600; color: var(--foreground); }
.ui-slider-field { display: grid; gap: 8px; }
.ui-slider-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.ui-slider-head .ui-label { margin: 0; }
.ui-slider-value { color: var(--foreground); font-size: 13px; font-variant-numeric: tabular-nums; font-weight: 600; }
.ui-slider { width: 100%; height: 6px; padding: 0; border: 0; border-radius: 999px; background: var(--secondary); accent-color: var(--brand); box-shadow: none; }
.ui-spinner { display: inline-block; width: 16px; height: 16px; border: 2px solid var(--border); border-top-color: var(--brand); border-radius: 50%; animation: ui-spin .7s linear infinite; }
@keyframes ui-spin { to { transform: rotate(360deg); } }
.ui-aspect-ratio { position: relative; width: 100%; overflow: hidden; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--secondary); }
.ui-aspect-ratio > * { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ui-aspect-ratio-1-1 { aspect-ratio: 1 / 1; }
.ui-aspect-ratio-4-3 { aspect-ratio: 4 / 3; }
.ui-aspect-ratio-16-9 { aspect-ratio: 16 / 9; }
.ui-aspect-ratio-21-9 { aspect-ratio: 21 / 9; }
.ui-aspect-ratio-placeholder { display: grid; place-items: center; margin: 0; color: var(--muted-foreground); font-size: 13px; }
.ui-toggle-group { display: inline-flex; flex-wrap: wrap; padding: 3px; border-radius: var(--radius-md); background: var(--secondary); }
.ui-toggle { position: relative; display: inline-flex; align-items: center; min-height: 32px; padding: 0 12px; border-radius: 6px; color: var(--muted-foreground); font-size: 13px; font-weight: 500; cursor: pointer; }
.ui-toggle input { position: absolute; opacity: 0; pointer-events: none; }
.ui-toggle.is-on, .ui-toggle:has(input:checked) { color: var(--foreground); background: var(--background); box-shadow: var(--shadow-xs); }
.theme-dark .ui-accordion { background: var(--card); }
.theme-dark .ui-breadcrumb-sep { color: var(--muted-foreground); }
.content-page-crumbs { margin: 0 0 8px; }
.ui-progress--inline { min-width: 88px; margin-top: 6px; }
.ui-progress--inline .progress-track { height: 6px; }
@media (min-width: 900px) {
  .content-page-crumbs { display: none; }
}
.login-logo img.login-logo-default,
.login-story-brand img.login-logo-default,
.theme-dark .login-logo img.login-logo-default,
.theme-dark .login-story-brand img.login-logo-default { filter: none; }
@media (max-width: 900px) {
  .contract-detail-meta {
    grid-template-columns: 1fr;
  }
}

/* SG10 列表标准落到中枢：页头背景图、工具栏卡片、表格密度 */
:root {
  --sg-list-hero-outer: url("/assets/workspace/list-hero-outer.png");
  --sg-list-hero-inner: url("/assets/workspace/list-hero.png");
}
.list-page-stack { gap: 16px; }
.list-page-stack > .content-page-head:not(.page-head-detail),
.list-page-top > .content-page-head:not(.page-head-detail) {
  position: relative;
  min-height: 92px;
  margin-bottom: 0;
  padding: 22px 28px;
  border-radius: 12px;
  overflow: hidden;
  background: var(--sg-list-hero-outer) center / 100% 100% no-repeat, var(--brand-soft);
}
.list-page-stack > .content-page-head:not(.page-head-detail) h1,
.list-page-top > .content-page-head:not(.page-head-detail) h1,
.content-page-head--banner h1 {
  font-size: 20px;
  font-weight: 650;
  letter-spacing: -.02em;
  color: #0f172a;
}
.list-page-stack > .content-page-head:not(.page-head-detail) .lead,
.list-page-top > .content-page-head:not(.page-head-detail) .lead,
.content-page-head--banner .lead {
  margin-top: 4px;
  color: #64748b;
  font-size: 13px;
}
.content-page-head--form {
  position: relative;
  min-height: 92px;
  margin-bottom: 16px;
  padding: 22px 28px;
  border-radius: 12px;
  overflow: hidden;
  background: var(--sg-list-hero-inner) center / 100% 100% no-repeat, var(--brand-soft);
}
.content-page-head--form h1,
.content-page-head--form .content-page-head-title-row h1 {
  font-size: 20px;
  font-weight: 650;
  color: #0f172a;
}
.content-page-head.content-page-head--banner:not(.page-head-detail),
.content-page-head.content-page-head--split.content-page-head--banner {
  position: relative;
  min-height: 92px;
  margin-bottom: 16px;
  padding: 22px 28px;
  border-radius: 12px;
  overflow: hidden;
  background: var(--sg-list-hero-outer) center / 100% 100% no-repeat, var(--brand-soft);
}
.list-page-stack > .list-table-section,
.list-page-stack > .list-table-toolbar,
.list-page-stack > form.list-table-toolbar {
  padding: 16px;
  border: 1px solid #e8eef5;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
}
.list-page-stack > .list-table-toolbar,
.list-page-stack > form.list-table-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  min-height: 56px;
  padding: 10px 12px 10px 14px;
  border-radius: 14px;
}
.list-table-section {
  --toolbar-control-height: 36px;
}
.list-page-stack > .list-table-section .list-table-toolbar,
.list-card .list-toolbar,
.list-card .list-table-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  min-height: 56px;
  padding: 10px 12px;
  margin: 0;
  border: 1px solid #e8eef5;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(15, 23, 42, .03);
}
.list-page-stack > .list-table-section .table-wrap,
.list-card > .table-wrap {
  margin: 12px 0 0;
  border: 1px solid #ebeef5;
  border-radius: 10px;
  overflow-x: auto;
  background: #fff;
}
.list-page-stack .list-table-section .list-table thead th,
.list-page-stack .list-table-section .table-wrap .list-table thead th,
.list-card .list-table thead th {
  height: 40px;
  padding: 0 12px;
  background: #f5f7fa;
  border-bottom: 1px solid #ebeef5;
  color: #909399;
  font-size: 13px;
  font-weight: 500;
}
.list-page-stack .list-table-section .list-table tbody td,
.list-page-stack .list-table-section .table-wrap .list-table tbody td,
.list-card .list-table tbody td {
  height: 48px;
  padding: 10px 12px;
  border-bottom: 1px solid #ebeef5;
  color: #303133;
  font-size: 14px;
  font-weight: 400;
}
.list-page-stack .list-table-section .list-table tbody tr:hover,
.list-card .list-table tbody tr:hover { background: #f5f7fa; }
.list-page-stack .list-table-section .list-table td.primary-cell > a,
.list-page-stack .list-table-section .list-table td.primary-cell > a.link,
.list-card .list-table td.primary-cell > a.table-link {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #303133;
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
}
.list-page-stack .list-table-section .list-table td.primary-cell > a:hover,
.list-card .list-table td.primary-cell > a.table-link:hover { color: var(--brand); text-decoration: none; }
.list-page-stack .list-table-toolbar .select,
.list-page-stack .list-table-section .list-table-toolbar .select,
.list-page-stack .list-table-toolbar .button,
.list-page-stack .list-table-section .list-table-toolbar .button,
.list-page-stack .list-table-toolbar .input,
.content-page-head--banner .list-page-toolbar-form .select,
.content-page-head--banner .list-page-toolbar-form .input,
.content-page-head--banner .list-page-toolbar-form .button,
.list-page-top > .content-page-head .list-page-toolbar-form .select,
.list-page-top > .content-page-head .list-page-toolbar-form .input,
.list-page-top > .content-page-head .list-page-toolbar-form .button {
  min-height: 36px;
  height: 36px;
  border-radius: 8px;
  font-size: 14px;
}
.list-page-stack .muted-cell,
.list-card .muted-cell { color: #909399; }
.list-create-button { flex: 0 0 auto; white-space: nowrap; }
.theme-dark .list-page-stack > .content-page-head:not(.page-head-detail),
.theme-dark .list-page-top > .content-page-head:not(.page-head-detail),
.theme-dark .content-page-head--banner,
.theme-dark .content-page-head--form {
  background: linear-gradient(90deg, color-mix(in srgb, var(--brand-soft) 70%, var(--panel)), var(--brand-soft));
}
.theme-dark .list-page-stack > .content-page-head:not(.page-head-detail) h1,
.theme-dark .list-page-top > .content-page-head:not(.page-head-detail) h1,
.theme-dark .content-page-head--banner h1,
.theme-dark .content-page-head--form h1 { color: var(--foreground); }
@media (max-width: 767px) {
  .list-page-stack > .content-page-head:not(.page-head-detail),
  .list-page-top > .content-page-head:not(.page-head-detail),
  .content-page-head--banner,
  .content-page-head--form { padding: 16px 18px; min-height: 0; }
}

/* --------------------------------------------------------------------------
   SG10 商用密度落到中枢实现层：全宽内容、工作台 hero、更紧的列表/指标。
   不改 L0 令牌；覆盖写在文件末尾以保证优先级。
   -------------------------------------------------------------------------- */
.shell > .workspace-inset > .content,
.shell .content {
  max-width: none;
  padding: 16px 20px 28px;
}
.content.content--workspace,
.content:has(.ws-hero) {
  display: flex;
  flex-direction: column;
  gap: 16px;
  container-type: inline-size;
  container-name: workspace;
}
.content.content--workspace > .section-gap,
.content:has(.ws-hero) > .section-gap { margin-top: 0; }
.content:has(.ws-hero) > .content-page-head--dashboard {
  display: flex;
  align-items: center;
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.content:has(.ws-hero) > .content-page-head--dashboard > h1,
.content:has(.ws-hero) > .content-page-head--dashboard > .content-page-head-actions {
  display: none;
}
.content:has(.ws-hero) > .content-page-head--dashboard .dashboard-page-tabs {
  width: fit-content;
  max-width: 100%;
}

.ws-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px 20px;
  align-items: center;
  margin: 0;
  padding: 20px 28px 20px 32px;
  min-height: 0;
  border: 1px solid #e8eefb;
  border-radius: 16px;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(247, 250, 255, .78) 0%, rgba(247, 250, 255, .28) 34%, transparent 62%),
    var(--sg-list-hero-outer) center / cover no-repeat,
    var(--brand-soft);
}
.ws-hero-copy { max-width: 640px; padding: 6px 0; min-width: 0; }
.ws-hero-copy h1 { margin: 0; font-size: 30px; font-weight: 750; color: #0f172a; letter-spacing: -.03em; }
.ws-hero-copy > p { margin: 10px 0 16px; color: #475569; font-size: 14px; line-height: 1.55; }
.ws-hero-feats { display: flex; flex-wrap: wrap; gap: 10px 18px; margin: 0; padding: 0; list-style: none; color: #334155; font-size: 13px; }
.ws-hero-feats li { display: inline-flex; align-items: center; gap: 6px; }
.ws-hero-feats li::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--brand); }
.ws-hero-art { display: flex; align-items: center; justify-content: flex-end; min-width: 0; }
.ws-hero-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: max-content;
  max-width: 100%;
  padding: 6px 14px 6px 6px;
  border-radius: 999px;
  color: #fff;
  background: var(--brand);
  text-decoration: none;
  box-shadow: 0 8px 20px rgba(37, 99, 235, .28);
  transition: background .15s ease, box-shadow .15s ease;
}
.ws-hero-cta:hover { color: #fff; background: var(--brand-dark); box-shadow: 0 12px 28px rgba(37, 99, 235, .34); }
.ws-hero-cta-plus {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  border-radius: 50%;
  background: #fff;
  color: var(--brand);
  font-size: 16px;
  font-weight: 500;
  line-height: 1;
  box-shadow: 0 0 0 3px rgba(255, 255, 255, .28);
}
.ws-hero-cta-copy { min-width: 0; }
.ws-hero-cta strong { display: block; font-size: 14px; font-weight: 650; line-height: 1.2; }
.ws-hero-cta small { display: block; margin-top: 1px; color: rgba(255, 255, 255, .88); font-size: 11px; font-weight: 400; }
.ws-hero-cta-arrow { font-size: 15px; font-weight: 300; opacity: .9; }

.shell .content .card.ws-flow {
  margin: 0;
  padding: 22px 16px;
  border: 1px solid #e8eef5;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
}
.ws-flow-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px 8px;
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}
.ws-flow-list li { min-width: 0; }
.ws-flow-list a {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 4px 8px;
  text-align: center;
  color: inherit;
  text-decoration: none;
  border-radius: 12px;
}
.ws-flow-list a:hover { background: #f8fafc; }
.ws-flow-index {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  color: #fff;
  background: var(--brand);
  font-size: 15px;
  font-weight: 700;
  box-shadow: 0 6px 14px rgba(37, 99, 235, .22);
}
.ws-flow-list strong { display: block; color: #0f172a; font-size: 14px; font-weight: 650; }
.ws-flow-list span { display: block; color: #64748b; font-size: 12px; line-height: 1.45; }

.shell .grid { gap: 16px; }
.shell .card.metric,
.shell a.card.metric.metric-link {
  gap: 12px;
  min-height: 0;
  padding: 18px 20px;
  border-radius: 12px;
}
.shell .metric.metric-link { gap: 12px; }
.shell .metric-value { font-size: 28px; font-weight: 700; letter-spacing: -.03em; }
.shell .metric-hint { display: block; }
.shell .dashboard-chart-card,
.shell .dashboard-analytics-card,
.shell .dashboard-reports-wide {
  border-color: #e8eef5;
  border-radius: 16px;
}

.nav-label-line {
  display: block;
  flex: 1 1 auto;
  height: 1px;
  margin-left: 8px;
  background: var(--line);
}
.shell .nav a,
.shell .nav-group-summary { min-height: 36px; padding: 8px 10px; }
.shell .nav-label { height: 32px; flex-basis: 32px; margin-top: 10px; }
.shell .topbar { height: 56px; }

.shell .list-table-section.list-card,
.list-page-stack > .list-table-section.list-card {
  padding: 16px;
  border: 1px solid #e8eef5;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
}
.shell .list-table-toolbar,
.list-card .list-table-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  min-height: 56px;
  padding: 10px 12px 10px 14px;
  border: 1px solid #e8eef5;
  border-radius: 14px;
  background: #fff;
}
.shell .list-table-toolbar .search-field,
.list-card .list-table-toolbar .search-field,
.list-page-toolbar-form .search-field {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 8px;
  flex: 0 1 260px;
  width: 260px;
  max-width: 100%;
  min-width: 168px;
  height: 36px;
  min-height: 36px;
  padding: 0 12px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  box-sizing: border-box;
}
.shell .list-table-toolbar .search-field .toolbar-search-icon,
.list-card .list-table-toolbar .search-field .toolbar-search-icon {
  position: static;
  top: auto;
  left: auto;
  transform: none;
  display: inline-flex;
  color: #9ca3af;
  flex: 0 0 auto;
}
.shell .list-table-toolbar .search-field .input,
.list-card .list-table-toolbar .search-field .input,
.list-page-toolbar-form .search-field .input {
  flex: 1 1 auto;
  width: auto;
  min-width: 0;
  height: 34px;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  font-size: 14px;
  line-height: 34px;
}
.shell .list-table-toolbar .search-field .input:focus,
.shell .list-table-toolbar .search-field .input:focus-visible,
.list-card .list-table-toolbar .search-field .input:focus,
.list-card .list-table-toolbar .search-field .input:focus-visible {
  outline: none;
  border: 0;
  box-shadow: none;
}
.shell .list-table-toolbar .search-field:hover,
.list-card .list-table-toolbar .search-field:hover { border-color: #c0c4cc; }
.shell .list-table-toolbar .search-field:focus-within,
.list-card .list-table-toolbar .search-field:focus-within {
  border-color: var(--brand);
  box-shadow: 0 0 0 1px var(--brand);
}

.shell .form-card.card {
  border-color: #e8eef5;
  border-radius: 16px;
}

.theme-dark .ws-hero {
  border-color: var(--border);
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--brand-soft) 78%, var(--panel)), transparent 58%),
    var(--brand-soft);
}
.theme-dark .ws-hero-copy h1,
.theme-dark .ws-flow-list strong { color: var(--foreground); }
.theme-dark .ws-hero-copy > p,
.theme-dark .ws-hero-feats,
.theme-dark .ws-flow-list span { color: var(--muted-foreground); }
.theme-dark .content:has(.ws-hero) > .content-page-head--dashboard,
.theme-dark .shell .content .card.ws-flow,
.theme-dark .shell .list-table-section.list-card,
.theme-dark .shell .list-table-toolbar,
.theme-dark .list-card .list-table-toolbar {
  border-color: var(--border);
  background: var(--card);
}
.theme-dark .shell .list-table-toolbar .search-field,
.theme-dark .list-card .list-table-toolbar .search-field {
  border-color: var(--border);
  background: var(--background);
}

@container workspace (max-width: 760px) {
  .ws-hero { grid-template-columns: 1fr; padding: 18px 20px; }
  .ws-hero-art { justify-content: flex-start; }
  .ws-hero-copy h1 { font-size: 24px; }
  .ws-flow-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .shell .content { padding: 16px 16px 28px; }
  .ws-flow-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .ws-hero { grid-template-columns: 1fr; padding: 16px 16px; }
  .ws-hero-copy h1 { font-size: 22px; }
  .ws-flow-list { grid-template-columns: 1fr 1fr; }
}

/* 商用页：对照 shadcn dashboard-01 与 Ant Design Pro PageContainer。
   列表仍保留 content-page-head--banner 类名，视觉改为白底页头。 */
.shell > main.workspace.workspace-inset,
.shell > .workspace-inset {
  background: #fafafa;
}
.shell .topbar { background: #fafafa; }
.shell .content-page-head--banner:not(.page-head-detail),
.shell .content-page-head--form,
.shell .content-page-head.content-page-head--split.content-page-head--banner {
  min-height: 0;
  padding: 16px 20px;
  border: 1px solid #e8eef5;
  border-radius: 12px;
  background: #fff;
  box-shadow: none;
}
.shell .content-page-head--banner h1,
.shell .content-page-head--form h1 { color: #18181b; }

.content.content--workspace {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.content.content--workspace > .section-gap,
.content.content--workspace > * { margin-top: 0; }
.dash-page-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px 20px;
}
.dash-page-copy h1 {
  margin: 0;
  font-size: 24px;
  font-weight: 650;
  letter-spacing: -.03em;
  color: #18181b;
}
.dash-page-copy p { margin: 6px 0 0; color: #71717a; font-size: 14px; line-height: 1.5; }
.dash-page-tools { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 10px; }
.dash-page-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.content--workspace .card.metric,
.content--workspace a.card.metric.metric-link {
  gap: 8px;
  padding: 16px 16px 14px;
  border-color: #e8eef5;
  border-radius: 12px;
  background: #fff;
  box-shadow: none;
}
.content--workspace .metric.metric-link { gap: 8px; }
.content--workspace .metric-label { color: #71717a; font-size: 13px; font-weight: 500; }
.content--workspace .metric-value { font-size: 28px; font-weight: 650; letter-spacing: -.03em; }
.content--workspace .metric-icon { color: #a1a1aa; }
.content--workspace .metric-hint,
.content--workspace .metric-trend { font-size: 12px; }
.dash-lower { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(260px, .75fr); gap: 16px; }
.dash-table-card { overflow: hidden; border: 1px solid #e8eef5; border-radius: 12px; background: #fff; box-shadow: none; }
.dash-table-card .card-head { padding: 16px 16px 0; border-bottom: 0; align-items: flex-start; }
.dash-table-card .card-head h2 { margin: 0; font-size: 16px; font-weight: 650; }
.dash-table-card .card-head p { margin: 4px 0 0; color: #71717a; font-size: 13px; }
.dash-table-card .table-wrap { margin: 12px 0 0; border: 0; border-top: 1px solid #ebeef5; border-radius: 0; box-shadow: none; }
.dash-empty { margin: 0; padding: 18px 16px; }
.dash-follow-list { list-style: none; margin: 8px 0 0; padding: 0; }
.dash-follow-list li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 16px; border-top: 1px solid #f4f4f5; font-size: 14px; }
.dash-follow-list a,
.dash-follow-list strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #18181b; font-weight: 550; }
.dash-follow-list a:hover { color: var(--brand); }
.dash-follow-list span { flex: 0 0 auto; color: #71717a; font-size: 13px; }
.shell .list-table-toolbar .list-filter-submit { min-height: 36px; height: 36px; padding: 0 14px; border-radius: 8px; }
.shell.theme-dark > .workspace-inset,
.shell.theme-dark .topbar,
.shell.theme-dark .content-page-head--banner:not(.page-head-detail),
.shell.theme-dark .content-page-head--form,
.shell.theme-dark .dash-table-card,
.shell.theme-dark .content--workspace .card.metric { background: var(--card); border-color: var(--border); }
.shell.theme-dark .dash-page-copy h1,
.shell.theme-dark .dash-follow-list a,
.shell.theme-dark .dash-follow-list strong { color: var(--foreground); }
@media (max-width: 960px) {
  .dash-lower { grid-template-columns: 1fr; }
  .dash-page-tools { justify-content: flex-start; }
}

/* 状态色对齐 Arco：成功 #00B42A、警告 #FF7D00、危险 #F53F3F。主色仍走配色预设。 */
:root {
  --green: #00b42a;
  --green-soft: #e8ffea;
  --orange: #ff7d00;
  --orange-soft: #fff7e8;
  --red: #f53f3f;
  --red-soft: #ffece8;
  --line: #f0f0f0;
  --border: #f0f0f0;
  --input: #d9d9d9;
  --motion-fast: 100ms;
  --motion-mid: 200ms;
  --motion-slow: 300ms;
  --ease-standard: cubic-bezier(0.2, 0, 0, 1);
}
.shell.theme-dark {
  --green: #49aa19;
  --green-soft: rgba(73, 170, 25, .16);
  --orange: #d89614;
  --orange-soft: rgba(216, 150, 20, .16);
  --red: #e84749;
  --red-soft: rgba(232, 71, 73, .16);
  --line: #263449;
  --border: #263449;
  --input: #334155;
}

.sg-nav-progress {
  position: fixed;
  z-index: 80;
  top: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background: var(--brand);
  transform-origin: 0 50%;
  animation: sg-nav-progress .55s var(--ease-standard) both;
  pointer-events: none;
}
@keyframes sg-nav-progress {
  0% { transform: scaleX(.08); opacity: 1; }
  70% { transform: scaleX(.86); opacity: 1; }
  100% { transform: scaleX(1); opacity: 0; }
}
.shell .content { animation: sg-fade-in var(--motion-mid) var(--ease-standard); }
@keyframes sg-fade-in {
  from { opacity: .01; }
  to { opacity: 1; }
}

.shell .button {
  min-height: 32px;
  padding: 0 15px;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 400;
  box-shadow: none;
  transform: none;
  transition: background var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard);
}
.shell .button-primary {
  color: var(--primary-foreground);
  background: var(--primary);
  border-color: var(--primary);
  box-shadow: none;
}
.shell .button-primary:hover { background: color-mix(in srgb, var(--primary) 88%, #fff); border-color: color-mix(in srgb, var(--primary) 88%, #fff); transform: none; }
.shell .button-primary:active { background: var(--brand-dark); border-color: var(--brand-dark); }
.shell .button-outline,
.shell .button-secondary {
  color: var(--foreground);
  background: var(--background);
  border-color: var(--input);
  box-shadow: none;
}
.shell .button-outline:hover,
.shell .button-secondary:hover { color: var(--brand); border-color: var(--brand); background: var(--background); }
.shell .button-destructive { color: #fff; background: var(--red); border-color: var(--red); }
.shell .button-destructive:hover { background: color-mix(in srgb, var(--red) 88%, #000); border-color: color-mix(in srgb, var(--red) 88%, #000); }
.shell .button:disabled,
.shell .button[disabled] { opacity: .45; cursor: not-allowed; box-shadow: none; }
.shell .button[aria-busy="true"] { position: relative; pointer-events: none; opacity: .72; }
.shell .button[aria-busy="true"]::before {
  content: "";
  width: 14px;
  height: 14px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: ui-spin .6s linear infinite;
}
.shell .button:focus-visible { outline: 2px solid color-mix(in srgb, var(--brand) 45%, transparent); outline-offset: 2px; }

.shell .input,
.shell .select,
.shell .textarea {
  border-color: var(--input);
  border-radius: 6px;
  box-shadow: none;
  transition: border-color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard);
}
.shell .input:hover,
.shell .select:hover,
.shell .textarea:hover { border-color: color-mix(in srgb, var(--brand) 45%, var(--input)); }
.shell .input:focus,
.shell .select:focus,
.shell .textarea:focus,
.shell .input:focus-visible,
.shell .select:focus-visible,
.shell .textarea:focus-visible {
  border-color: var(--brand);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--brand) 16%, transparent);
  outline: none;
}
.shell input[type="checkbox"],
.shell input[type="radio"] { accent-color: var(--brand); }

.shell .nav a,
.shell .nav-group-summary { transition: background var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard); }
.shell .nav a.active,
.shell .nav-group.is-active > .nav-group-summary,
.shell .nav-group[open] > .nav-group-summary {
  color: var(--foreground);
  background: color-mix(in srgb, var(--brand) 10%, var(--sidebar-accent));
  box-shadow: inset 2px 0 0 var(--brand);
  font-weight: 600;
}
.shell .nav a.active .nav-icon { color: var(--brand); }

.shell .list-page-stack .list-table-section .list-table thead th,
.shell .list-page-stack .list-table-section .table-wrap .list-table thead th,
.shell .list-card .list-table thead th {
  height: 40px;
  background: #fafafa;
  color: rgba(0, 0, 0, .45);
  font-size: 13px;
  font-weight: 500;
  border-bottom: 1px solid #f0f0f0;
}
.shell .list-page-stack .list-table-section .list-table tbody td,
.shell .list-page-stack .list-table-section .table-wrap .list-table tbody td,
.shell .list-card .list-table tbody td {
  color: rgba(0, 0, 0, .88);
  border-bottom-color: #f0f0f0;
  transition: background var(--motion-fast) var(--ease-standard);
}
.shell .list-page-stack .list-table-section .list-table tbody tr:hover,
.shell .list-card .list-table tbody tr:hover { background: #fafafa; }
.shell .list-table tbody tr:has(input[name="ids[]"]:checked),
.shell .list-card .list-table tbody tr:has(input[name="ids[]"]:checked) {
  background: color-mix(in srgb, var(--brand-soft) 80%, #fff);
}
.shell .list-table-section.list-card,
.shell .content-page-head--banner:not(.page-head-detail),
.shell .content-page-head--form,
.shell .dash-table-card,
.shell .content--workspace .card.metric {
  border-color: #f0f0f0;
}
.shell .badge {
  border-radius: 4px;
  font-weight: 400;
}
.shell .badge-tone-success,
.shell .badge-deal,
.shell .badge-maintaining,
.shell .badge-done { color: #389e0d; background: #f6ffed; border-color: #b7eb8f; }
.shell .badge-tone-info,
.shell .badge-developing,
.shell .badge-intention { color: var(--brand-dark); background: var(--brand-soft); border-color: color-mix(in srgb, var(--brand) 28%, #fff); }
.shell .badge-tone-warning,
.shell .badge-paused,
.shell .badge-lead { color: #d48806; background: #fffbe6; border-color: #ffe58f; }
.shell .badge-tone-danger,
.shell .badge-lost,
.shell .badge-failed { color: #cf1322; background: #fff1f0; border-color: #ffa39e; }

.shell .row-actions[open] .row-actions-panel,
.shell .command-menu[open] .command-panel,
.shell .profile-menu[open] .profile-panel,
.shell .config-drawer[open] .config-drawer-panel {
  animation: sg-pop var(--motion-mid) var(--ease-standard);
}
@keyframes sg-pop {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: none; }
}

.list-card.is-loading { position: relative; }
.list-card.is-loading .list-loading-mask {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  background: color-mix(in srgb, #fff 72%, transparent);
  border-radius: inherit;
}
.list-card.is-loading .ui-skeleton,
.list-card.is-loading .ui-skeleton-line {
  display: block;
  width: 72%;
  height: 12px;
  border-radius: 6px;
}
.shell.theme-dark .list-table thead th { background: color-mix(in srgb, var(--foreground) 6%, var(--card)); color: var(--muted-foreground); border-bottom-color: var(--border); }
.shell.theme-dark .list-table tbody td { color: var(--foreground); border-bottom-color: var(--border); }
.shell.theme-dark .list-table tbody tr:hover { background: color-mix(in srgb, var(--foreground) 6%, var(--card)); }
.shell.theme-dark .list-card.is-loading .list-loading-mask { background: color-mix(in srgb, var(--card) 72%, transparent); }
.shell.theme-dark .dash-page-copy h1,
.shell.theme-dark .content-page-head--banner h1,
.shell.theme-dark .content-page-head--form h1 { color: var(--foreground); }

@media (prefers-reduced-motion: reduce) {
  .sg-nav-progress,
  .shell .content,
  .shell .row-actions[open] .row-actions-panel,
  .shell .command-menu[open] .command-panel,
  .shell .profile-menu[open] .profile-panel,
  .shell .config-drawer[open] .config-drawer-panel { animation: none; }
}

/* --------------------------------------------------------------------------
   人气后台气质：Vben / Soybean 的灰底白卡，加上站酷 B 端常见的实色导航和指标色块。
   -------------------------------------------------------------------------- */
.shell > .workspace-inset {
  background: #f5f7fb;
  box-shadow: none;
}
.shell .sidebar {
  background: #fff;
  box-shadow: 1px 0 0 #eef1f6, 8px 0 24px rgba(15, 23, 42, .03);
}
.shell .topbar {
  height: 56px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(0, 21, 41, .06);
}
.shell > .workspace-inset > .content,
.shell .content { padding: 20px 24px 32px; }
.shell .nav { padding: 4px 12px 16px; gap: 2px; }
.shell .nav a,
.shell .nav-group-summary {
  min-height: 40px;
  border-radius: 8px;
  font-weight: 500;
}
.shell .nav a:hover,
.shell .nav-group-summary:hover { background: #f3f5f8; }
.shell .nav a.active {
  color: #fff;
  background: var(--brand);
  box-shadow: none;
  font-weight: 500;
}
.shell .nav a.active .nav-icon { color: #fff; }
.shell .nav-group.is-active > .nav-group-summary,
.shell .nav-group[open] > .nav-group-summary {
  color: var(--brand-dark);
  background: var(--brand-soft);
  box-shadow: none;
  font-weight: 600;
}

.shell .button {
  min-height: 36px;
  padding: 0 16px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 500;
}
.shell .button-small,
.shell .list-table-toolbar .button,
.shell .list-table-toolbar summary.button,
.shell .list-filter-submit {
  min-height: 32px;
  height: 32px;
  border-radius: 8px;
  font-weight: 500;
}
.shell .button-primary { box-shadow: 0 1px 2px color-mix(in srgb, var(--brand) 28%, transparent); }
.shell .button-primary:hover { box-shadow: 0 4px 10px color-mix(in srgb, var(--brand) 28%, transparent); }

.shell .content-page-head--banner:not(.page-head-detail),
.shell .content-page-head--form,
.shell .list-table-section.list-card,
.shell .dash-table-card,
.shell .dashboard-chart-card,
.shell .content--workspace .card.metric,
.shell .content--workspace a.card.metric.metric-link,
.shell .kit-main .showcase-section.card,
.shell .kit-nav {
  border-color: #e8edf5;
  background: #fff;
  box-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 8px 24px rgba(15, 23, 42, .03);
}
.shell .content-page-head--banner h1,
.shell .content-page-head--form h1,
.shell .dash-page-copy h1 { color: #1f2329; letter-spacing: -.02em; }
.shell .metric-icon {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  color: var(--brand);
  background: var(--brand-soft);
}
.shell .metric-icon .ui-icon { width: 18px; height: 18px; }
.shell .metric-label { color: #646a73; }
.shell .metric-value { color: #1f2329; }

.shell .list-page-stack .list-table-section .list-table thead th,
.shell .list-page-stack .list-table-section .table-wrap .list-table thead th,
.shell .list-card .list-table thead th {
  height: 44px;
  background: #f7f8fa;
  color: #8f959e;
  border-bottom-color: #eef1f6;
}
.shell .list-page-stack .list-table-section .list-table tbody td,
.shell .list-page-stack .list-table-section .table-wrap .list-table tbody td,
.shell .list-card .list-table tbody td {
  height: 52px;
  color: #1f2329;
  border-bottom-color: #f2f3f5;
}
.shell .list-page-stack .list-table-section .list-table tbody tr:hover,
.shell .list-card .list-table tbody tr:hover { background: #f2f6fc; }
.shell .list-table-toolbar,
.shell .list-card .list-table-toolbar {
  border-color: #e8edf5;
  border-radius: 10px;
  background: #fff;
}
.shell .badge { border-radius: 6px; font-weight: 500; }

.shell.theme-dark > .workspace-inset { background: #0b1220; }
.shell.theme-dark .sidebar,
.shell.theme-dark .topbar { background: var(--card); box-shadow: none; }
.shell.theme-dark .nav a:hover,
.shell.theme-dark .nav-group-summary:hover { background: var(--sidebar-accent); }
.shell.theme-dark .nav a.active {
  color: #fff;
  background: var(--brand);
}
.shell.theme-dark .nav a.active .nav-icon { color: #fff; }
.shell.theme-dark .content-page-head--banner:not(.page-head-detail),
.shell.theme-dark .content-page-head--form,
.shell.theme-dark .list-table-section.list-card,
.shell.theme-dark .dash-table-card,
.shell.theme-dark .dashboard-chart-card,
.shell.theme-dark .content--workspace .card.metric,
.shell.theme-dark .kit-main .showcase-section.card,
.shell.theme-dark .kit-nav {
  background: var(--card);
  border-color: var(--border);
  box-shadow: none;
}
.shell.theme-dark .list-table thead th { background: color-mix(in srgb, var(--foreground) 6%, var(--card)); color: var(--muted-foreground); }
.shell.theme-dark .list-table tbody td { color: var(--foreground); }
.shell.theme-dark .list-table tbody tr:hover { background: color-mix(in srgb, var(--foreground) 6%, var(--card)); }
.shell.theme-dark .metric-icon { color: var(--brand); background: color-mix(in srgb, var(--brand) 18%, transparent); }

/* 组件库视觉体系，对齐 Semi Design。品牌色仍走配色预设。 */
.shell {
  --sg-canvas: #f7f8fa;
  --sg-surface: #ffffff;
  --sg-ink: #121314;
  --sg-subtle: #5c5c5c;
  --sg-faint: #909399;
  --sg-placeholder: #c2c2c2;
  --sg-line: #ebeef5;
  --sg-line-soft: #e5e6eb;
  --sg-line-control: #dcdfe6;
  --sg-header: #fafafa;
  --sg-hover: #f7f8fa;
  --sg-fill: #fafafa;
  --sg-fill-hover: #f2f3f5;
  --sg-radius-control: 4px;
  --sg-radius-menu: 6px;
  --sg-radius-card: 4px;
  --sg-radius-small: 4px;
  --sg-radius-medium: 6px;
  --sg-radius-large: 8px;
  --sg-fill-2: #f2f3f5;
  --sg-fill-3: #e5e6eb;
  --sg-line-4: #cdd0d6;
  --sg-shadow-card: none;
  --sg-shadow-1: 0 2px 5px rgba(0, 0, 0, .1);
  --sg-shadow-pop: var(--sg-shadow-1);
  --sg-size-mini: 24px;
  --sg-size-small: 28px;
  --sg-size-default: 32px;
  --sg-size-title: 44px;
  --sg-icon-hover: 24px;
  --sg-leading: 1.5715;
  --sg-control: 32px;
  --sg-control-sm: 28px;
}
.shell.theme-dark {
  --sg-canvas: #0b1220;
  --sg-surface: var(--card);
  --sg-ink: var(--foreground);
  --sg-subtle: var(--muted-foreground);
  --sg-faint: var(--muted-foreground);
  --sg-line: var(--border);
  --sg-line-soft: var(--border);
  --sg-header: color-mix(in srgb, var(--foreground) 6%, var(--card));
  --sg-hover: color-mix(in srgb, var(--foreground) 6%, var(--card));
  --sg-shadow-card: none;
}
.shell > .workspace-inset { background: var(--sg-canvas); }
.shell .sidebar,
.shell .topbar,
.shell .content-page-head--banner:not(.page-head-detail),
.shell .content-page-head--form,
.shell .list-table-section.list-card,
.shell .dash-table-card,
.shell .dashboard-chart-card,
.shell .content--workspace .card.metric,
.shell .content--workspace a.card.metric.metric-link { background: var(--sg-surface); }
.shell .content-page-head--banner:not(.page-head-detail),
.shell .content-page-head--form,
.shell .list-table-section.list-card,
.shell .dash-table-card,
.shell .dashboard-chart-card,
.shell .content--workspace .card.metric,
.shell .content--workspace a.card.metric.metric-link {
  border-color: var(--sg-line);
  border-radius: var(--sg-radius-card);
  box-shadow: var(--sg-shadow-card);
}
.shell .content h1,
.shell .content-page-head h1,
.shell .dash-page-copy h1 { color: var(--sg-ink); font-weight: 650; letter-spacing: -.02em; }
.shell .content-page-head h1 { font-size: 20px; }
.shell .dash-page-copy h1 { font-size: 24px; }
.shell .content h2,
.shell .card-head h2 { color: var(--sg-ink); font-size: 16px; font-weight: 650; }
.shell .content .lead,
.shell .dash-page-copy p,
.shell .card-description,
.shell .metric-label { color: var(--sg-subtle); }
.shell .button { min-height: var(--sg-control); border-radius: var(--sg-radius-control); }
.shell .button-small,
.shell .list-table-toolbar .button,
.shell .list-table-toolbar summary.button,
.shell .pagination .button { min-height: var(--sg-control-sm); height: var(--sg-control-sm); border-radius: var(--sg-radius-control); }
.shell .field label,
.shell .field .ui-label,
.shell .ui-label { color: var(--sg-ink); font-size: 13px; font-weight: 500; }
.shell .empty { padding: 48px 24px; }
.shell .empty-mark {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  color: var(--brand);
  background: var(--brand-soft);
}
.shell .empty h3 { margin: 0; color: var(--sg-ink); font-size: 15px; font-weight: 650; }
.shell .empty p { color: var(--sg-subtle); font-size: 13px; }
.shell .notice { border-radius: var(--sg-radius-control); }
.shell .list-page-stack .list-table-section .list-table thead th,
.shell .list-page-stack .list-table-section .table-wrap .list-table thead th,
.shell .list-card .list-table thead th {
  background: var(--sg-header);
  color: var(--sg-faint);
  border-bottom-color: var(--sg-line);
}
.shell .list-page-stack .list-table-section .list-table tbody td,
.shell .list-card .list-table tbody td { color: var(--sg-ink); border-bottom-color: var(--sg-line-soft); }
.shell .list-page-stack .list-table-section .list-table tbody tr:hover,
.shell .list-card .list-table tbody tr:hover { background: var(--sg-hover); }
.shell .pagination { color: var(--sg-subtle); }
.shell .pagination .button[aria-current="page"] { box-shadow: none; }

.sg-swatches { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0 0 16px; }
.sg-swatch { display: grid; grid-template-columns: 28px minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 10px; align-items: center; }
.sg-swatch i { grid-row: 1 / span 2; width: 28px; height: 28px; border-radius: 8px; }
.sg-swatch b { color: var(--sg-ink, #1f2329); font-size: 13px; font-weight: 600; }
.sg-swatch span { color: var(--sg-faint, #8f959e); font-size: 12px; }
.tone-canvas { background: #f7f8fa; box-shadow: inset 0 0 0 1px #ebeef5; }
.tone-surface { background: #fff; box-shadow: inset 0 0 0 1px #e5e6eb; }
.tone-ink { background: #121314; }
.tone-subtle { background: #5c5c5c; }
.tone-brand { background: var(--brand); }
.tone-success { background: #00b42a; }
.tone-warning { background: #ff7d00; }
.tone-danger { background: #f53f3f; }
.sg-type-sample { display: grid; gap: 6px; margin: 0 0 14px; padding: 14px 16px; border: 1px solid var(--sg-line, #e8edf5); border-radius: 12px; background: var(--sg-canvas, #f5f7fb); }
.sg-type-display { margin: 0; color: var(--sg-ink, #1f2329); font-size: 24px; font-weight: 650; letter-spacing: -.02em; }
.sg-type-title { margin: 0; color: var(--sg-ink, #1f2329); font-size: 20px; font-weight: 650; }
.sg-type-body { margin: 0; color: var(--sg-ink, #1f2329); font-size: 14px; font-weight: 400; }
.sg-type-meta { margin: 0; color: var(--sg-subtle, #646a73); font-size: 13px; }
.sg-spec-list { margin: 0; padding-left: 18px; color: var(--sg-subtle, #646a73); font-size: 13px; line-height: 1.7; }
@media (max-width: 720px) {
  .sg-swatches { grid-template-columns: 1fr 1fr; }
}

/* Semi：浅底控件、3px 圆角、选中导航用浅品牌色，卡片靠描边不靠重阴影。 */
.shell .sidebar { box-shadow: 1px 0 0 var(--sg-line); }
.shell .topbar { box-shadow: none; border-bottom: 1px solid var(--sg-line); }
.shell .nav a,
.shell .nav-group-summary { min-height: 36px; border-radius: var(--sg-radius-control); font-weight: 400; }
.shell .nav a:hover,
.shell .nav-group-summary:hover { background: var(--sg-fill-hover); }
.shell .nav a.active {
  color: var(--brand);
  background: var(--brand-soft);
  box-shadow: none;
  font-weight: 600;
}
.shell .nav a.active .nav-icon { color: var(--brand); }
.shell .nav-group.is-active > .nav-group-summary,
.shell .nav-group[open] > .nav-group-summary {
  color: var(--brand);
  background: transparent;
  font-weight: 600;
  box-shadow: none;
}
.shell .button,
.shell .button-small,
.shell .list-table-toolbar .button,
.shell .list-filter-submit,
.shell .pagination .button {
  min-height: var(--sg-control);
  height: var(--sg-control);
  padding: 0 12px;
  border-radius: var(--sg-radius-control);
  font-size: 14px;
  font-weight: 600;
  box-shadow: none;
}
.shell .button-outline,
.shell .button-secondary {
  background: transparent;
  border-color: transparent;
  color: var(--sg-ink);
}
.shell .button-outline:hover,
.shell .button-secondary:hover {
  background: var(--sg-fill);
  border-color: transparent;
  color: var(--sg-ink);
}
.shell .button-primary { color: #fff; background: var(--brand); border-color: var(--brand); }
.shell .button-primary:hover { color: #fff; background: color-mix(in srgb, var(--brand) 86%, #fff); border-color: color-mix(in srgb, var(--brand) 86%, #fff); box-shadow: none; }
.shell .button-primary:active { background: var(--brand-dark); border-color: var(--brand-dark); }
.shell .input,
.shell .select,
.shell .textarea {
  min-height: var(--sg-control);
  border-radius: var(--sg-radius-control);
  border-color: transparent;
  background: var(--sg-fill);
  box-shadow: none;
}
.shell .input:hover,
.shell .select:hover,
.shell .textarea:hover { border-color: transparent; background: var(--sg-fill-hover); }
.shell .input:focus,
.shell .select:focus,
.shell .textarea:focus,
.shell .input:focus-visible,
.shell .select:focus-visible,
.shell .textarea:focus-visible {
  border-color: var(--brand);
  background: var(--sg-fill);
  box-shadow: none;
}
.shell .list-table-toolbar .search-field,
.shell .list-card .list-table-toolbar .search-field {
  border-color: transparent;
  background: var(--sg-fill);
  border-radius: var(--sg-radius-control);
}
.shell .list-table-toolbar .search-field:hover,
.shell .list-card .list-table-toolbar .search-field:hover { border-color: transparent; background: var(--sg-fill-hover); }
.shell .list-table-toolbar .search-field:focus-within,
.shell .list-card .list-table-toolbar .search-field:focus-within {
  border-color: var(--brand);
  background: var(--sg-fill);
  box-shadow: none;
}
.shell .content h1,
.shell .content-page-head h1,
.shell .dash-page-copy h1,
.shell .content h2,
.shell .card-head h2 { font-weight: 600; }
.shell .metric-icon { border-radius: var(--sg-radius-menu); }
.shell .badge { border-radius: var(--sg-radius-control); font-weight: 600; }
.shell .badge-tone-success,
.shell .badge-deal,
.shell .badge-maintaining,
.shell .badge-done { color: #3bb346; background: #ecf7ec; border-color: transparent; }
.shell .badge-tone-warning,
.shell .badge-paused,
.shell .badge-lead { color: #fc8800; background: #fff8ea; border-color: transparent; }
.shell .badge-tone-danger,
.shell .badge-lost,
.shell .badge-failed { color: #f93920; background: #fef2ed; border-color: transparent; }
.shell .row-actions-panel,
.shell .command-panel,
.shell .profile-panel,
.shell .config-drawer-panel { border-radius: var(--sg-radius-menu); box-shadow: var(--sg-shadow-pop); }
.shell.theme-dark .nav a.active,
.shell.theme-dark .nav a.active .nav-icon { color: var(--brand); background: var(--brand-soft); }

/* Arco theme 2838：文字、描边、填充、4px 圆角。主色走品牌蓝 #165DFF。 */
.shell .content-page-head--banner:not(.page-head-detail),
.shell .content-page-head--form {
  border-color: var(--sg-line-soft);
  border-radius: var(--sg-radius-card);
  background: var(--sg-surface);
  box-shadow: none;
}
.shell .content-page-head h1,
.shell .dash-page-copy h1 { font-size: 16px; font-weight: 600; letter-spacing: 0; color: var(--sg-ink); }
.shell .list-table-section.list-card,
.shell .dash-table-card,
.shell .dashboard-chart-card,
.shell .content--workspace .card.metric,
.shell .content--workspace a.card.metric.metric-link {
  border: 1px solid var(--sg-line-soft);
  border-radius: var(--sg-radius-card);
  background: var(--sg-surface);
  box-shadow: none;
}
.shell .nav a,
.shell .nav-group-summary { color: var(--sg-subtle); border-radius: var(--sg-radius-control); }
.shell .nav a.active {
  color: var(--brand);
  background: var(--brand-soft);
  font-weight: 500;
  box-shadow: none;
}
.shell .nav a.active .nav-icon { color: var(--brand); }
.shell .button {
  min-height: var(--sg-size-default);
  height: var(--sg-size-default);
  padding: 0 16px;
  gap: 8px;
  border-radius: var(--sg-radius-small);
  font-size: 14px;
  font-weight: 400;
  line-height: 1;
  box-shadow: none;
  transform: none;
}
.shell .button:hover,
.shell .button:active { transform: none; }
.shell .button-small,
.shell .list-table-toolbar .button,
.shell .list-table-toolbar summary.button {
  min-height: var(--sg-size-small);
  height: var(--sg-size-small);
  padding: 0 12px;
  gap: 4px;
}
.shell .pagination .button {
  min-height: var(--sg-size-default);
  height: var(--sg-size-default);
}
.shell .button-secondary {
  color: var(--sg-ink);
  background: transparent;
  border-color: var(--sg-line-control);
}
.shell .button-secondary:hover {
  color: var(--sg-ink);
  background: transparent;
  border-color: var(--sg-line-control);
}
.shell .button-secondary:active {
  color: var(--sg-ink);
  background: var(--sg-fill-2);
  border-color: var(--sg-line-4);
}
.shell .button-secondary:disabled {
  color: var(--sg-placeholder);
  background: var(--sg-fill);
  border-color: var(--sg-line-soft);
}
.shell .button-outline {
  color: var(--brand);
  background: var(--brand-soft);
  border-color: color-mix(in srgb, var(--brand) 48%, #fff);
}
.shell .button-outline:hover {
  color: #fff;
  background: var(--brand);
  border-color: var(--brand);
}
.shell .button-outline:active {
  color: #fff;
  background: var(--brand-dark);
  border-color: var(--brand-dark);
}
.shell .button-dashed {
  color: var(--brand);
  background: transparent;
  border-style: dashed;
  border-color: var(--brand);
}
.shell .button-dashed:hover {
  color: color-mix(in srgb, var(--brand) 78%, #fff);
  background: transparent;
  border-color: color-mix(in srgb, var(--brand) 78%, #fff);
}
.shell .button-dashed:active {
  color: var(--brand-dark);
  background: var(--brand-soft);
  border-color: var(--brand-dark);
}
.shell .button-ghost {
  color: var(--sg-ink);
  background: transparent;
  border-color: transparent;
}
.shell .button-ghost:hover { background: var(--sg-fill-2); border-color: transparent; color: var(--sg-ink); }
.shell .button-link {
  height: auto;
  min-height: 0;
  padding: 0;
  border: 0;
  color: var(--brand);
  background: transparent;
  font-weight: 400;
}
.shell .button-link:hover { color: color-mix(in srgb, var(--brand) 78%, #fff); text-decoration: none; }
.shell .button-link:active { color: var(--brand-dark); }
.shell .button-primary { color: #fff; background: var(--brand); border-color: var(--brand); }
.shell .button-primary:hover { color: #fff; background: color-mix(in srgb, var(--brand) 78%, #fff); border-color: color-mix(in srgb, var(--brand) 78%, #fff); }
.shell .button-primary:active { color: #fff; background: var(--brand-dark); border-color: var(--brand-dark); }
.shell .ui-icon-button,
.shell .header-icon-button,
.shell .topbar-trigger {
  width: var(--sg-icon-hover);
  height: var(--sg-icon-hover);
  min-height: var(--sg-icon-hover);
  padding: 0;
  border: 0;
  border-radius: var(--sg-radius-circle, 50%);
  background: transparent;
  box-shadow: none;
  color: var(--sg-subtle);
}
.shell .ui-icon-button:hover,
.shell .header-icon-button:hover,
.shell .topbar-trigger:hover {
  background: var(--sg-fill-2);
  border-color: transparent;
  color: var(--sg-ink);
}
.shell .avatar { background: var(--sg-fill-3); color: var(--sg-subtle); font-weight: 500; }
.shell .ui-separator { background: var(--sg-line-soft); }
.shell .card-head { min-height: var(--sg-size-title); }
.shell .card-head h2,
.shell .card-head h3 { font-size: 16px; font-weight: 500; letter-spacing: 0; line-height: var(--sg-leading); }
.shell .content p a,
.shell .card-description a,
.shell .lead a { color: var(--brand); text-decoration: none; }
.shell .content p a:hover,
.shell .card-description a:hover,
.shell .lead a:hover { color: color-mix(in srgb, var(--brand) 78%, #fff); }
.shell .list-table thead th,
.shell .list-table tbody td { font-size: 14px; line-height: var(--sg-leading); }
.shell .row-actions-panel,
.shell .command-panel,
.shell .profile-panel,
.shell .config-drawer-panel { border-radius: var(--sg-radius-medium); box-shadow: var(--sg-shadow-pop); }
.shell .input,
.shell .select,
.shell .textarea,
.shell .list-table-toolbar .search-field,
.shell .list-card .list-table-toolbar .search-field {
  background: transparent;
  border-color: var(--sg-line-control);
  border-radius: var(--sg-radius-control);
}
.shell .input::placeholder,
.shell .textarea::placeholder { color: var(--sg-placeholder); }
.shell .input:hover,
.shell .select:hover,
.shell .list-table-toolbar .search-field:hover,
.shell .list-card .list-table-toolbar .search-field:hover {
  background: transparent;
  border-color: #cdd0d6;
}
.shell .input:focus,
.shell .select:focus,
.shell .textarea:focus,
.shell .list-table-toolbar .search-field:focus-within,
.shell .list-card .list-table-toolbar .search-field:focus-within {
  background: transparent;
  border-color: var(--brand);
  box-shadow: none;
}
.shell .list-page-stack .list-table-section .list-table thead th,
.shell .list-card .list-table thead th {
  background: var(--sg-header);
  color: var(--sg-faint);
  font-weight: 600;
  border-bottom-color: var(--sg-line-soft);
}
.shell .list-page-stack .list-table-section .list-table tbody td,
.shell .list-card .list-table tbody td { color: var(--sg-ink); border-bottom-color: var(--sg-line-soft); }
.shell .list-page-stack .list-table-section .list-table tbody tr:hover,
.shell .list-card .list-table tbody tr:hover { background: var(--sg-hover); }
.shell .badge,
.shell .badge-tone-success,
.shell .badge-tone-warning,
.shell .badge-tone-danger,
.shell .badge-tone-info { border-radius: var(--sg-radius-control); font-weight: 500; }
.shell .badge-tone-success,
.shell .badge-deal,
.shell .badge-maintaining,
.shell .badge-done { color: #00b42a; background: #e8ffea; border-color: transparent; }
.shell .badge-tone-warning,
.shell .badge-paused,
.shell .badge-lead { color: #ff7d00; background: #fff7e8; border-color: transparent; }
.shell .badge-tone-danger,
.shell .badge-lost,
.shell .badge-failed { color: #f53f3f; background: #ffece8; border-color: transparent; }
.shell .badge-tone-info,
.shell .badge-developing,
.shell .badge-intention { color: var(--brand); background: var(--brand-soft); border-color: transparent; }
.shell .metric-icon { color: var(--brand); background: var(--brand-soft); border-radius: var(--sg-radius-control); }
.shell .kit-main .showcase-section.card,
.shell .kit-nav {
  border: 1px solid var(--sg-line-soft);
  border-radius: var(--sg-radius-card);
  background: var(--sg-surface);
  box-shadow: none;
}
.shell .kit-nav a { border-radius: var(--sg-radius-small); }
.shell .kit-main .showcase-section h2 { font-size: 16px; font-weight: 500; letter-spacing: 0; }
.shell .ui-dialog { border-radius: 8px; }

/* Arco 2838：描述列表、空状态、列表、气泡、反馈、录入、导航。 */
.shell .definition { border: 1px solid var(--sg-line-soft); border-radius: var(--sg-radius-small); overflow: hidden; }
.shell .definition dt, .shell .definition dd { padding: 8px 12px; border-bottom: 1px solid var(--sg-line-soft); font-size: 14px; }
.shell .definition dt { background: var(--sg-header); color: var(--sg-subtle); }
.shell .definition dd { color: var(--sg-ink); }
.shell .empty h3, .shell .empty p, .shell .empty-mark { color: var(--sg-placeholder); }
.shell .empty-mark { width: 40px; height: 40px; margin-bottom: 4px; border-radius: 0; background: transparent; font-weight: 500; }
.shell .list-table,
.shell .sg-list-table { border-radius: 0; }
.shell .list-table th,
.shell .list-table td { padding-top: 10px; padding-bottom: 10px; }
.shell .ui-popover-panel,
.shell .ui-dropdown-panel,
.shell .ui-alert-dialog-panel,
.shell .command-panel,
.shell .profile-panel {
  border: 1px solid var(--sg-line-soft);
  border-radius: var(--sg-radius-medium);
  box-shadow: var(--sg-shadow-1);
}
.shell .ui-tooltip-host[data-tooltip]::after { padding: 6px 10px; border-radius: var(--sg-radius-small); font-size: 12px; }
.shell .ui-alert { border-radius: var(--sg-radius-small); border-color: var(--sg-line-soft); }
.shell .notice,
.shell .sg-toast { border-radius: 8px; box-shadow: var(--sg-shadow-1); }
.shell .ui-dialog { border: 0; border-radius: 8px; box-shadow: var(--sg-shadow-3, 0 8px 20px rgba(0, 0, 0, .1)); }
.shell .ui-dialog-body { padding: 18px 20px; }
.shell .ui-dialog-footer { gap: 10px; padding: 12px 20px; }
.shell .ui-sheet,
.shell .ui-sheet-panel { border-color: var(--sg-line-soft); }
.shell .ui-sheet-body { padding: 12px 16px; }
.shell .ui-sheet-footer { padding: 10px 16px; border-top-color: var(--sg-line-soft); }
.shell .ui-accordion,
.shell .ui-collapsible { border: 1px solid var(--sg-line-soft); border-radius: var(--sg-radius-small); background: var(--sg-surface); }
.shell .ui-accordion-item { padding: 0 12px; border-bottom-color: var(--sg-line-soft); }
.shell .ui-collapsible > summary,
.shell .ui-accordion-item > summary { padding: 10px 0; font-weight: 500; }
.shell .ui-tabs { padding: 0; gap: 0; border: 0; border-bottom: 1px solid var(--sg-line-soft); border-radius: 0; background: transparent; }
.shell .ui-tab { position: relative; padding: 8px 16px; border-radius: 0; color: var(--sg-subtle); background: transparent; box-shadow: none; }
.shell .ui-tab:hover { color: var(--sg-ink); background: var(--sg-fill-2); }
.shell .ui-tab.is-active { color: var(--brand); background: transparent; font-weight: 500; box-shadow: none; border-color: transparent; }
.shell .ui-tab.is-active::after { content: ""; position: absolute; right: 16px; bottom: 0; left: 16px; height: 1.6px; background: var(--brand); }
.shell .ui-tab.is-disabled { color: var(--sg-placeholder); }
.shell .dashboard-page-tabs.ui-tabs { padding: 2px; border: 0; border-radius: var(--sg-radius-medium); background: var(--sg-fill-2); }
.shell .dashboard-page-tabs .ui-tab { border-radius: var(--sg-radius-small); }
.shell .dashboard-page-tabs .ui-tab.is-active { background: var(--sg-surface); }
.shell .dashboard-page-tabs .ui-tab.is-active::after { display: none; }
.shell .check input[type="checkbox"],
.shell .sg-tree input[type="checkbox"] { width: 16px; height: 16px; accent-color: var(--brand); }
.shell .check input:disabled { accent-color: var(--sg-line-soft); }
.shell input[type="radio"] { width: 16px; height: 16px; margin-right: 6px; accent-color: var(--brand); }
.shell .ui-switch-track,
.shell .ui-switch { width: 44px; height: 24px; }
.shell .ui-switch-track::after,
.shell .ui-switch::after { width: 18px; height: 18px; }
.shell .ui-switch-field input:checked + .ui-switch-track::after,
.shell .ui-switch.is-active::after { transform: translateX(20px); }
.shell .input[aria-invalid="true"],
.shell .select[aria-invalid="true"],
.shell .textarea[aria-invalid="true"] { border-color: var(--red); background: var(--sg-surface); box-shadow: none; }
.shell .input:disabled,
.shell .select:disabled,
.shell .textarea:disabled { background: var(--sg-fill); border-color: var(--sg-line-soft); color: var(--sg-placeholder); }
.shell .pagination,
.shell .pagination-total { color: var(--sg-ink); }
.shell .sg-stepper-index,
.shell .step::before { width: 24px; height: 24px; border-radius: 50%; font-size: 14px; }
.shell .sg-transfer-pane { height: 250px; border-color: var(--sg-line-soft); border-radius: 0; }
.shell .timeline-item { border-left: 1px solid var(--sg-line-soft); }
.shell .sg-comment time { color: var(--sg-faint); }
.shell .sg-comment-actions button { color: var(--sg-subtle); }

/* 右侧工作区平铺，对照 SG10：贴边、无圆角、无浮层阴影。 */
.shell > main.workspace.workspace-inset,
.shell > .workspace-inset,
.shell.is-sidebar-collapsed > .workspace-inset {
  margin: 0;
  min-height: 100dvh;
  height: auto;
  border: 0;
  border-left: 1px solid var(--sg-line-soft, #e5e6eb);
  border-radius: 0;
  background: var(--sg-canvas, #f7f8fa);
  box-shadow: none;
}
.shell > .workspace-inset > .topbar,
.shell > .workspace-inset > .topbar:first-child,
.shell .topbar {
  height: 56px;
  padding: 0 16px;
  border-radius: 0;
  background: #fff;
  border-bottom: 1px solid var(--sg-line-soft, #e5e6eb);
  box-shadow: none;
}
.shell > .workspace-inset > .content,
.shell .content {
  max-width: none;
  width: 100%;
  margin: 0;
  padding: 24px 24px 40px;
}
@media (max-width: 900px) {
  .shell > .workspace-inset,
  .shell.is-sidebar-collapsed > .workspace-inset { margin: 0; border-left: 0; border-radius: 0; }
  .shell .content { padding: 16px 16px 32px; }
}

/* 字体、字号、间距收到 Arco 2838：14 正文、16 标题、4 的倍数间距。 */
.shell .content,
.shell .topbar,
.shell .sidebar,
.shell .button,
.shell .input,
.shell .select,
.shell .textarea,
.shell .nav a,
.shell .nav-group-summary {
  font-family: var(--sg-font);
  letter-spacing: 0;
}
.shell .content { padding: 16px 16px 32px; }
.shell .content h1,
.shell .content-page-head h1,
.shell .dash-page-copy h1,
.shell .page-head h1 {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0;
}
.shell .content h2,
.shell .card-head h2,
.shell .card-head h3 {
  font-size: 16px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0;
}
.shell .content h3,
.shell .empty h3 { font-size: 14px; font-weight: 500; letter-spacing: 0; }
.shell .lead,
.shell .content-page-head .lead,
.shell .dash-page-copy p,
.shell .card-description,
.shell .metric-label,
.shell .field label,
.shell .ui-label {
  font-size: 13px;
  font-weight: 400;
  line-height: 1.5715;
}
.shell .nav a,
.shell .nav-group-summary { min-height: 32px; padding: 0 12px; font-size: 13px; font-weight: 400; }
.shell .nav a.active,
.shell .nav-group.is-active > .nav-group-summary { font-weight: 500; }
.shell .metric-value,
.shell .card.metric .metric-slot,
.shell .metric-slot { font-size: 24px; font-weight: 600; letter-spacing: 0; line-height: 1.25; }
.shell .list-table thead th,
.shell .list-table tbody td { font-size: 14px; }
.shell .list-table thead th { font-weight: 600; }
.shell .content--workspace,
.shell .content.content--workspace { gap: 16px; }
.sg-type-display { font-size: 24px; font-weight: 500; letter-spacing: 0; }
.sg-type-title { font-size: 20px; font-weight: 500; letter-spacing: 0; }
.sg-type-body { font-size: 14px; font-weight: 400; line-height: 1.5715; }
.sg-type-meta { font-size: 13px; line-height: 1.5715; }

/* 经营总览重排：页头分行，指标只保留标签和数字，卡片统一白底细边。 */
.shell .content.content--workspace { padding: 24px 24px 40px; gap: 20px; min-width: 0; overflow-x: clip; }
.shell .dash-page-head {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 16px;
  margin: 0;
}
.shell .dash-page-copy h1 { font-size: 20px; font-weight: 600; letter-spacing: 0; line-height: 1.4; color: var(--sg-ink); }
.shell .dash-page-copy p { margin: 6px 0 0; max-width: 42em; color: var(--sg-subtle); font-size: 13px; font-weight: 400; line-height: 1.5715; }
.shell .dash-page-tools { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; width: 100%; }
.shell .dash-page-actions { gap: 8px; }
.shell .dashboard-page-tabs.ui-tabs { padding: 2px; border-radius: 6px; background: var(--sg-fill-2); }
.shell .content--workspace .grid.grid-4 { gap: 16px; }
.shell .content--workspace .card.metric,
.shell .content--workspace a.card.metric.metric-link {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 112px;
  padding: 20px;
  border: 1px solid var(--sg-line-soft);
  border-radius: 8px;
  background: #fff;
  box-shadow: none;
}
.shell .content--workspace .metric-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.shell .content--workspace .metric-label { color: var(--sg-subtle); font-size: 13px; font-weight: 400; }
.shell .content--workspace .metric-icon {
  width: 16px;
  height: 16px;
  padding: 0;
  border-radius: 0;
  color: var(--sg-faint);
  background: transparent;
}
.shell .content--workspace .metric-icon .ui-icon { width: 16px; height: 16px; }
.shell .content--workspace .metric-body { gap: 4px; }
.shell .content--workspace .metric-value,
.shell .content--workspace .metric-slot {
  font-size: 24px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.25;
  color: var(--sg-ink);
}
.shell .content--workspace .metric-trend,
.shell .content--workspace .metric-hint {
  margin: 0;
  color: var(--sg-faint);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
}
.shell .content--workspace a.card.metric:hover { border-color: var(--sg-line-control); }
.shell .dashboard-chart-card,
.shell .dash-table-card {
  border: 1px solid var(--sg-line-soft);
  border-radius: 8px;
  background: #fff;
  box-shadow: none;
  overflow: hidden;
}
.shell .dashboard-chart-card { min-height: 0; }
.shell .dashboard-chart-card .card-head,
.shell .dash-table-card .card-head {
  min-height: 0;
  padding: 16px 20px;
  border-bottom: 1px solid var(--sg-line);
  align-items: center;
}
.shell .dashboard-chart-card .card-head h2,
.shell .dash-table-card .card-head h2 { font-size: 16px; font-weight: 600; letter-spacing: 0; }
.shell .dashboard-chart-card .card-head p,
.shell .dash-table-card .card-head p { margin: 2px 0 0; color: var(--sg-faint); font-size: 12px; }
.shell .dashboard-chart-card .ui-area-chart,
.shell .dashboard-chart-full .dashboard-area-chart { min-height: 240px; padding: 8px 12px 16px; }
.shell .dash-lower { gap: 16px; align-items: start; }
.shell .dash-table-card .table-wrap { margin: 0; border: 0; border-radius: 0; }
.shell .dash-follow-list { margin: 0; }
.shell .dash-follow-list li { padding: 12px 20px; border-top: 1px solid var(--sg-line); }
.shell .dash-follow-list li:first-child { border-top: 0; }
@media (max-width: 1100px) {
  .shell .content--workspace .grid.grid-4 { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 720px) {
  .shell .content.content--workspace { padding: 16px; }
  .shell .content--workspace .grid.grid-4,
  .shell .dash-lower { grid-template-columns: 1fr; }
}

/* Analysis layout + icon/motion polish */
.shell { --sg-icon-hover: 32px; }
.shell .content { animation: sg-page-enter .28s var(--ease-standard); }
@keyframes sg-page-enter {
  from { transform: translateY(6px); }
  to { transform: none; }
}
.shell .nav a,
.shell .nav-group-summary { gap: 12px; min-height: 40px; }
.shell .nav-icon,
.shell.is-sidebar-collapsed .nav-icon {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  display: grid;
  place-items: center;
}
.shell .nav-icon .ui-icon {
  width: 20px;
  height: 20px;
  stroke-width: 1.6;
}
.shell .nav a:hover .nav-icon,
.shell .nav-group-summary:hover .nav-icon { color: var(--brand); }
.shell .topbar-trigger .ui-icon,
.shell .ui-icon-button .ui-icon,
.shell .header-icon-button .ui-icon {
  width: 18px;
  height: 18px;
  stroke-width: 1.6;
}
.shell .ui-icon-button,
.shell .header-icon-button,
.shell .topbar-trigger {
  width: 32px;
  height: 32px;
  min-height: 32px;
  border-radius: 8px;
  transition: background .18s var(--ease-standard), color .18s var(--ease-standard);
}

.sg-chart-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  width: 100%;
  min-width: 0;
}
.sg-chart-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 168px;
  overflow: hidden;
  padding: 16px 20px 12px;
  border: 1px solid var(--sg-line);
  border-radius: var(--sg-radius, 8px);
  background: var(--card, #fff);
  color: inherit;
  text-decoration: none;
  animation: sg-rise .36s var(--ease-standard) both;
  transition: border-color .18s var(--ease-standard);
}
.sg-chart-grid > :nth-child(1) { animation-delay: 0ms; }
.sg-chart-grid > :nth-child(2) { animation-delay: 40ms; }
.sg-chart-grid > :nth-child(3) { animation-delay: 80ms; }
.sg-chart-grid > :nth-child(4) { animation-delay: 120ms; }
a.sg-chart-card:hover { border-color: color-mix(in srgb, var(--brand) 28%, var(--sg-line)); color: inherit; }
.sg-chart-card-meta { display: flex; align-items: center; gap: 6px; }
.sg-chart-card-title { color: var(--sg-subtle); font-size: 14px; }
.sg-chart-card-tip {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--sg-faint);
  border: 1px solid var(--sg-line);
  font-size: 11px;
  cursor: help;
}
.sg-chart-card-total {
  margin-top: 8px;
  font-size: 30px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
}
.sg-chart-card-content { flex: 1; min-height: 46px; margin-top: 8px; }
.sg-chart-card-footer {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--sg-line);
  color: var(--sg-subtle);
  font-size: 12px;
}
.sg-chart-card-trend.is-up { color: var(--green); }
.sg-chart-card-trend.is-down { color: var(--red); }
.sg-chart-card-trend.is-neutral { color: var(--sg-faint); }

.sg-sparkline { width: 100%; height: 46px; display: block; }
.sg-sparkline-line {
  fill: none;
  stroke: var(--brand);
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.sg-sparkline-area {
  fill: color-mix(in srgb, var(--brand) 14%, transparent);
}
.sg-sparkline--bar rect { fill: var(--brand); transform-box: fill-box; transform-origin: bottom; animation: sg-bar-in .35s var(--ease-standard) both; }
@keyframes sg-draw { to { stroke-dashoffset: 0; } }
@keyframes sg-rise {
  from { transform: translateY(6px); }
  to { transform: none; }
}
@keyframes sg-bar-in {
  from { transform: scaleY(.08); }
  to { transform: scaleY(1); }
}

.sg-sales-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 280px);
  margin-top: 16px;
  width: 100%;
  min-width: 0;
  overflow: hidden;
}
.sg-sales-main { min-width: 0; overflow: hidden; }
.sg-sales-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.sg-sales-head > div { display: flex; align-items: baseline; gap: 10px; min-width: 0; }
.sg-sales-head h2 { margin: 0; font-size: 16px; font-weight: 600; }
.sg-sales-head .muted { color: var(--sg-faint); font-size: 12px; }
.sg-sales-rank {
  padding: 16px 20px;
  border-left: 1px solid var(--sg-line);
  background: color-mix(in srgb, var(--sg-fill-2, #f7f8fa) 70%, #fff);
}
.sg-sales-rank h3 { margin: 0 0 12px; font-size: 14px; font-weight: 600; }

.sg-rank-list { list-style: none; margin: 0; padding: 0; }
.sg-rank-list li {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  min-height: 36px;
}
.sg-rank-index {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--sg-fill-2, #f2f3f5);
  color: var(--sg-subtle);
  font-size: 12px;
}
.sg-rank-index.is-top { background: var(--brand); color: #fff; }
.sg-rank-list li:nth-child(1) .sg-rank-index.is-top { background: #f4664a; }
.sg-rank-list li:nth-child(2) .sg-rank-index.is-top { background: #ffb400; }
.sg-rank-list li:nth-child(3) .sg-rank-index.is-top { background: var(--brand); }
.sg-rank-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: inherit; }
.sg-rank-value { color: var(--sg-subtle); font-variant-numeric: tabular-nums; font-size: 13px; }
.sg-rank-empty { grid-column: 1 / -1; color: var(--sg-faint); }
.sg-rank-list--plain li { padding: 10px 20px; border-top: 1px solid var(--sg-line); }
.sg-rank-list--plain li:first-child { border-top: 0; }

.sg-column-chart { margin: 0; min-width: 0; max-width: 100%; }
.sg-column-chart-plot {
  display: block;
  width: 100%;
  max-width: 100%;
  height: 220px;
  padding: 0 20px;
  box-sizing: border-box;
  overflow: hidden;
}
.sg-column-chart-axis { stroke: var(--sg-line); stroke-width: 1; }
.sg-column-chart-bar { transform-origin: bottom; transform-box: fill-box; animation: sg-bar-in .45s var(--ease-standard) both; }
.sg-column-chart-bar.is-primary { fill: var(--brand); }
.sg-column-chart-bar.is-secondary { fill: color-mix(in srgb, var(--brand) 32%, #fff); }
.sg-column-chart-labels {
  display: flex;
  padding: 8px 20px 4px;
  color: var(--sg-faint);
  font-size: 12px;
}
.sg-column-chart-labels span { flex: 1; min-width: 0; text-align: center; }
.sg-column-chart figcaption {
  display: flex;
  gap: 16px;
  padding: 0 20px 16px;
  color: var(--sg-subtle);
  font-size: 12px;
}
.sg-column-chart figcaption i {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 2px;
  margin-right: 6px;
}
.sg-column-chart figcaption i.is-primary { background: var(--brand); }
.sg-column-chart figcaption i.is-secondary { background: color-mix(in srgb, var(--brand) 32%, #fff); }

.sg-analysis-lower {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 16px;
  margin-top: 16px;
  align-items: start;
}

.sg-donut {
  display: grid;
  grid-template-columns: 148px minmax(0, 1fr);
  gap: 20px;
  align-items: center;
}
.sg-donut-svg { width: 148px; height: 148px; }
.sg-donut-track,
.sg-donut-slice,
.sg-donut-empty { fill: none; stroke-width: 16; }
.sg-donut-track { stroke: var(--sg-fill-2, #f2f3f5); }
.sg-donut-empty { stroke: var(--sg-line); }
.sg-donut-slice { stroke-linecap: butt; animation: sg-donut-in .55s var(--ease-standard) both; }
@keyframes sg-donut-in { from { opacity: 0; } }
.sg-donut-total { font-size: 20px; font-weight: 600; fill: var(--sg-ink, #1d2129); }
.sg-donut-caption { font-size: 12px; fill: var(--sg-faint, #86909c); }
.sg-donut-legend { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.sg-donut-legend li {
  display: grid;
  grid-template-columns: 8px minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  font-size: 13px;
}
.sg-donut-legend i { width: 8px; height: 8px; border-radius: 50%; }
.sg-donut-slice.sg-donut-tone-0 { stroke: var(--brand); }
.sg-donut-slice.sg-donut-tone-1 { stroke: var(--green); }
.sg-donut-slice.sg-donut-tone-2 { stroke: var(--orange); }
.sg-donut-slice.sg-donut-tone-3 { stroke: #722ed1; }
.sg-donut-slice.sg-donut-tone-4 { stroke: #13c2c2; }
.sg-donut-slice.sg-donut-tone-5 { stroke: var(--sg-faint, #909399); }
.sg-donut-legend .sg-donut-tone-0 { background: var(--brand); }
.sg-donut-legend .sg-donut-tone-1 { background: var(--green); }
.sg-donut-legend .sg-donut-tone-2 { background: var(--orange); }
.sg-donut-legend .sg-donut-tone-3 { background: #722ed1; }
.sg-donut-legend .sg-donut-tone-4 { background: #13c2c2; }
.sg-donut-legend .sg-donut-tone-5 { background: var(--sg-faint, #909399); }
.sg-donut-legend strong { font-variant-numeric: tabular-nums; }

@media (max-width: 1100px) {
  .sg-chart-grid,
  .sg-sales-card,
  .sg-analysis-lower { grid-template-columns: 1fr 1fr; }
  .sg-sales-rank { border-left: 0; border-top: 1px solid var(--sg-line); }
}
@media (max-width: 720px) {
  .sg-chart-grid,
  .sg-sales-card,
  .sg-analysis-lower,
  .sg-donut { grid-template-columns: 1fr; }
}

.shell.theme-dark .sg-chart-card,
.shell.theme-dark .sg-sales-card { background: var(--card); border-color: var(--line); }
.shell.theme-dark .sg-sales-rank { background: color-mix(in srgb, #fff 4%, transparent); }
.shell.theme-dark .sg-donut-total { fill: #e5eaf3; }
.shell.theme-dark .sg-column-chart-bar.is-secondary { fill: color-mix(in srgb, var(--brand) 45%, #1d2129); }

@media (prefers-reduced-motion: reduce) {
  .shell .content,
  .sg-chart-card,
  .sg-sparkline-line,
  .sg-sparkline-area,
  .sg-sparkline--bar rect,
  .sg-column-chart-bar,
  .sg-donut-slice,
  .sg-nav-progress { animation: none; }
}

.shell .content.content--workspace { max-width: none; }
.sg-chart-card-footer > span { min-width: 0; }

/* List / detail / form aligned with analysis template */
.shell .content,
.shell > .workspace-inset > .content {
  max-width: none;
  padding: 20px 24px 40px;
}
.shell .content-page-head,
.shell .content-page-head--banner,
.shell .content-page-head--banner:not(.page-head-detail),
.shell .content-page-head--split.content-page-head--banner,
.shell .content-page-head--form,
.shell .content-page-head--form.content-page-head--banner,
.shell .content-page-head--banner-inner,
.shell .page-head-detail {
  min-height: 0;
  margin: 0 0 16px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}
.shell .content-page-head h1,
.shell .content-page-head--banner h1,
.shell .content-page-head--form h1,
.shell .content-page-head-title-row h1,
.shell .page-head h1,
.shell .list-page-header .page-head h1 {
  font-size: 20px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0;
  color: var(--sg-ink);
}
.shell .content-page-head .lead,
.shell .page-head-lead {
  margin: 4px 0 0;
  max-width: 46em;
  color: var(--sg-subtle);
  font-size: 13px;
}
.shell .content-page-crumbs {
  margin: 0 0 8px;
  color: var(--sg-faint);
  font-size: 13px;
}
.shell .content-page-head-actions { gap: 8px; }
.shell .list-page-stack { display: flex; flex-direction: column; gap: 16px; }

.shell .list-page-stack > .list-table-section,
.shell .list-page-stack > .list-table-toolbar,
.shell .list-page-stack > form.list-table-toolbar,
.shell .list-table-section.list-card,
.shell .list-card,
.shell .form-card,
.shell form.card,
.shell .detail-panel-card,
.shell .card.section-gap,
.shell .app-card {
  border: 1px solid var(--sg-line);
  border-radius: 8px;
  background: #fff;
  box-shadow: none;
}
.shell .list-table-section.list-card,
.shell .list-card { overflow: hidden; }
.shell .list-page-stack > .list-table-section,
.shell .list-page-stack > .list-table-toolbar,
.shell .list-page-stack > form.list-table-toolbar { padding: 0; }
.shell .list-table-toolbar,
.shell .list-card .list-table-toolbar,
.shell .list-page-stack .list-table-toolbar {
  min-height: 0;
  margin: 0;
  padding: 16px 16px 12px;
  gap: 8px;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.shell .list-table-toolbar-main { flex-wrap: wrap; gap: 8px; }
.shell .list-table-toolbar .input,
.shell .list-table-toolbar .select,
.shell .list-table-toolbar .button,
.shell .list-table-toolbar summary.button,
.shell .list-filter-submit {
  min-height: 32px;
  height: 32px;
  border-radius: 6px;
  box-shadow: none;
}
.shell .search-field { flex: 0 1 220px; }
.shell .list-table thead th,
.shell .list-page-stack .list-table thead th,
.shell .list-card .list-table thead th {
  height: 40px;
  padding: 8px 16px;
  background: #fafafa;
  color: rgba(0, 0, 0, .45);
  font-size: 13px;
  font-weight: 500;
  border-bottom: 1px solid #f0f0f0;
}
.shell .list-table tbody td {
  padding: 12px 16px;
  font-size: 14px;
  border-bottom: 1px solid #f0f0f0;
  background: #fff;
}
.shell .list-table tbody tr:hover td { background: #fafafa; }
.shell .table-wrap { margin: 0; border: 0; }
.shell .pagination {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px 16px;
  border-top: 0;
}
.shell .button-primary,
.shell .list-create-button {
  color: #fff;
  background: var(--brand);
  border-color: var(--brand);
  box-shadow: none;
}
.shell .button-primary:hover,
.shell .list-create-button:hover {
  color: #fff;
  background: color-mix(in srgb, var(--brand) 82%, #000);
  border-color: color-mix(in srgb, var(--brand) 82%, #000);
  box-shadow: none;
}
.shell .button,
.shell .button-small {
  min-height: 32px;
  border-radius: 6px;
}
.shell .button:not(.button-small):not(.ui-icon-button) { min-height: 32px; padding: 0 15px; }

.shell .detail-metrics { gap: 16px; margin-bottom: 16px; }
.shell .detail-metrics .card.metric {
  min-height: 0;
  padding: 16px 20px;
  gap: 8px;
  border: 1px solid var(--sg-line);
  border-radius: 8px;
  background: #fff;
  box-shadow: none;
}
.shell .detail-metrics .metric-label { color: var(--sg-subtle); font-size: 13px; }
.shell .detail-metrics .metric-value,
.shell .detail-metrics .metric-slot { font-size: 20px; font-weight: 600; }
.shell .card-head { padding: 16px 20px; border-bottom: 1px solid var(--sg-line); }
.shell .card-body { padding: 16px 20px; }
.shell .form-card,
.shell form.card.card-body { padding: 20px 24px 16px; }
.shell .form-section-heading {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 8px 0 4px;
  font-size: 16px;
  font-weight: 600;
}
.shell .form-section-heading .ui-icon { width: 16px; height: 16px; color: var(--sg-subtle); }
.shell .form-actions { gap: 8px; padding-top: 8px; }

.shell .app-grid { gap: 16px; }
.shell .app-card { padding: 16px 20px; transition: border-color .18s var(--ease-standard); }
.shell .app-card:hover,
.shell .app-card-link:hover { border-color: color-mix(in srgb, var(--brand) 28%, var(--sg-line)); box-shadow: none; }
.shell .app-card-icon { width: 36px; height: 36px; border-radius: 8px; color: var(--brand); background: var(--brand-soft); }
.shell .app-card-icon .ui-icon { width: 20px; height: 20px; stroke-width: 1.6; }

.shell .settings-nav a { min-height: 36px; gap: 10px; border-radius: 8px; }
.shell .settings-nav a .ui-icon { width: 18px; height: 18px; stroke-width: 1.6; }
.shell .settings-nav a.is-active { color: var(--brand); background: var(--brand-soft); }
.shell .settings-nav a.is-active .ui-icon { color: var(--brand); }
.shell .settings-section-head h3 { font-size: 16px; font-weight: 600; }
.shell .settings-content-section,
.shell .settings-form { max-width: 46rem; }

.shell .empty { padding: 48px 24px; }
.shell .ui-popover-panel { border-radius: 8px; }

.shell.theme-dark .list-card,
.shell.theme-dark .form-card,
.shell.theme-dark form.card,
.shell.theme-dark .app-card,
.shell.theme-dark .detail-metrics .card.metric {
  background: var(--card);
  border-color: var(--line);
}
.shell.theme-dark .list-table thead th { background: color-mix(in srgb, #fff 4%, transparent); color: var(--sg-faint); }
.shell.theme-dark .list-table tbody td { background: transparent; border-bottom-color: var(--line); }
.shell.theme-dark .list-table tbody tr:hover td { background: color-mix(in srgb, #fff 4%, transparent); }

@media (min-width: 768px) {
  .shell .content-page-head h1,
  .shell .page-head-row h1,
  .shell .list-page-header .page-head h1,
  .shell .list-page-header > h1,
  .shell .content-page-head-title-row h1 { font-size: 20px; line-height: 1.4; }
}
@media (max-width: 720px) {
  .shell .content,
  .shell > .workspace-inset > .content { padding: 16px 16px 32px; }
}

/* Commercial polish: selection, scroll, type, chrome, charts */
.shell ::selection { color: #fff; background: color-mix(in srgb, var(--brand) 72%, #000); }
.shell * { scrollbar-width: thin; scrollbar-color: color-mix(in srgb, var(--sg-faint) 55%, transparent) transparent; }
.shell *::-webkit-scrollbar { width: 8px; height: 8px; }
.shell *::-webkit-scrollbar-thumb { border-radius: 8px; background: color-mix(in srgb, var(--sg-faint) 45%, transparent); }
.shell a:focus-visible,
.shell button:focus-visible,
.shell .input:focus-visible,
.shell .select:focus-visible,
.shell .textarea:focus-visible,
.shell summary:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--brand) 45%, transparent);
  outline-offset: 2px;
}
.shell .list-table a,
.shell .link { color: var(--sg-ink); text-decoration: none; }
.shell .list-table a:hover,
.shell .link:hover { color: var(--brand); }
.shell .list-table .primary-cell > a,
.shell .list-table .primary-cell > strong { font-weight: 500; }
.shell .metric-value,
.shell .sg-chart-card-total,
.shell .sg-rank-value,
.shell .list-table td.nowrap { font-variant-numeric: tabular-nums; }

.shell .topbar { height: 56px; }
.shell .command-trigger,
.shell .topbar-search {
  height: 32px;
  border-radius: 8px;
  border-color: var(--sg-line);
  background: var(--sg-fill-2, #f7f8fa);
}
.shell .command-trigger:hover { border-color: color-mix(in srgb, var(--brand) 28%, var(--sg-line)); }
.shell .ui-breadcrumb,
.shell .content-page-crumbs { gap: 4px; color: var(--sg-faint); font-size: 13px; }
.shell .ui-breadcrumb a,
.shell .content-page-crumbs a { color: var(--sg-subtle); }
.shell .ui-breadcrumb a:hover { color: var(--brand); }
.shell .status-badge,
.shell .badge {
  min-height: 22px;
  padding: 0 8px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 500;
}

.shell .sg-chart-card { padding: 16px 20px 0; }
.shell .sg-chart-card-content { display: flex; align-items: flex-end; min-height: 46px; margin-top: 4px; }
.shell .sg-chart-card-footer {
  margin-top: 4px;
  padding: 8px 0 12px;
  color: var(--sg-faint);
}
.shell .sg-chart-card-footer > span { overflow: visible; text-overflow: unset; max-width: none; }
.shell .sg-chart-card-footer .sg-chart-card-trend { color: inherit; }
.shell .sg-chart-card-footer .sg-chart-card-trend.is-up { color: var(--green); }
.shell .sg-chart-card-footer .sg-chart-card-trend.is-down { color: var(--red); }
.shell .sg-sparkline { display: block; width: 100%; height: 46px; }
.shell .sg-chart-card-tip {
  opacity: .55;
  transition: opacity .15s var(--ease-standard);
}
.shell .sg-chart-card:hover .sg-chart-card-tip { opacity: 1; }

.shell .pagination a,
.shell .pagination span,
.shell .pagination-icon {
  min-width: 32px;
  height: 32px;
  border-radius: 6px;
}
.shell .pagination a[aria-current="page"],
.shell .pagination .is-active {
  color: #fff;
  background: var(--brand);
  border-color: var(--brand);
}
.shell .list-table tbody tr { transition: background .12s var(--ease-standard); }
.shell .row-actions summary { border-radius: 6px; }
.shell .row-actions-panel { border-radius: 8px; }

.shell .notice {
  padding: 10px 14px;
  border-radius: 8px;
  border: 1px solid color-mix(in srgb, var(--brand) 18%, var(--sg-line));
  background: color-mix(in srgb, var(--brand) 6%, #fff);
}
.shell .code,
.shell kbd,
.shell .kbd {
  padding: 1px 6px;
  border-radius: 4px;
  border: 1px solid var(--sg-line);
  background: var(--sg-fill-2, #f7f8fa);
  font-size: 12px;
}
.shell .copy-field input,
.shell .secret-field input { font-variant-numeric: tabular-nums; }
.shell .field label { color: var(--sg-subtle); }
.shell .input::placeholder,
.shell .textarea::placeholder { color: var(--sg-placeholder, #c0c4cc); }
.shell .card { border-color: var(--sg-line); box-shadow: none; }
.shell .detail-panel-title { font-size: 16px; font-weight: 600; }
.shell .project-access-head { align-items: flex-start; gap: 12px; }

.shell.theme-dark .notice { background: color-mix(in srgb, var(--brand) 12%, var(--card)); }
.shell.theme-dark .command-trigger,
.shell.theme-dark .topbar-search { background: color-mix(in srgb, #fff 4%, transparent); }

/* SG01 standard: dashboard row head, denser analysis, Pro table */
.shell .dash-page-head {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 16px;
  min-height: 32px;
  margin-bottom: 4px;
}
.shell .dash-page-copy { min-width: 0; }
.shell .dash-page-copy h1 { margin: 0; font-size: 20px; font-weight: 600; line-height: 32px; }
.shell .dash-page-copy p { margin: 2px 0 0; font-size: 13px; color: var(--sg-faint); }
.shell .dash-page-tools {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  width: auto;
  margin-left: auto;
}
.shell .dash-page-actions .button { min-height: 32px; height: 32px; padding: 0 12px; }
.shell .dash-page-actions .button .ui-icon { width: 14px; height: 14px; }
.shell .dash-page-actions .button:active { transform: scale(.98); }

.shell .sg-chart-grid { margin-top: 4px; }
.shell .sg-chart-card {
  min-height: 176px;
  padding: 20px 20px 0;
  border-radius: 8px;
}
.shell .sg-chart-card-title { font-size: 14px; color: var(--sg-subtle); }
.shell .sg-chart-card-total { margin-top: 4px; font-size: 30px; font-weight: 600; letter-spacing: -.02em; }
.shell .sg-chart-card-footer {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  margin-top: 0;
  padding: 8px 0 12px;
  white-space: nowrap;
}
.shell .sg-chart-card-footer > span { flex: 0 1 auto; overflow: hidden; text-overflow: ellipsis; }
.shell .sg-chart-card-window { color: var(--sg-faint); }

.shell .sg-sales-card {
  grid-template-columns: minmax(0, 1fr) 272px;
  margin-top: 16px;
  border-radius: 8px;
}
.shell .sg-sales-head { padding: 16px 20px 8px; border-bottom: 0; }
.shell .sg-sales-head h2 { font-size: 16px; }
.shell .sg-column-chart-plot { height: 236px; padding: 8px 20px 0; }
.shell .sg-column-chart-grid { stroke: var(--sg-line); stroke-width: 1; stroke-dasharray: 3 4; }
.shell .sg-column-chart-labels { padding: 6px 12px 2px; font-size: 12px; color: var(--sg-faint); }
.shell .sg-column-chart-labels span { overflow: hidden; text-overflow: clip; white-space: nowrap; }
.shell .sg-column-chart figcaption { padding: 4px 20px 16px; }
.shell .sg-sales-rank { padding: 16px 20px 12px; }
.shell .sg-sales-rank h3 { margin-bottom: 8px; font-size: 14px; color: var(--sg-ink); }
.shell .sg-rank-list li { min-height: 40px; }
.shell .sg-rank-list--plain li { padding: 0 20px; min-height: 44px; }
.shell .sg-analysis-lower { align-items: stretch; }
.shell .sg-analysis-lower .card { min-height: 100%; }
.shell .sg-analysis-lower .card-head { padding: 16px 20px 8px; border-bottom: 0; align-items: flex-start; }
.shell .sg-analysis-lower .card-head h2 { margin: 0; font-size: 16px; }
.shell .sg-analysis-lower .card-head p { margin: 4px 0 0; color: var(--sg-faint); font-size: 12px; }
.shell .sg-donut { padding: 0 20px 20px; }
.sg-donut-slice { animation: none; }

.shell .list-page-stack { gap: 12px; }
.shell .list-table-section.list-card,
.shell .list-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.shell .list-table-toolbar,
.shell .list-card .list-table-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px 12px;
  padding: 16px;
  border-bottom: 1px solid #f0f0f0;
}
.shell .list-table-toolbar-main {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  min-width: 0;
  flex: 1 1 auto;
}
.shell .list-table-actions { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.shell .list-table thead th {
  height: 44px;
  font-size: 13px;
  font-weight: 500;
  color: rgba(0, 0, 0, .55);
  letter-spacing: 0;
}
.shell .list-table tbody td { height: 52px; padding: 10px 16px; color: var(--sg-ink); }
.shell .list-table tbody tr:last-child td { border-bottom: 0; }
.shell .list-select-col { width: 48px; }
.shell .row-actions > summary.ui-icon-button {
  width: 32px;
  height: 32px;
  border: 1px solid transparent;
  border-radius: 6px;
  color: var(--sg-subtle);
}
.shell .row-actions > summary.ui-icon-button:hover {
  border-color: var(--sg-line);
  background: var(--sg-fill-2, #f7f8fa);
  color: var(--sg-ink);
}
.shell .row-actions-panel {
  min-width: 148px;
  padding: 6px;
  border: 1px solid var(--sg-line);
  box-shadow: 0 8px 24px color-mix(in srgb, var(--sg-ink) 8%, transparent);
}
.shell .row-actions-panel a,
.shell .row-actions-panel button {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 32px;
  padding: 0 8px;
  border-radius: 6px;
  font-size: 13px;
}
.shell .pagination {
  justify-content: flex-end;
  gap: 16px;
  margin: 0;
  padding: 12px 16px;
  border-top: 1px solid #f0f0f0;
}
.shell .pagination-total { margin-right: auto; color: var(--sg-subtle); font-size: 13px; }
.shell .pagination-state { color: var(--sg-faint); font-size: 13px; }
.shell .pagination .pages { display: inline-flex; align-items: center; gap: 8px; }
.shell .list-active-filters { padding: 0 16px 12px; }
.shell .list-bulk-form.is-bulk-active { box-shadow: inset 0 1px 0 #f0f0f0; }

.shell .button { transition: background .15s var(--ease-standard), border-color .15s var(--ease-standard), color .15s var(--ease-standard), transform .12s var(--ease-standard); }
.shell .sg-chart-card { transition: border-color .18s var(--ease-standard), transform .18s var(--ease-standard); }
a.sg-chart-card:hover { transform: translateY(-1px); }

@media (max-width: 960px) {
  .shell .dash-page-head { align-items: flex-start; }
  .shell .dash-page-tools { width: 100%; margin-left: 0; justify-content: space-between; }
  .shell .sg-sales-card { grid-template-columns: 1fr; }
}

/* Analysis page: ChartCard quartet + sales card (Ant Pro anatomy, --sg tokens) */
.shell .sg-chart-card { min-height: 188px; padding: 20px 24px 0; }
.shell .sg-chart-card-tip {
  width: 18px;
  height: 18px;
  border: 1px solid var(--sg-line);
  border-radius: 50%;
  color: var(--sg-faint);
  background: transparent;
  font-size: 11px;
  font-style: italic;
  font-family: Georgia, "Times New Roman", serif;
  line-height: 16px;
}
.shell .sg-chart-card-content { min-height: 46px; margin-top: 12px; align-items: stretch; }
.shell .sg-chart-compare {
  list-style: none;
  margin: 0;
  padding: 4px 0 0;
  display: grid;
  gap: 6px;
}
.shell .sg-chart-compare li {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--sg-subtle);
  font-size: 13px;
  line-height: 22px;
}
.shell .sg-chart-compare strong {
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}
.shell .sg-chart-compare .is-up strong { color: var(--red); }
.shell .sg-chart-compare .is-down strong { color: var(--green); }
.shell .sg-chart-compare .is-up strong::after { content: " ▲"; font-size: 10px; }
.shell .sg-chart-compare .is-down strong::after { content: " ▼"; font-size: 10px; }
.shell .sg-mini-progress { display: block; width: 100%; height: 8px; }
.shell .sg-mini-progress-track { fill: var(--sg-fill-2, #f2f3f5); }
.shell .sg-mini-progress-fill { fill: var(--green); }
.shell .sg-sparkline-area { fill: color-mix(in srgb, var(--brand) 22%, transparent); }
.shell .sg-sparkline-line { stroke-width: 2; }
.shell .sg-chart-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 40px;
  margin: 12px 0 0;
  padding: 8px 0 12px;
  border-top: 1px solid var(--sg-line);
  white-space: nowrap;
}
.shell .sg-chart-card-field { color: var(--sg-subtle); font-size: 13px; }
.shell .sg-chart-card-field strong { margin-left: 4px; color: var(--sg-ink); font-weight: 500; font-variant-numeric: tabular-nums; }
.shell .sg-chart-card-foot-compare { display: flex; gap: 12px; color: var(--sg-subtle); font-size: 12px; }
.shell .sg-chart-card-foot-compare .is-up { color: var(--red); }
.shell .sg-chart-card-foot-compare .is-down { color: var(--green); }

.shell .sg-sales-card {
  grid-template-columns: minmax(0, 1fr) 268px;
  margin-top: 16px;
}
.shell .sg-sales-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 4px 20px 0;
  border-bottom: 1px solid var(--sg-line);
}
.shell .sg-line-tabs { display: flex; gap: 24px; }
.shell .sg-line-tabs a {
  position: relative;
  padding: 16px 0 12px;
  color: var(--sg-subtle);
  font-size: 16px;
  font-weight: 400;
}
.shell .sg-line-tabs a.is-active { color: var(--sg-ink); font-weight: 500; }
.shell .sg-line-tabs a.is-active::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 2px;
  background: var(--brand);
}
.shell .sg-sales-extra { display: flex; align-items: center; gap: 12px; }
.shell .sg-sales-range {
  color: var(--brand);
  font-size: 13px;
}
.shell .sg-column-chart-frame {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  grid-template-rows: 248px auto;
  align-items: stretch;
  padding: 12px 16px 0 8px;
}
.shell .sg-column-chart-y {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: flex-end;
  padding: 0 8px 0 0;
  color: var(--sg-faint);
  font-size: 12px;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.shell .sg-column-chart-plot {
  width: 100%;
  height: 248px;
  padding: 0;
}
.shell .sg-column-chart-labels {
  grid-column: 2;
  padding: 8px 0 4px;
}
.shell .sg-column-chart figcaption { padding: 0 16px 16px 56px; }
.shell .sg-sales-rank {
  padding: 20px 24px 12px;
  background: transparent;
  border-left: 1px solid var(--sg-line);
}
.shell .sg-sales-rank h3 { margin: 0 0 16px; font-size: 14px; font-weight: 500; }
.shell .sg-rank-list--sales li { min-height: 32px; gap: 8px; }
.shell .sg-rank-list--sales .sg-rank-index {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: transparent;
  color: var(--sg-faint);
  font-size: 12px;
  font-weight: 500;
}
.shell .sg-rank-list--sales .sg-rank-index.is-top {
  background: var(--sg-ink);
  color: #fff;
}
.shell .sg-rank-list--sales li:nth-child(1) .sg-rank-index.is-top,
.shell .sg-rank-list--sales li:nth-child(2) .sg-rank-index.is-top,
.shell .sg-rank-list--sales li:nth-child(3) .sg-rank-index.is-top { background: var(--sg-ink); }

@media (max-width: 1100px) {
  .shell .sg-sales-card { grid-template-columns: 1fr; }
  .shell .sg-sales-rank { border-left: 0; border-top: 1px solid var(--sg-line); }
}

.shell .content.content--workspace:has(.sg-chart-grid) { padding-top: 16px; }
.shell .sg-chart-card--tone-violet .sg-sparkline-line { stroke: #722ed1; }
.shell .sg-chart-card--tone-violet .sg-sparkline-area { fill: color-mix(in srgb, #722ed1 20%, transparent); }
.shell .sg-chart-card--tone-brand .sg-sparkline-line { stroke: var(--brand); }
.shell .sg-mini-progress { margin-top: 18px; height: 8px; }

.shell .list-page-stack { gap: 16px; }
.shell .list-query-card.content-page-head,
.shell .list-query-card.content-page-head--banner {
  display: block;
  min-height: 0;
  margin: 0;
  padding: 24px 24px 8px;
  border: 1px solid var(--sg-line);
  border-radius: 8px;
  background: #fff;
}
.shell .list-query-form {
  display: grid;
  grid-template-columns: repeat(3, minmax(160px, 1fr)) auto;
  gap: 16px 24px;
  align-items: end;
  width: 100%;
}
.shell .list-query-form > label {
  display: grid;
  gap: 8px;
  color: rgba(0, 0, 0, .88);
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
}
.shell .list-query-form .list-sort-select { display: block; width: 100%; }
.shell .list-query-form .input,
.shell .list-query-form .select {
  width: 100%;
  height: 32px;
  min-height: 32px;
  color: rgba(0, 0, 0, .88);
  background: #fff;
  border: 1px solid #d9d9d9;
  box-shadow: none;
  font-size: 14px;
  line-height: 22px;
}
.shell .list-query-form .input:hover,
.shell .list-query-form .select:hover { border-color: var(--brand); }
.shell .list-query-actions .button { min-height: 32px; height: 32px; padding: 0 15px; font-size: 14px; font-weight: 400; }
.shell .list-query-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; padding-bottom: 16px; }
.shell .list-query-actions .list-filter-submit { min-width: 64px; }
.shell .list-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 24px;
}
.shell .list-card-head h1 {
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 24px;
  color: rgba(0, 0, 0, .88);
}
.shell .list-card-head-actions { display: flex; align-items: center; gap: 8px; }
.shell .list-tool-icon {
  width: 32px;
  min-width: 32px;
  height: 32px;
  padding: 0;
  color: rgba(0, 0, 0, .65);
}
.shell .list-tool-icon .ui-icon { width: 16px; height: 16px; }
.shell .list-table-actions { margin: 0; }
.shell .list-table thead th {
  height: 47px;
  color: rgba(0, 0, 0, .88);
  background: #fff;
  font: 600 14px/22px var(--sg-font);
  border-bottom: 1px solid #f0f0f0;
}
.shell .list-table tbody td {
  height: 47px;
  color: rgba(0, 0, 0, .88);
  font: 400 14px/22px var(--sg-font);
}
.shell .list-table .table-link,
.shell .list-table .primary-cell a { color: var(--brand); font-weight: 400; }
.shell .list-table .primary-cell a:hover { color: color-mix(in srgb, var(--brand) 78%, #000); }
.shell .list-table .primary-cell strong { font-weight: 400; }
.shell .list-select-col input[type="checkbox"],
.shell .list-table thead input[type="checkbox"] {
  width: 16px;
  height: 16px;
  accent-color: var(--brand);
  border-radius: 2px;
}
.shell .list-row-links { white-space: nowrap; }
.shell .list-row-links a {
  margin-right: 16px;
  color: var(--brand);
  font-size: 14px;
}
.shell .list-row-links a:last-child { margin-right: 0; }
.shell .list-table .badge {
  min-height: auto;
  padding: 0;
  border: 0;
  background: transparent;
  font-size: 14px;
  font-weight: 400;
  color: rgba(0, 0, 0, .88);
}
.shell .list-table .badge::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  margin-right: 8px;
  border-radius: 50%;
  background: var(--sg-faint);
  vertical-align: 2px;
}
.shell .list-table .badge-tone-success::before,
.shell .list-table .badge-deal::before,
.shell .list-table .badge-maintaining::before,
.shell .list-table .badge-online::before { background: var(--green); }
.shell .list-table .badge-tone-warning::before,
.shell .list-table .badge-paused::before { background: var(--orange); }
.shell .list-table .badge-tone-danger::before,
.shell .list-table .badge-lost::before { background: var(--red); }
.shell .list-table .badge-tone-info::before { background: var(--brand); }

.shell.theme-dark .list-query-card.content-page-head--banner,
.shell.theme-dark .list-card-head { background: var(--card); }
@media (max-width: 900px) {
  .shell .list-query-form { grid-template-columns: 1fr; }
  .shell .list-query-actions { justify-content: flex-start; }
}

.shell .list-page-stack .list-table-section .list-table thead th,
.shell .list-page-stack .list-table-section .table-wrap .list-table thead th,
.shell .list-card .list-table thead th,
.shell .list-card .table-wrap .list-table thead th {
  height: 47px;
  padding: 0 16px;
  background: #fff;
  color: rgba(0, 0, 0, .88);
  font: 600 14px/22px var(--sg-font);
  letter-spacing: 0;
  border-bottom: 1px solid #f0f0f0;
}
.shell .list-page-stack .list-table-section .list-table tbody td,
.shell .list-page-stack .list-table-section .table-wrap .list-table tbody td,
.shell .list-card .list-table tbody td {
  height: 47px;
  padding: 0 16px;
  color: rgba(0, 0, 0, .88);
  font: 400 14px/22px var(--sg-font);
  border-bottom: 1px solid #f0f0f0;
}
.shell .list-page-stack .list-table-section .list-table tbody tr:hover td,
.shell .list-card .list-table tbody tr:hover td { background: #fafafa; }

.shell .list-query-hint { margin: 0 0 16px; font-size: 14px; line-height: 22px; }
.shell .list-card .app-grid { padding: 0 24px 24px; }
.shell .list-card .pagination,
.shell .list-table-section .pagination {
  margin: 0;
  padding: 16px 24px;
  justify-content: flex-end;
  gap: 16px;
}
.shell .pagination-total {
  margin-right: auto;
  min-width: 0;
  color: rgba(0, 0, 0, .65);
  font-size: 14px;
  line-height: 22px;
}
.shell .pagination .pages { gap: 8px; }
.shell .pagination .button,
.shell .pagination .button-small {
  min-width: 32px;
  height: 32px;
  padding: 0 6px;
  border: 1px solid #d9d9d9;
  border-radius: 6px;
  background: #fff;
  color: rgba(0, 0, 0, .88);
  box-shadow: none;
  font-size: 14px;
  font-weight: 400;
}
.shell .pagination .button-primary {
  border-color: var(--brand);
  background: var(--brand);
  color: #fff;
}
.shell .pagination .pagination-icon { color: rgba(0, 0, 0, .45); }
.shell .pagination .pagination-disabled { opacity: .45; }
.shell .sg-mini-table { width: 100%; }
.shell .dash-table-card .card-head {
  padding: 16px 24px;
  border-bottom: 1px solid var(--sg-line);
}
.shell .dash-table-card .card-head h2 {
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
}
.shell .dash-table-card .table-wrap { padding: 0 8px 8px; }
.shell .sg-overview-tabs {
  display: flex;
  justify-content: flex-end;
  margin: 0 0 16px;
}
.shell .sg-overview-tabs .ui-tabs,
.shell .sg-overview-tabs .dashboard-page-tabs { margin: 0; }
.shell .nav a,
.shell .nav-group-summary {
  min-height: 40px;
  padding: 8px 12px;
  border-radius: 8px;
  font-weight: 400;
}
.shell .nav a.active,
.shell .nav-group.is-active > .nav-group-summary {
  font-weight: 500;
}
.shell .topbar { height: 56px; }
.shell .content.content--workspace { padding: 16px 24px 24px; }
.shell .messages-list-head {
  padding: 0 24px 12px;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.shell .sg-account-card {
  display: grid;
  grid-template-columns: 224px minmax(0, 1fr);
  min-height: 564px;
  background: #fff;
  border: 1px solid var(--sg-line);
  border-radius: 8px;
}
.shell .sg-account-aside {
  padding: 8px 0;
  border-right: 1px solid #f0f0f0;
}
.shell .sg-account-nav { display: flex; flex-direction: column; }
.shell .sg-account-nav a {
  display: flex;
  align-items: center;
  min-height: 40px;
  padding: 0 24px;
  color: rgba(0, 0, 0, .88);
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
  text-decoration: none;
}
.shell .sg-account-nav a:hover { color: var(--brand); }
.shell .sg-account-nav a.is-active {
  background: color-mix(in srgb, var(--brand) 8%, #fff);
  color: var(--brand);
  font-weight: 500;
}
.shell .sg-account-main { min-width: 0; padding: 8px 40px 40px; }
.shell .sg-account-section h2 {
  margin: 12px 0 20px;
  color: rgba(0, 0, 0, .88);
  font-size: 20px;
  font-weight: 500;
  line-height: 28px;
}
.shell .sg-account-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 220px;
  gap: 48px;
  align-items: start;
}
.shell .sg-account-form .field,
.shell .sg-account-form .field.field-full {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
  max-width: 384px;
  margin: 0;
  padding: 0 0 24px;
  border: 0;
  grid-template-columns: none;
}
.shell .sg-account-form .field .ui-label {
  padding: 0;
  color: rgba(0, 0, 0, .88);
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
}
.shell .sg-account-form .field > :not(.ui-label),
.shell .sg-account-form .field-hint { grid-column: auto; }
.shell .sg-account-form .input,
.shell .sg-account-form .select,
.shell .sg-account-form .textarea {
  max-width: 100%;
  min-height: 32px;
  background: #fff;
  border: 1px solid #d9d9d9;
  box-shadow: none;
}
.shell .sg-account-form .input:hover,
.shell .sg-account-form .select:hover { border-color: var(--brand); }
.shell .sg-account-form .input:focus,
.shell .sg-account-form .select:focus,
.shell .sg-account-form .textarea:focus {
  border-color: var(--brand);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--brand) 16%, transparent);
}
.shell .sg-account-form .settings-form-actions { margin-top: 8px; }
.shell .sg-account-form .button-primary,
.shell .sg-account-section .button-primary {
  min-height: 32px;
  padding: 4px 15px;
  color: #fff;
  background: var(--brand);
  border-color: var(--brand);
  font-weight: 400;
  box-shadow: none;
}
.shell .sg-account-form .button-primary:hover,
.shell .sg-account-section .button-primary:hover {
  color: #fff;
  background: color-mix(in srgb, var(--brand) 85%, #000);
  border-color: color-mix(in srgb, var(--brand) 85%, #000);
}
.shell .sg-account-avatar { display: flex; flex-direction: column; align-items: center; gap: 12px; padding-top: 8px; }
.shell .sg-account-avatar-label { margin: 0; color: rgba(0, 0, 0, .88); font-size: 14px; }
.shell .avatar-xl {
  width: 144px;
  height: 144px;
  flex-basis: 144px;
  border-radius: 50%;
  font-size: 40px;
}
.shell .sg-account-avatar-btn { min-height: 32px; }
.shell .sg-account-avatar-hint { margin: 0; font-size: 12px; text-align: center; }
.shell .sg-account-list { list-style: none; margin: 0; padding: 0; }
.shell .sg-account-list li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 0;
  border-bottom: 1px solid #f0f0f0;
}
.shell .sg-account-list strong { display: block; font-size: 14px; font-weight: 500; }
.shell .sg-account-list p { margin: 4px 0 0; color: var(--sg-subtle); font-size: 14px; }
.shell .sg-account-password { margin-top: 24px; padding-top: 8px; }
.shell .sg-account-section .theme-settings-panel { padding: 0; border: 0; background: transparent; box-shadow: none; }
@media (max-width: 900px) {
  .shell .sg-account-card,
  .shell .sg-account-grid { grid-template-columns: 1fr; }
  .shell .sg-account-aside { border-right: 0; border-bottom: 1px solid #f0f0f0; }
}

.shell .content.content--workspace:has(.sg-chart-grid) { padding-top: 12px; }
.shell .sg-sparkline {
  width: 100%;
  height: 46px;
  color: var(--brand);
}
.shell .sg-chart-card--tone-violet .sg-sparkline { color: #722ed1; }
.shell .sg-sparkline-line {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.15;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.shell .sg-sparkline-area {
  fill: currentColor;
  fill-opacity: 0.14;
}
.shell .sg-chart-card--tone-violet .sg-sparkline-line,
.shell .sg-chart-card--tone-brand .sg-sparkline-line { stroke: currentColor; }
.shell .sg-chart-card--tone-violet .sg-sparkline-area,
.shell .sg-chart-card--tone-brand .sg-sparkline-area { fill: currentColor; }
.shell .sg-sparkline--bar rect { fill: currentColor; }
.shell .sg-column-chart-frame {
  grid-template-columns: 52px minmax(0, 1fr);
  padding: 8px 8px 0 4px;
}
.shell .sg-column-chart-y {
  position: relative;
  height: 248px;
  display: block;
  padding: 0 8px 0 0;
  color: rgba(0, 0, 0, .45);
  font-size: 12px;
  line-height: 1;
}
.shell .sg-column-chart-y span {
  position: absolute;
  right: 8px;
  margin: 0;
}
.shell .sg-column-chart-y span:nth-child(1) { top: 0; }
.shell .sg-column-chart-y span:nth-child(2) { top: 25%; transform: translateY(-50%); }
.shell .sg-column-chart-y span:nth-child(3) { top: 50%; transform: translateY(-50%); }
.shell .sg-column-chart-y span:nth-child(4) { top: 75%; transform: translateY(-50%); }
.shell .sg-column-chart-y span:nth-child(5) { top: 100%; transform: translateY(-100%); }
.shell .sg-column-chart-grid {
  stroke: #f0f0f0;
  stroke-width: 1;
  stroke-dasharray: none;
}
.shell .sg-column-chart-axis { stroke: #f0f0f0; }
.shell .sg-column-chart-labels {
  padding: 6px 1.6% 0;
  color: rgba(0, 0, 0, .45);
  font-size: 12px;
  line-height: 20px;
}
.shell .sg-column-chart figcaption {
  padding: 8px 16px 16px 56px;
  color: rgba(0, 0, 0, .65);
  font-size: 12px;
}
.shell .nav {
  padding: 4px 8px 16px;
  gap: 4px;
  font-family: var(--sg-font);
}
.shell .nav-label {
  height: 28px;
  flex-basis: 28px;
  margin: 8px 0 0;
  padding: 0 12px;
  color: rgba(0, 0, 0, .45);
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 28px;
}
.shell .nav-label:first-child { margin-top: 0; }
.shell .nav a,
.shell .nav-group-summary {
  min-height: 40px;
  padding: 0 12px;
  gap: 10px;
  border-radius: 8px;
  color: rgba(0, 0, 0, .65);
  font-size: 14px;
  font-weight: 400;
  line-height: 40px;
  box-shadow: none;
}
.shell .nav .nav-icon,
.shell .nav .nav-icon .ui-icon {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
}
.shell .nav a:hover,
.shell .nav-group-summary:hover {
  color: rgba(0, 0, 0, .88);
  background: rgba(0, 0, 0, .04);
}
.shell .nav a.active,
.shell .nav-group.is-active > .nav-group-summary {
  color: rgba(0, 0, 0, .88);
  background: rgba(0, 0, 0, .06);
  font-weight: 400;
  box-shadow: none;
}
.shell .nav a.active .nav-icon { color: rgba(0, 0, 0, .88); }
.shell .list-query-card.content-page-head,
.shell .list-query-card.content-page-head--banner {
  margin: 0;
  padding: 24px 24px 0;
  min-height: 0;
}
.shell .list-query-form { gap: 16px 24px; }
.shell .list-query-form > label {
  gap: 8px;
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
  color: rgba(0, 0, 0, .88);
}
.shell .list-query-actions { padding: 0 0 24px; }
.shell .list-card-head {
  min-height: 64px;
  padding: 16px 24px;
  box-sizing: border-box;
}
.shell .list-card-head h1 {
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
}
.shell .list-card-head .list-create-button {
  min-height: 32px;
  height: 32px;
  padding: 0 16px;
  font-size: 14px;
  font-weight: 400;
  border-radius: 6px;
}
.shell .list-card-head .list-create-button .ui-icon { width: 14px; height: 14px; }
.shell.theme-dark .nav a,
.shell.theme-dark .nav-group-summary { color: rgba(255, 255, 255, .65); }
.shell.theme-dark .nav a:hover,
.shell.theme-dark .nav-group-summary:hover,
.shell.theme-dark .nav a.active {
  color: rgba(255, 255, 255, .88);
  background: rgba(255, 255, 255, .08);
}
.shell.theme-dark .nav-label { color: rgba(255, 255, 255, .45); }
.shell.theme-dark .sg-column-chart-y,
.shell.theme-dark .sg-column-chart-labels { color: rgba(255, 255, 255, .45); }

.shell .content.content--workspace:has(.sg-chart-grid) {
  gap: 16px;
  padding-top: 12px;
}
.shell .sg-chart-grid.dashboard-tab-content {
  margin: 0;
  gap: 16px;
}
.shell .sg-sales-card { margin-top: 0; }
.shell .sg-sparkline-mass { fill: currentColor; }
.shell .sg-sparkline-wash { fill-opacity: 1; }
.shell .sg-sparkline-area {
  fill: none;
  fill-opacity: 1;
}
.shell .sg-chart-card--tone-violet .sg-sparkline-area,
.shell .sg-chart-card--tone-brand .sg-sparkline-area { fill: none; }
.shell .sg-sparkline-line { stroke-width: 1.1; }
.shell .sg-sparkline-base {
  stroke: currentColor;
  stroke-opacity: 0.16;
  stroke-width: 1;
}
.shell .sg-chart-card-content { margin-top: 8px; min-height: 46px; }
.shell .sg-chart-card { min-height: 0; }
.shell .nav a,
.shell .nav-group-summary {
  padding: 0 16px;
  letter-spacing: 0;
}
.shell .nav .nav-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: rgba(0, 0, 0, .45);
}
.shell .nav a.active .nav-icon,
.shell .nav a:hover .nav-icon { color: currentColor; }
.shell .nav-label { margin-top: 12px; }
.shell .nav-label-line { display: none; }
.shell .nav { gap: 0; }
.shell .nav a,
.shell .nav-group-summary {
  min-height: 40px;
  font-weight: 400;
  font-feature-settings: "tnum" 0;
}
.shell .nav .nav-icon .ui-icon {
  width: 16px;
  height: 16px;
  stroke-width: 1.75;
}

.shell .content.content--workspace:has(.sg-chart-grid) {
  gap: 16px;
  padding: 12px 24px 24px;
}
.shell .sg-chart-grid {
  gap: 16px;
  margin: 0;
}
a.sg-chart-card:hover { transform: none; }
.shell .sg-chart-card {
  min-height: 168px;
  padding: 20px 24px 0;
  border: 1px solid var(--sg-line);
  box-shadow: none;
}
.shell .sg-chart-card-title {
  color: rgba(0, 0, 0, .65);
  font-size: 14px;
  line-height: 22px;
}
.shell .sg-chart-card-total {
  margin-top: 4px;
  color: rgba(0, 0, 0, .88);
  font-size: 30px;
  font-weight: 600;
  line-height: 38px;
  font-variant-numeric: tabular-nums;
}
.shell .sg-chart-card-tip {
  position: relative;
  cursor: help;
}
.shell .sg-chart-card-tip::after {
  content: attr(data-tip);
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 4;
  display: none;
  width: max-content;
  max-width: 220px;
  padding: 6px 8px;
  border-radius: 6px;
  background: rgba(0, 0, 0, .85);
  color: #fff;
  font-size: 12px;
  font-style: normal;
  font-family: var(--sg-font);
  line-height: 18px;
  white-space: normal;
  pointer-events: none;
}
.shell .sg-chart-card-tip:hover::after,
.shell .sg-chart-card-tip:focus::after { display: block; }
.shell .sg-chart-compare {
  padding-top: 12px;
  gap: 8px;
}
.shell .sg-chart-compare li {
  color: rgba(0, 0, 0, .65);
  font-size: 14px;
  line-height: 22px;
}
.shell .sg-mini-progress-row {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  margin-top: 20px;
}
.shell .sg-mini-progress { flex: 1; height: 6px; margin: 0; }
.shell .sg-mini-progress-track { fill: #f5f5f5; }
.shell .sg-mini-progress-value {
  color: rgba(0, 0, 0, .65);
  font-size: 14px;
  font-variant-numeric: tabular-nums;
  line-height: 22px;
}
.shell .sg-sparkline-line { stroke-width: 1.05; }
.shell .sg-sparkline-mass { fill-opacity: 0.2; }
.shell .sg-chart-card-footer {
  min-height: 44px;
  margin-top: 8px;
  padding: 9px 0 12px;
}
.shell .sg-chart-card-field { color: rgba(0, 0, 0, .65); }
.shell .sg-chart-card-field strong { color: rgba(0, 0, 0, .88); }
.shell .sg-chart-card-foot-compare { color: rgba(0, 0, 0, .65); font-size: 14px; white-space: nowrap; }
.shell .sg-chart-card--progress .sg-chart-card-footer { justify-content: flex-end; }
.shell .sg-chart-card-foot-compare .is-up { color: #f5222d; }
.shell .sg-chart-card-foot-compare .is-down { color: #52c41a; }
.shell .sg-chart-card-foot-compare .is-up::after { content: " ▲"; font-size: 10px; }
.shell .sg-chart-card-foot-compare .is-down::after { content: " ▼"; font-size: 10px; }

.shell .sg-sales-card {
  grid-template-columns: minmax(0, 1fr) 328px;
  margin: 0;
  overflow: hidden;
}
.shell .sg-sales-head {
  padding: 0 0 0 24px;
  min-height: 48px;
}
.shell .sg-line-tabs { gap: 32px; }
.shell .sg-line-tabs a {
  padding: 16px 0 12px;
  font-size: 16px;
  line-height: 24px;
}
.shell .sg-sales-extra { padding-right: 24px; gap: 16px; }
.shell .sg-sales-ranges {
  display: flex;
  align-items: center;
  gap: 24px;
}
.shell .sg-sales-ranges a {
  color: rgba(0, 0, 0, .65);
  font-size: 14px;
  line-height: 22px;
  text-decoration: none;
}
.shell .sg-sales-ranges a.is-active {
  color: var(--brand);
  font-weight: 500;
}
.shell .sg-sales-dates {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 32px;
  padding: 0 12px;
  border: 1px solid var(--sg-line);
  border-radius: 6px;
  color: rgba(0, 0, 0, .65);
  font-size: 14px;
  line-height: 22px;
  font-variant-numeric: tabular-nums;
}
.shell .sg-sales-dates i { font-style: normal; color: rgba(0, 0, 0, .25); }
.shell .sg-sales-dates .ui-icon { width: 14px; height: 14px; color: rgba(0, 0, 0, .45); }
.shell .sg-column-chart-frame {
  grid-template-columns: 56px minmax(0, 1fr);
  grid-template-rows: 258px auto;
  padding: 8px 8px 0 8px;
}
.shell .sg-column-chart-y { height: 258px; }
.shell .sg-column-chart-plot { height: 258px; }
.shell .sg-column-chart-bar {
  cursor: default;
  animation: none;
  transform: none;
}
.shell .sg-column-chart-bar:hover { filter: brightness(.92); }
.shell .sg-column-chart figcaption { padding: 8px 24px 16px 64px; }
.shell .sg-sales-rank {
  padding: 20px 24px 8px;
}
.shell .sg-sales-rank h3 {
  margin: 0 0 20px;
  color: rgba(0, 0, 0, .88);
  font-size: 14px;
  font-weight: 500;
  line-height: 22px;
}
.shell .sg-rank-list--sales li {
  min-height: 34px;
  gap: 12px;
}
.shell .sg-rank-list--sales .sg-rank-name {
  color: rgba(0, 0, 0, .65);
  font-size: 14px;
}
.shell .sg-rank-list--sales .sg-rank-value {
  color: rgba(0, 0, 0, .88);
  font-size: 14px;
  font-variant-numeric: tabular-nums;
}

.shell .sg-analysis-lower { margin-top: 0; }
.shell .sg-analysis-lower .card {
  border: 1px solid var(--sg-line);
  border-radius: 8px;
  box-shadow: none;
}
.shell .sg-analysis-lower .card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 56px;
  padding: 16px 24px;
  border-bottom: 0;
}
.shell .sg-analysis-lower .card-head h2 {
  margin: 0;
  color: rgba(0, 0, 0, .88);
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
}
.shell .sg-analysis-lower .card-head .link {
  color: var(--brand);
  font-size: 14px;
  text-decoration: none;
}
.shell .sg-mini-table { font-size: 14px; width: 100%; table-layout: fixed; }
.shell .sg-sales-card { overflow: visible; }
.shell .sg-mini-table th {
  height: 47px;
  padding: 0 24px;
  color: rgba(0, 0, 0, .88);
  font-size: 14px;
  font-weight: 500;
  background: transparent;
  border-bottom: 1px solid #f0f0f0;
}
.shell .sg-mini-table td {
  height: 47px;
  padding: 0 24px;
  color: rgba(0, 0, 0, .65);
  border-bottom: 1px solid #f0f0f0;
}
.shell .sg-mini-table .table-link { color: var(--brand); font-weight: 400; text-decoration: none; }
.shell .sg-mini-table td.nowrap { font-variant-numeric: tabular-nums; }
.shell .sg-donut {
  padding: 8px 24px 24px;
  grid-template-columns: 168px minmax(0, 1fr);
  gap: 32px;
}
.shell .sg-donut-svg { width: 168px; height: 168px; }
.shell .sg-donut-slice { animation: none; }
.shell .sg-donut-legend { gap: 14px; }
.shell .sg-donut-legend li {
  grid-template-columns: 8px minmax(0, 1fr) auto auto;
  color: rgba(0, 0, 0, .65);
  font-size: 14px;
}
.shell .sg-donut-legend em {
  color: rgba(0, 0, 0, .45);
  font-style: normal;
  font-variant-numeric: tabular-nums;
  min-width: 36px;
  text-align: right;
}
.shell .sg-donut-legend span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.shell .sg-donut-legend strong { color: rgba(0, 0, 0, .88); }

.shell .topbar {
  height: 48px;
  padding: 0 16px;
  background: #fff;
}
.shell .command-trigger {
  min-width: 272px;
  max-width: 320px;
  min-height: 32px;
  height: 32px;
  padding: 0 12px;
  border: 1px solid #d9d9d9;
  border-radius: 6px;
  color: rgba(0, 0, 0, .45);
  background: #fff;
  font-size: 14px;
}
.shell .topbar-actions { gap: 4px; }
.shell .topbar-actions .header-icon-button {
  width: 32px;
  height: 32px;
  border-radius: 6px;
  color: rgba(0, 0, 0, .65);
}
.shell .page-context {
  color: rgba(0, 0, 0, .88);
  font-size: 14px;
  font-weight: 400;
}
.shell .team-switcher-trigger {
  min-height: 40px;
  padding: 4px 8px;
  border-radius: 6px;
}
.shell .nav a,
.shell .nav-group-summary {
  color: rgba(0, 0, 0, .65);
}
.shell .nav a.active {
  color: rgba(0, 0, 0, .88);
  background: rgba(0, 0, 0, .06);
}

.shell .list-query-form {
  grid-template-columns: repeat(3, minmax(160px, 1fr)) auto;
}
.shell .list-table th {
  height: 47px;
  color: rgba(0, 0, 0, .88);
  font-size: 14px;
  font-weight: 500;
  background: #fafafa;
}
.shell .list-table td {
  height: 47px;
  color: rgba(0, 0, 0, .65);
  font-size: 14px;
}
.shell .list-row-links a { color: var(--brand); }

.shell.theme-dark .sg-chart-card-title,
.shell.theme-dark .sg-chart-compare li,
.shell.theme-dark .sg-sales-ranges a,
.shell.theme-dark .sg-sales-dates,
.shell.theme-dark .sg-mini-table td,
.shell.theme-dark .sg-donut-legend li { color: rgba(255, 255, 255, .65); }
.shell.theme-dark .sg-chart-card-total,
.shell.theme-dark .sg-sales-rank h3,
.shell.theme-dark .sg-rank-list--sales .sg-rank-value { color: rgba(255, 255, 255, .88); }
.shell.theme-dark .command-trigger {
  border-color: rgba(255, 255, 255, .2);
  color: rgba(255, 255, 255, .45);
  background: transparent;
}

@media (max-width: 1200px) {
  .shell .sg-sales-card { grid-template-columns: minmax(0, 1fr) 280px; }
  .shell .command-trigger { min-width: 180px; }
}
@media (max-width: 960px) {
  .shell .sg-sales-extra { flex-wrap: wrap; justify-content: flex-end; padding: 0 16px 12px 0; }
}

.shell .sg-column-chart-plot-wrap {
  position: relative;
  min-width: 0;
  height: 258px;
  overflow: visible;
}
.shell .sg-sales-main { overflow: visible; }
.shell .sg-column-hits {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: flex;
}
.shell .sg-column-hit {
  position: relative;
  flex: 1 1 0;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  appearance: none;
}
.shell .sg-column-hit:hover,
.shell .sg-column-hit:focus {
  background: color-mix(in srgb, var(--brand) 7%, transparent);
  outline: none;
}
.shell .sg-column-hit:hover::before,
.shell .sg-column-hit:focus::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 1px;
  background: var(--brand);
  transform: translateX(-50%);
}
.shell .sg-column-float {
  position: absolute;
  top: 10px;
  left: 50%;
  z-index: 4;
  display: none;
  min-width: 148px;
  padding: 8px 12px;
  border-radius: 4px;
  background: #fff;
  color: rgba(0, 0, 0, .88);
  box-shadow: 0 6px 16px rgba(0, 0, 0, .12);
  transform: translateX(-50%);
  pointer-events: none;
}
.shell .sg-column-hit:hover .sg-column-float,
.shell .sg-column-hit:focus .sg-column-float,
.shell .sg-column-hit:focus-visible .sg-column-float,
.shell .sg-column-hit:focus-within .sg-column-float { display: grid; gap: 4px; }
.shell .sg-column-hit:first-child .sg-column-float { left: 8px; transform: none; }
.shell .sg-column-hit:last-child .sg-column-float { left: auto; right: 8px; transform: none; }
.shell .sg-column-float strong {
  color: rgba(0, 0, 0, .45);
  font-size: 12px;
  font-weight: 400;
  line-height: 20px;
}
.shell .sg-column-float span {
  display: flex;
  align-items: center;
  gap: 6px;
  color: rgba(0, 0, 0, .88);
  font-size: 12px;
  line-height: 20px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.shell .sg-column-float i {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 2px;
}
.shell .sg-column-float i.is-primary { background: var(--brand); }
.shell .sg-column-float i.is-secondary { background: color-mix(in srgb, var(--brand) 32%, #fff); }

.shell .sg-sales-picker { position: relative; }
.shell .sg-sales-picker > summary { list-style: none; cursor: pointer; }
.shell .sg-sales-picker > summary::-webkit-details-marker { display: none; }
.shell .sg-sales-picker-panel {
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  z-index: 8;
  display: grid;
  gap: 10px;
  width: 240px;
  padding: 12px;
  border: 1px solid var(--sg-line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 6px 16px rgba(0, 0, 0, .08);
}
.shell .sg-sales-picker-panel label {
  display: grid;
  gap: 6px;
  color: rgba(0, 0, 0, .65);
  font-size: 12px;
}
.shell .sg-sales-picker-panel .input { width: 100%; height: 32px; }

.shell .sg-analysis-lower .card-head { gap: 12px; }
.shell .sg-follow-search {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
}
.shell .sg-follow-search .input {
  width: 168px;
  height: 32px;
}
.shell .sg-follow-index {
  display: inline-grid;
  place-items: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  color: rgba(0, 0, 0, .45);
  font-size: 12px;
}
.shell .sg-follow-index.is-top {
  background: rgba(0, 0, 0, .85);
  color: #fff;
}
.shell .sg-follow-delta.is-up { color: #f5222d; }
.shell .sg-follow-delta.is-down { color: #52c41a; }
.shell .dash-table-card .sg-mini-table th,
.shell .dash-table-card .sg-mini-table td { padding: 0 16px; }
.shell .sg-mini-table th:first-child,
.shell .sg-mini-table td:first-child { width: 56px; padding-left: 24px; }
.shell .sg-mini-table th:last-child,
.shell .sg-mini-table td:last-child { text-align: right; padding-right: 24px; }

.shell .sg-topbar-extra { position: relative; }
.shell .sg-topbar-extra > summary { list-style: none; cursor: pointer; }
.shell .sg-topbar-extra > summary::-webkit-details-marker { display: none; }
.shell .sg-topbar-extra-panel {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  z-index: 40;
  display: grid;
  min-width: 140px;
  padding: 4px;
  border: 1px solid var(--sg-line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 6px 16px rgba(0, 0, 0, .08);
}
.shell .sg-topbar-extra-panel a {
  padding: 7px 12px;
  border-radius: 6px;
  color: rgba(0, 0, 0, .88);
  font-size: 14px;
  line-height: 22px;
  text-decoration: none;
}
.shell .sg-topbar-extra-panel a:hover { background: #f5f5f5; }
.shell.theme-dark .sg-column-float,
.shell.theme-dark .sg-sales-picker-panel,
.shell.theme-dark .sg-topbar-extra-panel {
  background: #1f1f1f;
  color: rgba(255, 255, 255, .88);
  border-color: rgba(255, 255, 255, .12);
}
.shell.theme-dark .sg-column-float strong { color: rgba(255, 255, 255, .45); }

.shell .page-context {
  max-width: min(520px, 46vw);
  color: rgba(0, 0, 0, .45);
  font-size: 14px;
  font-weight: 400;
}
.shell .page-context span:last-child { color: rgba(0, 0, 0, .88); font-weight: 400; }
.shell .page-context span + span::before { color: rgba(0, 0, 0, .25); }

.shell .list-page-stack { gap: 16px; }
.shell .list-query-card.content-page-head--banner {
  padding: 24px 24px 8px;
  border-radius: 8px;
}
.shell .list-query-form {
  display: grid;
  grid-template-columns: repeat(4, minmax(140px, 1fr));
  gap: 16px 24px;
  align-items: end;
}
.shell .list-query-actions {
  grid-column: 1 / -1;
  justify-self: end;
  width: max-content;
  padding-bottom: 16px;
}
.shell .list-query-form > label {
  color: rgba(0, 0, 0, .88);
  font-size: 14px;
  font-weight: 400;
}
.shell .list-query-form .input,
.shell .list-query-form .select {
  height: 32px;
  border: 1px solid #d9d9d9;
  border-radius: 6px;
  box-shadow: none;
}
.shell .list-card {
  border: 1px solid var(--sg-line);
  border-radius: 8px;
  background: #fff;
  box-shadow: none;
}
.shell .list-table thead th,
.shell .list-page-stack .list-table-section .list-table thead th {
  height: 47px;
  padding: 0 16px;
  color: rgba(0, 0, 0, .88);
  background: #fafafa;
  font: 600 14px/22px var(--sg-font);
  border-bottom: 1px solid #f0f0f0;
}
.shell .list-table tbody td {
  height: 47px;
  padding: 0 16px;
  color: rgba(0, 0, 0, .88);
  background: #fff;
  font: 400 14px/22px var(--sg-font);
  border-bottom: 1px solid #f0f0f0;
}
.shell .list-table tbody tr:hover td { background: #fafafa; }
.shell .list-card .pagination {
  margin: 0;
  padding: 16px 24px;
  border-top: 1px solid #f0f0f0;
}
.shell .pagination-total { color: rgba(0, 0, 0, .45); font-size: 14px; }
.shell .pagination .pages { gap: 8px; }
.shell .pagination .button {
  min-width: 32px;
  width: 32px;
  height: 32px;
  padding: 0;
  border-radius: 6px;
}
.shell .pagination .button-primary { min-width: 32px; }

.shell .empty--pro {
  display: grid;
  justify-items: center;
  gap: 8px;
  padding: 48px 24px 56px;
  color: rgba(0, 0, 0, .88);
  text-align: center;
}
.shell .empty--pro .empty-mark {
  position: relative;
  width: 64px;
  height: 40px;
  margin: 0 0 8px;
  border: 0;
  border-radius: 0;
  color: rgba(0, 0, 0, .25);
  background: transparent;
}
.shell .empty--pro .empty-box {
  display: block;
  width: 64px;
  height: 40px;
  border: 1px solid #f0f0f0;
  border-radius: 4px;
  background: linear-gradient(#fafafa, #fff);
  box-shadow: inset 0 -10px 0 #f5f5f5;
}
.shell .empty--pro .empty-mark .ui-icon {
  position: absolute;
  right: -6px;
  bottom: -8px;
  width: 22px;
  height: 22px;
}
.shell .empty--pro h3 {
  margin: 0;
  color: rgba(0, 0, 0, .88);
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
}
.shell .empty--pro p {
  max-width: 360px;
  margin: 0;
  color: rgba(0, 0, 0, .45);
  font-size: 14px;
  line-height: 22px;
}
.shell .empty--pro .button { margin-top: 8px; height: 32px; }

.shell .content-page-head--form {
  margin: 0 0 16px;
  padding: 0;
  border: 0;
  background: transparent;
}
.shell .content-page-head--form .content-page-crumbs,
.shell .content-page-head--form .page-head-back { display: none; }
.shell .content-page-head--form h1 {
  font-size: 20px;
  font-weight: 600;
  line-height: 28px;
  color: rgba(0, 0, 0, .88);
}
.shell .content-page-head--form .lead {
  margin: 8px 0 0;
  color: rgba(0, 0, 0, .45);
  font-size: 14px;
  line-height: 22px;
}
.shell .form-card,
.shell form.form-card {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 24px;
  border: 1px solid var(--sg-line);
  border-radius: 8px;
  background: #fff;
  box-shadow: none;
}
.shell .form-section-heading {
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
  color: rgba(0, 0, 0, .88);
}
.shell .form-section-heading .ui-icon { display: none; }
.shell .form-card .field .ui-label,
.shell .form-card .field > label {
  color: rgba(0, 0, 0, .88);
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
}
.shell .form-card .input,
.shell .form-card .select,
.shell .form-card .textarea {
  min-height: 32px;
  border: 1px solid #d9d9d9;
  border-radius: 6px;
  box-shadow: none;
}
.shell .form-card .input:hover,
.shell .form-card .select:hover { border-color: var(--brand); }
.shell .form-actions {
  display: flex;
  gap: 8px;
  margin-top: 8px;
  padding-top: 24px;
  border-top: 1px solid #f0f0f0;
}
.shell .dash-page-head {
  margin: 0 0 16px;
  padding: 0;
  border: 0;
  background: transparent;
}
.shell .dash-page-copy h1 {
  font-size: 20px;
  font-weight: 600;
  line-height: 28px;
}
.shell .dash-page-copy p {
  margin: 8px 0 0;
  color: rgba(0, 0, 0, .45);
  font-size: 14px;
}

.shell .sg-account-card { min-height: 620px; }
.shell .sg-account-section h2 { font-size: 20px; font-weight: 600; line-height: 28px; }
.shell .sg-account-nav a { min-height: 40px; font-size: 14px; font-weight: 400; }
.shell .sg-account-avatar-btn {
  color: var(--brand);
  background: #fff;
  border: 1px solid var(--brand);
  box-shadow: none;
}
.shell .sg-account-nav a.is-active {
  position: relative;
  background: transparent;
  font-weight: 400;
}
.shell .sg-account-nav a.is-active::before {
  content: "";
  position: absolute;
  top: 8px;
  bottom: 8px;
  left: 0;
  width: 3px;
  background: var(--brand);
  border-radius: 0 2px 2px 0;
}
.shell .sg-account-main { padding: 12px 40px 48px; }
.shell .sg-account-form .button-primary { height: 32px; min-height: 32px; }

.shell.theme-dark .list-table thead th { background: rgba(255, 255, 255, .04); color: rgba(255, 255, 255, .88); }
.shell.theme-dark .list-table tbody td { background: transparent; color: rgba(255, 255, 255, .88); }
.shell.theme-dark .form-card,
.shell.theme-dark .list-card { background: var(--card); }

.shell .list-page-stack {
  gap: 0;
  overflow: visible;
  border: 1px solid var(--sg-line);
  border-radius: 8px;
  background: #fff;
  box-shadow: none;
}
.shell .list-page-stack > .list-query-card,
.shell .list-page-stack > .list-query-card.content-page-head,
.shell .list-page-stack > .list-query-card.content-page-head--banner,
.shell .list-page-stack > .list-query-card.content-page-head--split,
.shell .list-page-stack > .content-page-head.list-query-card {
  margin: 0;
  padding: 24px 24px 8px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.shell .list-page-stack > .list-card,
.shell .list-page-stack > .list-table-section.list-card {
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.shell .list-query-form {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px 24px;
  align-items: end;
}
.shell .list-query-actions {
  grid-column: 4;
  justify-self: end;
  align-self: end;
  width: max-content;
  padding-bottom: 0;
}
.shell .list-card-head {
  min-height: 48px;
  margin: 0;
  padding: 8px 24px 16px;
  border: 0;
  background: transparent;
}
.shell .list-card-head h1 { font-size: 16px; font-weight: 500; }
.shell .list-create-button {
  height: 32px;
  min-height: 32px;
  padding: 0 16px;
  font-weight: 400;
}
.shell .list-create-button .ui-icon { width: 14px; height: 14px; }

.shell .nav a,
.shell .nav-group-summary {
  min-height: 40px;
  color: rgba(0, 0, 0, .88);
  font-size: 14px;
  font-weight: 500;
  line-height: 40px;
}
.shell .nav a:hover,
.shell .nav-group-summary:hover {
  color: rgba(0, 0, 0, .88);
  font-weight: 500;
}
.shell .nav a.active,
.shell .nav-group.is-active > .nav-group-summary {
  color: rgba(0, 0, 0, .88);
  background: rgba(0, 0, 0, .06);
  font-weight: 600;
  box-shadow: none;
}
.shell .nav-label { font-weight: 500; }

.shell.theme-dark .list-page-stack { background: var(--card); border-color: rgba(255, 255, 255, .12); }
.shell.theme-dark .nav a,
.shell.theme-dark .nav-group-summary { color: rgba(255, 255, 255, .85); }
.shell.theme-dark .nav a.active { background: rgba(255, 255, 255, .08); color: #fff; }

.shell .list-page-stack .list-table-section,
.shell .list-page-stack > .list-table-section.list-card {
  gap: 0;
}
.shell .list-page-stack > .list-table-section .table-wrap,
.shell .list-page-stack > .list-table-section .list-bulk-form .table-wrap,
.shell .list-page-stack .list-card .list-bulk-form .table-wrap,
.shell .list-page-stack .list-card > .table-wrap {
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
  overflow-x: auto;
}
.shell .list-page-stack .list-table-section .table-wrap .list-table,
.shell .list-page-stack .list-bulk-form .table-wrap .list-table {
  width: 100%;
  min-width: 720px;
  border-collapse: collapse;
  font-size: 14px;
  line-height: 22px;
}
.shell .list-page-stack .list-table-section .table-wrap .list-table thead th,
.shell .list-page-stack .list-card .table-wrap .list-table thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  height: 47px;
  padding: 0 16px;
  color: rgba(0, 0, 0, .88);
  background: #fafafa;
  font: 500 14px/22px var(--sg-font);
  letter-spacing: 0;
  border-bottom: 1px solid #f0f0f0;
  box-shadow: none;
}
.shell .list-page-stack .list-table-section .table-wrap .list-table tbody td,
.shell .list-page-stack .list-card .table-wrap .list-table tbody td {
  height: 47px;
  padding: 12px 16px;
  color: rgba(0, 0, 0, .88);
  background: #fff;
  font: 400 14px/22px var(--sg-font);
  border-bottom: 1px solid #f0f0f0;
}
.shell .list-page-stack .list-table-section .table-wrap .list-table tbody tr:hover td {
  background: #fafafa;
}
.shell .list-page-stack .list-table-section .table-wrap .list-table tbody td.nowrap {
  color: rgba(0, 0, 0, .65);
  font-size: 14px;
}
.shell .list-page-stack .list-table-section .table-wrap .list-table thead th.list-select-col,
.shell .list-page-stack .list-table-section .table-wrap .list-table tbody td.list-select-col {
  width: 48px;
  padding: 0 8px 0 16px;
  text-align: left;
  vertical-align: middle;
}
.shell .list-page-stack .list-table .primary-cell > a,
.shell .list-page-stack .list-table .primary-cell > a.table-link,
.shell .list-page-stack .list-table .primary-cell > a.link {
  color: var(--brand);
  font-size: 14px;
  font-weight: 400;
  text-decoration: none;
}
.shell .list-page-stack .list-table .primary-cell > strong { font-weight: 400; }
.shell .list-page-stack .list-table tbody td.list-row-links { white-space: nowrap; }
.shell .list-page-stack .list-table-section .pagination,
.shell .list-page-stack .list-card .pagination {
  margin: 0;
  padding: 16px 24px;
  border-top: 1px solid #f0f0f0;
}
.shell.theme-dark .list-page-stack .list-table-section .table-wrap .list-table thead th {
  background: rgba(255, 255, 255, .04);
  color: rgba(255, 255, 255, .88);
}
.shell.theme-dark .list-page-stack .list-table-section .table-wrap .list-table tbody td {
  background: transparent;
  color: rgba(255, 255, 255, .88);
}

.shell .list-page-stack > .list-query-card,
.shell .list-page-stack > .content-page-head.list-query-card {
  padding: 24px 24px 0;
}
.shell .list-query-form {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 16px 16px;
}
.shell .list-query-form > label {
  flex: 1 1 160px;
  min-width: 0;
}
.shell .list-query-form .input,
.shell .list-query-form .select,
.shell .list-query-form .list-sort-select {
  display: block;
  width: 100%;
  max-width: none;
  height: 32px;
  box-sizing: border-box;
}
.shell .list-query-actions {
  display: flex;
  flex: 0 0 auto;
  grid-column: auto;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  margin-left: auto;
  padding: 0 0 0;
  width: auto;
}
.shell .list-card-head {
  min-height: 40px;
  padding: 16px 24px;
}
.shell .list-select-all-box {
  border-radius: 2px;
  box-shadow: none;
  background: #fff;
  border: 1px solid #d9d9d9;
}
.shell .list-select-all-box.is-checked {
  box-shadow: none;
  border-color: var(--brand);
  background: var(--brand);
}
.shell .list-page-stack .list-table tbody td.list-select-col input[type="checkbox"] {
  width: 16px;
  height: 16px;
  margin: 0;
  accent-color: var(--brand);
}

.shell .list-page-stack {
  gap: 16px;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.shell .list-page-stack > .list-query-card,
.shell .list-page-stack > .list-query-card.content-page-head,
.shell .list-page-stack > .list-query-card.content-page-head--banner,
.shell .list-page-stack > .content-page-head.list-query-card {
  margin: 0;
  padding: 24px;
  border: 1px solid var(--sg-line);
  border-radius: 8px;
  background: #fff;
  box-shadow: none;
}
.shell .list-page-stack > .list-card,
.shell .list-page-stack > .list-table-section.list-card {
  margin: 0;
  padding: 0 24px 16px;
  border: 1px solid var(--sg-line);
  border-radius: 8px;
  background: #fff;
  box-shadow: none;
}
.shell .list-card-head {
  min-height: 64px;
  padding: 16px 8px;
  box-sizing: border-box;
}
.shell .list-card-head h1 {
  font-size: 16px;
  font-weight: 600;
  line-height: 24px;
  color: rgba(0, 0, 0, .88);
}
.shell .list-page-stack .list-table-section .table-wrap .list-table thead th,
.shell .list-page-stack .list-card .table-wrap .list-table thead th {
  height: 47px;
  padding: 12px 8px;
  color: rgba(0, 0, 0, .88);
  background: #fafafa;
  font: 600 14px/22px var(--sg-font);
  border-bottom: 1px solid #f0f0f0;
  box-shadow: none;
}
.shell .list-page-stack .list-table-section .table-wrap .list-table tbody td,
.shell .list-page-stack .list-card .table-wrap .list-table tbody td {
  height: 47px;
  padding: 12px 8px;
  color: rgba(0, 0, 0, .88);
  background: transparent;
  font: 400 14px/22px var(--sg-font);
  border-bottom: 1px solid #f0f0f0;
}
.shell .list-page-stack .list-table-section .table-wrap .list-table thead th.list-select-col,
.shell .list-page-stack .list-table-section .table-wrap .list-table tbody td.list-select-col {
  width: 32px;
  padding: 12px 8px;
  text-align: center;
}
.shell .list-page-stack .list-table-section .pagination,
.shell .list-page-stack .list-card .pagination {
  margin: 16px 0 0;
  padding: 0;
  border-top: 0;
}
.shell .nav {
  padding: 4px 8px 16px;
  gap: 0;
}
.shell .nav a,
.shell .nav-group-summary {
  min-height: 40px;
  margin: 4px 0;
  padding: 0 16px;
  border-radius: 6px;
  color: rgba(0, 0, 0, .65);
  font-size: 14px;
  font-weight: 400;
  line-height: 40px;
  letter-spacing: 0;
}
.shell .nav a:hover,
.shell .nav-group-summary:hover {
  color: rgba(0, 0, 0, .88);
  background: rgba(0, 0, 0, .04);
  font-weight: 400;
}
.shell .nav a.active,
.shell .nav-group.is-active > .nav-group-summary {
  color: rgba(0, 0, 0, .95);
  background: rgba(0, 0, 0, .04);
  font-weight: 400;
  box-shadow: none;
}
.shell .nav a.active .nav-icon { color: rgba(0, 0, 0, .95); }
.shell .nav-label {
  height: 28px;
  padding: 0 16px;
  color: rgba(0, 0, 0, .45);
  font-size: 12px;
  font-weight: 400;
  line-height: 28px;
}
.shell.theme-dark .nav a,
.shell.theme-dark .nav-group-summary { color: rgba(255, 255, 255, .65); font-weight: 400; }
.shell.theme-dark .nav a.active {
  color: rgba(255, 255, 255, .95);
  background: rgba(255, 255, 255, .08);
  font-weight: 400;
}

.shell,
.shell button,
.shell input,
.shell select,
.shell textarea {
  font-family: var(--sg-font);
}
.shell {
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
  color: rgba(0, 0, 0, .88);
}
.shell .button,
.shell .button-small,
.shell .button-outline,
.shell .button-primary,
.shell .button-ghost,
.shell .input,
.shell .select,
.shell .textarea,
.shell .input-compact,
.shell .select-compact,
.shell .ui-label,
.shell .list-query-form > label,
.shell .field .ui-label,
.shell .field > label {
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
}

.shell .list-page-stack > .list-query-card,
.shell .list-page-stack > .content-page-head.list-query-card {
  display: flex;
  align-items: center;
  min-height: 80px;
  padding: 24px;
  box-sizing: border-box;
}
.shell .list-query-form {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  width: 100%;
  gap: 16px 24px;
}
.shell .list-query-form > label {
  display: flex;
  flex-direction: row;
  align-items: center;
  flex: 1 1 220px;
  gap: 8px;
  min-width: 0;
  color: rgba(0, 0, 0, .88);
  white-space: nowrap;
}
.shell .list-query-form > label .input,
.shell .list-query-form > label .select,
.shell .list-query-form > label .list-sort-select {
  flex: 1 1 auto;
  width: auto;
  min-width: 136px;
  max-width: none;
  height: 32px;
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
  color: rgba(0, 0, 0, .88);
}
.shell .list-query-actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 8px;
  margin-left: auto;
  padding: 0;
}
.shell .list-query-actions .button {
  height: 32px;
  min-height: 32px;
  padding: 0 15px;
  font-size: 14px;
  font-weight: 400;
}

.shell .list-page-stack .list-table,
.shell .list-page-stack .list-table thead th,
.shell .list-page-stack .list-table tbody td,
.shell .list-page-stack .list-table .primary-cell,
.shell .list-page-stack .list-table .primary-cell > a,
.shell .list-page-stack .list-table .primary-cell > a.table-link,
.shell .list-page-stack .list-table .primary-cell > strong,
.shell .list-page-stack .list-table .badge,
.shell .list-page-stack .list-table td.nowrap,
.shell .list-page-stack .list-row-links,
.shell .list-page-stack .list-row-links a,
.shell .list-page-stack .pagination,
.shell .list-page-stack .pagination-total {
  font-size: 14px;
  line-height: 22px;
}
.shell .list-page-stack .list-table tbody td,
.shell .list-page-stack .list-table .primary-cell > strong,
.shell .list-page-stack .list-table .badge {
  font-weight: 400;
  color: rgba(0, 0, 0, .88);
}
.shell .list-page-stack .list-table thead th {
  font-weight: 600;
  color: rgba(0, 0, 0, .88);
}
.shell .list-page-stack .list-table .primary-cell > a {
  font-weight: 400;
  color: var(--brand);
}

.shell .nav a,
.shell .nav-group-summary {
  font-weight: 500;
  color: rgba(0, 0, 0, .88);
}
.shell .nav a:hover,
.shell .nav-group-summary:hover {
  font-weight: 500;
  color: rgba(0, 0, 0, .88);
  background: rgba(22, 93, 255, .06);
}
.shell .nav a.active,
.shell .nav-group.is-active > .nav-group-summary {
  color: var(--brand);
  background: var(--brand-soft);
  font-weight: 600;
  box-shadow: none;
}
.shell .nav a.active .nav-icon { color: var(--brand); }

.shell .topbar { position: relative; }
.shell .topbar::after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  z-index: 2;
  width: 100%;
  height: 2px;
  background: var(--brand);
  transform: scaleX(1);
  transform-origin: left center;
  animation: sg-top-progress .42s var(--ease-standard);
}
@keyframes sg-top-progress {
  from { transform: scaleX(.08); }
  to { transform: scaleX(1); }
}
.shell .sg-chart-grid > *,
.shell .sg-sales-card,
.shell .sg-hot-card,
.shell .sg-share-card {
  animation: sg-page-enter .32s var(--ease-standard) both;
}
.shell .sg-chart-grid > *:nth-child(2) { animation-delay: 40ms; }
.shell .sg-chart-grid > *:nth-child(3) { animation-delay: 80ms; }
.shell .sg-chart-grid > *:nth-child(4) { animation-delay: 120ms; }
.shell .sg-hot-card { animation-delay: 80ms; }
.shell .sg-share-card { animation-delay: 120ms; }
.shell .button:active { transform: scale(.98); }
.shell .list-card.is-loading .list-loading-mask {
  animation: sg-page-enter .28s var(--ease-standard);
}

.shell .sg-analysis-lower {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 24px;
  margin-top: 24px;
}
.shell .sg-hot-card,
.shell .sg-share-card {
  min-height: 500px;
  padding: 0 0 16px;
  overflow: visible;
}
.shell .sg-hot-head,
.shell .sg-share-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 56px;
  padding: 16px 24px 8px;
}
.shell .sg-hot-head h2,
.shell .sg-share-head h2 {
  margin: 0;
  color: rgba(0, 0, 0, .88);
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
}
.shell .sg-hot-kpis {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  padding: 8px 24px 16px;
}
.shell .sg-hot-kpi {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 120px;
  grid-template-rows: auto auto;
  column-gap: 8px;
}
.shell .sg-hot-kpi span {
  grid-column: 1;
  color: rgba(0, 0, 0, .45);
  font-size: 14px;
  line-height: 22px;
  white-space: nowrap;
}
.shell .sg-hot-kpi strong {
  grid-column: 1;
  color: rgba(0, 0, 0, .88);
  font-size: 24px;
  font-weight: 500;
  line-height: 32px;
  font-variant-numeric: tabular-nums;
}
.shell .sg-hot-kpi em {
  justify-self: start;
  margin: 4px 0 0;
  font-size: 14px;
  font-style: normal;
  font-variant-numeric: tabular-nums;
}
.shell .sg-hot-kpi em.is-up { color: #f5222d; }
.shell .sg-hot-kpi em.is-down { color: #52c41a; }
.shell .sg-hot-kpi .sg-sparkline {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: end;
  width: 120px;
  height: 32px;
}
.shell .sg-hot-card .sg-follow-search {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 0 24px 8px;
}
.shell .sg-hot-card .sg-follow-search .input { width: 200px; }
.shell .sg-hot-card .table-wrap,
.shell .sg-hot-card .sg-mini-table {
  margin: 0;
  border: 0;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  table-layout: fixed;
}
.shell .sg-hot-card .sg-mini-table th,
.shell .sg-hot-card .sg-mini-table td { padding: 12px 16px; }
.shell .sg-hot-card .sg-mini-table th:nth-child(1),
.shell .sg-hot-card .sg-mini-table td:nth-child(1) { width: 56px; padding-left: 24px; }
.shell .sg-hot-card .sg-mini-table th:nth-child(4),
.shell .sg-hot-card .sg-mini-table td:nth-child(4) { width: 88px; padding-right: 24px; }
.shell .sg-hot-pager {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 12px 24px 0;
}
.shell .sg-hot-pager a {
  display: grid;
  place-items: center;
  min-width: 24px;
  height: 24px;
  border-radius: 4px;
  color: rgba(0, 0, 0, .88);
  font-size: 14px;
  text-decoration: none;
}
.shell .sg-hot-pager a.is-active {
  color: #fff;
  background: var(--brand);
}
.shell .sg-share-tabs { display: flex; gap: 16px; }
.shell .sg-share-tabs a,
.shell .sg-share-tabs span {
  color: rgba(0, 0, 0, .45);
  font-size: 14px;
  line-height: 22px;
  text-decoration: none;
}
.shell .sg-share-tabs a.is-active,
.shell .sg-share-tabs span.is-active { color: rgba(0, 0, 0, .88); }
.shell .sg-share-body { padding: 8px 24px 16px; }
.shell .sg-donut--share {
  min-height: 360px;
  grid-template-columns: 248px minmax(0, 1fr);
  gap: 32px;
  align-items: center;
}
.shell .sg-donut--share .sg-donut-svg { width: 248px; height: 248px; }

.shell.theme-dark .nav a.active {
  color: var(--brand);
  background: var(--brand-soft);
}
@media (max-width: 1100px) {
  .shell .sg-analysis-lower { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .shell .content,
  .shell .topbar::after,
  .shell .sg-chart-grid > *,
  .shell .sg-sales-card,
  .shell .sg-hot-card,
  .shell .sg-share-card,
  .shell .sg-donut--share .sg-donut-svg { animation: none; }
}

.shell .nav a,
.shell .nav-group-summary {
  font-weight: 600;
  color: rgba(0, 0, 0, .88);
  transition: background .15s var(--ease-standard), color .15s var(--ease-standard);
}
.shell .nav a:hover,
.shell .nav-group-summary:hover {
  font-weight: 600;
  color: rgba(0, 0, 0, .88);
  background: rgba(22, 93, 255, .06);
}
.shell .nav a.active,
.shell .nav-group.is-active > .nav-group-summary {
  color: var(--brand);
  background: var(--brand-soft);
  font-weight: 700;
  box-shadow: none;
}
.shell .nav a.active .nav-icon { color: var(--brand); }
.shell .nav-label { font-weight: 600; }
.shell.theme-dark .nav a,
.shell.theme-dark .nav-group-summary { font-weight: 600; color: rgba(255, 255, 255, .88); }
.shell.theme-dark .nav a.active,
.shell.theme-dark .nav-group.is-active > .nav-group-summary {
  color: var(--brand);
  background: var(--brand-soft);
}

.shell .sg-hot-head .sg-follow-search { margin: 0; padding: 0; }
.shell .sg-hot-kpi-value {
  display: flex;
  align-items: baseline;
  gap: 8px;
  grid-column: 1;
}
.shell .sg-hot-kpi-value strong {
  color: rgba(0, 0, 0, .88);
  font-size: 24px;
  font-weight: 500;
  line-height: 32px;
  font-variant-numeric: tabular-nums;
}
.shell .sg-hot-kpi-value em {
  margin: 0;
  font-size: 14px;
  font-style: normal;
  font-variant-numeric: tabular-nums;
}
.shell .sg-hot-card .sg-mini-table thead th { background: #fafafa; }
.shell .sg-hot-card .sg-mini-table tbody tr:hover td { background: #fafafa; }
.shell .sg-hot-pager span.is-ellipsis {
  display: grid;
  place-items: center;
  min-width: 24px;
  height: 24px;
  color: rgba(0, 0, 0, .45);
  font-size: 12px;
}
.shell .sg-hot-pager a:hover {
  color: var(--brand);
  background: var(--brand-soft);
}
.shell .sg-share-tabs a:hover,
.shell .sg-share-tabs span:hover { color: rgba(0, 0, 0, .88); }
.shell .sg-donut--share .sg-donut-svg {
  transform-origin: center;
  animation: sg-donut-in .42s var(--ease-standard) both;
}
@keyframes sg-donut-in {
  from { transform: scale(.92); }
  to { transform: none; }
}
.shell .sg-hot-card.is-loading,
.shell .sg-share-card.is-loading { position: relative; }
.shell .ui-skeleton-donut {
  width: 120px;
  height: 120px;
  border-radius: 999px;
}
.shell .button {
  transition: background .15s var(--ease-standard), color .15s var(--ease-standard), transform .12s var(--ease-standard);
}
.shell .list-table tbody tr { transition: background .15s var(--ease-standard); }

.shell .list-query-form > label {
  min-width: 0;
  color: rgba(0, 0, 0, .88);
  font-family: inherit;
  font-size: 14px;
  font-weight: 400;
  line-height: 32px;
}
.shell .list-query-form > label .input,
.shell .list-query-form > label .select,
.shell .list-query-form > label .input-compact,
.shell .list-query-form > label .select-compact,
.shell .list-query-form > label .list-sort-select .select,
.shell .list-query-form .input,
.shell .list-query-form .select,
.shell .list-query-form .input-compact,
.shell .list-query-form .select-compact,
.shell .list-query-form .list-sort-select .select {
  box-sizing: border-box;
  display: block;
  width: 100%;
  min-width: 0;
  max-width: none;
  height: 32px;
  min-height: 32px;
  max-height: 32px;
  margin: 0;
  padding: 0 11px;
  overflow: hidden;
  color: rgba(0, 0, 0, .88);
  background-color: #fff;
  border: 1px solid #d9d9d9;
  border-radius: 6px;
  box-shadow: none;
  font-family: inherit;
  font-size: 14px;
  font-weight: 400;
  line-height: 30px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.shell .list-query-form > label .select,
.shell .list-query-form > label .select-compact,
.shell .list-query-form > label .list-sort-select .select,
.shell .list-query-form .select,
.shell .list-query-form .select-compact {
  padding-right: 28px;
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23000000' stroke-opacity='.45' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round' d='M2.5 4.5 6 8l3.5-3.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
  background-size: 12px;
}
.shell .list-query-form .input::placeholder {
  color: rgba(0, 0, 0, .25);
  opacity: 1;
  font-family: inherit;
  font-size: 14px;
  font-weight: 400;
}
.shell .list-query-form select.select:has(option[value=""]:checked) {
  color: rgba(0, 0, 0, .25);
}
.shell .list-query-form select.select option {
  color: rgba(0, 0, 0, .88);
  font-family: inherit;
  font-size: 14px;
}
.shell .list-query-form .list-sort-select {
  display: block;
  flex: 1 1 auto;
  min-width: 168px;
  width: auto;
}
.shell .list-query-form .filter-select .select {
  padding-left: 11px;
}

.shell .sg-account-main .settings-content-section {
  max-width: none;
  width: 100%;
}
.shell .sg-account-main .settings-section-head h3 {
  margin: 12px 0 8px;
  color: rgba(0, 0, 0, .88);
  font-size: 20px;
  font-weight: 500;
  line-height: 28px;
}
.shell .sg-account-main .settings-section-head p {
  margin: 0 0 8px;
  color: rgba(0, 0, 0, .45);
  font-size: 14px;
  line-height: 22px;
}
.shell .sg-account-main .settings-section-separator { display: none; }
.shell .sg-account-main .settings-section-body { padding: 0; }
.shell .sg-account-main .settings-form .field,
.shell .sg-account-main .settings-form .asset-field,
.shell .sg-account-form .field,
.shell .sg-account-form .asset-field {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
  max-width: 520px;
  margin: 0;
  padding: 0 0 24px;
  border: 0;
  grid-template-columns: none;
}
.shell .sg-account-main .settings-form .field .ui-label,
.shell .sg-account-main .settings-form .asset-field .ui-label,
.shell .sg-account-form .field .ui-label {
  margin: 0;
  padding: 0;
  color: rgba(0, 0, 0, .88);
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
}
.shell .sg-account-main .settings-form .field > :not(.ui-label),
.shell .sg-account-main .settings-form .asset-field > :not(.ui-label),
.shell .sg-account-main .settings-form .field-hint {
  grid-column: auto;
  width: 100%;
}
.shell .sg-account-main .settings-form .input,
.shell .sg-account-main .settings-form .select,
.shell .sg-account-main .settings-form .textarea,
.shell .sg-account-form .input,
.shell .sg-account-form .select,
.shell .sg-account-form .textarea {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  height: 32px;
  min-height: 32px;
  padding: 0 11px;
  color: rgba(0, 0, 0, .88);
  background: #fff;
  border: 1px solid #d9d9d9;
  border-radius: 6px;
  box-shadow: none;
  font-family: inherit;
  font-size: 14px;
  font-weight: 400;
  line-height: 30px;
}
.shell .sg-account-main .settings-form .textarea,
.shell .sg-account-form .textarea {
  height: auto;
  min-height: 88px;
  padding: 8px 11px;
  line-height: 22px;
  resize: vertical;
  field-sizing: auto;
}
.shell .sg-account-main .settings-form .input::placeholder,
.shell .sg-account-form .input::placeholder,
.shell .sg-account-form .textarea::placeholder {
  color: rgba(0, 0, 0, .25);
}
.shell .sg-account-main .settings-form .button-primary,
.shell .sg-account-form .button-primary {
  min-height: 32px;
  height: 32px;
  padding: 0 15px;
  color: #fff;
  background: var(--brand);
  border-color: var(--brand);
  font-weight: 400;
}

.shell .sg-account-aside { padding: 12px 8px; }
.shell .sg-account-nav { gap: 4px; }
.shell .sg-account-nav a {
  margin: 0;
  padding: 0 16px;
  border-radius: 8px;
  color: rgba(0, 0, 0, .88);
  background: transparent;
  font-weight: 400;
}
.shell .sg-account-nav a:hover {
  color: rgba(0, 0, 0, .88);
  background: var(--brand-soft);
}
.shell .sg-account-nav a.is-active {
  color: rgba(0, 0, 0, .88);
  background: var(--brand-soft);
  font-weight: 400;
}
.shell .sg-account-nav a.is-active::before { display: none; }
.shell .sg-account-list p { color: rgba(0, 0, 0, .45); }
.shell .sg-account-list li:last-child { border-bottom: 1px solid #f0f0f0; }

.shell .sg-account-aside { padding: 28px 12px 16px; }
.shell .sg-account-main { padding: 28px 40px 48px; }
.shell .sg-account-section h2 { margin: 0 0 20px; }
.shell .sg-account-main .settings-section-head {
  grid-column: 1 / -1;
  margin: 8px 0 16px;
}
.shell .sg-account-main .settings-section-head:first-child { margin-top: 0; }
.shell .sg-account-main .settings-section-head h3 {
  margin: 0 0 4px;
  color: rgba(0, 0, 0, .88);
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
}
.shell .sg-account-main .settings-section-head p {
  margin: 0;
  color: rgba(0, 0, 0, .45);
  font-size: 14px;
  line-height: 22px;
}
.shell .sg-account-form--wide {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0 24px;
  max-width: 736px;
}
.shell .sg-account-main .sg-account-form--wide .field,
.shell .sg-account-main .sg-account-form--wide .asset-field,
.shell .sg-account-form.sg-account-form--wide .field,
.shell .sg-account-form.sg-account-form--wide .asset-field {
  max-width: none;
  width: 100%;
}
.shell .sg-account-form .asset-field .ui-label,
.shell .sg-account-main .settings-form .asset-field .ui-label {
  align-self: stretch;
  text-align: left;
}
.shell .sg-account-form--wide .field-full,
.shell .sg-account-form--wide .asset-field,
.shell .sg-account-form--wide .settings-section-head,
.shell .sg-account-form--wide .notice,
.shell .sg-account-form--wide .settings-form-actions {
  grid-column: 1 / -1;
}
.shell .sg-account-main .notice {
  margin: 0 0 16px;
  max-width: none;
}
.shell .sg-account-main .settings-form .asset-field,
.shell .sg-account-form .asset-field {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
}
.shell .sg-account-main .settings-form .asset-field-controls,
.shell .sg-account-form .asset-field-controls {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}
.shell .sg-account-main .settings-form .file-input,
.shell .sg-account-form .file-input {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  height: 32px;
  min-height: 32px;
  padding: 0 11px;
  color: rgba(0, 0, 0, .88);
  background: #fff;
  border: 1px solid #d9d9d9;
  border-radius: 6px;
  box-shadow: none;
  font: inherit;
  font-size: 14px;
  line-height: 30px;
}
.shell .sg-account-form .file-input::file-selector-button {
  height: 22px;
  margin: 4px 10px 4px 0;
  padding: 0 8px;
  border: 1px solid #d9d9d9;
  border-radius: 4px;
  background: #fff;
  color: rgba(0, 0, 0, .88);
  font: inherit;
  font-size: 14px;
  cursor: pointer;
}
.shell .sg-account-form .asset-field-preview {
  width: 64px;
  height: 64px;
  flex: none;
  border: 1px solid #d9d9d9;
  border-radius: 6px;
  background: #fafafa;
}
.shell .sg-account-form .asset-field-current {
  color: rgba(0, 0, 0, .45);
  font-size: 14px;
  line-height: 22px;
}
.shell .sg-account-form .settings-form-actions {
  margin-top: 8px;
  padding-top: 24px;
  border-top: 1px solid #f0f0f0;
}

.shell .form-card,
.shell form.form-card {
  width: 100%;
  max-width: none;
  padding: 24px;
  gap: 24px;
}
.shell .form-card .field,
.shell .form-card .ui-combobox {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
}
.shell .form-card .field .ui-label,
.shell .form-card .field > label {
  color: rgba(0, 0, 0, .88);
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
}
.shell .form-card .input,
.shell .form-card .select,
.shell .form-card .textarea {
  box-sizing: border-box;
  height: 32px;
  min-height: 32px;
  padding: 0 11px;
  color: rgba(0, 0, 0, .88);
  background: #fff;
  border: 1px solid #d9d9d9;
  border-radius: 6px;
  box-shadow: none;
  font-family: inherit;
  font-size: 14px;
  font-weight: 400;
  line-height: 30px;
}
.shell .form-card .textarea {
  height: auto;
  min-height: 88px;
  padding: 8px 11px;
  line-height: 22px;
}
.shell .form-card .input::placeholder,
.shell .form-card .textarea::placeholder {
  color: rgba(0, 0, 0, .25);
}
.shell .form-card .select {
  appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path fill='none' stroke='%23000000' stroke-opacity='.45' stroke-width='1.5' d='M2.5 4.5 L6 8 L9.5 4.5'/></svg>");
  background-repeat: no-repeat;
  background-position: right 11px center;
  padding-right: 28px;
}
.shell .form-section-title {
  grid-column: 1 / -1;
  margin: 8px 0 0;
  padding: 0;
  border: 0;
}
.shell .form-section-title:first-child,
.shell .form-card > .form-section-title:first-of-type { margin-top: 0; }
.shell .form-section-heading {
  margin: 0;
  color: rgba(0, 0, 0, .88);
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
}
.shell .form-actions {
  display: flex;
  gap: 8px;
  margin-top: 8px;
  padding-top: 24px;
  border-top: 1px solid #f0f0f0;
}
.shell .form-actions .button {
  min-height: 32px;
  height: 32px;
  padding: 0 15px;
  font-weight: 400;
}
.shell .form-actions .button-secondary {
  color: rgba(0, 0, 0, .88);
  background: #fff;
  border: 1px solid #d9d9d9;
}
.shell .content-page-head--form .lead {
  margin: 4px 0 0;
  color: rgba(0, 0, 0, .45);
  font-size: 14px;
  line-height: 22px;
}

.shell .sg-account-main { background: #fafafa; }
.shell .sg-account-form--wide {
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-width: none;
}
.shell .sg-advanced-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
}
.shell .sg-form-block {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px 16px;
  margin: 0;
  padding: 24px;
  background: #fff;
  border: 1px solid var(--sg-line);
  border-radius: 8px;
}
.shell .sg-form-block > .settings-section-head,
.shell .sg-form-block > .form-section-title {
  grid-column: 1 / -1;
  margin: -24px -24px 0;
  padding: 16px 24px;
  border-bottom: 1px solid #f0f0f0;
}
.shell .sg-form-block > .settings-section-head h3,
.shell .sg-form-block .form-section-heading {
  margin: 0;
  color: rgba(0, 0, 0, .88);
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
}
.shell .sg-form-block > .settings-section-head p {
  margin: 4px 0 0;
  color: rgba(0, 0, 0, .45);
  font-size: 14px;
  line-height: 22px;
}
.shell .sg-form-block .field,
.shell .sg-form-block .asset-field,
.shell .sg-form-block .ui-combobox {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  border: 0;
  grid-column: auto;
}
.shell .sg-form-block .field-full,
.shell .sg-form-block .notice,
.shell .sg-form-block .check.field-full {
  grid-column: 1 / -1;
}
.shell .sg-form-block .asset-field.field-full {
  grid-column: auto;
}
.shell .sg-form-block .field .ui-label,
.shell .sg-form-block .asset-field .ui-label {
  align-self: stretch;
  color: rgba(0, 0, 0, .88);
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
}
.shell .sg-form-block .input,
.shell .sg-form-block .select,
.shell .sg-form-block .textarea {
  box-sizing: border-box;
  width: 100%;
  height: 32px;
  min-height: 32px;
  padding: 0 11px;
  color: rgba(0, 0, 0, .88);
  background: #fff;
  border: 1px solid #d9d9d9;
  border-radius: 6px;
  box-shadow: none;
  font-family: inherit;
  font-size: 14px;
  line-height: 30px;
}
.shell .sg-form-block .textarea {
  height: auto;
  min-height: 88px;
  padding: 8px 11px;
  line-height: 22px;
}
.shell .sg-form-block .input::placeholder,
.shell .sg-form-block .textarea::placeholder {
  color: rgba(0, 0, 0, .25);
}
.shell .sg-form-block .select {
  appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path fill='none' stroke='%23000000' stroke-opacity='.45' stroke-width='1.5' d='M2.5 4.5 L6 8 L9.5 4.5'/></svg>");
  background-repeat: no-repeat;
  background-position: right 11px center;
  padding-right: 28px;
}
.shell .sg-form-block .asset-field .asset-field-controls {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 8px;
  width: 100%;
}
.shell .sg-form-block .asset-field-preview {
  width: 40px;
  height: 40px;
  flex: none;
}
.shell .sg-form-block .asset-field .file-input {
  flex: 1 1 auto;
  width: auto;
  min-width: 0;
  height: 32px;
  min-height: 32px;
  max-height: 32px;
}
.shell .sg-form-block .field-hint,
.shell .sg-form-block .asset-field-current {
  color: rgba(0, 0, 0, .45);
  font-size: 12px;
  line-height: 20px;
}
.shell .sg-form-block .asset-field > .field-hint {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.shell .sg-account-form--wide .settings-form-actions,
.shell .sg-advanced-form .form-actions {
  margin: 0;
  padding: 0;
  border: 0;
}
.shell .form-card.form-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px 16px;
}
@media (max-width: 1100px) {
  .shell .sg-form-block,
  .shell .form-card.form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 720px) {
  .shell .sg-form-block,
  .shell .form-card.form-grid {
    grid-template-columns: 1fr;
  }
}

.shell .sg-form-block {
  align-items: start;
  row-gap: 24px;
  column-gap: 16px;
  padding: 24px;
}
.shell .sg-form-block .asset-field {
  min-width: 0;
}
.shell .sg-form-block .asset-field > .field-hint {
  display: none;
}
.shell .sg-form-block .asset-field .asset-field-controls {
  box-sizing: border-box;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 8px;
  width: 100%;
  height: 32px;
  min-height: 32px;
  max-height: 32px;
  overflow: hidden;
  padding: 0 8px 0 0;
  background: #fff;
  border: 1px solid #d9d9d9;
  border-radius: 6px;
}
.shell .sg-form-block .asset-field-preview,
.shell .sg-form-block .asset-field-preview[hidden] {
  width: 32px;
  height: 32px;
  flex: none;
  border: 0;
  border-right: 1px solid #f0f0f0;
  border-radius: 5px 0 0 5px;
  background: #fafafa;
}
.shell .sg-form-block .asset-field-preview[hidden] { display: none; }
.shell .sg-form-block .asset-field .file-input {
  flex: none;
  width: 92px;
  height: 30px;
  min-height: 30px;
  max-height: 30px;
  padding: 0;
  color: transparent;
  background: transparent;
  border: 0;
  box-shadow: none;
}
.shell .sg-form-block .asset-field .file-input::file-selector-button {
  height: 22px;
  margin: 0;
  padding: 0 8px;
  color: rgba(0, 0, 0, .88);
  background: #fff;
  border: 1px solid #d9d9d9;
  border-radius: 4px;
  font: inherit;
  font-size: 14px;
  cursor: pointer;
}
.shell .sg-form-block .asset-field-current {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  color: rgba(0, 0, 0, .45);
  font-size: 14px;
  line-height: 22px;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.shell .sg-form-block .asset-upload-status {
  display: none;
}
.shell .sg-form-block .asset-upload-status.is-error,
.shell .sg-form-block .asset-upload-status.is-success {
  display: block;
  grid-column: auto;
}

.shell .content.content--workspace:has(.sg-account-card) {
  padding: 32px 40px 24px;
}
.shell .sg-account-card {
  min-height: calc(100vh - 112px);
  overflow: hidden;
  background: #fff;
}
.shell .sg-account-aside {
  padding: 16px 12px;
  background: #fff;
}
.shell .sg-account-nav { gap: 4px; }
.shell .sg-account-nav a {
  min-height: 40px;
  padding: 0 16px;
  border-radius: 8px;
  color: rgba(0, 0, 0, .88);
  background: transparent;
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
}
.shell .sg-account-nav a:hover,
.shell .sg-account-nav a.is-active {
  color: rgba(0, 0, 0, .88);
  background: var(--brand-soft);
  font-weight: 400;
}
.shell .sg-account-nav a.is-active::before { display: none; }
.shell .sg-account-main {
  padding: 16px 40px 40px;
  background: #fff;
}
.shell .sg-account-section h2 {
  margin: 0 0 12px;
  color: rgba(0, 0, 0, .88);
  font-size: 20px;
  font-weight: 500;
  line-height: 28px;
}
.shell .sg-account-form:not(.sg-account-form--wide) .field,
.shell .sg-account-form:not(.sg-account-form--wide) .field.field-full,
.shell .sg-account-fields .field,
.shell .sg-account-fields .field.field-full {
  max-width: 328px;
  padding: 0 0 24px;
}
.shell .sg-account-form:not(.sg-account-form--wide) .textarea {
  min-height: 88px;
}
.shell .sg-account-form .input-readonly,
.shell .sg-account-form .input.input-readonly {
  color: rgba(0, 0, 0, .45);
  background: #f5f5f5;
  box-shadow: none;
}
.shell .sg-account-form:not(.sg-account-form--wide) .settings-form-actions {
  margin-top: 8px;
  padding-top: 0;
  border: 0;
}
.shell .sg-account-grid {
  grid-template-columns: minmax(0, 1fr) 144px;
  gap: 104px;
  max-width: 812px;
}
.shell .sg-account-avatar {
  align-items: center;
  gap: 8px;
  padding-top: 30px;
}
.shell .sg-account-avatar-label {
  width: 100%;
  color: rgba(0, 0, 0, .88);
  font-size: 14px;
  line-height: 22px;
  text-align: center;
}
.shell .sg-account-avatar-btn {
  min-height: 32px;
  height: 32px;
  padding: 0 15px;
  color: rgba(0, 0, 0, .88);
  background: #fff;
  border: 1px solid #d9d9d9;
  border-radius: 6px;
  box-shadow: none;
  font-weight: 400;
}
.shell .sg-account-avatar-btn:hover {
  color: var(--brand);
  border-color: var(--brand);
}
.shell .sg-account-avatar-remove {
  color: rgba(0, 0, 0, .45);
  font-size: 14px;
}
.shell .sg-account-list li {
  min-height: 72px;
  padding: 12px 0;
}
.shell .sg-account-list strong {
  color: rgba(0, 0, 0, .88);
  font-size: 14px;
  font-weight: 500;
  line-height: 22px;
}
.shell .sg-account-list p {
  margin: 4px 0 0;
  color: rgba(0, 0, 0, .45);
  font-size: 14px;
  line-height: 22px;
}
.shell .sg-account-list--switch + .settings-form-actions {
  margin-top: 24px;
  padding-top: 0;
  border: 0;
}

.shell .content:not(.content--kit),
.shell > .workspace-inset > .content:not(.content--kit),
.shell .content.content--workspace,
.shell .content.content--workspace:has(.sg-chart-grid),
.shell .content.content--workspace:has(.sg-account-card) {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
  max-width: none;
  min-width: 0;
  margin: 0;
  padding: 32px 40px 24px;
  overflow-x: clip;
}
.shell .content > .content-page-head,
.shell .content > .content-page-head--form,
.shell .content > .content-page-head--banner,
.shell .content > .list-page-stack,
.shell .content > .sg-account-card,
.shell .content > .sg-advanced-form,
.shell .content > .sg-chart-grid,
.shell .content > .sg-sales-card,
.shell .content > .sg-analysis-lower,
.shell .content > form.form-card,
.shell .content > .form-card,
.shell .content > .detail-panel-card,
.shell .content > .app-card {
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}
.shell .content-page-head,
.shell .content-page-head--form,
.shell .content-page-head--banner,
.shell .content-page-head--form.content-page-head--banner,
.shell .page-head-detail {
  margin: 0;
}
.shell .content-page-head--form + .form-card,
.shell .content-page-head--form + .sg-advanced-form {
  margin-top: 0;
}
.shell .form-card,
.shell form.form-card,
.shell .sg-advanced-form,
.shell .sg-account-card,
.shell .list-page-stack {
  width: 100%;
  max-width: none;
}
.shell .sg-account-card {
  min-height: calc(100vh - 112px);
}
.shell .sg-chart-grid,
.shell .sg-sales-card,
.shell .sg-analysis-lower {
  width: 100%;
}
@media (max-width: 900px) {
  .shell .content:not(.content--kit),
  .shell .content.content--workspace,
  .shell .content.content--workspace:has(.sg-chart-grid),
  .shell .content.content--workspace:has(.sg-account-card) {
    padding: 16px;
  }
}

html,
body,
.shell,
.shell .button,
.shell .input,
.shell .select,
.shell .textarea,
.shell .nav a,
.shell .nav-group-summary,
.login-page {
  font-family: var(--sg-font);
}
.shell .sg-chart-card-tip {
  font-family: var(--sg-font);
  font-style: normal;
  font-weight: 400;
}
.shell .sg-chart-compare li,
.shell .sg-chart-card-footer,
.shell .sg-rank-list,
.shell .sg-hot-card,
.shell .sg-share-card {
  font-family: var(--sg-font);
  color: rgba(0, 0, 0, .88);
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
}
.shell .sg-chart-compare li {
  font-size: 14px;
  line-height: 22px;
  color: rgba(0, 0, 0, .88);
}
.shell .sg-chart-card-head h2,
.shell .sg-sales-card h2,
.shell .sg-hot-card h2,
.shell .sg-share-card h2,
.shell .sg-rank-list-head {
  font-family: var(--sg-font);
  font-size: 16px;
  font-weight: 600;
  line-height: 24px;
}

/* Mix 顶栏 56px 通栏；柱图上留白加大；下半区卡片与销售卡间距统一 16px。 */
@media (min-width: 901px) {
  .shell {
    display: grid;
    grid-template-columns: 256px minmax(0, 1fr);
    grid-template-rows: 56px minmax(0, 1fr);
    height: 100vh;
    min-height: 100vh;
    overflow: hidden;
    align-items: stretch;
  }
  .shell.is-sidebar-collapsed {
    grid-template-columns: 64px minmax(0, 1fr);
  }
  .shell > main.workspace.workspace-inset,
  .shell > .workspace-inset {
    display: contents;
    margin: 0;
    min-height: 0;
    border-radius: 0;
    box-shadow: none;
  }
  .shell .topbar,
  .shell > .workspace-inset > .topbar,
  .shell > main.workspace.workspace-inset > .topbar,
  .shell > .workspace-inset > .topbar:first-child {
    grid-column: 1 / -1;
    grid-row: 1;
    height: 56px;
    padding: 0 16px 0 256px;
    background: var(--sg-surface, #fff);
    border-bottom: 1px solid var(--sg-line);
    box-shadow: none;
    position: relative;
    z-index: 4;
  }
  .shell.is-sidebar-collapsed .topbar,
  .shell.is-sidebar-collapsed > .workspace-inset > .topbar,
  .shell.is-sidebar-collapsed > main.workspace.workspace-inset > .topbar {
    padding-left: 64px;
  }
  .shell .content {
    grid-column: 2;
    grid-row: 2;
    min-height: 0;
    overflow: auto;
  }
  .shell .sidebar {
    grid-column: 1;
    grid-row: 1 / 3;
    z-index: 5;
    display: flex;
    flex-direction: column;
    width: auto;
    min-width: 0;
    flex: none;
    padding: 0 0 8px;
    background: var(--sg-surface, #fff);
  }
  .shell .nav {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
  }
  .shell .team-switcher,
  .shell .team-switcher-static {
    flex: 0 0 56px;
    height: 56px;
    margin: 0;
    padding: 0 16px;
    display: flex;
    align-items: center;
    border-bottom: 1px solid var(--sg-line);
    background: var(--sg-surface, #fff);
  }
  .shell .team-switcher-trigger,
  .shell .team-switcher-trigger-static {
    min-height: 40px;
    height: 40px;
    padding: 0 8px;
  }
}
.shell .sg-column-chart-frame {
  padding-top: 24px;
}
.shell .sg-analysis-lower {
  margin-top: 0;
  gap: 16px;
}
.shell .sg-hot-head,
.shell .sg-share-head {
  min-height: 56px;
  padding: 12px 24px;
}

.sg-nav-progress,
.shell .topbar::after {
  display: none !important;
  animation: none !important;
}

@media (min-width: 901px) {
  .shell .sidebar {
    position: relative;
    overflow: visible;
  }
  .shell .sg-sider-collapse {
    position: absolute;
    top: 74px;
    right: -12px;
    z-index: 8;
    display: grid;
    place-items: center;
    width: 24px;
    height: 24px;
    padding: 0;
    border: 1px solid var(--sg-line);
    border-radius: 50%;
    color: rgba(0, 0, 0, .65);
    background: var(--sg-surface, #fff);
    box-shadow: 0 2px 8px rgba(0, 0, 0, .15);
  }
  .shell .sg-sider-collapse .ui-icon {
    width: 12px;
    height: 12px;
  }
  .shell .sg-sider-collapse:hover {
    color: var(--brand);
    border-color: var(--brand);
  }
  .shell.theme-dark .sg-sider-collapse {
    color: rgba(255, 255, 255, .65);
    background: var(--sg-surface);
    border-color: var(--sg-line);
  }
}
@media (max-width: 900px) {
  .shell .sg-sider-collapse { display: none; }
}

.shell .list-query-form {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: end;
  gap: 16px 24px;
  width: 100%;
}
.shell .list-query-form > label {
  display: flex;
  flex-direction: row;
  align-items: center;
  flex: none;
  min-width: 0;
  gap: 8px;
}
.shell .list-query-form > label .input,
.shell .list-query-form > label .select,
.shell .list-query-form > label .list-sort-select {
  flex: 1 1 auto;
  min-width: 0;
  width: auto;
}
.shell .list-query-actions {
  grid-column: 3;
  grid-row: 1;
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  margin: 0;
  width: auto;
  justify-self: end;
}
.shell .list-query-form:not(:has(.sg-query-expand:checked)) > label:nth-of-type(n+3) {
  display: none;
}
.shell .sg-query-expand {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}
.shell .sg-query-expand-btn {
  display: none;
  align-items: center;
  gap: 4px;
  color: var(--brand);
  font-size: 14px;
  line-height: 22px;
  cursor: pointer;
  user-select: none;
  white-space: nowrap;
}
.shell .list-query-form:has(> label:nth-of-type(3)) .sg-query-expand-btn {
  display: inline-flex;
}
.shell .sg-query-expand-btn .ui-icon {
  width: 12px;
  height: 12px;
  pointer-events: none;
}
.shell .sg-query-expand-close { display: none; }
.shell .list-query-form:has(.sg-query-expand:checked) .sg-query-expand-open { display: none; }
.shell .list-query-form:has(.sg-query-expand:checked) .sg-query-expand-close { display: inline; }
.shell .list-query-form:has(.sg-query-expand:checked) .sg-query-expand-btn .ui-icon {
  transform: rotate(180deg);
}
.shell .list-page-stack > .list-query-card,
.shell .list-page-stack > .content-page-head.list-query-card {
  align-items: stretch;
  min-height: 80px;
}
@media (max-width: 900px) {
  .shell .list-query-form {
    display: flex;
    flex-wrap: wrap;
  }
  .shell .list-query-actions {
    grid-column: auto;
    grid-row: auto;
    width: 100%;
  }
  .shell .list-query-form:not(:has(.sg-query-expand:checked)) > label:nth-of-type(n+3) {
    display: flex;
  }
  .shell .sg-query-expand-btn { display: none; }
}

.shell .nav {
  padding: 8px 16px 20px;
  box-sizing: border-box;
}
.shell .nav-label {
  padding-left: 12px;
  padding-right: 12px;
}
.shell .nav a,
.shell .nav-group-summary {
  margin-inline: 0;
}
.shell.is-sidebar-collapsed .nav {
  padding: 8px 12px 16px;
}
.shell.is-sidebar-collapsed .team-switcher-logo--brand,
.shell.is-sidebar-collapsed .team-switcher-logo--brand img {
  width: 32px;
  max-width: 32px;
  height: 32px;
  max-height: 32px;
  object-fit: contain;
}

.shell .sg-sparkline,
.shell .sg-chart-card--tone-violet .sg-sparkline,
.shell .sg-chart-card--tone-brand .sg-sparkline,
.shell .sg-hot-kpi .sg-sparkline {
  color: var(--brand);
}
.shell .sg-chart-card--tone-violet .sg-sparkline-line,
.shell .sg-chart-card--tone-brand .sg-sparkline-line,
.shell .sg-sparkline-line {
  stroke: currentColor;
}
.shell .sg-chart-card--tone-violet .sg-sparkline-mass,
.shell .sg-chart-card--tone-brand .sg-sparkline-mass,
.shell .sg-sparkline-mass {
  fill: currentColor;
}
.shell .sg-sparkline--bar rect {
  fill: currentColor;
}

.shell .list-query-form {
  align-items: center;
  font: 400 14px/22px var(--sg-font);
}
.shell .list-query-form > label {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  min-width: 0;
  height: 32px;
  color: rgba(0, 0, 0, .88);
  font: 400 14px/32px var(--sg-font);
  white-space: nowrap;
}
.shell .list-query-form > label .input,
.shell .list-query-form > label .select,
.shell .list-query-form > label .input-compact,
.shell .list-query-form > label .select-compact,
.shell .list-query-form > label .list-sort-select,
.shell .list-query-form > label .list-sort-select .select,
.shell .list-query-form .input-compact,
.shell .list-query-form .select-compact {
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  height: 32px;
  min-height: 32px;
  padding: 0 11px;
  color: rgba(0, 0, 0, .88);
  background: rgba(0, 0, 0, .04);
  border: 1px solid transparent;
  border-radius: 6px;
  box-shadow: none;
  font: 400 14px/32px var(--sg-font);
}
.shell .list-query-form .input::placeholder,
.shell .list-query-form .input-compact::placeholder {
  color: rgba(0, 0, 0, .25);
  font: 400 14px/32px var(--sg-font);
}
.shell .list-query-form .input:hover,
.shell .list-query-form .select:hover,
.shell .list-query-form .input-compact:hover,
.shell .list-query-form .select-compact:hover {
  background: rgba(0, 0, 0, .06);
}
.shell .list-query-form .input:focus,
.shell .list-query-form .select:focus,
.shell .list-query-form .input-compact:focus,
.shell .list-query-form .select-compact:focus {
  background: #fff;
  border-color: var(--brand);
  outline: none;
}
.shell .list-query-actions .button {
  font: 400 14px/22px var(--sg-font);
}

.shell .list-table,
.shell .list-table thead th,
.shell .list-table tbody td,
.shell .list-table tbody td a,
.shell .list-table tbody td .link,
.shell .list-table tbody td .table-link,
.shell .list-table tbody td strong,
.shell .list-table .primary-cell,
.shell .list-table .primary-cell a,
.shell .list-table .primary-cell a.link,
.shell .list-table .primary-cell a.table-link,
.shell .list-table .primary-cell strong,
.shell .list-table .primary-cell > a > strong,
.shell .list-page-stack .list-table tbody td,
.shell .list-page-stack .list-table .primary-cell strong,
.shell .list-page-stack .list-table .primary-cell > a > strong,
.shell .table-wrap .list-table .primary-cell strong,
.shell .table-wrap .list-table .primary-cell > a > strong,
.shell .list-table .badge,
.shell .list-table .status-badge,
.shell .list-row-links,
.shell .list-row-links a {
  font-family: var(--sg-font);
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
  letter-spacing: 0;
}
.shell .list-table thead th {
  font-weight: 600;
  color: rgba(0, 0, 0, .88);
}
.shell .list-table tbody td {
  color: rgba(0, 0, 0, .88);
}
.shell .list-table .primary-cell a,
.shell .list-table .primary-cell a.link,
.shell .list-table .primary-cell a.table-link,
.shell .list-table .primary-cell a > strong,
.shell .list-row-links a {
  color: var(--brand);
  font-weight: 400;
}
.shell .list-table .primary-cell a:hover,
.shell .list-table .primary-cell a > strong:hover,
.shell .list-row-links a:hover {
  color: color-mix(in srgb, var(--brand) 78%, #000);
}
.shell .list-table .badge,
.shell .list-table .status-badge {
  min-height: 22px;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
}

.shell .list-query-form > label .filter-select,
.shell .list-query-form > label .list-sort-select {
  display: flex;
  align-items: stretch;
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  height: 32px;
  margin: 0;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.shell .list-query-form > label .filter-select .select,
.shell .list-query-form > label .list-sort-select .select,
.shell .list-query-form > label .list-sort-select .select-compact {
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  height: 32px;
  padding: 0 28px 0 11px;
  color: rgba(0, 0, 0, .88);
  background-color: rgba(0, 0, 0, .04);
  border: 1px solid transparent;
  border-radius: 6px;
  box-shadow: none;
  font: 400 14px/32px var(--sg-font);
  appearance: none;
}
.shell .list-query-form > label .filter-select .select:hover,
.shell .list-query-form > label .list-sort-select .select:hover {
  background-color: rgba(0, 0, 0, .06);
}
.shell .list-query-form > label .filter-select .select:focus,
.shell .list-query-form > label .list-sort-select .select:focus {
  background-color: #fff;
  border-color: var(--brand);
  color: rgba(0, 0, 0, .88);
}
.shell .list-query-form select.select,
.shell .list-query-form select.select option {
  color: rgba(0, 0, 0, .88);
}

.shell .app-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
}
.shell .list-card .app-grid { padding: 8px 24px 24px; }
.shell .app-card {
  display: flex;
  flex-direction: column;
  min-height: 188px;
  padding: 0;
  overflow: hidden;
  background: #fff;
  border: 1px solid #f0f0f0;
  border-radius: 8px;
  box-shadow: none;
  transition: box-shadow .2s cubic-bezier(.645, .045, .355, 1);
}
.shell .app-card:hover,
.shell .app-card-link:hover {
  border-color: #f0f0f0;
  box-shadow: 0 1px 2px -2px rgba(0, 0, 0, .16), 0 3px 6px 0 rgba(0, 0, 0, .12), 0 5px 12px 4px rgba(0, 0, 0, .09);
}
.shell .app-card-meta {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 24px;
  flex: 1 1 auto;
}
.shell .app-card-avatar,
.shell .app-card-icon,
.shell .app-mark {
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  color: var(--brand);
  background: var(--brand-soft);
}
.shell .app-card-avatar .ui-icon,
.shell .app-card-icon .ui-icon { width: 22px; height: 22px; stroke-width: 1.6; }
.shell .app-card-mark { font-size: 16px; font-weight: 600; line-height: 1; }
.shell .app-card-copy { min-width: 0; flex: 1 1 auto; }
.shell .app-card-title {
  margin: 0 0 4px;
  color: rgba(0, 0, 0, .88);
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
}
.shell .app-card-desc {
  margin: 0;
  color: rgba(0, 0, 0, .45);
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.shell .app-card-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin-top: auto;
  border-top: 1px solid #f0f0f0;
}
.shell .app-card-actions a,
.shell .app-card-actions span {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 8px;
  color: rgba(0, 0, 0, .45);
  font-size: 14px;
  line-height: 22px;
  text-align: center;
  text-decoration: none;
}
.shell .app-card-actions a:first-child,
.shell .app-card-actions span:first-child {
  border-right: 1px solid #f0f0f0;
}
.shell .app-card-actions a:hover { color: var(--brand); }
@media (max-width: 900px) {
  .shell .app-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .shell .app-grid { grid-template-columns: 1fr; }
}

.shell .sg-platform-forms,
.shell .sg-account-main .sg-platform-forms,
.shell .sg-platform-forms .settings-form,
.shell .sg-account-main .sg-platform-forms .settings-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
  max-width: none;
}
.shell .sg-account-main .sg-platform-forms .sg-form-block .field,
.shell .sg-account-main .sg-platform-forms .sg-form-block .asset-field,
.shell .sg-account-main .sg-platform-forms .settings-form .field,
.shell .sg-account-main .sg-platform-forms .settings-form .asset-field {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  border: 0;
}
.shell .sg-account-main .sg-platform-forms .sg-form-block .field-full,
.shell .sg-account-main .sg-platform-forms .sg-form-block .notice,
.shell .sg-account-main .sg-platform-forms .sg-form-block .settings-form-actions {
  grid-column: 1 / -1;
}
.shell .sg-account-main .sg-platform-forms .sg-form-block .asset-field.field-full {
  grid-column: auto;
}
.shell .sg-account-main .sg-platform-forms .sg-form-block > .settings-section-head h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
}
.shell .sg-account-main .sg-platform-forms .sg-form-block > .settings-section-separator { display: none; }
.shell .sg-account-main .sg-platform-forms .sg-form-block .input,
.shell .sg-account-main .sg-platform-forms .sg-form-block .select,
.shell .sg-account-main .sg-platform-forms .sg-form-block .textarea {
  height: 32px;
  min-height: 32px;
  padding: 0 11px;
  color: rgba(0, 0, 0, .88);
  background-color: rgba(0, 0, 0, .04);
  border: 1px solid transparent;
  border-radius: 6px;
  box-shadow: none;
  font-size: 14px;
  line-height: 32px;
}
.shell .sg-account-main .sg-platform-forms .sg-form-block .textarea {
  height: auto;
  min-height: 88px;
  padding: 8px 11px;
  line-height: 22px;
}
.shell .sg-account-main .sg-platform-forms .sg-form-block .input:hover,
.shell .sg-account-main .sg-platform-forms .sg-form-block .select:hover,
.shell .sg-account-main .sg-platform-forms .sg-form-block .textarea:hover {
  background-color: rgba(0, 0, 0, .06);
  border-color: transparent;
}
.shell .sg-account-main .sg-platform-forms .sg-form-block .input:focus,
.shell .sg-account-main .sg-platform-forms .sg-form-block .select:focus,
.shell .sg-account-main .sg-platform-forms .sg-form-block .textarea:focus {
  background-color: #fff;
  border-color: var(--brand);
  box-shadow: none;
}
.shell .sg-account-main .sg-platform-forms .settings-form-actions {
  display: flex;
  justify-content: flex-end;
  margin: 0;
  padding-top: 8px;
}
.shell .sg-account-card {
  overflow: visible;
  height: auto;
  align-items: stretch;
}
.shell .sg-account-card--platform {
  display: block;
  min-height: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
}
.shell .sg-account-card--platform .sg-account-main {
  padding: 0;
}
.shell .content.content--workspace:has(.sg-platform-forms) {
  overflow-x: hidden;
  overflow-y: auto;
  min-height: 0;
  padding: 24px 40px 24px;
}
.shell .sg-account-main .sg-platform-forms .sg-form-block {
  padding: 0 24px 24px;
  row-gap: 24px;
}
.shell .sg-account-main .sg-platform-forms .sg-form-block > .settings-section-head,
.shell .sg-account-main .sg-platform-forms .sg-form-block > .settings-section-head:first-child {
  display: flex;
  align-items: center;
  box-sizing: border-box;
  grid-column: 1 / -1;
  height: 56px;
  min-height: 56px;
  margin: 0 -24px 0;
  padding: 0 24px;
  border-bottom: 1px solid #f0f0f0;
}
.shell .sg-account-main .sg-platform-forms .sg-form-block > .settings-section-head h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
}
.shell .sg-account-main .sg-platform-forms .sg-form-block > .settings-section-separator,
.shell .sg-account-main .sg-platform-forms .sg-form-block > .ui-separator {
  display: none;
}
.shell .list-card > .app-grid {
  padding: 24px;
}
.shell .sg-form-block .asset-field .asset-field-controls,
.shell .sg-account-main .sg-platform-forms .sg-form-block .asset-field .asset-field-controls {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 12px;
  width: 100%;
  height: auto;
  min-height: 48px;
  max-height: none;
  overflow: visible;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
}
.shell .sg-form-block .asset-field-preview,
.shell .sg-form-block .asset-field-preview[hidden],
.shell .sg-account-main .sg-platform-forms .sg-form-block .asset-field-preview {
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  overflow: hidden;
  border: 1px solid #f0f0f0;
  border-radius: 6px;
  background: #fafafa;
}
.shell .sg-form-block .asset-field-preview[hidden] { display: none; }
.shell .sg-form-block .asset-field-preview img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.shell .sg-form-block .asset-field-pick {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  min-width: 0;
  flex: 1 1 auto;
}
.shell .sg-form-block .asset-file-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 32px;
  padding: 0 12px;
  color: rgba(0, 0, 0, .88);
  background: #fff;
  border: 1px solid #d9d9d9;
  border-radius: 6px;
  font-size: 14px;
  line-height: 30px;
  cursor: pointer;
}
.shell .sg-form-block .asset-file-trigger:hover {
  border-color: var(--brand);
  color: var(--brand);
}
.shell .sg-form-block .asset-field .file-input,
.shell .sg-account-main .sg-platform-forms .sg-form-block .asset-field .file-input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
  opacity: 0;
}
.shell .sg-form-block .asset-field-current,
.shell .sg-account-main .sg-platform-forms .sg-form-block .asset-field-current {
  display: block;
  width: 100%;
  max-width: 100%;
  margin: 0;
  overflow: hidden;
  color: rgba(0, 0, 0, .45);
  font-size: 12px;
  line-height: 20px;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.shell .sg-form-block .asset-upload-status,
.shell .sg-account-main .sg-platform-forms .sg-form-block .asset-upload-status {
  display: none;
  margin: 0;
  font-size: 12px;
  line-height: 20px;
}
.shell .sg-form-block .asset-upload-status.is-error,
.shell .sg-form-block .asset-upload-status.is-success {
  display: block;
}
.shell .sg-form-block .asset-upload-status.is-error { color: #ff4d4f; }
.shell .sg-form-block .asset-upload-status.is-success { color: #52c41a; }

.shell .sg-form-block .asset-field-preview,
.shell .sg-account-main .sg-platform-forms .sg-form-block .asset-field-preview,
.shell .sg-form-block .asset-field-preview[hidden] {
  position: relative;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  overflow: hidden;
  border: 1px solid #f0f0f0;
  border-radius: 6px;
  background: #fafafa;
  color: rgba(0, 0, 0, .25);
}
.shell .sg-form-block .asset-field-preview-ph {
  display: grid;
  place-items: center;
}
.shell .sg-form-block .asset-field-preview-ph .ui-icon {
  width: 20px;
  height: 20px;
  stroke-width: 1.6;
}
.shell .sg-form-block .asset-field-preview img {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: cover;
  background: #fff;
}
.shell .sg-form-block .asset-field-preview.is-empty img,
.shell .sg-form-block .asset-field-preview.is-missing img {
  display: none;
}

.shell .sg-form-footer,
.shell .sg-advanced-form > .form-actions {
  position: sticky;
  bottom: 0;
  z-index: 6;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  box-sizing: border-box;
  min-height: 56px;
  margin: 8px 0 0;
  padding: 12px 24px;
  background: #fff;
  border: 1px solid var(--sg-line);
  border-bottom: 0;
  border-radius: 8px 8px 0 0;
  box-shadow: 0 -6px 16px -8px rgba(0, 0, 0, .08);
}
.shell .content.content--workspace:has(.sg-form-footer) {
  padding-bottom: 0;
}
.shell .content-page-head--form,
.shell .content-page-head--form.content-page-head--banner,
.shell .content > .content-page-head--form,
.shell .content > .content-page-head--form.content-page-head--banner {
  position: relative;
  z-index: 1;
  min-height: 52px;
  height: auto;
  margin: 0 0 16px;
  overflow: visible;
}
.shell .sg-form-footer .button,
.shell .sg-advanced-form > .form-actions .button {
  height: 32px;
  min-height: 32px;
  padding: 0 16px;
  font-size: 14px;
  font-weight: 400;
  line-height: 30px;
}
.shell .sg-form-footer .button-secondary,
.shell .sg-advanced-form > .form-actions .button-secondary {
  color: rgba(0, 0, 0, .88);
  background: #fff;
  border: 1px solid #d9d9d9;
}

.shell .list-query-form {
  align-items: center;
}
.shell .list-query-form > label {
  height: 32px;
  min-height: 32px;
}
.shell .list-query-actions .button,
.shell .list-query-actions .button-outline,
.shell .list-query-actions .button-small,
.shell .list-query-actions .list-filter-submit {
  box-sizing: border-box;
  height: 32px;
  min-height: 32px;
  padding: 0 15px;
  font-size: 14px;
  font-weight: 400;
  line-height: 30px;
  border-radius: 6px;
}
.shell .sg-query-expand-btn {
  height: 32px;
}

.shell .page-context span:last-child {
  font-weight: 600;
}
.shell.theme-dark .page-context span:last-child {
  font-weight: 600;
}

.shell .sg-rank-index,
.shell .sg-rank-list--sales .sg-rank-index {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 20px;
  height: 20px;
  margin: 0;
  padding: 0;
  overflow: hidden;
  border-radius: 50%;
  background: var(--sg-fill-2, #f2f3f5);
  color: var(--sg-subtle);
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.shell .sg-rank-list--sales .sg-rank-index.is-top,
.shell .sg-rank-list li:nth-child(1) .sg-rank-index.is-top,
.shell .sg-rank-list--sales li:nth-child(1) .sg-rank-index.is-top {
  background: color-mix(in srgb, #f4664a 88%, #fff);
  color: #fff;
}
.shell .sg-rank-list li:nth-child(2) .sg-rank-index.is-top,
.shell .sg-rank-list--sales li:nth-child(2) .sg-rank-index.is-top {
  background: color-mix(in srgb, #faad14 92%, #fff);
  color: #fff;
}
.shell .sg-rank-list li:nth-child(3) .sg-rank-index.is-top,
.shell .sg-rank-list--sales li:nth-child(3) .sg-rank-index.is-top {
  background: var(--brand);
  color: #fff;
}
.shell.theme-dark .sg-rank-index,
.shell.theme-dark .sg-rank-list--sales .sg-rank-index {
  background: rgba(255, 255, 255, .08);
  color: rgba(255, 255, 255, .45);
}

.shell .nav a.active {
  font-weight: 600;
}

.shell .sg-chart-card-footer {
  display: flex;
  align-items: center;
  min-height: 22px;
  height: 22px;
  margin-top: 8px;
  padding: 0;
  overflow: hidden;
  white-space: nowrap;
  font-size: 12px;
  font-weight: 400;
  line-height: 22px;
}
.shell .sg-chart-card-field,
.shell .sg-chart-card-foot-compare {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 12px;
  line-height: 22px;
}
.shell .sg-chart-card-foot-compare {
  display: inline-flex;
  gap: 8px;
}

.shell .sg-sales-head {
  flex-wrap: nowrap;
  min-height: 48px;
  overflow: hidden;
}
.shell .sg-line-tabs {
  flex: 0 0 auto;
  gap: 20px;
  white-space: nowrap;
}
.shell .sg-sales-extra {
  flex: 1 1 auto;
  flex-wrap: nowrap;
  justify-content: flex-end;
  min-width: 0;
  gap: 12px;
  padding-right: 16px;
}
.shell .sg-sales-ranges {
  flex-shrink: 0;
  gap: 12px;
}
.shell .sg-sales-dates {
  flex: 0 0 auto;
  max-width: none;
  white-space: nowrap;
}
@media (max-width: 960px) {
  .shell .sg-sales-extra {
    flex-wrap: nowrap;
    padding: 0 16px 0 0;
  }
}

.shell .list-page-stack .list-table-section .table-wrap .list-table thead th,
.shell .list-page-stack .list-card .table-wrap .list-table thead th,
.shell .list-page-stack .list-table-section .table-wrap .list-table tbody td,
.shell .list-page-stack .list-card .table-wrap .list-table tbody td {
  padding: 8px 12px;
  color: rgba(0, 0, 0, .88);
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
}
.shell .list-page-stack .list-table-section .table-wrap .list-table thead th,
.shell .list-page-stack .list-card .table-wrap .list-table thead th {
  font-weight: 600;
  background: #fafafa;
}
.shell .list-page-stack .list-select-col,
.shell .list-page-stack .list-table-section .table-wrap .list-table thead th.list-select-col,
.shell .list-page-stack .list-table-section .table-wrap .list-table tbody td.list-select-col,
.shell .list-page-stack .list-card .table-wrap .list-table thead th.list-select-col,
.shell .list-page-stack .list-card .table-wrap .list-table tbody td.list-select-col {
  box-sizing: border-box;
  width: 32px;
  min-width: 32px;
  max-width: 32px;
  padding: 8px;
}

.shell .sg-sales-extra {
  white-space: nowrap;
}

.shell.theme-dark .list-page-stack > .list-query-card,
.shell.theme-dark .list-page-stack > .list-query-card.content-page-head,
.shell.theme-dark .list-page-stack > .list-query-card.content-page-head--banner,
.shell.theme-dark .list-page-stack > .list-query-card.content-page-head--split,
.shell.theme-dark .list-page-stack > .content-page-head.list-query-card,
.shell.theme-dark .list-page-stack > .list-card,
.shell.theme-dark .list-page-stack > .list-table-section.list-card,
.shell.theme-dark .sg-chart-card,
.shell.theme-dark .sg-sales-card,
.shell.theme-dark .sg-hot-card,
.shell.theme-dark .sg-share-card,
.shell.theme-dark .sg-form-block,
.shell.theme-dark .sg-account-card {
  background: var(--card);
  border-color: var(--line);
  color: var(--card-foreground);
}
.shell.theme-dark .list-card-head {
  background: transparent;
  color: rgba(255, 255, 255, .88);
}
.shell.theme-dark .list-page-stack .list-table-section .table-wrap .list-table thead th,
.shell.theme-dark .list-page-stack .list-card .table-wrap .list-table thead th,
.shell.theme-dark .list-page-stack .list-table-section .table-wrap .list-table tbody td,
.shell.theme-dark .list-page-stack .list-card .table-wrap .list-table tbody td {
  background: transparent;
  color: rgba(255, 255, 255, .88);
  border-bottom-color: rgba(255, 255, 255, .08);
}
.shell.theme-dark .list-page-stack .list-table-section .table-wrap .list-table tbody tr:hover td,
.shell.theme-dark .list-page-stack .list-card .table-wrap .list-table tbody tr:hover td {
  background: rgba(255, 255, 255, .04);
}
.shell.theme-dark .list-query-form .input,
.shell.theme-dark .list-query-form .select,
.shell.theme-dark .sg-form-block .input,
.shell.theme-dark .sg-form-block .select,
.shell.theme-dark .sg-form-block .textarea,
.shell.theme-dark .sg-form-block .asset-file-trigger {
  color: rgba(255, 255, 255, .88);
  background: color-mix(in srgb, var(--foreground) 6%, var(--background));
  border-color: rgba(255, 255, 255, .16);
}
.shell.theme-dark .sg-form-block .asset-field-preview {
  background: color-mix(in srgb, var(--foreground) 6%, var(--background));
  border-color: rgba(255, 255, 255, .08);
  color: rgba(255, 255, 255, .45);
}
.shell.theme-dark .sg-form-block .asset-field-preview img {
  background: transparent;
}
.shell.theme-dark .sg-form-footer,
.shell.theme-dark .sg-advanced-form > .form-actions {
  background: var(--card);
  border-color: var(--line);
  box-shadow: 0 -6px 16px -8px rgba(0, 0, 0, .45);
}
.shell.theme-dark .sg-sales-dates {
  color: rgba(255, 255, 255, .65);
  background: color-mix(in srgb, var(--foreground) 6%, var(--background));
  border-color: rgba(255, 255, 255, .16);
}
.shell.theme-dark .sg-chart-card-total,
.shell.theme-dark .primary-cell a,
.shell.theme-dark .primary-cell strong {
  color: rgba(255, 255, 255, .88);
}
.shell.theme-dark {
  --brand-soft: color-mix(in srgb, var(--brand) 28%, #0f172a);
  --sg-canvas: #0b1220;
  --sg-surface: #111c2f;
  --sg-ink: #f8fafc;
  --sg-subtle: #94a3b8;
  --sg-faint: #94a3b8;
  --sg-line: #334155;
  --sg-header: #172033;
  --sg-hover: #1e293b;
  --sg-fill: #1e293b;
  color: rgba(255, 255, 255, .88);
}
.shell.theme-dark .workspace,
.shell.theme-dark .workspace-inset,
.shell.theme-dark .content,
.shell.theme-dark .sg-account-main {
  background: var(--sg-canvas);
}
.shell.theme-dark .sg-account-main .sg-platform-forms .sg-form-block .asset-file-trigger {
  color: rgba(255, 255, 255, .88);
  background: color-mix(in srgb, var(--foreground) 8%, var(--background));
  border-color: rgba(255, 255, 255, .16);
}
.shell.theme-dark .nav a.active,
.shell.theme-dark .nav-group.is-active > .nav-group-summary {
  color: #fff;
  background: var(--brand-soft);
}
.shell.theme-dark .nav a.active .nav-icon { color: #fff; }
.shell.theme-dark .button-secondary,
.shell.theme-dark .button-secondary.button-small,
.shell.theme-dark .ui-icon-button,
.shell.theme-dark .pagination-icon,
.shell.theme-dark .list-query-actions .button-secondary {
  color: rgba(255, 255, 255, .88);
  background: transparent;
  border-color: rgba(255, 255, 255, .16);
}
.shell.theme-dark .command-trigger,
.shell.theme-dark .sg-hot-card .input,
.shell.theme-dark .sg-hot-card .button-secondary {
  color: rgba(255, 255, 255, .88);
  background: color-mix(in srgb, var(--foreground) 8%, var(--background));
  border-color: rgba(255, 255, 255, .16);
}
.shell .sg-donut--share {
  grid-template-columns: minmax(148px, 200px) minmax(120px, 1fr);
  gap: 20px;
}
.shell .sg-donut--share .sg-donut-svg {
  width: 100%;
  max-width: 200px;
  height: auto;
  aspect-ratio: 1;
}

.shell-debug .debug-mode-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0;
  border: 1px solid var(--sg-line, var(--line));
  border-radius: 6px;
  overflow: hidden;
  background: var(--background);
}
.shell-debug .debug-mode-toggle-item {
  min-height: 32px;
  padding: 0 12px;
  display: inline-flex;
  align-items: center;
  font-size: 13px;
  font-weight: 600;
  color: var(--muted-foreground);
  text-decoration: none;
  border-right: 1px solid var(--sg-line, var(--line));
}
.shell-debug .debug-mode-toggle-item:last-child { border-right: 0; }
.shell-debug .debug-mode-toggle-item.is-active {
  color: var(--foreground);
  background: var(--brand-soft, var(--secondary));
}
.shell-debug .debug-relation-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}
.shell-debug .debug-relation-link {
  min-height: 28px;
  padding: 0 10px;
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--sg-line, var(--line));
  border-radius: 6px;
  font-size: 13px;
  color: var(--muted-foreground);
  text-decoration: none;
  background: var(--background);
}
.shell-debug .debug-relation-link.is-active {
  color: var(--foreground);
  border-color: color-mix(in srgb, var(--brand, var(--primary)) 35%, var(--sg-line, var(--line)));
  background: var(--brand-soft, var(--secondary));
}
.shell-debug .debug-sheet-next {
  display: grid;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid var(--sg-line, var(--line));
  border-radius: 8px;
  background: var(--secondary);
}
.shell-debug .debug-sheet-next-form,
.shell-debug .debug-sheet-next-verify {
  display: grid;
  gap: 8px;
}
.shell-debug .debug-sheet-next-inline { margin: 0; }
.shell-debug .debug-notification-table .debug-notification-excerpt {
  margin: 4px 0 0;
  font-size: 13px;
  line-height: 1.5;
}
.shell-debug .debug-notification-table .debug-notification-item.is-unread td:first-child {
  font-weight: 600;
}
.shell-debug .debug-kanban-column,
.shell-debug .debug-kanban-card,
.shell-debug .debug-title-card,
.shell-debug .debug-props,
.shell-debug .debug-composer,
.shell-debug .debug-callout {
  border-radius: 8px;
  box-shadow: none;
}
.shell-debug .debug-kanban-card:hover {
  box-shadow: none;
}
.shell-debug .debug-priority-chip--urgent,
.shell-debug .debug-kanban-card--urgent {
  border-color: color-mix(in srgb, var(--destructive, #dc2626) 35%, var(--sg-line, var(--line)));
}
.shell-debug .debug-priority-chip--urgent,
.shell-debug .debug-priority-level[title*="紧急"] {
  color: var(--destructive, #b91c1c);
  background: color-mix(in srgb, var(--destructive, #dc2626) 10%, var(--secondary));
}
.shell.theme-dark .debug-kanban-column,
.shell.theme-dark .debug-kanban-card,
.shell.theme-dark .debug-board-card,
.shell.theme-dark .debug-notification-card,
.shell.theme-dark .debug-sheet-next {
  background: var(--card);
  border-color: var(--sg-line, var(--line));
}
.shell.theme-dark .debug-kanban-card {
  background: color-mix(in srgb, var(--foreground) 4%, var(--card));
}

html:has(.login-page),
html:has(.login-page) body {
  height: 100%;
}
.login-page,
.login-page .login-shell {
  min-height: 100dvh;
  height: 100%;
}
.login-page .login-shell {
  grid-template-columns: minmax(0, 1.12fr) minmax(0, 480px);
  overflow: auto;
}
.login-page .login-panel {
  overflow: auto;
}
.login-page .login-preview,
.login-page .login-story {
  min-height: 0;
  height: 100%;
}
.login-page .login-story {
  padding: clamp(24px, 4vw, 44px) clamp(24px, 5vw, 64px) 28px;
}
.login-page .login-story h2 {
  margin-left: 0;
  max-width: 100%;
  font-size: clamp(28px, 4.2vw, 54px);
  white-space: nowrap;
}
.login-page .login-heading .login-lead {
  max-width: 100%;
  overflow-wrap: anywhere;
}
.login-page .login-story-foot span,
.login-page .login-story-foot small {
  max-width: 100%;
}
.login-page .login-panel {
  min-width: 0;
  padding: clamp(28px, 6vh, 72px) clamp(20px, 4vw, 40px) 32px;
}
.login-page .login-panel-inner {
  width: min(400px, 100%);
}
@media (max-width: 1100px) {
  .login-page .login-shell {
    display: block;
    overflow: auto;
  }
  .login-page .login-preview,
  .login-page .login-corner {
    display: none;
  }
  .login-page .login-panel {
    min-height: 100dvh;
    place-items: start center;
    padding-top: 48px;
  }
}

.login-page .login-logo img,
.login-page .login-story-brand img {
  height: 52px;
  max-width: min(280px, 100%);
}
.login-page .login-logo img:not(.login-logo-default),
.login-page .login-story-brand img:not(.login-logo-default) {
  object-view-box: inset(6% 2% 6% 2%);
}

.shell .team-switcher-trigger:has(.team-switcher-logo--brand) {
  padding: 6px 8px;
}
.shell .team-switcher-logo.team-switcher-logo--brand {
  width: auto;
  max-width: calc(100% - 28px);
  height: 26px;
  max-height: 26px;
  flex: 0 1 auto;
  align-self: center;
  display: flex;
  align-items: center;
  overflow: visible;
  background: transparent;
}
.shell .team-switcher-logo.team-switcher-logo--brand img {
  width: auto;
  height: 26px;
  max-width: 100%;
  max-height: 26px;
  object-fit: contain;
  object-position: left center;
  object-view-box: unset;
  filter: none;
}
.shell.is-sidebar-collapsed .team-switcher-logo.team-switcher-logo--brand,
.shell.is-sidebar-collapsed .team-switcher-logo.team-switcher-logo--brand img {
  width: 32px;
  max-width: 32px;
  height: 32px;
  max-height: 32px;
  object-view-box: unset;
}

.shell .sg-sales-main {
  container-type: inline-size;
  container-name: sg-sales-main;
}
.shell .sg-sales-head {
  display: flex;
  align-items: stretch;
  flex-wrap: wrap;
  min-height: 48px;
  padding: 0 24px;
  overflow: visible;
  row-gap: 0;
  border-bottom: 1px solid var(--sg-line);
}
.shell .sg-line-tabs {
  display: flex;
  align-items: stretch;
  flex: 0 0 auto;
  height: 48px;
  gap: 24px;
}
.shell .sg-line-tabs a {
  display: inline-flex;
  align-items: center;
  height: 48px;
  padding: 0;
  font-size: 14px;
  line-height: 22px;
  flex-shrink: 0;
  white-space: nowrap;
}
.shell .sg-line-tabs a.is-active::after {
  bottom: 0;
}
.shell .sg-sales-extra {
  display: flex;
  align-items: center;
  flex: 1 1 auto;
  flex-wrap: nowrap;
  justify-content: flex-end;
  height: 48px;
  min-width: 0;
  padding-right: 0;
  white-space: nowrap;
  gap: 16px;
}
.shell .sg-sales-ranges {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  flex-shrink: 0;
  height: 48px;
  gap: 16px;
}
.shell .sg-sales-ranges a {
  display: inline-flex;
  align-items: center;
  height: 48px;
  flex-shrink: 0;
  white-space: nowrap;
  font-size: 14px;
  line-height: 22px;
}
.shell .sg-sales-dates {
  height: 28px;
  padding: 0 10px;
  font-size: 13px;
  max-width: none;
}
@container sg-sales-main (max-width: 760px) {
  .sg-sales-extra {
    flex: 1 1 100%;
    justify-content: flex-start;
    padding: 0 16px 8px 0;
  }
}
@media (max-width: 1100px) {
  .shell .sg-chart-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 720px) {
  .shell .sg-chart-grid,
  .shell .sg-sales-card {
    grid-template-columns: 1fr;
  }
}

/* --- SG01 motion/load/style lock (95+) --- */
@keyframes sg-fade-in {
  from { transform: translateY(6px); }
  to { transform: none; }
}
@keyframes sg-page-enter {
  from { transform: translateY(6px); }
  to { transform: none; }
}
@keyframes sg-rise {
  from { transform: translateY(6px); }
  to { transform: none; }
}
@keyframes sg-pop {
  from { transform: translateY(-4px); }
  to { transform: none; }
}
@keyframes sg-donut-in {
  from { transform: scale(.96); }
  to { transform: none; }
}
@keyframes sg-nav-progress {
  0% { transform: scaleX(.08); }
  72% { transform: scaleX(1); }
  100% { transform: scaleX(1) scaleY(0); }
}
@keyframes sg-top-progress {
  0% { transform: scaleX(.08); }
  72% { transform: scaleX(1); }
  100% { transform: scaleX(1) scaleY(0); }
}
@keyframes sg-top-progress-hold {
  0% { transform: scaleX(.1); }
  100% { transform: scaleX(.82); }
}

.shell .content,
.shell .content.content--workspace {
  animation: sg-page-enter .18s var(--ease-standard);
}
.shell .sg-chart-grid > *,
.shell .sg-sales-card,
.shell .sg-hot-card,
.shell .sg-share-card,
.sg-chart-card {
  animation: sg-page-enter .18s var(--ease-standard) both;
}

.sg-nav-progress,
.shell .topbar::after {
  display: block !important;
  opacity: 1 !important;
  animation: sg-top-progress .48s var(--ease-standard) both !important;
}
.shell .topbar::after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  z-index: 3;
  width: 100%;
  height: 2px;
  background: var(--brand);
  transform-origin: left center;
  pointer-events: none;
}
html.is-navigating .shell .topbar::after {
  animation: sg-top-progress-hold .9s var(--ease-standard) forwards !important;
}

.shell .list-card.is-loading {
  position: relative;
  pointer-events: none;
}
.shell .list-card.is-loading::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  border-radius: inherit;
  background: color-mix(in srgb, var(--card, #fff) 58%, transparent);
  background-image: linear-gradient(90deg, transparent 0%, color-mix(in srgb, #fff 55%, transparent) 48%, transparent 100%);
  background-size: 200% 100%;
  animation: ui-skeleton-pulse 1.2s ease-in-out infinite;
}

.shell .content:not(.content--kit),
.shell .content.content--workspace,
.shell .content.content--workspace:has(.sg-chart-grid),
.shell .content.content--workspace:has(.sg-account-card) {
  padding: 32px 40px 24px;
}

.shell .team-switcher-logo.team-switcher-logo--brand {
  width: auto;
  max-width: calc(100% - 28px);
  height: 32px;
  max-height: 32px;
  min-width: 96px;
  flex: 0 1 auto;
  align-self: center;
  display: flex;
  align-items: center;
  overflow: visible;
  background: transparent;
}
.shell .team-switcher-logo.team-switcher-logo--brand img {
  width: auto;
  height: 32px;
  max-width: 100%;
  max-height: 32px;
  object-fit: contain;
  object-position: left center;
  object-view-box: unset;
}
.shell.is-sidebar-collapsed .team-switcher-logo.team-switcher-logo--brand {
  min-width: 0;
  width: 32px;
  max-width: 32px;
}
.shell.is-sidebar-collapsed .team-switcher-logo.team-switcher-logo--brand img {
  width: 32px;
  max-width: 32px;
  height: 32px;
  max-height: 32px;
}

.shell .card-head.sg-sales-head,
.shell .sg-sales-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: nowrap;
  box-sizing: border-box;
  height: 48px;
  min-height: 48px;
  max-height: 48px;
  padding: 0 24px;
  overflow: visible;
  row-gap: 0;
}
.shell .sg-sales-head > div {
  align-items: center;
}
.shell .sg-line-tabs {
  display: flex;
  align-items: stretch;
  height: 48px;
  gap: 24px;
}
.shell .sg-line-tabs a {
  display: inline-flex;
  align-items: center;
  height: 48px;
  padding: 0;
  font-size: 14px;
  line-height: 22px;
}
.shell .sg-sales-extra,
.shell .sg-sales-ranges,
.shell .sg-sales-picker {
  display: flex;
  align-items: center;
  height: 48px;
  min-height: 0;
}
.shell .sg-sales-extra {
  flex: 1 1 auto;
  justify-content: flex-end;
  gap: 16px;
  padding-right: 0;
}
.shell .sg-sales-ranges a,
.shell .sg-sales-dates {
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  height: 28px;
  min-height: 28px;
  max-height: 28px;
  padding: 0 10px;
  font-size: 14px;
  line-height: 22px;
}
.shell .sg-sales-ranges a {
  padding: 0;
}

.shell .sg-follow-index,
.shell .sg-rank-index,
.shell .sg-rank-list--sales .sg-rank-index {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 20px;
  height: 20px;
  min-width: 20px;
  min-height: 20px;
  margin: 0;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 50%;
  font-size: 12px;
  font-weight: 600;
  line-height: 20px;
  text-align: center;
  vertical-align: middle;
  font-variant-numeric: tabular-nums;
  background-clip: padding-box;
}
.shell .sg-mini-table td:first-child,
.shell .sg-rank-list li {
  vertical-align: middle;
}

@media (prefers-reduced-motion: reduce) {
  .sg-nav-progress,
  .shell .topbar::after,
  .shell .content,
  .shell .sg-chart-grid > *,
  .shell .sg-sales-card,
  .shell .sg-hot-card,
  .shell .sg-share-card,
  .sg-chart-card,
  .sg-sparkline--bar rect,
  .sg-column-chart-bar,
  .sg-donut-slice,
  .shell .sg-donut--share .sg-donut-svg,
  .shell .list-card.is-loading::after,
  .ui-skeleton,
  .ui-skeleton-block,
  .ui-skeleton-line,
  .ui-skeleton-donut {
    animation: none !important;
    transition: none !important;
  }
  html.is-navigating .shell .topbar::after {
    animation: none !important;
    transform: none;
  }
}
@container sg-sales-main (max-width: 760px) {
  .sg-sales-extra {
    height: auto;
    max-height: none;
  }
}

.login-page .login-logo,
.login-page .login-story-brand {
  overflow: visible;
}
.login-page .login-logo img,
.login-page .login-story-brand img,
.login-page .login-logo img:not(.login-logo-default),
.login-page .login-story-brand img:not(.login-logo-default) {
  display: block;
  width: auto;
  height: 44px;
  max-width: min(220px, 100%);
  max-height: 44px;
  object-fit: contain;
  object-position: left center;
  object-view-box: unset;
}

.shell .card-head.sg-sales-head,
.shell .sg-sales-head {
  align-items: stretch;
}
.shell .card-head.sg-sales-head .sg-line-tabs a,
.shell .sg-sales-head .sg-line-tabs a,
.shell .sg-sales-ranges a {
  display: inline-flex;
  align-items: center;
  height: 48px;
  min-height: 48px;
  max-height: 48px;
  padding: 0;
  font-size: 14px;
  line-height: 22px;
}
.shell .sg-sales-extra,
.shell .sg-sales-ranges,
.shell .sg-sales-picker {
  align-items: center;
  height: 48px;
}
.shell .sg-sales-dates {
  height: 32px;
  min-height: 32px;
  max-height: 32px;
  padding: 0 12px;
  font-size: 14px;
  line-height: 22px;
}

.shell .sg-rank-list > .sg-rank-empty,
.shell .sg-rank-list--sales > .sg-rank-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  grid-template-columns: none;
  min-height: 160px;
  padding: 24px 8px;
  color: rgba(0, 0, 0, .45);
  font-size: 14px;
  line-height: 22px;
  text-align: center;
}
.shell.theme-dark .sg-rank-list > .sg-rank-empty,
.shell.theme-dark .sg-rank-list--sales > .sg-rank-empty {
  color: rgba(255, 255, 255, .45);
}

.shell .sg-hot-head,
.shell .sg-share-head {
  align-items: center;
  min-height: 56px;
  padding: 12px 24px;
  box-sizing: border-box;
}
.shell .sg-hot-head h2,
.shell .sg-share-head h2 {
  display: flex;
  align-items: center;
  height: 32px;
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 32px;
}
.shell .sg-hot-head .sg-follow-search,
.shell .sg-hot-card .sg-follow-search {
  display: flex;
  align-items: center;
  height: 32px;
  margin: 0;
  padding: 0;
  gap: 8px;
}
.shell .sg-follow-search .input,
.shell .sg-follow-search .input.input-compact {
  box-sizing: border-box;
  width: 200px;
  height: 32px;
  min-height: 32px;
}
.shell .sg-follow-search .button,
.shell .sg-follow-search .button-small {
  box-sizing: border-box;
  height: 32px;
  min-height: 32px;
  padding: 0 12px;
  line-height: 30px;
}

.shell .sg-share-tabs {
  display: flex;
  align-items: center;
  height: 32px;
  gap: 16px;
}
.shell .sg-share-tabs label,
.shell .sg-share-tabs button,
.shell .sg-share-tabs a,
.shell .sg-share-tabs span {
  appearance: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: rgba(0, 0, 0, .45);
  font: inherit;
  font-size: 14px;
  line-height: 22px;
  cursor: pointer;
}
.shell .sg-share-card .sg-share-panel { display: none; }
.shell .sg-share-card:has(#sg-share-all:checked) .sg-share-panel[data-stage-panel="all"],
.shell .sg-share-card:has(#sg-share-deal:checked) .sg-share-panel[data-stage-panel="deal"],
.shell .sg-share-card:has(#sg-share-maintain:checked) .sg-share-panel[data-stage-panel="maintain"] {
  display: block;
}
.shell .sg-share-card:has(#sg-share-all:checked) label[for="sg-share-all"],
.shell .sg-share-card:has(#sg-share-deal:checked) label[for="sg-share-deal"],
.shell .sg-share-card:has(#sg-share-maintain:checked) label[for="sg-share-maintain"] {
  color: var(--brand);
  font-weight: 500;
}
.shell .sg-share-tabs label:hover {
  color: var(--brand);
}

.shell .sg-chart-compare {
  gap: 4px;
}

.shell .sg-chart-card {
  overflow: visible;
}
.shell .sg-chart-card:hover,
.shell .sg-chart-card:focus-within {
  z-index: 6;
}
.shell .sg-chart-card-tip {
  overflow: visible;
  z-index: 3;
}
.shell .sg-chart-card-tip::after {
  top: calc(100% + 6px);
  right: 0;
  left: auto;
  width: max-content;
  max-width: min(280px, calc(100vw - 48px));
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
  overflow: visible;
  text-overflow: unset;
  z-index: 8;
}

@media (min-width: 901px) {
  .shell .team-switcher,
  .shell .team-switcher-static {
    box-sizing: border-box;
    flex: 0 0 56px;
    height: 56px;
    padding: 0 16px;
  }
  .shell .team-switcher-trigger,
  .shell .team-switcher-trigger-static,
  .shell .team-switcher-trigger:has(.team-switcher-logo--brand) {
    box-sizing: border-box;
    width: 100%;
    height: 56px;
    min-height: 56px;
    max-height: 56px;
    padding: 0;
    border-radius: 0;
  }
  .shell .team-switcher-logo.team-switcher-logo--brand {
    height: 52px;
    max-height: 52px;
    min-width: 0;
    max-width: calc(100% - 28px);
  }
  .shell .team-switcher-logo.team-switcher-logo--brand img {
    width: auto;
    height: 52px;
    max-width: 100%;
    max-height: 52px;
    object-fit: contain;
    object-position: left center;
    object-view-box: unset;
  }
}

.shell .sg-sales-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}
.shell .sg-sales-main {
  min-width: 0;
  overflow: hidden;
}
.shell .card-head.sg-sales-head,
.shell .sg-sales-head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  column-gap: 24px;
  height: auto;
  min-height: 48px;
  max-height: none;
  padding: 0 0 0 24px;
}
.shell .sg-line-tabs {
  height: 48px;
  gap: 32px;
}
.shell .sg-line-tabs a {
  height: 48px;
  min-height: 48px;
  max-height: 48px;
  font-size: 16px;
  line-height: 24px;
}
.shell .sg-sales-extra {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px 16px;
  height: auto;
  min-height: 48px;
  max-height: none;
  padding-right: 24px;
  white-space: nowrap;
}
.shell .sg-sales-ranges {
  display: flex;
  align-items: center;
  flex: none;
  gap: 24px;
  height: auto;
  min-height: 0;
}
.shell .sg-sales-ranges a {
  display: inline-flex;
  align-items: center;
  height: auto;
  min-height: 0;
  max-height: none;
  padding: 0;
  color: rgba(0, 0, 0, .65);
  font-size: 14px;
  line-height: 22px;
  text-decoration: none;
}
.shell .sg-sales-ranges a.is-active {
  color: var(--brand);
  font-weight: 500;
}
.shell .sg-sales-dates {
  display: inline-flex;
  align-items: center;
  height: 32px;
  min-height: 32px;
  max-height: 32px;
  padding: 0 12px;
  border: 1px solid var(--sg-line);
  border-radius: 6px;
  color: rgba(0, 0, 0, .65);
  font-size: 14px;
  line-height: 22px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.shell .dash-refresh {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  height: 32px;
  padding: 0 15px;
  border: 1px solid var(--sg-line-soft, var(--sg-line));
  border-radius: 6px;
  background: #fff;
  color: var(--sg-ink, rgba(0, 0, 0, .88));
  font-size: 14px;
  font-weight: 500;
  line-height: 22px;
  text-decoration: none;
  white-space: nowrap;
}
.shell .dash-refresh:hover {
  border-color: color-mix(in srgb, var(--brand) 28%, var(--sg-line));
}

.shell-debug .debug-board-page .list-card-head h1,
.shell-debug .debug-board-card .list-card-head h1 {
  font-size: 16px;
  font-weight: 600;
  line-height: 24px;
  color: var(--sg-ink, rgba(0, 0, 0, .88));
}
.shell-debug .debug-kanban {
  gap: 16px;
}
.shell-debug .debug-kanban-column {
  border: 1px solid var(--sg-line);
  border-radius: 8px;
  background: var(--sg-surface, #fff);
  box-shadow: none;
  min-height: 360px;
}
.shell-debug .debug-kanban-column-head {
  padding: 12px 16px;
  border-bottom: 1px solid var(--sg-line);
}
.shell-debug .debug-kanban-column-head h2 {
  font-size: 14px;
  font-weight: 600;
  line-height: 22px;
  color: var(--sg-ink, rgba(0, 0, 0, .88));
}
.shell-debug .debug-kanban-cards {
  gap: 8px;
  padding: 12px;
}
.shell-debug .debug-kanban-card {
  padding: 12px 16px;
  border: 1px solid var(--sg-line);
  border-radius: 8px;
  background: #fff;
  box-shadow: none;
}
.shell-debug .debug-kanban-card:hover {
  border-color: color-mix(in srgb, var(--brand) 28%, var(--sg-line));
  box-shadow: none;
}
.shell-debug .debug-kanban-card strong {
  font-size: 14px;
  font-weight: 500;
  line-height: 22px;
}
.shell-debug .debug-kanban-card-meta,
.shell-debug .debug-notification-meta,
.shell-debug .debug-notification-time {
  font-size: 12px;
  color: var(--sg-faint, rgba(0, 0, 0, .45));
}
.shell-debug .debug-notification-item {
  border: 1px solid var(--sg-line);
  border-radius: 8px;
  padding: 16px;
  box-shadow: none;
}
.shell-debug .debug-task-table-wrap .list-table th {
  height: 47px;
  background: #fafafa;
  font-size: 14px;
}
.shell-debug .debug-task-table-wrap .list-table td {
  font-size: 14px;
  padding: 12px 8px;
}
.debug-feed-banner {
  margin: 0 24px 12px;
  padding: 8px 12px;
  border: 1px solid var(--sg-line);
  border-radius: 8px;
  background: var(--brand-soft);
  color: var(--sg-text);
  font-size: 13px;
}

/* 详情页：内容区是纵向 flex，overflow:hidden 的卡会被压成一条。 */
.shell .content > .detail-page-stack,
.shell .content > .detail-panel-card,
.shell .content > .card,
.shell .content > .grid,
.shell .content > .notice {
  flex-shrink: 0;
  min-height: min-content;
  width: 100%;
  max-width: none;
}
.shell .detail-page-stack {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
  min-width: 0;
  flex: 0 0 auto;
}
.shell .detail-page-stack > * {
  flex-shrink: 0;
  min-height: min-content;
  margin-top: 0;
}
.shell .detail-page-stack > .detail-metrics {
  margin-bottom: 0;
}
.shell .detail-panel-card {
  border-radius: 8px;
  overflow: hidden;
}
.shell .detail-panel-card > .card-head {
  padding: 16px 20px;
  border-bottom: 1px solid var(--sg-line);
}
.shell .detail-panel-card > .card-body {
  padding: 16px 20px 20px;
}
.shell .project-access-panel .project-access-fields {
  margin: 0 0 16px;
}
.shell .project-access-panel .project-handoff-meta {
  margin: 0;
}
.shell .project-access-runtime,
.shell .project-env-vault {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--sg-line);
}
.shell .project-env-vault .detail-panel-title {
  margin: 0 0 4px;
  font-size: 14px;
  font-weight: 600;
}
.shell .project-env-vault-form {
  display: grid;
  gap: 12px;
  margin-top: 12px;
}
.shell .detail-page-stack .empty--pro.compact-empty {
  padding: 24px 16px 28px;
}
.shell .grid.grid-2 > .detail-panel-card {
  min-height: min-content;
  height: auto;
}
.shell .customer-follow-form {
  display: grid;
  gap: 12px;
  margin: 0 0 16px;
}
.shell .customer-follow-form + .card-empty,
.shell .customer-follow-form + .timeline {
  padding-top: 16px;
  border-top: 1px solid var(--sg-line);
}
.shell details.project-env-vault > summary {
  cursor: pointer;
  list-style: none;
  margin: 0 0 8px;
}
.shell details.project-env-vault > summary::-webkit-details-marker {
  display: none;
}
.shell .copy-field-row {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.shell .copy-field-row .input {
  flex: 1 1 auto;
  min-width: 0;
}
.shell .copy-field-payload {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.shell .project-access-fields .copy-field--span {
  grid-column: 1 / -1;
}

.ai-brief-body {
  margin: 0;
  min-height: 100vh;
  background: var(--sg-canvas, #f5f6f8);
  color: var(--sg-ink, rgba(0, 0, 0, .88));
}
.ai-brief-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 16px;
  min-height: 56px;
  padding: 12px 40px;
  border-bottom: 1px solid var(--sg-line, #e5e6eb);
  background: #fff;
}
.ai-brief-brand {
  display: flex;
  align-items: center;
  gap: 10px;
}
.ai-brief-brand small {
  display: block;
  color: var(--sg-subtle, #5c5c5c);
  font-size: 12px;
}
.ai-brief-toc {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.ai-brief-toc a {
  height: 32px;
  padding: 0 12px;
  border-radius: 6px;
  color: var(--brand);
  line-height: 32px;
  text-decoration: none;
}
.ai-brief-toc a:hover {
  background: var(--brand-soft);
}
.ai-brief-main {
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-width: 1100px;
  margin: 0 auto;
  padding: 32px 40px 48px;
}
.ai-brief-hero {
  padding: 8px 0 8px;
}
.ai-brief-eyebrow {
  margin: 0 0 8px;
  color: var(--brand);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .08em;
}
.ai-brief-hero h1 {
  margin: 0 0 8px;
  font-size: 20px;
  font-weight: 600;
}
.ai-brief-lead,
.ai-brief-hero p {
  margin: 0 0 8px;
  color: var(--sg-subtle, #5c5c5c);
  font-size: 14px;
  line-height: 22px;
}
.ai-brief-card {
  border: 1px solid var(--sg-line, #e5e6eb);
  border-radius: 8px;
  background: #fff;
  box-shadow: none;
  overflow: hidden;
}
.ai-brief-subhead {
  margin: 16px 0 8px;
  font-size: 14px;
  font-weight: 600;
}
.ai-brief-rules ul {
  margin: 0;
  padding-left: 18px;
  font-size: 14px;
  line-height: 22px;
}
.ai-brief-prose {
  font-size: 14px;
  line-height: 22px;
}
.ai-brief-prose h1,
.ai-brief-prose h2,
.ai-brief-prose h3 {
  margin: 20px 0 8px;
  font-size: 16px;
  font-weight: 600;
}
.ai-brief-prose h1:first-child,
.ai-brief-prose h2:first-child {
  margin-top: 0;
}
.ai-brief-prose p,
.ai-brief-prose ul,
.ai-brief-prose ol {
  margin: 0 0 12px;
}
.ai-brief-prose code {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 13px;
}
.ai-brief-prose pre {
  overflow-x: auto;
  padding: 12px 16px;
  border: 1px solid var(--sg-line, #e5e6eb);
  border-radius: 8px;
  background: #fafafa;
}
.ai-brief-prose table {
  width: 100%;
  margin: 0 0 16px;
  border-collapse: collapse;
}
.ai-brief-prose th,
.ai-brief-prose td {
  padding: 12px 8px;
  border-bottom: 1px solid #f0f0f0;
  text-align: left;
  font-size: 14px;
}
.ai-brief-prose th {
  background: #fafafa;
  font-weight: 600;
}
.ai-brief-prose a {
  color: var(--brand);
}
.ai-brief-rules-list {
  margin: 0;
  padding-left: 20px;
  font-size: 14px;
  line-height: 22px;
}
.ai-brief-recipe {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--sg-line, #e5e6eb);
}
.ai-brief-code {
  overflow-x: auto;
  margin: 8px 0 12px;
  padding: 12px 16px;
  border: 1px solid var(--sg-line, #e5e6eb);
  border-radius: 8px;
  background: #fafafa;
  font-size: 12px;
  line-height: 18px;
}
@media (max-width: 900px) {
  .ai-brief-header,
  .ai-brief-main {
    padding-left: 16px;
    padding-right: 16px;
  }
}

/* SG01 现行：新后台卡片 8px 无投影，覆盖 L0 的 4px 卡半径。 */
.shell .card,
.shell .list-card,
.shell .detail-panel-card,
.shell .sg-form-block,
.shell .metric,
.shell .sg-hot-card,
.shell .sg-share-card,
.shell .sg-sales-card,
.shell .sg-account-card {
  border-radius: 8px;
  box-shadow: none;
}

.login-page .login-logo img,
.login-page .login-story-brand img,
.login-page .login-logo img:not(.login-logo-default),
.login-page .login-story-brand img:not(.login-logo-default) {
  height: 52px;
  max-height: 52px;
  max-width: min(260px, 100%);
}
.login-page .login-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: transform .16s ease, background-color .16s ease;
}
.login-page .login-submit .ui-icon {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
}
.login-page .login-submit:hover {
  transform: translateY(-1px);
}
.login-page .login-submit:active {
  transform: translateY(0) scale(.99);
}
@media (prefers-reduced-motion: reduce) {
  .login-page .login-submit,
  .login-page .login-submit:hover,
  .login-page .login-submit:active {
    transition: none;
    transform: none;
  }
}

.shell .detail-page-stack > .content-page-head {
  margin: 0;
  padding: 16px 20px;
  border: 1px solid var(--sg-line);
  border-radius: 8px;
  background: #fff;
}
.shell .detail-page-stack > .content-page-head.content-page-head--split {
  margin-bottom: 0;
  align-items: center;
}
.shell .detail-page-stack > .content-page-head .content-page-head-actions {
  flex-wrap: wrap;
  row-gap: 8px;
}
.shell .detail-page-stack > .detail-metrics {
  margin: 0;
}
.shell .project-app-bindings-table td:nth-child(2) {
  min-width: 240px;
  width: 34%;
}
.shell .project-app-bindings-table .select.select-compact {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  height: 32px;
  padding: 0 28px 0 10px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.shell .list-page-stack .list-table td.primary-cell > a,
.shell .list-page-stack .list-table td.primary-cell > a.link,
.shell .list-page-stack .list-table td.primary-cell > a.table-link,
.shell .list-page-stack .list-table td.primary-cell > a > strong {
  color: var(--sg-text, rgba(0, 0, 0, .88));
}
.shell .list-page-stack .list-table td.primary-cell > a:hover,
.shell .list-page-stack .list-table td.primary-cell > a:hover > strong {
  color: var(--brand);
}

/* 浮层标准：抽屉 / 居中弹窗共用遮罩、8px、16/600、垫 20、关闭 32/6。编辑走 sheet，确认走 dialog。 */
:root {
  --sg-overlay: rgba(0, 0, 0, .45);
}
.ui-sheet-overlay,
.ui-alert-backdrop,
.contract-modal-backdrop,
.bulk-delete-backdrop,
.ui-dialog::backdrop {
  background: var(--sg-overlay);
}
.ui-sheet-panel {
  width: min(480px, 100vw);
  border-left: 1px solid var(--sg-line);
  background: #fff;
  box-shadow: none;
  transition: transform .18s var(--ease-standard, cubic-bezier(.2, .8, .2, 1));
}
.ui-sheet-panel.ui-sheet-panel-wide,
.ui-sheet-panel.ui-sheet-panel-member {
  width: min(520px, 100vw);
}
.ui-sheet-panel.ui-sheet-panel-debug {
  width: min(600px, 100vw);
}
.shell .ui-sheet-header,
.ui-sheet-header {
  align-items: center;
  padding: 16px 20px;
  border-bottom-color: var(--sg-line);
}
.shell .ui-sheet-header-title-row strong,
.ui-sheet-header-title-row strong {
  font-size: 16px;
  font-weight: 600;
  line-height: 24px;
  color: var(--sg-ink);
}
.shell .ui-sheet-body,
.ui-sheet-body {
  padding: 20px;
}
.shell .ui-sheet-footer,
.ui-sheet-footer {
  padding: 16px 20px;
  border-top-color: var(--sg-line);
  justify-content: flex-end;
  gap: 8px;
}
.ui-dialog,
.shell .ui-dialog,
.ui-alert-toggle:checked ~ .ui-alert-dialog-panel,
.shell .ui-alert-dialog-panel,
.bulk-delete-toggle:checked ~ .bulk-delete-modal,
.contract-modal-panel {
  border: 1px solid var(--sg-line);
  border-radius: 8px;
  background: #fff;
  box-shadow: none;
}
.ui-dialog,
.shell .ui-dialog {
  width: min(480px, calc(100vw - 32px));
  padding: 0;
}
.ui-alert-toggle:checked ~ .ui-alert-dialog-panel {
  width: min(420px, calc(100vw - 32px));
  padding: 20px;
}
.bulk-delete-toggle:checked ~ .bulk-delete-modal {
  width: min(480px, calc(100vw - 32px));
}
.contract-modal-panel {
  width: min(480px, calc(100vw - 32px));
}
.contract-modal-panel-upload {
  width: min(520px, calc(100vw - 32px));
}
.contract-modal-panel-confirm {
  width: min(420px, calc(100vw - 32px));
}
.ui-dialog-title,
.shell .ui-dialog-title,
.bulk-delete-modal-title,
.contract-modal-title,
.ui-alert-dialog-header strong {
  font-size: 16px;
  font-weight: 600;
  line-height: 24px;
  letter-spacing: 0;
  color: var(--sg-ink);
}
.ui-dialog-body,
.shell .ui-dialog-body,
.bulk-delete-modal-body,
.contract-modal-body {
  padding: 20px;
}
.ui-dialog-header {
  gap: 8px;
}
.ui-dialog-description,
.bulk-delete-modal-lead,
.contract-modal-description,
.ui-alert-dialog-header p {
  margin: 0;
  font-size: 14px;
  line-height: 22px;
  color: var(--sg-subtle);
}
.ui-dialog-footer,
.shell .ui-dialog-footer,
.bulk-delete-modal-footer,
.contract-modal-footer,
.ui-alert-dialog-actions {
  padding: 16px 20px;
  gap: 8px;
  justify-content: flex-end;
}
.ui-dialog-footer,
.shell .ui-dialog-footer {
  padding-top: 0;
}
.contract-modal-header {
  padding: 16px 52px 16px 20px;
  border-bottom-color: var(--sg-line);
}
.ui-sheet-close,
.ui-dialog-close,
.contract-modal-close {
  width: 32px;
  height: 32px;
  border-radius: 6px;
  color: var(--sg-subtle);
  background: transparent;
}
.ui-sheet-close:hover,
.ui-dialog-close:hover,
.contract-modal-close:hover {
  color: var(--sg-ink);
  background: var(--sg-fill-2, #f5f6f8);
}
.project-bind-capability {
  border-radius: 8px;
}
@media (prefers-reduced-motion: reduce) {
  .ui-sheet-panel {
    transition: none;
  }
}

/* KPI i 提示浮在数字之上会被 30px 总值盖住；改到图标上方并抬高层级。 */
.shell .sg-chart-grid,
.shell .sg-chart-card,
.shell .sg-chart-card-meta {
  overflow: visible;
}
.shell .sg-chart-card:hover,
.shell .sg-chart-card:focus-within {
  z-index: 8;
}
.shell .sg-chart-card-total,
.shell .sg-chart-card-content,
.shell .sg-chart-card-footer {
  position: relative;
  z-index: 0;
}
.shell .sg-chart-card-tip {
  position: relative;
  z-index: 4;
  overflow: visible;
}
.shell .sg-chart-card-tip::after {
  top: auto;
  bottom: calc(100% + 6px);
  right: 0;
  left: auto;
  z-index: 12;
  width: max-content;
  max-width: min(260px, calc(100vw - 48px));
  padding: 8px 10px;
  line-height: 20px;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.shell .list-query-card.messages-query-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 24px;
}
.shell .list-query-card.messages-query-card .content-page-head-main {
  flex: 1 1 auto;
  min-width: 0;
}
.shell .list-query-card.messages-query-card .list-query-form {
  flex: 1 1 auto;
  min-width: 0;
}
.shell .list-query-card.messages-query-card .content-page-head-actions {
  flex: 0 0 auto;
  margin-left: 0;
}
.shell .list-page-stack > .list-card.messages-sent-card {
  padding: 0;
  overflow: hidden;
}
.shell .list-page-stack > .messages-sent-card > .table-wrap,
.shell .list-page-stack .list-card.messages-sent-card > .table-wrap {
  margin: 0;
  padding: 0;
  overflow: hidden;
}
.shell .list-page-stack .messages-sent-card .table-wrap .list-table.messages-feed-table {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
}
.shell .messages-feed-table .messages-col-time { width: 10.5rem; }
.shell .messages-feed-table .messages-col-kind { width: 4.5rem; }
.shell .messages-feed-table .messages-col-target { width: 7rem; }
.shell .messages-feed-table .messages-col-status { width: 4.5rem; }
.shell .list-page-stack > .messages-sent-card > .card-body {
  padding: 24px;
}
.shell .messages-feed-table td.messages-col-body,
.shell .messages-feed-table td.messages-feed-main {
  max-width: none;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.shell .messages-feed-table td.messages-col-status {
  overflow: hidden;
  text-overflow: ellipsis;
}
.shell .messages-feed-table td.messages-col-status .badge {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  display: inline-block;
  vertical-align: middle;
}
.shell .team-switcher-item > span {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-width: 0;
  line-height: 1.2;
}
.shell .team-switcher-item strong {
  line-height: 18px;
}
.shell .team-switcher-item small {
  margin-top: 0;
  line-height: 16px;
}

.ui-alert-inline,
.ui-alert-dialog-panel,
.ui-alert-dialog-header,
.ui-alert-dialog-header strong,
.ui-alert-dialog-header p {
  text-align: start;
}
.ui-alert-toggle:checked ~ .ui-alert-dialog-panel {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: min(400px, calc(100vw - 32px));
  padding: 20px;
  box-sizing: border-box;
}
.ui-alert-dialog-header p {
  margin-top: 8px;
  word-break: break-word;
  overflow-wrap: anywhere;
}
.ui-alert-dialog-actions {
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
  width: 100%;
}
.ui-alert-dialog-actions .button {
  flex: 0 0 auto;
  width: auto;
  min-width: 72px;
}

.shell .sg-toast-stack {
  position: fixed;
  z-index: 90;
  top: 56px;
  right: 16px;
  left: auto;
  bottom: auto;
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: min(360px, calc(100vw - 32px));
  margin: 0;
  pointer-events: none;
}
.shell .sg-toast {
  pointer-events: auto;
  padding: 10px 14px;
  border-radius: 8px;
  border: 1px solid var(--sg-line);
  background: #fff;
  color: var(--sg-ink);
  font-size: 13px;
  line-height: 22px;
  box-shadow: none;
}
.shell .sg-toast-success {
  border-color: color-mix(in srgb, var(--green, #00b42a) 28%, var(--sg-line));
  background: color-mix(in srgb, var(--green, #00b42a) 8%, #fff);
  color: var(--green, #00b42a);
}
.shell .sg-toast-info {
  border-color: color-mix(in srgb, var(--brand) 22%, var(--sg-line));
  background: color-mix(in srgb, var(--brand) 8%, #fff);
  color: var(--brand);
}
.shell .sg-toast-danger {
  border-color: color-mix(in srgb, var(--red, #f53f3f) 28%, var(--sg-line));
  background: color-mix(in srgb, var(--red, #f53f3f) 8%, #fff);
  color: var(--red, #f53f3f);
}

.shell .pagination,
.shell .list-table-section .pagination {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 8px 12px;
}
.shell .pagination-total { justify-self: start; }
.shell .pagination .pages,
.shell .list-table-section .pagination .pages {
  justify-self: end;
  margin-left: 0;
}
.shell .pagination .bulk-actions-dock,
.shell .bulk-actions-dock {
  position: static;
  left: auto;
  bottom: auto;
  z-index: 1;
  transform: none;
  box-shadow: none;
  backdrop-filter: none;
  height: 32px;
  min-height: 32px;
  padding: 0 8px;
  border-radius: 8px;
  border: 1px solid var(--sg-line);
  background: #fff;
}
.shell .list-bulk-form:has(input[name="ids[]"]:checked),
.shell .list-bulk-form.is-bulk-active {
  padding-bottom: 0;
}

.shell .application-detail-page .page-head-title-line {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px 12px;
  min-width: 0;
}
.shell .application-detail-page .page-head-title-line h1 {
  margin: 0;
}
.shell .application-detail-page .page-head-title-line .lead {
  margin: 0;
  flex: 1 1 16rem;
  min-width: 0;
}
.shell .application-profile-form.form-card {
  width: 100%;
  padding: 0;
  gap: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.shell .application-profile-form > .card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 20px;
  border-bottom: 1px solid var(--sg-line);
}
.shell .application-profile-form > .card-head h2 {
  margin: 0;
  font-size: 16px;
  font-weight: 600;
  line-height: 24px;
}
.shell .application-profile-form > .card-head .lead {
  margin: 4px 0 0;
  font-size: 13px;
  color: var(--sg-subtle);
}
.shell .application-profile-form > .card-body {
  padding: 20px;
}
.shell .detail-page-stack > .application-profiles-section.list-card {
  padding: 0;
  overflow: hidden;
}

/* SG01 motion pass: overlays, segment thumb, busy actions, bulk dock. Transform only. */
.shell .ui-sheet-panel {
  transition: transform .18s var(--ease-standard);
}
dialog.ui-dialog[open],
.shell dialog.ui-dialog[open] {
  animation: sg-dialog-rise .18s var(--ease-standard);
}
@keyframes sg-dialog-rise {
  from { transform: translateY(8px); }
}
.ui-alert-toggle:checked ~ .ui-alert-dialog-panel,
.bulk-delete-toggle:checked ~ .bulk-delete-modal {
  animation: sg-confirm-rise .18s var(--ease-standard);
}
@keyframes sg-confirm-rise {
  from { transform: translate(-50%, calc(-50% + 8px)); }
  to { transform: translate(-50%, -50%); }
}
.shell .sg-toast {
  animation: sg-toast-in .18s var(--ease-standard);
}
@keyframes sg-toast-in {
  from { transform: translateX(8px); }
}

.theme-settings-segment,
.shell .dashboard-page-tabs.ui-tabs {
  position: relative;
  isolation: isolate;
}
.theme-settings-segment::before,
.shell .dashboard-page-tabs.ui-tabs::before {
  content: "";
  position: absolute;
  z-index: 0;
  pointer-events: none;
  border-radius: 6px;
  background: var(--background, #fff);
  transition: transform .18s var(--ease-standard);
}
.theme-settings-segment::before {
  top: 3px;
  bottom: 3px;
  left: 3px;
  width: calc((100% - 12px) / 2);
  transform: translateX(0);
}
.theme-settings-segment:has(.theme-settings-segment-item:last-child.is-active)::before {
  transform: translateX(calc(100% + 6px));
}
.theme-settings-segment-item {
  position: relative;
  z-index: 1;
  background: transparent;
  box-shadow: none;
}
.theme-settings-segment-item.is-active {
  background: transparent;
  box-shadow: none;
}
.shell .dashboard-page-tabs.ui-tabs {
  --sg-tab-n: 3;
  --sg-tab-i: 0;
  display: grid;
  grid-template-columns: repeat(var(--sg-tab-n), minmax(0, 1fr));
  gap: 0;
}
.shell .dashboard-page-tabs.ui-tabs:has(.ui-tab:nth-child(2):last-child) { --sg-tab-n: 2; }
.shell .dashboard-page-tabs.ui-tabs:has(.ui-tab:nth-child(3):last-child) { --sg-tab-n: 3; }
.shell .dashboard-page-tabs.ui-tabs:has(.ui-tab:nth-child(4):last-child) { --sg-tab-n: 4; }
.shell .dashboard-page-tabs.ui-tabs:has(.ui-tab:nth-child(1).is-active) { --sg-tab-i: 0; }
.shell .dashboard-page-tabs.ui-tabs:has(.ui-tab:nth-child(2).is-active) { --sg-tab-i: 1; }
.shell .dashboard-page-tabs.ui-tabs:has(.ui-tab:nth-child(3).is-active) { --sg-tab-i: 2; }
.shell .dashboard-page-tabs.ui-tabs:has(.ui-tab:nth-child(4).is-active) { --sg-tab-i: 3; }
.shell .dashboard-page-tabs.ui-tabs::before {
  top: 2px;
  bottom: 2px;
  left: 2px;
  width: calc((100% - 4px) / var(--sg-tab-n));
  transform: translateX(calc(var(--sg-tab-i) * 100%));
}
.shell .dashboard-page-tabs .ui-tab {
  position: relative;
  z-index: 1;
  justify-content: center;
  background: transparent;
}
.shell .dashboard-page-tabs .ui-tab.is-active {
  background: transparent;
}
.shell .ui-tab.is-active::after {
  transform: scaleX(1);
  transform-origin: center;
  transition: transform .18s var(--ease-standard);
}
.shell .ui-tab:not(.is-active)::after {
  content: "";
  position: absolute;
  right: 16px;
  bottom: 0;
  left: 16px;
  height: 1.6px;
  background: var(--brand);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform .18s var(--ease-standard);
}
.shell .dashboard-page-tabs .ui-tab:not(.is-active)::after {
  content: none;
}

.shell .button[data-copy-from],
.shell .button[data-copy-text],
.shell .button[data-copy-b64] {
  min-width: 4.75rem;
  box-sizing: border-box;
}
.shell .button[data-busy-label] {
  min-width: 7.25rem;
  box-sizing: border-box;
}
.shell .button[data-copying="1"],
.shell .button[data-submitting="1"] {
  pointer-events: none;
}

.shell .pagination .bulk-actions-dock,
.shell .bulk-actions-dock {
  display: inline-flex;
  visibility: hidden;
  pointer-events: none;
  justify-self: center;
  transform: translateY(4px);
  transition: transform .18s var(--ease-standard);
}
.shell .list-bulk-form:has(input[name="ids[]"]:checked) .bulk-actions-dock,
.shell .list-bulk-form.is-bulk-active .bulk-actions-dock {
  display: inline-flex;
  visibility: visible;
  pointer-events: auto;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  .shell .ui-sheet-panel,
  .theme-settings-segment::before,
  .shell .dashboard-page-tabs.ui-tabs::before,
  .shell .ui-tab.is-active::after,
  .shell .ui-tab:not(.is-active)::after,
  .shell .pagination .bulk-actions-dock,
  .shell .bulk-actions-dock {
    transition: none;
  }
  dialog.ui-dialog[open],
  .shell dialog.ui-dialog[open],
  .ui-alert-toggle:checked ~ .ui-alert-dialog-panel,
  .bulk-delete-toggle:checked ~ .bulk-delete-modal,
  .shell .sg-toast {
    animation: none;
  }
  .theme-settings-segment::before,
  .shell .dashboard-page-tabs.ui-tabs::before,
  .shell .pagination .bulk-actions-dock,
  .shell .bulk-actions-dock {
    transform: none;
  }
  .ui-alert-toggle:checked ~ .ui-alert-dialog-panel,
  .bulk-delete-toggle:checked ~ .bulk-delete-modal {
    transform: translate(-50%, -50%);
  }
}

/* Bulk dock: pagination used to size every span to 32×32, so 1px rules became gray tiles. */
.shell .pagination .bulk-actions-dock,
.shell .pagination .bulk-actions-dock span,
.shell .pagination .bulk-actions-dock a {
  min-width: 0;
  height: auto;
  border-radius: 0;
}
.shell .pagination .bulk-actions-dock,
.shell .bulk-actions-dock,
.shell .kit-main .bulk-actions-dock {
  align-items: center;
  gap: 8px;
  height: 32px;
  min-height: 32px;
  max-height: 32px;
  padding: 0 6px 0 4px;
  border: 1px solid var(--sg-line);
  border-radius: 8px;
  background: var(--sg-fill, #fafafa);
  box-shadow: none;
  box-sizing: border-box;
}
.shell .pagination .bulk-actions-dock,
.shell .bulk-actions-dock {
  display: none;
  visibility: hidden;
  pointer-events: none;
}
.shell .list-bulk-form:has(input[name="ids[]"]:checked) .bulk-actions-dock,
.shell .list-bulk-form.is-bulk-active .bulk-actions-dock,
.shell .bulk-actions-dock.is-demo,
.shell .kit-main .bulk-actions-dock.is-demo {
  display: inline-flex;
  visibility: visible;
  pointer-events: auto;
  transform: none;
}
.shell .pagination .bulk-actions-dock .button,
.shell .bulk-actions-dock .button {
  min-width: 32px;
  width: 32px;
  height: 32px;
  padding: 0;
  border-radius: 6px;
}
.shell .bulk-actions-separator { display: none; }
.shell .bulk-actions-meta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 20px;
  padding: 0 8px;
  border-left: 1px solid var(--sg-line);
  border-right: 1px solid var(--sg-line);
  color: var(--sg-ink);
  font-size: 13px;
  line-height: 20px;
  white-space: nowrap;
}
.shell .bulk-actions-badge {
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 600;
  line-height: 20px;
}
.shell .bulk-actions-label {
  font-size: 13px;
  font-weight: 400;
  color: var(--sg-subtle);
}
.shell .bulk-actions-buttons { gap: 4px; }
.shell .bulk-actions-clear { border-radius: 6px; }

/* Overlay / kit alignment: confirm is a centered dialog, not a 280px popover. */
.shell .kit-main .sg-toast-stack {
  position: static;
  z-index: 1;
  width: min(360px, 100%);
  margin: 12px 0 0;
  pointer-events: auto;
}
.shell .kit-main .ui-sheet-body { padding: 20px; }
.shell .kit-main .ui-sheet-footer { padding: 16px 20px; }
.shell .kit-main .ui-dialog,
.shell .kit-dialog-static {
  border: 1px solid var(--sg-line);
  border-radius: 8px;
  background: #fff;
  box-shadow: none;
}
.shell .kit-dialog-static .ui-dialog-body { padding: 20px; }
.shell .kit-dialog-static .ui-dialog-footer {
  padding: 0 20px 16px;
  justify-content: flex-end;
}
.shell .kit-main .ui-tabs:not(.dashboard-page-tabs) {
  display: flex;
  gap: 0;
  padding: 0;
  border: 0;
  border-bottom: 1px solid var(--sg-line);
  border-radius: 0;
  background: transparent;
}
.shell .kit-main .ui-tabs:not(.dashboard-page-tabs)::before { content: none; }
.shell .kit-main .ui-tab { min-height: 32px; }
.shell .kit-main .showcase-row { align-items: center; gap: 12px; }
.shell .kit-main .ui-collapsible {
  min-width: 16rem;
  padding: 0 12px;
}
.shell .kit-main .ui-popover-panel,
.shell .kit-main .ui-dropdown-panel {
  border: 1px solid var(--sg-line);
  border-radius: 8px;
  box-shadow: none;
  padding: 6px;
}
.shell .kit-main .showcase-section .ui-separator[data-orientation="vertical"] {
  width: 1px;
  min-width: 1px;
  max-width: 1px;
  height: 16px;
  min-height: 16px;
  align-self: center;
  background: var(--sg-line);
}

/* Micro motion: press, menus, rows, tabs. Transform only. */
.shell .button,
.shell .ui-icon-button,
.shell summary.button {
  transition: transform .15s var(--ease-standard), background-color .15s var(--ease-standard), border-color .15s var(--ease-standard), color .15s var(--ease-standard);
}
.shell .button:active:not(:disabled),
.shell .ui-icon-button:active:not(:disabled),
.shell summary.button:active {
  transform: scale(.98);
}
.shell .nav a,
.shell .nav-group-summary,
.shell .kit-nav a {
  transition: transform .15s var(--ease-standard), background-color .15s var(--ease-standard), color .15s var(--ease-standard);
}
.shell .nav a:active,
.shell .kit-nav a:active {
  transform: translateX(1px);
}
.shell .ui-popover-panel,
.shell .ui-dropdown-panel,
.shell .row-actions-panel,
.shell .command-panel {
  transform-origin: top right;
  animation: sg-menu-in .15s var(--ease-standard);
}
@keyframes sg-menu-in {
  from { transform: translateY(4px); }
}
.shell .ui-tab {
  transition: color .15s var(--ease-standard), background-color .15s var(--ease-standard), transform .15s var(--ease-standard);
}
.shell .input,
.shell .select,
.shell .textarea {
  transition: border-color .15s var(--ease-standard);
}
.shell .ui-switch-track::after,
.shell .ui-switch::after {
  transition: transform .18s var(--ease-standard);
}

@media (prefers-reduced-motion: reduce) {
  .shell .button,
  .shell .ui-icon-button,
  .shell summary.button,
  .shell .nav a,
  .shell .nav-group-summary,
  .shell .kit-nav a,
  .shell .ui-tab,
  .shell .input,
  .shell .select,
  .shell .textarea,
  .shell .ui-switch-track::after,
  .shell .ui-switch::after {
    transition: none;
  }
  .shell .button:active:not(:disabled),
  .shell .ui-icon-button:active:not(:disabled),
  .shell summary.button:active,
  .shell .nav a:active,
  .shell .kit-nav a:active {
    transform: none;
  }
  .shell .ui-popover-panel,
  .shell .ui-dropdown-panel,
  .shell .row-actions-panel,
  .shell .command-panel {
    animation: none;
  }
}

.shell .messages-feed-table td.messages-col-status .badge {
  max-width: none;
}

.shell .messages-feed-table td.messages-col-body {
  max-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.shell .messages-feed-table td.messages-col-body .table-link {
  display: inline;
}
.shell .message-detail-body {
  margin: 0;
  font-size: 14px;
  line-height: 22px;
  color: var(--sg-ink);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.shell .secret-field-row .secret-masked,
.shell .secret-field-row .secret-plain {
  flex: 1 1 auto;
  min-width: 0;
}
.shell .secret-reveal {
  position: static;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 4.5rem;
  height: 32px;
  flex: 0 0 auto;
  cursor: pointer;
}
.shell .secret-field:has(.password-reveal-input:checked) .secret-plain {
  display: block;
}
.shell .secret-field:has(.password-reveal-input:checked) .password-reveal-show {
  display: none;
}
.shell .secret-field:has(.password-reveal-input:checked) .password-reveal-hide {
  display: inline;
}
.shell .project-access-fields > .copy-field.field-full,
.shell .project-access-fields > .secret-field.field-full {
  grid-column: 1 / -1;
}
.shell .project-env-vault-slots {
  display: grid;
  gap: 4px;
  margin: 0 0 12px;
}
.shell .project-env-vault-actions {
  margin: 0 0 12px;
}

@media (min-width: 901px) {
  .shell.is-sidebar-collapsed .nav > a,
  .shell.is-sidebar-collapsed .nav-group {
    position: relative;
  }
  .shell.is-sidebar-collapsed .nav > a[data-nav-label]::after {
    content: attr(data-nav-label);
    position: absolute;
    left: calc(100% + 8px);
    top: 50%;
    z-index: 24;
    padding: 6px 10px;
    border: 1px solid var(--sg-line);
    border-radius: 6px;
    color: var(--sg-ink, #121314);
    background: var(--sg-surface, #fff);
    font-size: 13px;
    font-weight: 500;
    line-height: 20px;
    white-space: nowrap;
    pointer-events: none;
    visibility: hidden;
    transform: translateY(-50%);
  }
  .shell.is-sidebar-collapsed .nav > a[data-nav-label]:hover::after,
  .shell.is-sidebar-collapsed .nav > a[data-nav-label]:focus-visible::after {
    visibility: visible;
  }
  .shell.is-sidebar-collapsed .nav-group-items {
    display: none;
    position: absolute;
    left: calc(100% + 8px);
    top: 0;
    z-index: 24;
    min-width: 168px;
    margin: 0;
    padding: 8px;
    border: 1px solid var(--sg-line);
    border-radius: 8px;
    background: var(--sg-surface, #fff);
    border-left: 1px solid var(--sg-line);
  }
  .shell.is-sidebar-collapsed .nav-group:hover > .nav-group-items,
  .shell.is-sidebar-collapsed .nav-group:focus-within > .nav-group-items {
    display: grid;
  }
  .shell.is-sidebar-collapsed .nav-group-items a {
    justify-content: flex-start;
    min-height: 32px;
    padding: 6px 10px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .shell.is-sidebar-collapsed .nav > a[data-nav-label]::after {
    transform: translateY(-50%);
  }
}

/* Group nav: only the leaf carries selected fill (Ant Design / Arco).
   Parent of the current page uses title color, not a second brand-soft pill. */
.shell .nav-group[open] > .nav-group-summary,
.shell .nav-group.is-active > .nav-group-summary {
  color: rgba(0, 0, 0, .88);
  background: transparent;
  font-weight: 500;
  box-shadow: none;
}
.shell .nav-group.is-active > .nav-group-summary,
.shell .nav-group.is-active > .nav-group-summary .nav-icon {
  color: var(--brand);
}
.shell .nav-group.is-active > .nav-group-summary .nav-group-chevron {
  color: var(--sg-faint, #909399);
}
.shell .nav-group-summary:hover,
.shell .nav-group.is-active > .nav-group-summary:hover {
  color: rgba(0, 0, 0, .88);
  background: var(--sg-fill-hover, #f2f3f5);
}
.shell .nav-group.is-active > .nav-group-summary:hover,
.shell .nav-group.is-active > .nav-group-summary:hover .nav-icon {
  color: var(--brand);
}
.shell .nav-group-items {
  gap: 2px;
  margin: 0 0 4px;
  margin-left: 0;
  padding: 0 0 0 32px;
  border-left: 0;
}
.shell .nav-group-items a {
  min-height: 36px;
  padding: 0 10px;
  border-radius: 8px;
  color: var(--sg-subtle, #5c5c5c);
  font-size: 14px;
  font-weight: 400;
  background: transparent;
  box-shadow: none;
}
.shell .nav-group-items a:hover {
  color: var(--sg-ink, #121314);
  background: var(--sg-fill-hover, #f2f3f5);
  font-weight: 400;
}
.shell .nav-group-items a.active {
  color: var(--brand);
  background: var(--brand-soft);
  font-weight: 500;
}
.shell.theme-dark .nav-group[open] > .nav-group-summary,
.shell.theme-dark .nav-group.is-active > .nav-group-summary {
  background: transparent;
  color: rgba(255, 255, 255, .88);
}
.shell.theme-dark .nav-group.is-active > .nav-group-summary,
.shell.theme-dark .nav-group.is-active > .nav-group-summary .nav-icon {
  color: var(--brand);
}
.shell.theme-dark .nav-group-items a {
  color: rgba(255, 255, 255, .65);
  background: transparent;
}
.shell.theme-dark .nav-group-items a:hover {
  color: rgba(255, 255, 255, .88);
  background: var(--sg-hover, #1e293b);
}
.shell.theme-dark .nav-group-items a.active {
  color: #fff;
  background: var(--brand-soft);
}

/* Overlay + notice: dialog 8px / no shadow; popover 6px / 0 2px 5px; alerts by tone. */
.shell .ui-alert {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  align-items: start;
  gap: 8px 12px;
  margin: 0;
  padding: 12px 16px;
  border: 1px solid var(--sg-line);
  border-radius: 8px;
  background: #fff;
}
.shell .ui-alert-icon,
.shell .ui-alert-icon .ui-icon {
  width: 20px;
  height: 20px;
  color: inherit;
}
.shell .ui-alert-title {
  margin: 0;
  font-size: 14px;
  font-weight: 600;
  line-height: 22px;
  color: inherit;
}
.shell .ui-alert-description {
  margin: 2px 0 0;
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
  color: var(--sg-subtle);
}
.shell .ui-alert-info {
  color: var(--brand);
  border-color: color-mix(in srgb, var(--brand) 22%, var(--sg-line));
  background: color-mix(in srgb, var(--brand) 8%, #fff);
}
.shell .ui-alert-success {
  color: var(--green, #00b42a);
  border-color: color-mix(in srgb, var(--green, #00b42a) 28%, var(--sg-line));
  background: color-mix(in srgb, var(--green, #00b42a) 8%, #fff);
}
.shell .ui-alert-warning {
  color: var(--orange, #ff7d00);
  border-color: color-mix(in srgb, var(--orange, #ff7d00) 28%, var(--sg-line));
  background: color-mix(in srgb, var(--orange, #ff7d00) 8%, #fff);
}
.shell .ui-alert-danger,
.shell .ui-alert-destructive {
  color: var(--red, #f53f3f);
  border-color: color-mix(in srgb, var(--red, #f53f3f) 28%, var(--sg-line));
  background: color-mix(in srgb, var(--red, #f53f3f) 8%, #fff);
}
.shell .ui-alert-info .ui-alert-description,
.shell .ui-alert-success .ui-alert-description,
.shell .ui-alert-warning .ui-alert-description,
.shell .ui-alert-danger .ui-alert-description,
.shell .ui-alert-destructive .ui-alert-description {
  color: inherit;
  opacity: .88;
}
.shell .sg-toast {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  min-height: 40px;
  padding: 8px 14px;
  border-radius: 8px;
  box-shadow: 0 2px 5px rgba(0, 0, 0, .1);
}
.shell .sg-toast-icon,
.shell .sg-toast-icon .ui-icon {
  width: 16px;
  height: 16px;
}
.shell .sg-toast-text { min-width: 0; }
.shell .sg-toast-warning {
  border-color: color-mix(in srgb, var(--orange, #ff7d00) 28%, var(--sg-line));
  background: color-mix(in srgb, var(--orange, #ff7d00) 8%, #fff);
  color: var(--orange, #ff7d00);
}
.shell .ui-popover-panel,
.shell .ui-dropdown-panel {
  min-width: 160px;
  padding: 6px;
  border: 1px solid var(--sg-line);
  border-radius: 6px;
  background: #fff;
  box-shadow: 0 2px 5px rgba(0, 0, 0, .1);
}
.shell .ui-popover-title {
  margin: 0 0 4px;
  padding: 4px 8px 0;
  font-size: 14px;
  font-weight: 600;
  line-height: 22px;
  color: var(--sg-ink);
}
.shell .ui-popover-panel .muted,
.shell .ui-popover-panel .text-sm {
  margin: 0;
  padding: 0 8px 8px;
}
.shell .ui-dropdown-item {
  min-height: 32px;
  padding: 0 8px;
  border-radius: 6px;
  font-size: 14px;
}
.shell .ui-dropdown-item .ui-icon {
  width: 16px;
  height: 16px;
}
.ui-dialog form:has(.ui-dialog-close),
.shell .ui-dialog-close,
.kit-dialog-static .ui-dialog-close {
  position: absolute;
  top: 16px;
  right: 16px;
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 0;
  border-radius: 6px;
}
.ui-dialog form:has(.ui-dialog-close) { margin: 0; }
.shell .ui-dialog-close .ui-icon,
.kit-dialog-static .ui-dialog-close .ui-icon {
  width: 16px;
  height: 16px;
}
.shell .ui-dialog-body,
.kit-dialog-static .ui-dialog-body {
  padding: 20px 48px 20px 20px;
}
.shell.theme-dark .ui-alert,
.shell.theme-dark .sg-toast,
.shell.theme-dark .ui-popover-panel,
.shell.theme-dark .ui-dropdown-panel {
  background: var(--card);
  border-color: var(--border);
}
.shell.theme-dark .ui-alert-info { background: color-mix(in srgb, var(--brand) 16%, var(--card)); }
.shell.theme-dark .ui-alert-success,
.shell.theme-dark .sg-toast-success { background: color-mix(in srgb, var(--green, #00b42a) 16%, var(--card)); }
.shell.theme-dark .ui-alert-warning,
.shell.theme-dark .sg-toast-warning { background: color-mix(in srgb, var(--orange, #ff7d00) 16%, var(--card)); }
.shell.theme-dark .ui-alert-danger,
.shell.theme-dark .ui-alert-destructive,
.shell.theme-dark .sg-toast-danger { background: color-mix(in srgb, var(--red, #f53f3f) 16%, var(--card)); }

.shell .sg-hub-card {
  min-height: 0;
  padding: 0 0 16px;
  border: 1px solid var(--sg-line);
  border-radius: 8px;
  background: #fff;
  box-shadow: none;
}
.shell .sg-hub-head,
.shell .sg-hub-card .sg-share-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 56px;
  padding: 16px 24px 8px;
}
.shell .sg-hub-head h2,
.shell .sg-hub-card .sg-share-head h2 {
  margin: 0;
  color: rgba(0, 0, 0, .88);
  font-size: 16px;
  font-weight: 600;
  line-height: 24px;
}
.shell .sg-hub-actions,
.shell .dash-hub-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.shell .sg-hub-badge,
.shell .dash-hub-badge {
  display: inline-flex;
  align-items: center;
  height: 24px;
  padding: 0 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 500;
  white-space: nowrap;
}
.shell .sg-hub-badge--success,
.shell .dash-hub-badge--success { color: var(--green); background: var(--green-soft); }
.shell .sg-hub-badge--warning,
.shell .dash-hub-badge--warning { color: var(--orange); background: var(--orange-soft); }
.shell .sg-hub-badge--danger,
.shell .dash-hub-badge--danger { color: var(--red); background: var(--red-soft, #ffece8); }
.shell .sg-hub-badge--neutral,
.shell .dash-hub-badge--neutral { color: var(--sg-subtle); background: var(--sg-fill-2); }
.shell .sg-hub-sync,
.shell .dash-hub-sync {
  display: inline-flex;
  align-items: center;
  height: 32px;
  padding: 0 12px;
  border: 1px solid var(--sg-line);
  border-radius: 6px;
  background: #fff;
  color: var(--brand);
  font-size: 14px;
  line-height: 22px;
  text-decoration: none;
  cursor: pointer;
  font-family: inherit;
}
.shell .sg-hub-sync:hover,
.shell .dash-hub-sync:hover { border-color: var(--brand); }
.shell .sg-hub-body,
.shell .sg-hub-card .sg-share-body { padding: 8px 24px 8px; }
.shell .sg-hub-hint,
.shell .dash-hub-hint {
  margin: 0 0 12px;
  padding: 10px 12px;
  border: 1px solid var(--sg-line);
  border-radius: 6px;
  background: var(--sg-fill-2);
  color: rgba(0, 0, 0, .65);
  font-size: 13px;
  line-height: 22px;
}
.shell .sg-hub-list,
.shell .dash-hub-list { margin: 0; padding: 0; }
.shell .sg-hub-row,
.shell .dash-hub-row {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr);
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid #f0f0f0;
}
.shell .sg-hub-row:last-child,
.shell .dash-hub-row:last-child { border-bottom: 0; }
.shell .sg-hub-row dt,
.shell .dash-hub-row dt {
  margin: 0;
  color: rgba(0, 0, 0, .45);
  font-size: 13px;
  line-height: 22px;
}
.shell .sg-hub-row dd,
.shell .dash-hub-row dd {
  margin: 0;
  color: rgba(0, 0, 0, .88);
  font-size: 13px;
  font-weight: 600;
  line-height: 22px;
  word-break: break-all;
}
.shell .sg-hub-row dd.is-success,
.shell .dash-hub-row dd.is-success { color: var(--green); }
.shell .sg-hub-row dd.is-warning,
.shell .dash-hub-row dd.is-warning { color: var(--orange); }
.shell.theme-dark .sg-hub-card { background: var(--card); border-color: var(--border); }
.shell.theme-dark .sg-hub-hint,
.shell.theme-dark .dash-hub-hint { background: color-mix(in srgb, var(--foreground) 6%, var(--card)); color: var(--muted); }
.shell .ui-icon--14 { width: 14px; height: 14px; }
.shell .ui-icon--16 { width: 16px; height: 16px; }
.shell .ui-icon--20 { width: 20px; height: 20px; }

/* 暗色细节：去掉总览/列表/浮层里的白底死块与硬编码浅色字。 */
.shell.theme-dark,
.theme-dark {
  color-scheme: dark;
}
.shell.theme-dark input[type="date"],
.shell.theme-dark input[type="datetime-local"],
.shell.theme-dark input[type="time"],
.theme-dark input[type="date"],
.theme-dark input[type="datetime-local"],
.theme-dark input[type="time"] {
  color-scheme: dark;
}
.shell.theme-dark .dash-refresh {
  background: color-mix(in srgb, var(--foreground) 6%, var(--card));
  border-color: rgba(255, 255, 255, .16);
  color: rgba(255, 255, 255, .88);
}
.shell.theme-dark .dash-refresh:hover {
  border-color: color-mix(in srgb, var(--brand) 40%, rgba(255, 255, 255, .16));
  color: #fff;
}
.shell.theme-dark .sg-sales-dates {
  color: rgba(255, 255, 255, .65);
  background: color-mix(in srgb, var(--foreground) 6%, var(--card));
  border-color: rgba(255, 255, 255, .16);
}
.shell.theme-dark .sg-sales-dates i,
.shell.theme-dark .sg-sales-dates .ui-icon {
  color: rgba(255, 255, 255, .35);
}
.shell.theme-dark .sg-sales-ranges a {
  color: rgba(255, 255, 255, .65);
}
.shell.theme-dark .sg-sales-ranges a.is-active,
.shell.theme-dark .sg-line-tabs a.is-active {
  color: var(--brand);
}
.shell.theme-dark .sg-line-tabs a {
  color: rgba(255, 255, 255, .65);
}
.shell.theme-dark .sg-hot-card,
.shell.theme-dark .sg-share-card {
  color: rgba(255, 255, 255, .88);
}
.shell.theme-dark .sg-hot-head h2,
.shell.theme-dark .sg-share-head h2,
.shell.theme-dark .sg-hot-kpi-value strong,
.shell.theme-dark .sg-donut-legend strong,
.shell.theme-dark .sg-share-tabs a.is-active,
.shell.theme-dark .sg-share-tabs span.is-active,
.shell.theme-dark .sg-share-tabs a:hover,
.shell.theme-dark .sg-share-tabs span:hover {
  color: rgba(255, 255, 255, .88);
}
.shell.theme-dark .sg-hot-kpi span,
.shell.theme-dark .sg-share-tabs a,
.shell.theme-dark .sg-share-tabs span,
.shell.theme-dark .sg-hot-pager span.is-ellipsis,
.shell.theme-dark .sg-donut-legend em,
.shell.theme-dark .sg-mini-table td.muted {
  color: rgba(255, 255, 255, .45);
}
.shell.theme-dark .sg-hot-card .table-wrap,
.shell.theme-dark .sg-share-card .table-wrap,
.shell.theme-dark .sg-hot-card .sg-mini-table,
.shell.theme-dark .sg-share-card .sg-mini-table {
  background: transparent;
}
.shell.theme-dark .sg-hot-card .sg-mini-table thead th,
.shell.theme-dark .sg-share-card .sg-mini-table thead th,
.shell.theme-dark .list-table thead th {
  background: var(--sg-header);
  color: rgba(255, 255, 255, .65);
  border-bottom-color: rgba(255, 255, 255, .08);
}
.shell.theme-dark .sg-hot-card .sg-mini-table tbody td,
.shell.theme-dark .sg-share-card .sg-mini-table tbody td {
  background: transparent;
  color: rgba(255, 255, 255, .88);
  border-bottom-color: rgba(255, 255, 255, .08);
}
.shell.theme-dark .sg-hot-card .sg-mini-table tbody tr:hover td,
.shell.theme-dark .sg-share-card .sg-mini-table tbody tr:hover td,
.shell.theme-dark .list-table tbody tr:hover td {
  background: rgba(255, 255, 255, .04);
}
.shell.theme-dark .sg-sparkline-mass {
  fill: currentColor;
  fill-opacity: .14;
}
.shell.theme-dark .sg-sparkline-wash {
  opacity: .85;
}
.shell.theme-dark .sg-sparkline-base {
  stroke: rgba(255, 255, 255, .08);
}
.shell.theme-dark .sg-column-chart-y,
.shell.theme-dark .sg-column-chart figcaption,
.shell.theme-dark .sg-column-chart-axis {
  color: rgba(255, 255, 255, .45);
}
.shell.theme-dark .command-panel,
.shell.theme-dark .profile-panel,
.shell.theme-dark .mobile-nav-panel,
.shell.theme-dark .row-actions-panel,
.theme-dark .command-panel,
.theme-dark .profile-panel,
.theme-dark .mobile-nav-panel {
  background: var(--popover, var(--card));
  color: var(--popover-foreground, var(--card-foreground));
  border-color: var(--line);
}
.shell.theme-dark .ui-sheet-panel,
.theme-dark .ui-sheet-panel,
.shell.theme-dark .ui-dialog,
.theme-dark .ui-dialog {
  background: var(--card);
  color: var(--card-foreground);
  border-color: var(--line);
}
.shell.theme-dark .button-secondary,
.shell.theme-dark .dash-refresh,
.shell.theme-dark .sg-hub-sync,
.shell.theme-dark .dash-hub-sync {
  background: color-mix(in srgb, var(--foreground) 6%, var(--card));
}
.shell.theme-dark .sg-hub-row,
.shell.theme-dark .dash-hub-row { border-bottom-color: rgba(255, 255, 255, .08); }
.shell.theme-dark .sg-hub-row dt,
.shell.theme-dark .dash-hub-row dt { color: rgba(255, 255, 255, .45); }
.shell.theme-dark .sg-hub-row dd,
.shell.theme-dark .dash-hub-row dd { color: rgba(255, 255, 255, .88); }
.shell.theme-dark .sg-chart-compare li {
  color: rgba(255, 255, 255, .88);
}
.shell.theme-dark .sg-form-footer .button-secondary,
.shell.theme-dark .sg-advanced-form > .form-actions .button-secondary,
.shell.theme-dark .form-actions .button-secondary,
.shell.theme-dark .button-outline,
.shell.theme-dark a.button-secondary,
.shell.theme-dark a.button-outline {
  color: rgba(255, 255, 255, .88);
  background: color-mix(in srgb, var(--foreground) 6%, var(--card));
  border-color: rgba(255, 255, 255, .16);
}
.shell.theme-dark .content-page-head--form .lead {
  color: rgba(255, 255, 255, .45);
}

/* 分组导航：选中/展开不改字号。叶子才填 --brand-soft。 */
.shell .nav-group-summary,
.shell .nav-group[open] > .nav-group-summary,
.shell .nav-group.is-active > .nav-group-summary {
  font-size: 14px;
  font-weight: 500;
  line-height: 22px;
}

/* 官网区块：列表+弹窗、勾选、上传、Quill。对照 /showcase/components#kit-cms */
.shell .sg-form-block > .form-section-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.shell .form-section-actions {
  display: flex;
  flex: 0 0 auto;
  gap: 8px;
}
.shell .content-page-head--form .content-page-head-title-row .content-page-head-actions {
  flex: 0 0 auto;
  margin-left: auto;
}
.shell .page-repeat { display: grid; gap: 0; }
.shell .page-repeat-row {
  display: block;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}
.shell .page-repeat-item {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 12px;
  min-height: 48px;
  padding: 0 4px;
  border-bottom: 1px solid #f0f0f0;
}
.shell .page-repeat-item .page-repeat-meta {
  color: rgba(0, 0, 0, .45);
  font-size: 12px;
  line-height: 22px;
  white-space: nowrap;
}
.shell .page-repeat-item .list-row-actions {
  grid-column: -1;
  justify-self: end;
  min-width: 0;
}
.shell .page-repeat-row:last-of-type .page-repeat-item { border-bottom: 0; }
.shell .page-repeat-item:hover { background: #fafafa; }
.shell .page-repeat-index {
  color: rgba(0, 0, 0, .45);
  font-size: 12px;
  font-variant-numeric: tabular-nums;
  font-weight: 500;
  line-height: 22px;
}
.shell .page-repeat-title {
  min-width: 0;
  overflow: hidden;
  color: rgba(0, 0, 0, .88);
  font-size: 14px;
  line-height: 22px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.shell .page-row-dialog { width: min(560px, calc(100vw - 32px)); }
.shell .page-row-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 12px 16px;
}
.shell .page-row-form .field-full,
.shell .page-row-form .page-upload { grid-column: 1 / -1; }
.shell .page-pick-field { display: grid; gap: 6px; }
.shell .page-pick-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 32px;
  padding: 0 12px;
  border: 1px solid var(--sg-line-control, #dcdfe6);
  border-radius: 6px;
  background: #fff;
  color: rgba(0, 0, 0, .88);
  font-size: 14px;
  line-height: 22px;
  cursor: pointer;
}
.shell .page-pick-trigger:hover { border-color: var(--brand); }
.shell .page-pick-trigger:disabled { cursor: not-allowed; color: rgba(0, 0, 0, .25); }
.shell .page-pick-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.shell .page-pick-chips:empty { display: none; }
.shell .page-pick-chip {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 8px;
  border-radius: 4px;
  background: var(--brand-soft);
  color: var(--brand);
  font-size: 12px;
  line-height: 22px;
}
.shell .page-pick-search .input { width: 100%; height: 32px; }
.shell .page-pick-list {
  display: grid;
  gap: 4px;
  max-height: 280px;
  margin-top: 12px;
  overflow: auto;
}
.shell .page-pick-list label {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 32px;
  padding: 4px 10px;
  border-radius: 6px;
}
.shell .page-pick-list label:hover { background: var(--brand-soft); }
.shell .page-upload-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.shell .page-upload-preview {
  width: 72px;
  height: 48px;
  object-fit: cover;
  border: 1px solid var(--sg-line);
  border-radius: 6px;
}
.shell .page-file-link {
  display: inline-block;
  margin: 0 0 8px;
  color: var(--brand);
  font-size: 14px;
  line-height: 22px;
}
.shell .sg-rich-text { grid-column: 1 / -1; }
.shell .sg-quill.ql-container {
  min-height: 220px;
  font-family: var(--sg-font, inherit);
  font-size: 14px;
  line-height: 22px;
  border-color: var(--sg-line);
  border-radius: 0 0 6px 6px;
}
.shell .sg-quill .ql-editor {
  min-height: 220px;
  max-height: 420px;
  color: rgba(0, 0, 0, .88);
}
.shell .ql-toolbar.ql-snow {
  border-color: var(--sg-line);
  border-radius: 6px 6px 0 0;
  background: #fafafa;
  padding: 6px 8px;
}
.shell .ql-snow.ql-toolbar button { width: 28px; height: 28px; }
.shell .ql-snow .ql-stroke { stroke: rgba(0, 0, 0, .65); }
.shell .ql-snow .ql-fill { fill: rgba(0, 0, 0, .65); }
.shell .ql-snow.ql-toolbar button:hover,
.shell .ql-snow.ql-toolbar button.ql-active { background: var(--brand-soft); }
.shell .ql-snow.ql-toolbar button.ql-active .ql-stroke { stroke: var(--brand); }
.shell .ql-snow.ql-toolbar button.ql-active .ql-fill { fill: var(--brand); }
.shell .ql-snow a { color: var(--brand); }
.shell.theme-dark .page-repeat-item:hover {
  background: color-mix(in srgb, var(--foreground) 6%, transparent);
}
.shell.theme-dark .sg-quill.ql-container,
.shell.theme-dark .ql-toolbar.ql-snow {
  background: var(--card, #141414);
  border-color: var(--sg-line);
}
.shell.theme-dark .sg-quill .ql-editor { color: rgba(255, 255, 255, .88); }
.shell.theme-dark .ql-snow .ql-stroke { stroke: rgba(255, 255, 255, .65); }
.shell.theme-dark .ql-snow .ql-fill { fill: rgba(255, 255, 255, .65); }

.shell .list-card { overflow: visible; }
.shell .list-card-head-actions .list-table-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-left: 0;
}
.shell .list-card-head-actions .ui-popover-panel {
  left: auto;
  right: 0;
  z-index: 40;
}
.shell .sg-column-chart-line {
  fill: none;
  stroke: var(--brand);
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}
.shell .sg-column-chart-area {
  stroke: none;
  fill: var(--brand);
  fill-opacity: .14;
}
.shell .sg-column-chart figcaption .is-current {
  color: rgba(0, 0, 0, .88);
  font-weight: 500;
}
.shell .sg-column-chart figcaption i.is-tertiary,
.shell .sg-column-float i.is-tertiary {
  background: color-mix(in srgb, var(--brand) 16%, #fff);
}
.shell .sg-column-chart-plot-wrap { overflow: hidden; }
.shell.theme-dark .sg-column-chart figcaption .is-current { color: rgba(255, 255, 255, .88); }

.shell .list-row-actions {
  display: inline-flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-end;
  gap: 2px;
  white-space: nowrap;
}
.shell .list-row-actions .list-row-action {
  color: var(--brand);
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
  text-decoration: none;
  background: none;
  border: 0;
  padding: 0 8px;
  height: 32px;
  cursor: pointer;
}
.shell .list-row-actions .list-row-action:hover { color: var(--brand-dark, var(--brand)); }
.shell .list-row-actions .is-danger { color: var(--red, #f5222d); }
.shell.theme-dark .page-repeat-item .page-repeat-meta { color: rgba(255, 255, 255, .45); }



/* Shadcn-admin 扩展层：模板库页面、聊天、认证预览与补充组件 */

.team-switcher-panel { display: none; }

.ui-badge-default { color: var(--primary-foreground); border-color: transparent; background: var(--primary); }

.showcase-section .ui-alert-inline { display: inline-flex; align-items: center; }
.kit-overlay-stage {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 240px;
  padding: 20px;
  overflow: visible;
  border: 1px solid var(--sg-line, #ebeef5);
  border-radius: 8px;
  background: var(--sg-fill, #fafafa);
}
.kit-overlay-stage-mask {
  position: absolute;
  inset: 0;
  background: var(--sg-overlay, rgba(0, 0, 0, .45));
  pointer-events: none;
}
.kit-dialog-static,
.shell .ui-dialog.kit-dialog-static {
  position: relative;
  z-index: 1;
  display: block;
  width: min(360px, 100%);
  max-width: 100%;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.showcase-section h2 { margin-bottom: 6px; font-size: 18px; }
.showcase-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.showcase-row-start { align-items: flex-start; }
.showcase-skeletons { align-items: center; }
.showcase-skeletons .ui-skeleton-block { flex: 1; }

.bulk-actions-bar { display: none; align-items: center; gap: 10px; margin-bottom: 12px; padding: 10px 12px; border: 1px solid var(--border); border-radius: 8px; background: var(--secondary); font-size: 13px; }
.bulk-actions-bar.is-visible { display: flex; }

.badge-todo, .badge-backlog { border-color: #dce2ea; color: #64748b; background: #f8fafc; }
.badge-in-progress { border-color: #bfdbfe; color: #1d4ed8; background: #eff6ff; }
.badge-done { border-color: #b7e5d2; color: var(--green); background: var(--green-soft); }
.badge-canceled { border-color: #fecaca; color: var(--red); background: var(--red-soft); }

.chat-layout { display: grid; grid-template-columns: minmax(220px, 280px) minmax(0, 1fr); min-height: 560px; overflow: hidden; }
.chat-sidebar { display: flex; flex-direction: column; gap: 10px; padding: 14px; border-right: 1px solid var(--line); }
.chat-search .search-field { width: 100%; }
.chat-list { display: grid; gap: 4px; max-height: 480px; overflow-y: auto; }
.chat-list-item { display: flex; align-items: center; gap: 10px; padding: 10px; border-radius: 8px; color: var(--foreground); }
.chat-list-item:hover { background: var(--accent); }
.chat-list-item.is-active { background: var(--brand-soft); }
.chat-list-copy { min-width: 0; }
.chat-list-copy strong, .chat-list-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.chat-list-copy small { margin-top: 2px; color: var(--muted-foreground); font-size: 12px; }
.chat-thread { display: flex; min-width: 0; flex-direction: column; }
.chat-thread-head { padding: 14px 16px; border-bottom: 1px solid var(--line); }
.chat-thread-head strong { display: block; }
.chat-thread-head small { color: var(--muted-foreground); font-size: 12px; }
.chat-messages { flex: 1; padding: 16px; display: flex; flex-direction: column; gap: 10px; overflow-y: auto; }
.chat-message { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; max-width: 78%; }
.chat-message.is-self { align-self: flex-end; align-items: flex-end; }
.chat-bubble { padding: 10px 12px; border-radius: 12px; background: var(--secondary); font-size: 14px; line-height: 1.45; }
.chat-message.is-self .chat-bubble { color: #fff; background: var(--primary); }
.chat-message time { color: var(--muted-foreground); font-size: 11px; }
.chat-compose { display: flex; gap: 8px; padding: 12px 16px 16px; border-top: 1px solid var(--line); }

.coming-soon-page { min-height: 420px; padding: 48px 24px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; text-align: center; }
.coming-soon-icon { width: 72px; height: 72px; display: grid; place-items: center; border-radius: 16px; color: var(--muted-foreground); background: var(--secondary); }
.coming-soon-icon .ui-icon { width: 36px; height: 36px; }

.auth-preview-page { min-height: 100vh; margin: 0; display: grid; place-items: center; background: var(--soft); }
.auth-preview-shell { width: min(480px, calc(100vw - 32px)); padding: 24px 0; }
.auth-preview-shell-centered { width: min(420px, calc(100vw - 32px)); }
.auth-preview-card { width: 100%; }

.otp-form { display: grid; gap: 16px; }
.otp-inputs { display: flex; justify-content: center; gap: 8px; }
.otp-cell { width: 42px; height: 42px; padding: 0; text-align: center; font-size: 18px; font-weight: 600; }

.scroll-area { overflow: auto; scrollbar-width: thin; scrollbar-color: var(--line) transparent; }

.ui-tooltip-host { position: relative; display: inline-flex; }
.ui-tooltip-host[data-tooltip]::after { content: attr(data-tooltip); position: absolute; z-index: 60; bottom: calc(100% + 6px); left: 50%; transform: translate(-50%, 4px); padding: 6px 10px; border-radius: 6px; color: #fff; background: #121314; font-size: 12px; line-height: 18px; white-space: nowrap; visibility: hidden; pointer-events: none; }
.ui-tooltip-host:hover::after, .ui-tooltip-host:focus-within::after, .ui-tooltip-host.is-demo::after { visibility: visible; transform: translate(-50%, 0); }

.ui-popover { position: relative; display: inline-block; }
.ui-popover-panel { position: absolute; z-index: 45; top: calc(100% + 6px); left: 0; min-width: 220px; padding: 12px; border: 1px solid var(--sg-line-soft, #e5e6eb); border-radius: 6px; background: var(--popover); box-shadow: 0 2px 5px rgba(0, 0, 0, .1); }

.ui-calendar { display: grid; gap: 8px; max-width: 320px; }
.ui-calendar-head { display: flex; align-items: center; justify-content: space-between; font-size: 14px; font-weight: 600; }
.ui-calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.ui-calendar-grid span { height: 34px; display: grid; place-items: center; border-radius: 6px; font-size: 13px; }
.ui-calendar-grid .is-muted { color: var(--muted-foreground); }
.ui-calendar-grid .is-today { color: var(--primary); background: var(--brand-soft); font-weight: 600; }

.ui-collapsible > summary { cursor: pointer; font-weight: 600; }
.ui-collapsible-panel { margin-top: 8px; padding-left: 12px; border-left: 2px solid var(--line); color: var(--muted-foreground); font-size: 14px; }

.theme-dark .nav-group-summary, .theme-dark .nav-group-items a { color: #cbd5e1; }
.theme-dark .team-switcher-menu, .theme-dark .ui-alert-dialog-panel, .theme-dark .ui-popover-panel { border-color: var(--line); background: #111c2f; }
.theme-dark .chat-sidebar, .theme-dark .chat-thread-head, .theme-dark .chat-compose { border-color: var(--line); }
.theme-dark .chat-bubble { background: #172033; }
.theme-dark .chat-message.is-self .chat-bubble { background: #2563eb; }

.ui-sheet-drawer { position: relative; display: inline-block; }
.ui-sheet-drawer > summary { list-style: none; cursor: pointer; }
.ui-sheet-drawer > summary::-webkit-details-marker { display: none; }
.ui-sheet-overlay { display: none; position: fixed; inset: 0; z-index: 70; background: var(--sg-overlay, rgba(0, 0, 0, .45)); }
.ui-sheet-panel { position: fixed; z-index: 71; top: 0; right: 0; width: min(480px, 100vw); height: 100vh; display: flex; flex-direction: column; border-left: 1px solid var(--sg-line); background: #fff; box-shadow: none; transform: translateX(100%); transition: transform .18s var(--ease-standard, cubic-bezier(.2, .8, .2, 1)); }
.ui-sheet-drawer[open] .ui-sheet-overlay { display: block; }
.ui-sheet-drawer[open] .ui-sheet-panel { transform: translateX(0); }

.apps-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 14px; }
.app-card { display: flex; flex-direction: column; gap: 10px; padding: 16px; border: 1px solid var(--border); border-radius: 10px; background: var(--card); }
.app-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.app-mark { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 10px; color: var(--brand-dark); background: var(--brand-soft); font-size: 14px; font-weight: 700; }
.app-card p { margin: 0; color: var(--muted-foreground); font-size: 13px; line-height: 1.45; }
.app-card-actions { margin-top: auto; display: flex; gap: 8px; }

.column-toggle-panel { display: grid; gap: 6px; min-width: 180px; }
.column-toggle-panel label { display: flex; align-items: center; gap: 8px; font-size: 13px; }

.page-size-select { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--muted-foreground); }
.page-size-select select { width: auto; min-width: 72px; }

.showcase-code { margin-top: 8px; padding: 10px 12px; border-radius: 8px; background: var(--secondary); font-family: var(--sg-font-code, Consolas, Menlo, monospace); font-size: 12px; color: var(--muted-foreground); overflow-x: auto; }

.card-head-inline { padding-bottom: 0; border-bottom: 0; }

@media (max-width: 1180px) {
  .team-switcher-menu { top: calc(100% + 8px); left: 8px; right: 8px; width: auto; }
}

.shell .content.content--kit {
  max-width: none;
  box-sizing: border-box;
  padding: 16px;
}
.kit-shell { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 16px; align-items: start; }
.kit-nav { position: sticky; top: 0; align-self: start; display: grid; gap: 2px; margin: 0; padding: 8px; border: 1px solid var(--sg-line); border-radius: 8px; background: #fff; }
.kit-nav-group { margin: 0; }
.kit-nav-summary { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 40px; padding: 0 10px; border-radius: 8px; color: #121314; font-size: 14px; font-weight: 600; cursor: pointer; list-style: none; }
.kit-nav-summary::-webkit-details-marker { display: none; }
.kit-nav-summary:hover { background: #f7f8fa; }
.kit-nav-chevron { display: grid; place-items: center; width: 16px; height: 16px; color: #909399; transform: rotate(-90deg); }
.kit-nav-chevron .ui-icon { width: 16px; height: 16px; }
.kit-nav-group[open] > .kit-nav-summary .kit-nav-chevron { transform: rotate(0deg); }
@media (prefers-reduced-motion: reduce) {
  .kit-nav-chevron,
  .kit-nav-group[open] > .kit-nav-summary .kit-nav-chevron { transform: none; }
}
.kit-nav-items { display: grid; gap: 2px; padding: 0 0 4px; }
.kit-nav-items a { display: flex; align-items: center; min-height: 36px; padding: 8px 10px 8px 20px; border-radius: 8px; color: #5c5c5c; font-size: 14px; font-weight: 400; }
.kit-nav-items a:hover { background: #f7f8fa; color: #121314; }
.kit-nav-demo { max-width: 280px; padding: 8px; border: 1px solid var(--sg-line); border-radius: 8px; background: #f7f8fa; }
.kit-nav-demo-rail { padding: 0; background: transparent; }
.kit-nav-demo .nav-group-items { padding-left: 32px; border-left: 0; margin-left: 0; }
.kit-nav-demo .nav-group-chevron { transform: rotate(-90deg); }
.kit-nav-demo .nav-group[open] > .nav-group-summary .nav-group-chevron { transform: rotate(0deg); }
.kit-main { display: grid; gap: 16px; min-width: 0; }
.kit-main > .showcase-section.card,
.kit-main > .showcase-section.card.section-gap {
  display: grid;
  align-content: start;
  gap: 16px;
  margin: 0;
  padding: 16px 20px;
  border: 1px solid var(--sg-line);
  border-radius: 8px;
  background: #fff;
  box-shadow: none;
}
.kit-main > .showcase-section.kit-intro { gap: 12px; }
.kit-main .list-page-header,
.kit-main .page-head {
  display: block;
  margin: 0;
  padding: 0;
  border: 0;
}
.shell .kit-main .showcase-section > h1 { margin: 0; font-size: 20px; font-weight: 600; letter-spacing: 0; line-height: 28px; }
.shell .kit-main .showcase-section > h2 { margin: 0; font-size: 16px; font-weight: 600; line-height: 24px; }
.kit-main .card-description { margin: 0; color: #5c5c5c; font-size: 14px; line-height: 22px; }
.kit-main .lead { margin: 0; color: #5c5c5c; font-size: 14px; line-height: 22px; }
.kit-en { margin: 0; color: #909399; font-size: 12px; line-height: 18px; font-family: var(--sg-font-code, Consolas, Menlo, monospace); }
.kit-main h2 + .kit-en { margin-top: -10px; }
.kit-main h2 + .card-description,
.kit-main .kit-en + .card-description { margin-top: -8px; }
.kit-main .kit-stack { display: grid; gap: 16px; min-width: 0; flex: 1 1 240px; }
.kit-main .showcase-section .list-page-stack,
.kit-main .showcase-section .list-card,
.kit-main .showcase-section .form-grid,
.kit-main .showcase-row,
.kit-main .sg-swatches,
.kit-main .sg-type-sample,
.kit-main .sg-spec-list,
.kit-main .kit-nav-demo,
.kit-main .kit-overlay-stage,
.kit-main .sg-chart-grid,
.kit-main .sg-sales-card,
.kit-main .sg-analysis-lower,
.kit-main .kit-hub-demo,
.kit-main .kit-account-demo,
.kit-main .sg-hub-card,
.kit-main .kit-icon-grid,
.kit-main .kit-icon-sizes,
.kit-main .ui-alert,
.kit-main .kit-alert-stack,
.kit-main .kit-toast-demo,
.kit-main .kit-float-grid,
.kit-main .kit-overlay-grid,
.kit-main .ui-tabs,
.kit-main .ui-breadcrumb,
.kit-main .definition,
.kit-main .ui-timeline,
.kit-main .ui-accordion,
.kit-main .ui-aspect-ratio,
.kit-main .ui-rich-text,
.kit-main .ui-transfer,
.kit-main .ui-stepper { margin: 0; }
.shell .kit-main .content-page-head:not(.list-query-card),
.shell .kit-main .content-page-head--banner:not(.list-query-card),
.shell .kit-main .content-page-head--banner:not(.page-head-detail):not(.list-query-card) {
  margin: 0;
  padding: 0;
  min-height: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.kit-main .kit-list-stack {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
}
.shell .kit-main .kit-list-stack > .list-query-card {
  margin: 0;
  padding: 24px;
  min-height: 0;
  border: 1px solid var(--sg-line);
  border-radius: 8px;
  background: #fff;
  box-shadow: none;
}
.shell .kit-main .kit-list-stack > .list-card {
  margin: 0;
  padding: 0 24px 16px;
  border: 1px solid var(--sg-line);
  border-radius: 8px;
  background: #fff;
  box-shadow: none;
  overflow: visible;
}
.kit-nav-demo .kit-brand-lockup {
  margin: 0 0 8px;
  padding: 0;
  background: transparent;
  box-shadow: none;
}
.kit-nav-demo .team-switcher-trigger-static {
  display: flex;
  align-items: stretch;
  height: 40px;
  padding: 4px 8px;
  box-sizing: border-box;
}
.kit-nav-demo .team-switcher-logo--brand {
  height: auto;
}
.shell .kit-main .list-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 64px;
  padding: 16px 8px;
  box-sizing: border-box;
}
.shell .kit-main .list-card-head h1 {
  margin: 0;
  font-size: 16px;
  font-weight: 600;
  line-height: 24px;
  color: rgba(0, 0, 0, .88);
}
.shell .kit-main .kit-list-stack .list-table thead th {
  height: 47px;
  padding: 12px 8px;
  color: rgba(0, 0, 0, .88);
  background: #fafafa;
  font: 600 14px/22px var(--sg-font);
  border-bottom: 1px solid #f0f0f0;
}
.shell .kit-main .kit-list-stack .list-table tbody td {
  height: 47px;
  padding: 12px 8px;
  color: rgba(0, 0, 0, .88);
  background: transparent;
  font: 400 14px/22px var(--sg-font);
  border-bottom: 1px solid #f0f0f0;
}
.kit-main .kit-hub-demo { max-width: 560px; }
.kit-main .kit-account-demo .sg-account-card { min-height: 280px; max-width: 100%; }
.kit-main #kit-cms .content-page-head { margin-bottom: 16px; }
.kit-main #kit-cms .sg-form-block { grid-template-columns: minmax(0, 1fr); }
.kit-main .kit-icon-sizes {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 24px;
  align-items: center;
  color: #5c5c5c;
  font-size: 13px;
  line-height: 22px;
}
.kit-main .kit-icon-sizes span { display: inline-flex; align-items: center; gap: 8px; }
.kit-main .kit-icon-group-title {
  margin: 8px 0 0;
  font-size: 14px;
  font-weight: 600;
  line-height: 22px;
  color: rgba(0, 0, 0, .88);
}
.kit-main .kit-icon-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(112px, 1fr));
  gap: 8px;
}
.kit-main .kit-icon-cell {
  display: grid;
  justify-items: center;
  gap: 6px;
  padding: 12px 8px 10px;
  border: 1px solid var(--sg-line);
  border-radius: 8px;
  background: #fff;
}
.kit-main .kit-icon-cell .ui-icon { color: rgba(0, 0, 0, .88); }
.kit-main .kit-icon-cell code {
  font-size: 12px;
  line-height: 18px;
  color: #5c5c5c;
}
.kit-main .kit-icon-cell span {
  font-size: 12px;
  line-height: 18px;
  color: #909399;
  text-align: center;
}
.shell .kit-main .sg-hub-row dd,
.shell .kit-main .dash-hub-row dd { font-weight: 600; }
.kit-main .form-grid { gap: 16px; }
.kit-main .sg-swatches { gap: 16px; }
.kit-main .sg-type-sample { padding: 16px 20px; border-radius: 8px; }
.kit-main .showcase-row { gap: 8px; }
.kit-main .showcase-row-start {
  display: grid;
  grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
  align-items: start;
  gap: 24px;
}
.kit-main .otp-form { display: grid; gap: 8px; justify-items: start; }
.kit-main .otp-form .otp-inputs { order: 2; }
.kit-main .otp-form .muted { order: 1; margin: 0; }
.kit-main .sg-chart-card-footer { flex-wrap: wrap; overflow: visible; }
.kit-main .showcase-row > .ui-alert-inline {
  display: inline-flex;
  width: auto;
  flex: 0 0 auto;
}
.kit-main .showcase-row > .ui-sheet-drawer,
.kit-main .showcase-row > .ui-collapsible {
  width: auto;
  min-width: 0;
  flex: 0 0 auto;
}
.shell .kit-main .ui-collapsible { min-width: 0; padding: 0 12px; }
.kit-main .sg-sales-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(200px, 240px);
}
.kit-alert-stack,
.kit-toast-demo { display: grid; gap: 8px; }
.kit-toast-demo .sg-toast-stack { position: static; width: min(360px, 100%); margin: 0; pointer-events: auto; }
.kit-float-grid,
.kit-overlay-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
.kit-float-stage {
  display: grid;
  align-content: start;
  gap: 12px;
  min-height: 168px;
  padding: 16px;
  border: 1px solid var(--sg-line);
  border-radius: 8px;
  background: #fafafa;
}
.kit-float-stage .ui-dropdown-panel,
.kit-float-stage .ui-popover-panel {
  position: static;
  display: grid;
  margin-top: 8px;
  border-radius: 6px;
  box-shadow: 0 2px 5px rgba(0, 0, 0, .1);
}
.kit-overlay-stage { min-height: 248px; overflow: visible; }
.kit-confirm-static {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: min(360px, 100%);
  padding: 20px;
  box-sizing: border-box;
}
.kit-main .bulk-actions-dock.is-demo { margin: 0; }
.theme-dark .kit-nav,
.theme-dark .kit-nav-demo,
.theme-dark .kit-main .showcase-section.card { background: var(--card); border-color: var(--border); }
.theme-dark .kit-nav-demo { background: color-mix(in srgb, var(--foreground) 4%, var(--card)); }
@media (max-width: 960px) {
  .kit-shell { grid-template-columns: 1fr; }
  .kit-nav { position: static; }
}
@media (max-width: 900px) {
  .chat-layout { grid-template-columns: 1fr; }
  .chat-sidebar { border-right: 0; border-bottom: 1px solid var(--line); }
  .settings-layout { grid-template-columns: 1fr; }
  .config-drawer-panel { right: -8px; }
}

:root,.theme-light{--brand:#18181b;--brand-dark:#09090b;--brand-soft:#f4f4f5;--primary:#18181b;--ring:#18181b;--sidebar-primary:#18181b;--sidebar-primary-foreground:#fff;--chart-1:#18181b;--chart-2:#71717a;}
.theme-dark,.shell.theme-dark{--brand:#18181b;--brand-dark:#09090b;--brand-soft:color-mix(in srgb,#18181b 28%,#0f172a);--primary:#18181b;--ring:#18181b;--sidebar-primary:#18181b;--sidebar-primary-foreground:#fff;--chart-1:#18181b;--chart-2:#71717a;}
