:root {
  /* Primitives */
  --color-neutral-0: #ffffff;
  --color-neutral-950: #0f1321;
  --color-violet-50: #eeecff;
  --color-violet-600: #5a4bcf;
  --color-violet-700: #493ab7;

  /* Text, surfaces, borders and links */
  --color-text-primary: var(--color-neutral-950);
  --color-text-secondary: #465066;
  --color-text-muted: #667085;
  --color-text-placeholder: var(--color-text-muted);
  --color-text-on-accent: var(--color-neutral-0);
  --color-canvas: #f4f6fa;
  --color-surface: var(--color-neutral-0);
  --color-surface-subtle: #f9fafc;
  --color-surface-hover: #fbfcfe;
  --color-surface-panel: #f8f9fc;
  --color-border-subtle: #e6e9ef;
  --color-border-strong: #808ea2;
  --color-border-hover: #667085;
  --color-link: var(--color-violet-700);
  --color-link-accent: var(--color-violet-600);

  /* Status contracts */
  --color-status-neutral-solid: #50627c;
  --color-status-neutral-text: #50627c;
  --color-status-neutral-bg: #f1f5fb;
  --color-status-neutral-border: #808ea2;
  --color-status-info-solid: #2f6feb;
  --color-status-info-text: #2259bd;
  --color-status-info-bg: #edf4ff;
  --color-status-info-border: #5f88d1;
  --color-status-success-solid: #188553;
  --color-status-success-text: #147243;
  --color-status-success-bg: #eaf8f1;
  --color-status-success-border: #549a77;
  --color-status-warning-solid: #a66800;
  --color-status-warning-text: #8a5700;
  --color-status-warning-bg: #fff4df;
  --color-status-warning-border: #ad8643;
  --color-status-waiting-solid: #765d00;
  --color-status-waiting-text: #765d00;
  --color-status-waiting-bg: #fff9d9;
  --color-status-waiting-border: #9f8c41;
  --color-status-danger-solid: #d14343;
  --color-status-danger-text: #a52f2f;
  --color-status-danger-bg: #fff0f0;
  --color-status-danger-border: #c57373;
  --color-status-review-solid: var(--color-violet-600);
  --color-status-review-text: var(--color-violet-700);
  --color-status-review-bg: var(--color-violet-50);
  --color-status-review-border: #8378d0;

  /* Actions and feedback */
  --color-action-primary: var(--color-violet-600);
  --color-action-primary-hover: var(--color-violet-700);
  --color-action-primary-text: var(--color-text-on-accent);
  --color-action-danger: var(--color-status-danger-solid);
  --color-action-danger-hover: var(--color-status-danger-text);
  --color-action-danger-text: var(--color-text-on-accent);
  --color-toast-bg: var(--color-neutral-950);
  --color-toast-text: var(--color-text-on-accent);
  --color-toast-success-bg: #11683f;

  /* Navigation */
  --color-nav-bg: var(--color-neutral-950);
  --color-nav-text: #b8c0d2;
  --color-nav-text-strong: #f8f9ff;
  --color-nav-text-muted: #8993a8;
  --color-nav-border: rgba(255, 255, 255, 0.09);
  --color-nav-control-border: rgba(255, 255, 255, 0.13);
  --color-nav-persona-border: rgba(255, 255, 255, 0.1);
  --color-nav-hover-bg: rgba(255, 255, 255, 0.05);
  --color-nav-control: #8791a5;
  --color-nav-action: #aaa0ff;
  --color-nav-selected-bg: rgba(90, 75, 207, 0.28);
  --color-nav-selected-border: rgba(137, 122, 244, 0.22);
  --color-nav-selected-icon: #a99fff;
  --color-topbar-bg: var(--color-neutral-0);
  --color-backdrop: rgba(15, 19, 33, 0.46);

  /* Selection, avatar and focus */
  --color-selected: var(--color-violet-600);
  --color-selected-text: var(--color-violet-700);
  --color-selected-bg: var(--color-violet-50);
  --color-selected-surface: #faf9ff;
  --color-avatar-bg: var(--color-violet-600);
  --color-avatar-text: var(--color-neutral-0);
  --color-focus-ring: #4b5fe7;

  /* Work Graph visual language — shared by Inicio and Mapa de trabajo */
  --graph-canvas-bg: #fbfbff;
  --graph-canvas-bg-secondary: #f6f5ff;
  --graph-canvas-grid: rgba(90, 75, 207, 0.1);
  --graph-canvas-boundary: #dedaf8;
  --graph-focus-ring: var(--color-violet-600);
  --graph-focus-halo: rgba(90, 75, 207, 0.14);
  --graph-focus-glow: rgba(90, 75, 207, 0.2);
  --graph-focus-surface: #fbfaff;
  --graph-focus-text: var(--color-violet-700);
  --graph-person-surface: #faf9ff;
  --graph-person-border: #c9c2f5;
  --graph-person-icon: var(--color-violet-600);
  --graph-person-hover: #f3f0ff;
  --graph-task-surface: #f6fbf8;
  --graph-task-border: #b8dbc8;
  --graph-task-icon: var(--color-status-success-solid);
  --graph-project-surface: #f4f9ff;
  --graph-project-border: #b9d4ee;
  --graph-project-icon: var(--color-status-info-solid);
  --graph-incident-surface: var(--color-status-danger-bg);
  --graph-incident-border: #e4a3a3;
  --graph-incident-icon: var(--color-status-danger-solid);
  --graph-context-surface: var(--color-status-neutral-bg);
  --graph-context-border: #b8c2d0;
  --graph-context-icon: var(--color-status-neutral-solid);
  --graph-edge-structural: #91a0b5;
  --graph-edge-assignment: var(--color-violet-600);
  --graph-edge-dependency: var(--color-status-waiting-solid);
  --graph-edge-blocking: var(--color-status-danger-solid);
  --graph-edge-resolved: #9ba5b4;
  --graph-edge-label: var(--color-text-secondary);
  --graph-edge-hover: var(--color-violet-700);
  --graph-node-shadow: 0 8px 22px rgba(45, 38, 104, 0.1);
  --graph-node-hover-shadow: 0 12px 28px rgba(45, 38, 104, 0.16);
  --graph-node-selected-shadow: 0 0 0 4px var(--graph-focus-halo), 0 14px 30px rgba(45, 38, 104, 0.17);
  --graph-focus-shadow: 0 0 0 12px var(--graph-focus-halo), 0 18px 40px rgba(45, 38, 104, 0.18);
  --graph-node-enter-duration: var(--motion-duration-slow);
  --graph-focus-duration: var(--motion-duration-base);
  --graph-edge-emphasis-duration: var(--motion-duration-fast);
  --graph-easing: var(--motion-ease-emphasized);

  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-6: 1.5rem;
  --space-8: 2rem;

  /* Compact typography */
  --font-size-xs: 0.6875rem;
  --font-size-sm: 0.75rem;
  --font-size-md: 0.8125rem;
  --font-size-lg: 0.875rem;
  --font-size-xl: 1rem;
  --font-size-2xl: 1.25rem;
  --font-size-3xl: 1.625rem;
  --font-weight-regular: 400;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;

  /* Controls and focus */
  --control-height-sm: 2.25rem;
  --control-height-md: 2.5rem;
  --control-padding-inline: var(--space-3);
  --target-size-min: 1.5rem;
  --target-size-touch: 2.75rem;
  --focus-ring-width: 2px;
  --focus-ring-offset: 2px;

  /* Global structure */
  --layout-sidebar-collapsed-width: 4.5rem;
  --layout-sidebar-width: 14rem;
  --layout-drawer-width: 20rem;
  --layout-topbar-height: 3.75rem;
  --layout-mobile-bottom-nav-height: 4.75rem;
  --layout-rail-width: 17.5rem;
  --layout-dialog-width: 48rem;
  --layout-dialog-compact-width: 28rem;
  --layout-dialog-wide-width: 52rem;
  --layout-panel-width: 36rem;
  --layout-row-height: 4rem;
  --layout-content-max: 98rem;
  --table-columns: initial;

  /* Functional elevation and motion */
  --shadow-overlay: 0 8px 24px rgba(15, 19, 33, 0.22);
  --motion-duration-fast: 120ms;
  --motion-duration-base: 160ms;
  --motion-duration-slow: 200ms;
  --motion-ease-standard: ease-out;
  --motion-ease-emphasized: cubic-bezier(0.16, 1, 0.3, 1);

  --radius-sm: 0.375rem;
  --radius-md: 0.5rem;
  --radius-lg: 0.625rem;
  /* Document layers only; showModal() promotes dialogs to the native top layer. */
  --z-sticky: 10;
  --z-nav: 20;
  --z-toast: 50;
  --font-sans: "Segoe UI", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  --font-mono: "SFMono-Regular", Consolas, "Liberation Mono", ui-monospace, monospace;
}
