:root {
  /* Ocean visual foundations. Keep semantic tokens here, not in page CSS. */
  --ocean-color-bg: #F7F8FC;
  --ocean-color-surface: #FFFFFF;
  --ocean-color-surface-subtle: #F9FAFC;
  --ocean-color-surface-hover: #F4F6FB;
  --ocean-color-text: #171C2B;
  --ocean-color-text-secondary: #667085;
  --ocean-color-text-muted: #98A2B3;
  --ocean-color-border: #E4E8F1;
  --ocean-color-border-strong: #D0D5DD;
  --ocean-color-primary: #1F3CFF;
  --ocean-color-primary-hover: #1732D9;
  --ocean-color-primary-active: #1027B8;
  --ocean-color-primary-soft: #EEF2FF;
  --ocean-color-primary-border: #C7D2FE;
  --ocean-color-success: #128A4B;
  --ocean-color-success-soft: #ECFDF3;
  --ocean-color-warning: #B54708;
  --ocean-color-warning-soft: #FFFAEB;
  --ocean-color-danger: #D92D20;
  --ocean-color-danger-soft: #FEF3F2;
  --ocean-color-info: #175CD3;
  --ocean-color-info-soft: #EFF8FF;

  --ocean-font-sans: 'Inter', 'PingFang SC', 'Microsoft YaHei', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --ocean-font-mono: 'SF Mono', 'Cascadia Code', 'Consolas', monospace;
  --ocean-font-size-xs: 12px;
  --ocean-font-size-sm: 13px;
  --ocean-font-size-md: 14px;
  --ocean-font-size-lg: 16px;
  --ocean-font-size-xl: 20px;
  --ocean-font-size-2xl: 24px;
  --ocean-line-height-tight: 1.35;
  --ocean-line-height-base: 1.55;
  --ocean-line-height-relaxed: 1.7;

  --ocean-space-1: 4px;
  --ocean-space-2: 8px;
  --ocean-space-3: 12px;
  --ocean-space-4: 16px;
  --ocean-space-5: 20px;
  --ocean-space-6: 24px;
  --ocean-space-8: 32px;
  --ocean-space-10: 40px;
  --ocean-space-12: 48px;

  --ocean-radius-control: 6px;
  --ocean-radius-card: 8px;
  --ocean-radius-dialog: 12px;
  --ocean-radius-round: 9999px;
  --ocean-shadow-xs: 0 1px 2px rgba(16, 24, 40, 0.04);
  --ocean-shadow-sm: 0 2px 8px rgba(16, 24, 40, 0.06);
  --ocean-shadow-md: 0 8px 24px rgba(16, 24, 40, 0.10);
  --ocean-shadow-dialog: 0 20px 48px rgba(16, 24, 40, 0.18);
  --ocean-focus-ring: 0 0 0 3px rgba(31, 60, 255, 0.16);
  --ocean-control-height-sm: 32px;
  --ocean-control-height-md: 40px;
  --ocean-control-height-lg: 48px;
  --ocean-sidebar-width: 240px;
  --ocean-sidebar-icon-width: 72px;
  --ocean-ai-history-width: 304px;
  --ocean-topbar-height: 60px;
  --ocean-content-max-width: 1440px;
  --ocean-content-padding: 28px;
  --ocean-transition-fast: 140ms ease;
  --ocean-transition-base: 200ms ease;

  /* Compatibility aliases used by the existing Ocean screens. */
  --bg: var(--ocean-color-bg);
  --bg-alt: var(--ocean-color-surface);
  --surface: var(--ocean-color-surface);
  --border: var(--ocean-color-border);
  --border-light: #EEF1F6;
  --text: var(--ocean-color-text);
  --text-secondary: var(--ocean-color-text-secondary);
  --text-muted: var(--ocean-color-text-muted);
  --primary: var(--ocean-color-primary);
  --primary-hover: var(--ocean-color-primary-hover);
  --primary-dark: var(--ocean-color-primary-active);
  --primary-light: #DDE4FF;
  --primary-lightest: var(--ocean-color-primary-soft);
  --success: var(--ocean-color-success);
  --success-light: #D1FADF;
  --success-bg: var(--ocean-color-success-soft);
  --warning: var(--ocean-color-warning);
  --warning-light: #FEF0C7;
  --warning-bg: var(--ocean-color-warning-soft);
  --danger: var(--ocean-color-danger);
  --danger-light: #FEE4E2;
  --danger-bg: var(--ocean-color-danger-soft);
  --info: var(--ocean-color-info);
  --info-light: #D1E9FF;
  --info-bg: var(--ocean-color-info-soft);
  --sidebar-bg: #F5F7FB;
  --sidebar-active: var(--ocean-color-surface);
  --sidebar-text: #344054;
  --sidebar-text-hover: var(--ocean-color-text);
  --sidebar-icon: #7C879C;
  --sidebar-divider: var(--ocean-color-border);
  --shadow-xs: var(--ocean-shadow-xs);
  --shadow-sm: var(--ocean-shadow-sm);
  --shadow-md: var(--ocean-shadow-md);
  --shadow-lg: var(--ocean-shadow-md);
  --shadow-xl: var(--ocean-shadow-dialog);
  --radius: var(--ocean-radius-card);
  --radius-sm: var(--ocean-radius-control);
  --radius-lg: var(--ocean-radius-dialog);
  --radius-xl: var(--ocean-radius-dialog);
  --radius-full: var(--ocean-radius-round);
  --sidebar-w: var(--ocean-sidebar-width);
  --topbar-h: var(--ocean-topbar-height);
  --font-family: var(--ocean-font-sans);
  --font-mono: var(--ocean-font-mono);
  --transition-fast: var(--ocean-transition-fast);
  --transition-base: var(--ocean-transition-base);
  --transition-slow: 280ms ease;
  --ocean-ui-bg: var(--ocean-color-bg);
  --ocean-ui-surface: var(--ocean-color-surface);
  --ocean-ui-text: var(--ocean-color-text);
  --ocean-ui-text-secondary: var(--ocean-color-text-secondary);
  --ocean-ui-border: var(--ocean-color-border);
  --ocean-ui-primary: var(--ocean-color-primary);
  --ocean-ui-primary-hover: var(--ocean-color-primary-hover);
  --ocean-ui-primary-soft: var(--ocean-color-primary-soft);
  --ocean-ui-control-radius: var(--ocean-radius-control);
  --ocean-ui-card-radius: var(--ocean-radius-card);
  --ocean-ui-modal-radius: var(--ocean-radius-dialog);
  --ocean-ui-sidebar-width: var(--ocean-sidebar-width);
  --ocean-ui-topbar-height: var(--ocean-topbar-height);
  --ocean-ui-font: var(--ocean-font-sans);
}
