/* ============================================================================
   Дизайн-токены и база. Грузится ПЕРВЫМ на всех страницах.
   Светлая тема — :root, тёмная — :root.dark-theme (класс ставит theme.js).
   ========================================================================== */

:root {
    color-scheme: light;

    /* --- фон и поверхности --- */
    --bg-primary:    #f4f6fa;
    --bg-secondary:  #eef1f6;
    --bg-tertiary:   #e5e9f0;
    --surface:       #ffffff;
    --surface-hover: #f2f5f9;
    --overlay:       rgba(20, 32, 56, 0.38);

    /* --- текст --- */
    --text-primary:   #1a2b4a;
    --text-secondary: #3d4a63;
    --text-muted:     #6b7688;

    /* --- границы --- */
    --border:        #d8dee9;
    --border-strong: #c2cbd9;

    /* --- акцент --- */
    --accent:          #2563eb;
    --accent-hover:    #1d4ed8;
    --accent-soft:     #e8f0fe;
    --accent-contrast: #ffffff;

    /* --- семантика --- */
    --danger:       #d33a2c;
    --danger-hover: #b52f22;
    --danger-soft:  #fdecea;
    --success:      #2e7d32;
    --success-soft: #e6f4e7;
    --warning:      #b7791f;
    --warning-soft: #fbf1dd;

    /* --- тени --- */
    --shadow-sm: 0 1px 3px rgba(20, 32, 56, 0.08);
    --shadow-md: 0 4px 14px rgba(20, 32, 56, 0.12);
    --shadow-lg: 0 12px 40px rgba(20, 32, 56, 0.20);

    /* --- отступы (шаг 4 / 8) --- */
    --space-1: 4px;
    --space-2: 8px;
    --space-3: 12px;
    --space-4: 16px;
    --space-5: 20px;
    --space-6: 24px;
    --space-7: 32px;
    --space-8: 48px;

    /* --- скругления --- */
    --radius-sm:   6px;
    --radius:      8px;
    --radius-lg:   12px;
    --radius-pill: 999px;

    /* --- типографика --- */
    --font-sans: 'Inter', 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI',
                 system-ui, sans-serif;
    --text-xs:  12px;
    --text-sm:  14px;
    --text-md:  16px;
    --text-lg:  18px;
    --text-xl:  20px;
    --text-2xl: 24px;
    --fw-normal:   400;
    --fw-medium:   500;
    --fw-semibold: 600;
    --fw-bold:     700;

    /* --- переходы --- */
    --transition:      0.2s ease;
    --transition-slow: 0.3s ease;

    /* --- легаси-алиасы (существующий CSS ссылается на них) --- */
    --primary:       var(--accent);
    --primary-hover: var(--accent-hover);
    --secondary:     #6c757d;
    --bg:            var(--bg-primary);
    --card:          var(--surface);
    --heading:       var(--text-primary);
    --muted:         var(--text-muted);
    --field-bg:      var(--bg-secondary);
}

:root.dark-theme {
    color-scheme: dark;

    --bg-primary:    #12161d;
    --bg-secondary:  #1b212b;
    --bg-tertiary:   #232b37;
    --surface:       #1e252f;
    --surface-hover: #283040;
    --overlay:       rgba(0, 0, 0, 0.55);

    --text-primary:   #e7ecf3;
    --text-secondary: #b9c2d0;
    --text-muted:     #8a95a5;

    --border:        #333d4d;
    --border-strong: #45515f;

    --accent:          #3b82f6;
    --accent-hover:    #60a5fa;
    --accent-soft:     #1c2b45;
    --accent-contrast: #ffffff;

    --danger:       #ef5350;
    --danger-hover: #f0685f;
    --danger-soft:  #3a2220;
    --success:      #66bb6a;
    --success-soft: #1f2e22;
    --warning:      #d8a640;
    --warning-soft: #2f2a1c;

    --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.45);
    --shadow-md: 0 4px 16px rgba(0, 0, 0, 0.50);
    --shadow-lg: 0 14px 44px rgba(0, 0, 0, 0.60);

    --secondary: #79838f;
}

/* ---------------------------------------------------------------- база */

* { box-sizing: border-box; }
[hidden] { display: none !important; }

html { color-scheme: light; }
html.dark-theme { color-scheme: dark; }

body {
    font-family: var(--font-sans);
    color: var(--text-primary);
    background: var(--bg-primary);
    transition: background-color var(--transition), color var(--transition);
}

img { max-width: 100%; }

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

/* ---------------------------------------------------------------- скроллбары */

* {
    scrollbar-width: thin;
    scrollbar-color: var(--border-strong) transparent;
}
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
    background: var(--border-strong);
    border-radius: var(--radius-pill);
    border: 2px solid transparent;
    background-clip: content-box;
}
::-webkit-scrollbar-thumb:hover { background: var(--text-muted); background-clip: content-box; }

/* ---------------------------------------------------------------- переключатель темы */

.theme-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 1px solid var(--border);
    border-radius: var(--radius-pill);
    background: var(--surface);
    color: var(--text-secondary);
    font-size: 16px;
    line-height: 1;
    cursor: pointer;
    transition: background var(--transition), border-color var(--transition),
                transform var(--transition);
}
.theme-toggle:hover { background: var(--surface-hover); border-color: var(--border-strong); }
.theme-toggle:active { transform: scale(0.94); }

.theme-toggle .t-dark { display: none; }
.theme-toggle .t-light { display: inline; }
html.dark-theme .theme-toggle .t-dark { display: inline; }
html.dark-theme .theme-toggle .t-light { display: none; }

.theme-toggle--floating {
    position: fixed;
    top: var(--space-4);
    right: var(--space-4);
    z-index: 2000;
    box-shadow: var(--shadow-sm);
}

@media print {
    .theme-toggle { display: none !important; }
}
