/* ==========================================================================
   ЦЕНТРАЛИЗОВАННЫЕ CSS ПЕРЕМЕННЫЕ
   Все цвета проекта управления ремонтными компаниями
   ========================================================================== */

:root {
  /* ===== ОСНОВНАЯ ЦВЕТОВАЯ ПАЛИТРА (ТЁМНАЯ ТЕМА) ===== */
  
  /* Фоновые цвета */
  --color-bg-primary: #10111A;        /* Основной фон панели/страницы */
  --color-bg-secondary: #1A1C29;      /* Фон карточек и виджетов */
  --color-bg-tertiary: #1E1F2C;       /* Альтернативный фон */
  --color-bg-header: #222;            /* Фон заголовков таблиц */
  --color-bg-hover: #282C3A;          /* Фон при наведении */
  --color-bg-active: #22243A;         /* Фон активного элемента */
  
  /* Текстовые цвета */
  --color-text-primary: #FFFFFF;      /* Основной текст */
  --color-text-secondary: #BBBBBB;    /* Вторичный текст */
  --color-text-tertiary: #888;        /* Третичный текст */
  --color-text-muted: #999;           /* Приглушённый текст */
  --color-text-placeholder: #777;     /* Placeholder текст */
  --color-text-dark: #000000;         /* Тёмный текст */
  
  /* Акцентные цвета */
  --color-accent-primary: #03DAC6;    /* Основной акцент (положительный) */
  --color-accent-negative: #CF6679;   /* Отрицательный/ошибка */
  --color-accent-success: #03DAC6;    /* Успех (=primary) */
  --color-accent-warning: #FFCC00;    /* Предупреждение */
  --color-accent-error: #CF6679;      /* Ошибка (=negative) */
  
  /* Цвета границ */
  --color-border-primary: #373B4A;    /* Основные границы */
  --color-border-secondary: #4D5160;  /* Вторичные границы */
  --color-border-light: #444;         /* Светлые границы */
  --color-border-input: #373B4A;      /* Границы полей ввода */
  --color-border-subtle: rgba(255, 255, 255, 0.1); /* Тонкие границы */
  
  /* Специальные цвета интерфейса */
  --color-blue-light: #709DE0;        /* Светло-голубой */
  --color-blue-primary: rgb(146, 199, 245); /* Основной синий */
  --color-green-primary: rgb(149, 177, 139); /* Основной зелёный */
  --color-green-success: rgb(65, 133, 65);   /* Успешный зелёный */
  --color-green-subtle: rgb(179, 209, 169);  /* Тонкий зелёный */
  --color-green-alt: #00C9C9;         /* Альтернативный зелёный */
  --color-green-semi: #389a4083;      /* Полупрозрачный зелёный */
  --color-yellow-warning: rgb(255, 193, 7); /* Жёлтый предупреждение */
  --color-red-error: rgb(255, 102, 102);     /* Красный ошибка */
  --color-red-alt: #B85565;           /* Альтернативный красный */
  --color-gray-light: rgb(228, 228, 228);    /* Светло-серый */
  --color-gray-medium: #969696;       /* Средний серый */
  --color-gray-dark: #555;            /* Тёмно-серый */
  
  /* Белые цвета */
  --color-white: #FFFFFF;
  --color-white-pure: #fff;
  
  /* Полупрозрачные цвета */
  --color-overlay-dark: rgba(0, 0, 0, 0.8);     /* Тёмное наложение */
  --color-overlay-medium: rgba(0, 0, 0, 0.5);   /* Среднее наложение */
  --color-overlay-light: rgba(0, 0, 0, 0.2);    /* Светлое наложение */
  --color-overlay-subtle: rgba(0, 0, 0, 0.1);   /* Тонкое наложение */
  
  /* Полупрозрачные акценты */
  --color-accent-primary-alpha-05: rgba(3, 218, 198, 0.05);  /* 5% прозрачности */
  --color-accent-primary-alpha-10: rgba(3, 218, 198, 0.1);   /* 10% прозрачности */
  --color-accent-primary-alpha-20: rgba(3, 218, 198, 0.2);   /* 20% прозрачности */
  --color-accent-primary-alpha-25: 0 0 0 2px rgba(3, 218, 198, 0.25); /* 25% прозрачности для box-shadow */
  --color-accent-primary-alpha-50: rgba(3, 218, 198, 0.5);   /* 50% прозрачности */
  --color-accent-primary-alpha-80: rgba(3, 218, 198, 0.8);   /* 80% прозрачности */
  --color-accent-negative-alpha-10: rgba(207, 102, 121, 0.1); /* 10% прозрачности */
  --color-accent-negative-alpha-20: rgba(207, 102, 121, 0.2); /* 20% прозрачности */
  --color-accent-negative-alpha-30: rgba(207, 102, 121, 0.3); /* 30% прозрачности */
  --color-red-alpha-10: rgba(255, 99, 71, 0.1);               /* Красный 10% прозрачности */
  --color-green-alpha-10: rgba(76, 175, 80, 0.1);           /* Зелёный 10% прозрачности */
  
  /* Полупрозрачные белые */
  --color-white-alpha-02: rgba(255, 255, 255, 0.02);  /* 2% прозрачности */
  --color-white-alpha-05: rgba(255, 255, 255, 0.05);  /* 5% прозрачности */
  --color-white-alpha-10: rgba(255, 255, 255, 0.1);   /* 10% прозрачности */
  --color-white-alpha-15: rgba(255, 255, 255, 0.15);  /* 15% прозрачности */
  --color-white-alpha-20: rgba(255, 255, 255, 0.2);   /* 20% прозрачности */
  --color-white-alpha-30: rgba(255, 255, 255, 0.3);   /* 30% прозрачности */
  --color-white-alpha-03: rgba(255, 255, 255, 0.03);  /* 3% прозрачности */
  
  /* ===== ТЕНИ ===== */
  --shadow-small: 0 1px 3px rgba(0, 0, 0, 0.1);
  --shadow-medium: 0 2px 8px rgba(0, 0, 0, 0.2);
  --shadow-large: 0 4px 12px rgba(0, 0, 0, 0.2);
  --shadow-xlarge: 0 5px 15px rgba(0, 0, 0, 0.5);
  --shadow-floating: 0 20px 40px rgba(0, 0, 0, 0.3);
  --shadow-accent: 0 0 0 2px rgba(3, 218, 198, 0.2);
  --shadow-accent-focus: 0 0 5px rgba(3, 218, 198, 0.5);
  --shadow-medium-dark: 0 2px 8px rgba(0, 0, 0, 0.3);   /* Тёмная средняя тень */
  
  /* ===== СОВМЕСТИМЫЕ НАЗВАНИЯ (для обратной совместимости) ===== */
  --panel-bg: var(--color-bg-primary);
  --card-bg: var(--color-bg-secondary);
  --accent: var(--color-accent-primary);
  --text-main: var(--color-text-primary);
  --text-secondary: var(--color-text-secondary);
  --border-color: var(--color-border-primary);
  --border-input: var(--color-border-input);
  --amount-positive: var(--color-accent-primary);
  --amount-negative: var(--color-accent-negative);
  --success: var(--color-accent-success);
  --error: var(--color-accent-error);
  --danger-color: var(--color-accent-negative);
  --input-bg: var(--color-overlay-light);
  --bg-warning: var(--color-accent-negative-alpha-10);
  --bg-normal: var(--color-accent-primary-alpha-10);
  --tab-bg: #2A2D3A;
  --tab-active: var(--color-accent-primary);
  --bg-dark: var(--color-bg-primary);
  --text-primary: var(--color-text-primary);
  --text-on-accent: var(--color-text-dark);
  --accent-positive: var(--color-accent-primary);
  --accent-error: var(--color-accent-negative);
  
  /* ===== РАЗМЕРЫ И ОТСТУПЫ ===== */
  --border-radius-small: 4px;
  --border-radius-medium: 8px;
  --border-radius-large: 12px;
  --border-radius-round: 50%;
  
  --spacing-xs: 4px;
  --spacing-sm: 8px;
  --spacing-md: 16px;
  --spacing-lg: 24px;
  --spacing-xl: 32px;
  --spacing-xxl: 48px;
  
  /* ===== Z-INDEX СИСТЕМА ===== */
  --z-dropdown: 1000;
  --z-modal: 1001;
  --z-tooltip: 1002;
  --z-overlay: 999;
  
  /* ===== ПЛАВНЫЕ ПЕРЕХОДЫ МЕЖДУ ТЕМАМИ ===== */
  --theme-transition: all 0.3s ease;
}

/* ===== ГЛОБАЛЬНЫЕ ПЕРЕХОДЫ ДЛЯ ПЛАВНОГО ПЕРЕКЛЮЧЕНИЯ ТЕМ ===== */
*,
*::before,
*::after {
  transition: background-color 0.3s ease, 
              color 0.3s ease, 
              border-color 0.3s ease, 
              box-shadow 0.3s ease !important;
}

/* ==========================================================================
   СВЕТЛАЯ ТЕМА (ДНЕВНАЯ)
   ========================================================================== */

[data-theme="light"] {
  /* ===== ОСНОВНАЯ ЦВЕТОВАЯ ПАЛИТРА (СВЕТЛАЯ ТЕМА) ===== */
  
  /* Фоновые цвета */
  --color-bg-primary: #FFFFFF;        /* Основной фон панели/страницы */
  --color-bg-secondary: #F5F5F7;      /* Фон карточек и виджетов */
  --color-bg-tertiary: #EEEEEE;       /* Альтернативный фон */
  --color-bg-header: #E8E8E8;         /* Фон заголовков таблиц */
  --color-bg-hover: #F0F0F0;          /* Фон при наведении */
  --color-bg-active: #E0E0E0;         /* Фон активного элемента */
  
  /* Текстовые цвета */
  --color-text-primary: #1A1A1A;      /* Основной текст */
  --color-text-secondary: #4A4A4A;    /* Вторичный текст */
  --color-text-tertiary: #6A6A6A;     /* Третичный текст */
  --color-text-muted: #8A8A8A;        /* Приглушённый текст */
  --color-text-placeholder: #AAAAAA;  /* Placeholder текст */
  --color-text-dark: #FFFFFF;         /* Тёмный текст (инвертирован для светлой темы) */
  
  /* Акцентные цвета для светлой темы */
  --color-accent-primary: #1565C0;    /* Основной акцент - глубокий синий */
  --color-accent-negative: #CF6679;   /* Отрицательный/ошибка */
  --color-accent-success: #1565C0;    /* Успех (=primary) - глубокий синий */
  --color-accent-warning: #FF9800;    /* Предупреждение (чуть темнее для светлой темы) */
  --color-accent-error: #CF6679;      /* Ошибка (=negative) */
  
  /* Цвета границ */
  --color-border-primary: #D0D0D0;    /* Основные границы */
  --color-border-secondary: #B0B0B0;  /* Вторичные границы */
  --color-border-light: #E0E0E0;      /* Светлые границы */
  --color-border-input: #C0C0C0;      /* Границы полей ввода */
  --color-border-subtle: rgba(0, 0, 0, 0.1); /* Тонкие границы */
  
  /* Специальные цвета интерфейса (адаптированы для светлой темы) */
  --color-blue-light: #4A90E2;        /* Светло-голубой */
  --color-blue-primary: rgb(66, 139, 202); /* Основной синий */
  --color-green-primary: rgb(92, 184, 92); /* Основной зелёный */
  --color-green-success: rgb(65, 133, 65);  /* Успешный зелёный */
  --color-green-subtle: rgb(144, 238, 144); /* Тонкий зелёный */
  --color-green-alt: #00A8A8;         /* Альтернативный зелёный */
  --color-green-semi: rgba(40, 167, 69, 0.3); /* Полупрозрачный зелёный */
  --color-yellow-warning: rgb(255, 193, 7);   /* Жёлтый предупреждение */
  --color-red-error: rgb(220, 53, 69);        /* Красный ошибка */
  --color-red-alt: #DC3545;           /* Альтернативный красный */
  --color-gray-light: rgb(108, 117, 125);     /* Светло-серый */
  --color-gray-medium: #6C757D;       /* Средний серый */
  --color-gray-dark: #495057;         /* Тёмно-серый */
  
  /* Белые цвета (инвертированы) */
  --color-white: #1A1A1A;
  --color-white-pure: #000000;
  
  /* Полупрозрачные цвета */
  --color-overlay-dark: rgba(255, 255, 255, 0.9);   /* Светлое наложение */
  --color-overlay-medium: rgba(255, 255, 255, 0.7); /* Среднее наложение */
  --color-overlay-light: rgba(255, 255, 255, 0.5);  /* Лёгкое наложение */
  --color-overlay-subtle: rgba(255, 255, 255, 0.3); /* Тонкое наложение */
  
  /* Полупрозрачные акценты для светлой темы */
  --color-accent-primary-alpha-05: rgba(21, 101, 192, 0.05);
  --color-accent-primary-alpha-10: rgba(21, 101, 192, 0.1);
  --color-accent-primary-alpha-20: rgba(21, 101, 192, 0.2);
  --color-accent-primary-alpha-25: 0 0 0 2px rgba(21, 101, 192, 0.25);
  --color-accent-primary-alpha-50: rgba(21, 101, 192, 0.5);
  --color-accent-primary-alpha-80: rgba(21, 101, 192, 0.8);
  --color-accent-negative-alpha-10: rgba(207, 102, 121, 0.1);
  --color-accent-negative-alpha-20: rgba(207, 102, 121, 0.2);
  --color-accent-negative-alpha-30: rgba(207, 102, 121, 0.3);
  --color-red-alpha-10: rgba(220, 53, 69, 0.1);
  --color-green-alpha-10: rgba(40, 167, 69, 0.1);
  
  /* Полупрозрачные чёрные (вместо белых) */
  --color-white-alpha-02: rgba(0, 0, 0, 0.02);
  --color-white-alpha-05: rgba(0, 0, 0, 0.05);
  --color-white-alpha-10: rgba(0, 0, 0, 0.1);
  --color-white-alpha-15: rgba(0, 0, 0, 0.15);
  --color-white-alpha-20: rgba(0, 0, 0, 0.2);
  --color-white-alpha-30: rgba(0, 0, 0, 0.3);
  --color-white-alpha-03: rgba(0, 0, 0, 0.03);
  
  /* ===== ТЕНИ (адаптированы для светлой темы) ===== */
  --shadow-small: 0 1px 3px rgba(0, 0, 0, 0.1);
  --shadow-medium: 0 2px 8px rgba(0, 0, 0, 0.15);
  --shadow-large: 0 4px 12px rgba(0, 0, 0, 0.15);
  --shadow-xlarge: 0 5px 15px rgba(0, 0, 0, 0.2);
  --shadow-floating: 0 20px 40px rgba(0, 0, 0, 0.1);
  --shadow-accent: 0 0 0 2px rgba(21, 101, 192, 0.3);
  --shadow-accent-focus: 0 0 5px rgba(21, 101, 192, 0.6);
  --shadow-medium-dark: 0 2px 8px rgba(0, 0, 0, 0.2);
  
  /* Цвета опасности для кнопок отзыва/удаления */
  --color-danger: #dc3545;            /* Основной цвет опасности */
  --color-danger-hover: #c82333;      /* Цвет опасности при наведении */
}
/* Shared aliases used by legacy screens; each follows the selected palette. */
:root {
  --color-bg-table-header: var(--color-bg-tertiary);
  --color-bg-table-row: var(--color-bg-secondary);
  --color-bg-tooltip: var(--color-bg-tertiary);
  --color-bg-light: var(--color-bg-secondary);
  --color-text-light: var(--color-text-dark);
  --color-border-dark: var(--color-border-secondary);
  --color-blue-secondary: var(--color-accent-primary);
  --color-blue-alpha-50: var(--color-accent-primary-alpha-50);
  --color-accent-positive: var(--color-accent-success);
  --color-accent-positive-alpha-10: var(--color-accent-primary-alpha-10);
  --color-accent-positive-alpha-20: var(--color-accent-primary-alpha-20);
  --color-accent-secondary: var(--color-green-alt);
  --color-accent-alpha-10: var(--color-accent-primary-alpha-10);
  --color-accent-primary-alpha-15: color-mix(in srgb, var(--color-accent-primary) 15%, transparent);
  --color-accent-warning-alpha-20: color-mix(in srgb, var(--color-accent-warning) 20%, transparent);
  --color-accent-success-alpha-10: var(--color-accent-primary-alpha-10);
  --color-accent-success-dark: color-mix(in srgb, var(--color-accent-success) 85%, black);
  --color-accent-negative-alpha-80: color-mix(in srgb, var(--color-accent-negative) 80%, transparent);
  --color-green-alpha-50: color-mix(in srgb, var(--color-green-success) 50%, transparent);
  --color-red-alpha-50: color-mix(in srgb, var(--color-red-error) 50%, transparent);
  --color-primary: var(--color-accent-primary);
  --color-primary-dark: color-mix(in srgb, var(--color-accent-primary) 85%, black);
  --color-shadow-light: var(--color-overlay-subtle);
  --shadow-card: var(--shadow-medium);
  --shadow-light: var(--shadow-small);
  --shadow-accent-subtle: var(--shadow-accent);
  --border-radius: var(--border-radius-medium);
}

/* Status text needs stronger contrast than decorative accents on pale surfaces. */
:root {
  --color-status-warning-text: var(--color-accent-warning);
  --color-status-negative-text: #f08ca0;
  --color-status-info-text: var(--color-blue-primary);
}
[data-theme="light"] {
  --color-status-warning-text: #875000;
  --color-status-negative-text: #9f3248;
  --color-status-info-text: #1565c0;
}
