/* SOLITON — кнопка переключения темы в шапке.

   Все селекторы начинаются с :root[data-theme]:
   - атрибут ставит theme-init.js, поэтому без JavaScript кнопки не видно
     (переключить тему без него всё равно нельзя);
   - такая специфичность перебивает глобальный сброс button { border: none }
     из основных стилей, который в светлой теме продублирован под префиксом. */

.sl-theme-btn { display: none; }

:root[data-theme] .sl-theme-btn {
    --sl-tb-size: 38px;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--sl-tb-size);
    height: var(--sl-tb-size);
    padding: 0;
    margin: 0;
    border: 1px solid var(--border, rgba(255, 255, 255, .16));
    border-radius: 50%;
    background: transparent;
    color: inherit;
    cursor: pointer;
    position: relative;
    transition: border-color .25s var(--ease, ease), background-color .25s var(--ease, ease),
                transform .25s var(--ease, ease);
    -webkit-tap-highlight-color: transparent;
}

:root[data-theme] .sl-theme-btn:hover { border-color: var(--primary, #00f0ff); transform: translateY(-1px); }
:root[data-theme] .sl-theme-btn:active { transform: translateY(0); }
:root[data-theme] .sl-theme-btn:focus-visible { outline: 2px solid var(--primary, #00f0ff); outline-offset: 2px; }

:root[data-theme] .sl-theme-btn svg {
    width: 18px; height: 18px;
    fill: none; stroke: currentColor; stroke-width: 1.8;
    stroke-linecap: round; stroke-linejoin: round;
    position: absolute;
    transition: opacity .25s var(--ease, ease), transform .35s var(--ease, ease);
}

/* в тёмной теме показываем солнце (куда переключимся), в светлой — луну */
:root[data-theme] .sl-theme-btn .sl-tb-sun  { opacity: 1; transform: rotate(0) scale(1); }
:root[data-theme] .sl-theme-btn .sl-tb-moon { opacity: 0; transform: rotate(-90deg) scale(.6); }
:root[data-theme="light"] .sl-theme-btn .sl-tb-sun  { opacity: 0; transform: rotate(90deg) scale(.6); }
:root[data-theme="light"] .sl-theme-btn .sl-tb-moon { opacity: 1; transform: rotate(0) scale(1); }

/* В шапке основных страниц — в паре с круглой кнопкой телефона:
   тот же размер и та же обводка акцентом раздела. */
:root[data-theme] .nav-actions .sl-theme-btn {
    border-color: color-mix(in srgb, var(--primary, #00f0ff) 45%, transparent);
}
@media (max-width: 1180px) {
    :root[data-theme] .nav-actions .sl-theme-btn { --sl-tb-size: 40px; border-color: var(--primary, #00f0ff); }
}

/* В шапке юридических страниц и /vacancies строка ниже кнопки (логотип 26px):
   отрицательные поля, чтобы кнопка не раздвигала шапку ни в одной теме. */
:root[data-theme] .hd-right .sl-theme-btn { margin-block: -6px; }

@media (max-width: 480px) {
    :root[data-theme] .hd-right .sl-theme-btn { --sl-tb-size: 34px; }
    :root[data-theme] .sl-theme-btn svg { width: 16px; height: 16px; }
}

@media (prefers-reduced-motion: reduce) {
    :root[data-theme] .sl-theme-btn,
    :root[data-theme] .sl-theme-btn svg { transition: none; }
}

/* мягкий переход цветов на время переключения (класс ставит theme-init.js) */
:root.sl-theme-anim,
:root.sl-theme-anim *:not(svg):not(path) {
    transition: background-color .3s ease, border-color .3s ease, color .3s ease !important;
}
