/* =====================================================================
   CSS ПЕРЕМЕННЫЕ (ТЕМЫ)
   ===================================================================== */

:root {
    /* Цвета тёмной темы */
    --bg-primary: #0e1621;
    --bg-secondary: #17212b;
    --bg-tertiary: #242f3d;
    --bg-hover: #2b3e50;

    --text-primary: #ffffff;
    --text-secondary: #8a9ba8;
    --text-muted: #6c7883;

    --accent: #5288c1;
    --accent-hover: #6ea0d9;

    --danger: #e53935;
    --danger-hover: #ef5350;

    --border: #1e2c3a;

    --msg-own-bg: #2b5278;
    --msg-own-text: #ffffff;
    --msg-other-bg: #182533;
    --msg-other-text: #ffffff;

    --input-bg: #242f3d;

    --shadow: rgba(0, 0, 0, 0.3);

    /* Новые переменные для мягкого дизайна */
    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 16px;
    --radius-xl: 20px;

    --transition: 0.2s ease;
    --transition-slow: 0.3s ease;
}

[data-theme="light"] {
    /* Цвета светлой темы */
    --bg-primary: #ffffff;
    --bg-secondary: #f0f2f5;
    --bg-tertiary: #ffffff;
    --bg-hover: #e4e6e9;

    --text-primary: #000000;
    --text-secondary: #65676b;
    --text-muted: #8a8d91;

    --accent: #0084ff;
    --accent-hover: #0073e6;

    --danger: #dc3545;
    --danger-hover: #c82333;

    --border: #e4e6e9;

    --msg-own-bg: #0084ff;
    --msg-own-text: #ffffff;
    --msg-other-bg: #e4e6e9;
    --msg-other-text: #000000;

    --input-bg: #f0f2f5;

    --shadow: rgba(0, 0, 0, 0.1);
}

/* =====================================================================
   БАЗОВЫЕ СТИЛИ (RESET)
   ===================================================================== */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
}

html {
    font-size: 16px;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    background: var(--bg-primary);
    color: var(--text-primary);
    line-height: 1.6;
    min-height: 100vh;
    min-height: 100dvh;
    overflow-x: hidden;
}

/* Убираем outline у всех элементов, добавляем свой focus-стиль */
*:focus {
    outline: none;
}

*:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
    border-radius: var(--radius-sm);
}

/* Плавные переходы для интерактивных элементов */
button,
a,
input,
textarea {
    transition: all var(--transition);
}

button {
    cursor: pointer;
    border: none;
    background: none;
    font-family: inherit;
    font-size: inherit;
}

a {
    color: var(--accent);
    text-decoration: none;
}

a:hover {
    color: var(--accent-hover);
}

input,
textarea {
    font-family: inherit;
    font-size: inherit;
}

/* =====================================================================
   СКРОЛЛБАР (МАКСИМАЛЬНО НЕЗАМЕТНЫЙ)
   ===================================================================== */

::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background: var(--border);
    border-radius: 4px;
    transition: background var(--transition);
}

::-webkit-scrollbar-thumb:hover {
    background: var(--text-muted);
}

/* Firefox */
* {
    scrollbar-width: thin;
    scrollbar-color: var(--border) transparent;
}

/* =====================================================================
   УТИЛИТЫ (для будущего использования)
   ===================================================================== */

/* Скрытие элемента, но сохранение места для него */
.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Плавное появление элементов */
@keyframes fadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

/* Плавное появление снизу */
@keyframes slideUp {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}