@import 'mixins/spacing';

:root {
  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  // Theme color tokens
  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

  --sl-color-black: #000;
  --sl-color-white: #fff;

  --sl-color-slate-50: #f8fafc;
  --sl-color-slate-100: #f1f5f9;
  --sl-color-slate-200: #e2e8f0;
  --sl-color-slate-300: #cbd5e1;
  --sl-color-slate-400: #94a3b8;
  --sl-color-slate-500: #64748b;
  --sl-color-slate-600: #475569;
  --sl-color-slate-700: #334155;
  --sl-color-slate-800: #1e293b;
  --sl-color-slate-900: #0f172a;
  --sl-color-slate-950: #020617;
  --sl-color-slate-text: var(--sl-color-white);

  --sl-color-gray-50: #f9fafb;
  --sl-color-gray-100: #f3f4f6;
  --sl-color-gray-200: #e5e7eb;
  --sl-color-gray-300: #d1d5db;
  --sl-color-gray-400: #9ca3af;
  --sl-color-gray-500: #6b7280;
  --sl-color-gray-600: #4b5563;
  --sl-color-gray-700: #374151;
  --sl-color-gray-800: #1f2937;
  --sl-color-gray-900: #111827;
  --sl-color-gray-950: #030712;
  --sl-color-gray-text: var(--sl-color-white);

  --sl-color-red-50: #fef2f2;
  --sl-color-red-100: #fee2e2;
  --sl-color-red-200: #fecaca;
  --sl-color-red-300: #fca5a5;
  --sl-color-red-400: #f87171;
  --sl-color-red-500: #ef4444;
  --sl-color-red-600: #dc2626;
  --sl-color-red-700: #b91c1c;
  --sl-color-red-800: #991b1b;
  --sl-color-red-900: #7f1d1d;
  --sl-color-red-950: #450a0a;
  --sl-color-red-text: var(--sl-color-white);

  --sl-color-yellow-50: #fefce8;
  --sl-color-yellow-100: #fef9c3;
  --sl-color-yellow-200: #fef08a;
  --sl-color-yellow-300: #fde047;
  --sl-color-yellow-400: #facc15;
  --sl-color-yellow-500: #eab308;
  --sl-color-yellow-600: #ca8a04;
  --sl-color-yellow-700: #a16207;
  --sl-color-yellow-800: #854d0e;
  --sl-color-yellow-900: #713f12;
  --sl-color-yellow-950: #422006;
  --sl-color-yellow-text: var(--sl-color-white);

  --sl-color-green-50: #ecfdf5;
  --sl-color-green-100: #d1fae5;
  --sl-color-green-200: #a7f3d0;
  --sl-color-green-300: #6ee7b7;
  --sl-color-green-400: #34d399;
  --sl-color-green-500: #10b981;
  --sl-color-green-600: #059669;
  --sl-color-green-700: #047857;
  --sl-color-green-800: #065f46;
  --sl-color-green-900: #064e3b;
  --sl-color-green-950: #052e16;
  --sl-color-green-text: var(--sl-color-white);

  --sl-color-blue-50: #eff6ff;
  --sl-color-blue-100: #dbeafe;
  --sl-color-blue-200: #bfdbfe;
  --sl-color-blue-300: #93c5fd;
  --sl-color-blue-400: #60a5fa;
  --sl-color-blue-500: #3b82f6;
  --sl-color-blue-600: #2563eb;
  --sl-color-blue-700: #1d4ed8;
  --sl-color-blue-800: #1e40af;
  --sl-color-blue-900: #1e3a8a;
  --sl-color-blue-900: #172554;
  --sl-color-blue-text: var(--sl-color-white);

  --sl-color-indigo-50: #eef2ff;
  --sl-color-indigo-100: #e0e7ff;
  --sl-color-indigo-200: #c7d2fe;
  --sl-color-indigo-300: #a5b4fc;
  --sl-color-indigo-400: #818cf8;
  --sl-color-indigo-500: #6366f1;
  --sl-color-indigo-600: #4f46e5;
  --sl-color-indigo-700: #4338ca;
  --sl-color-indigo-800: #3730a3;
  --sl-color-indigo-900: #312e81;
  --sl-color-indigo-900: #1e1b4b;
  --sl-color-indigo-text: var(--sl-color-white);

  --sl-color-purple-50: ##faf5ff;
  --sl-color-purple-100: #f3e8ff;
  --sl-color-purple-200: #e9d5ff;
  --sl-color-purple-300: #d8b4fe;
  --sl-color-purple-400: #c084fc;
  --sl-color-purple-500: #d946ef;
  --sl-color-purple-600: #c026d3;
  --sl-color-purple-700: #a21caf;
  --sl-color-purple-800: #86198f;
  --sl-color-purple-900: #701a75;
  --sl-color-purple-950: #3b0764;
  --sl-color-purple-text: var(--sl-color-white);

  --sl-color-pink-50: #fdf2f8;
  --sl-color-pink-100: #fce7f3;
  --sl-color-pink-200: #fbcfe8;
  --sl-color-pink-300: #f9a8d4;
  --sl-color-pink-400: #f472b6;
  --sl-color-pink-500: #ec4899;
  --sl-color-pink-600: #db2777;
  --sl-color-pink-700: #be185d;
  --sl-color-pink-800: #9d174d;
  --sl-color-pink-900: #831843;
  --sl-color-pink-950: #500724;
  --sl-color-pink-text: var(--sl-color-white);

  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  // Density tokens
  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  --sl-density: 1;

  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  // Border radius tokens
  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

  --sl-border-radius-small: 0.25rem; // 4px
  --sl-border-radius-medium: 0.375rem; // 6px
  --sl-border-radius-large: 0.5rem; // 8px
  --sl-border-radius-x-large: 1rem; // 16px

  --sl-border-radius-circle: 50%;
  --sl-border-radius-pill: 9999px;

  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  // Elevation tokens
  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

  --sl-shadow-x-small: 0 1px 0 #0d131e0d;
  --sl-shadow-small: 0 1px 2px #0d131e1a;
  --sl-shadow-medium: 0 2px 4px #0d131e1a;
  --sl-shadow-large: 0 2px 8px #0d131e1a;
  --sl-shadow-x-large: 0 4px 16px #0d131e1a;

  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  // Spacing tokens
  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

  --sl-spacing-xxx-small: 0.125rem; // 2px
  --sl-spacing-xx-small: 0.25rem; // 4px
  --sl-spacing-x-small: 0.5rem; // 8px
  --sl-spacing-small: 0.75rem; // 12px
  --sl-spacing-medium: 1rem; // 16px
  --sl-spacing-large: 1.25rem; // 20px
  --sl-spacing-x-large: 1.75rem; // 28px
  --sl-spacing-xx-large: 2.25rem; // 36px
  --sl-spacing-xxx-large: 3rem; // 48px
  --sl-spacing-xxxx-large: 4.5rem; // 72px

  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  // Transition tokens
  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

  --sl-transition-x-slow: 1000ms;
  --sl-transition-slow: 500ms;
  --sl-transition-medium: 250ms;
  --sl-transition-fast: 150ms;
  --sl-transition-x-fast: 50ms;

  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  // Cell
  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  --sl-cell-header-background: var(--sl-color-gray-50);
  --sl-cell-header-border-color: var(--sl-color-gray-300);

  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  // Typography tokens
  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

  // Fonts
  --sl-font-mono: SFMono-Regular, Consolas, 'Liberation Mono', Menlo, monospace;
  --sl-font-sans: Inter var, ui-sans-serif, system-ui, -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';
  --sl-font-serif: Georgia, 'Times New Roman', serif;

  // Font sizes
  --sl-font-size-xx-small: 0.625rem; // 10px
  --sl-font-size-x-small: 0.75rem; // 12px
  --sl-font-size-small: 0.875rem; // 14px
  --sl-font-size-medium: 1rem; // 16px
  --sl-font-size-large: 1.25rem; // 20px
  --sl-font-size-x-large: 1.5rem; // 24px
  --sl-font-size-xx-large: 2.25rem; // 36px
  --sl-font-size-xxx-large: 3rem; // 48px
  --sl-font-size-xxxx-large: 4.5rem; // 72px

  // Font weights
  --sl-font-weight-light: 300;
  --sl-font-weight-normal: 400;
  --sl-font-weight-semibold: 500;
  --sl-font-weight-bold: 600;

  // Letter spacings
  --sl-letter-spacing-dense: -0.015em;
  --sl-letter-spacing-normal: normal;
  --sl-letter-spacing-loose: 0.075em;

  // Line heights
  --sl-line-height-dense: 1.4;
  --sl-line-height-normal: 1.8;
  --sl-line-height-loose: 2.2;

  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  // Form tokens
  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

  // Focus ring
  --sl-focus-ring-color-primary: #0ea5e954;
  --sl-focus-ring-color-success: #22c55e54;
  --sl-focus-ring-color-info: #6b728054;
  --sl-focus-ring-color-warning: #f59e0b54;
  --sl-focus-ring-color-danger: #ef444454;
  --sl-focus-ring-width: 3px;

  // Buttons
  --sl-button-font-size-small: var(--sl-font-size-x-small);
  --sl-button-font-size-medium: var(--sl-font-size-small);
  --sl-button-font-size-large: var(--sl-font-size-medium);

  // Inputs
  --sl-input-height-x-small: 1.25rem; // 20px
  --sl-input-height-small: 1.875rem; // 30px
  --sl-input-height-medium: 2.5rem; // 40px
  --sl-input-height-large: 3.125rem; // 50px
  --sl-input-height-x-large: 3.75rem; // 60px

  --sl-input-background-color: var(--sl-color-white);
  --sl-input-background-color-hover: var(--sl-color-white);
  --sl-input-background-color-focus: var(--sl-color-white);
  --sl-input-background-color-disabled: var(--sl-color-gray-100);

  --sl-input-border-color: var(--sl-color-gray-300);
  --sl-input-border-color-hover: var(--sl-color-gray-400);
  --sl-input-border-color-focus: var(--sl-color-blue-500);
  --sl-input-border-color-disabled: var(--sl-color-gray-300);
  --sl-input-border-width: 1px;

  --sl-input-border-radius-small: var(--sl-border-radius-medium);
  --sl-input-border-radius-medium: var(--sl-border-radius-medium);
  --sl-input-border-radius-large: var(--sl-border-radius-medium);

  --sl-input-font-family: var(--sl-font-sans);
  --sl-input-font-weight: var(--sl-font-weight-normal);
  --sl-input-font-size-x-small: var(--sl-font-size-x-small);
  --sl-input-font-size-small: var(--sl-font-size-small);
  --sl-input-font-size-medium: var(--sl-font-size-medium);
  --sl-input-font-size-large: var(--sl-font-size-large);
  --sl-input-font-size-x-large: var(--sl-font-size-x-large);
  --sl-input-letter-spacing: var(--sl-letter-spacing-normal);

  --sl-input-color: var(--sl-color-gray-700);
  --sl-input-color-hover: var(--sl-color-gray-700);
  --sl-input-color-focus: var(--sl-color-gray-700);
  --sl-input-color-disabled: var(--sl-color-gray-900);

  --sl-input-icon-color: var(--sl-color-gray-400);
  --sl-input-icon-color-hover: var(--sl-color-gray-600);
  --sl-input-icon-color-focus: var(--sl-color-gray-600);

  --sl-input-placeholder-color: var(--sl-color-gray-400);
  --sl-input-placeholder-color-disabled: var(--sl-color-gray-600);

  --sl-input-spacing-small: var(--sl-spacing-small);
  --sl-input-spacing-medium: var(--sl-spacing-medium);
  --sl-input-spacing-large: var(--sl-spacing-large);

  // Input Labels
  --sl-input-label-font-size-small: var(--sl-font-size-small);
  --sl-input-label-font-size-medium: var(--sl-font-size-medium);
  --sl-input-label-font-size-large: var(--sl-font-size-large);

  --sl-input-label-color: inherit;

  // Help text
  --sl-input-help-text-font-size-small: var(--sl-font-size-x-small);
  --sl-input-help-text-font-size-medium: var(--sl-font-size-small);
  --sl-input-help-text-font-size-large: var(--sl-font-size-medium);

  --sl-input-help-text-color: var(--sl-color-gray-400);

  // Error text
  --sl-input-error-text-font-size-small: var(--sl-font-size-x-small);
  --sl-input-error-text-font-size-medium: var(--sl-font-size-small);
  --sl-input-error-text-font-size-large: var(--sl-font-size-medium);

  --sl-input-error-text-color: var(--sl-color-red-400);

  // Toggles (checkboxes, radios, switches)
  --sl-toggle-size: 1rem;

  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  // Labels
  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  --sl-label-color-blue: var(--sl-color-blue-500);
  --sl-label-color-green: var(--sl-color-green-500);
  --sl-label-color-red: var(--sl-color-red-500);
  --sl-label-color-yellow: var(--sl-color-yellow-500);
  --sl-label-color-purple: var(--sl-color-purple-500);
  --sl-label-color-very-light-gray: var(--sl-color-gray-300);
  --sl-label-color-light-gray: var(--sl-color-gray-400);
  --sl-label-color-medium-gray: var(--sl-color-gray-500);
  --sl-label-color-dark-gray: var(--sl-color-gray-600);
  --sl-label-color-very-dark-gray: var(--sl-color-gray-700);
  --sl-label-color-black: var(--sl-color-black);

  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  // Badges
  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  --sl-badge-background-color-primary: var(--sl-color-blue-100);
  --sl-badge-border-color-primary: var(--sl-color-blue-300);
  --sl-badge-font-color-primary: var(--sl-color-blue-800);

  --sl-badge-background-color-success: var(--sl-color-green-100);
  --sl-badge-border-color-success: var(--sl-color-green-300);
  --sl-badge-font-color-success: var(--sl-color-green-800);

  --sl-badge-background-color-warning: var(--sl-color-yellow-100);
  --sl-badge-border-color-warning: var(--sl-color-yellow-300);
  --sl-badge-font-color-warning: var(--sl-color-yellow-800);

  --sl-badge-background-color-danger: var(--sl-color-red-100);
  --sl-badge-border-color-danger: var(--sl-color-red-300);
  --sl-badge-font-color-danger: var(--sl-color-red-800);

  --sl-badge-background-color-info: var(--sl-color-gray-100);
  --sl-badge-border-color-info: var(--sl-color-gray-300);
  --sl-badge-font-color-info: var(--sl-color-gray-800);

  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  // Selections
  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  --sl-selection-background-color-active: var(--sl-color-blue-500);
  --sl-selection-background-color-hover: var(--sl-color-gray-200);
  --sl-selection-color-active: var(--sl-color-white);

  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  // Overlay tokens
  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

  --sl-overlay-background-color: #37415180;

  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  // Panels
  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

  --sl-panel-background-color: var(--sl-color-white);
  --sl-panel-dark-background-color: var(--sl-color-gray-50);
  --sl-panel-border-color: var(--sl-color-gray-200);

  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  // Sidebar tokens
  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  --sl-sidebar-background: var(--sl-color-gray-100);
  --sl-sidebar-footer-background: var(--sl-color-gray-50);
  --sl-sidebar-footer-border-color: var(--sl-color-gray-300);

  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  // Tooltip tokens
  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

  --sl-tooltip-border-radius: var(--sl-border-radius-small);
  --sl-tooltip-background-color: var(--sl-color-gray-600);
  --sl-tooltip-color: var(--sl-color-white);
  --sl-tooltip-font-family: var(--sl-font-sans);
  --sl-tooltip-font-weight: var(--sl-font-weight-normal);
  --sl-tooltip-font-size: var(--sl-font-size-small);
  --sl-tooltip-line-height: var(--sl-line-height-dense);
  --sl-tooltip-padding: var(--sl-spacing-xx-small) var(--sl-spacing-x-small);
  --sl-tooltip-arrow-size: 5px;
  --sl-tooltip-arrow-start-end-offset: 8px;

  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  // Shading
  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  --sl-shading-blue: repeating-linear-gradient(
    135deg,
    var(--sl-color-blue-100),
    var(--sl-color-blue-100) 1px,
    var(--sl-color-white) 1px,
    var(--sl-color-white) 4px
  );

  --sl-shading-red: repeating-linear-gradient(
    135deg,
    var(--sl-color-red-100),
    var(--sl-color-red-100) 1px,
    var(--sl-color-white) 1px,
    var(--sl-color-white) 4px
  );

  --sl-shading-yellow: repeating-linear-gradient(
    135deg,
    var(--sl-color-yellow-100),
    var(--sl-color-yellow-100) 1px,
    var(--sl-color-white) 1px,
    var(--sl-color-white) 4px
  );

  --sl-shading-pink: repeating-linear-gradient(
    135deg,
    var(--sl-color-pink-100),
    var(--sl-color-pink-100) 1px,
    var(--sl-color-white) 1px,
    var(--sl-color-white) 4px
  );

  --sl-shading-gray: repeating-linear-gradient(
    135deg,
    var(--sl-color-gray-100),
    var(--sl-color-gray-100) 1px,
    var(--sl-color-white) 1px,
    var(--sl-color-white) 4px
  );

  --sl-shading-indigo: repeating-linear-gradient(
    135deg,
    var(--sl-color-indigo-100),
    var(--sl-color-indigo-100) 1px,
    var(--sl-color-white) 1px,
    var(--sl-color-white) 4px
  );

  --sl-shading-green: repeating-linear-gradient(
    135deg,
    var(--sl-color-green-100),
    var(--sl-color-green-100) 1px,
    var(--sl-color-white) 1px,
    var(--sl-color-white) 4px
  );

  --sl-shading-purple: repeating-linear-gradient(
    135deg,
    var(--sl-color-purple-100),
    var(--sl-color-purple-100) 1px,
    var(--sl-color-white) 1px,
    var(--sl-color-white) 4px
  );

  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  // Z-index tokens
  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

  --sl-z-index-page-header: 500;
  --sl-z-index-drawer: 700;
  --sl-z-index-dialog: 800;
  --sl-z-index-popover: 850;
  --sl-z-index-dropdown: 900;
  --sl-z-index-toast: 950;
  --sl-z-index-tooltip: 1000;
}
