/* ==========================================================================
   Corefor brand layer — Brand System v5
   Подключается после theme.css: брендовые токены, light/dark, lockup,
   переключатель темы и юридический футер.
   ========================================================================== */

/* --- 1. Палитры брендбука ------------------------------------------------ */
:root,
html[data-brand="corefor"] {
    --brand-accent: #2A648B;
    --brand-accent-soft: #AAE2D6;
    --brand-accent-strong: #2A648B;
    --brand-on-accent: #FFFFFF;
    --brand-bg-dark: #1C242B;
    --brand-surface-dark: #26333D;
    --brand-text-dark: #F0F9F8;
    --brand-muted-dark: #B3C7D1;
    --brand-border-dark: #3A4B57;
    --brand-bg-light: #F0F9F8;
    --brand-surface-light: #FFFFFF;
    --brand-text-light: #1C242B;
    --brand-muted-light: #536A78;
    --brand-border-light: #D7E5E7;
}

html[data-brand="minecraft"] {
    --brand-accent: #FF5722;
    --brand-accent-soft: #FF8A50;
    --brand-accent-strong: #B63D17;
    --brand-on-accent: #121212;
    --brand-bg-dark: #121212;
    --brand-surface-dark: #1F1F1F;
    --brand-text-dark: #F5F1EE;
    --brand-muted-dark: #B9B1AC;
    --brand-border-dark: #39312D;
    --brand-bg-light: #F7F5F3;
    --brand-surface-light: #FFFFFF;
    --brand-text-light: #201C19;
    --brand-muted-light: #675E58;
    --brand-border-light: #DDD5D0;
}

/* --- 2. Семантические токены темы --------------------------------------- */
html[data-theme="dark"] {
    color-scheme: dark;

    --cf-bg: var(--brand-bg-dark);
    --cf-surface: var(--brand-surface-dark);
    --cf-sunken: color-mix(in srgb, var(--brand-bg-dark) 72%, #000000);
    --cf-elevated: color-mix(in srgb, var(--brand-surface-dark) 84%, var(--brand-text-dark));
    --cf-text: var(--brand-text-dark);
    --cf-muted: var(--brand-muted-dark);
    --cf-border: var(--brand-border-dark);
    --cf-accent: var(--brand-accent);
    --cf-accent-strong: var(--brand-accent-strong);
    --cf-accent-hover: color-mix(in srgb, var(--brand-accent) 84%, #000000);
    --cf-on-accent: var(--brand-on-accent);
    --cf-text-accent: var(--brand-accent);
    --cf-text-accent-hover: color-mix(in srgb, var(--brand-accent) 74%, #FFFFFF);
    --cf-wordmark: #F0F9F8;
    --cf-wordmark-accent: #639CC1;

    --cf-overlay: color-mix(in srgb, var(--cf-text) 5%, transparent);
    --cf-overlay-strong: color-mix(in srgb, var(--cf-text) 9%, transparent);
    --cf-hover: color-mix(in srgb, var(--cf-text) 8%, transparent);
    --cf-hairline: color-mix(in srgb, var(--cf-text) 12%, transparent);
    --cf-glass: color-mix(in srgb, var(--cf-bg) 76%, transparent);
    --cf-glass-strong: color-mix(in srgb, var(--cf-bg) 95%, transparent);
    --cf-scrim: rgba(0, 0, 0, 0.6);
    --cf-shadow: 0 18px 40px rgba(0, 0, 0, 0.45);
    --cf-shadow-sm: 0 8px 22px rgba(0, 0, 0, 0.35);
}

html[data-theme="light"] {
    color-scheme: light;

    --cf-bg: var(--brand-bg-light);
    --cf-surface: var(--brand-surface-light);
    --cf-sunken: color-mix(in srgb, var(--brand-bg-light) 93%, var(--brand-text-light));
    --cf-elevated: #FFFFFF;
    --cf-text: var(--brand-text-light);
    --cf-muted: var(--brand-muted-light);
    --cf-border: var(--brand-border-light);
    --cf-accent: var(--brand-accent);
    --cf-accent-strong: var(--brand-accent-strong);
    --cf-accent-hover: color-mix(in srgb, var(--brand-accent) 82%, #000000);
    --cf-on-accent: var(--brand-on-accent);
    --cf-text-accent: var(--brand-accent-strong);
    --cf-text-accent-hover: color-mix(in srgb, var(--brand-accent-strong) 78%, #000000);
    --cf-wordmark: #2A648B;
    --cf-wordmark-accent: #3783B5;

    --cf-overlay: color-mix(in srgb, var(--cf-text) 4%, transparent);
    --cf-overlay-strong: color-mix(in srgb, var(--cf-text) 7%, transparent);
    --cf-hover: color-mix(in srgb, var(--cf-text) 6%, transparent);
    --cf-hairline: color-mix(in srgb, var(--cf-text) 13%, transparent);
    --cf-glass: color-mix(in srgb, var(--cf-surface) 82%, transparent);
    --cf-glass-strong: color-mix(in srgb, var(--cf-surface) 96%, transparent);
    --cf-scrim: rgba(32, 28, 25, 0.42);
    --cf-shadow: 0 18px 40px rgba(35, 27, 22, 0.14);
    --cf-shadow-sm: 0 8px 22px rgba(35, 27, 22, 0.10);
}

/* Продуктовые уточнения из брендбука */
html[data-brand="minecraft"][data-theme="dark"] {
    --cf-text-accent: #FF5722;
    --cf-on-accent: #121212;
    --bs-link-color-rgb: 255, 87, 34;
    --bs-link-hover-color-rgb: 255, 131, 92;
}

html[data-brand="minecraft"][data-theme="light"] {
    --cf-text-accent: #B63D17;
    --cf-on-accent: #121212;
    --bs-link-color-rgb: 182, 61, 23;
    --bs-link-hover-color-rgb: 142, 48, 18;
}

html[data-brand="corefor"][data-theme="dark"] {
    --cf-accent: #AAE2D6;
    --cf-accent-strong: #2A648B;
    --cf-accent-hover: #F0F9F8;
    --cf-on-accent: #1C242B;
    --cf-text-accent: #AAE2D6;
    --cf-text-accent-hover: #F0F9F8;
    --bs-link-color-rgb: 170, 226, 214;
    --bs-link-hover-color-rgb: 240, 249, 248;
}

html[data-brand="corefor"][data-theme="light"] {
    --cf-accent: #2A648B;
    --cf-accent-strong: #2A648B;
    --cf-on-accent: #FFFFFF;
    --cf-text-accent: #2A648B;
    --cf-text-accent-hover: #1F4E6F;
    --bs-link-color-rgb: 42, 100, 139;
    --bs-link-hover-color-rgb: 31, 78, 111;
}

/* --- 3. Маппинг на переменные theme.css / Astryx ------------------------- */
html[data-theme] {
    --bg-dark: var(--cf-bg);
    --surface: var(--cf-surface);
    --surface-sunken: var(--cf-sunken);
    --popover: var(--cf-surface);
    --text-main: var(--cf-text);
    --text-muted: var(--cf-muted);
    --border: var(--cf-border);

    --primary: var(--cf-text-accent);
    --primary-hover: var(--cf-text-accent-hover);
    --primary-strong: var(--cf-accent-strong);
    --primary-strong-hover: var(--cf-accent-hover);

    --color-background: var(--cf-bg);
    --color-background-body: var(--cf-bg);
    --color-background-surface: var(--cf-surface);
    --color-background-card: var(--cf-surface);
    --color-background-popover: var(--cf-surface);
    --color-background-muted: var(--cf-overlay);
    --surface-1: var(--cf-overlay);
    --color-surface: var(--cf-surface);
    --color-surface-elevated: var(--cf-elevated);
    --color-border: var(--cf-border);
    --color-border-emphasized: color-mix(in srgb, var(--cf-text) 30%, transparent);
    --color-text-primary: var(--cf-text);
    --color-text-secondary: var(--cf-muted);
    --color-text-tertiary: color-mix(in srgb, var(--cf-muted) 74%, transparent);
    --color-text-disabled: color-mix(in srgb, var(--cf-muted) 64%, transparent);
    --color-icon-primary: var(--cf-text);
    --color-icon-secondary: var(--cf-muted);
    --color-icon-disabled: color-mix(in srgb, var(--cf-muted) 64%, transparent);
    --color-icon-accent: var(--cf-accent);
    --color-primary: var(--cf-accent);
    --color-primary-hover: var(--cf-accent-hover);
    --color-primary-active: var(--cf-accent-hover);
    --color-primary-strong: var(--cf-accent-strong);
    --color-primary-strong-hover: var(--cf-accent-hover);
    --color-on-primary: var(--cf-on-accent);
    --color-accent: var(--cf-accent);
    --color-accent-muted: color-mix(in srgb, var(--cf-accent) 22%, transparent);
    --color-on-accent: var(--cf-on-accent);
    --color-text-accent: var(--cf-text-accent);
    --color-link: var(--cf-text-accent);
    --color-overlay: var(--cf-scrim);
    --color-overlay-hover: var(--cf-overlay);
    --color-overlay-pressed: var(--cf-overlay-strong);
    --color-skeleton: var(--cf-sunken);
    --color-track: var(--cf-overlay-strong);
    --color-shadow: var(--cf-shadow);

    --glass-bg: var(--cf-glass);
    --glass-bg-solid: var(--cf-glass-strong);
    --glass-border: var(--cf-hairline);

    --focus-outline-color: var(--cf-accent);
    --shadow-lg: var(--cf-shadow);

    --bs-body-bg: var(--cf-bg);
    --bs-body-color: var(--cf-text);
    --bs-secondary-color: var(--cf-muted);
    --bs-border-color: var(--cf-border);
    --bs-secondary-bg: var(--cf-sunken);
    --bs-tertiary-bg: var(--cf-sunken);
    --bs-emphasis-color: var(--cf-text);
    --bs-heading-color: var(--cf-text);
    --bs-link-color: var(--cf-text-accent);
    --bs-link-hover-color: var(--cf-text-accent-hover);
    --bs-primary: var(--cf-accent);
}

html[data-brand="minecraft"] {
    --bs-primary-rgb: 255, 87, 34;
}

html[data-brand="corefor"] {
    --bs-primary-rgb: 42, 100, 139;
}

/* --- 4. База ------------------------------------------------------------- */
body.corefor-body {
    background-color: var(--cf-bg);
    color: var(--cf-text);
}

h1, h2, h3, h4, h5, h6 {
    color: var(--cf-text);
}

/* Fallback для «голых» <a>: компонентные классы выше по специфичности сохраняют свой цвет */
a {
    color: var(--cf-text-accent);
}

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

hr {
    border-color: var(--cf-hairline);
    opacity: 1;
}

::selection {
    background: var(--cf-accent);
    color: var(--cf-on-accent);
}

::-webkit-scrollbar-thumb {
    background: var(--cf-hairline);
}

::-webkit-scrollbar-thumb:hover {
    background: color-mix(in srgb, var(--cf-text) 26%, transparent);
}

/* --- 5. Акцентные контролы: один контрастный рецепт в обеих темах -------- */
.btn-primary {
    --bs-btn-color: var(--cf-on-accent);
    --bs-btn-bg: var(--cf-accent);
    --bs-btn-border-color: var(--cf-accent);
    --bs-btn-hover-color: var(--cf-on-accent);
    --bs-btn-hover-bg: var(--cf-accent-hover);
    --bs-btn-hover-border-color: var(--cf-accent-hover);
    --bs-btn-active-color: var(--cf-on-accent);
    --bs-btn-active-bg: var(--cf-accent-hover);
    --bs-btn-active-border-color: var(--cf-accent-hover);
    --bs-btn-disabled-color: var(--cf-on-accent);
    --bs-btn-disabled-bg: var(--cf-accent);
    --bs-btn-disabled-border-color: var(--cf-accent);
    box-shadow: 0 4px 12px color-mix(in srgb, var(--cf-accent) 28%, transparent);
}

.btn-primary:hover:not(:disabled),
.btn-primary:active:not(:disabled) {
    box-shadow: 0 6px 16px color-mix(in srgb, var(--cf-accent) 34%, transparent);
}

.corefor-cta {
    background: var(--cf-accent);
    color: var(--cf-on-accent);
}

.corefor-cta:hover {
    background: var(--cf-accent-hover);
    color: var(--cf-on-accent);
}

.corefor-cta:focus-visible {
    outline: none;
    box-shadow: inset 0 0 0 3px var(--cf-on-accent);
}

.corefor-play:hover {
    background: var(--cf-accent);
    border-color: var(--cf-accent);
    color: var(--cf-on-accent);
}

.dropdown-menu .dropdown-item.active,
.dropdown-menu .dropdown-item:active {
    background-color: var(--cf-accent);
    color: var(--cf-on-accent);
}

.pagination {
    --bs-pagination-active-color: var(--cf-on-accent);
}

.corefor-shop .package-card-discount {
    background: var(--cf-accent);
    color: var(--cf-on-accent);
    box-shadow: 0 4px 12px color-mix(in srgb, var(--cf-accent) 30%, transparent);
}

.corefor-shop .corefor-shop-cart-badge {
    background: var(--cf-surface);
    color: var(--cf-accent-strong);
}

/* Текстовый акцент: на тёмном — яркий, на светлом — strong (WCAG AA) */
.corefor-badge--new,
.corefor-pin,
.corefor-news-link,
.corefor-news-title a:hover,
.corefor-faq-accordion .accordion-button:not(.collapsed),
.corefor-launcher-feature i {
    color: var(--cf-text-accent);
}

.corefor-news-link:hover {
    color: var(--cf-text-accent-hover);
}

.corefor-shop-more {
    color: var(--cf-text-accent);
    font-weight: 600;
}

.corefor-shop-more:hover {
    color: var(--cf-text-accent-hover);
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Catalog (shop): пагинация — акцентная заливка + on-accent */
html[data-theme] .corefor-shop .corefor-shop-pagination .page-item.active .page-link {
    border-color: var(--cf-accent);
    background: var(--cf-accent);
    color: var(--cf-on-accent);
}

/* --- 6. Поверхности: единые токены вместо литералов ---------------------- */
.corefor-side-block,
.corefor-user {
    background: var(--cf-overlay);
    border-color: var(--cf-hairline);
}

.corefor-mobile-header {
    background: var(--cf-glass);
    border-bottom-color: var(--cf-hairline);
}

.corefor-footer {
    border-top-color: var(--cf-border);
    background: color-mix(in srgb, var(--cf-bg) 84%, var(--cf-surface));
}

.form-control,
.form-select {
    background-color: var(--cf-surface);
    border-color: var(--cf-border);
    color: var(--cf-text);
}

.form-control:focus,
.form-select:focus {
    background-color: var(--cf-surface);
    border-color: var(--cf-text-accent);
    color: var(--cf-text);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--cf-accent) 20%, transparent);
}

.modal-backdrop.show {
    background-color: var(--cf-scrim);
}

/* --- 7. Светлая тема: компоненты с литеральными цветами ------------------ */
html[data-theme="light"] .corefor-bg {
    background:
        radial-gradient(1100px 520px at 84% -10%, rgba(255, 87, 34, 0.08), transparent 62%),
        radial-gradient(900px 520px at 6% 108%, rgba(42, 100, 139, 0.07), transparent 60%),
        var(--cf-bg);
}

html[data-theme="light"] .corefor-bg::after {
    display: none;
}

html[data-theme="light"] .corefor-sidebar {
    border-right-color: var(--cf-hairline);
    background: var(--cf-glass);
}

html[data-theme="light"] .corefor-mh-btn {
    background: var(--cf-overlay);
    border-color: var(--cf-hairline);
    color: var(--cf-text);
}

html[data-theme="light"] .corefor-mh-btn:hover,
html[data-theme="light"] .corefor-mh-btn:active {
    background: var(--cf-hover);
    color: var(--cf-text);
}

html[data-theme="light"] .corefor-mh-brand {
    color: var(--cf-text);
}

html[data-theme="light"] .corefor-mh-avatar,
html[data-theme="light"] .corefor-mh-avatar-fallback {
    border-color: var(--cf-hairline);
    background: var(--cf-overlay);
}

html[data-theme="light"] .corefor-mh-avatar-fallback {
    color: var(--cf-muted);
}

html[data-theme="light"] .corefor-avatar {
    border-color: var(--cf-hairline);
    background: var(--cf-overlay);
    box-shadow: var(--cf-shadow-sm);
}

html[data-theme="light"] .corefor-avatar-fallback {
    background: var(--cf-overlay);
    border-color: var(--cf-hairline);
    color: var(--cf-muted);
}

html[data-theme="light"] .corefor-icon-btn,
html[data-theme="light"] .corefor-user .notifications-dropdown .nav-link {
    color: var(--cf-muted);
}

html[data-theme="light"] .corefor-social {
    color: var(--social-color, var(--cf-muted));
}

html[data-theme="light"] .corefor-icon-btn:hover,
html[data-theme="light"] .corefor-social:hover,
html[data-theme="light"] .corefor-user .notifications-dropdown .nav-link:hover {
    background: var(--cf-hover);
    color: var(--cf-text);
}

html[data-theme="light"] .corefor-social:hover {
    color: var(--social-color, var(--cf-text));
}

html[data-theme="light"] .corefor-badge--live {
    color: #1B5E20;
}

html[data-theme="light"] .corefor-empty {
    color: var(--cf-muted);
}

html[data-theme="light"] .corefor-nav-link {
    color: var(--cf-muted);
}

html[data-theme="light"] .corefor-nav-link:hover {
    background: var(--cf-hover);
    color: var(--cf-text);
}

html[data-theme="light"] .corefor-nav-link.active {
    background: color-mix(in srgb, var(--cf-accent) 12%, transparent);
    color: var(--cf-text);
}

html[data-theme="light"] .corefor-nav-group-label {
    color: var(--cf-muted);
}

html[data-theme="light"] .corefor-divider {
    border-bottom-color: var(--cf-hairline);
}

html[data-theme="light"] .news-article {
    background: var(--cf-surface);
    border-color: var(--cf-hairline);
}

html[data-theme="light"] .news-article h3 {
    border-bottom-color: var(--cf-hairline);
}

html[data-theme="light"] .news-article h3 a,
html[data-theme="light"] .news-article .article-meta .author {
    color: var(--cf-text);
}

html[data-theme="light"] .news-article .article-meta .author img {
    border-color: var(--cf-hairline);
}

html[data-theme="light"] .news-article .article-content {
    color: var(--cf-text);
}

html[data-theme="light"] .btn-secondary {
    --bs-btn-color: var(--cf-text);
    --bs-btn-bg: var(--cf-surface);
    --bs-btn-border-color: var(--cf-border);
    --bs-btn-hover-color: var(--cf-text);
    --bs-btn-hover-bg: var(--cf-elevated);
    --bs-btn-hover-border-color: var(--cf-text-accent);
    --bs-btn-active-color: var(--cf-text);
    --bs-btn-active-bg: var(--cf-sunken);
    --bs-btn-active-border-color: var(--cf-text-accent);
    --bs-btn-disabled-color: var(--cf-muted);
    --bs-btn-disabled-bg: var(--cf-sunken);
    --bs-btn-disabled-border-color: var(--cf-border);
}

html[data-theme="light"] .btn-outline-light {
    --bs-btn-color: var(--cf-text);
    --bs-btn-border-color: var(--cf-border);
    --bs-btn-hover-color: #FFFFFF;
    --bs-btn-hover-bg: var(--cf-text);
    --bs-btn-hover-border-color: var(--cf-text);
}

html[data-theme="light"] .btn-danger {
    --bs-btn-color: #B3261E;
    --bs-btn-bg: rgba(211, 47, 47, 0.08);
    --bs-btn-border-color: rgba(211, 47, 47, 0.35);
    --bs-btn-hover-color: #FFFFFF;
    --bs-btn-hover-bg: #B3261E;
    --bs-btn-hover-border-color: #B3261E;
    --bs-btn-active-color: #FFFFFF;
    --bs-btn-active-bg: #8C1A14;
    --bs-btn-active-border-color: #8C1A14;
}

html[data-theme="light"] .card {
    --bs-card-bg: var(--cf-surface);
    --bs-card-border-color: var(--cf-border);
    --bs-card-color: var(--cf-text);
    --bs-card-cap-bg: var(--cf-sunken);
    --bs-card-cap-color: var(--cf-text);
}

html[data-theme="light"] .card-footer {
    border-top-color: var(--cf-border);
}

html[data-theme="light"] .dropdown-menu {
    --bs-dropdown-bg: var(--cf-surface);
    --bs-dropdown-border-color: var(--cf-border);
    --bs-dropdown-color: var(--cf-text);
    --bs-dropdown-link-color: var(--cf-text);
    --bs-dropdown-link-hover-color: var(--cf-text);
    --bs-dropdown-link-hover-bg: var(--cf-hover);
    --bs-dropdown-divider-bg: var(--cf-border);
}

html[data-theme="light"] .modal {
    --bs-modal-bg: var(--cf-surface);
    --bs-modal-color: var(--cf-text);
    --bs-modal-border-color: var(--cf-border);
    --bs-modal-header-border-color: var(--cf-border);
    --bs-modal-footer-border-color: var(--cf-border);
}

html[data-theme="light"] .form-control::placeholder {
    color: var(--cf-muted);
    opacity: 0.82;
}

html[data-theme="light"] .form-check-input {
    background-color: var(--cf-surface);
    border-color: var(--cf-border);
}

html[data-theme="light"] .form-check-input:checked {
    background-color: var(--cf-accent);
    border-color: var(--cf-accent);
}

html[data-theme="light"] .form-check-input:focus {
    border-color: var(--cf-accent);
    box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--cf-accent) 25%, transparent);
}

html[data-theme="light"] .table {
    --bs-table-color: var(--cf-text);
    --bs-table-border-color: var(--cf-border);
    --bs-table-hover-bg: var(--cf-hover);
    --bs-table-hover-color: var(--cf-text);
    --bs-table-striped-bg: color-mix(in srgb, var(--cf-text) 3%, transparent);
    --bs-table-striped-color: var(--cf-text);
}

html[data-theme="light"] .pagination {
    --bs-pagination-bg: var(--cf-surface);
    --bs-pagination-color: var(--cf-text);
    --bs-pagination-border-color: var(--cf-border);
    --bs-pagination-hover-bg: var(--cf-hover);
    --bs-pagination-hover-color: var(--cf-text);
    --bs-pagination-hover-border-color: var(--cf-border);
    --bs-pagination-disabled-bg: var(--cf-sunken);
    --bs-pagination-disabled-color: var(--cf-muted);
    --bs-pagination-disabled-border-color: var(--cf-border);
}

html[data-theme="light"] .progress {
    --bs-progress-bg: color-mix(in srgb, var(--cf-text) 10%, transparent);
}

html[data-theme="light"] .alert-success {
    --bs-alert-bg: #E8F5E9;
    --bs-alert-border-color: #A5D6A7;
    --bs-alert-color: #1B5E20;
}

html[data-theme="light"] .alert-danger {
    --bs-alert-bg: #FDECEA;
    --bs-alert-border-color: #F2B8B5;
    --bs-alert-color: #7F1D1D;
}

html[data-theme="light"] .alert-warning {
    --bs-alert-bg: #FFF4E5;
    --bs-alert-border-color: #FFD8A8;
    --bs-alert-color: #7A4A00;
}

html[data-theme="light"] .alert-info {
    --bs-alert-bg: #E7F3FE;
    --bs-alert-border-color: #B6DCF7;
    --bs-alert-color: #0D47A1;
}

html[data-theme="light"] .corefor-badge--limited {
    color: #7A4A00;
    border-color: rgba(180, 100, 0, 0.30);
    background: rgba(255, 152, 0, 0.12);
}

html[data-theme="light"] .corefor-banner {
    --banner-accent: #1565C0;
    background: var(--cf-surface);
    border-color: var(--cf-border);
    border-left-color: var(--banner-accent);
}

html[data-theme="light"] .corefor-server-progress {
    background: color-mix(in srgb, var(--cf-text) 10%, transparent);
}

html[data-theme="light"] .corefor-hero-chips li {
    background: var(--cf-overlay);
    border-color: var(--cf-hairline);
}

html[data-theme="light"] .corefor-tile--hero {
    background:
        radial-gradient(circle at 82% 16%, rgba(255, 87, 34, 0.10), transparent 44%),
        linear-gradient(145deg, rgba(255, 255, 255, 0.65), transparent 54%),
        var(--cf-surface);
}

html[data-theme="light"] a.corefor-tile:hover,
html[data-theme="light"] .corefor-download-card:hover {
    border-color: rgba(255, 87, 34, 0.45);
    box-shadow: var(--cf-shadow-sm);
}

html[data-theme="light"] .corefor-live,
html[data-theme="light"] .corefor-copy-status {
    color: #2E7D32;
}

html[data-theme="light"] .corefor-copy:hover {
    background: var(--cf-hover);
    color: var(--cf-text);
}

html[data-theme="light"] .corefor-copy-address {
    color: var(--cf-text);
}

html[data-theme="light"] .corefor-gallery-empty {
    color: var(--cf-muted);
    border-color: var(--cf-hairline);
}

html[data-theme="light"] .corefor-gallery-empty i {
    color: var(--cf-muted);
}

html[data-theme="light"] .corefor-gallery-empty:hover {
    color: var(--cf-text);
}

html[data-theme="light"] .corefor-download-icon {
    color: var(--cf-text);
}

html[data-theme="light"] .corefor-auth-logo {
    filter: drop-shadow(0 6px 14px rgba(35, 27, 22, 0.18));
}

html[data-theme="light"] .corefor-field-label {
    color: var(--cf-text);
}

html[data-theme="light"] .corefor-field-icon {
    color: var(--cf-muted);
}

html[data-theme="light"] .corefor-field .form-control::placeholder {
    color: var(--cf-muted);
    opacity: 0.8;
}

html[data-theme="light"] .corefor-field-reveal {
    color: var(--cf-muted);
}

html[data-theme="light"] .corefor-field-reveal:hover {
    color: var(--cf-text);
    background: var(--cf-hover);
}

html[data-theme="light"] .corefor-auth-footer {
    color: var(--cf-muted);
}

html[data-theme="light"] .corefor-consent .form-check-label {
    color: var(--cf-muted);
}

html[data-theme="light"] .corefor-toast {
    background: var(--cf-surface);
    border-color: var(--cf-border);
    box-shadow: var(--cf-shadow-sm);
    color: var(--cf-text);
}

html[data-theme="light"] .corefor-toast i {
    color: #2E7D32;
}

html[data-theme="light"] .corefor-toast--error {
    border-color: rgba(179, 38, 30, 0.35);
}

html[data-theme="light"] .corefor-toast--error i {
    color: #B3261E;
}

html[data-theme="light"] .corefor-shop .alert {
    background: var(--cf-surface);
    border-color: var(--cf-border);
}

html[data-theme="light"] .corefor-shop .alert i {
    color: #7A4A00;
}

html[data-theme="light"] .corefor-shop .list-group-item:hover,
html[data-theme="light"] .corefor-shop-tree-link:hover {
    background: var(--cf-hover);
}

html[data-theme="light"] .corefor-shop .list-group-item.active,
html[data-theme="light"] .corefor-shop-tree-link.active {
    background: color-mix(in srgb, var(--cf-accent) 14%, transparent);
    color: var(--cf-text);
}

html[data-theme="light"] .corefor-shop .qty-stepper {
    background: var(--cf-overlay);
    border-color: var(--cf-hairline);
}

html[data-theme="light"] .corefor-shop .qty-stepper-btn:hover {
    background: var(--cf-hover);
}

html[data-theme="light"] .corefor-shop-toolbar,
html[data-theme="light"] .corefor-shop-summary,
html[data-theme="light"] .corefor-cart-items,
html[data-theme="light"] .corefor-cart-summary,
html[data-theme="light"] .corefor-product-panel {
    background: var(--cf-surface);
    border-color: var(--cf-border);
}

html[data-theme="light"] .corefor-shop-toolbar-balance,
html[data-theme="light"] .corefor-shop-summary,
html[data-theme="light"] .corefor-cart-item,
html[data-theme="light"] .corefor-cart-grand,
html[data-theme="light"] .corefor-shop .list-group-flush .list-group-item {
    border-color: var(--cf-border);
}

html[data-theme="light"] .corefor-cart-media {
    background: var(--cf-sunken);
    border-color: var(--cf-hairline);
}

html[data-theme="light"] .corefor-cart-media i {
    color: var(--cf-muted);
}

html[data-theme="light"] .corefor-cart-var {
    background: var(--cf-overlay);
    border-color: var(--cf-hairline);
}

html[data-theme="light"] .corefor-cart-clear:hover {
    color: #B3261E;
}

html[data-theme="light"] .corefor-shop .package-card-media,
html[data-theme="light"] .corefor-shop .corefor-product-media {
    background:
        radial-gradient(circle at 50% 30%, color-mix(in srgb, var(--cf-text) 5%, transparent), transparent 55%),
        var(--cf-sunken);
    border-color: var(--cf-hairline);
}

html[data-theme="light"] .corefor-shop .package-card-placeholder {
    color: color-mix(in srgb, var(--cf-text) 22%, transparent);
}

html[data-theme="light"] .corefor-shop .package-card-incart {
    background: rgba(27, 94, 32, 0.10);
    color: #1B5E20;
}

html[data-theme="light"] .corefor-shop .modal-content {
    background: var(--cf-surface);
    box-shadow: var(--cf-shadow);
}

html[data-theme="light"] .corefor-shop .modal-body,
html[data-theme="light"] .corefor-shop .corefor-product-description {
    color: var(--cf-text);
}

html[data-theme="light"] .corefor-shop .corefor-product-media > i {
    color: var(--cf-muted);
}

html[data-theme="light"] .corefor-shop .corefor-product-status {
    color: var(--cf-text-accent);
}

html[data-theme="light"] .corefor-shop .table > tbody > tr > td {
    color: var(--cf-text);
}

html[data-theme="light"] .corefor-shop .table > tbody > tr:hover > * {
    background: var(--cf-overlay);
}

html[data-theme="light"] .corefor-shop .shop-total {
    color: var(--cf-text);
}

html[data-theme="light"] .corefor-shop .package-card:hover,
html[data-theme="light"] .corefor-shop .row.gy-3 > div > .card:hover {
    box-shadow: var(--cf-shadow-sm);
}

html[data-theme="light"] .corefor-history-row {
    border-bottom-color: var(--cf-hairline);
}

html[data-theme="light"] .corefor-history-pill--success {
    background: rgba(27, 94, 32, 0.10);
    color: #1B5E20;
}

html[data-theme="light"] .corefor-history-pill--warning {
    background: rgba(122, 74, 0, 0.10);
    color: #7A4A00;
}

html[data-theme="light"] .corefor-history-pill--danger {
    background: rgba(179, 38, 30, 0.10);
    color: #B3261E;
}

html[data-theme="light"] .corefor-history-pill--info {
    background: rgba(13, 71, 161, 0.10);
    color: #0D47A1;
}

html[data-theme="light"] .corefor-history-pill--primary,
html[data-theme="light"] .corefor-history-pill--secondary {
    background: var(--cf-overlay);
}

html[data-theme="light"] .corefor-history-empty i {
    color: var(--cf-muted);
}

/* Мобильный drawer: светлая панель и мягкий скрим */
@media (max-width: 991.98px) {
    html[data-theme="light"] .corefor-sidebar {
        background: var(--cf-glass-strong);
        box-shadow: 0 24px 64px rgba(35, 27, 22, 0.22);
    }

    html[data-theme="light"] .corefor-backdrop {
        background: rgba(32, 28, 25, 0.35);
    }
}

/* --- Логотипы платёжных шлюзов: вариант под текущую тему ------------------ */
.corefor-gateway-logo-dark {
    display: none;
}

html[data-theme="dark"] .corefor-gateway-logo-dark {
    display: inline-block;
}

html[data-theme="dark"] .corefor-gateway-logo-light {
    display: none;
}

/* --- 8. Lockup родительского бренда -------------------------------------- */
.corefor-lockup {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    color: var(--cf-text);
    line-height: 1;
    text-decoration: none;
}

.corefor-lockup:hover {
    color: var(--cf-text);
    text-decoration: none;
    opacity: 0.9;
}

.corefor-lockup:focus-visible {
    outline: 2px solid var(--cf-accent);
    outline-offset: 3px;
    border-radius: 4px;
}

.corefor-lockup-mark {
    display: block;
    flex: 0 0 auto;
    width: auto;
    height: 30px;
}

.corefor-lockup-mark--light {
    display: none;
}

html[data-theme="light"] .corefor-lockup-mark--light {
    display: block;
}

html[data-theme="light"] .corefor-lockup-mark--dark {
    display: none;
}

.corefor-lockup-product {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--cf-text-accent);
    font-size: 15px;
    font-weight: 600;
    letter-spacing: -0.01em;
    white-space: nowrap;
}

.corefor-lockup-product::before {
    content: "";
    width: 1px;
    height: 16px;
    background: color-mix(in srgb, var(--cf-text) 24%, transparent);
}

.corefor-lockup--sm {
    gap: 8px;
}

.corefor-lockup--sm .corefor-lockup-mark {
    height: 24px;
}

.corefor-lockup--sm .corefor-lockup-product {
    font-size: 13px;
    gap: 8px;
}

.corefor-lockup--sm .corefor-lockup-product::before {
    height: 14px;
}

.corefor-lockup--auth {
    justify-content: center;
    gap: 12px;
    margin: 0 0 22px;
}

.corefor-lockup--auth .corefor-lockup-mark {
    height: 44px;
}

.corefor-lockup--auth .corefor-lockup-product {
    font-size: 17px;
}

.corefor-lockup--footer {
    gap: 9px;
}

.corefor-lockup--footer .corefor-lockup-mark {
    height: 26px;
}

.corefor-lockup--footer .corefor-lockup-product {
    gap: 8px;
    font-size: 13px;
}

.corefor-lockup--footer .corefor-lockup-product::before {
    height: 14px;
}

.corefor-mh-brand .corefor-lockup {
    gap: 6px;
}

.corefor-mh-brand .corefor-lockup-mark {
    width: auto;
    height: 24px;
}

@media (max-width: 400px) {
    .corefor-mobile-header .corefor-lockup-product {
        display: none;
    }
}

/* --- 9. Переключатель темы ---------------------------------------------- */
.corefor-theme-toggle {
    display: inline-flex;
    gap: 2px;
    padding: 3px;
    background: var(--cf-overlay);
    border: 1px solid var(--cf-hairline);
    border-radius: 999px;
}

.corefor-theme-toggle button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 28px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: var(--cf-muted);
    font-size: 13px;
    cursor: pointer;
    transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}

.corefor-theme-toggle button:hover {
    background: var(--cf-hover);
    color: var(--cf-text);
}

.corefor-theme-toggle button[aria-pressed="true"] {
    background: color-mix(in srgb, var(--cf-accent) 16%, transparent);
    color: var(--cf-text-accent);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--cf-accent) 28%, transparent);
}

.corefor-mh-btn:focus-visible {
    outline: 2px solid var(--cf-accent);
    outline-offset: 2px;
}

.corefor-sidebar-action {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.corefor-theme-switch-icon--light {
    display: none;
}

html[data-theme="dark"] .corefor-theme-switch-icon--light {
    display: inline-block;
}

html[data-theme="dark"] .corefor-theme-switch-icon--dark {
    display: none;
}

/* --- 10. Футер: юр. блок и реквизиты ------------------------------------ */
.corefor-footer-grid {
    display: grid;
    grid-template-columns: minmax(220px, 1.5fr) repeat(auto-fit, minmax(150px, 1fr));
    gap: 30px 32px;
    padding: 34px 0 26px;
}

.corefor-footer-col {
    min-width: 0;
}

.corefor-footer-col-title {
    margin: 0 0 12px;
    color: var(--cf-muted);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.corefor-footer-brand-col .corefor-lockup {
    margin-bottom: 10px;
}

.corefor-footer-social-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 6px 0;
}

.corefor-footer-tagline {
    max-width: 34ch;
    margin: 0 0 12px;
    color: var(--cf-muted);
    font-size: 12.5px;
    line-height: 1.6;
}

.corefor-footer-copyright {
    margin: 0;
    color: var(--cf-muted);
    font-size: 12.5px;
    line-height: 1.6;
}

.corefor-footer-links {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.corefor-footer-links a {
    color: var(--cf-muted);
    font-size: 13.5px;
    line-height: 1.45;
    text-decoration: none;
    transition: color var(--dur-fast) var(--ease);
}

.corefor-footer-links a:hover {
    color: var(--cf-text-accent);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.corefor-footer-seller {
    margin: 0;
    color: var(--cf-muted);
    font-size: 12.5px;
    line-height: 1.7;
}

.corefor-footer-seller p {
    margin: 0 0 3px;
    color: inherit;
}

.corefor-footer-seller p:last-child {
    margin-bottom: 0;
}

.corefor-footer-seller a {
    color: var(--cf-text);
    text-decoration: underline;
    text-decoration-color: color-mix(in srgb, var(--cf-text) 30%, transparent);
    text-underline-offset: 2px;
}

.corefor-footer-seller a:hover {
    color: var(--cf-text-accent);
}

.corefor-footer-divider {
    border-top: 1px solid var(--cf-border);
}

.corefor-footer-legal {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    padding: 14px 0;
    color: var(--cf-muted);
    font-size: 12.5px;
    line-height: 1.5;
}

.corefor-footer-legal a {
    color: var(--cf-muted);
    text-decoration: none;
}

.corefor-footer-legal a:hover {
    color: var(--cf-text);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.corefor-footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px 16px;
    flex-wrap: wrap;
    padding: 14px 0 20px;
    border-top: 1px solid var(--cf-hairline);
    color: var(--cf-muted);
    font-size: 12.5px;
}

.corefor-footer-bottom p {
    margin: 0;
}

.corefor-footer-bottom .corefor-footer-credit {
    margin-left: auto;
    color: var(--cf-muted);
}

.corefor-footer-credit a {
    color: var(--cf-muted);
    text-decoration: none;
}

.corefor-footer-credit a:hover {
    color: var(--cf-text);
    text-decoration: underline;
    text-underline-offset: 2px;
}

@media (max-width: 767.98px) {
    .corefor-footer-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 26px 20px;
        padding: 28px 0 22px;
    }

    .corefor-footer-brand-col {
        grid-column: 1 / -1;
    }

    .corefor-footer-bottom {
        align-items: center;
        flex-direction: row;
        flex-wrap: wrap;
        gap: 8px 16px;
    }
}

@media (max-width: 420px) {
    .corefor-footer-grid {
        grid-template-columns: 1fr;
    }
}

