/**
 * DevElevate Design Tokens
 *
 * All values as CSS custom properties. Changing a token here
 * propagates through every component and layout automatically.
 *
 * Color variations are done via data attributes on <html>:
 *   data-de-theme="default|ocean|forest|sunset"
 *
 * Dark mode is toggled via:
 *   data-de-mode="dark"
 */

/* =============================================================================
   BASE TOKENS — applied to all themes
   ============================================================================= */

:root {

	/* --- Spacing scale --- */
	--de-space-1:  0.25rem;   /*  4px */
	--de-space-2:  0.5rem;    /*  8px */
	--de-space-3:  0.75rem;   /* 12px */
	--de-space-4:  1rem;      /* 16px */
	--de-space-5:  1.5rem;    /* 24px */
	--de-space-6:  2rem;      /* 32px */
	--de-space-8:  3rem;      /* 48px */
	--de-space-10: 4rem;      /* 64px */
	--de-space-12: 6rem;      /* 96px */

	/* --- Border radius --- */
	--de-radius-sm:   4px;
	--de-radius-md:   8px;
	--de-radius-lg:   16px;
	--de-radius-full: 9999px;

	/* --- Shadows --- */
	--de-shadow-sm:  0 1px 3px rgba(0,0,0,0.08), 0 1px 2px rgba(0,0,0,0.04);
	--de-shadow-md:  0 4px 12px rgba(0,0,0,0.10), 0 2px 4px rgba(0,0,0,0.06);
	--de-shadow-lg:  0 10px 30px rgba(0,0,0,0.12), 0 4px 8px rgba(0,0,0,0.06);
	--de-shadow-xl:  0 20px 60px rgba(0,0,0,0.15);

	/* --- Transitions --- */
	--de-transition-fast:   150ms ease;
	--de-transition-normal: 250ms ease;
	--de-transition-slow:   400ms ease;

	/* --- Z-index scale --- */
	--de-z-base:    1;
	--de-z-raised:  10;
	--de-z-overlay: 100;
	--de-z-modal:   1000;
	--de-z-toast:   2000;

	/* --- Container --- */
	--de-container-max:  1200px;
	--de-container-pad:  var(--de-space-5);

	/* --- Grid --- */
	--de-grid-gap: var(--de-space-5);

}

/* =============================================================================
   DEFAULT THEME (Light mode)
   Indigo/violet accent — professional, dev-focused
   ============================================================================= */

:root,
[data-de-theme="default"] {

	/* Brand colors */
	--de-color-primary:        #4f46e5;  /* Indigo 600 */
	--de-color-primary-hover:  #4338ca;  /* Indigo 700 */
	--de-color-primary-light:  #eef2ff;  /* Indigo 50  */
	--de-color-secondary:      #7c3aed;  /* Violet 600 */
	--de-color-accent:         #06b6d4;  /* Cyan 500   */

	/* Semantic colors */
	--de-color-success:  #059669;
	--de-color-warning:  #d97706;
	--de-color-error:    #dc2626;
	--de-color-info:     #2563eb;

	/* Surface / background */
	--de-bg-base:        #ffffff;
	--de-bg-subtle:      #f8fafc;
	--de-bg-muted:       #f1f5f9;
	--de-bg-card:        #ffffff;
	--de-bg-overlay:     rgba(0,0,0,0.5);

	/* Text */
	--de-text-primary:   #0f172a;  /* Slate 900 */
	--de-text-secondary: #475569;  /* Slate 600 */
	--de-text-muted:     #94a3b8;  /* Slate 400 */
	--de-text-inverse:   #ffffff;
	--de-text-on-primary:#ffffff;

	/* Borders */
	--de-border-color:   #e2e8f0;  /* Slate 200 */
	--de-border-strong:  #cbd5e1;  /* Slate 300 */

	/* Typography */
	--de-font-sans:   'Inter', system-ui, -apple-system, sans-serif;
	--de-font-mono:   'JetBrains Mono', 'Fira Code', monospace;
	--de-font-display: var(--de-font-sans);

	--de-font-size-xs:   0.75rem;   /* 12px */
	--de-font-size-sm:   0.875rem;  /* 14px */
	--de-font-size-base: 1rem;      /* 16px */
	--de-font-size-lg:   1.125rem;  /* 18px */
	--de-font-size-xl:   1.25rem;   /* 20px */
	--de-font-size-2xl:  1.5rem;    /* 24px */
	--de-font-size-3xl:  1.875rem;  /* 30px */
	--de-font-size-4xl:  2.25rem;   /* 36px */
	--de-font-size-5xl:  3rem;      /* 48px */

	--de-font-weight-normal:   400;
	--de-font-weight-medium:   500;
	--de-font-weight-semibold: 600;
	--de-font-weight-bold:     700;

	--de-line-height-tight:  1.25;
	--de-line-height-normal: 1.6;
	--de-line-height-loose:  1.8;

}

/* =============================================================================
   DARK MODE
   Toggled via data-de-mode="dark" on <html>
   ============================================================================= */

[data-de-mode="dark"] {

	/* Surface / background */
	--de-bg-base:        #0f172a;  /* Slate 900 */
	--de-bg-subtle:      #1e293b;  /* Slate 800 */
	--de-bg-muted:       #334155;  /* Slate 700 */
	--de-bg-card:        #1e293b;
	--de-bg-overlay:     rgba(0,0,0,0.7);

	/* Text */
	--de-text-primary:   #f1f5f9;  /* Slate 100 */
	--de-text-secondary: #94a3b8;  /* Slate 400 */
	--de-text-muted:     #64748b;  /* Slate 500 */

	/* Borders */
	--de-border-color:   #334155;  /* Slate 700 */
	--de-border-strong:  #475569;  /* Slate 600 */

	/* Adjust primary light for dark contexts */
	--de-color-primary-light:  rgba(79, 70, 229, 0.15);

	/* Shadows need to be stronger on dark */
	--de-shadow-sm: 0 1px 3px rgba(0,0,0,0.3);
	--de-shadow-md: 0 4px 12px rgba(0,0,0,0.4);
	--de-shadow-lg: 0 10px 30px rgba(0,0,0,0.5);

}

/* =============================================================================
   COLOR VARIATION: Ocean
   data-de-theme="ocean"
   ============================================================================= */

[data-de-theme="ocean"] {
	--de-color-primary:        #0891b2;  /* Cyan 600   */
	--de-color-primary-hover:  #0e7490;  /* Cyan 700   */
	--de-color-primary-light:  #ecfeff;  /* Cyan 50    */
	--de-color-secondary:      #0284c7;  /* Sky 600    */
	--de-color-accent:         #14b8a6;  /* Teal 500   */
}

/* =============================================================================
   COLOR VARIATION: Forest
   data-de-theme="forest"
   ============================================================================= */

[data-de-theme="forest"] {
	--de-color-primary:        #059669;  /* Emerald 600 */
	--de-color-primary-hover:  #047857;  /* Emerald 700 */
	--de-color-primary-light:  #ecfdf5;  /* Emerald 50  */
	--de-color-secondary:      #0d9488;  /* Teal 600    */
	--de-color-accent:         #65a30d;  /* Lime 600    */
}

/* =============================================================================
   COLOR VARIATION: Sunset
   data-de-theme="sunset"
   ============================================================================= */

[data-de-theme="sunset"] {
	--de-color-primary:        #ea580c;  /* Orange 600  */
	--de-color-primary-hover:  #c2410c;  /* Orange 700  */
	--de-color-primary-light:  #fff7ed;  /* Orange 50   */
	--de-color-secondary:      #db2777;  /* Pink 600    */
	--de-color-accent:         #f59e0b;  /* Amber 500   */
}
