:root {
  /* ── Brand ── */
  --color-primary:        #4F46E5;
  --color-primary-hover:  #4338CA;
  --color-primary-light:  #EEF2FF;
  --color-primary-dark:   #3730A3;

  /* ── Neutrals (light mode defaults) ── */
  --color-bg:             #F9FAFB;
  --color-bg-secondary:   #F1F5F9;
  --color-surface:        #FFFFFF;
  --color-surface-hover:  #F8FAFC;
  --color-border:         #E2E8F0;
  --color-border-hover:   #CBD5E1;

  --color-text:           #0F172A;
  --color-text-secondary: #475569;
  --color-text-muted:     #94A3B8;

  /* ── Today ── */
  --color-today-bg:       #EFF6FF;
  --color-today-border:   #3B82F6;
  --color-today-num:      #2563EB;

  /* ── Status ── */
  --color-success:        #10B981;
  --color-success-bg:     #D1FAE5;
  --color-danger:         #EF4444;
  --color-danger-bg:      #FEE2E2;
  --color-warning:        #F59E0B;
  --color-warning-bg:     #FEF3C7;
  --color-info:           #3B82F6;
  --color-info-bg:        #DBEAFE;

  /* ── Weekend dim ── */
  --color-weekend-bg:     #FAFAFA;

  /* ── Other month dim ── */
  --color-other-month:    #E2E8F0;
  --color-other-month-bg: #FAFAFA;

  /* ── Selected ── */
  --color-selected-bg:    #EEF2FF;
  --color-selected-border:#4F46E5;

  /* ── Drag over ── */
  --color-dragover-bg:    #EEF2FF;
  --color-dragover-border:#4F46E5;

  /* ── Task palette ── */
  --task-blue-bg:    #DBEAFE; --task-blue-text:   #1E40AF; --task-blue-dot:   #3B82F6;
  --task-green-bg:   #D1FAE5; --task-green-text:  #065F46; --task-green-dot:  #10B981;
  --task-red-bg:     #FEE2E2; --task-red-text:    #991B1B; --task-red-dot:    #EF4444;
  --task-orange-bg:  #FFEDD5; --task-orange-text: #9A3412; --task-orange-dot: #F97316;
  --task-purple-bg:  #EDE9FE; --task-purple-text: #4C1D95; --task-purple-dot: #8B5CF6;
  --task-gray-bg:    #F1F5F9; --task-gray-text:   #334155; --task-gray-dot:   #64748B;
  --task-pink-bg:    #FCE7F3; --task-pink-text:   #831843; --task-pink-dot:   #EC4899;
  --task-yellow-bg:  #FEF3C7; --task-yellow-text: #78350F; --task-yellow-dot: #F59E0B;

  /* ── Spacing ── */
  --space-1:  0.25rem;
  --space-2:  0.5rem;
  --space-3:  0.75rem;
  --space-4:  1rem;
  --space-5:  1.25rem;
  --space-6:  1.5rem;
  --space-8:  2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;

  /* ── Border radius ── */
  --radius-sm:   0.25rem;
  --radius-md:   0.5rem;
  --radius-lg:   0.75rem;
  --radius-xl:   1rem;
  --radius-2xl:  1.5rem;
  --radius-full: 9999px;

  /* ── Shadows ── */
  --shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
  --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);

  /* ── Transitions ── */
  --duration-fast:   120ms;
  --duration-base:   200ms;
  --duration-slow:   300ms;
  --duration-slower: 500ms;
  --ease-default:    cubic-bezier(0.4, 0, 0.2, 1);
  --ease-spring:     cubic-bezier(0.175, 0.885, 0.32, 1.275);
  --transition-fast: var(--duration-fast) var(--ease-default);
  --transition-base: var(--duration-base) var(--ease-default);
  --transition-slow: var(--duration-slow) var(--ease-default);

  /* ── Typography ── */
  --font-family:    -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, 'Helvetica Neue', sans-serif;
  --font-mono:      'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
  --font-size-xs:   0.6875rem;
  --font-size-sm:   0.8125rem;
  --font-size-base: 0.9375rem;
  --font-size-md:   1rem;
  --font-size-lg:   1.125rem;
  --font-size-xl:   1.25rem;
  --font-size-2xl:  1.5rem;
  --font-size-3xl:  1.875rem;

  /* ── Z-index ── */
  --z-base:       1;
  --z-dropdown:   100;
  --z-sticky:     200;
  --z-overlay:    900;
  --z-modal:      1000;
  --z-toast:      2000;

  /* ── Layout ── */
  --header-height:    60px;
  --sidebar-width:    300px;
  --cell-min-height:  120px;
}
