:root {
  /* ── Colors (Warm Neutral — Claude Desktop aligned: cream surfaces, terracotta accent) ── */
  --color-bg: #faf9f5;
  --color-sidebar: #f5f4ee;
  --color-card: #ffffff;
  --color-border: #E7E7E7;
  --color-border-strong: #d4d4d4;
  --text-main: #1f1e1d;
  --text-muted: #6e6b63;
  --text-subtle: #a09d94;
  --primary: #1f1e1d;
  --primary-hover: #44423c;
  --primary-accent: #c96442;
  --primary-accent-hover: #b05730;
  --secondary: #f0eee6;
  --secondary-hover: #e8e5d9;
  --surface-muted: #f7f6f1;
  --glass-surface: rgba(255, 255, 255, 0.6);
  --accent: #2e7d4f;
  --warning: #b45309;
  --color-success: #2e7d4f;
  --color-warning: #b45309;
  --color-danger: #d13415;

  /* ── Typography (Geist family — clean geometric, tool-grade) ── */
  --font-system-sans: 'Geist', -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  --font-system-display: 'Geist', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-system-mono: 'Geist Mono', ui-monospace, 'SF Mono', 'Cascadia Code', monospace;
  --font-serif-sc: "Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", "SimSun", serif;
  --font-sans: var(--font-system-sans);
  --font-display: var(--font-system-display);
  --font-mono: var(--font-system-mono);
  --font-numeric: var(--font-mono);

  /* Size scale — tight for density, generous for display */
  --text-display: 28px;
  --text-page-title: 22px;
  --text-section-title: 16px;
  --text-body: 14px;
  --text-control: 13px;
  --text-caption: 12px;
  --text-label: 11px;

  /* Weight scale — includes 800 for display impact */
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;
  --weight-heavy: 800;

  /* ── Radius (differentiated: outer > inner) ── */
  --radius-xs: 4px;
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 14px;
  --radius-xl: 20px;
  --radius-full: 999px;

  /* ── Shadows (tinted to match background hue, not pure black) ── */
  --shadow-xs: 0 1px 2px rgba(31, 30, 29, 0.04);
  --shadow-sm: 0 1px 3px rgba(31, 30, 29, 0.06), 0 1px 2px rgba(31, 30, 29, 0.04);
  --shadow-md: 0 4px 8px -2px rgba(31, 30, 29, 0.08), 0 2px 4px -2px rgba(31, 30, 29, 0.04);
  --shadow-lg: 0 12px 24px -4px rgba(31, 30, 29, 0.10), 0 4px 8px -4px rgba(31, 30, 29, 0.05);
  --shadow-hover: 0 8px 16px -4px rgba(31, 30, 29, 0.12), 0 2px 6px -2px rgba(31, 30, 29, 0.06);
  /* HAZ 主内容底板专用：比 md 更轻（约 80% 强度）+ blur 放大让边缘过渡更柔更自然（老板 2026-06-20 反馈「有点重、过渡不自然」）。独立 token，不被 09/dashboard 覆盖。 */
  --shadow-panel: 0 10px 30px -8px rgba(31, 30, 29, 0.08), 0 2px 8px -4px rgba(31, 30, 29, 0.04);

  /* ── Motion (spring-inspired for interactive, smooth for ambient) ── */
  --duration-fast: 0.12s;
  --duration-base: 0.2s;
  --duration-slow: 0.35s;
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);

  --workbench-max: 1440px;

  /* Required for tests */
  --bg-main: var(--color-bg);
  --bg-card: var(--color-card);
}

html[data-theme="dark"] {
  color-scheme: dark;
  --color-bg: #262624;
  --color-sidebar: #1f1e1d;
  --color-card: #30302e;
  --color-border: #3e3d39;
  --color-border-strong: #55534c;
  --text-main: #f0efea;
  --text-muted: #b8b5ad;
  --text-subtle: #87857c;
  --primary: #f0efea;
  --primary-hover: #d4d1c8;
  --primary-accent: #d97757;
  --primary-accent-hover: #e08b6d;
  --secondary: #393937;
  --secondary-hover: #45443f;
  --surface-muted: #2b2a28;
  --glass-surface: rgba(38, 38, 36, 0.72);
  --accent: #5fa97c;
  --warning: #e0a458;
  --color-success: #5fa97c;
  --color-warning: #e0a458;
  --color-danger: #e8704f;
  --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.3);
  --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.35), 0 1px 2px rgba(0, 0, 0, 0.2);
  --shadow-md: 0 4px 8px -2px rgba(0, 0, 0, 0.4), 0 2px 4px -2px rgba(0, 0, 0, 0.25);
  --shadow-lg: 0 12px 24px -4px rgba(0, 0, 0, 0.5), 0 4px 8px -4px rgba(0, 0, 0, 0.3);
  --shadow-hover: 0 8px 16px -4px rgba(0, 0, 0, 0.45), 0 2px 6px -2px rgba(0, 0, 0, 0.25);
  --shadow-panel: 0 16px 44px -10px rgba(0, 0, 0, 0.24), 0 4px 12px -6px rgba(0, 0, 0, 0.14);
  --bg-main: var(--color-bg);
  --bg-card: var(--color-card);
}

.glass-blob {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
  background: rgba(255, 255, 255, 0.6);
  backdrop-filter: blur(16px);
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  font-family: var(--font-sans);
  font-weight: var(--weight-regular);
  background: var(--color-bg);
  color: var(--text-main);
  height: 100vh;
  overflow: hidden;
  overflow-x: hidden;
  font-size: var(--text-body);
  line-height: 1.5;
  letter-spacing: 0;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-variant-numeric: tabular-nums;
}

button,
input,
textarea,
select {
  font-family: var(--font-sans);
  font-weight: var(--weight-regular);
}

p,
span,
label,
li,
td,
th,
small,
em,
time,
.btn,
.nav-item,
.filter-chip,
.status-pill,
.input-field,
.select-field,
.section-subtitle,
.muted,
.data-item-meta,
.detail-body,
.creator-line,
.list-row-meta,
.metric-label {
  font-weight: var(--weight-regular);
}

h1,
h2,
h3,
h4,
h5,
h6,
strong,
b,
.brand strong,
.section-title,
.module-heading h2,
.module-heading h3,
.module-heading h4,
.topbar h1,
.info-title,
.detail-title,
.list-row-title,
.data-item-title,
.metric-box span,
.profile-topbar h2,
.profile-context-head strong,
.inspiration-title-block h2,
.inspiration-card-v2 h3,
.right-panel-header h3,
.copylibrary-detail-card h3,
.material-detail-card h3,
.asset-detail-card h3,
.review-detail-card h3 {
  font-weight: var(--weight-semibold);
}

.app-container {
  display: flex;
  height: 100vh;
}
