/**
 * Design System — File Tiếng Trung
 * Premium Knowledge Hub — Redesigned 2026
 * Inspired by Linear.app, Notion, Apple
 */

:root {
    /* ═══ PRIMARY PALETTE ═══ */
    --ds-primary: #06d6a0;
    --ds-primary-light: #34e8b8;
    --ds-primary-dark: #04b686;
    --ds-primary-glow: rgba(6, 214, 160, 0.15);

    --ds-accent: #ffd166;
    --ds-accent-light: #ffe08a;
    --ds-accent-dark: #e6b84d;
    --ds-accent-glow: rgba(255, 209, 102, 0.15);

    --ds-tertiary: #a78bfa;
    --ds-tertiary-light: #c4b5fd;
    --ds-tertiary-dark: #7c5ce0;
    --ds-tertiary-glow: rgba(167, 139, 250, 0.15);

    --ds-info: #38bdf8;
    --ds-success: #06d6a0;
    --ds-warning: #ffd166;
    --ds-error: #ff6b6b;

    /* ═══ BACKGROUNDS ═══ */
    --ds-bg: #0a0e1a;
    --ds-bg-soft: #111827;
    --ds-bg-muted: #1a2035;
    --ds-bg-dark: #060912;
    --ds-bg-elevated: #1e2742;

    /* Glass surfaces */
    --ds-glass-bg: rgba(255, 255, 255, 0.03);
    --ds-glass-bg-hover: rgba(255, 255, 255, 0.06);
    --ds-glass-border: rgba(255, 255, 255, 0.08);
    --ds-glass-border-hover: rgba(255, 255, 255, 0.14);
    --ds-glass-blur: blur(20px);

    /* ═══ TEXT ═══ */
    --ds-text: #f0f4f8;
    --ds-text-secondary: #8892a4;
    --ds-text-muted: #5a6478;
    --ds-text-inverse: #0a0e1a;

    /* ═══ BORDERS ═══ */
    --ds-border: rgba(255, 255, 255, 0.08);
    --ds-border-light: rgba(255, 255, 255, 0.04);
    --ds-border-dark: rgba(255, 255, 255, 0.14);

    /* ═══ SPACING (4px base) ═══ */
    --ds-space-1: 4px;
    --ds-space-2: 8px;
    --ds-space-3: 12px;
    --ds-space-4: 16px;
    --ds-space-5: 20px;
    --ds-space-6: 24px;
    --ds-space-8: 32px;
    --ds-space-10: 40px;
    --ds-space-12: 48px;
    --ds-space-16: 64px;

    /* ═══ TYPOGRAPHY ═══ */
    --ds-font-sans: 'Outfit', 'Be Vietnam Pro', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --ds-font-body: 'Be Vietnam Pro', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --ds-font-mono: 'SF Mono', 'Fira Code', Consolas, monospace;

    --ds-text-xs: 11px;
    --ds-text-sm: 13px;
    --ds-text-base: 14px;
    --ds-text-lg: 16px;
    --ds-text-xl: 18px;
    --ds-text-2xl: 22px;
    --ds-text-3xl: 28px;
    --ds-text-4xl: 36px;
    --ds-text-5xl: 48px;
    --ds-text-6xl: 56px;

    --ds-font-normal: 400;
    --ds-font-medium: 500;
    --ds-font-semibold: 600;
    --ds-font-bold: 700;
    --ds-font-extrabold: 800;

    --ds-leading-tight: 1.2;
    --ds-leading-normal: 1.5;
    --ds-leading-relaxed: 1.65;

    /* ═══ ICONS ═══ */
    --ds-icon-sm: 16px;
    --ds-icon-base: 18px;
    --ds-icon-lg: 20px;
    --ds-icon-xl: 24px;

    /* ═══ RADIUS ═══ */
    --ds-radius-sm: 6px;
    --ds-radius-base: 8px;
    --ds-radius-lg: 12px;
    --ds-radius-xl: 16px;
    --ds-radius-2xl: 20px;
    --ds-radius-3xl: 24px;
    --ds-radius-full: 9999px;

    /* ═══ SHADOWS ═══ */
    --ds-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.2);
    --ds-shadow-base: 0 2px 6px rgba(0, 0, 0, 0.25);
    --ds-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.3);
    --ds-shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.35);
    --ds-shadow-xl: 0 12px 40px rgba(0, 0, 0, 0.4);
    --ds-shadow-glow-teal: 0 0 30px rgba(6, 214, 160, 0.15);
    --ds-shadow-glow-amber: 0 0 30px rgba(255, 209, 102, 0.15);
    --ds-shadow-glow-purple: 0 0 30px rgba(167, 139, 250, 0.15);

    --ds-focus-ring: 0 0 0 2px rgba(6, 214, 160, 0.3);

    /* ═══ TRANSITIONS ═══ */
    --ds-transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
    --ds-transition-base: 250ms cubic-bezier(0.4, 0, 0.2, 1);
    --ds-transition-slow: 400ms cubic-bezier(0.4, 0, 0.2, 1);

    /* ═══ GRADIENTS ═══ */
    --ds-gradient-primary: linear-gradient(135deg, #06d6a0, #38bdf8);
    --ds-gradient-accent: linear-gradient(135deg, #ffd166, #ff6b6b);
    --ds-gradient-hero: linear-gradient(135deg, #06d6a0, #ffd166, #a78bfa);
    --ds-gradient-surface: linear-gradient(180deg, rgba(255,255,255,0.04) 0%, rgba(255,255,255,0.01) 100%);
    --ds-gradient-border: linear-gradient(135deg, rgba(6, 214, 160, 0.3), rgba(167, 139, 250, 0.3));
}

/* ═══ LIGHT MODE OVERRIDES ═══ */
html:not(.dark-mode) body,
body:not(.dark-mode) {
    --ds-bg: #f8f9fc;
    --ds-bg-soft: #ffffff;
    --ds-bg-muted: #f0f2f7;
    --ds-bg-dark: #e8ebf0;
    --ds-bg-elevated: #ffffff;

    --ds-glass-bg: rgba(255, 255, 255, 0.7);
    --ds-glass-bg-hover: rgba(255, 255, 255, 0.85);
    --ds-glass-border: rgba(0, 0, 0, 0.08);
    --ds-glass-border-hover: rgba(0, 0, 0, 0.14);

    --ds-text: #1a1d26;
    --ds-text-secondary: #5a6178;
    --ds-text-muted: #8b92a8;

    --ds-border: rgba(0, 0, 0, 0.08);
    --ds-border-light: rgba(0, 0, 0, 0.04);
    --ds-border-dark: rgba(0, 0, 0, 0.14);

    --ds-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.06);
    --ds-shadow-base: 0 2px 6px rgba(0, 0, 0, 0.08);
    --ds-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.1);
    --ds-shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.12);
    --ds-shadow-xl: 0 12px 40px rgba(0, 0, 0, 0.15);

    --ds-primary: #059b78;
    --ds-primary-light: #06d6a0;
    --ds-primary-dark: #048a6a;
}

/* ═══ BASE TYPOGRAPHY ═══ */
html, body {
    font-family: var(--ds-font-body);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--ds-font-sans);
}

/* ═══ UTILITY COMPONENTS ═══ */
.ds-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--ds-space-2);
    padding: 10px 20px;
    font-size: var(--ds-text-base);
    font-weight: var(--ds-font-semibold);
    line-height: var(--ds-leading-tight);
    border-radius: var(--ds-radius-lg);
    border: none;
    cursor: pointer;
    transition: all var(--ds-transition-base);
    text-decoration: none;
    font-family: var(--ds-font-sans);
}

.ds-btn svg {
    width: var(--ds-icon-base);
    height: var(--ds-icon-base);
}

.ds-btn-primary {
    background: var(--ds-primary);
    color: var(--ds-text-inverse);
    box-shadow: var(--ds-shadow-glow-teal);
}

.ds-btn-primary:hover {
    background: var(--ds-primary-light);
    box-shadow: 0 0 40px rgba(6, 214, 160, 0.25);
    transform: translateY(-2px);
}

.ds-btn-secondary {
    background: var(--ds-glass-bg);
    color: var(--ds-text);
    border: 1px solid var(--ds-glass-border);
    backdrop-filter: var(--ds-glass-blur);
}

.ds-btn-secondary:hover {
    background: var(--ds-glass-bg-hover);
    border-color: var(--ds-glass-border-hover);
}

.ds-input {
    width: 100%;
    padding: 10px 14px;
    font-size: var(--ds-text-base);
    font-family: inherit;
    border: 1px solid var(--ds-border);
    border-radius: var(--ds-radius-base);
    background: var(--ds-glass-bg);
    color: var(--ds-text);
    backdrop-filter: var(--ds-glass-blur);
    transition: all var(--ds-transition-fast);
}

.ds-input:focus {
    outline: none;
    border-color: var(--ds-primary);
    box-shadow: var(--ds-focus-ring);
}

.ds-input::placeholder {
    color: var(--ds-text-muted);
}

.ds-card {
    background: var(--ds-glass-bg);
    border: 1px solid var(--ds-glass-border);
    border-radius: var(--ds-radius-xl);
    padding: var(--ds-space-6);
    backdrop-filter: var(--ds-glass-blur);
    transition: all var(--ds-transition-base);
}

.ds-card:hover {
    background: var(--ds-glass-bg-hover);
    border-color: var(--ds-glass-border-hover);
    transform: translateY(-2px);
    box-shadow: var(--ds-shadow-lg);
}

/* ═══ GRADIENT TEXT UTILITY ═══ */
.gradient-text {
    background: var(--ds-gradient-hero);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.gradient-text-primary {
    background: var(--ds-gradient-primary);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* ═══ GLASS SURFACE UTILITY ═══ */
.glass-surface {
    background: var(--ds-glass-bg);
    backdrop-filter: var(--ds-glass-blur);
    -webkit-backdrop-filter: var(--ds-glass-blur);
    border: 1px solid var(--ds-glass-border);
}

/* ═══ ICON SIZING ═══ */
.icon-sm { width: var(--ds-icon-sm) !important; height: var(--ds-icon-sm) !important; }
.icon-base { width: var(--ds-icon-base) !important; height: var(--ds-icon-base) !important; }
.icon-lg { width: var(--ds-icon-lg) !important; height: var(--ds-icon-lg) !important; }
.icon-xl { width: var(--ds-icon-xl) !important; height: var(--ds-icon-xl) !important; }