/* ==========================================================================
   Corefor theme — launcher-style design system for Azuriom
   Token layer: Astryx (assets/css/astryx.css, theme "corefor")
   Identity: Poppins / #ff5722 on #121212 / glassmorphism / beveled CTA
   ========================================================================== */

/* --- Design tokens -------------------------------------------------------
   Aliases to the Astryx layer with hard fallbacks: if astryx.css is ever
   missing the theme still renders with the original corefor look. */
:root {
    color-scheme: dark;

    --primary: var(--color-primary, #ff5722);
    --primary-hover: var(--color-primary-active, #e64a19);
    --primary-strong: #c63f17;
    --primary-strong-hover: #b53c00;

    /* CoreFor UI tokens (TZ). Accent stays #ff5722; small buttons use the
       accessible strong variant to keep WCAG AA for white text. */
    --color-background: #0f0f0f;
    --color-surface: rgba(255, 255, 255, 0.04);
    --color-surface-elevated: rgba(255, 255, 255, 0.08);
    --color-border: rgba(255, 255, 255, 0.10);
    --color-text-primary: #ffffff;
    --color-text-secondary: rgba(255, 255, 255, 0.68);
    --color-text-tertiary: rgba(255, 255, 255, 0.45);
    --color-primary: #ff5722;
    --color-primary-hover: #ff794e;
    --color-primary-active: #e64a19;
    --color-on-primary: #ffffff;
    --color-primary-strong: #c63f17;
    --color-primary-strong-hover: #b53c00;
    --color-success: #22c55e;
    --color-danger: #ef4444;
    --color-live: #22c55e;
    --color-primary-border: rgba(255, 87, 34, 0.40);

    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 16px;
    --radius-xl: 20px;
    --radius-btn: var(--radius-sm);
    --type-h1-size: clamp(28px, 3vw, 40px);
    --type-h1-weight: 700;

    --space-1: 4px;
    --space-2: 8px;
    --space-3: 12px;
    --space-4: 16px;
    --space-5: 20px;
    --space-6: 24px;
    --space-7: 28px;
    --space-8: 32px;
    --bg-dark: var(--color-background, #0f0f0f);
    --surface: var(--color-background-surface, #1e1e1e);
    --surface-sunken: var(--color-background-card, #161616);
    --popover: var(--color-background-popover, #1a1a1a);
    --text-main: var(--color-text-primary, #ffffff);
    --text-muted: var(--color-text-secondary, #aaaaaa);
    --border: var(--color-border, rgba(255, 255, 255, 0.08));

    --dur-fast: var(--duration-fast, 175ms);
    --dur-medium: var(--duration-medium, 410ms);
    --ease: var(--ease-standard, cubic-bezier(0.24, 1, 0.4, 1));

    /* Единая метрика контролов: кнопки, инпуты, селекты, табы */
    --control-pad-y: 10px;
    --control-pad-x: 16px;
    --control-font: 14px;

    /* Desktop-шапка: высота нужна sticky-элементам страниц (магазин, корзина) */
    --corefor-header-h: 64px;

    /* Astryx core tokens a standalone theme build does not emit — pinned to Astryx defaults */
    --ease-standard: cubic-bezier(0.24, 1, 0.4, 1);
    --focus-outline-width: 2px;
    --focus-outline-style: solid;
    --focus-outline-color: var(--color-accent, #ff5722);
    --focus-outline-offset: 3px;

    --shadow-lg: var(--shadow-high, 0 10px 30px rgba(0, 0, 0, 0.5));

    /* Bootstrap 5 variable overrides */
    --bs-primary: #ff5722;
    --bs-primary-rgb: 255, 87, 34;
    --bs-body-bg: var(--bg-dark);
    --bs-body-color: var(--text-main);
    --bs-secondary-color: var(--text-muted);
    --bs-border-color: var(--border);
    --bs-secondary-bg: #1a1a1a;
    --bs-tertiary-bg: #161616;
    --bs-emphasis-color: #ffffff;
    --bs-heading-color: #ffffff;
    --bs-link-color: #ff5722;
    --bs-link-hover-color: #e64a19;
    --bs-border-radius: var(--radius-element, 8px);
    --bs-border-radius-lg: var(--radius-container, 12px);
    --bs-border-radius-sm: var(--radius-inner, 4px);
}

/* --- CoreFor components (TZ) --- */
.corefor-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: var(--space-5);
    transition: transform var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
}

.corefor-card:hover {
    border-color: rgba(255, 87, 34, 0.38);
    background: var(--color-surface-elevated);
    transform: translateY(-2px);
}

.corefor-card--elevated {
    background: var(--color-surface-elevated);
}

.corefor-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 9px;
    border-radius: 9999px;
    background: var(--color-surface-elevated);
    border: 1px solid var(--color-border);
    color: var(--color-text-secondary);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.02em;
    line-height: 1.5;
}

.corefor-badge--live {
    color: var(--color-live);
    border-color: rgba(34, 197, 94, 0.35);
    background: rgba(34, 197, 94, 0.10);
}

.corefor-badge--new {
    color: var(--color-primary);
    border-color: rgba(255, 87, 34, 0.35);
    background: rgba(255, 87, 34, 0.10);
}

.corefor-badge--limited {
    color: #ffcc80;
    border-color: rgba(255, 152, 0, 0.35);
    background: rgba(255, 152, 0, 0.10);
}

.btn-ghost {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: var(--control-pad-y) var(--control-pad-x);
    border: 1px solid transparent;
    border-radius: var(--radius-sm);
    background: transparent;
    color: var(--color-text-secondary);
    font-size: var(--control-font);
    font-weight: 500;
    transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}

.btn-ghost:hover {
    background: var(--color-surface-elevated);
    color: var(--color-text-primary);
}

.corefor-input {
    width: 100%;
    padding: var(--control-pad-y) var(--control-pad-x);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    color: var(--color-text-primary);
    font-size: var(--control-font);
}

.corefor-input::placeholder {
    color: var(--color-text-tertiary);
}

.corefor-empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-8) var(--space-5);
    background: var(--color-surface);
    border: 1px dashed var(--color-border);
    border-radius: var(--radius-lg);
    color: var(--color-text-secondary);
    text-align: center;
}

.corefor-empty-state > i {
    color: var(--color-text-tertiary);
    font-size: 28px;
}

.corefor-empty-state h2 {
    margin: 0;
    color: var(--color-text-primary);
    font-size: 20px;
}

.corefor-empty-state p {
    max-width: 46ch;
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
}

/* --- Base --- */
html,
body {
    height: 100%;
}

body.corefor-body {
    font-family: var(--font-family-body, 'Poppins', system-ui, -apple-system, sans-serif);
    background-color: var(--bg-dark);
    color: var(--text-main);
    min-height: 100vh;
    overflow-x: hidden;
}

a {
    text-decoration: none;
}

img {
    max-width: 100%;
    height: auto;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-family-heading, inherit);
    color: #fff;
}

hr {
    border-color: rgba(255, 255, 255, 0.1);
    opacity: 1;
}

.text-body-secondary,
.text-muted {
    color: var(--text-muted) !important;
}

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

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

::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.1);
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: rgba(255, 255, 255, 0.2);
}

/* --- Focus & motion (Astryx conventions) --- */
:focus-visible {
    outline: var(--focus-outline-width, 2px) var(--focus-outline-style, solid)
        var(--focus-outline-color, var(--primary));
    outline-offset: var(--focus-outline-offset, 3px);
}

@media (prefers-reduced-motion: reduce) {
    .corefor-body *,
    .corefor-body *::before,
    .corefor-body *::after {
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
    }
}

/* --- Background layer --- */
.corefor-bg {
    position: fixed;
    inset: 0;
    z-index: -1;
    background: url('../images/bg.png') center / cover no-repeat;
}

.corefor-bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
}

/* --- Layout: sidebar + content --- */
.corefor-app {
    display: flex;
    min-height: 100vh;
}

.corefor-sidebar {
    width: var(--sidebar-width, 400px);
    flex: 0 0 var(--sidebar-width, 400px);
    background: var(--glass-bg, rgba(30, 30, 30, 0.65));
    backdrop-filter: blur(var(--glass-blur, 12px));
    -webkit-backdrop-filter: blur(var(--glass-blur, 12px));
    border-right: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
    position: sticky;
    top: 0;
    height: 100vh;
    overflow-y: auto;
    z-index: 20;
}

.corefor-sidebar-inner {
    display: flex;
    flex-direction: column;
    gap: 12px;
    height: 100%;
    min-height: 0;
    padding: 16px;
}

.corefor-side-block {
    flex: 0 0 auto;
    padding: 14px;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
    border-radius: var(--radius-container, 12px);
}

.corefor-side-block--identity {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

/* Внутри блока-острова карточка пользователя становится плоской,
   чтобы не было поверхности в поверхности */
.corefor-side-block--identity .corefor-user {
    background: transparent;
    border: 0;
    padding: 0;
}

.corefor-side-block--nav {
    flex: 0 1 auto;
    min-height: 0;
    padding: 8px;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}

.corefor-sidebar-action {
    flex: 0 0 auto;
    margin-top: auto;
}

.corefor-notifications-list {
    display: flex;
    align-items: center;
    gap: 4px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.corefor-main {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.corefor-main > main {
    flex: 1 0 auto;
}

/* Skip-link ведёт сюда; контейнер не должен рисовать рамку на весь экран */
.corefor-main:focus-visible {
    outline: none;
}

/* --- Sidebar: брендовая строка (mobile drawer) --- */
.corefor-sidebar-head {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.corefor-sidebar-head .corefor-lockup {
    min-width: 0;
}

/* --- Mobile / tablet header (replaces the floating burger) --- */
.corefor-mobile-header {
    display: none;
}

/* Кнопка-иконка: используется в мобильном хедере и desktop-шапке */
.corefor-mh-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 40px;
    height: 40px;
    border: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
    border-radius: var(--radius-btn, 8px);
    background: rgba(255, 255, 255, 0.04);
    color: #eee;
    font-size: 16px;
    transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}

.corefor-mh-btn:hover,
.corefor-mh-btn:active {
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
}

@media (max-width: 991.98px) {
    .corefor-mobile-header {
        position: sticky;
        top: 0;
        z-index: 30;
        display: flex;
        align-items: center;
        gap: 12px;
        min-height: 64px;
        padding: 10px 16px;
        background: rgba(18, 18, 18, 0.75);
        backdrop-filter: blur(var(--glass-blur, 12px));
        -webkit-backdrop-filter: blur(var(--glass-blur, 12px));
        border-bottom: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
    }

    .corefor-mh-brand {
        display: flex;
        align-items: center;
        gap: 10px;
        min-width: 0;
        color: #fff;
        font-weight: 700;
        font-size: 16px;
    }

    .corefor-mh-brand img {
        width: 30px;
        height: 30px;
        object-fit: contain;
    }

    .corefor-mh-brand span {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .corefor-mh-actions {
        display: flex;
        align-items: center;
        gap: 8px;
        margin-left: auto;
    }

    .corefor-mh-avatar-wrap {
        position: relative;
        display: block;
        width: 40px;
        height: 40px;
    }

    .corefor-mh-avatar {
        width: 40px;
        height: 40px;
        border-radius: 10px;
        border: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
        image-rendering: pixelated;
        object-fit: cover;
        background: rgba(255, 255, 255, 0.06);
    }

    .corefor-mh-avatar-fallback {
        position: absolute;
        inset: 0;
        display: none;
        align-items: center;
        justify-content: center;
        border-radius: 10px;
        border: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
        background: rgba(255, 255, 255, 0.06);
        color: #888;
        font-size: 14px;
    }
}

/* --- Desktop header (≥992px): глобальная навигация в шапке ---------------
   Сайдбар остаётся только мобильным дровером. Шапка sticky, стеклянная,
   использует токены брендового слоя (--cf-*) с fallback на базовые. */
.corefor-desktop-header {
    display: none;
}

@media (min-width: 992px) {
    .corefor-sidebar {
        display: none;
    }

    .corefor-desktop-header {
        position: sticky;
        top: 0;
        z-index: 30;
        display: flex;
        align-items: center;
        height: var(--corefor-header-h, 64px);
        padding: 0;
        background: var(--cf-glass, rgba(18, 18, 18, 0.78));
        border-bottom: 1px solid var(--cf-hairline, rgba(255, 255, 255, 0.08));
        backdrop-filter: blur(var(--glass-blur, 12px));
        -webkit-backdrop-filter: blur(var(--glass-blur, 12px));
    }

    /* Контент шапки выровнен по контейнеру футера */
    .corefor-dh-inner {
        display: flex;
        align-items: center;
        gap: clamp(16px, 2vw, 32px);
        height: 100%;
    }

    .corefor-dh-brand {
        display: flex;
        align-items: center;
        flex: 0 0 auto;
    }

    .corefor-dh-nav {
        display: flex;
        align-items: stretch;
        gap: clamp(10px, 1.6vw, 24px);
        flex: 1 1 auto;
        min-width: 0;
        height: 100%;
    }

    .corefor-dh-group {
        display: flex;
        align-items: stretch;
    }

    .corefor-dh-link {
        position: relative;
        display: inline-flex;
        align-items: center;
        gap: 6px;
        height: 100%;
        padding: 0 2px;
        border: 0;
        background: transparent;
        color: var(--cf-muted, var(--text-muted));
        font-family: inherit;
        font-size: 14px;
        font-weight: 600;
        line-height: 1;
        white-space: nowrap;
        text-decoration: none;
        cursor: pointer;
        transition: color var(--dur-fast) var(--ease);
    }

    .corefor-dh-link::after {
        content: '';
        position: absolute;
        right: 0;
        bottom: 0;
        left: 0;
        height: 2px;
        border-radius: 2px 2px 0 0;
        background: transparent;
        transition: background var(--dur-fast) var(--ease);
    }

    .corefor-dh-link:hover {
        color: var(--cf-text, var(--text-main));
        text-decoration: none;
    }

    .corefor-dh-link.active,
    .corefor-dh-link.show {
        color: var(--cf-text-accent, var(--primary));
    }

    .corefor-dh-link.active::after,
    .corefor-dh-link.show::after {
        background: var(--cf-accent, var(--primary));
    }

    .corefor-dh-toggle-icon {
        font-size: 10px;
        opacity: 0.7;
        transition: transform var(--dur-fast) var(--ease);
    }

    .corefor-dh-toggle.show .corefor-dh-toggle-icon {
        transform: rotate(180deg);
    }

    .corefor-dh-actions {
        display: flex;
        align-items: center;
        gap: 10px;
        flex: 0 0 auto;
        margin-left: auto;
    }

    .corefor-dh-bell {
        color: var(--cf-muted, #aaa);
    }

    .corefor-dh-badge {
        position: absolute;
        top: -4px;
        right: -4px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 18px;
        height: 18px;
        padding: 0 5px;
        border-radius: 999px;
        background: var(--cf-accent, var(--primary));
        color: var(--cf-on-accent, #fff);
        font-size: 10px;
        font-weight: 700;
        line-height: 1;
        font-variant-numeric: tabular-nums;
    }

    .corefor-dh-user-btn {
        display: inline-flex;
        align-items: center;
        gap: 10px;
        height: 44px;
        padding: 4px 10px 4px 5px;
        border: 1px solid var(--cf-hairline, rgba(255, 255, 255, 0.1));
        border-radius: var(--radius-container, 12px);
        background: var(--cf-overlay, rgba(255, 255, 255, 0.04));
        color: var(--cf-text, var(--text-main));
        cursor: pointer;
        transition: background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
    }

    .corefor-dh-user-btn:hover,
    .corefor-dh-user-btn.show {
        background: var(--cf-hover, rgba(255, 255, 255, 0.08));
    }

    .corefor-dh-user-btn.show {
        border-color: color-mix(in srgb, var(--cf-accent, #ff5722) 38%, var(--cf-hairline, transparent));
    }

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

    .corefor-dh-avatar-wrap {
        position: relative;
        display: block;
        width: 34px;
        height: 34px;
        flex: 0 0 34px;
    }

    .corefor-dh-avatar {
        width: 100%;
        height: 100%;
        border: 1px solid var(--cf-hairline, rgba(255, 255, 255, 0.12));
        border-radius: 10px;
        background: var(--cf-overlay, rgba(255, 255, 255, 0.06));
        image-rendering: pixelated;
        object-fit: cover;
    }

    .corefor-dh-avatar-fallback {
        position: absolute;
        inset: 0;
        display: none;
        align-items: center;
        justify-content: center;
        border: 1px solid var(--cf-hairline, rgba(255, 255, 255, 0.12));
        border-radius: 10px;
        background: var(--cf-overlay, rgba(255, 255, 255, 0.06));
        color: var(--cf-muted, #888);
        font-size: 13px;
    }

    .corefor-dh-user-text {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 2px;
        min-width: 0;
        line-height: 1.1;
    }

    .corefor-dh-username {
        max-width: 130px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        font-size: 13.5px;
        font-weight: 700;
    }

    .corefor-dh-rank {
        color: var(--cf-text-accent, var(--primary));
        font-size: 10px;
        font-weight: 700;
        letter-spacing: 0.08em;
        text-transform: uppercase;
    }

    .corefor-dh-chevron {
        color: var(--cf-muted, #888);
        font-size: 10px;
    }

    .corefor-dh-login,
    .corefor-dh-register {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        height: 40px;
        padding: 0 16px;
        font-size: 13.5px;
        font-weight: 600;
        white-space: nowrap;
    }

    .corefor-dh-download {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        height: 40px;
        padding: 0 14px;
        font-size: 13px;
        font-weight: 600;
        white-space: nowrap;
    }

    .corefor-dh-register {
        color: var(--cf-text, var(--text-main));
    }
}

@media (min-width: 992px) and (max-width: 1199.98px) {
    .corefor-dh-user-text,
    .corefor-dh-chevron {
        display: none;
    }

    .corefor-dh-user-btn {
        width: 44px;
        padding: 4px;
        justify-content: center;
    }

    .corefor-dh-download {
        width: 40px;
        padding: 0;
        justify-content: center;
    }

    .corefor-dh-download span {
        display: none;
    }
}

/* --- Общий поповер (Помощь / профиль / настройки) -----------------------
   Один набор токенов для всех меню темы; селектор с .dropdown-menu
   перебивает глобальные BS-переменные, объявленные ниже по файлу. */
.dropdown-menu.corefor-menu {
    --bs-dropdown-min-width: 220px;
    --bs-dropdown-padding-x: 0;
    --bs-dropdown-padding-y: 6px;
    --bs-dropdown-spacer: 4px;
    --bs-dropdown-font-size: 13.5px;
    --bs-dropdown-bg: var(--cf-surface, var(--popover));
    --bs-dropdown-border-color: var(--cf-border, var(--glass-border, rgba(255, 255, 255, 0.1)));
    --bs-dropdown-border-radius: var(--radius-container, 12px);
    --bs-dropdown-box-shadow: 0 12px 28px rgba(0, 0, 0, 0.3);
    --bs-dropdown-link-color: var(--cf-text, #ddd);
    --bs-dropdown-link-hover-color: var(--cf-text, #fff);
    --bs-dropdown-link-hover-bg: var(--cf-hover, rgba(255, 255, 255, 0.08));
    min-width: 220px;
    padding: 6px;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.3);
}

/* Стрелка, связывающая меню с триггером */
.dropdown-menu.corefor-menu::before {
    content: '';
    position: absolute;
    top: -6px;
    left: 18px;
    width: 10px;
    height: 10px;
    border-top: 1px solid var(--cf-border, var(--glass-border, rgba(255, 255, 255, 0.1)));
    border-left: 1px solid var(--cf-border, var(--glass-border, rgba(255, 255, 255, 0.1)));
    background: var(--cf-surface, var(--popover));
    transform: rotate(45deg);
    pointer-events: none;
}

.dropdown-menu.corefor-menu.corefor-menu--end::before {
    right: 18px;
    left: auto;
}

.corefor-menu .dropdown-item {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 36px;
    padding: 8px 10px;
    border-radius: var(--radius-element, 8px);
    color: var(--cf-text, #ddd);
    font-size: 13.5px;
    line-height: 1.25;
}

.corefor-menu .dropdown-item i {
    width: 16px;
    flex: 0 0 16px;
    color: var(--cf-muted, #888);
    font-size: 13px;
    text-align: center;
}

.corefor-menu .dropdown-item:hover,
.corefor-menu .dropdown-item:focus {
    background: var(--cf-hover, rgba(255, 255, 255, 0.08));
    color: var(--cf-text, #fff);
}

.corefor-menu .dropdown-item:focus-visible {
    outline: 2px solid var(--cf-accent, var(--primary));
    outline-offset: -2px;
}

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

.corefor-menu .dropdown-item.active i,
.corefor-menu .dropdown-item:active i {
    color: inherit;
}

.corefor-menu .dropdown-divider {
    margin: 4px 6px;
    border-color: var(--cf-hairline, var(--glass-border, rgba(255, 255, 255, 0.08)));
}

/* --- Sidebar: brand --- */
.corefor-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    color: #fff;
    font-size: 18px;
    font-weight: 700;
}

.corefor-brand:hover {
    color: #fff;
}

.corefor-brand img {
    width: 38px;
    height: 38px;
    object-fit: contain;
}

/* --- Sidebar: user card --- */
.corefor-user {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
    border-radius: var(--radius-container, 12px);
}

.corefor-user-main {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    min-width: 0;
}

.corefor-avatar-wrap {
    position: relative;
    width: 50px;
    height: 50px;
    flex: 0 0 50px;
}

.corefor-avatar {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 10px;
    border: 2px solid rgba(255, 255, 255, 0.1);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
    image-rendering: pixelated;
    background: rgba(255, 255, 255, 0.06);
}

.corefor-avatar-fallback {
    position: absolute;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.06);
    border: 2px solid rgba(255, 255, 255, 0.1);
    border-radius: 10px;
    color: #888;
    font-size: 18px;
}

.corefor-avatar-fallback-static {
    display: flex;
    position: static;
    width: 50px;
    height: 50px;
}

.corefor-user-details {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1;
}

.corefor-username {
    font-size: 16px;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.corefor-rank {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--primary);
}

.corefor-icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: var(--radius-btn, 8px);
    border: none;
    background: transparent;
    color: #aaa;
    font-size: 15px;
    transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}

.corefor-icon-btn:hover {
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
}

.corefor-auth-buttons {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* --- Sidebar: notifications tweak --- */
.corefor-user .notifications-dropdown {
    list-style: none;
    display: flex;
    align-items: center;
    position: relative;
}

.corefor-user .notifications-dropdown .nav-link {
    color: #aaa;
    padding: 6px 8px;
    position: relative;
}

.corefor-user .notifications-dropdown .nav-link:hover {
    color: #fff;
}

.corefor-user .notifications-dropdown .badge {
    position: absolute;
    top: -2px;
    right: -2px;
    font-size: 10px;
}

/* --- Sidebar: navigation --- */
.corefor-nav {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.corefor-nav-link {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 11px 14px;
    border-radius: var(--radius-element, 8px);
    color: #cccccc;
    font-size: 14px;
    font-weight: 500;
    transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}

.corefor-nav-link i {
    width: 18px;
    text-align: center;
}

.corefor-nav-link:hover {
    background: rgba(255, 255, 255, 0.07);
    color: #fff;
}

.corefor-nav-link.active {
    background: rgba(255, 87, 34, 0.12);
    color: var(--primary);
    font-weight: 600;
}

.corefor-nav-group {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-top: 6px;
}

.corefor-nav-group-label {
    padding: 6px 14px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: rgba(255, 255, 255, 0.4);
}

.corefor-nav-child {
    padding-left: 30px;
    font-size: 13px;
}

/* --- Sidebar: bottom + CTA --- */
.corefor-sidebar-bottom {
    margin-top: auto;
    padding-top: 10px;
}

.corefor-sidebar-action .corefor-cta {
    height: 56px;
}

.corefor-cta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    height: 60px;
    background: var(--primary);
    border: none;
    color: #fff;
    font-family: var(--font-family-body, 'Poppins', sans-serif);
    font-size: 19px;
    font-weight: 800;
    letter-spacing: 1px;
    clip-path: polygon(var(--bevel, 15px) 0, 100% 0, 100% calc(100% - var(--bevel, 15px)), calc(100% - var(--bevel, 15px)) 100%, 0 100%, 0 var(--bevel, 15px));
    transition: background var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);
    box-shadow: var(--shadow-lg);
}

.corefor-cta:hover {
    background: var(--primary-hover);
    color: #fff;
    transform: scale(1.02);
}

.corefor-cta:active {
    transform: scale(0.98);
}

/* --- Page head (news) --- */
.corefor-page-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.corefor-page-head h1,
.corefor-page-head h2 {
    font-size: clamp(22px, 2.4vw, 28px);
    font-weight: 700;
    letter-spacing: -0.5px;
    margin: 0;
}

.corefor-social-links {
    display: flex;
    gap: 10px;
}

.corefor-divider {
    border: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    margin: 14px 0 26px;
}

/* --- Home layout: showcase + readable feed column --- */
.corefor-home {
    width: 100%;
    max-width: 1120px;
}

.corefor-home-section {
    max-width: 840px;
    margin-inline: auto;
    scroll-margin-top: 84px;
}

.corefor-home-section + .corefor-home-section {
    margin-top: 40px;
}

.corefor-home-section .corefor-section-title {
    margin-top: 0;
}

/* Постоянное сообщение — строка, а не карточка: витрина ниже уже собрана из плиток */
.corefor-welcome-note {
    margin: 0 0 18px;
    padding: 2px 0 2px 12px;
    border-left: 2px solid var(--primary);
    color: var(--text-muted);
    font-size: 14px;
    line-height: 1.6;
}

.corefor-section-title {
    font-size: 22px;
    font-weight: 700;
    margin: 30px 0 16px;
}

.corefor-empty {
    text-align: center;
    color: #888;
    padding: 40px 0;
}

/* --- News articles (launcher parity) --- */
.corefor-news {
    display: flex;
    flex-direction: column;
    gap: 26px;
}

.news-article {
    display: flex;
    flex-direction: column;
    gap: 12px;
    background: var(--glass-bg, rgba(30, 30, 30, 0.65));
    border: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
    border-radius: var(--radius-container, 12px);
    padding: clamp(18px, 3vw, 26px);
    backdrop-filter: blur(var(--glass-blur, 12px));
    -webkit-backdrop-filter: blur(var(--glass-blur, 12px));
}

.news-article h3 {
    font-size: 21px;
    font-weight: 700;
    line-height: 1.3;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    padding-bottom: 10px;
    margin: 0;
    overflow-wrap: anywhere;
}

.news-article h3 a {
    color: #fff;
}

.news-article h3 a:hover {
    color: var(--primary);
}

.news-article .article-meta {
    display: flex;
    align-items: center;
    gap: 15px;
    flex-wrap: wrap;
    font-size: 13px;
    color: var(--text-muted);
}

.news-article .article-meta .author {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #eee;
    font-weight: 500;
}

.news-article .article-meta .author img {
    width: 24px;
    height: 24px;
    /* квадрат со скруглением — как аватары в сайдбаре, а не круг */
    border-radius: 6px;
    object-fit: cover;
    border: 1px solid rgba(255, 255, 255, 0.2);
    image-rendering: pixelated;
}

.news-article > img {
    border-radius: var(--radius-element, 8px);
    border: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
}

.news-article .article-content {
    font-size: 14px;
    line-height: 1.7;
    color: #f0f0f0;
    overflow-wrap: anywhere;
}

.news-article .article-content img {
    border-radius: var(--radius-element, 8px);
}

/* --- Footer --- */
.corefor-footer {
    margin-top: auto;
    border-top: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
    background: rgba(0, 0, 0, 0.25);
    backdrop-filter: blur(var(--glass-blur, 12px));
    -webkit-backdrop-filter: blur(var(--glass-blur, 12px));
}

.corefor-footer-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    flex-wrap: wrap;
    padding-top: 18px;
    padding-bottom: 18px;
}

.corefor-footer-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.corefor-footer-brand img {
    width: 32px;
    height: 32px;
    object-fit: contain;
    flex: 0 0 auto;
}

.corefor-footer-meta {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.corefor-footer-name {
    font-size: 14px;
    font-weight: 700;
    color: #fff;
    line-height: 1.3;
}

.corefor-footer-copy {
    margin: 0;
    font-size: 12px;
    color: rgba(255, 255, 255, 0.45);
    line-height: 1.5;
}

.corefor-footer-socials {
    display: flex;
    gap: 8px;
}

.corefor-social {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: auto;
    height: auto;
    padding: 6px;
    border: 0;
    border-radius: var(--radius-btn, 8px);
    color: var(--social-color, #aaa);
    font-size: 20px;
    line-height: 1;
    transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);
}

.corefor-social:hover {
    background: rgba(255, 255, 255, 0.1);
    color: var(--social-color, #fff);
    transform: translateY(-1px);
}

/* fa-float: в Font Awesome такого модификатора нет — задаём сами */
.fa-float {
    display: inline-block;
    animation: corefor-float 3s ease-in-out infinite;
}

@keyframes corefor-float {
    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-3px);
    }
}

@media (prefers-reduced-motion: reduce) {
    .fa-float {
        animation: none;
    }
}

@media (max-width: 767.98px) {
    .corefor-footer-inner {
        flex-direction: column;
        text-align: center;
    }

    .corefor-footer-brand {
        flex-direction: column;
        gap: 8px;
    }

    .corefor-footer-meta {
        align-items: center;
    }
}

/* --- Bootstrap: buttons --- */
.btn {
    border-radius: var(--radius-btn, var(--radius-element, 8px));
    padding: var(--control-pad-y) var(--control-pad-x);
    font-size: var(--control-font);
    font-weight: 500;
    transition: all var(--dur-fast) var(--ease);
}

.btn-sm {
    padding: 6px 12px;
    font-size: 13px;
}

.btn-icon-only {
    padding: var(--control-pad-y);
    aspect-ratio: 1;
}

.btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--primary-strong, #c63f17);
    --bs-btn-border-color: var(--primary-strong, #c63f17);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--primary-strong-hover, #b53c00);
    --bs-btn-hover-border-color: var(--primary-strong-hover, #b53c00);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--primary-strong-hover, #b53c00);
    --bs-btn-active-border-color: var(--primary-strong-hover, #b53c00);
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--primary-strong, #c63f17);
    --bs-btn-disabled-border-color: var(--primary-strong, #c63f17);
    box-shadow: 0 4px 10px rgba(198, 63, 23, 0.3);
}

.btn-primary:hover:not(:disabled) {
    transform: translateY(-1px);
    box-shadow: 0 6px 15px rgba(198, 63, 23, 0.4);
}

.btn-primary:active:not(:disabled) {
    transform: translateY(0);
}

.btn-secondary {
    --bs-btn-color: #ddd;
    --bs-btn-bg: rgba(255, 255, 255, 0.05);
    --bs-btn-border-color: rgba(255, 255, 255, 0.1);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: rgba(255, 255, 255, 0.1);
    --bs-btn-hover-border-color: rgba(255, 255, 255, 0.3);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: rgba(255, 255, 255, 0.12);
    --bs-btn-active-border-color: rgba(255, 255, 255, 0.3);
    --bs-btn-disabled-color: #999;
    --bs-btn-disabled-bg: rgba(255, 255, 255, 0.05);
    --bs-btn-disabled-border-color: rgba(255, 255, 255, 0.1);
}

.btn-danger {
    --bs-btn-color: #ff5252;
    --bs-btn-bg: rgba(244, 67, 54, 0.1);
    --bs-btn-border-color: rgba(244, 67, 54, 0.5);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: rgba(244, 67, 54, 0.2);
    --bs-btn-hover-border-color: #f44336;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: rgba(244, 67, 54, 0.3);
    --bs-btn-active-border-color: #f44336;
}

.btn-outline-light {
    --bs-btn-color: #ddd;
    --bs-btn-border-color: rgba(255, 255, 255, 0.3);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: rgba(255, 255, 255, 0.1);
    --bs-btn-hover-border-color: rgba(255, 255, 255, 0.5);
}

/* --- Bootstrap: cards --- */
.card {
    --bs-card-bg: var(--glass-bg, rgba(30, 30, 30, 0.65));
    --bs-card-border-color: var(--glass-border, rgba(255, 255, 255, 0.08));
    --bs-card-border-radius: var(--radius-container, 12px);
    --bs-card-color: var(--text-main);
    --bs-card-cap-bg: rgba(0, 0, 0, 0.2);
    --bs-card-cap-color: var(--text-main);
    backdrop-filter: blur(var(--glass-blur, 12px));
    -webkit-backdrop-filter: blur(var(--glass-blur, 12px));
}

.card-footer {
    border-top-color: var(--glass-border, rgba(255, 255, 255, 0.08));
}

/* --- Bootstrap: dropdowns --- */
.dropdown-menu {
    --bs-dropdown-bg: var(--popover);
    --bs-dropdown-border-color: var(--glass-border, rgba(255, 255, 255, 0.08));
    --bs-dropdown-color: #ddd;
    --bs-dropdown-link-color: #ddd;
    --bs-dropdown-link-hover-color: #fff;
    --bs-dropdown-link-hover-bg: rgba(255, 255, 255, 0.08);
    --bs-dropdown-link-active-color: #fff;
    --bs-dropdown-link-active-bg: var(--primary);
    --bs-dropdown-divider-bg: var(--glass-border, rgba(255, 255, 255, 0.08));
    --bs-dropdown-border-radius: var(--radius-container, 12px);
    box-shadow: var(--shadow-lg);
}

/* --- Bootstrap: modals --- */
.modal {
    --bs-modal-bg: var(--surface-sunken);
    --bs-modal-color: var(--text-main);
    --bs-modal-border-color: var(--glass-border, rgba(255, 255, 255, 0.08));
    --bs-modal-header-border-color: var(--glass-border, rgba(255, 255, 255, 0.08));
    --bs-modal-footer-border-color: var(--glass-border, rgba(255, 255, 255, 0.08));
    --bs-modal-border-radius: var(--radius-container, 12px);
}

/* --- Bootstrap: forms --- */
.form-control,
.form-select {
    background-color: rgba(255, 255, 255, 0.06);
    border-color: var(--glass-border, rgba(255, 255, 255, 0.08));
    color: var(--text-main);
    border-radius: var(--radius-element, 8px);
    padding: var(--control-pad-y) var(--control-pad-x);
    font-size: var(--control-font);
    transition: background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
}

.form-control-sm,
.form-select-sm {
    padding: 6px 12px;
    font-size: 13px;
}

/* Списки значений нативных селектов — тёмные (иначе белый попап с невидимым текстом) */
select option,
.form-select option {
    background-color: var(--surface);
    color: var(--text-main);
}

.form-control:focus,
.form-select:focus {
    background-color: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.35);
    color: var(--text-main);
    box-shadow: none;
}

.form-control::placeholder {
    color: #777;
}

.form-check-input {
    background-color: rgba(255, 255, 255, 0.08);
    border-color: var(--glass-border, rgba(255, 255, 255, 0.08));
}

.form-check-input:checked {
    background-color: var(--primary);
    border-color: var(--primary);
}

.form-check-input:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 0.2rem rgba(255, 87, 34, 0.25);
}

/* --- Bootstrap: tables --- */
.table {
    --bs-table-bg: transparent;
    --bs-table-color: #eee;
    --bs-table-border-color: var(--glass-border, rgba(255, 255, 255, 0.08));
    --bs-table-hover-bg: rgba(255, 255, 255, 0.05);
    --bs-table-hover-color: #fff;
    --bs-table-striped-bg: rgba(255, 255, 255, 0.03);
    --bs-table-striped-color: #eee;
}

.table-responsive {
    border-radius: var(--radius-element, 8px);
}

/* --- Bootstrap: pagination --- */
.pagination {
    --bs-pagination-bg: rgba(255, 255, 255, 0.05);
    --bs-pagination-color: #ddd;
    --bs-pagination-border-color: rgba(255, 255, 255, 0.1);
    --bs-pagination-hover-bg: rgba(255, 255, 255, 0.1);
    --bs-pagination-hover-color: #fff;
    --bs-pagination-hover-border-color: rgba(255, 255, 255, 0.2);
    --bs-pagination-active-bg: var(--primary);
    --bs-pagination-active-border-color: var(--primary);
    --bs-pagination-disabled-bg: rgba(255, 255, 255, 0.03);
    --bs-pagination-disabled-color: #666;
    --bs-pagination-disabled-border-color: rgba(255, 255, 255, 0.08);
}

/* --- Bootstrap: progress / badges / alerts --- */
.progress {
    --bs-progress-bg: rgba(255, 255, 255, 0.1);
    --bs-progress-bar-bg: var(--primary);
    --bs-progress-border-radius: var(--radius-full, 9999px);
}

.badge {
    font-weight: 600;
    letter-spacing: 0.3px;
}

.alert {
    --bs-alert-border-radius: var(--radius-element, 8px);
}

.alert-success {
    --bs-alert-bg: rgba(76, 175, 80, 0.1);
    --bs-alert-border-color: rgba(76, 175, 80, 0.3);
    --bs-alert-color: #a5d6a7;
}

.alert-danger {
    --bs-alert-bg: rgba(244, 67, 54, 0.1);
    --bs-alert-border-color: rgba(244, 67, 54, 0.35);
    --bs-alert-color: #ef9a9a;
}

.alert-warning {
    --bs-alert-bg: rgba(255, 152, 0, 0.1);
    --bs-alert-border-color: rgba(255, 152, 0, 0.3);
    --bs-alert-color: #ffcc80;
}

.alert-info {
    --bs-alert-bg: rgba(33, 150, 243, 0.1);
    --bs-alert-border-color: rgba(33, 150, 243, 0.3);
    --bs-alert-color: #90caf9;
}

/* --- Bootstrap: nav tabs --- */
.nav-tabs {
    --bs-nav-tabs-border-color: var(--glass-border, rgba(255, 255, 255, 0.08));
    --bs-nav-tabs-link-active-bg: transparent;
    --bs-nav-tabs-link-active-border-color: var(--glass-border, rgba(255, 255, 255, 0.08)) var(--glass-border, rgba(255, 255, 255, 0.08)) transparent;
}

.nav-tabs .nav-link {
    padding: var(--control-pad-y) var(--control-pad-x);
    font-size: var(--control-font);
    color: var(--text-muted);
}

.nav-tabs .nav-link.active {
    color: var(--primary);
}

/* --- Mobile: offcanvas sidebar --- */
.corefor-backdrop {
    display: none;
}

@media (max-width: 991.98px) {
    .corefor-sidebar {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        height: 100vh;
        width: min(var(--sidebar-width, 400px), 88vw);
        max-width: 100%;
        flex-basis: auto;
        background: rgba(18, 18, 18, 0.96);
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        box-shadow: 0 24px 64px rgba(0, 0, 0, 0.55);
        transform: translateX(-105%);
        transition: transform var(--dur-medium) var(--ease);
        z-index: 50;
    }

    body.corefor-sidebar-open .corefor-sidebar {
        transform: translateX(0);
    }

    body.corefor-sidebar-open {
        overflow: hidden;
    }

    .corefor-backdrop {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 40;
        background: rgba(0, 0, 0, 0.45);
        backdrop-filter: blur(6px);
        -webkit-backdrop-filter: blur(6px);
        opacity: 0;
        pointer-events: none;
        transition: opacity var(--dur-medium) var(--ease);
    }

    body.corefor-sidebar-open .corefor-backdrop {
        opacity: 1;
        pointer-events: auto;
    }
}

/* --- Small screens fine-tuning --- */
@media (max-width: 575.98px) {
    .corefor-news {
        gap: 16px;
    }

    .news-article .article-meta {
        gap: 10px;
        font-size: 12px;
    }

    .corefor-cta {
        height: 54px;
        font-size: 17px;
    }
}

/* --- Auth pages (login) -----------------------------------------------
   Карточка входа — визуальный паритет с лаунчером (login.scss):
   380px, лого 80px со свечением, лейблы над полями, иконки внутри,
   инлайн-ошибки с объяснением, один primary-CTA.
   ---------------------------------------------------------------------- */
.corefor-auth {
    display: flex;
    justify-content: center;
    padding: 8px 0 48px;
}

.corefor-auth-card {
    width: min(380px, 100%);
    background: var(--glass-bg, rgba(30, 30, 30, 0.65));
    backdrop-filter: blur(var(--glass-blur, 12px));
    -webkit-backdrop-filter: blur(var(--glass-blur, 12px));
    border: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
    border-radius: var(--radius-container, 12px);
    padding: clamp(28px, 4vw, 40px);
    text-align: center;
    box-shadow: var(--shadow-lg);
}

.corefor-auth-logo {
    display: block;
    width: 80px;
    height: 80px;
    object-fit: contain;
    margin: 0 auto 20px;
    filter: drop-shadow(0 0 10px rgba(255, 255, 255, 0.2));
}

.corefor-auth-title {
    font-size: 24px;
    font-weight: 700;
    margin: 0 0 5px;
}

.corefor-auth-sub {
    color: var(--text-muted);
    font-size: 14px;
    margin: 0 0 30px;
}

.corefor-auth-form {
    text-align: left;
}

.corefor-field {
    margin-bottom: 14px;
}

.corefor-field-label {
    display: block;
    font-size: 12.5px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.8);
    margin-bottom: 6px;
}

.corefor-field-box {
    position: relative;
}

.corefor-field-icon {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 13px;
    color: rgba(255, 255, 255, 0.4);
    pointer-events: none;
}

.corefor-field .form-control {
    padding: 12px 42px 12px 40px;
    font-size: 14px;
}

.corefor-field .form-control::placeholder {
    color: rgba(255, 255, 255, 0.35);
}

.corefor-field-reveal {
    position: absolute;
    right: 6px;
    top: 50%;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: rgba(255, 255, 255, 0.5);
    cursor: pointer;
    transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}

.corefor-field-reveal:hover {
    color: #fff;
    background: rgba(255, 255, 255, 0.08);
}

.corefor-field-error {
    display: none;
    align-items: center;
    gap: 6px;
    margin: 6px 0 0;
    font-size: 12px;
    line-height: 1.4;
    color: var(--color-error, #f04747);
}

.corefor-field.has-error .corefor-field-error {
    display: flex;
}

.corefor-field.has-error .form-control {
    border-color: var(--color-error, #f04747);
}

.corefor-auth-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 2px 0 24px;
    font-size: 13px;
}

.corefor-auth-row a {
    font-size: 12.5px;
    color: var(--text-muted);
    transition: color var(--dur-fast) var(--ease);
}

.corefor-auth-row a:hover {
    color: var(--primary);
}

.corefor-auth-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    height: 46px;
    font-size: 15px;
    font-weight: 600;
}

.corefor-auth-footer {
    margin-top: 20px;
    font-size: 12px;
    color: rgba(255, 255, 255, 0.3);
}

.corefor-auth-footer a {
    font-weight: 600;
    color: var(--primary);
}

/* Согласия на регистрации: чекбоксы в стиле карточки входа */
.corefor-consent {
    margin: 2px 0 14px;
    text-align: left;
}

.corefor-consent .form-check {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    min-height: 0;
    margin: 0;
    padding: 0;
}

.corefor-consent .form-check-input {
    flex: 0 0 auto;
    float: none;
    width: 16px;
    height: 16px;
    margin: 1px 0 0;
}

.corefor-consent .form-check-label {
    font-size: 12px;
    line-height: 1.45;
    color: rgba(255, 255, 255, 0.55);
}

.corefor-consent .form-check-label a {
    color: var(--primary);
    font-weight: 600;
}

.corefor-consent .form-check-label a:hover {
    text-decoration: underline;
}

.corefor-consent .corefor-field-error {
    margin: 6px 0 0 25px;
}

.corefor-consent.has-error .corefor-field-error {
    display: flex;
}

/* --- Page bits: banner / news link / server progress ------------------- */

/* Приветственное сообщение — Banner-паттерном (постоянное сообщение вверху
   страницы), а не случайной карточкой в ленте */
.corefor-banner {
    --banner-accent: #64b5f6;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 14px 16px;
    margin-bottom: 24px;
    background: var(--glass-bg, rgba(30, 30, 30, 0.65));
    backdrop-filter: blur(var(--glass-blur, 12px));
    -webkit-backdrop-filter: blur(var(--glass-blur, 12px));
    border: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
    border-left: 3px solid var(--banner-accent);
    border-radius: var(--radius-element, 8px);
    font-size: 14px;
    line-height: 1.6;
}

.corefor-banner > i {
    color: var(--banner-accent);
    font-size: 15px;
    margin-top: 3px;
    flex: 0 0 auto;
}

.corefor-banner-text {
    min-width: 0;
}

/* Вторичное действие карточки новости — ссылка (primary-кнопка соревновалась
   с главным CTA; заголовок и так кликабелен) */
.corefor-news-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--primary);
    font-size: 14px;
    font-weight: 600;
    transition: color var(--dur-fast) var(--ease);
}

.corefor-news-link i {
    font-size: 12px;
    transition: transform var(--dur-fast) var(--ease);
}

.corefor-news-link:hover {
    color: var(--primary-hover);
}

.corefor-news-link:hover i {
    transform: translateX(3px);
}

/* Заполнение онлайна сервера (паттерн ProgressBar) */
.corefor-server-progress {
    height: 6px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: var(--radius-full, 9999px);
    overflow: hidden;
    margin-bottom: 16px;
}

.corefor-server-progress span {
    display: block;
    height: 100%;
    background: var(--primary);
    border-radius: inherit;
}

/* =====================================================================
   HOME SHOWCASE — bento-витрина из «Приветственного сообщения».
   Astryx-паттерны: разнородные плитки в 12-колоночной сетке, одна
   акцентная плитка, плотные поверхности вместо blur, спокойные hover.
   Прозрачная обёртка .corefor-showcase позволяет вставлять HTML через
   админку без «карточки в карточке».
   ===================================================================== */

.corefor-showcase {
    margin: 0 0 34px;
}

.corefor-showcase--custom > :first-child {
    margin-top: 0;
}

.corefor-showcase--custom > :last-child {
    margin-bottom: 0;
}

.corefor-bento {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 16px;
    align-items: stretch;
}

.corefor-tile {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
    padding: clamp(18px, 2.2vw, 26px);
    background: var(--surface);
    border: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
    border-radius: var(--radius-container, 12px);
    color: var(--text-main);
}

a.corefor-tile {
    color: var(--text-main);
    text-decoration: none;
    transition: transform var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}

a.corefor-tile:hover {
    color: var(--text-main);
    text-decoration: none;
    transform: translateY(-2px);
    border-color: rgba(255, 87, 34, 0.45);
    box-shadow: 0 10px 26px rgba(0, 0, 0, 0.35);
}

.corefor-tile--hero {
    grid-column: span 7;
    grid-row: span 2;
    justify-content: space-between;
    gap: 24px;
    background:
        radial-gradient(circle at 82% 16%, rgba(255, 87, 34, 0.16), transparent 42%),
        linear-gradient(145deg, rgba(255, 255, 255, 0.03), transparent 52%),
        var(--surface);
}

.corefor-hero-top,
.corefor-hero-bottom {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.corefor-hero-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.corefor-hero-steps li {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding-top: 10px;
    border-top: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
    color: var(--text-muted);
    font-size: 12px;
}

.corefor-hero-steps span {
    color: var(--primary);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.12em;
}

.corefor-tile--status {
    grid-column: span 5;
}

.corefor-tile--gallery {
    grid-column: span 5;
}

.corefor-tile--launcher,
.corefor-tile--shop {
    grid-column: span 6;
}

.corefor-tile-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.corefor-tile-title {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: -0.01em;
}

.corefor-tile-eyebrow {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--text-muted);
}

.corefor-hero-title {
    margin: 0;
    font-size: clamp(30px, 3.4vw, 46px);
    line-height: 1.05;
    letter-spacing: -0.035em;
}

.corefor-hero-text {
    max-width: 52ch;
    margin: 0;
    color: var(--text-muted);
    font-size: 15px;
    line-height: 1.65;
}

.corefor-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 4px;
}

.corefor-hero-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 6px 0 0;
    padding: 0;
    list-style: none;
}

.corefor-hero-chips li {
    padding: 5px 10px;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
    border-radius: 9999px;
    color: var(--text-muted);
    font-size: 11.5px;
}

.corefor-live {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #a5d6a7;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.corefor-live-dot {
    width: 6px;
    height: 6px;
    background: #4caf50;
    border-radius: 50%;
    box-shadow: 0 0 8px rgba(76, 175, 80, 0.7);
}

.corefor-server-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.corefor-server-row {
    display: flex;
    align-items: center;
    gap: 10px;
}

.corefor-server-state {
    flex: 0 0 auto;
    width: 8px;
    height: 8px;
    background: #666;
    border-radius: 50%;
}

.corefor-server-state.is-online {
    background: #4caf50;
    box-shadow: 0 0 8px rgba(76, 175, 80, 0.5);
}

.corefor-server-state.is-offline {
    background: #f04747;
}

.corefor-server-main {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-width: 0;
}

.corefor-server-name {
    font-size: 14px;
    font-weight: 600;
}

.corefor-server-meta {
    color: var(--text-muted);
    font-size: 12px;
    font-variant-numeric: tabular-nums;
}

.corefor-copy {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 8px;
    color: var(--text-muted);
    cursor: pointer;
    transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
}

.corefor-copy:hover {
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
}

.corefor-copy.is-copied {
    color: #a5d6a7;
    border-color: rgba(76, 175, 80, 0.45);
}

.corefor-play {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    background: rgba(255, 87, 34, 0.08);
    border: 1px solid rgba(255, 87, 34, 0.35);
    border-radius: 8px;
    color: var(--primary);
    transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);
}

.corefor-play:hover {
    background: var(--primary);
    border-color: var(--primary);
    color: #fff;
    transform: translateX(1px);
}

.corefor-play i {
    font-size: 12px;
}

.corefor-tile--status .corefor-server-progress {
    height: 4px;
    margin: 0 0 4px 18px;
}

.corefor-copy-hint {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: auto 0 0;
    padding-top: 14px;
    border-top: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
    color: var(--text-muted);
    font-size: 12px;
}

.corefor-copy-address {
    overflow: hidden;
    color: #ddd;
    font-family: var(--font-family-code, monospace);
    white-space: nowrap;
    text-overflow: ellipsis;
}

.corefor-copy-status {
    color: #a5d6a7;
}

.corefor-tile-link {
    flex: 0 0 auto;
    color: var(--primary);
    font-size: 12px;
    font-weight: 600;
}

.corefor-tile-link:hover {
    color: var(--primary-hover);
}

.corefor-gallery {
    display: grid;
    flex: 1;
    grid-template-columns: 1fr 1fr;
    grid-auto-rows: 1fr;
    gap: 8px;
    min-height: 190px;
}

.corefor-gallery-item {
    position: relative;
    display: block;
    overflow: hidden;
    min-height: 0;
    grid-row: span 2;
    color: #fff;
    border: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
    border-radius: 8px;
    text-decoration: none;
}

.corefor-gallery-item:hover {
    color: #fff;
    text-decoration: none;
}

.corefor-gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.35s var(--ease);
}

.corefor-gallery-item:hover img {
    transform: scale(1.04);
}

.corefor-gallery-caption {
    position: absolute;
    inset: auto 0 0;
    display: -webkit-box;
    overflow: hidden;
    padding: 20px 10px 8px;
    background: linear-gradient(transparent, rgba(0, 0, 0, 0.82));
    font-size: 11.5px;
    font-weight: 600;
    line-height: 1.3;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
}

.corefor-gallery-item .corefor-pin--overlay {
    position: absolute;
    top: 8px;
    left: 8px;
    z-index: 1;
    background: rgba(15, 15, 15, 0.82);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

.corefor-gallery-item--more {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px;
    background: rgba(255, 87, 34, 0.06);
    color: var(--primary);
    font-size: 12px;
    text-align: center;
}

.corefor-gallery-empty {
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 190px;
    color: var(--text-muted);
    border: 1px dashed var(--glass-border, rgba(255, 255, 255, 0.08));
    border-radius: 8px;
    font-size: 13px;
    text-align: center;
}

.corefor-gallery-empty i {
    color: rgba(255, 255, 255, 0.25);
    font-size: 24px;
}

.corefor-gallery-empty:hover {
    color: #fff;
    border-color: rgba(255, 87, 34, 0.45);
}

.corefor-tile-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    margin-bottom: 14px;
    background: rgba(255, 87, 34, 0.12);
    border-radius: 10px;
    color: var(--primary);
    font-size: 16px;
}

.corefor-tile-text {
    margin: 8px 0 0;
    color: var(--text-muted);
    font-size: 13.5px;
    line-height: 1.55;
}

.corefor-tile-action {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: auto;
    padding-top: 16px;
    color: var(--primary);
    font-size: 13px;
    font-weight: 600;
}

.corefor-tile-action i {
    font-size: 11px;
    transition: transform var(--dur-fast) var(--ease);
}

a.corefor-tile:hover .corefor-tile-action i {
    transform: translateX(3px);
}

@media (max-width: 991.98px) {
    .corefor-bento {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .corefor-tile--hero {
        grid-column: span 2;
        grid-row: span 1;
    }

    .corefor-tile--status,
    .corefor-tile--gallery,
    .corefor-tile--launcher,
    .corefor-tile--shop {
        grid-column: span 1;
    }
}

@media (max-width: 575.98px) {
    .corefor-bento {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .corefor-tile--hero,
    .corefor-tile--status,
    .corefor-tile--gallery,
    .corefor-tile--launcher,
    .corefor-tile--shop {
        grid-column: span 1;
    }

    .corefor-tile {
        padding: 18px;
    }

    .corefor-hero-title {
        font-size: 32px;
    }

    .corefor-hero-actions .btn {
        flex: 1 1 auto;
        justify-content: center;
    }

    .corefor-hero-steps {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .corefor-hero-steps li {
        flex-direction: row;
        align-items: center;
        gap: 8px;
        padding-top: 8px;
    }

    .corefor-gallery {
        min-height: 180px;
    }
}

/* =====================================================================
   LAUNCHER DOWNLOAD PAGE (плагин launcher)
   ===================================================================== */

.corefor-downloads {
    max-width: 840px;
    margin-inline: auto;
}

.corefor-downloads-title {
    margin: 0;
    font-size: clamp(28px, 3vw, 40px);
    letter-spacing: -0.03em;
}

.corefor-downloads-sub {
    max-width: 60ch;
    margin: 10px 0 0;
    color: var(--text-muted);
    font-size: 15px;
    line-height: 1.6;
}

.corefor-download-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-top: 26px;
}

.corefor-download-grid--single {
    grid-template-columns: minmax(0, 320px);
    justify-content: center;
}

.corefor-download-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 26px 18px;
    background: var(--surface);
    border: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
    border-radius: var(--radius-container, 12px);
    color: var(--text-main);
    text-align: center;
    text-decoration: none;
    transition: transform var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}

.corefor-download-card:hover {
    color: var(--text-main);
    text-decoration: none;
    transform: translateY(-2px);
    border-color: rgba(255, 87, 34, 0.45);
    box-shadow: 0 10px 26px rgba(0, 0, 0, 0.35);
}

.corefor-download-icon {
    color: #fff;
    font-size: 42px;
    line-height: 1;
}

.corefor-download-name {
    font-size: 16px;
    font-weight: 600;
}

.corefor-download-action {
    color: var(--primary);
    font-size: 12.5px;
    font-weight: 600;
}

.corefor-download-pending {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    margin-top: 26px;
    padding: 24px;
    background: var(--surface);
    border: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
    border-left: 3px solid var(--primary);
    border-radius: var(--radius-container, 12px);
}

.corefor-download-pending > i {
    margin-top: 2px;
    color: var(--primary);
    font-size: 22px;
}

.corefor-download-pending h2 {
    margin: 0 0 6px;
    font-size: 18px;
}

.corefor-download-pending p {
    margin: 0 0 14px;
    color: var(--text-muted);
    font-size: 14px;
    line-height: 1.6;
}

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

/* =====================================================================
   NEWS / POSTS
   ===================================================================== */

.corefor-hero-proof {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--color-text-secondary);
    font-size: 13px;
}

.corefor-hero-proof strong {
    color: var(--color-text-primary);
    font-variant-numeric: tabular-nums;
}

.corefor-tile--status .corefor-server-list {
    max-height: 238px;
    overflow-y: auto;
    padding-right: 4px;
}

.corefor-news-page {
    max-width: 1120px;
    margin-inline: auto;
}

.corefor-news-head h1 {
    margin: 0;
    font-size: clamp(30px, 3vw, 44px);
    letter-spacing: -0.03em;
}

.corefor-news-head p {
    margin: 8px 0 0;
    color: var(--color-text-secondary);
    font-size: 15px;
}

.corefor-news-search {
    max-width: 520px;
    margin: var(--space-6) 0;
}

.corefor-news-search .input-group {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    overflow: hidden;
}

.corefor-news-search .form-control {
    border: 0;
    background: transparent;
}

.corefor-news-search .btn {
    border-radius: 0;
}

/* --- News bento (ТЗ: крупный + 2 мини + сетка остальных) --- */
.corefor-news-bento {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.corefor-news-hero {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    transition: transform var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
}

.corefor-news-hero:hover,
.corefor-news-mini:hover {
    transform: translateY(-2px);
    border-color: var(--color-primary-border);
}

.corefor-news-hero.has-cover {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
}

/* Кадр лида — широкоформатный 16:9: ширина показана целиком,
   обрезаются только верх/низ, и только на пару процентов. */
.corefor-news-hero .corefor-news-cover {
    display: grid;
    place-items: center;
}

.corefor-news-hero .corefor-news-cover img {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

.corefor-news-hero .corefor-news-title {
    font-size: clamp(20px, 2.2vw, 28px);
    letter-spacing: -0.02em;
}

.corefor-news-side {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: var(--space-4);
    min-width: 0;
}

.corefor-news-mini {
    display: flex;
    min-height: 0;
    overflow: hidden;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    transition: transform var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
}

.corefor-news-mini.has-cover {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
}

.corefor-news-mini-cover {
    display: grid;
    place-items: center;
    background: var(--color-surface-elevated);
}

/* Превью мини-новости — широкоформатный кадр 16:9, как у источника:
   по ширине картинка видна целиком, обрезается только верх/низ. */
.corefor-news-mini-cover img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    min-height: 0;
}

.corefor-news-mini .corefor-news-body {
    gap: 8px;
    padding: 14px 16px;
}

.corefor-news-mini .corefor-news-title {
    display: -webkit-box;
    overflow: hidden;
    font-size: 16px;
    line-height: 1.35;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.corefor-news-mini .corefor-news-excerpt {
    font-size: 13.5px;
    line-height: 1.55;
    -webkit-line-clamp: 2;
}

.corefor-news-mini .corefor-news-link {
    font-size: 12px;
}

/* Одна мини-карточка занимает всю строку — текст чуть крупнее, чтобы не пустовала */
.corefor-news-side.is-single .corefor-news-title {
    font-size: 20px;
    line-height: 1.3;
}

.corefor-news-side.is-single .corefor-news-excerpt {
    font-size: 14px;
    -webkit-line-clamp: 3;
}

/* Pinned: один язык на сайте и в лаунчере */
.corefor-pin {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 2px 8px;
    border: 1px solid rgba(255, 87, 34, 0.35);
    border-radius: 9999px;
    background: rgba(255, 87, 34, 0.12);
    color: var(--color-primary);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.02em;
    white-space: nowrap;
}

.corefor-pin i {
    font-size: 9px;
}

.corefor-news-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-4);
}

.corefor-news-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    transition: transform var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
}

.corefor-news-card:hover {
    transform: translateY(-2px);
    border-color: var(--color-primary-border);
}

.corefor-news-cover {
    display: block;
    min-height: 0;
    background: var(--color-surface-elevated);
}

.corefor-news-cover img {
    display: block;
    width: 100%;
    height: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

.corefor-news-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: var(--space-3);
    padding: clamp(18px, 2.2vw, 26px);
}

.corefor-news-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    color: var(--color-text-tertiary);
    font-size: 12px;
}

.corefor-news-meta .author {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--color-text-secondary);
}

.corefor-news-meta .author img {
    width: 20px;
    height: 20px;
    border-radius: 6px;
    object-fit: cover;
    image-rendering: pixelated;
}

.corefor-news-title {
    margin: 0;
    font-size: 20px;
    line-height: 1.3;
}

.corefor-news-title a {
    color: var(--color-text-primary);
}

.corefor-news-title a:hover {
    color: var(--color-primary);
}

.corefor-news-excerpt {
    display: -webkit-box;
    overflow: hidden;
    margin: 0;
    color: var(--color-text-secondary);
    font-size: 14px;
    line-height: 1.65;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.corefor-news-grid .corefor-news-excerpt {
    -webkit-line-clamp: 2;
}

.corefor-news-excerpt:empty {
    display: none;
}

.corefor-news-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: auto;
    color: var(--color-primary);
    font-size: 13px;
    font-weight: 600;
}

.corefor-news-link:hover {
    color: var(--color-primary-hover);
}

.corefor-pagination {
    display: flex;
    justify-content: center;
    margin-top: var(--space-6);
}

@media (max-width: 1199.98px) {
    .corefor-news-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .corefor-news-hero.has-cover {
        display: flex;
    }

    /* На телефоне мини-карточка вертикальная: кадр во всю ширину, текст ниже */
    .corefor-news-mini.has-cover {
        display: flex;
        flex-direction: column;
    }

    .corefor-news-mini-cover {
        width: 100%;
    }

    .corefor-news-grid {
        grid-template-columns: 1fr;
    }
}

/* Reading mode for single posts (core view is styled via CSS-first) */
.content:has(#comments) {
    max-width: 800px;
    margin-inline: auto;
}

.content:has(#comments) > h1 {
    margin-bottom: var(--space-4);
    letter-spacing: -0.02em;
}

.content:has(#comments) > img.img-fluid {
    width: 100%;
    aspect-ratio: 16 / 9;
    border-radius: var(--radius-lg);
    object-fit: cover;
}

.content:has(#comments) > .card {
    background: var(--color-surface);
    border-color: var(--color-border);
    border-radius: var(--radius-lg);
}

.content:has(#comments) .card-text {
    color: var(--color-text-primary);
    font-size: 16px;
    line-height: 1.8;
}

/* =====================================================================
   FAQ / SUPPORT
   ===================================================================== */

.corefor-faq {
    max-width: 840px;
    margin-inline: auto;
}

.corefor-faq-search {
    position: relative;
    margin: var(--space-6) 0;
}

.corefor-faq-search > i {
    position: absolute;
    top: 50%;
    left: 14px;
    z-index: 1;
    transform: translateY(-50%);
    color: var(--color-text-tertiary);
    font-size: 13px;
    pointer-events: none;
}

.corefor-faq-search .form-control {
    padding-left: 38px;
}

.corefor-faq-accordion {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.corefor-faq-accordion .accordion-item {
    overflow: hidden;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
}

.corefor-faq-accordion .accordion-button {
    background: transparent;
    color: var(--color-text-primary);
    font-weight: 600;
    box-shadow: none;
}

.corefor-faq-accordion .accordion-button:not(.collapsed) {
    background: var(--color-surface-elevated);
    color: var(--color-primary);
}

.corefor-faq-accordion .accordion-button:focus {
    box-shadow: none;
}

.corefor-faq-accordion .accordion-body {
    color: var(--color-text-secondary);
    font-size: 14px;
    line-height: 1.7;
}

html:has(.corefor-support) {
    scrollbar-gutter: stable;
}

.corefor-support {
    max-width: 1120px;
    margin-inline: auto;
}

.corefor-support-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-4);
    margin-bottom: var(--space-5);
}

.corefor-support-head h1 {
    margin: 0 0 6px;
}

.corefor-support-head p {
    margin: 0;
    color: var(--color-text-secondary);
    font-size: 14px;
}

.corefor-support-info {
    margin-bottom: var(--space-5);
}

.corefor-support-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.corefor-support-toolbar-start {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.corefor-support-create {
    white-space: nowrap;
}

.corefor-support-chips {
    display: inline-flex;
    gap: 4px;
    padding: 3px;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 10px;
}

.corefor-support-chip {
    border: 0;
    border-radius: 8px;
    padding: 7px 12px;
    background: transparent;
    color: var(--color-text-secondary);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
}

.corefor-support-chip:hover {
    color: var(--color-text-primary);
}

.corefor-support-chip.is-active {
    background: var(--color-surface-elevated);
    color: var(--color-text-primary);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.18);
}

.corefor-support-search {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1 1 220px;
    max-width: 340px;
    height: 40px;
    padding: 0 12px;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 10px;
    color: var(--color-text-tertiary);
}

.corefor-support-search:focus-within {
    border-color: rgba(255, 87, 34, 0.55);
    box-shadow: 0 0 0 3px rgba(255, 87, 34, 0.12);
}

.corefor-support-search input {
    flex: 1;
    min-width: 0;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--color-text-primary);
    font-size: 13.5px;
}

.corefor-support-search input::placeholder {
    color: var(--color-text-tertiary);
}

.corefor-support-grid.is-initializing {
    visibility: hidden;
}

.corefor-support-row {
    cursor: pointer;
}

.corefor-support-ticket-link {
    display: block;
    width: 100%;
    min-width: 0;
    overflow: hidden;
    color: var(--color-text-primary);
    font-weight: 600;
    text-decoration: none;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.corefor-support-ticket-link:hover {
    color: var(--color-accent);
}

.corefor-ticket-page {
    max-width: 1120px;
    margin-inline: auto;
}

.corefor-ticket-back {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 14px;
    color: var(--color-text-secondary);
    font-size: 13px;
    text-decoration: none;
}

.corefor-ticket-back:hover {
    color: var(--color-accent);
}

.corefor-ticket-head {
    margin-bottom: 22px;
}

.corefor-ticket-number {
    color: var(--color-text-tertiary);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
}

.corefor-ticket-head-main {
    min-width: 0;
}

.corefor-ticket-head h1 {
    margin: 4px 0 10px;
    overflow-wrap: anywhere;
    font-size: clamp(22px, 2.4vw, 30px);
    line-height: 1.25;
}

.corefor-ticket-badges {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.corefor-ticket-category {
    padding: 2px 8px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-full, 9999px);
    color: var(--color-text-secondary);
    font-size: 12.5px;
}

.corefor-ticket-priority {
    display: inline-flex;
    align-items: center;
    padding: 2px 9px;
    border-radius: var(--radius-full, 9999px);
    font-size: 11px;
    font-weight: 600;
    line-height: 1.6;
}

.corefor-ticket-priority--low {
    background: rgba(255, 255, 255, 0.08);
    color: var(--text-muted);
}

.corefor-ticket-priority--normal {
    background: rgba(33, 150, 243, 0.12);
    color: #90caf9;
}

.corefor-ticket-priority--high {
    background: rgba(255, 152, 0, 0.14);
    color: #ffcc80;
}

.corefor-ticket-priority--urgent {
    background: rgba(244, 67, 54, 0.14);
    color: #ef9a9a;
}

.corefor-ticket-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 24px;
    align-items: start;
}

.corefor-ticket-main {
    min-width: 0;
}

.corefor-ticket-timeline {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin-bottom: 18px;
}

.corefor-ticket-message {
    display: flex;
    gap: 12px;
    padding: 16px;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-left: 3px solid transparent;
    border-radius: var(--radius-lg);
}

.corefor-ticket-message.is-staff {
    border-left-color: var(--color-accent);
}

.corefor-ticket-avatar {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    object-fit: cover;
    background: var(--color-surface-elevated);
}

.corefor-ticket-message-main {
    flex: 1;
    min-width: 0;
}

.corefor-ticket-message-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}

.corefor-ticket-message-author {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

.corefor-ticket-message-author strong {
    font-size: 13.5px;
}

.corefor-ticket-message-head time {
    color: var(--color-text-tertiary);
    font-size: 11.5px;
    white-space: nowrap;
}

.corefor-ticket-role {
    display: inline-flex;
    padding: 1px 7px;
    border-radius: var(--radius-full, 9999px);
    background: rgba(255, 255, 255, 0.07);
    color: var(--color-text-secondary);
    font-size: 10.5px;
    font-weight: 600;
}

.corefor-ticket-role.is-staff {
    background: rgba(255, 87, 34, 0.14);
    color: #ffb59f;
}

.corefor-ticket-role.is-system {
    padding-inline: 0;
    background: transparent;
    color: var(--color-text-tertiary);
}

.corefor-ticket-message-body {
    overflow-wrap: anywhere;
    color: var(--color-text-primary);
    font-size: 14px;
    line-height: 1.65;
}

.corefor-ticket-message-body > :first-child {
    margin-top: 0;
}

.corefor-ticket-message-body > :last-child {
    margin-bottom: 0;
}

.corefor-ticket-message-body p {
    margin: 0 0 10px;
}

.corefor-ticket-message-body a {
    color: var(--color-accent);
}

.corefor-ticket-message-body img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
}

.corefor-ticket-message-body pre {
    overflow: auto;
    padding: 12px;
    border-radius: 8px;
    background: rgba(0, 0, 0, 0.35);
}

.corefor-ticket-message-body blockquote {
    margin: 10px 0;
    padding: 8px 12px;
    border-left: 3px solid var(--color-border);
    color: var(--color-text-secondary);
}

.corefor-ticket-message-body table {
    width: 100%;
    border-collapse: collapse;
}

.corefor-ticket-message-body th,
.corefor-ticket-message-body td {
    padding: 6px 8px;
    border: 1px solid var(--color-border);
}

.corefor-ticket-composer {
    padding: 20px;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
}

.corefor-ticket-composer-head h2 {
    margin: 0 0 4px;
    font-size: 16px;
}

.corefor-ticket-composer-head p {
    margin: 0 0 14px;
    color: var(--color-text-secondary);
    font-size: 13px;
}

.corefor-ticket-composer-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 12px;
}

.corefor-ticket-closed {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 18px;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    color: var(--color-text-secondary);
}

.corefor-ticket-closed > i {
    margin-top: 2px;
    color: var(--color-text-tertiary);
    font-size: 18px;
}

.corefor-ticket-closed strong {
    display: block;
    margin-bottom: 2px;
    color: var(--color-text-primary);
}

.corefor-ticket-closed p {
    margin: 0;
    font-size: 13px;
}

.corefor-ticket-closed form {
    margin-left: auto;
}

.corefor-ticket-sidebar {
    position: sticky;
    top: calc(var(--corefor-header-h, 64px) + 16px);
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.corefor-ticket-panel {
    padding: 16px;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
}

.corefor-ticket-panel h2 {
    margin: 0 0 12px;
    color: var(--color-text-tertiary);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.corefor-ticket-props {
    margin: 0;
}

.corefor-ticket-props > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 9px 0;
    border-bottom: 1px solid var(--color-border);
}

.corefor-ticket-props > div:first-child {
    padding-top: 0;
}

.corefor-ticket-props > div:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.corefor-ticket-props dt {
    color: var(--color-text-secondary);
    font-size: 12.5px;
    font-weight: 500;
}

.corefor-ticket-props dd {
    margin: 0;
    color: var(--color-text-primary);
    font-size: 12.5px;
    text-align: right;
}

.corefor-ticket-user {
    display: flex;
    align-items: center;
    gap: 10px;
}

.corefor-ticket-user img {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    object-fit: cover;
}

.corefor-ticket-user strong {
    display: block;
    font-size: 13.5px;
}

.corefor-ticket-user small {
    color: var(--color-text-tertiary);
    font-size: 11.5px;
}

html[data-theme="light"] .corefor-ticket-priority--low {
    background: rgba(0, 0, 0, 0.06);
    color: var(--text-muted);
}

html[data-theme="light"] .corefor-ticket-priority--normal {
    background: rgba(13, 71, 161, 0.10);
    color: #0d47a1;
}

html[data-theme="light"] .corefor-ticket-priority--high {
    background: rgba(138, 90, 0, 0.10);
    color: #8a5a00;
}

html[data-theme="light"] .corefor-ticket-priority--urgent {
    background: rgba(183, 28, 28, 0.10);
    color: #b71c1c;
}

html[data-theme="light"] .corefor-ticket-role {
    background: rgba(0, 0, 0, 0.05);
}

html[data-theme="light"] .corefor-ticket-role.is-staff {
    background: rgba(255, 87, 34, 0.12);
    color: #b53c15;
}

html[data-theme="light"] .corefor-ticket-message-body pre {
    background: #f4f4f5;
}

@media (max-width: 991.98px) {
    .corefor-ticket-layout {
        grid-template-columns: 1fr;
    }

    .corefor-ticket-sidebar {
        position: static;
    }
}

@media (max-width: 575.98px) {
    .corefor-support-head {
        flex-direction: column;
        align-items: stretch;
    }

    .corefor-ticket-head h1 {
        font-size: 20px;
    }

    .corefor-support-toolbar {
        align-items: stretch;
    }

    .corefor-support-toolbar-start {
        width: 100%;
    }

    .corefor-support-search {
        max-width: none;
    }

    .corefor-ticket-message {
        padding: 14px;
    }

    .corefor-ticket-message-head {
        flex-direction: column;
        gap: 4px;
    }

    .corefor-ticket-closed {
        flex-wrap: wrap;
    }

    .corefor-ticket-closed form {
        width: 100%;
        margin-left: 0;
    }

    .corefor-ticket-closed form .btn {
        width: 100%;
    }
}

/* =====================================================================
   LAUNCHER PAGE EXTRAS
   ===================================================================== */

.corefor-launcher-hero {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: var(--space-6);
    align-items: center;
}

.corefor-launcher-visual {
    position: relative;
    min-height: 220px;
    padding: var(--space-4);
    background: linear-gradient(145deg, var(--color-surface-elevated), var(--color-surface));
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.corefor-launcher-visual::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 75% 20%, rgba(255, 87, 34, 0.20), transparent 55%);
    pointer-events: none;
}

.corefor-launcher-window {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 10px;
    height: 100%;
    min-height: 188px;
    padding: var(--space-4);
    background: rgba(18, 18, 18, 0.72);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
}

.corefor-launcher-window-bar {
    display: flex;
    gap: 6px;
}

.corefor-launcher-window-bar span {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--color-text-tertiary);
}

.corefor-launcher-window-bar span:first-child { background: var(--color-primary); }

.corefor-launcher-window-line {
    height: 8px;
    width: 78%;
    border-radius: 9999px;
    background: var(--color-surface-elevated);
}

.corefor-launcher-window-line.is-short { width: 48%; }
.corefor-launcher-window-line.is-cta { width: 38%; height: 34px; margin-top: auto; background: var(--color-primary-strong); }

.corefor-launcher-features {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-4);
    margin-top: var(--space-8);
}

.corefor-launcher-feature {
    padding: var(--space-5);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
}

.corefor-launcher-feature i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    margin-bottom: var(--space-3);
    background: rgba(255, 87, 34, 0.10);
    border-radius: var(--radius-sm);
    color: var(--color-primary);
}

.corefor-launcher-feature h3 {
    margin: 0 0 6px;
    font-size: 15px;
}

.corefor-launcher-feature p {
    margin: 0;
    color: var(--color-text-secondary);
    font-size: 13px;
    line-height: 1.55;
}

@media (max-width: 991.98px) {
    .corefor-launcher-hero {
        grid-template-columns: 1fr;
    }

    .corefor-launcher-features {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .corefor-launcher-features {
        grid-template-columns: 1fr;
    }
}

/* Launcher CTA lives in the header; no floating download buttons. */

/* =====================================================================
   SHOP (плагин shop) — store-слой поверх глобальных BS-overrides.
   Всё скоупится .corefor-shop (обёртка на страницах магазина), чтобы не
   течь на другие плагинные вьюхи. Паттерны Astryx: карточки товаров с
   акцентной границей на hover, плотные строки списков вместо карточек в
   карточках, нейтральные пустые состояния, диалог шапка/тело/подвал,
   одна primary-кнопка на главное действие экрана.
   ===================================================================== */

/* --- Каркас страницы --- */
.corefor-shop h1 {
    font-size: clamp(24px, 2.4vw, 32px);
    font-weight: 600;
    letter-spacing: -0.01em;
    margin-bottom: 20px;
}

.corefor-shop h3 { font-size: 16px; font-weight: 600; margin-bottom: 4px; }
.corefor-shop h4 { font-size: 20px; font-weight: 700; margin-bottom: 0; color: var(--primary); }
.corefor-shop h5 { font-size: 14px; font-weight: 600; color: var(--text-muted); margin-bottom: 12px; }

/* Пустые состояния/предупреждения — нейтральная плашка с иконкой */
.corefor-shop .alert {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 16px;
    background: var(--glass-bg, rgba(30, 30, 30, 0.65));
    border-color: var(--glass-border, rgba(255, 255, 255, 0.08));
    color: var(--text-muted);
    backdrop-filter: blur(var(--glass-blur, 12px));
    -webkit-backdrop-filter: blur(var(--glass-blur, 12px));
}

.corefor-shop .alert i { color: #ffb74d; font-size: 16px; }

/* --- Сайдбар магазина --- */
.corefor-shop .list-group {
    gap: 2px;
}

.corefor-shop .list-group-item {
    background: transparent;
    border: 0;
    border-radius: var(--radius-element, 8px);
    color: var(--text-muted);
    padding: 10px 14px;
    font-size: 14px;
    transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}

.corefor-shop .list-group-item i { width: 18px; margin-right: 8px; text-align: center; }

.corefor-shop .list-group-item.ps-5 { padding-left: 34px; }

.corefor-shop .list-group-item:hover {
    background: rgba(255, 255, 255, 0.05);
    color: var(--text-main);
}

.corefor-shop .list-group-item.active {
    background: rgba(255, 87, 34, 0.14);
    color: #fff;
    font-weight: 500;
    box-shadow: inset 3px 0 0 var(--primary);
}

/* Категории магазина — дерево: панель с фоном + дети с направляющей */
.corefor-shop-tree {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 8px;
    background: var(--glass-bg, rgba(30, 30, 30, 0.65));
    border: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
    border-radius: var(--radius-container, 12px);
    backdrop-filter: blur(var(--glass-blur, 12px));
    -webkit-backdrop-filter: blur(var(--glass-blur, 12px));
}

.corefor-shop-tree-link {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    border-radius: var(--radius-element, 8px);
    color: var(--text-muted);
    font-size: 14px;
    text-decoration: none;
    transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}

.corefor-shop-tree-link i { width: 18px; flex: 0 0 18px; text-align: center; }

.corefor-shop-tree-link:hover {
    background: rgba(255, 255, 255, 0.05);
    color: var(--text-main);
}

.corefor-shop-tree-link.active {
    background: rgba(255, 87, 34, 0.14);
    color: #fff;
    font-weight: 500;
    box-shadow: inset 3px 0 0 var(--primary);
}

.corefor-shop-tree-children {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin: 2px 0 4px 14px;
    padding-left: 10px;
    border-left: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
}

/* --- Магазин: 3-зонная сетка (категории / тулбар+товары / утилиты) --- */
.corefor-shop-layout {
    display: grid;
    grid-template-columns: minmax(180px, 210px) minmax(0, 1fr) minmax(190px, 220px);
    grid-template-areas:
        "categories toolbar account"
        "categories content account";
    gap: 20px;
    align-items: start;
}

/* Широкие экраны: магазин использует больше ширины — 5–6 карточек в ряд */
@media (min-width: 1400px) {
    main.container:has(.corefor-shop) { max-width: 1440px; }
}

@media (min-width: 1600px) {
    main.container:has(.corefor-shop) { max-width: 1560px; }
}

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

.corefor-shop-col--categories {
    grid-area: categories;
}

.corefor-shop-col--content {
    grid-area: content;
}

.corefor-shop-col--account {
    grid-area: account;
}

.corefor-shop-col--categories,
.corefor-shop-col--account {
    position: sticky;
    top: calc(var(--corefor-header-h, 64px) + 16px);
    align-self: start;
}

.corefor-shop-col--account {
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-height: calc(100vh - var(--corefor-header-h, 64px) - 32px);
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
}

/* Сайдбар формы логина магазина (legacy-страница guest purchases) */
@media (min-width: 992px) {
    .corefor-shop-sidebar {
        position: sticky;
        top: calc(var(--corefor-header-h, 64px) + 16px);
        align-self: flex-start;
    }
}

/* Правая колонка: баланс, действия, цель, сообщество */
.corefor-shop-wallet {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 14px;
    background: var(--glass-bg, rgba(30, 30, 30, 0.65));
    border: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
    border-radius: var(--radius-container, 12px);
    backdrop-filter: blur(var(--glass-blur, 12px));
    -webkit-backdrop-filter: blur(var(--glass-blur, 12px));
}

.corefor-shop-balance {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.corefor-shop-balance-label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--text-muted);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0;
}

.corefor-shop-balance-label i {
    color: var(--primary);
    font-size: 13px;
}

.corefor-shop-balance-value-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    min-width: 0;
}

.corefor-shop-balance-value {
    color: var(--text-main);
    font-size: 26px;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -0.01em;
    font-variant-numeric: tabular-nums;
}

.corefor-shop-balance-rate {
    color: var(--text-muted);
    font-size: 11px;
    font-weight: 400;
    line-height: 1.35;
    letter-spacing: 0;
}

/* Пересчёт суммы во внешнюю валюту по курсу магазина (≈ 50 ₽) */
.corefor-price-converted {
    display: block;
    color: var(--text-muted);
    font-size: 11.5px;
    font-weight: 400;
    line-height: 1.35;
    letter-spacing: 0;
    font-variant-numeric: tabular-nums;
}

.corefor-shop-balance-converted {
    display: inline;
    flex: 0 0 auto;
    margin: 0;
    font-size: 12px;
    line-height: 1.3;
    white-space: nowrap;
}

.corefor-shop-wallet > .btn,
.corefor-shop-wallet-payments {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: 100%;
    min-height: 42px;
    padding-inline: 10px;
    --bs-btn-padding-x: 10px;
    font-size: 13px;
    white-space: nowrap;
}

.corefor-shop-wallet-payments {
    margin-top: 0;
}

.corefor-shop-wallet-wide {
    grid-column: 1 / -1;
}

.corefor-shop-goal {
    padding: 14px;
    background: var(--glass-bg, rgba(30, 30, 30, 0.65));
    border: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
    border-radius: var(--radius-container, 12px);
    backdrop-filter: blur(var(--glass-blur, 12px));
    -webkit-backdrop-filter: blur(var(--glass-blur, 12px));
}

.corefor-shop-goal h3 {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 10px;
    color: var(--text-muted);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0;
}

.corefor-shop-goal h3 i {
    color: var(--primary);
    font-size: 13px;
}

.corefor-shop-goal .progress {
    width: 100%;
    height: 8px;
    background: rgba(255, 255, 255, 0.06);
}

.corefor-shop-goal .progress-bar {
    background: var(--primary);
}

.corefor-shop-goal-text {
    margin: 10px 0 0;
    color: var(--text-muted);
    font-size: 12.5px;
}

.corefor-shop-goal-percent {
    display: block;
    margin-top: 3px;
    color: var(--primary);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.corefor-shop .corefor-shop-recent-empty {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--text-muted);
    font-size: 12.5px;
}

.corefor-shop .corefor-shop-recent-empty i {
    font-size: 13px;
    opacity: 0.7;
}

.corefor-shop-community {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.corefor-shop-community .card {
    margin-bottom: 0;
}

/* Планшет: поиск сверху, категории слева, утилиты под категориями.
   Баланс/корзина остаются доступными, но не вытесняют поиск и каталог. */
@media (max-width: 1199.98px) {
    .corefor-shop-layout {
        grid-template-columns: minmax(180px, 210px) minmax(0, 1fr);
        grid-template-areas:
            "toolbar toolbar"
            "categories content"
            "account content";
    }

    .corefor-shop-col--categories {
        position: static;
    }

    .corefor-shop-col--account {
        position: static;
        max-height: none;
        overflow: visible;
    }
}

/* На планшете блоки сообщества (лучший покупатель/последние покупки)
   убираем из узкой левой колонки; на мобиле они идут после товаров. */
@media (min-width: 992px) and (max-width: 1199.98px) {
    .corefor-shop-col--account .corefor-shop-community {
        display: none;
    }
}

/* Мобайл: поиск → товары → утилиты. Категории открываются из tabbar. */
@media (max-width: 991.98px) {
    .corefor-shop-layout {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "toolbar"
            "content";
        gap: 16px;
    }

    .corefor-shop-col--categories,
    .corefor-shop-col--account {
        display: none;
        position: static;
    }

    .corefor-shop-wallet,
    .corefor-shop-community {
        flex-direction: column;
        align-items: stretch;
    }

    .corefor-shop-wallet,
    .corefor-shop-goal {
        flex: 1 1 auto;
    }

    .corefor-shop-wallet .corefor-shop-balance,
    .corefor-shop-community > .card {
        flex: 0 0 auto;
    }

    /* Нижняя панель не должна перекрывать карточки, пагинацию и футер */
    .corefor-shop {
        padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px));
    }

    body:has(.corefor-shop-tabbar) .corefor-main {
        padding-bottom: calc(60px + env(safe-area-inset-bottom, 0px));
    }
}

/* --- Мобильный tabbar магазина + шторка категорий ---------------------- */
.corefor-shop-tabbar {
    display: none;
}

@media (max-width: 991.98px) {
    .corefor-shop-tabbar {
        position: fixed;
        right: 0;
        bottom: 0;
        left: 0;
        /* Ниже дровера (40/50) и Bootstrap-модалок (1050/1055) */
        z-index: 35;
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 4px;
        min-height: 58px;
        padding: 6px 8px calc(6px + env(safe-area-inset-bottom, 0px));
        background: var(--cf-glass, rgba(18, 18, 18, 0.92));
        border-top: 1px solid var(--cf-hairline, rgba(255, 255, 255, 0.08));
        backdrop-filter: blur(var(--glass-blur, 12px));
        -webkit-backdrop-filter: blur(var(--glass-blur, 12px));
        transition: transform 180ms var(--ease), opacity 180ms var(--ease);
    }

    .corefor-shop-tab {
        position: relative;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 3px;
        min-height: 46px;
        padding: 4px 6px;
        border: 0;
        border-radius: var(--radius-btn, 8px);
        background: transparent;
        color: var(--cf-muted, var(--text-muted));
        font-family: inherit;
        font-size: 11px;
        font-weight: 600;
        line-height: 1;
        text-decoration: none;
        cursor: pointer;
        transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
    }

    .corefor-shop-tab:hover {
        color: var(--cf-text, var(--text-main));
    }

    .corefor-shop-tab:focus-visible {
        outline: 2px solid var(--primary);
        outline-offset: -2px;
    }

    .corefor-shop-tab.active,
    .corefor-shop-tab.is-open {
        background: rgba(255, 87, 34, 0.12);
        color: var(--primary);
    }

    .corefor-shop-tab-icon {
        position: relative;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-size: 17px;
    }

    .corefor-shop-tab-label {
        display: block;
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .corefor-shop-tab-badge {
        position: absolute;
        top: -6px;
        left: 12px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 17px;
        height: 17px;
        padding: 0 4px;
        border-radius: 999px;
        background: var(--color-primary-strong, #c63f17);
        color: #fff;
        font-size: 10px;
        font-weight: 700;
        line-height: 1;
        font-variant-numeric: tabular-nums;
    }

    .corefor-shop-tab-badge[hidden] {
        display: none;
    }

    /* Клавиатура поиска не должна прятаться за панелью */
    body:has(#shop-search:focus) .corefor-shop-tabbar {
        transform: translateY(calc(100% + 12px));
        pointer-events: none;
    }

    body.modal-open .corefor-shop-tabbar,
    body.corefor-sidebar-open .corefor-shop-tabbar {
        display: none;
    }

    body.corefor-shop-sheet-open .corefor-shop-tabbar {
        transform: translateY(100%);
    }
}

body.corefor-shop-sheet-open {
    overflow: hidden;
}

.corefor-shop-sheet {
    position: fixed;
    inset: 0;
    z-index: 1040;
    display: flex;
    align-items: flex-end;
}

.corefor-shop-sheet[hidden] {
    display: none;
}

.corefor-shop-sheet-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.58);
    opacity: 0;
    transition: opacity 220ms var(--ease);
}

.corefor-shop-sheet.is-open .corefor-shop-sheet-backdrop {
    opacity: 1;
}

.corefor-shop-sheet-panel {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    max-height: min(78vh, 640px);
    border: 1px solid var(--cf-border, rgba(255, 255, 255, 0.1));
    border-bottom: 0;
    border-radius: 16px 16px 0 0;
    background: var(--cf-surface, var(--popover, #1e1e1e));
    transform: translateY(100%);
    transition: transform 220ms var(--ease);
}

.corefor-shop-sheet.is-open .corefor-shop-sheet-panel {
    transform: translateY(0);
}

.corefor-shop-sheet-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 16px 10px;
    border-bottom: 1px solid var(--cf-hairline, rgba(255, 255, 255, 0.08));
}

.corefor-shop-sheet-head h2 {
    margin: 0;
    font-size: 16px;
}

.corefor-shop-sheet-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 1px solid var(--cf-hairline, rgba(255, 255, 255, 0.1));
    border-radius: var(--radius-btn, 8px);
    background: rgba(255, 255, 255, 0.04);
    color: var(--text-main);
    font-size: 16px;
    cursor: pointer;
}

.corefor-shop-sheet-close:hover {
    border-color: var(--primary);
    color: var(--primary);
}

.corefor-shop-sheet-close:focus-visible {
    outline: 2px solid var(--primary);
    outline-offset: 2px;
}

.corefor-shop-sheet-body {
    display: flex;
    flex-direction: column;
    gap: 12px;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding: 12px 12px calc(16px + env(safe-area-inset-bottom, 0px));
}

.corefor-shop-sheet .corefor-shop-tree {
    padding: 0;
    background: transparent;
    border: 0;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

/* В шторке кошелька панель не должна дублировать поверхность шторки */
.corefor-shop-sheet-body .corefor-shop-wallet {
    gap: 10px;
    padding: 0;
    background: transparent;
    border: 0;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

.corefor-shop-tree--sheet .corefor-shop-tree-link {
    min-height: 46px;
    font-size: 15px;
}

@media (min-width: 992px) {
    .corefor-shop-sheet {
        display: none !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .corefor-shop-sheet-backdrop,
    .corefor-shop-sheet-panel,
    .corefor-shop-tabbar {
        transition: none;
    }
}

/* Аккаунт-магазин: действия компактно (Пополнить+Корзина в один ряд);
   баланс переехал в тулбар контента. Юзер не дублируется (он в навбаре сайта). */
.corefor-shop-account { margin-bottom: 16px; }

.corefor-shop-account .row {
    align-items: stretch;
}

.corefor-shop-account .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    height: 100%;
    min-height: 42px;
    padding-inline: 10px;
    --bs-btn-padding-x: 10px;
    font-size: 13px;
    white-space: nowrap;
}

/* Бейдж количества товаров на кнопке «Корзина» */
.corefor-shop .corefor-shop-cart-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    border-radius: 999px;
    background: #fff;
    color: var(--primary-strong, #c63f17);
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}

.corefor-shop .corefor-shop-cart-badge[hidden] { display: none; }

/* Quantity stepper (карточка, модалка, корзина) */
.corefor-shop .qty-stepper {
    display: inline-flex;
    align-items: center;
    height: 34px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
    border-radius: var(--radius-element, 8px);
}

.corefor-shop .qty-stepper-btn {
    width: 30px;
    height: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--text-muted);
    font-size: 15px;
    line-height: 1;
    cursor: pointer;
    transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}

.corefor-shop .qty-stepper-btn:hover {
    background: rgba(255, 255, 255, 0.08);
    color: var(--text-main);
}

.corefor-shop .qty-stepper-value,
.corefor-shop .qty-stepper-input {
    width: 30px;
    min-width: 30px;
    height: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--text-main);
    font-size: 13px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    text-align: center;
}

.corefor-shop .qty-stepper-value {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.corefor-shop .qty-stepper-input {
    display: block;
    line-height: 32px;
}

.corefor-shop .qty-stepper-input { appearance: textfield; }

.corefor-shop .qty-stepper-input::-webkit-outer-spin-button,
.corefor-shop .qty-stepper-input::-webkit-inner-spin-button {
    margin: 0;
    -webkit-appearance: none;
}

.corefor-shop .qty-stepper-input:focus-visible {
    outline: 2px solid var(--focus-outline-color);
    outline-offset: -2px;
}

.corefor-shop .qty-stepper.is-busy,
.corefor-shop .is-busy {
    opacity: 0.6;
    pointer-events: none;
}

/* Тулбар контента: поиск + сортировка */
.corefor-shop-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
    padding: 12px 16px;
    background: var(--glass-bg, rgba(30, 30, 30, 0.65));
    border: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
    border-radius: var(--radius-container, 12px);
    backdrop-filter: blur(var(--glass-blur, 12px));
    -webkit-backdrop-filter: blur(var(--glass-blur, 12px));
}

.corefor-shop-search {
    position: relative;
    display: flex;
    flex: 1 1 300px;
    align-items: center;
    gap: 10px;
}

.corefor-shop-search > i {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--text-muted);
    font-size: 14px;
    pointer-events: none;
}

.corefor-shop-search .form-control { flex: 1; padding-left: 36px; }

/* Заметка под заголовком (оплата/пополнение) */
.corefor-shop-note {
    margin: -8px 0 20px;
    font-size: 13.5px;
    color: var(--text-muted);
}

/* Summary-блок корзины: итог + CTA */
.corefor-shop-summary {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
}

.corefor-shop-summary .shop-total { margin-bottom: 14px; }

/* Сворачиваемые секции (купоны/подарочные карты) */
.corefor-shop-accordion summary {
    display: flex;
    align-items: center;
    gap: 8px;
    list-style: none;
    cursor: pointer;
    font-size: 14px;
    font-weight: 600;
    color: var(--text-muted);
    transition: color var(--dur-fast) var(--ease);
    user-select: none;
}

.corefor-shop-accordion summary::-webkit-details-marker { display: none; }

.corefor-shop-accordion summary::after {
    content: '\25BE';
    margin-left: auto;
    font-size: 11px;
    transition: transform var(--dur-fast) var(--ease);
}

.corefor-shop-accordion[open] summary::after { transform: rotate(180deg); }

.corefor-shop-accordion summary:hover { color: var(--text-main); }

/* --- Страница корзины: позиции + summary --- */
.corefor-cart-items {
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 0;
    list-style: none;
    background: var(--glass-bg, rgba(30, 30, 30, 0.65));
    border: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
    border-radius: var(--radius-container, 12px);
    backdrop-filter: blur(var(--glass-blur, 12px));
    -webkit-backdrop-filter: blur(var(--glass-blur, 12px));
}

.corefor-cart-item {
    display: grid;
    grid-template-columns: 56px minmax(0, 1.1fr) minmax(140px, 1fr) auto 104px 34px;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
    border-bottom: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
}

.corefor-cart-item:last-child { border-bottom: 0; }

.corefor-cart-media {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    overflow: hidden;
    background: var(--surface-sunken, #161616);
    border: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
    border-radius: var(--radius-element, 8px);
}

.corefor-cart-media img {
    width: 100%;
    height: 100%;
    padding: 4px;
    object-fit: contain;
}

.corefor-cart-media i {
    color: rgba(255, 255, 255, 0.25);
    font-size: 18px;
}

.corefor-cart-info {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}

.corefor-cart-name {
    overflow: hidden;
    color: var(--text-main);
    font-size: 14.5px;
    font-weight: 600;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.corefor-cart-name-btn {
    width: 100%;
    padding: 0;
    border: 0;
    background: none;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.corefor-cart-name-btn:hover {
    color: var(--primary);
}

.corefor-cart-name-btn:focus-visible {
    outline: 2px solid var(--primary);
    outline-offset: 2px;
    border-radius: 4px;
}

.corefor-cart-item[data-package-card] .corefor-cart-media {
    cursor: pointer;
}

.corefor-cart-unit {
    color: var(--text-muted);
    font-size: 12.5px;
    font-variant-numeric: tabular-nums;
}

.corefor-cart-vars {
    display: flex;
    flex-wrap: wrap;
    align-self: center;
    gap: 4px 6px;
    min-width: 0;
}

.corefor-cart-var {
    display: inline-flex;
    align-items: center;
    padding: 2px 7px;
    border: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.05);
    color: var(--text-muted);
    font-size: 11.5px;
    line-height: 1.5;
    overflow-wrap: anywhere;
}

.corefor-cart-line-total {
    color: var(--text-main);
    font-size: 15px;
    font-weight: 600;
    text-align: right;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.corefor-cart-remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border: 1px solid transparent;
    border-radius: var(--radius-element, 8px);
    color: var(--text-muted);
    transition: color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
}

.corefor-cart-remove:hover {
    background: rgba(239, 68, 68, 0.08);
    border-color: rgba(239, 68, 68, 0.35);
    color: #ef9a9a;
}

.corefor-cart-qty-static {
    display: inline-block;
    min-width: 34px;
    color: var(--text-muted);
    font-size: 14px;
    font-weight: 600;
    text-align: center;
}

.corefor-cart-extras {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 16px;
}

.corefor-cart-applied { margin-top: 18px; }

.corefor-cart-applied-title {
    margin-bottom: 8px;
    color: var(--text-muted);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.3px;
}

/* Корзина: компактный баланс над «Итого» */
.corefor-cart-wallet {
    margin-bottom: var(--space-4, 16px);
}

.corefor-cart-summary {
    position: sticky;
    top: calc(var(--corefor-header-h, 64px) + 16px);
    padding: 18px;
    background: var(--glass-bg, rgba(30, 30, 30, 0.65));
    border: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
    border-radius: var(--radius-container, 12px);
    backdrop-filter: blur(var(--glass-blur, 12px));
    -webkit-backdrop-filter: blur(var(--glass-blur, 12px));
}

.corefor-cart-summary-title {
    margin: 0 0 14px;
    color: var(--text-muted);
    font-size: 15px;
    font-weight: 600;
}

.corefor-cart-totals {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 0;
}

.corefor-cart-total-row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin: 0;
    color: var(--text-muted);
    font-size: 13.5px;
}

.corefor-cart-total-row dt { font-weight: 400; }
.corefor-cart-total-row dd { margin: 0; color: var(--text-main); font-variant-numeric: tabular-nums; }

.corefor-cart-grand {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-top: 6px;
    padding-top: 12px;
    border-top: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
}

.corefor-cart-grand-label {
    color: var(--text-main);
    font-size: 14px;
    font-weight: 600;
}

.corefor-cart-grand-value {
    color: var(--primary);
    font-size: 22px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.corefor-cart-checkout { margin-top: 16px; }

.corefor-cart-terms {
    margin-bottom: 12px;
    color: var(--text-muted);
    font-size: 12.5px;
}

.corefor-cart-links {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 14px;
}

.corefor-cart-back {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--text-muted);
    font-size: 13px;
}

.corefor-cart-back:hover { color: var(--text-main); }

.corefor-cart-clear {
    padding: 0;
    border: 0;
    background: none;
    color: var(--text-muted);
    font-size: 12.5px;
}

.corefor-cart-clear:hover { color: #ef9a9a; }

.corefor-cart-empty { margin-top: 8px; }

@media (max-width: 767.98px) {
    .corefor-cart-item {
        grid-template-columns: 48px minmax(0, 1fr) auto;
        grid-template-areas:
            'media info total'
            'media vars vars'
            'media qty remove';
        row-gap: 8px;
        padding: 12px;
    }

    .corefor-cart-media { grid-area: media; align-self: start; width: 48px; height: 48px; }
    .corefor-cart-info { grid-area: info; }
    .corefor-cart-vars { grid-area: vars; }
    .corefor-cart-qty { grid-area: qty; justify-self: start; }
    .corefor-cart-line-total { grid-area: total; }
    .corefor-cart-remove { grid-area: remove; justify-self: end; }
    .corefor-cart-summary { position: static; }
}

/* Бейдж скидки на карточке товара */
.corefor-shop .package-card-discount {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 2;
    padding: 3px 9px;
    border-radius: var(--radius-full, 9999px);
    background: var(--primary-strong, #c63f17);
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.35);
    pointer-events: none;
}

/* Категория — бейдж в левом нижнем углу изображения */
.corefor-shop .package-card-category-badge {
    position: absolute;
    left: 10px;
    bottom: 10px;
    z-index: 2;
    max-width: calc(100% - 20px);
    padding: 3px 9px;
    overflow: hidden;
    border: 1px solid var(--glass-border, rgba(255, 255, 255, 0.1));
    border-radius: var(--radius-full, 9999px);
    background: var(--glass-bg-solid, rgba(30, 30, 30, 0.92));
    color: var(--text-muted);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: 0;
    white-space: nowrap;
    text-overflow: ellipsis;
}

@media (max-width: 575.98px) {
    .corefor-shop .package-card-category-badge {
        display: -webkit-box;
        overflow: hidden;
        border-radius: var(--radius-sm, 8px);
        line-height: 1.3;
        text-align: left;
        white-space: normal;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }
}

/* --- История покупок/платежей (profile) — журнал: дата | событие | сумма --- */
.corefor-history { margin-bottom: 28px; }

.corefor-history-heading {
    font-size: 15px;
    font-weight: 600;
    color: var(--text-muted);
    margin-bottom: 10px;
}

.corefor-history .card-body { padding: 6px 0; }

.corefor-history-row {
    display: flex;
    align-items: baseline;
    gap: 16px;
    padding: 12px 20px;
    border-bottom: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
}

.corefor-history-row:last-child { border-bottom: 0; }

.corefor-history-date {
    flex: 0 0 92px;
    font-size: 12.5px;
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
}

.corefor-history-body {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
    min-width: 0;
}

.corefor-history-title {
    font-size: 14.5px;
    color: var(--text-main);
}

.corefor-history-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    font-size: 12px;
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
}

.corefor-history-amount {
    font-size: 15px;
    font-weight: 600;
    color: var(--text-main);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.corefor-history-pill {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: var(--radius-full, 9999px);
    font-size: 11px;
    font-weight: 600;
    line-height: 1.6;
}

.corefor-history-pill--success { background: rgba(76, 175, 80, 0.12); color: #a5d6a7; }
.corefor-history-pill--warning { background: rgba(255, 152, 0, 0.12); color: #ffcc80; }
.corefor-history-pill--danger { background: rgba(244, 67, 54, 0.12); color: #ef9a9a; }
.corefor-history-pill--info { background: rgba(33, 150, 243, 0.12); color: #90caf9; }
.corefor-history-pill--primary,
.corefor-history-pill--secondary { background: rgba(255, 255, 255, 0.08); color: var(--text-muted); }

.corefor-history-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    padding: 36px 20px;
    text-align: center;
    color: var(--text-muted);
}

.corefor-history-empty i { font-size: 26px; color: rgba(255, 255, 255, 0.25); }
.corefor-history-empty p { margin: 0; font-size: 14px; }

@media (max-width: 575.98px) {
    .corefor-history-row {
        flex-wrap: wrap;
        gap: 4px 12px;
    }

    .corefor-history-date { flex: 1 1 100%; }
}

/* Цель сбора */
.corefor-shop .card-header {
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.3px;
    color: var(--text-muted);
}

.corefor-shop .progress { height: 8px; }

.corefor-shop .card .card-text { font-size: 13.5px; color: var(--text-muted); }

/* Последние покупки — плотные строки */
.corefor-shop .list-group-flush .list-group-item {
    padding: 10px 16px;
    border-bottom: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
    border-radius: 0;
}

.corefor-shop .list-group-flush .list-group-item:last-child { border-bottom: 0; }
.corefor-shop .list-group-flush .list-group-item:hover { background: transparent; }
.corefor-shop .list-group-flush img.rounded { border-radius: 8px; }
.corefor-shop .list-group-flush p { font-size: 14px; margin-bottom: 0; color: var(--text-main); }
.corefor-shop .list-group-flush small { font-size: 12px; color: var(--text-muted); }

/* --- Карточки товаров (сетка категории) --- */
.corefor-shop .package-card {
    --tilt-x: 0deg;
    --tilt-y: 0deg;
    --glare-x: 50%;
    --glare-y: 50%;
    --lift: 0px;
    --card-glare-color: color-mix(in srgb, var(--text-main) 10%, transparent);
    position: relative;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    cursor: pointer;
    transition:
        transform 240ms var(--ease),
        border-color var(--dur-fast) var(--ease),
        box-shadow var(--dur-fast) var(--ease);
}

.corefor-shop .package-card:hover {
    border-color: rgba(255, 87, 34, 0.5);
    box-shadow: 0 14px 30px rgba(0, 0, 0, 0.45);
}

/* Картинка: единый квадрат, contain — без обрезки краёв */
.corefor-shop .package-card-media {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1 / 1;
    padding: 12px;
    overflow: hidden;
    background:
        radial-gradient(circle at 50% 30%, rgba(255, 255, 255, 0.05), transparent 55%),
        var(--surface-sunken, #161616);
    border-bottom: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
}

.corefor-shop .package-card-media img {
    position: relative;
    z-index: 1;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
    transition: transform 320ms var(--ease);
}

.corefor-shop .package-card-placeholder {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    /* FA задаёт иконке width: 1.25em — растягиваем на всю область */
    width: 100%;
    height: 100%;
    color: rgba(255, 255, 255, 0.18);
    font-size: 32px;
}

.corefor-shop .package-card-placeholder--fallback {
    display: none;
}

.corefor-shop .package-card-media.is-broken .package-card-placeholder--fallback {
    display: flex;
}

.corefor-shop .package-card .card-body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 4px;
    padding: 8px 12px 10px;
}

.corefor-shop .package-card .card-title {
    margin: 0;
    color: var(--text-main);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.35;
}

.corefor-shop .package-card-title-btn {
    display: -webkit-box;
    width: 100%;
    min-height: calc(2 * 1.35em);
    padding: 0;
    overflow: hidden;
    border: 0;
    background: none;
    color: var(--text-main);
    font: inherit;
    text-align: left;
    cursor: pointer;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.corefor-shop .package-card-title-btn:hover { color: var(--primary); }

.corefor-shop .package-card-price-block {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
}

.corefor-shop .package-card-price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 2px 6px;
    max-width: 100%;
    margin: 0;
    color: var(--primary);
    font-size: 17px;
    font-weight: 700;
    line-height: 1.2;
    overflow-wrap: anywhere;
    font-variant-numeric: tabular-nums;
}

.corefor-shop .package-card-price .corefor-price-converted {
    font-size: 11px;
    line-height: 1.2;
}

/* Старая цена — под текущей, слева */
.corefor-shop .package-card-price-old {
    align-self: flex-start;
    color: var(--text-muted);
    font-size: 11.5px;
    font-weight: 400;
    line-height: 1.3;
    white-space: nowrap;
}

.corefor-shop .package-card-price-value {
    display: inline-flex;
    align-items: baseline;
    gap: 4px;
}

.corefor-shop .package-card-price-from {
    color: var(--text-muted);
    font-size: 11.5px;
    font-weight: 500;
}

.corefor-shop .package-card-footer {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: auto;
    padding-top: 8px;
}

.corefor-shop .package-card-footer .btn {
    width: 100%;
    justify-content: center;
}

.corefor-shop .package-card .btn-sm {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 36px;
}

/* 3D-tilt по курсору + мягкий glare; touch и reduced-motion — без наклона.
   Класс .can-tilt ставит JS только при (hover:hover)+(pointer:fine) и без reduced-motion. */
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
    .corefor-shop .package-card:hover:not(.can-tilt) { transform: translateY(-3px); }
    .corefor-shop .package-card:hover .package-card-media img { transform: scale(1.03); }
}

.corefor-shop .package-card.can-tilt {
    transform: perspective(900px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translateY(var(--lift, 0px));
    will-change: transform;
}

.corefor-shop .package-card.can-tilt:hover { --lift: -4px; }

.corefor-shop .package-card.can-tilt.is-tilting {
    transition: transform 60ms linear, border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}

.corefor-shop .package-card.can-tilt::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 3;
    border-radius: inherit;
    background: radial-gradient(220px circle at var(--glare-x) var(--glare-y), var(--card-glare-color), transparent 65%);
    opacity: 0;
    pointer-events: none;
    transition: opacity 200ms var(--ease);
}

.corefor-shop .package-card.can-tilt.is-tilting::after { opacity: 1; }

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

@media (hover: none) {
    .corefor-shop .package-card:active { transform: scale(0.985); }
}

@media (prefers-reduced-motion: reduce) {
    .corefor-shop .package-card,
    .corefor-shop .package-card:hover,
    .corefor-shop .package-card:active,
    .corefor-shop .package-card.can-tilt,
    .corefor-shop .package-card.is-tilting {
        transform: none;
        transition: border-color var(--dur-fast) var(--ease);
    }

    .corefor-shop .package-card::after,
    .corefor-shop .package-card.can-tilt::after { display: none; }

    .corefor-shop .package-card-media img { transition: none; }
}

/* Мобиле: 2 колонки и компактный низ карточки (цена над CTA) */
@media (max-width: 575.98px) {
    .corefor-shop .package-card-media { padding: 10px; }

    .corefor-shop .package-card .card-title { font-size: 14px; }

    .corefor-shop .package-card-footer {
        padding-top: 6px;
    }

    .corefor-shop .package-card-price { font-size: 15px; }
}

.corefor-shop del.small { font-size: 13px; color: var(--text-muted); }

/* Контент карточек (описания категорий/пакетов — HTML) */
.corefor-shop .card-body img { max-width: 100%; height: auto; border-radius: var(--radius-element, 8px); }

/* --- Модалка товара --- */
.corefor-shop .modal-content {
    border-radius: 14px;
    overflow: hidden;
    background: var(--glass-bg, rgba(30, 30, 30, 0.85));
    backdrop-filter: blur(var(--glass-blur, 12px));
    -webkit-backdrop-filter: blur(var(--glass-blur, 12px));
    box-shadow: 0 24px 64px rgba(0, 0, 0, 0.55);
}

.corefor-shop .modal-header { padding: 16px 20px; }
.corefor-shop .modal-title { font-size: 19px; font-weight: 600; overflow-wrap: anywhere; }
.corefor-shop .modal-body { padding: 18px 20px; font-size: 14.5px; color: rgba(255, 255, 255, 0.85); overflow-wrap: anywhere; }
.corefor-shop .modal-body > :last-child { margin-bottom: 0; }

@media (max-width: 575.98px) {
    .corefor-shop .modal-dialog { margin: 8px; }
    .corefor-shop .modal-header { padding: 14px 16px; }
    .corefor-shop .modal-body { padding: 14px 16px; }
    .corefor-shop .modal-footer { padding: 12px 16px; }
}

.corefor-shop .corefor-product {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: 20px;
    align-items: start;
}

.corefor-shop .corefor-product-media {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1 / 1;
    padding: 16px;
    overflow: hidden;
    background:
        radial-gradient(circle at 50% 30%, rgba(255, 255, 255, 0.05), transparent 55%),
        var(--surface-sunken, #161616);
    border: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
    border-radius: var(--radius-element, 8px);
}

.corefor-shop .corefor-product-media img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.corefor-shop .corefor-product-media > i {
    color: rgba(255, 255, 255, 0.2);
    font-size: 46px;
}

.corefor-shop .corefor-product-info {
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-width: 0;
}

.corefor-shop .corefor-product-title {
    margin: 0;
    min-width: 0;
    color: var(--text-main);
    font-size: 24px;
    font-weight: 700;
    line-height: 1.25;
    overflow-wrap: break-word;
}

.corefor-shop .corefor-product-price-block {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.corefor-shop .corefor-product-price {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin: 0;
    color: var(--primary);
    font-size: 24px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.corefor-shop .corefor-product-price-converted {
    font-size: 12px;
    line-height: 1.4;
}

/* Старая цена — под текущей, слева */
.corefor-shop .corefor-product-price-old {
    align-self: flex-start;
    color: var(--text-muted);
    font-size: 14px;
    font-weight: 400;
    line-height: 1.3;
}

/* Характеристики товара */
.corefor-shop .corefor-product-specs {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 0;
}

.corefor-shop .corefor-product-spec {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
}

.corefor-shop .corefor-product-spec dt {
    color: var(--text-muted);
    font-size: 13px;
    font-weight: 400;
}

.corefor-shop .corefor-product-spec dd {
    margin: 0;
    color: var(--text-main);
    font-size: 13px;
    font-weight: 500;
    text-align: right;
    overflow-wrap: anywhere;
}

/* Секции описаний товара: без вложенных карточек, разделитель между блоками */
.corefor-shop .corefor-product-text-card {
    padding: 0;
    background: none;
    border: 0;
    border-radius: 0;
}

.corefor-shop .corefor-product-text-card + .corefor-product-text-card {
    padding-top: 12px;
    border-top: 1px solid var(--color-border);
}

.corefor-shop .corefor-product-text-title {
    margin: 0 0 8px;
    color: var(--text-muted);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: 0;
}

.corefor-shop .corefor-product-description {
    overflow-wrap: anywhere;
    margin: 0;
    color: var(--text-muted);
    font-size: 14px;
    line-height: 1.6;
}

.corefor-shop .corefor-product-description--lead {
    color: var(--text-main);
}

.corefor-shop .corefor-product-description > :last-child { margin-bottom: 0; }

.corefor-shop .corefor-product-description img {
    max-width: 100%;
    height: auto;
    border-radius: var(--radius-element, 8px);
}

.corefor-shop .modal-footer {
    padding: 14px 20px;
    gap: 12px;
    align-items: center;
}

/* Футер модалки: «Итого» слева, действия справа */
.corefor-shop .modal-footer.corefor-product-modal-footer {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
}

.corefor-shop .corefor-product-total {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.corefor-shop .corefor-product-total-label {
    color: var(--text-muted);
    font-size: 12px;
    font-weight: 600;
}

.corefor-shop .corefor-product-total-row {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 8px;
}

.corefor-shop .corefor-product-total-value {
    color: var(--primary);
    font-size: 20px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.corefor-shop .corefor-product-total-converted {
    font-size: 12px;
    white-space: nowrap;
}

.corefor-shop .corefor-product-footer-actions {
    margin-left: auto;
    min-width: 0;
}

.corefor-shop .corefor-product-footer-actions .corefor-product-actions {
    width: auto;
}

.corefor-shop .corefor-product-footer-actions .corefor-product-buy {
    width: auto;
    justify-content: flex-end;
}

.corefor-shop .corefor-product-buy .qty-stepper {
    height: 42px;
}

.corefor-shop .corefor-product-buy .qty-stepper-input {
    line-height: 40px;
}

@media (max-width: 575.98px) {
    .corefor-shop .modal-footer.corefor-product-modal-footer {
        flex-wrap: wrap;
        align-items: stretch;
    }

    .corefor-shop .corefor-product-total,
    .corefor-shop .corefor-product-footer-actions {
        width: 100%;
    }

    .corefor-shop .corefor-product-footer-actions {
        margin-left: 0;
    }

    .corefor-shop .corefor-product-footer-actions .corefor-product-actions,
    .corefor-shop .corefor-product-footer-actions .corefor-product-buy {
        width: 100%;
    }

    .corefor-shop .corefor-product-footer-actions .corefor-product-buy {
        justify-content: stretch;
    }
}

.corefor-shop .corefor-product-actions {
    display: flex;
    flex-direction: column;
    width: 100%;
    gap: 12px;
}

.corefor-shop .corefor-product-options {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 10px 12px;
    width: 100%;
}

.corefor-shop .corefor-product-specs + .corefor-product-options--specs {
    margin-top: 12px;
}

.corefor-shop .corefor-field {
    display: flex;
    flex-direction: column;
    gap: 5px;
    min-width: 0;
}

.corefor-shop .corefor-field .form-label {
    margin: 0;
    color: var(--text-muted);
    font-size: 12.5px;
}

.corefor-shop .corefor-field--check {
    flex-direction: row;
    align-items: center;
    gap: 8px;
}

.corefor-shop .corefor-field--check .form-check-label {
    color: var(--text-muted);
    font-size: 13px;
}

.corefor-shop .corefor-product-buy {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    width: 100%;
}

.corefor-shop .corefor-product-form {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-left: auto;
}

.corefor-shop .corefor-product-form label {
    margin: 0;
    color: var(--text-muted);
    font-size: 12.5px;
}

.corefor-shop .corefor-product-form .form-control {
    width: 92px;
    padding: 8px 10px;
    text-align: center;
}

.corefor-shop .corefor-product-status {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
    color: #ff8a65;
    font-size: 13.5px;
}

/* --- Страница товара (полная, не модалка) --- */
.corefor-product-page-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.corefor-product-page-head .corefor-cart-back {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--text-muted);
    font-size: 13px;
}

.corefor-product-page-head .corefor-cart-back:hover { color: var(--text-main); }

.corefor-product-page-cart {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.corefor-product-page h1 { margin-bottom: 12px; }

.corefor-product-panel {
    position: sticky;
    top: calc(var(--corefor-header-h, 64px) + 16px);
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 18px;
    background: var(--glass-bg, rgba(30, 30, 30, 0.65));
    border: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
    border-radius: var(--radius-container, 12px);
    backdrop-filter: blur(var(--glass-blur, 12px));
    -webkit-backdrop-filter: blur(var(--glass-blur, 12px));
}

.corefor-product-panel-title {
    margin: 0;
    color: var(--text-muted);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.3px;
}

.corefor-product-page .corefor-product {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 18px;
}

.corefor-product-page .corefor-product-media { aspect-ratio: 4 / 3; }

.corefor-product-page .corefor-product-price { font-size: 28px; }

.corefor-product-page .corefor-product-title { font-size: 28px; }

@media (max-width: 991.98px) {
    .corefor-product-page .corefor-product { grid-template-columns: minmax(0, 1fr); }
}

.corefor-options-form {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.corefor-options-form .corefor-product-options { grid-template-columns: 1fr; }

.corefor-options-form .qty-stepper-input { width: 44px; }

@media (max-width: 991.98px) {
    .corefor-product-panel { position: static; }
}

@media (max-width: 767.98px) {
    .corefor-shop .corefor-product { grid-template-columns: 1fr; }

    .corefor-shop .corefor-product-media { aspect-ratio: 4 / 3; }

    .corefor-shop .corefor-product-title,
    .corefor-product-page .corefor-product-title { font-size: 22px; }

    .corefor-shop .corefor-product-form {
        width: 100%;
        margin-left: 0;
    }
}

@media (max-width: 575.98px) {
    .corefor-product-buy { justify-content: stretch; }

    .corefor-product-buy .btn-primary {
        flex: 1 1 100%;
        justify-content: center;
    }

    .corefor-product-panel { padding: 14px; }
}

/* Скрим с лёгким блюром (BS-backdrop живёт вне .corefor-shop — глобально) */
.modal-backdrop.show {
    opacity: 0.6;
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
}

/* --- Корзина и таблицы магазина --- */
.corefor-shop .table { font-size: 14px; vertical-align: middle; }

.corefor-shop .table > thead > tr > th {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0;
    color: var(--text-muted);
    border-bottom: 1px solid var(--glass-border, rgba(255, 255, 255, 0.08));
    padding: 10px 12px;
    white-space: nowrap;
}

.corefor-shop .table-dark { --bs-table-bg: transparent; --bs-table-color: var(--text-muted); }

.corefor-shop .table > tbody > tr > th { font-weight: 500; color: var(--text-main); }
.corefor-shop .table > tbody > tr > td { padding: 12px; color: rgba(255, 255, 255, 0.8); }
.corefor-shop .table > tbody > tr:hover > * { background: rgba(255, 255, 255, 0.03); }

.corefor-shop .shop-total { font-size: 18px; font-weight: 700; color: #fff; }

/* --- Оплата: шлюзы и офферы --- */
.corefor-shop .payment-method { display: block; color: inherit; text-decoration: none; }
.corefor-shop .payment-method .card-body { padding: 18px 14px; }

.corefor-shop .row.gy-3 > div > .card {
    transition: transform var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}

.corefor-shop .row.gy-3 > div > .card:hover {
    transform: translateY(-2px);
    border-color: rgba(255, 87, 34, 0.45);
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.4);
}

.corefor-shop .payment-method img {
    filter: grayscale(0.25);
    opacity: 0.9;
    transition: filter var(--dur-fast) var(--ease), opacity var(--dur-fast) var(--ease);
}

.corefor-shop .corefor-gateway-logo-img { max-height: 45px; }

.corefor-shop .corefor-offer-name {
    margin: 8px 0 4px;
    color: var(--text-main);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.35;
}

.corefor-shop .corefor-offer-price {
    margin: 0 0 10px;
    color: var(--primary);
    font-size: 20px;
    font-weight: 700;
    line-height: 1.2;
    font-variant-numeric: tabular-nums;
}

.corefor-shop .payment-method:hover img { filter: none; opacity: 1; }

.corefor-shop .corefor-offer-credit {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin-top: 8px;
    color: var(--text-muted);
    font-size: 13px;
}

.corefor-shop .corefor-offer-credit strong {
    color: var(--text-main);
    font-weight: 600;
}

.corefor-shop .corefor-offer-bonus {
    display: inline-flex;
    align-items: center;
    padding: 1px 7px;
    border-radius: var(--radius-full, 9999px);
    background: rgba(76, 175, 80, 0.16);
    color: #a5d6a7;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.6;
}

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

/* --- Логин-промпт магазина --- */
.corefor-shop .text-center .card .card-body { padding: 28px; }
.corefor-shop form.col-md-6 .btn { width: 100%; }

/* =====================================================================
   Consistency pass (22.10): type, radius, inputs, empty states
   ===================================================================== */

.corefor-auth-wordmark {
    margin: 0 0 18px;
    color: var(--color-text-primary);
    font-size: 32px;
    font-weight: 800;
    letter-spacing: -0.045em;
    line-height: 1.1;
    text-align: center;
}

.corefor-auth-wordmark span {
    color: var(--color-primary);
}

.content > h1,
.corefor-shop h1,
.corefor-news-head h1,
.corefor-downloads-title,
.corefor-page-head h1,
.corefor-page-head h2 {
    font-size: var(--type-h1-size);
    font-weight: var(--type-h1-weight);
    letter-spacing: -0.03em;
    line-height: 1.12;
}

/* Legal pages: keep the left-aligned title and center the readable column as a whole */
.content:has(.legal-doc) {
    max-width: 1000px;
}

.dropdown-menu {
    padding: 6px;
}

.dropdown-item {
    border-radius: var(--radius-btn, 8px);
}

.dropdown-menu .dropdown-item.active,
.dropdown-menu .dropdown-item:active {
    background-color: var(--color-primary-strong);
    color: #fff;
}

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

.form-control:focus,
.form-select:focus {
    background-color: var(--color-surface-elevated);
    border-color: rgba(255, 255, 255, 0.35);
}

.corefor-shop-toolbar .form-control,
.corefor-shop-toolbar .btn {
    min-height: 42px;
}

.corefor-history-empty {
    padding: var(--space-8) var(--space-5);
    background: var(--color-surface);
    border: 1px dashed var(--color-border);
    border-radius: var(--radius-lg);
}

.skin-gallery:empty {
    min-height: 120px;
    padding: var(--space-4);
    border: 1px dashed var(--color-border);
    border-radius: var(--radius-md);
}

.content:has(.skin-manager) .skin-manager {
    gap: var(--space-5);
}

.content:has(.skin-manager) .skin-stage,
.content:has(.skin-manager) .skin-block {
    background: var(--color-surface);
    border-color: var(--color-border);
    border-radius: var(--radius-lg);
}

.content:has(.skin-manager) .skin-block {
    padding: var(--space-5);
}

.content:has(.skin-manager) .skin-panel {
    gap: var(--space-5);
}

/* --- Toasts (общий фидбек магазина) --- */
.corefor-toast-region {
    position: fixed;
    bottom: 24px;
    left: 50%;
    z-index: 1085;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    width: min(92vw, 420px);
    transform: translateX(-50%);
    pointer-events: none;
}

.corefor-toast {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 11px 16px;
    background: rgba(24, 24, 24, 0.94);
    border: 1px solid var(--glass-border, rgba(255, 255, 255, 0.12));
    border-radius: var(--radius-element, 8px);
    color: var(--text-main);
    font-size: 13.5px;
    line-height: 1.4;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.45);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 220ms var(--ease), transform 220ms var(--ease);
}

.corefor-toast.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.corefor-toast i {
    color: #86efac;
    font-size: 15px;
}

.corefor-toast--error {
    border-color: rgba(239, 68, 68, 0.4);
}

.corefor-toast--error i { color: #ef9a9a; }

@media (max-width: 991.98px) {
    .corefor-toast-region { bottom: 88px; }
}

@media (prefers-reduced-motion: reduce) {
    .corefor-toast {
        transition: none;
        transform: none;
    }
}

/* Busy-состояние CTA (pending qty-update / add): disabled + spinner */
.corefor-shop .btn.is-busy {
    pointer-events: none;
    opacity: 0.75;
}

.corefor-shop .btn.is-busy::after {
    content: '';
    display: inline-block;
    width: 12px;
    height: 12px;
    margin-left: 8px;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    vertical-align: -2px;
    animation: corefor-spin 0.7s linear infinite;
}

@keyframes corefor-spin {
    to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
    .corefor-shop .btn.is-busy::after { animation-duration: 1.6s; }
}

/* Contact form: keep the stock full-width markup from stretching */
.corefor-contact {
    max-width: 760px;
}

.corefor-contact .card-body {
    padding: 24px;
}

@media (max-width: 575.98px) {
    .corefor-contact .card-body {
        padding: 16px;
    }
}

/* --- Catalog: grid, toolbar, cards (moved from inline partial) --- */
.corefor-shop .corefor-catalog-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    width: 100%;
}

/* Плотная сетка маркетплейса: 3 → 4 → 5 → 6 карточек в ряд */
@media (min-width: 768px) {
    .corefor-shop .corefor-catalog-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 1200px) {
    .corefor-shop .corefor-catalog-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (min-width: 1400px) {
    .corefor-shop .corefor-catalog-grid {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }
}

@media (min-width: 1600px) {
    .corefor-shop .corefor-catalog-grid {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }
}

.corefor-shop .corefor-catalog-grid > * {
    min-width: 0;
}

/* Липкой делаем ячейку целиком: форма + строка результатов */
.corefor-shop .corefor-shop-col--toolbar {
    position: sticky;
    top: calc(var(--corefor-header-h, 64px) + var(--space-4));
    z-index: 6;
}


.corefor-shop .corefor-shop-toolbar .corefor-shop-sort {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    color: var(--text-muted);
    font-size: 13px;
    white-space: nowrap;
}

.corefor-shop .corefor-shop-sort-select {
    min-width: 190px;
    min-height: 42px;
}

.corefor-shop .corefor-shop-sort-icon,
.corefor-shop .corefor-shop-sort-caret,
.corefor-shop .corefor-shop-search-submit-icon {
    display: none;
}

.corefor-shop .corefor-shop-results-meta {
    margin: 8px 0 16px;
    color: var(--text-muted);
    font-size: 13px;
}

.corefor-shop .corefor-shop-results-meta strong {
    color: var(--text-main);
}

.corefor-shop .corefor-shop-tree-count {
    margin-left: 6px;
    color: var(--text-muted);
    font-size: 12px;
    font-variant-numeric: tabular-nums;
}

.corefor-shop .corefor-shop-tree-link.active .corefor-shop-tree-count {
    color: inherit;
    opacity: 0.8;
}


.corefor-shop .corefor-shop-section {
    margin: 16px 0 24px;
}

.corefor-shop .corefor-shop-section:first-of-type {
    margin-top: 0;
}

.corefor-shop .corefor-shop-section-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.corefor-shop .corefor-shop-section-head h2 {
    margin: 0;
    font-size: 20px;
}

.corefor-shop .corefor-shop-section-head a {
    font-size: 13px;
}

.corefor-shop .corefor-shop-pagination {
    margin-top: 24px;
}

.corefor-shop .corefor-shop-pagination .pagination {
    flex-wrap: wrap;
    gap: 4px;
    margin-bottom: 0;
}

.corefor-shop .corefor-shop-pagination .page-link {
    border-color: var(--glass-border, rgba(255, 255, 255, 0.1));
    border-radius: 8px;
    background: var(--surface-1, rgba(255, 255, 255, 0.04));
    color: var(--text-main);
}

.corefor-shop .corefor-shop-pagination .page-item.active .page-link {
    border-color: var(--primary);
    background: var(--primary);
    color: var(--color-on-primary, #fff);
}

/* Мобильная панель: [⇅] [поиск][найти] — сортировка не отдельной строкой */
@media (max-width: 767.98px) {
    .corefor-shop .corefor-shop-toolbar {
        top: 76px;
        gap: 10px;
    }

    .corefor-shop .corefor-shop-search {
        flex: 1 1 0;
        min-width: 0;
        gap: 8px;
    }

    .corefor-shop .corefor-shop-search-icon {
        display: none;
    }

    .corefor-shop .corefor-shop-search .form-control {
        min-width: 0;
        padding-left: var(--control-pad-x, 16px);
    }

    .corefor-shop .corefor-shop-sort {
        order: -1;
        position: relative;
        flex: 0 0 44px;
        justify-content: center;
        width: 44px;
        height: 42px;
        padding: 0;
        border: 1px solid var(--glass-border, rgba(255, 255, 255, 0.1));
        border-radius: var(--radius-btn, 8px);
        background: rgba(255, 255, 255, 0.04);
        color: var(--text-main);
        cursor: pointer;
        transition: border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
    }

    .corefor-shop .corefor-shop-sort:hover {
        border-color: var(--primary);
        color: var(--primary);
    }

    .corefor-shop .corefor-shop-sort:active {
        transform: translateY(1px);
    }

    .corefor-shop .corefor-shop-sort:focus-within {
        outline: 2px solid var(--primary);
        outline-offset: 2px;
    }

    .corefor-shop .corefor-shop-sort.is-active {
        border-color: var(--primary);
        background: rgba(255, 87, 34, 0.12);
        color: var(--primary);
    }

    .corefor-shop .corefor-shop-sort-label,
    .corefor-shop .corefor-shop-sort-caret {
        display: none;
    }

    .corefor-shop .corefor-shop-sort-icon {
        display: inline-block;
        font-size: 16px;
    }

    .corefor-shop .corefor-shop-sort-select {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        min-width: 0;
        min-height: 0;
        margin: 0;
        padding: 0;
        border: 0;
        opacity: 0;
        cursor: pointer;
        appearance: none;
    }
}

@media (max-width: 991.98px) {
    .corefor-shop .corefor-shop-toolbar {
        top: 76px;
    }
}

@media (max-width: 575.98px) {
    .corefor-shop .corefor-catalog-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }
}

@media (max-width: 359.98px) {
    .corefor-shop .corefor-shop-search-submit {
        width: 42px;
        padding: 0;
    }

    .corefor-shop .corefor-shop-search-submit-text {
        display: none;
    }

    .corefor-shop .corefor-shop-search-submit-icon {
        display: inline-block;
    }
}

/* --- Блок сообщества: длинные ники не должны вылезать ------------------ */
.corefor-shop-community .card-body,
.corefor-shop-community .list-group-item {
    min-width: 0;
}

.corefor-shop-community .flex-grow-1 {
    min-width: 0;
}

.corefor-shop-community-name {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* --- AgGrid: таблицы профиля ----------------------------------------- */
.corefor-profile .corefor-history {
    margin-bottom: 28px;
    scroll-margin-top: calc(var(--corefor-header-h, 64px) + 16px);
}

#shop-profile-subscriptions {
    scroll-margin-top: calc(var(--corefor-header-h, 64px) + 16px);
}

.corefor-grid.ag-theme-quartz {
    width: 100%;
    --ag-font-family: inherit;
    --ag-font-size: 13px;
    --ag-background-color: var(--color-surface);
    --ag-foreground-color: var(--color-text-primary);
    --ag-border-color: var(--color-border);
    --ag-header-background-color: var(--color-surface-elevated);
    --ag-header-foreground-color: var(--text-muted);
    --ag-header-column-resize-handle-color: var(--color-border);
    --ag-secondary-foreground-color: var(--text-muted);
    --ag-icon-font-color: var(--text-muted);
    --ag-row-border-color: var(--color-border);
    --ag-odd-row-background-color: transparent;
    --ag-row-hover-color: color-mix(in srgb, var(--color-accent) 8%, transparent);
    --ag-selected-row-background-color: color-mix(in srgb, var(--color-accent) 14%, transparent);
    --ag-range-selection-border-color: var(--color-accent);
    --ag-input-focus-border-color: var(--color-accent);
    --ag-checkbox-checked-color: var(--color-accent);
    --ag-active-color: var(--color-accent);
    --ag-menu-background-color: var(--color-surface-elevated);
    --ag-menu-border-color: var(--color-border);
    --ag-panel-background-color: var(--color-surface-elevated);
    --ag-panel-border-color: var(--color-border);
    --ag-border-radius: var(--radius-lg);
    background-color: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
}

.corefor-grid .ag-header-cell-text {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0;
}

.corefor-grid .ag-cell {
    display: flex;
    align-items: center;
    font-size: 13px;
    line-height: 1.45;
}

.corefor-grid .corefor-grid-strong {
    font-weight: 600;
}

.corefor-grid .corefor-grid-amount {
    text-align: right;
    font-variant-numeric: tabular-nums;
    font-weight: 600;
}

.corefor-grid .corefor-grid-text {
    display: block;
    width: 100%;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.corefor-grid .corefor-grid-lines {
    width: 100%;
    white-space: pre-line;
    line-height: 1.5;
}

.corefor-grid .corefor-grid-autorenew {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.corefor-grid .corefor-grid-switch {
    display: inline-flex;
    align-items: center;
    width: 38px;
    height: 22px;
    padding: 2px;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    background-color: var(--color-surface-elevated);
    cursor: pointer;
    transition: background-color 0.16s ease, border-color 0.16s ease;
}

.corefor-grid .corefor-grid-switch > span {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background-color: #fff;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
    transition: transform 0.16s ease;
}

.corefor-grid .corefor-grid-autorenew.is-on .corefor-grid-switch {
    border-color: var(--color-accent);
    background-color: color-mix(in srgb, var(--color-accent) 18%, transparent);
}

.corefor-grid .corefor-grid-autorenew.is-on .corefor-grid-switch > span {
    transform: translateX(16px);
}

.corefor-grid .corefor-grid-switch:disabled {
    cursor: not-allowed;
    opacity: 0.5;
}

.corefor-grid .corefor-grid-switch-label {
    color: var(--text-muted);
    font-size: 12px;
    font-weight: 600;
}

.corefor-grid .corefor-grid-autorenew.is-on .corefor-grid-switch-label {
    color: var(--color-accent);
}

.corefor-grid .corefor-grid-autorenew.is-disabled .corefor-grid-switch-label {
    opacity: 0.5;
}

.corefor-grid .corefor-grid-autorenew.is-busy {
    opacity: 0.6;
}

.corefor-grid .ag-paging-panel {
    min-height: 48px;
    padding: 0 16px;
    border-top: 1px solid var(--color-border);
    color: var(--text-muted);
    font-size: 12.5px;
}

.corefor-grid .ag-paging-button {
    color: var(--text-main);
}

.corefor-grid .ag-paging-button.ag-disabled {
    color: var(--text-muted);
    opacity: 0.45;
}

.corefor-grid .ag-paging-row-summary-panel,
.corefor-grid .ag-paging-page-summary-panel {
    color: var(--text-muted);
}

.corefor-grid .ag-picker-field-wrapper {
    background-color: var(--color-surface-elevated);
    border-color: var(--color-border);
}

.corefor-grid .ag-select-list {
    border: 1px solid var(--color-border);
    border-radius: 10px;
    background-color: var(--color-surface-elevated);
    color: var(--color-text-primary);
}

.corefor-grid .ag-select-list .ag-list-item {
    color: var(--color-text-primary);
}

.corefor-grid .ag-select-list .ag-list-item:hover,
.corefor-grid .ag-select-list .ag-list-item.ag-active-item {
    background-color: var(--color-surface);
}

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(138, 90, 0, 0.10);
    color: #8a5a00;
}

html[data-theme="light"] .corefor-history-pill--danger {
    background: rgba(183, 28, 28, 0.10);
    color: #b71c1c;
}

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: rgba(0, 0, 0, 0.06);
    color: var(--text-muted);
}

@media (max-width: 767.98px) {
    .corefor-grid .ag-header-cell-text {
        font-size: 10px;
    }

    .corefor-grid .ag-cell {
        font-size: 12.5px;
    }

    .corefor-grid .ag-paging-panel {
        justify-content: center;
        padding: 0 8px;
    }

    .corefor-grid .ag-paging-page-size,
    .corefor-grid .ag-paging-row-summary-panel {
        display: none;
    }

    .corefor-grid .ag-paging-description {
        white-space: nowrap;
    }
}

/* --- Профиль: кошелёк с балансом и действиями над таблицами ---------- */
.corefor-shop-wallet.corefor-profile-wallet {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-5, 20px);
    padding: 18px 20px;
    margin-bottom: var(--space-6, 24px);
}

.corefor-profile-wallet .corefor-shop-balance {
    min-width: 0;
}

.corefor-profile-wallet .corefor-shop-balance-value {
    font-size: 30px;
}

.corefor-profile-wallet-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}

.corefor-profile-wallet-actions .btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 42px;
    padding-inline: 16px;
    white-space: nowrap;
}

@media (max-width: 767.98px) {
    .corefor-shop-wallet.corefor-profile-wallet {
        flex-direction: column;
        align-items: stretch;
        padding: 16px;
    }

    .corefor-profile-wallet .corefor-shop-balance-value {
        font-size: 26px;
    }

    .corefor-profile-wallet-actions {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
        width: 100%;
    }

    .corefor-profile-wallet-actions .btn {
        justify-content: center;
        padding-inline: 12px;
    }
}
