/**
 * sprechstunde.physio - Design Tokens
 *
 * Corporate Design: frisch, modern, minimalistisch, futuristisch
 * WCAG 3.x konform - Kontrastverhältnisse >= 4.5:1
 *
 * Farbpalette:
 * - Primary: Freundliches Grün (aus Logo abgeleitet)
 * - Neutral: Taubengrau
 * - Error: Angenehmes Dunkelrot
 * - Info: Passendes Hellblau
 */

/* ============================================
   LIGHT MODE (Default)
   ============================================ */
:root {
    /* === PRIMARY - Freundliches Grün === */
    --color-primary-50: #ecfdf8;
    --color-primary-100: #d1faf0;
    --color-primary-200: #a6f4e2;
    --color-primary-300: #6ee9d0;
    --color-primary-400: #38c5b5;  /* Logo-Farbe */
    --color-primary-500: #2da194;  /* Logo-Farbe dunkel */
    --color-primary-600: #1f8578;
    --color-primary-700: #1b6b62;
    --color-primary-800: #1a554f;
    --color-primary-900: #194742;
    --color-primary: var(--color-primary-500);
    --color-primary-hover: var(--color-primary-600);
    --color-primary-active: var(--color-primary-700);

    /* === NEUTRAL - Taubengrau === */
    --color-neutral-50: #f8f9fa;
    --color-neutral-100: #f1f3f5;
    --color-neutral-200: #e9ecef;
    --color-neutral-300: #dee2e6;
    --color-neutral-400: #ced4da;
    --color-neutral-500: #adb5bd;
    --color-neutral-600: #868e96;
    --color-neutral-700: #495057;
    --color-neutral-800: #343a40;
    --color-neutral-900: #212529;

    /* === ERROR - Angenehmes Dunkelrot === */
    --color-error-50: #fef2f2;
    --color-error-100: #fee2e2;
    --color-error-200: #fecaca;
    --color-error-300: #fca5a5;
    --color-error-400: #f87171;
    --color-error-500: #b91c1c;
    --color-error-600: #991b1b;
    --color-error-700: #7f1d1d;
    --color-error: var(--color-error-500);
    --color-error-hover: var(--color-error-600);

    /* === SUCCESS - Grün (leicht anders als Primary) === */
    --color-success-50: #f0fdf4;
    --color-success-100: #dcfce7;
    --color-success-200: #bbf7d0;
    --color-success-300: #86efac;
    --color-success-400: #4ade80;
    --color-success-500: #16a34a;
    --color-success-600: #15803d;
    --color-success-700: #166534;
    --color-success: var(--color-success-500);

    /* === WARNING - Warmes Orange === */
    --color-warning-50: #fffbeb;
    --color-warning-100: #fef3c7;
    --color-warning-200: #fde68a;
    --color-warning-300: #fcd34d;
    --color-warning-400: #fbbf24;
    --color-warning-500: #d97706;
    --color-warning-600: #b45309;
    --color-warning-700: #92400e;
    --color-warning: var(--color-warning-500);

    /* === INFO - Passendes Hellblau === */
    --color-info-50: #eff6ff;
    --color-info-100: #dbeafe;
    --color-info-200: #bfdbfe;
    --color-info-300: #93c5fd;
    --color-info-400: #60a5fa;
    --color-info-500: #3b82f6;
    --color-info-600: #2563eb;
    --color-info-700: #1d4ed8;
    --color-info: var(--color-info-500);
    --color-info-hover: var(--color-info-600);

    /* === SEMANTIC COLORS === */
    --color-text-primary: var(--color-neutral-900);
    --color-text-secondary: var(--color-neutral-700);
    --color-text-muted: var(--color-neutral-500);
    --color-text-inverse: #ffffff;

    --color-bg-primary: #ffffff;
    --color-bg-secondary: var(--color-neutral-50);
    --color-bg-tertiary: var(--color-neutral-100);
    --color-bg-inverse: var(--color-neutral-900);

    --color-border-light: var(--color-neutral-200);
    --color-border-default: var(--color-neutral-300);
    --color-border-dark: var(--color-neutral-400);

    --color-focus-ring: var(--color-primary-400);
    --color-focus-ring-offset: var(--color-bg-primary);

    /* === TYPOGRAPHY === */
    --font-family-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    --font-family-mono: 'JetBrains Mono', 'Fira Code', Consolas, 'Courier New', monospace;

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

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

    --line-height-tight: 1.25;
    --line-height-snug: 1.375;
    --line-height-normal: 1.5;
    --line-height-relaxed: 1.625;
    --line-height-loose: 2;

    --letter-spacing-tight: -0.025em;
    --letter-spacing-normal: 0;
    --letter-spacing-wide: 0.025em;

    /* === SPACING === */
    --space-0: 0;
    --space-1: 0.25rem;   /* 4px */
    --space-2: 0.5rem;    /* 8px */
    --space-3: 0.75rem;   /* 12px */
    --space-4: 1rem;      /* 16px */
    --space-5: 1.25rem;   /* 20px */
    --space-6: 1.5rem;    /* 24px */
    --space-8: 2rem;      /* 32px */
    --space-10: 2.5rem;   /* 40px */
    --space-12: 3rem;     /* 48px */
    --space-16: 4rem;     /* 64px */
    --space-20: 5rem;     /* 80px */
    --space-24: 6rem;     /* 96px */

    /* === BORDER RADIUS === */
    --radius-none: 0;
    --radius-sm: 0.25rem;   /* 4px */
    --radius-md: 0.375rem;  /* 6px */
    --radius-lg: 0.5rem;    /* 8px */
    --radius-xl: 0.75rem;   /* 12px */
    --radius-2xl: 1rem;     /* 16px */
    --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-inner: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);
    --shadow-none: none;

    /* === TRANSITIONS === */
    --transition-fast: 150ms ease;
    --transition-base: 200ms ease;
    --transition-slow: 300ms ease;
    --transition-slower: 500ms ease;

    /* === Z-INDEX === */
    --z-dropdown: 1000;
    --z-sticky: 1020;
    --z-fixed: 1030;
    --z-modal-backdrop: 1040;
    --z-modal: 1050;
    --z-popover: 1060;
    --z-tooltip: 1070;

    /* === CONTAINER === */
    --container-sm: 640px;
    --container-md: 768px;
    --container-lg: 1024px;
    --container-xl: 1280px;
    --container-2xl: 1536px;
    --container-padding: var(--space-4);

    /* === FOCUS === */
    --focus-ring-width: 2px;
    --focus-ring-offset: 2px;
    --focus-ring-style: solid;
}

/* ============================================
   DARK MODE
   ============================================ */
@media (prefers-color-scheme: dark) {
    :root {
        /* Semantic Colors - Dark Mode */
        --color-text-primary: var(--color-neutral-100);
        --color-text-secondary: var(--color-neutral-300);
        --color-text-muted: var(--color-neutral-500);
        --color-text-inverse: var(--color-neutral-900);

        --color-bg-primary: var(--color-neutral-900);
        --color-bg-secondary: var(--color-neutral-800);
        --color-bg-tertiary: var(--color-neutral-700);
        --color-bg-inverse: var(--color-neutral-100);

        --color-border-light: var(--color-neutral-700);
        --color-border-default: var(--color-neutral-600);
        --color-border-dark: var(--color-neutral-500);

        --color-focus-ring-offset: var(--color-neutral-900);

        /* Adjusted Primary for Dark Mode */
        --color-primary: var(--color-primary-400);
        --color-primary-hover: var(--color-primary-300);
        --color-primary-active: var(--color-primary-500);

        /* Shadows - Dark Mode */
        --shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.3);
        --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.4), 0 1px 2px -1px rgb(0 0 0 / 0.4);
        --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.4), 0 2px 4px -2px rgb(0 0 0 / 0.4);
        --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.4), 0 4px 6px -4px rgb(0 0 0 / 0.4);
        --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.4), 0 8px 10px -6px rgb(0 0 0 / 0.4);
    }
}

/* ============================================
   MANUAL DARK MODE CLASS (Optional Override)
   ============================================ */
[data-theme="dark"] {
    --color-text-primary: var(--color-neutral-100);
    --color-text-secondary: var(--color-neutral-300);
    --color-text-muted: var(--color-neutral-500);
    --color-text-inverse: var(--color-neutral-900);

    --color-bg-primary: var(--color-neutral-900);
    --color-bg-secondary: var(--color-neutral-800);
    --color-bg-tertiary: var(--color-neutral-700);
    --color-bg-inverse: var(--color-neutral-100);

    --color-border-light: var(--color-neutral-700);
    --color-border-default: var(--color-neutral-600);
    --color-border-dark: var(--color-neutral-500);

    --color-focus-ring-offset: var(--color-neutral-900);

    --color-primary: var(--color-primary-400);
    --color-primary-hover: var(--color-primary-300);
    --color-primary-active: var(--color-primary-500);
}

[data-theme="light"] {
    --color-text-primary: var(--color-neutral-900);
    --color-text-secondary: var(--color-neutral-700);
    --color-text-muted: var(--color-neutral-500);
    --color-text-inverse: #ffffff;

    --color-bg-primary: #ffffff;
    --color-bg-secondary: var(--color-neutral-50);
    --color-bg-tertiary: var(--color-neutral-100);
    --color-bg-inverse: var(--color-neutral-900);

    --color-border-light: var(--color-neutral-200);
    --color-border-default: var(--color-neutral-300);
    --color-border-dark: var(--color-neutral-400);

    --color-focus-ring-offset: var(--color-bg-primary);

    --color-primary: var(--color-primary-500);
    --color-primary-hover: var(--color-primary-600);
    --color-primary-active: var(--color-primary-700);
}

/* ============================================
   PAGE-SPECIFIC COLOR THEMES (dezent & edel)
   Abgeleitet aus Türkis/Graugrün/Graublau-Spektrum
   ============================================ */

/* Physio-Tipps: Warmes Graugrün (Salbei) */
[data-page-theme="tipps"] {
    --color-page-accent: #5f7a6a;
    --color-page-accent-light: #e8eeeb;
    --color-page-accent-hover: #4a6354;
    --color-page-accent-50: #f4f7f5;
    --color-page-accent-100: #e8eeeb;
    --color-page-accent-200: #c9d6cf;
    --color-page-accent-300: #9fb5a8;
}

/* Physio-Markt: Gedämpftes Taubenblau */
[data-page-theme="markt"] {
    --color-page-accent: #5a7a8a;
    --color-page-accent-light: #e6eef2;
    --color-page-accent-hover: #456270;
    --color-page-accent-50: #f3f7f9;
    --color-page-accent-100: #e6eef2;
    --color-page-accent-200: #c5d5de;
    --color-page-accent-300: #96b3c2;
}

/* Stellenmarkt: Dezentes Graublau (Schiefer) */
[data-page-theme="stellen"] {
    --color-page-accent: #64748b;
    --color-page-accent-light: #e9ecf0;
    --color-page-accent-hover: #475569;
    --color-page-accent-50: #f5f6f8;
    --color-page-accent-100: #e9ecf0;
    --color-page-accent-200: #cbd5e1;
    --color-page-accent-300: #94a3b8;
}

/* Terminkalender: Sanftes Meergrün */
[data-page-theme="termine"] {
    --color-page-accent: #4d8a7c;
    --color-page-accent-light: #e4f0ed;
    --color-page-accent-hover: #3d7062;
    --color-page-accent-50: #f2f8f6;
    --color-page-accent-100: #e4f0ed;
    --color-page-accent-200: #c0ddd5;
    --color-page-accent-300: #8ec4b5;
}

/* Meine Praxis: Edles Taubengrau-Blau */
[data-page-theme="praxis"] {
    --color-page-accent: #4a6fa5;
    --color-page-accent-light: #e5ecf4;
    --color-page-accent-hover: #3a5a8a;
    --color-page-accent-50: #f3f6fa;
    --color-page-accent-100: #e5ecf4;
    --color-page-accent-200: #c5d4e8;
    --color-page-accent-300: #8fadd0;
}

/* ============================================
   REDUCED MOTION
   ============================================ */
@media (prefers-reduced-motion: reduce) {
    :root {
        --transition-fast: 0ms;
        --transition-base: 0ms;
        --transition-slow: 0ms;
        --transition-slower: 0ms;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}
