/**
 * PropTerminal — тема: токены + Bootstrap + Metronic shell.
 * data-bs-theme на <html> (скрипт в inc/_header*.php).
 */

:root {
    /* Как prop-terminal-standalone: Inter + JetBrains; иначе Metronic тянет Poppins из style.bundle */
    --bs-font-sans-serif: Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
    --bs-font-monospace: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
    --pt-cyan: hsl(186, 100%, 42%);
    --pt-green: hsl(145, 65%, 50%);
    --pt-red: hsl(0, 80%, 55%);
    --pt-yellow: hsl(38, 90%, 58%);
    --pt-purple: hsl(262, 75%, 65%);
    /* Референс prop-terminal-standalone: .nav-item.active — фон cyan, текст тёмный */
    --pt-sidebar-active-text: hsl(220, 18%, 8%);
    --pt-sidebar-nav-hover-bg: hsl(220, 15%, 14%);
}

[data-bs-theme="dark"] {
    color-scheme: dark;
    /* meta theme-color: #0f1115 (sRGB от этого HSL) — inc/_header*.php, prop-theme.js */
    --pt-bg: hsl(220, 18%, 7%);
    --pt-bg-card: hsl(220, 18%, 9%);
    --pt-bg-muted: hsl(220, 14%, 14%);
    --pt-border: hsl(220, 14%, 16%);
    --pt-text: hsl(210, 20%, 90%);
    --pt-text-muted: hsl(215, 10%, 55%);
    /* Референс: --text-dim — мелкие uppercase-лейблы, тусклее чем muted */
    --pt-text-dim: hsl(215, 10%, 38%);
    --pt-bg-sidebar: hsl(220, 20%, 8%);
    /* C.4: полупрозрачные акценты + скролл (референс prop-terminal-standalone) */
    --pt-cyan-dim: hsla(186, 100%, 42%, 0.15);
    --pt-cyan-border: hsla(186, 100%, 42%, 0.25);
    --pt-cyan-ghost: hsla(186, 100%, 42%, 0.1);
    --pt-cyan-mist: hsla(186, 100%, 42%, 0.12);
    --pt-cyan-surface: hsla(186, 100%, 42%, 0.2);
    --pt-cyan-ui: hsla(186, 100%, 42%, 0.14);
    --pt-cyan-ring: hsla(186, 100%, 42%, 0.16);
    --pt-cyan-badge: hsla(186, 100%, 42%, 0.18);
    --pt-cyan-highlight: hsla(186, 100%, 42%, 0.22);
    --pt-cyan-overlay: hsla(186, 100%, 42%, 0.35);
    --pt-cyan-tint: hsla(186, 100%, 42%, 0.07);
    --pt-cyan-row: hsla(186, 100%, 42%, 0.06);
    --pt-green-dim: hsla(145, 65%, 50%, 0.12);
    --pt-green-border: hsla(145, 65%, 50%, 0.25);
    --pt-green-surface: hsla(145, 65%, 50%, 0.2);
    --pt-green-glow: hsla(145, 65%, 50%, 0.45);
    --pt-red-dim: hsla(0, 80%, 55%, 0.12);
    --pt-red-border: hsla(0, 80%, 55%, 0.25);
    --pt-red-soft: hsla(0, 80%, 55%, 0.14);
    --pt-red-surface: hsla(0, 80%, 55%, 0.2);
    --pt-yellow-dim: hsla(38, 90%, 58%, 0.12);
    --pt-yellow-border: hsla(38, 90%, 58%, 0.25);
    --pt-yellow-soft: hsla(38, 90%, 58%, 0.14);
    --pt-yellow-surface: hsla(38, 90%, 58%, 0.2);
    --pt-yellow-highlight: hsla(38, 90%, 58%, 0.16);
    --pt-yellow-strong: hsla(38, 90%, 58%, 0.22);
    --pt-purple-dim: hsla(262, 75%, 65%, 0.12);
    --pt-purple-border: hsla(262, 75%, 65%, 0.25);
    --pt-focus-ring: hsla(186, 100%, 42%, 0.45);
    --pt-scrollbar-thumb: hsl(220, 14%, 22%);
    --pt-scrollbar-thumb-hover: hsl(220, 12%, 28%);
    --bs-body-bg: var(--pt-bg);
    --bs-body-color: var(--pt-text);
    --bs-emphasis-color: var(--pt-text);
    --bs-secondary-color: var(--pt-text-muted);
    --bs-secondary-bg: var(--pt-bg-muted);
    --bs-tertiary-bg: hsl(220, 14%, 12%);
    --bs-border-color: var(--pt-border);
    --bs-border-color-translucent: hsla(220, 14%, 40%, 0.35);
    --bs-primary: var(--pt-cyan);
    --bs-primary-rgb: 0, 212, 232;
    --bs-success: var(--pt-green);
    --bs-success-rgb: 46, 214, 120;
    --bs-danger: var(--pt-red);
    --bs-danger-rgb: 250, 70, 70;
    --bs-warning: var(--pt-yellow);
    --bs-warning-rgb: 242, 186, 60;
    --bs-info: var(--pt-cyan);
    --bs-info-rgb: 0, 212, 232;
    --bs-link-color: var(--pt-cyan);
    --bs-link-hover-color: hsl(186, 100%, 55%);
    /*
     * Metronic (style.bundle): .btn.btn-primary и др. задают background-color: var(--kt-primary) !important —
     * переопределения --bs-btn-* не срабатывают. Ниже — приглушённые kt-* под тёмную тему.
     */
    --kt-primary: hsl(186, 36%, 38%);
    --kt-primary-active: hsl(186, 40%, 44%);
    --kt-primary-inverse: hsl(210, 22%, 96%);
    --kt-primary-light: hsla(186, 42%, 52%, 0.16);

    --kt-success: hsl(152, 32%, 36%);
    --kt-success-active: hsl(152, 36%, 42%);
    --kt-success-inverse: hsl(150, 15%, 96%);
    --kt-success-light: hsla(152, 36%, 48%, 0.16);

    --kt-info: hsl(258, 28%, 44%);
    --kt-info-active: hsl(258, 32%, 50%);
    --kt-info-inverse: hsl(258, 20%, 96%);
    --kt-info-light: hsla(258, 32%, 58%, 0.16);

    --kt-warning: hsl(42, 38%, 50%);
    --kt-warning-active: hsl(42, 42%, 56%);
    --kt-warning-inverse: hsl(220, 18%, 12%);
    --kt-warning-light: hsla(42, 42%, 55%, 0.14);

    --kt-danger: hsl(352, 36%, 44%);
    --kt-danger-active: hsl(352, 40%, 50%);
    --kt-danger-inverse: hsl(350, 18%, 96%);
    --kt-danger-light: hsla(352, 40%, 55%, 0.16);
    /* Metronic/KTUtil: оси графиков и пр. — единая приглушённая подпись */
    --kt-gray-500: var(--pt-text-muted);
    /* Metronic layout (style.bundle — переменные --kt-app-*) */
    --kt-app-bg-color: var(--pt-bg);
    --kt-app-sidebar-base-bg-color: var(--pt-bg-sidebar);
    --kt-app-sidebar-primary-base-bg-color: var(--pt-bg-sidebar);
    --kt-app-sidebar-light-bg-color: var(--pt-bg-sidebar);
    --kt-app-sidebar-base-border-end: 1px solid var(--pt-border);
    --kt-app-sidebar-light-separator-color: var(--pt-border);
    --kt-app-sidebar-light-menu-heading-color: var(--pt-text-dim);
    --kt-app-header-base-bg-color: hsla(220, 18%, 9%, 0.88);
    --kt-app-header-base-border-bottom: 1px solid var(--pt-border);
    /* Компактная шапка (Metronic default 70px; body[data-kt-app-header-sticky] тоже переопределяет) */
    --prop-app-header-height: 52px;
    --kt-app-header-height: var(--prop-app-header-height);
    --kt-app-header-height-actual: var(--prop-app-header-height);
    --kt-app-footer-bg-color: var(--pt-bg-card);
    --kt-app-footer-border-top: 1px solid var(--pt-border);
    /* Карточки Bootstrap */
    --bs-card-bg: var(--pt-bg-card);
    --bs-card-border-color: hsl(220, 14%, 15%);
    --bs-card-cap-bg: var(--pt-bg-muted);
    --bs-card-cap-padding-y: 0.65rem;
    --bs-card-cap-padding-x: 1rem;
    --bs-card-color: var(--pt-text);
    /* Tooltip / popover (Bootstrap 5) */
    --bs-tooltip-bg: var(--pt-bg-muted);
    --bs-tooltip-color: var(--pt-text);
    --bs-popover-bg: var(--pt-bg-card);
    --bs-popover-border-color: var(--pt-border);
    --bs-popover-header-bg: var(--pt-bg-muted);
    --bs-popover-header-color: var(--pt-text);
    --bs-popover-header-border-color: var(--pt-border);
    --bs-popover-body-color: var(--pt-text);
    /* Тени / фокус Bootstrap 5 — единый вид дропдаунов, модалок, кнопок */
    --bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.45);
    --bs-box-shadow-sm: 0 0.125rem 0.35rem rgba(0, 0, 0, 0.4);
    --bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.55);
    --bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.25);
    --bs-focus-ring-color: var(--pt-focus-ring);
}

[data-bs-theme="light"] {
    color-scheme: light;
    /* meta theme-color: #f5f7f9 */
    --pt-bg: hsl(220, 25%, 97%);
    --pt-bg-card: hsl(0, 0%, 100%);
    --pt-bg-muted: hsl(220, 18%, 93%);
    --pt-border: hsl(220, 16%, 88%);
    --pt-text: hsl(220, 18%, 16%);
    --pt-text-muted: hsl(220, 10%, 42%);
    --pt-text-dim: hsl(220, 8%, 62%);
    --pt-bg-sidebar: hsl(220, 18%, 98%);
    --pt-cyan-dim: hsla(186, 95%, 32%, 0.15);
    --pt-cyan-border: hsla(186, 95%, 32%, 0.25);
    --pt-cyan-ghost: hsla(186, 95%, 32%, 0.1);
    --pt-cyan-mist: hsla(186, 95%, 32%, 0.12);
    --pt-cyan-surface: hsla(186, 95%, 32%, 0.2);
    --pt-cyan-ui: hsla(186, 95%, 32%, 0.14);
    --pt-cyan-ring: hsla(186, 95%, 32%, 0.16);
    --pt-cyan-badge: hsla(186, 95%, 32%, 0.18);
    --pt-cyan-highlight: hsla(186, 95%, 32%, 0.22);
    --pt-cyan-overlay: hsla(186, 95%, 32%, 0.35);
    --pt-cyan-tint: hsla(186, 95%, 32%, 0.08);
    --pt-cyan-row: hsla(186, 95%, 32%, 0.06);
    --pt-green-dim: hsla(145, 55%, 36%, 0.12);
    --pt-green-border: hsla(145, 55%, 36%, 0.25);
    --pt-green-surface: hsla(145, 55%, 36%, 0.2);
    --pt-green-glow: hsla(145, 55%, 36%, 0.45);
    --pt-red-dim: hsla(0, 72%, 44%, 0.12);
    --pt-red-border: hsla(0, 72%, 44%, 0.25);
    --pt-red-soft: hsla(0, 72%, 44%, 0.14);
    --pt-red-surface: hsla(0, 72%, 44%, 0.2);
    --pt-yellow-dim: hsla(38, 90%, 42%, 0.12);
    --pt-yellow-border: hsla(38, 90%, 42%, 0.25);
    --pt-yellow-soft: hsla(38, 90%, 42%, 0.14);
    --pt-yellow-surface: hsla(38, 90%, 42%, 0.2);
    --pt-yellow-highlight: hsla(38, 90%, 42%, 0.16);
    --pt-yellow-strong: hsla(38, 90%, 42%, 0.22);
    --pt-purple-dim: hsla(262, 75%, 65%, 0.12);
    --pt-purple-border: hsla(262, 75%, 65%, 0.25);
    --pt-focus-ring: hsla(186, 95%, 32%, 0.4);
    --bs-body-bg: var(--pt-bg);
    --bs-body-color: var(--pt-text);
    --bs-emphasis-color: hsl(220, 18%, 10%);
    --bs-secondary-color: var(--pt-text-muted);
    --bs-secondary-bg: var(--pt-bg-muted);
    --bs-tertiary-bg: hsl(220, 18%, 96%);
    --bs-border-color: var(--pt-border);
    --bs-border-color-translucent: hsla(220, 16%, 50%, 0.2);
    --bs-primary: hsl(186, 95%, 32%);
    --bs-primary-rgb: 4, 150, 170;
    --bs-success: hsl(145, 55%, 36%);
    --bs-success-rgb: 34, 150, 90;
    --bs-danger: hsl(0, 72%, 44%);
    --bs-danger-rgb: 200, 50, 50;
    --bs-warning: hsl(38, 90%, 42%);
    --bs-warning-rgb: 200, 140, 30;
    --bs-info: hsl(186, 95%, 32%);
    --bs-info-rgb: 4, 150, 170;
    --bs-link-color: hsl(186, 95%, 30%);
    --bs-link-hover-color: hsl(186, 95%, 24%);
    --kt-gray-500: var(--pt-text-muted);
    --kt-app-bg-color: var(--pt-bg);
    /* Меню: тёмная «рельса» при светлом контенте (как prop-terminal-standalone); --pt-bg-sidebar выше — для прочих блоков */
    --kt-app-sidebar-base-bg-color: hsl(220, 20%, 8%);
    --kt-app-sidebar-primary-base-bg-color: hsl(220, 20%, 8%);
    --kt-app-sidebar-light-bg-color: hsl(220, 20%, 8%);
    --kt-app-sidebar-base-border-end: 1px solid hsl(220, 14%, 16%);
    --kt-app-sidebar-light-separator-color: hsl(220, 14%, 16%);
    --kt-app-sidebar-light-menu-heading-color: hsl(215, 10%, 38%);
    --kt-app-header-base-bg-color: hsla(220, 25%, 97%, 0.92);
    --kt-app-header-base-border-bottom: 1px solid var(--pt-border);
    --prop-app-header-height: 52px;
    --kt-app-header-height: var(--prop-app-header-height);
    --kt-app-header-height-actual: var(--prop-app-header-height);
    --kt-app-footer-bg-color: var(--pt-bg-card);
    --kt-app-footer-border-top: 1px solid var(--pt-border);
    --bs-card-bg: var(--pt-bg-card);
    --bs-card-border-color: var(--pt-border);
    --bs-card-cap-bg: var(--pt-bg-muted);
    --bs-card-cap-padding-y: 0.65rem;
    --bs-card-cap-padding-x: 1rem;
    --bs-card-color: var(--pt-text);
    --bs-tooltip-bg: var(--pt-bg-muted);
    --bs-tooltip-color: var(--pt-text);
    --bs-popover-bg: var(--pt-bg-card);
    --bs-popover-border-color: var(--pt-border);
    --bs-popover-header-bg: var(--pt-bg-muted);
    --bs-popover-header-color: var(--pt-text);
    --bs-popover-header-border-color: var(--pt-border);
    --bs-popover-body-color: var(--pt-text);
    --bs-box-shadow: 0 0.5rem 1rem rgba(24, 28, 50, 0.08);
    --bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(24, 28, 50, 0.06);
    --bs-box-shadow-lg: 0 1rem 3rem rgba(24, 28, 50, 0.1);
    --bs-box-shadow-inset: inset 0 1px 2px rgba(24, 28, 50, 0.06);
    --bs-focus-ring-color: var(--pt-focus-ring);
}

body.app-default,
body {
    font-family: var(--bs-font-sans-serif);
    font-variant-numeric: tabular-nums lining-nums;
    -webkit-font-smoothing: antialiased;
}

.font-prop-mono,
.prop-mono {
    font-family: var(--bs-font-monospace);
}

/*
 * Глобально (кабинет): Metronic/Bootstrap-утилиты с «белыми» цветами в разметке.
 * В dark приводим к токенам — без правок десятков inc/*.php (приёмка §7).
 */
[data-bs-theme="dark"] .text-dark,
[data-bs-theme="dark"] .text-gray-900 {
    color: var(--bs-emphasis-color) !important;
}

[data-bs-theme="dark"] .text-gray-800 {
    color: var(--bs-emphasis-color) !important;
}

[data-bs-theme="dark"] .text-gray-700 {
    color: var(--bs-body-color) !important;
}

[data-bs-theme="dark"] .text-gray-600 {
    color: var(--pt-text-muted) !important;
}

[data-bs-theme="dark"] .text-gray-500,
[data-bs-theme="dark"] .text-gray-400 {
    color: var(--pt-text-muted) !important;
}

[data-bs-theme="dark"] .border-gray-200,
[data-bs-theme="dark"] .border-gray-300 {
    border-color: var(--pt-border) !important;
}

[data-bs-theme="dark"] .bg-white {
    background-color: var(--pt-bg-card) !important;
}

[data-bs-theme="dark"] .bg-light {
    background-color: var(--pt-bg-muted) !important;
}

[data-bs-theme="dark"] thead.bg-light,
[data-bs-theme="dark"] thead.bg-light.bg-opacity-75 {
    --bs-bg-opacity: 1;
    background-color: var(--pt-bg-muted) !important;
}

[data-bs-theme="dark"] .border-gray-700 {
    border-color: hsl(220, 12%, 28%) !important;
}

/* Алерты Metronic (bg-light-*) — фон из палитры, не «молочный» */
[data-bs-theme="dark"] .bg-light-info {
    background-color: var(--pt-cyan-mist) !important;
    color: var(--pt-text) !important;
}

[data-bs-theme="dark"] .bg-light-danger {
    background-color: var(--pt-red-soft) !important;
    color: var(--pt-text) !important;
}

[data-bs-theme="dark"] .bg-light-success {
    background-color: var(--pt-green-dim) !important;
    color: var(--pt-text) !important;
}

[data-bs-theme="dark"] .bg-light-warning {
    background-color: var(--pt-yellow-soft) !important;
    color: var(--pt-text) !important;
}

[data-bs-theme="dark"] .bg-light-primary {
    background-color: var(--pt-cyan-ghost) !important;
    color: var(--pt-text) !important;
}

/* Поля ввода / селекты — не белый фон в dark */
[data-bs-theme="dark"] .form-control,
[data-bs-theme="dark"] .form-select {
    background-color: var(--pt-bg-muted);
    border-color: var(--pt-border);
    color: var(--pt-text);
}

[data-bs-theme="dark"] .form-control:focus,
[data-bs-theme="dark"] .form-select:focus {
    background-color: var(--pt-bg-card);
    border-color: var(--pt-cyan);
    color: var(--pt-text);
}

[data-bs-theme="dark"] .form-control::placeholder {
    color: var(--pt-text-muted);
}

[data-bs-theme="dark"] .form-check-input {
    background-color: var(--pt-bg-muted);
    border-color: var(--pt-border);
}

[data-bs-theme="dark"] .form-check-input:checked {
    background-color: var(--pt-cyan);
    border-color: var(--pt-cyan);
}

[data-bs-theme="dark"] .modal-content {
    background-color: var(--pt-bg-card);
    border-color: var(--pt-border);
    color: var(--pt-text);
}

[data-bs-theme="dark"] .modal-header {
    border-bottom-color: var(--pt-border);
}

[data-bs-theme="dark"] .modal-footer {
    border-top-color: var(--pt-border);
}

/* Выпадающие меню Bootstrap + Metronic (шапка, дропдауны) */
[data-bs-theme="dark"] .dropdown-menu {
    background-color: var(--pt-bg-card);
    border: 1px solid var(--pt-border);
    box-shadow: 0 0.5rem 1.5rem hsla(0, 0%, 0%, 0.45);
}

[data-bs-theme="dark"] .dropdown-item {
    color: var(--pt-text);
}

[data-bs-theme="dark"] .dropdown-item:hover,
[data-bs-theme="dark"] .dropdown-item:focus {
    background-color: var(--pt-bg-muted);
    color: var(--pt-text);
}

[data-bs-theme="dark"] .dropdown-divider,
[data-bs-theme="dark"] .dropdown-menu .separator {
    border-color: var(--pt-border);
}

[data-bs-theme="dark"] .menu-sub-dropdown {
    background-color: var(--pt-bg-card) !important;
    border: 1px solid var(--pt-border) !important;
    box-shadow: 0 0.5rem 1.5rem hsla(0, 0%, 0%, 0.45) !important;
}

[data-bs-theme="dark"] .separator {
    border-color: var(--pt-border) !important;
}


[data-bs-theme="dark"] .btn-light {
    --bs-btn-bg: var(--pt-bg-muted);
    --bs-btn-border-color: var(--pt-border);
    --bs-btn-color: var(--pt-text);
    --bs-btn-hover-bg: hsl(220, 14%, 18%);
    --bs-btn-hover-border-color: var(--pt-border);
    --bs-btn-hover-color: var(--pt-text);
}

[data-bs-theme="dark"] .nav-line-tabs .nav-item .nav-link {
    color: var(--pt-text-muted);
}

[data-bs-theme="dark"] .nav-line-tabs .nav-item .nav-link.active {
    color: var(--pt-cyan);
    border-bottom-color: var(--pt-cyan) !important;
}

[data-bs-theme="dark"] .table-hover > tbody > tr:hover > * {
    --bs-table-hover-bg: var(--pt-cyan-tint);
    color: var(--pt-text);
}

/* Toastr: плагин даёт opacity:0.8 на тостах; в dark фоны были hsla-surface — выглядело «стеклом» */
#toast-container {
    z-index: 9999999 !important;
}

#toast-container > div {
    opacity: 1 !important;
    -ms-filter: none !important;
    filter: none !important;
}

#toast-container > div:hover {
    opacity: 1 !important;
    -ms-filter: none !important;
    filter: none !important;
}

[data-bs-theme="dark"] #toast-container > div {
    background-image: none !important;
    box-shadow: 0 0.35rem 1rem hsla(0, 0%, 0%, 0.45);
    color: var(--pt-text);
}

[data-bs-theme="dark"] #toast-container > .toast-success {
    background-color: hsl(152, 34%, 15%) !important;
    border: 1px solid var(--pt-green);
}

[data-bs-theme="dark"] #toast-container > .toast-error {
    background-color: hsl(352, 36%, 18%) !important;
    border: 1px solid var(--pt-red);
}

[data-bs-theme="dark"] #toast-container > .toast-warning {
    background-color: hsl(42, 38%, 16%) !important;
    border: 1px solid var(--pt-yellow);
}

[data-bs-theme="dark"] #toast-container > .toast-info {
    background-color: hsl(198, 45%, 16%) !important;
    border: 1px solid var(--pt-cyan);
}

/* Алерты Bootstrap (не bg-light-*) */
[data-bs-theme="dark"] .alert-success {
    background-color: var(--pt-green-dim);
    border-color: var(--pt-green);
    color: var(--pt-text);
}

[data-bs-theme="dark"] .alert-danger {
    background-color: var(--pt-red-dim);
    border-color: var(--pt-red);
    color: var(--pt-text);
}

[data-bs-theme="dark"] .alert-warning {
    background-color: var(--pt-yellow-dim);
    border-color: var(--pt-yellow);
    color: var(--pt-text);
}

[data-bs-theme="dark"] .alert-info {
    background-color: var(--pt-cyan-ghost);
    border-color: var(--pt-cyan);
    color: var(--pt-text);
}

[data-bs-theme="dark"] .alert-primary {
    background-color: var(--pt-cyan-ghost);
    border-color: var(--pt-cyan);
    color: var(--pt-text);
}

[data-bs-theme="dark"] .bg-body {
    background-color: var(--pt-bg) !important;
}

[data-bs-theme="dark"] .page-loader {
    background-color: var(--pt-bg);
}

[data-bs-theme="dark"] .pagination .page-link {
    background-color: var(--pt-bg-card);
    border-color: var(--pt-border);
    color: var(--pt-text);
}

[data-bs-theme="dark"] .pagination .page-link:hover {
    background-color: var(--pt-bg-muted);
    color: var(--pt-text);
}

[data-bs-theme="dark"] .pagination .page-item.active .page-link {
    background-color: var(--pt-cyan);
    border-color: var(--pt-cyan);
    color: hsl(220, 18%, 7%);
}

[data-bs-theme="dark"] .pagination .page-item.disabled .page-link {
    background-color: var(--pt-bg-muted);
    color: var(--pt-text-muted);
}

/* Лоадер поверх таблиц (assets/theme/css/style.css — div.core-loader) */
[data-bs-theme="dark"] div.core-loader:not(.no-bg) {
    background-color: var(--pt-bg-card);
    color: var(--pt-text-muted);
    box-shadow: 0 0.35rem 1.25rem hsla(0, 0%, 0%, 0.35);
}

[data-bs-theme="dark"] div.core-loader > div:last-child > div {
    background: var(--pt-cyan) !important;
    opacity: 0.92;
}

/*
 * style.css: граница fieldset была только у [data-theme=light];
 * в кабинете на <html> задаётся data-bs-theme — дублируем для форм.
 */
[data-bs-theme="light"] .without-tabs fieldset {
    border: solid 1px var(--pt-border);
}

[data-bs-theme="dark"] .without-tabs fieldset {
    border: solid 1px var(--pt-border);
}

[data-bs-theme="dark"] .is_collapse {
    background: var(--pt-bg-muted);
    color: var(--pt-text);
}

/* style.css — копирование значений; акцент как у ссылок темы */
.auto_copy_value {
    color: var(--pt-cyan);
    border-bottom-color: var(--pt-cyan);
}

/*
 * style.css: активная строка DataTables была [data-theme=dark|light];
 * в кабинете тема на <html> — data-bs-theme.
 */
[data-bs-theme="dark"] table.dataTable > tbody > tr.active > * {
    background-color: var(--pt-cyan-ghost) !important;
}

[data-bs-theme="light"] table.dataTable > tbody > tr.active > * {
    background-color: var(--pt-yellow-highlight) !important;
}

[data-bs-theme="dark"] .grid_field_edit {
    background-color: var(--pt-bg-card);
    border: 1px solid var(--pt-border);
    box-shadow: 0 0.5rem 1.5rem hsla(0, 0%, 0%, 0.45);
    color: var(--pt-text);
}

[data-bs-theme="dark"] .input-group-text {
    background-color: var(--pt-bg-muted);
    border-color: var(--pt-border);
    color: var(--pt-text-muted);
}

[data-bs-theme="dark"] .progress {
    background-color: var(--pt-bg-muted);
}

[data-bs-theme="dark"] .form-control::file-selector-button {
    background-color: var(--pt-bg-muted);
    border-color: var(--pt-border);
    color: var(--pt-text);
}

[data-bs-theme="dark"] .form-control::-webkit-file-upload-button {
    background-color: var(--pt-bg-muted);
    border-color: var(--pt-border);
    color: var(--pt-text);
}

[data-bs-theme="dark"] .btn-close {
    filter: invert(1);
}

[data-bs-theme="dark"] .list-group-item {
    background-color: var(--pt-bg-card);
    border-color: var(--pt-border);
    color: var(--pt-text);
}

[data-bs-theme="dark"] .list-group-item.active {
    background-color: var(--pt-cyan-ui);
    border-color: var(--pt-cyan);
    color: var(--pt-text);
}

[data-bs-theme="dark"] .accordion-item {
    background-color: var(--pt-bg-card);
    border-color: var(--pt-border);
}

[data-bs-theme="dark"] .accordion-button {
    background-color: var(--pt-bg-muted);
    color: var(--pt-text);
}

[data-bs-theme="dark"] .accordion-button:not(.collapsed) {
    color: var(--pt-cyan);
    box-shadow: inset 0 -1px 0 var(--pt-border);
}

[data-bs-theme="dark"] .accordion-body {
    background-color: var(--pt-bg-card);
    color: var(--pt-text);
}

[data-bs-theme="dark"] .offcanvas {
    background-color: var(--pt-bg-card);
    color: var(--pt-text);
}

[data-bs-theme="dark"] .offcanvas-header {
    border-bottom: 1px solid var(--pt-border);
}

/* C.5: как в prop-terminal-standalone — узкий скролл, thumb отдельным токеном */
[data-bs-theme="dark"] ::-webkit-scrollbar {
    width: 5px;
    height: 5px;
}

[data-bs-theme="dark"] ::-webkit-scrollbar-track {
    background: transparent;
}

[data-bs-theme="dark"] ::-webkit-scrollbar-thumb {
    background: var(--pt-scrollbar-thumb);
    border-radius: 3px;
}

[data-bs-theme="dark"] ::-webkit-scrollbar-thumb:hover {
    background: var(--pt-scrollbar-thumb-hover);
}

/* Firefox — тонкий скролл (WebKit см. выше) */
html[data-bs-theme="dark"] {
    scrollbar-width: thin;
    scrollbar-color: var(--pt-scrollbar-thumb) var(--pt-bg);
}

[data-bs-theme="dark"] .border-secondary {
    border-color: var(--pt-border) !important;
}

[data-bs-theme="dark"] .breadcrumb-item a {
    color: var(--pt-cyan);
}

[data-bs-theme="dark"] .breadcrumb-item.active {
    color: var(--pt-text-muted);
}

[data-bs-theme="dark"] .breadcrumb-item + .breadcrumb-item::before {
    color: var(--pt-text-muted);
}

[data-bs-theme="dark"] .nav-pills .nav-link {
    color: var(--pt-text-muted);
}

[data-bs-theme="dark"] .nav-pills .nav-link.active,
[data-bs-theme="dark"] .nav-pills .show > .nav-link {
    background-color: var(--pt-cyan-ring);
    color: var(--pt-cyan);
}

[data-bs-theme="dark"] pre,
[data-bs-theme="dark"] .pre {
    background-color: var(--pt-bg-muted);
    border: 1px solid var(--pt-border);
    color: var(--pt-text);
}

[data-bs-theme="dark"] pre code {
    background: transparent;
    color: inherit;
}

[data-bs-theme="dark"] :not(pre) > code {
    background-color: var(--pt-bg-muted);
    color: var(--pt-cyan);
    padding: 0.1em 0.35em;
    border-radius: 0.25rem;
}

[data-bs-theme="dark"] kbd {
    background-color: var(--pt-bg-muted);
    border-color: var(--pt-border);
    color: var(--pt-text);
}

[data-bs-theme="dark"] .table-bordered {
    --bs-table-border-color: var(--pt-border);
}

[data-bs-theme="dark"] .was-validated .form-control:invalid,
[data-bs-theme="dark"] .form-control.is-invalid {
    border-color: var(--pt-red);
}

[data-bs-theme="dark"] .was-validated .form-control:valid,
[data-bs-theme="dark"] .form-control.is-valid {
    border-color: var(--pt-green);
}

[data-bs-theme="dark"] .invalid-feedback {
    color: hsl(0, 85%, 72%);
}

[data-bs-theme="dark"] .valid-feedback {
    color: hsl(145, 55%, 62%);
}

[data-bs-theme="dark"] ::selection {
    background-color: var(--pt-cyan-overlay);
    color: var(--pt-text);
}

[data-bs-theme="dark"] a:focus-visible {
    outline: 2px solid var(--pt-cyan);
    outline-offset: 2px;
}

[data-bs-theme="dark"] hr {
    border-color: var(--pt-border);
    opacity: 1;
}

[data-bs-theme="dark"] blockquote,
[data-bs-theme="dark"] .blockquote {
    border-left: 3px solid var(--pt-cyan);
    color: var(--pt-text-muted);
}

[data-bs-theme="dark"] .shadow-sm {
    box-shadow: 0 0.125rem 0.35rem hsla(0, 0%, 0%, 0.45) !important;
}

[data-bs-theme="dark"] .shadow,
[data-bs-theme="dark"] .card.shadow {
    box-shadow: 0 0.5rem 1rem hsla(0, 0%, 0%, 0.45) !important;
}

[data-bs-theme="dark"] .text-bg-primary {
    background-color: var(--pt-cyan-highlight) !important;
    color: var(--pt-text) !important;
}

[data-bs-theme="dark"] .text-bg-success {
    background-color: var(--pt-green-surface) !important;
    color: var(--pt-text) !important;
}

[data-bs-theme="dark"] .text-bg-danger {
    background-color: var(--pt-red-surface) !important;
    color: var(--pt-text) !important;
}

[data-bs-theme="dark"] .text-bg-warning {
    background-color: var(--pt-yellow-strong) !important;
    color: var(--pt-text) !important;
}

[data-bs-theme="dark"] .text-bg-info {
    background-color: var(--pt-cyan-badge) !important;
    color: var(--pt-text) !important;
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
}

/* Metronic: при sticky/minimize на body снова выставляет 70px — выравниваем с компактной шапкой */
body[data-kt-app-header-sticky="on"],
body[data-kt-app-header-minimize="on"] {
    --kt-app-header-height: var(--prop-app-header-height, 52px);
    --kt-app-header-height-actual: var(--prop-app-header-height, 52px);
}

/* Шаг 2: хедер как в референсе (лёгкое стекло), контент на фоне приложения */
[data-bs-theme="dark"] .app-header {
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

[data-bs-theme="light"] .app-header {
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}

/*
 * Metronic: backdrop/overflow у шапки обрезают .menu-sub-dropdown — меню темы/аккаунта не открывается или уезжает.
 */
#kt_app_header,
#kt_app_header .app-container,
#kt_app_header #kt_app_header_wrapper,
#kt_app_header .app-navbar,
#kt_app_header .app-navbar-item {
    overflow: visible !important;
}

#kt_app_header .menu-sub-dropdown {
    z-index: 110;
}

/* Узкая полоса шапки: логотип и внутренние отступы */
#kt_app_header > .app-container {
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
}

/*
 * Логотипы: в config бренда на <img> вешаются .h-25px / .h-40px (в бандле height: Npx !important).
 * Без !important здесь max-height не действует. На lg+ у залогиненных логотип в шапке скрыт (d-lg-none) —
 * виден блок #kt_app_sidebar_logo в сайдбаре.
 */
#kt_app_header .prop-header-logo-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.4rem 1rem;
    margin-inline: 0.35rem;
    flex-shrink: 0;
    min-width: 0;
}

#kt_app_header .prop-header-logo-wrap > a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
    min-width: 0;
}

#kt_app_header .prop-header-logo-wrap img.app-sidebar-logo-default,
#kt_app_header .prop-header-logo-wrap img.app-sidebar-logo-minimize {
    height: auto !important;
    max-height: 22px !important;
    width: auto !important;
    max-width: 100%;
    object-fit: contain;
    vertical-align: middle;
}

/* Сайдбар: логотип по центру блока (кнопка minimize — absolute, во flex не участвует) */
#kt_app_sidebar_logo {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.45rem 1.35rem !important;
}

#kt_app_sidebar_logo > a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
}

#kt_app_sidebar_logo img.app-sidebar-logo-default,
#kt_app_sidebar_logo img.app-sidebar-logo-minimize {
    height: auto !important;
    max-height: 32px !important;
    width: auto !important;
    max-width: 100%;
    object-fit: contain;
}

#kt_app_header .prop-header-logo-wrap .prop-brand-logo__icon-svg.app-sidebar-logo-default svg,
#kt_app_header .prop-header-logo-wrap .prop-brand-logo__icon-svg.app-sidebar-logo-minimize svg {
    height: auto !important;
    max-height: 22px !important;
    width: auto !important;
    max-width: 100%;
    display: block;
}

#kt_app_sidebar_logo .prop-brand-logo__icon-svg.app-sidebar-logo-default svg,
#kt_app_sidebar_logo .prop-brand-logo__icon-svg.app-sidebar-logo-minimize svg {
    height: auto !important;
    max-height: 32px !important;
    width: auto !important;
    max-width: 100%;
    display: block;
}

.prop-login-brand-wrap .prop-brand-logo__icon-svg.app-sidebar-logo-default svg {
    height: auto !important;
    max-height: 40px !important;
    width: auto !important;
    max-width: 100%;
    display: block;
}

.prop-login-brand-wrap .prop-brand-logo__icon-svg.app-sidebar-logo-minimize svg {
    height: auto !important;
    max-height: 20px !important;
    width: auto !important;
    max-width: 100%;
    display: block;
}

/* Не задавать display на оба варианта: Metronic скрывает .app-sidebar-logo-minimize через display:none — общий inline-flex ломал это и показывал обе иконки. */
.prop-brand-logo__icons .prop-brand-logo__icon-svg.app-sidebar-logo-default {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
}

/* Бренд: иконка + две строки; при свёрнутом сайдбаре или на узком экране — только иконка */
/* Цвет текста — --pt-text (не --bs-link-color у <a> и не gray-*), чтобы в тёмной теме не было «тёмной» ссылки */
.prop-brand-logo {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    min-width: 0;
    text-decoration: none;
}

a.prop-brand-logo,
a.prop-brand-logo:visited {
    color: var(--pt-text);
}

a.prop-brand-logo:hover {
    color: var(--bs-primary);
}

.prop-brand-logo__icons {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    line-height: 0;
}

.prop-brand-logo__text {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 0.1875rem;
    min-width: 0;
    text-align: left;
    line-height: 1.2;
}

.prop-brand-logo__name {
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    white-space: nowrap;
    line-height: 1.2;
}

.prop-brand-logo__desc {
    font-size: 0.6625rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--pt-text-muted);
    margin-top: 0;
    white-space: nowrap;
    line-height: 1.2;
}

#kt_app_sidebar_logo > a.prop-brand-logo {
    width: 100%;
    justify-content: flex-start;
}

[data-kt-app-sidebar-minimize="on"] #kt_app_sidebar_logo .prop-brand-logo__text {
    display: none !important;
}

@media (max-width: 991.98px) {
    #kt_app_sidebar_logo .prop-brand-logo__text,
    .prop-header-logo-wrap .prop-brand-logo__text,
    .prop-login-brand-wrap .prop-brand-logo__text {
        display: none !important;
    }
}

#kt_app_header .btn-icon.w-35px.h-35px {
    width: 30px;
    height: 30px;
}

#kt_app_header .btn-icon.w-md-40px.h-md-40px {
    width: 30px;
    height: 30px;
}

@media (min-width: 768px) {
    #kt_app_header .btn-icon.w-md-40px.h-md-40px {
        width: 32px;
        height: 32px;
    }
}

/* Меню с PropTradingDemo / GMT: ~10px от левого края контента */
#kt_app_header .prop-header-menu {
    padding-left: 10px;
    padding-right: 0.5rem;
}

/* Последняя CTA до иконки темы — без лишнего me-2/me-md-3 */
#kt_app_header .prop-header-cta-last.prop-header-cta-btn {
    margin-right: 0.25rem;
}

/* Верхняя панель: платформа + GMT (как .topbar-left в prop-terminal-standalone.html) */
#kt_app_header .prop-header-server-wrap {
    flex-wrap: wrap;
    gap: 0.5rem;
    font-size: 14.5px;
    line-height: 1.35;
    color: var(--pt-text-muted, var(--bs-secondary-color));
    max-width: min(440px, 58vw);
}

#kt_app_header .prop-header-server-wrap .prop-header-server {
    color: var(--pt-text, var(--bs-emphasis-color));
    font-size: 15.75px;
    font-weight: 700;
    letter-spacing: -0.02em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

#kt_app_header .prop-header-server-wrap .prop-header-gmt {
    flex-shrink: 0;
    font-size: 14.5px;
    white-space: nowrap;
}

/* Статус рынка (как .market-status / .dot-live в prop-terminal-standalone.html) */
#kt_app_header .prop-market-status {
    gap: 0.5rem;
}

#kt_app_header .prop-market-status-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex-shrink: 0;
    background: var(--bs-success);
    box-shadow: 0 0 6px var(--pt-green-glow);
    animation: prop-market-pulse 1.8s ease-in-out infinite;
}

@keyframes prop-market-pulse {
    0%,
    100% {
        opacity: 1;
    }
    50% {
        opacity: 0.35;
    }
}

/* Шапка: кнопки «New tournament / New challenge» — ~2× компактнее по сравнению с btn-sm */
#kt_app_header .prop-header-cta-btn.btn-sm {
    --bs-btn-padding-y: 0.03rem;
    --bs-btn-padding-x: 0.14rem;
    --bs-btn-font-size: 0.8125rem;
    line-height: 1.1;
    border-radius: 0.18rem;
}

.app-main .app-content,
#kt_app_content {
    background-color: var(--kt-app-bg-color, var(--bs-body-bg));
}

/* Баннер «подтвердите email»: на всю ширину app-main; отступ до контента — padding-top у .prop-dash-toolbar */
#kt_app_main > .flex-column-fluid > .prop-confirm-email-banner.confirm-email-address {
    width: 100%;
    max-width: none;
    margin-top: 0;
    margin-left: 0;
    margin-right: 0;
    margin-bottom: 0;
    flex-shrink: 0;
}

/* Контент баннера уже полосы на весь экран: ограничиваем ширину, чтобы текст и кнопка не разъезжались */
.prop-confirm-email-banner.confirm-email-address > .container-fluid {
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
}

[data-bs-theme="dark"] .prop-confirm-email-banner.confirm-email-address {
    background-color: var(--pt-red-soft, hsla(0, 80%, 55%, 0.14)) !important;
    border-color: var(--pt-red-border, hsla(0, 80%, 55%, 0.35)) !important;
    color: var(--bs-emphasis-color);
}

[data-bs-theme="dark"] .prop-confirm-email-banner.confirm-email-address .btn-get-new-email-code {
    color: var(--pt-cyan, var(--bs-primary));
}

/*
 * Metronic style.bundle: [data-kt-app-layout=dark-sidebar] .app-sidebar { background #1e1e2d; border-right: 0 }
 * и .card с фоном/бордером вне --bs-card-* — приводим к токенам PropTerminal.
 */
[data-kt-app-layout="dark-sidebar"] .app-sidebar {
    background-color: var(--kt-app-sidebar-base-bg-color, var(--pt-bg-sidebar)) !important;
    border-right: 1px solid var(--pt-border) !important;
}

/*
 * Сайдбар: активный пункт — как .nav-item.active в референсе (cyan + тёмный текст, 600).
 * Metronic бандл: background #2a2a3c + var(--kt-primary-inverse) — заменяем на токены PropTerminal.
 */
[data-bs-theme="dark"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item .menu-link.active,
[data-bs-theme="dark"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item.here > .menu-link {
    background-color: var(--pt-cyan) !important;
    color: var(--pt-sidebar-active-text) !important;
    font-weight: 600 !important;
}

[data-bs-theme="dark"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item .menu-link.active .menu-title,
[data-bs-theme="dark"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item.here > .menu-link .menu-title {
    color: var(--pt-sidebar-active-text) !important;
}

/* Бандл задаёт цвет на .menu-icon i / .svg-icon — выше специфичность, чем только .menu-icon */
[data-bs-theme="dark"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item .menu-link.active .menu-icon,
[data-bs-theme="dark"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item .menu-link.active .menu-icon i,
[data-bs-theme="dark"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item .menu-link.active .menu-icon .svg-icon,
[data-bs-theme="dark"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item .menu-link.active .menu-icon svg,
[data-bs-theme="dark"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item.here > .menu-link .menu-icon,
[data-bs-theme="dark"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item.here > .menu-link .menu-icon i,
[data-bs-theme="dark"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item.here > .menu-link .menu-icon .svg-icon,
[data-bs-theme="dark"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item.here > .menu-link .menu-icon svg {
    color: var(--pt-sidebar-active-text) !important;
}

[data-bs-theme="dark"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item .menu-link.active .menu-bullet .bullet,
[data-bs-theme="dark"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item.here > .menu-link .menu-bullet .bullet {
    background-color: var(--pt-sidebar-active-text) !important;
}

[data-bs-theme="dark"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item .menu-link.active .menu-arrow::after,
[data-bs-theme="dark"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item.here > .menu-link .menu-arrow::after {
    background-color: var(--pt-sidebar-active-text) !important;
}

[data-bs-theme="dark"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item .menu-link:not(.active):hover {
    background-color: var(--pt-sidebar-nav-hover-bg) !important;
    color: var(--pt-text) !important;
}

/* Светлая тема: сайдбар тёмный — дефолтные ссылки как в референсе (.nav-item) */
[data-bs-theme="light"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-link:not(.active) {
    color: hsla(210, 18%, 82%, 0.65) !important;
}

[data-bs-theme="light"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-link:not(.active) .menu-title,
[data-bs-theme="light"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-link:not(.active) .menu-icon,
[data-bs-theme="light"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-link:not(.active) .menu-icon i,
[data-bs-theme="light"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-link:not(.active) .menu-icon .svg-icon,
[data-bs-theme="light"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-link:not(.active) .menu-icon svg {
    color: inherit !important;
}

[data-bs-theme="light"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-link:not(.active) .menu-bullet .bullet {
    background-color: hsla(210, 18%, 82%, 0.4) !important;
}

[data-bs-theme="light"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-link:not(.active) .menu-arrow::after {
    background-color: hsla(210, 18%, 82%, 0.55) !important;
}

[data-bs-theme="light"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-link:not(.active) .menu-arrow .svg-icon,
[data-bs-theme="light"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-link:not(.active) .menu-arrow svg {
    color: hsla(210, 18%, 82%, 0.65) !important;
}

[data-bs-theme="light"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .text-muted {
    color: hsl(215, 10%, 55%) !important;
}

[data-bs-theme="light"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .btn.body-bg,
[data-bs-theme="light"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .body-bg {
    background-color: hsl(220, 14%, 14%) !important;
    border-color: hsl(220, 14%, 18%) !important;
}

[data-bs-theme="light"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .btn-color-muted i,
[data-bs-theme="light"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .btn-color-muted .svg-icon,
[data-bs-theme="light"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .btn-color-muted svg {
    color: hsl(215, 10%, 55%) !important;
}

/* Светлая тема: активный пункт — как в dark (cyan + тёмный текст) */
[data-bs-theme="light"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item .menu-link.active,
[data-bs-theme="light"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item.here > .menu-link {
    background-color: var(--pt-cyan) !important;
    color: var(--pt-sidebar-active-text) !important;
    font-weight: 600 !important;
}

[data-bs-theme="light"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item .menu-link.active .menu-title,
[data-bs-theme="light"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item.here > .menu-link .menu-title {
    color: var(--pt-sidebar-active-text) !important;
}

[data-bs-theme="light"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item .menu-link.active .menu-icon,
[data-bs-theme="light"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item .menu-link.active .menu-icon i,
[data-bs-theme="light"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item .menu-link.active .menu-icon .svg-icon,
[data-bs-theme="light"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item .menu-link.active .menu-icon svg,
[data-bs-theme="light"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item.here > .menu-link .menu-icon,
[data-bs-theme="light"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item.here > .menu-link .menu-icon i,
[data-bs-theme="light"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item.here > .menu-link .menu-icon .svg-icon,
[data-bs-theme="light"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item.here > .menu-link .menu-icon svg {
    color: var(--pt-sidebar-active-text) !important;
}

[data-bs-theme="light"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item .menu-link.active .menu-bullet .bullet,
[data-bs-theme="light"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item.here > .menu-link .menu-bullet .bullet {
    background-color: var(--pt-sidebar-active-text) !important;
}

[data-bs-theme="light"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item .menu-link.active .menu-arrow::after,
[data-bs-theme="light"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item.here > .menu-link .menu-arrow::after {
    background-color: var(--pt-sidebar-active-text) !important;
}

[data-bs-theme="light"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item .menu-link:not(.active):hover {
    background-color: hsl(220, 15%, 14%) !important;
    color: hsl(210, 20%, 90%) !important;
}

[data-bs-theme="light"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item .menu-link:not(.active):hover .menu-title,
[data-bs-theme="light"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item .menu-link:not(.active):hover .menu-icon,
[data-bs-theme="light"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item .menu-link:not(.active):hover .menu-icon i,
[data-bs-theme="light"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item .menu-link:not(.active):hover .menu-icon .svg-icon,
[data-bs-theme="light"] [data-kt-app-layout="dark-sidebar"] .app-sidebar .menu .menu-item .menu-link:not(.active):hover .menu-icon svg {
    color: inherit !important;
}

/*
 * У .card в бандле локально задаётся --bs-card-bg (часто белый) — не используем --bs-card-* на фоне.
 */
body.app-default .card:not([class*="bg-"]):not([class*="text-bg-"]) {
    background-color: var(--pt-bg-card) !important;
    border-color: var(--pt-border) !important;
    color: var(--pt-text) !important;
}

body.app-default .card:not([class*="bg-"]):not([class*="text-bg-"]) .card-header,
body.app-default .card:not([class*="bg-"]):not([class*="text-bg-"]) .card-footer {
    background-color: var(--pt-bg-muted);
    border-color: var(--pt-border);
}

/*
 * Metronic style.bundle: .card .card-header { padding: 0 2.25rem; min-height: 70px } — полностью игнорирует --bs-card-cap-*.
 */
body.app-default .card .card-header:not(.card-header-stretch):not(.card-header-sm-stretch):not(.prop-card-head) {
    padding-top: 0.65rem !important;
    padding-bottom: 0.65rem !important;
    padding-left: 1rem !important;
    padding-right: 1rem !important;
    min-height: 0 !important;
}

/*
 * Единая шапка карточки: отступы как у Performance Challenge (prop-dash-performance-head + utilities).
 * Иконку в разметке не добавляем — только класс заголовка .prop-dash-performance-heading.
 */
body.app-default .card .card-header.prop-card-head {
    /* Как блок Performance: тот же фон, что у card-body, без полосы --pt-bg-muted */
    background-color: var(--pt-bg-card, var(--bs-card-bg)) !important;
    /* Ритм как у .prop-dash-performance-head: pt-4 pt-lg-5 pb-3 (снизу чуть плотнее) */
    padding-top: 1.5rem !important;
    padding-bottom: 1rem !important;
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
    min-height: 0 !important;
    border-bottom: 1px solid var(--pt-border, var(--bs-border-color)) !important;
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
    /* Перебиваем .card .card-header { min-height: 70px; align-items: stretch } */
    justify-content: space-between;
}

@media (min-width: 992px) {
    body.app-default .card .card-header.prop-card-head {
        padding-top: 3rem !important;
        padding-left: 3rem !important;
        padding-right: 3rem !important;
    }
}

/*
 * Metronic .card-header-stretch { padding-top/bottom: 0 !important } — ломает вертикаль отступы prop-card-head.
 */
body.app-default .card .card-header.prop-card-head.card-header-stretch {
    padding-top: 1.3rem !important;
    padding-bottom: 1.3rem !important;
    padding-left: 1.3rem !important;
    align-items: center !important;
}

body.app-default .card .card-header.prop-card-head .card-title {
    /* Metronic: .card .card-header .card-title { margin: .5rem } — сдвиг и лишняя «высота» */
    margin: 0 !important;
    min-height: 0;
    flex: 1 1 auto;
    min-width: 0;
}

body.app-default .card .card-header.prop-card-head .card-toolbar {
    margin-top: 0 !important;
}

body.app-default .card .card-header.prop-card-head .card-label {
    color: var(--bs-emphasis-color) !important;
}

body.app-default .card .card-header.prop-card-head .nav-line-tabs .nav-link {
    font-size: 0.95rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.02em;
}

/* Как у .prop-dash-chart: border border-gray-300 border-opacity-25 — через --pt-border обе темы */
body.app-default .card:has(> .card-header.prop-card-head) {
    border: 1px solid color-mix(in srgb, var(--pt-border) 38%, transparent) !important;
}

/* Вход / регистрация / восстановление пароля — отступ от шапки сайта */
body.app-default #dashboard.prop-auth-layout {
    padding-top: 100px;
}

/*
 * Те же отступы шапки, что у .prop-card-head.card-header-stretch (1.3rem),
 * без увеличения до 3rem на lg у общего правила .card .card-header.prop-card-head
 */
body.app-default #dashboard.prop-auth-layout .card > .card-header.prop-card-head {
    padding-top: 1.3rem !important;
    padding-bottom: 1.3rem !important;
    padding-left: 1.3rem !important;
    padding-right: 1.3rem !important;
}

/* Карточки турниров (в т.ч. My Tournaments): лента внутри шапки, без вылезания за padding Metronic translate */
body.app-default .tournament-block > .card-header.prop-card-head.ribbon.ribbon-top {
    position: relative;
    overflow: visible;
    padding-right: 4.25rem !important;
}

body.app-default .tournament-block > .card-header.prop-card-head.ribbon.ribbon-top .ribbon-label {
    top: 0.55rem;
    right: 0.55rem;
    transform: none;
    padding: 0.3rem 0.55rem;
    font-size: 0.72rem !important;
    font-weight: 600;
    line-height: 1.2;
    border-bottom-right-radius: 0.35rem;
    border-bottom-left-radius: 0.35rem;
    box-shadow: 0 1px 2px hsla(220, 20%, 4%, 0.12);
}

[data-bs-theme="dark"] body.app-default .tournament-block > .card-header.prop-card-head.ribbon.ribbon-top .ribbon-label {
    box-shadow: 0 1px 3px hsla(0, 0%, 0%, 0.35);
}

/*
 * Metronic: .ribbon .ribbon-label { background: var(--kt-ribbon-label-bg); color: var(--kt-primary-inverse) } —
 * утилиты .bg-* не перебивают фон. Нужны селекторы сильнее + html[data-bs-theme] + .card-header.ribbon (разметка tournaments.js).
 */
html[data-bs-theme="light"] body.app-default .card .card-header.ribbon .ribbon-label.bg-success,
html[data-bs-theme="dark"] body.app-default .card .card-header.ribbon .ribbon-label.bg-success,
html[data-bs-theme="light"] body.app-default .ribbon .ribbon-label.bg-success,
html[data-bs-theme="dark"] body.app-default .ribbon .ribbon-label.bg-success {
    background-color: var(--pt-cyan) !important;
    color: var(--pt-sidebar-active-text) !important;
}

html[data-bs-theme="light"] body.app-default .card .card-header.ribbon .ribbon-label.bg-warning,
html[data-bs-theme="dark"] body.app-default .card .card-header.ribbon .ribbon-label.bg-warning,
html[data-bs-theme="light"] body.app-default .ribbon .ribbon-label.bg-warning,
html[data-bs-theme="dark"] body.app-default .ribbon .ribbon-label.bg-warning {
    background-color: var(--pt-yellow) !important;
    color: var(--pt-sidebar-active-text) !important;
}

html[data-bs-theme="light"] body.app-default .card .card-header.ribbon .ribbon-label.bg-dark,
html[data-bs-theme="light"] body.app-default .ribbon .ribbon-label.bg-dark {
    background-color: hsl(220, 18%, 16%) !important;
    color: #fff !important;
}

html[data-bs-theme="dark"] body.app-default .card .card-header.ribbon .ribbon-label.bg-dark,
html[data-bs-theme="dark"] body.app-default .ribbon .ribbon-label.bg-dark {
    background-color: hsl(220, 14%, 20%) !important;
    color: hsl(210, 20%, 94%) !important;
}

/* ─── Дашборд (челленджи / турниры) — паттерн PropTerminal stat-card ─── */
.prop-dash-page .page-heading {
    color: var(--bs-emphasis-color);
    letter-spacing: -0.02em;
}

.prop-dash-page .text-muted {
    color: var(--pt-text-muted, var(--bs-secondary-color)) !important;
}

/* Плотнее вертикальный ритм на дашбордах (challenge / tournament) */
.prop-dash-page--compact .prop-dash-kpi {
    padding: 0.75rem 0.9rem;
}

.prop-dash-page--compact .prop-stat-card {
    min-height: 0;
    padding: 12px 14px;
}

.prop-dash-page--compact .prop-stat-head {
    margin-bottom: 8px;
}

.prop-stat-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 220px;
    padding: 14px 16px;
    border-radius: 8px;
    border: 1px solid var(--pt-border, var(--bs-border-color));
    background: var(--pt-bg-card, var(--bs-card-bg));
    overflow: hidden;
}

.prop-stat-card::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 2px;
    opacity: 0.85;
    background: linear-gradient(90deg, transparent, var(--pt-accent, var(--bs-primary)), transparent);
}

/* Profit Target / Risk Limits / Challenge Status — только обычный border, без полоски-градиента сверху */
.prop-dash-profit-target-card.prop-stat-card::before,
.prop-dash-risk-limits-card.prop-stat-card::before,
.prop-dash-challenge-card.prop-stat-card::before {
    display: none;
}

.prop-stat-card--cyan {
    --pt-accent: var(--pt-cyan, var(--bs-primary));
}
.prop-stat-card--green {
    --pt-accent: var(--pt-green, var(--bs-success));
}
.prop-stat-card--purple {
    --pt-accent: var(--pt-purple, var(--bs-info));
}

.prop-stat-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 10px;
    gap: 8px;
}

.prop-stat-icon {
    width: 28px;
    height: 28px;
    border-radius: 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 16.25px;
    flex-shrink: 0;
}

.prop-stat-card--cyan .prop-stat-icon {
    background: var(--pt-cyan-dim);
    color: var(--pt-cyan, var(--bs-primary));
}
.prop-stat-card--green .prop-stat-icon {
    background: var(--pt-green-dim);
    color: var(--pt-green, var(--bs-success));
}
.prop-stat-card--purple .prop-stat-icon {
    background: var(--pt-purple-dim);
    color: var(--pt-purple, var(--bs-info));
}

.prop-stat-meta {
    font-size: 12.25px;
    text-align: right;
    color: var(--pt-text-muted, var(--bs-secondary-color));
    line-height: 1.35;
}

.prop-stat-label {
    font-size: 11.625px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--pt-text-dim, var(--pt-text-muted, var(--bs-secondary-color)));
    margin-bottom: 6px;
}

.prop-stat-value {
    font-size: 1.6rem;
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.15;
    color: var(--pt-text, var(--bs-body-color));
}

.prop-stat-value.prop-mono,
.prop-stat-value .prop-mono {
    font-family: var(--bs-font-monospace);
}

.prop-stat-value.fs-xl-1 {
    font-size: 2.04rem !important;
}

.prop-stat-value.fs-xl-2 {
    font-size: 1.6rem !important;
}

.prop-stat-sub {
    margin-top: auto;
    padding-top: 10px;
    border-top: 1px solid var(--pt-border, var(--bs-border-color));
}

.prop-dash-performance-col {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.prop-dash-performance-head {
    flex-shrink: 0;
}

.prop-dash-performance-title-line {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    min-width: 0;
}

.prop-dash-performance-icon {
    display: inline-flex;
    color: var(--pt-text-muted, var(--bs-secondary-color));
    flex-shrink: 0;
}

.prop-dash-performance-heading {
    font-size: 0.95rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--bs-emphasis-color);
    min-width: 0;
}

.prop-dash-performance-sub {
    font-size: 0.72rem;
    line-height: 1.4;
    max-width: 36rem;
}

.prop-dash-performance-pct {
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--pt-text, var(--bs-body-color));
}

.prop-dash-performance-pct.text-success {
    color: var(--pt-green, var(--bs-success)) !important;
}

.prop-dash-performance-pct.text-danger {
    color: var(--pt-red, var(--bs-danger)) !important;
}

.prop-dash-performance-pct-caption {
    font-size: 0.65rem;
    line-height: 1.3;
    margin-top: 0.15rem;
}

.prop-dash-recent-trades-col {
    border-top: 1px solid var(--pt-border, var(--bs-border-color));
}

@media (min-width: 992px) {
    .prop-dash-recent-trades-col {
        border-top: 0;
        border-left: 1px solid var(--pt-border, var(--bs-border-color));
    }
}

.prop-dash-recent-trades-title {
    font-size: 0.95rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--bs-emphasis-color);
}

.prop-dash-recent-trades-list {
    min-height: 120px;
    max-height: 320px;
    overflow-y: auto;
    overflow-x: hidden;
}

.prop-dash-recent-trades-empty {
    padding: 0.5rem 0;
}

.prop-dash-recent-trade-item {
    background: var(--pt-bg-muted, var(--bs-gray-100));
    border: 1px solid var(--pt-border, var(--bs-border-color));
    border-radius: 6px;
    padding: 0.65rem 0.75rem;
    margin-bottom: 0.45rem;
}

.prop-dash-recent-trade-item:last-child {
    margin-bottom: 0;
}

.prop-dash-recent-trade-row1 {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.35rem;
    margin-bottom: 0.35rem;
}

.prop-dash-recent-trade-symbol {
    font-size: 0.8125rem;
    font-weight: 700;
    color: var(--pt-text, var(--bs-body-color));
    display: flex;
    align-items: center;
    gap: 0.35rem;
    min-width: 0;
}

.prop-dash-recent-trade-badge {
    font-size: 0.5625rem;
    font-weight: 700;
    padding: 0.125rem 0.35rem;
    border-radius: 3px;
    flex-shrink: 0;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.prop-dash-recent-trade-badge--long {
    background: var(--pt-green-dim, rgba(80, 205, 137, 0.15));
    color: var(--pt-green, var(--bs-success));
}

.prop-dash-recent-trade-badge--short {
    background: var(--pt-red-soft, rgba(241, 65, 108, 0.14));
    color: var(--pt-red, var(--bs-danger));
}

.prop-dash-recent-trade-pnl {
    font-size: 0.8125rem;
    font-weight: 700;
    font-family: var(--bs-font-monospace);
    flex-shrink: 0;
}

.prop-dash-recent-trade-pnl--pos {
    color: var(--pt-green, var(--bs-success));
}

.prop-dash-recent-trade-pnl--neg {
    color: var(--pt-red, var(--bs-danger));
}

.prop-dash-recent-trade-row2 {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.35rem;
    font-size: 0.6875rem;
    color: var(--pt-text-muted, var(--bs-secondary-color));
    font-family: var(--bs-font-monospace);
}

/* Виджет Top Players на турнирном дашборде (колонки как ref lb-table) */
.prop-dash-tournament-lb-title {
    font-size: 0.95rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--bs-emphasis-color);
}

.prop-dash-tournament-lb-scroll {
    min-height: 120px;
    max-height: 340px;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}

/* Top Players / Leaderboard: список карточек (без таблицы) */
.prop-lb-player-list,
.prop-lb-awards-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.5rem 0.65rem;
}

.prop-lb-player-card {
    border: 1px solid color-mix(in srgb, var(--pt-border, var(--bs-border-color)) 55%, transparent);
    border-radius: 8px;
    background: var(--pt-bg-card, var(--bs-body-bg));
    padding: 0.55rem 0.65rem;
}

.prop-lb-player-card--me {
    border-color: color-mix(in srgb, var(--bs-primary) 45%, var(--pt-border, var(--bs-border-color)));
    background: color-mix(in srgb, var(--bs-primary) 6%, var(--pt-bg-card, var(--bs-body-bg)));
    border-left: 2px solid var(--pt-cyan, var(--bs-primary));
}

.prop-lb-player-card__row1 {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.4rem;
}

.prop-lb-player-card__lead {
    display: flex;
    align-items: flex-start;
    gap: 0.4rem;
    min-width: 0;
    flex: 1;
}

.prop-lb-player-card__rank {
    flex-shrink: 0;
}

.prop-lb-player-card__trader {
    min-width: 0;
    flex: 1;
}

.prop-lb-player-card__trader .lb-trader-cell {
    min-width: 0;
}

.prop-lb-player-card__pnl {
    flex-shrink: 0;
    font-size: 0.8125rem;
    line-height: 1.2;
    text-align: right;
}

.prop-lb-player-card__row2 {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
    font-size: 0.7rem;
}

.prop-lb-player-card__bal {
    font-weight: 600;
}

.prop-lb-player-card__prize {
    margin-left: auto;
    flex-shrink: 0;
}

.prop-lb-player-card__row3 {
    margin-top: 0.35rem;
    font-size: 0.65rem;
    color: var(--pt-text-muted, var(--bs-secondary-color));
    text-align: center;
}

.prop-lb-player-card__sep {
    opacity: 0.7;
}

/* Awards топ-3: карточки */
.prop-lb-award-card {
    border: 1px solid color-mix(in srgb, var(--pt-border, var(--bs-border-color)) 55%, transparent);
    border-radius: 8px;
    background: var(--pt-bg-card, var(--bs-body-bg));
    padding: 0.5rem 0.6rem;
}

.prop-lb-award-card--me {
    border-color: color-mix(in srgb, var(--bs-primary) 45%, var(--pt-border, var(--bs-border-color)));
    background: color-mix(in srgb, var(--bs-primary) 6%, var(--pt-bg-card, var(--bs-body-bg)));
    border-left: 2px solid var(--pt-cyan, var(--bs-primary));
}

.prop-lb-award-card__row1 {
    display: flex;
    align-items: flex-start;
    gap: 0.4rem;
    margin-bottom: 0.35rem;
    min-width: 0;
}

.prop-lb-award-card__place {
    flex-shrink: 0;
}

.prop-lb-award-card__trader {
    min-width: 0;
    flex: 1;
}

.prop-lb-award-card__trader .lb-trader-cell {
    min-width: 0;
}

.prop-lb-award-card__row2 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    flex-wrap: wrap;
    font-size: 0.75rem;
}

/* Таблицы lb на странице Leaderboard */
.prop-lb-page-lb-scroll {
    max-height: min(60vh, 520px);
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}

.prop-lb-page-lb-scroll--awards {
    max-height: min(40vh, 320px);
}

/* Карточка турнира под селектом на странице Leaderboard — как prop-dash-chart / блоки дашборда */
body.app-default .prop-lb-tournament-card.card {
    background-color: var(--pt-bg-card) !important;
    border-color: color-mix(in srgb, var(--pt-border) 38%, transparent) !important;
}

body.app-default .prop-lb-tournament-card > .prop-lb-tournament-card__head.card-header {
    background-color: var(--pt-bg-card) !important;
    border-bottom: 1px solid color-mix(in srgb, var(--pt-border) 38%, transparent) !important;
    padding: 0.75rem 1rem 0.65rem !important;
    min-height: 0 !important;
    align-items: center !important;
}

/* Статус в шапке чуть крупнее, чем в таблице */
.prop-lb-tournament-card__head .lb-status-badge {
    font-size: 0.65rem !important;
    padding: 0.2rem 0.5rem !important;
}

@media (min-width: 992px) {
    body.app-default .prop-lb-tournament-card > .prop-lb-tournament-card__head.card-header {
        padding: 0.9rem 1.3rem 0.8rem !important;
    }
}

body.app-default .prop-lb-tournament-card .prop-lb-tournament-card__body.card-body {
    padding: 0.85rem 1rem 1rem !important;
}

@media (min-width: 992px) {
    body.app-default .prop-lb-tournament-card .prop-lb-tournament-card__body.card-body {
        padding: 0.9rem 1.3rem 1.15rem !important;
    }
}

.prop-lb-tourney-kv {
    background: var(--pt-bg-muted, var(--bs-secondary-bg));
    border: 1px solid var(--pt-border, var(--bs-border-color));
    border-radius: 6px;
    padding: 0.45rem 0.55rem;
}

.prop-lb-tourney-kv-label {
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--pt-text-muted, var(--bs-secondary-color));
    margin-bottom: 0.2rem;
}

.prop-lb-tourney-kv-val {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--pt-text, var(--bs-body-color));
}

.prop-lb-tourney-countdown {
    background: var(--pt-bg-muted, var(--bs-secondary-bg));
    border: 1px solid var(--pt-border, var(--bs-border-color));
    border-radius: 6px;
    padding: 0.55rem 0.45rem;
    min-height: 5rem;
}

.prop-lb-tournament-card .tournament-countdown .countdown-period {
    color: var(--pt-text-muted, var(--bs-secondary-color)) !important;
}

.prop-lb-tournament-card .tournament-countdown .countdown-amount {
    color: var(--pt-cyan, var(--bs-primary)) !important;
}

.prop-lb-tourney-highlight {
    text-align: center;
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.2;
    padding: 0.55rem 0.45rem;
    background: var(--pt-bg-muted, var(--bs-secondary-bg));
    border: 1px solid var(--pt-border, var(--bs-border-color));
    border-radius: 6px;
    color: var(--pt-text, var(--bs-body-color));
}

.prop-lb-tourney-highlight--prize {
    color: var(--pt-cyan, var(--bs-primary));
}

.prop-lb-tournament-card__rules {
    margin-top: 0.9rem;
    padding-top: 0.9rem;
    border-top: 1px solid color-mix(in srgb, var(--pt-border) 38%, transparent);
}

.prop-lb-tournament-card__rules-title {
    font-size: 0.95rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--bs-emphasis-color);
    margin-bottom: 0.5rem;
}

.prop-lb-rule-list {
    border: 1px solid var(--pt-border, var(--bs-border-color));
    border-radius: 6px;
    overflow: hidden;
}

.prop-lb-rule-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
    padding: 0.45rem 0.6rem;
    font-size: 0.8125rem;
    border-bottom: 1px solid var(--pt-border, var(--bs-border-color));
}

.prop-lb-rule-row:last-child {
    border-bottom: none;
}

.prop-lb-rule-row:nth-child(odd) {
    background: hsla(220, 14%, 50%, 0.07);
}

.prop-lb-rule-key {
    color: var(--pt-text-muted, var(--bs-secondary-color));
}

.prop-lb-rule-key a {
    color: inherit;
}

.prop-lb-rule-val {
    font-weight: 700;
    color: var(--pt-text, var(--bs-body-color));
    text-align: right;
}

.prop-lb-paid-chip .badge {
    font-size: 0.7rem;
}

/* Details/overlay убраны — показываем правила сразу */
.tournament-detail-block { display: none !important; }

.prop-lb-tournament-card__actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    margin-top: 0.85rem;
}


.prop-dash-tournament-lb .lb-table,
.prop-lb-top-players .lb-table,
.prop-lb-awards .lb-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.75rem;
}

.prop-dash-tournament-lb .lb-table th,
.prop-lb-top-players .lb-table th,
.prop-lb-awards .lb-table th {
    text-align: left;
    padding: 0.45rem 0.5rem;
    font-size: 0.6rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--pt-text-muted, var(--bs-secondary-color));
    border-bottom: 1px solid var(--pt-border, var(--bs-border-color));
    background: var(--pt-bg-muted, var(--bs-secondary-bg));
    white-space: nowrap;
}

.prop-dash-tournament-lb .prop-dash-tournament-lb-th-rank,
.prop-lb-top-players .prop-lb-th-rank,
.prop-lb-awards .prop-lb-th-rank {
    width: 2.75rem;
}

.prop-dash-tournament-lb .lb-table td,
.prop-lb-top-players .lb-table td,
.prop-lb-awards .lb-table td {
    padding: 0.5rem 0.5rem;
    border-bottom: 1px solid var(--pt-border, var(--bs-border-color));
    vertical-align: middle;
}

.prop-dash-tournament-lb .lb-table tr:last-child td,
.prop-lb-top-players .lb-table tr:last-child td,
.prop-lb-awards .lb-table tr:last-child td {
    border-bottom: none;
}

.prop-dash-tournament-lb .lb-table tbody tr:hover td,
.prop-lb-top-players .lb-table tbody tr:hover td,
.prop-lb-awards .lb-table tbody tr:hover td {
    background: var(--pt-cyan-row, hsla(186, 100%, 42%, 0.06));
}

.prop-dash-tournament-lb .lb-table tr.is-me td,
.prop-lb-top-players .lb-table tr.is-me td,
.prop-lb-awards .lb-table tr.is-me td {
    background: var(--pt-cyan-tint, hsla(186, 100%, 42%, 0.07));
}

.prop-dash-tournament-lb .lb-table tr.is-me td:first-child,
.prop-lb-top-players .lb-table tr.is-me td:first-child,
.prop-lb-awards .lb-table tr.is-me td:first-child {
    border-left: 2px solid var(--pt-cyan, var(--bs-primary));
}

.prop-dash-tournament-lb .rank-badge,
.prop-lb-top-players .rank-badge,
.prop-lb-awards .rank-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.625rem;
    height: 1.625rem;
    padding: 0 0.2rem;
    border-radius: 6px;
    font-size: 0.6875rem;
    font-weight: 700;
    font-family: var(--bs-font-monospace);
}

.prop-dash-tournament-lb .rank-badge.gold,
.prop-lb-top-players .rank-badge.gold,
.prop-lb-awards .rank-badge.gold {
    background: var(--pt-yellow-dim, hsla(38, 90%, 58%, 0.12));
    color: var(--pt-yellow, var(--bs-warning));
    border: 1px solid var(--pt-yellow-border, hsla(38, 90%, 58%, 0.25));
}

.prop-dash-tournament-lb .rank-badge.silver,
.prop-lb-top-players .rank-badge.silver,
.prop-lb-awards .rank-badge.silver {
    background: hsla(215, 15%, 50%, 0.18);
    color: hsl(215, 12%, 72%);
    border: 1px solid hsla(215, 12%, 45%, 0.35);
}

.prop-dash-tournament-lb .rank-badge.bronze,
.prop-lb-top-players .rank-badge.bronze,
.prop-lb-awards .rank-badge.bronze {
    background: hsla(20, 55%, 45%, 0.2);
    color: hsl(20, 60%, 58%);
    border: 1px solid hsla(20, 55%, 40%, 0.35);
}

.prop-dash-tournament-lb .rank-badge.default,
.prop-lb-top-players .rank-badge.default,
.prop-lb-awards .rank-badge.default {
    background: var(--pt-bg-muted, var(--bs-secondary-bg));
    color: var(--pt-text-muted, var(--bs-secondary-color));
    border: 1px solid var(--pt-border, var(--bs-border-color));
}

.prop-dash-tournament-lb .rank-badge.me,
.prop-lb-top-players .rank-badge.me,
.prop-lb-awards .rank-badge.me {
    background: var(--pt-cyan-dim, hsla(186, 100%, 42%, 0.15));
    color: var(--pt-cyan, var(--bs-primary));
    border: 1px solid var(--pt-cyan-border, hsla(186, 100%, 42%, 0.25));
}

.prop-dash-tournament-lb .lb-trader-cell,
.prop-lb-top-players .lb-trader-cell,
.prop-lb-awards .lb-trader-cell {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    min-width: 0;
}

.prop-dash-tournament-lb .lb-avatar,
.prop-lb-top-players .lb-avatar,
.prop-lb-awards .lb-avatar {
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.6875rem;
    font-weight: 700;
    flex-shrink: 0;
}

.prop-dash-tournament-lb .lb-avatar.me,
.prop-lb-top-players .lb-avatar.me,
.prop-lb-awards .lb-avatar.me {
    background: var(--pt-cyan-dim, hsla(186, 100%, 42%, 0.15));
    color: var(--pt-cyan, var(--bs-primary));
    border: 1px solid var(--pt-cyan-border, hsla(186, 100%, 42%, 0.25));
}

.prop-dash-tournament-lb .lb-avatar.other,
.prop-lb-top-players .lb-avatar.other,
.prop-lb-awards .lb-avatar.other {
    background: var(--pt-bg-muted, var(--bs-secondary-bg));
    color: var(--pt-text-muted, var(--bs-secondary-color));
    border: 1px solid var(--pt-border, var(--bs-border-color));
}

.prop-dash-tournament-lb .lb-trader-name,
.prop-lb-top-players .lb-trader-name,
.prop-lb-awards .lb-trader-name {
    font-weight: 600;
    color: var(--pt-text, var(--bs-body-color));
    font-size: 0.78rem;
    line-height: 1.25;
    word-break: break-word;
}

.prop-dash-tournament-lb .lb-trader-name.me,
.prop-lb-top-players .lb-trader-name.me,
.prop-lb-awards .lb-trader-name.me {
    color: var(--pt-cyan, var(--bs-primary));
}

.prop-dash-tournament-lb .lb-trader-id,
.prop-lb-top-players .lb-trader-id,
.prop-lb-awards .lb-trader-id {
    font-size: 0.625rem;
    color: var(--pt-text-dim, var(--bs-secondary-color));
    font-family: var(--bs-font-monospace);
    word-break: break-all;
}

.prop-dash-tournament-lb .lb-you-chip,
.prop-lb-top-players .lb-you-chip,
.prop-lb-awards .lb-you-chip {
    font-size: 0.5625rem;
    font-weight: 700;
    padding: 0.1rem 0.35rem;
    border-radius: 3px;
    background: var(--pt-cyan-dim, hsla(186, 100%, 42%, 0.15));
    color: var(--pt-cyan, var(--bs-primary));
    border: 1px solid var(--pt-cyan-border, hsla(186, 100%, 42%, 0.25));
    margin-left: 0.25rem;
    vertical-align: middle;
    white-space: nowrap;
}

.prop-dash-tournament-lb .lb-status-badge,
.prop-lb-top-players .lb-status-badge,
.prop-lb-awards .lb-status-badge,
.prop-lb-tournament-card .lb-status-badge {
    font-size: 0.6rem;
    font-weight: 700;
    padding: 0.15rem 0.45rem;
    border-radius: 3px;
    white-space: nowrap;
}

.prop-dash-tournament-lb .lb-status-badge.active,
.prop-lb-top-players .lb-status-badge.active,
.prop-lb-awards .lb-status-badge.active,
.prop-lb-tournament-card .lb-status-badge.active {
    background: var(--pt-green-dim, hsla(145, 65%, 50%, 0.12));
    color: var(--pt-green, var(--bs-success));
}

.prop-dash-tournament-lb .lb-status-badge.upcoming,
.prop-lb-top-players .lb-status-badge.upcoming,
.prop-lb-awards .lb-status-badge.upcoming,
.prop-lb-tournament-card .lb-status-badge.upcoming {
    background: var(--pt-yellow-dim, hsla(38, 90%, 58%, 0.12));
    color: var(--pt-yellow, var(--bs-warning));
}

.prop-dash-tournament-lb .lb-status-badge.breached,
.prop-lb-top-players .lb-status-badge.breached,
.prop-lb-awards .lb-status-badge.breached,
.prop-lb-tournament-card .lb-status-badge.breached {
    background: var(--pt-red-dim, hsla(0, 80%, 55%, 0.12));
    color: var(--pt-red, var(--bs-danger));
}

.prop-dash-tournament-lb .lb-status-badge.finished,
.prop-lb-top-players .lb-status-badge.finished,
.prop-lb-awards .lb-status-badge.finished,
.prop-lb-tournament-card .lb-status-badge.finished {
    background: hsla(215, 10%, 55%, 0.12);
    color: var(--pt-text-muted, var(--bs-secondary-color));
}

.prop-dash-tournament-lb .prop-lb-mono,
.prop-lb-top-players .prop-lb-mono,
.prop-lb-awards .prop-lb-mono,
.prop-dash-tournament-lb .prop-dash-tournament-lb-mono {
    font-family: var(--bs-font-monospace);
    font-size: 0.7rem;
    color: var(--pt-text, var(--bs-body-color));
}

.prop-dash-tournament-lb .prop-lb-mono-muted,
.prop-lb-top-players .prop-lb-mono-muted,
.prop-lb-awards .prop-lb-mono-muted,
.prop-dash-tournament-lb .prop-dash-tournament-lb-mono-muted {
    font-family: var(--bs-font-monospace);
    font-size: 0.7rem;
    color: var(--pt-text-muted, var(--bs-secondary-color));
}

.prop-dash-tournament-lb .prize-badge,
.prop-lb-top-players .prize-badge,
.prop-lb-awards .prize-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.6875rem;
    font-weight: 700;
    font-family: var(--bs-font-monospace);
}

.prop-dash-tournament-lb .prize-badge.gold,
.prop-lb-top-players .prize-badge.gold,
.prop-lb-awards .prize-badge.gold {
    color: var(--pt-yellow, var(--bs-warning));
}

.prop-dash-tournament-lb .prize-badge.silver,
.prop-lb-top-players .prize-badge.silver,
.prop-lb-awards .prize-badge.silver {
    color: hsl(215, 12%, 70%);
}

.prop-dash-tournament-lb .prize-badge.bronze,
.prop-lb-top-players .prize-badge.bronze,
.prop-lb-awards .prize-badge.bronze {
    color: hsl(20, 60%, 55%);
}

.prop-dash-tournament-lb-viewall {
    font-size: 0.6875rem;
    text-decoration: none;
}

.prop-dash-tournament-lb-viewall:hover {
    text-decoration: underline;
}

/* Sidebar: виджет текущего аккаунта (как prop-terminal-standalone: карточка + Account/LIVE + имя + #id + статус) */
.prop-sidebar-account-widget {
    flex-shrink: 0;
    padding-top: 0.75rem;
}

/* Кнопка Trade: ниже по высоте, btn-light-primary из темы */
.prop-sidebar-challenge-actions .prop-sidebar-trade-btn {
    --bs-btn-padding-y: 0.3rem;
    --bs-btn-padding-x: 0.65rem;
    font-size: 0.8125rem;
    line-height: 1.25;
    min-height: 0;
    position: relative;
    overflow: hidden;
}

/* Блик по кнопке раз в ~7 с */
.prop-sidebar-challenge-actions .prop-sidebar-trade-btn::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background: linear-gradient(
        100deg,
        transparent 0%,
        transparent 35%,
        rgba(255, 255, 255, 0.24) 50%,
        transparent 65%,
        transparent 100%
    );
    transform: translateX(-120%);
    animation: prop-sidebar-trade-shine 7s ease-in-out infinite;
}

@keyframes prop-sidebar-trade-shine {
    0%,
    82%,
    100% {
        transform: translateX(-120%);
        opacity: 0;
    }
    84% {
        opacity: 0.85;
    }
    90% {
        transform: translateX(120%);
        opacity: 0.55;
    }
    92% {
        opacity: 0;
    }
}

[data-bs-theme="dark"] .prop-sidebar-challenge-actions .prop-sidebar-trade-btn::before {
    background: linear-gradient(
        100deg,
        transparent 0%,
        transparent 35%,
        rgba(255, 255, 255, 0.18) 50%,
        transparent 65%,
        transparent 100%
    );
}

@media (prefers-reduced-motion: reduce) {
    .prop-sidebar-challenge-actions .prop-sidebar-trade-btn::before {
        animation: none;
        opacity: 0;
    }
}

.prop-sidebar-account-hint {
    font-size: 10px;
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--bs-gray-500, #a1a5b7);
    margin: 0 2px 10px;
}

[data-bs-theme="dark"] .prop-sidebar-account-hint {
    color: hsl(215, 10%, 58%);
}

.prop-sidebar-account-hint + .prop-sidebar-account-pane {
    margin-top: 6px;
}

.prop-sidebar-account-pane {
    margin: 12px 2px 8px;
    padding: 10px 12px;
    background-color: var(--bs-gray-100, #f5f8fa);
    border: 1px solid var(--bs-border-color, #eff2f5);
    border-radius: 8px;
    transition:
        background-color 0.18s ease,
        border-color 0.18s ease,
        box-shadow 0.18s ease;
}

.prop-sidebar-account-pane:hover {
    border-color: var(--pt-cyan-border, rgba(0, 158, 247, 0.45));
    box-shadow: 0 6px 20px rgba(0, 158, 247, 0.1);
    background-color: var(--bs-white, #fff);
}

.prop-sidebar-account-pane:focus-visible {
    outline: 2px solid var(--pt-cyan, var(--bs-primary));
    outline-offset: 2px;
}

[data-bs-theme="dark"] .prop-sidebar-account-pane {
    background-color: hsl(220, 15%, 13%);
    border-color: var(--bs-border-color);
}

[data-bs-theme="dark"] .prop-sidebar-account-pane:hover {
    border-color: var(--pt-cyan-border, hsla(186, 100%, 42%, 0.35));
    background-color: hsl(220, 15%, 16%);
    box-shadow: 0 8px 24px hsla(186, 100%, 42%, 0.12);
}

.prop-sidebar-account-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 6px;
    gap: 8px;
}

.prop-sidebar-account-kicker {
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-weight: 600;
    color: var(--bs-gray-500, #a1a5b7);
}

.prop-sidebar-account-balance {
    flex-shrink: 0;
    max-width: 52%;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.02em;
    padding: 2px 6px;
    border-radius: 3px;
    text-align: right;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.prop-sidebar-account-balance--positive {
    color: var(--bs-success, #50cd89);
    background-color: rgba(80, 205, 137, 0.12);
    border: 1px solid rgba(80, 205, 137, 0.25);
}

.prop-sidebar-account-balance--negative {
    color: var(--bs-danger, #f1416c);
    background-color: rgba(241, 65, 108, 0.12);
    border: 1px solid rgba(241, 65, 108, 0.25);
}

.prop-sidebar-account-balance--neutral {
    color: var(--bs-gray-600, #7e8299);
    background-color: var(--bs-gray-200, #eff2f5);
    border: 1px solid var(--bs-border-color, #e4e6ef);
}

[data-bs-theme="dark"] .prop-sidebar-account-balance--neutral {
    color: var(--bs-gray-500, #a1a5b7);
    background-color: rgba(255, 255, 255, 0.06);
    border-color: var(--bs-border-color);
}

.prop-sidebar-account-name {
    font-size: 12px;
    font-weight: 700;
    line-height: 1.3;
    /* В тёмной теме некоторые контейнеры наследуют “тёмный” цвет текста. */
    color: var(--pt-text, var(--bs-gray-900, #181c32));
}

[data-bs-theme="dark"] .prop-sidebar-account-name {
    color: var(--pt-text, var(--bs-gray-100, #f9f9f9));
}

.prop-sidebar-account-id {
    font-size: 16px;
    line-height: 1.25;
    margin-top: 2px;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    color: var(--bs-gray-600, #7e8299);
}

[data-bs-theme="dark"] .prop-sidebar-account-id {
    color: hsl(210, 14%, 96%);
}

.prop-sidebar-account-status {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-top: 6px;
    font-size: 10px;
    font-weight: 500;
    color: var(--bs-success, #50cd89);
    min-width: 0;
}

.prop-sidebar-account-dot-live {
    flex-shrink: 0;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background-color: var(--bs-success, #50cd89);
    animation: prop-sidebar-dot-live 1.8s ease-in-out infinite;
}

@keyframes prop-sidebar-dot-live {
    0%,
    100% {
        opacity: 1;
    }
    50% {
        opacity: 0.3;
    }
}

.prop-sidebar-account-status-text {
    min-width: 0;
}

.prop-sidebar-account-pane:focus {
    outline: 1px dashed var(--bs-primary);
    outline-offset: 2px;
}

/* Свёрнутый sidebar (Metronic): только имя, короче */
[data-kt-app-sidebar-minimize=on] #prop-sidebar-account-widget {
    padding-left: 0.65rem;
    padding-right: 0.65rem;
    padding-bottom: 0.75rem;
}

[data-kt-app-sidebar-minimize=on] #prop-sidebar-account-widget .prop-sidebar-account-hint,
[data-kt-app-sidebar-minimize=on] #prop-sidebar-account-widget .prop-sidebar-account-row,
[data-kt-app-sidebar-minimize=on] #prop-sidebar-account-widget .prop-sidebar-account-id,
[data-kt-app-sidebar-minimize=on] #prop-sidebar-account-widget .prop-sidebar-account-status {
    display: none;
}

[data-kt-app-sidebar-minimize=on] #prop-sidebar-account-widget .prop-sidebar-account-name {
    font-size: 0.7rem !important;
    line-height: 1.2;
    text-align: center;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}

.prop-modal-accounts-list {
    max-height: min(60vh, 520px);
    overflow-y: auto;
}

.prop-dash-performance-chart-wrap {
    position: relative;
}

.prop-dash-performance-chart-wrap canvas {
    display: block;
    width: 100%;
    height: 100%;
}

.prop-dash-chartjs-tooltip {
    position: absolute;
    z-index: 5;
    pointer-events: none;
    min-width: 118px;
    padding: 8px 10px;
    border-radius: 6px;
    font-size: 0.72rem;
    line-height: 1.35;
    background: var(--pt-bg-card, var(--bs-card-bg));
    border: 1px solid var(--pt-border, var(--bs-border-color));
    box-shadow: var(--bs-box-shadow-sm);
    opacity: 0;
    transition: opacity 0.15s ease;
}

.prop-dash-chartjs-tooltip-label {
    color: var(--pt-text-muted, var(--bs-secondary-color));
    margin-bottom: 4px;
}

.prop-dash-chartjs-tooltip-val {
    font-weight: 700;
    color: var(--pt-cyan, var(--bs-primary));
}

.prop-dash-chartjs-tooltip-pnl {
    font-size: 0.68rem;
    font-weight: 600;
    margin-top: 3px;
}

/* Верхняя панель: (title+дата + аккаунт с gap 20px) | LIVE+Update; при нехватке ширины — перенос без налезания */
.prop-dash-toolbar {
    padding-top: 1.875rem;
    margin-bottom: 1.25rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--pt-border, var(--bs-border-color));
}

.prop-dash-toolbar-head {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 12px 16px;
}

/* Группа заголовок+аккаунт: flex-wrap + min-width:0 снимают переполнение в узкой колонке дашборда */
.prop-dash-toolbar-head-main {
    display: flex;
    flex-flow: row wrap;
    align-items: flex-start;
    column-gap: 20px;
    row-gap: 6px;
    flex: 1 1 0;
    min-width: 0;
}

.prop-dash-toolbar-head-text {
    flex: 0 1 auto;
    min-width: 0;
    max-width: 100%;
}

.prop-dash-toolbar-title {
    font-size: 1.382rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--bs-emphasis-color);
    line-height: 1.2;
}

.prop-dash-toolbar-sub {
    font-size: 0.95rem;
    color: var(--pt-text-muted, var(--bs-secondary-color));
    margin-top: 0.35rem;
}

/* Тулбар обычных страниц (#dashboard): тот же блок, без дублирования kt_app_toolbar */
.prop-dash-toolbar--page .prop-dash-toolbar-head-text .prop-dash-toolbar-title + .prop-dash-toolbar-sub {
    margin-top: 0.35rem;
}

.prop-dash-toolbar--page .prop-dash-toolbar-head-text > .prop-dash-toolbar-datetime:first-child {
    margin-top: 0;
}

.prop-dash-toolbar-title--hero {
    font-size: clamp(1.5rem, 4vw, 2.25rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.15;
}

.prop-dash-toolbar-user {
    flex: 0 1 auto;
    min-width: 0;
    text-align: left;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.prop-dash-toolbar-actions {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 0.65rem;
    flex: 0 0 auto;
    margin-left: auto;
}

@media (max-width: 575.98px) {
    .prop-dash-toolbar-head-main {
        flex: 1 1 100%;
    }

    .prop-dash-toolbar-actions {
        width: 100%;
        margin-left: 0;
        justify-content: flex-end;
    }
}

/* Первая строка — как заголовок тулбара (крупно) */
.prop-dash-toolbar-account-line {
    font-size: 1.382rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--bs-emphasis-color);
    line-height: 1.2;
}

.prop-dash-toolbar-account-line .text-muted {
    margin-right: 0.35rem;
    font-weight: 400;
}

.prop-dash-toolbar-account-line .dash-toolbar-login {
    font-weight: 700;
    color: var(--bs-emphasis-color);
}

/* Вторая строка (имя) — как дата: мелко, приглушённо */
.prop-dash-toolbar-user-name {
    font-size: 0.95rem;
    font-weight: 400;
    letter-spacing: normal;
    color: var(--pt-text-muted, var(--bs-secondary-color));
    line-height: 1.2;
    margin-top: 0.35rem;
}

.prop-dash-live-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.25rem 0.55rem;
    border-radius: 99px;
    font-size: 0.73rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    background: var(--pt-green-dim);
    color: var(--pt-green, var(--bs-success));
    border: 1px solid var(--pt-green-border);
}

.prop-dash-live-dot {
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--pt-green, var(--bs-success));
    animation: prop-dash-live-pulse 1.8s ease-in-out infinite;
}

/* KPI ряд: Account Balance, Total P&L, Today's P&L, Win Rate */
.prop-dash-kpi {
    position: relative;
    padding: 1rem 1.1rem;
    border-radius: 8px;
    border: 1px solid var(--pt-border, var(--bs-border-color));
    background: var(--pt-bg-card, var(--bs-card-bg));
}

.prop-dash-kpi--highlight::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 2px;
    border-radius: 8px 8px 0 0;
    background: linear-gradient(90deg, transparent, var(--pt-cyan, var(--bs-primary)), transparent);
    pointer-events: none;
}

.prop-dash-kpi-label {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.5rem;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--pt-text-dim, var(--pt-text-muted, var(--bs-secondary-color)));
    margin-bottom: 0.5rem;
}

.prop-dash-kpi-icn {
    width: 26px;
    height: 26px;
    border-radius: 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    flex-shrink: 0;
}

.prop-dash-kpi-icn--cyan {
    background: var(--pt-cyan-mist);
    color: var(--pt-cyan, var(--bs-primary));
}

.prop-dash-kpi-icn--green {
    background: var(--pt-green-dim);
    color: var(--pt-green, var(--bs-success));
}

.prop-dash-kpi-icn--yellow {
    background: var(--pt-yellow-soft);
    color: var(--pt-yellow, var(--bs-warning));
}

.prop-dash-kpi-value {
    font-size: 1.6rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.15;
}

.prop-dash-kpi-row2 {
    display: flex;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: 0.35rem 0.5rem;
    margin-bottom: 0.25rem;
}

.prop-dash-kpi-delta {
    font-weight: 600;
    font-size: 0.875rem;
    line-height: 1.2;
}

.prop-dash-kpi-sub {
    font-size: 0.8rem;
    line-height: 1.35;
    margin-top: 0.15rem;
}

@keyframes prop-dash-live-pulse {
    0%,
    100% {
        opacity: 1;
    }
    50% {
        opacity: 0.35;
    }
}

/* Profit Target — линейный прогресс (как в макете терминала) */
.prop-dash-profit-target-card {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.prop-dash-pt-head {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-bottom: 0.65rem;
}

.prop-dash-pt-title {
    font-size: 0.95rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--pt-text-dim, var(--bs-secondary-color));
    flex: 1 1 auto;
    min-width: 0;
}

.prop-dash-pt-badge {
    margin-left: auto;
    font-size: 0.73rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    padding: 0.2rem 0.45rem;
    border-radius: 99px;
    background: var(--pt-cyan-mist);
    color: var(--pt-cyan, var(--bs-primary));
    border: 1px solid var(--pt-cyan-border);
}

.prop-dash-pt-amounts {
    display: flex;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: 0.25rem 0.35rem;
    margin-bottom: 0.5rem;
}

.prop-dash-pt-current {
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--pt-green, var(--bs-success));
    line-height: 1.1;
}

.prop-dash-pt-current.prop-dash-pt-current--loss {
    color: var(--pt-red, var(--bs-danger));
}

.prop-dash-pt-slash {
    font-size: 1.02rem;
    margin-bottom: 0.15rem;
}

.prop-dash-pt-goal {
    font-size: 1.02rem;
    margin-bottom: 0.15rem;
}

.prop-dash-pt-track {
    height: 5px;
    border-radius: 99px;
    background: var(--pt-bg-muted, hsl(220, 14%, 18%));
    overflow: hidden;
    margin-bottom: 0.45rem;
}

.prop-dash-pt-fill {
    height: 100%;
    border-radius: 99px;
    background: var(--pt-cyan, var(--bs-primary));
    transition: width 0.6s ease;
}

.prop-dash-pt-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.5rem;
    font-size: 0.8rem;
    line-height: 1.35;
}

.prop-dash-pt-remaining {
    min-width: 0;
}

.prop-dash-pt-rule {
    flex-shrink: 0;
    text-align: right;
}

/* Risk Limits — дневной лимит и общий max loss (формулы как в TXT_MAX_*_LOSS_CALC) */
.prop-dash-risk-limits-card {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.prop-dash-risk-head {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.65rem;
}

.prop-dash-risk-title {
    font-size: 0.95rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--pt-text-dim, var(--bs-secondary-color));
    flex: 1;
    min-width: 0;
}

.prop-dash-risk-block {
    margin-bottom: 0.85rem;
}

.prop-dash-risk-block:last-child {
    margin-bottom: 0;
}

.prop-dash-risk-bar-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.35rem;
}

.prop-dash-risk-label {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--pt-text, var(--bs-body-color));
    line-height: 1.3;
}

.prop-dash-risk-values {
    font-size: 0.72rem;
    text-align: right;
    line-height: 1.35;
}

.prop-dash-risk-values .prop-dash-risk-used {
    color: var(--pt-green, var(--bs-success));
    font-weight: 600;
}

.prop-dash-risk-values .prop-dash-risk-used--warn {
    color: var(--pt-yellow, var(--bs-warning));
}

.prop-dash-risk-values .prop-dash-risk-used--danger {
    color: var(--pt-red, var(--bs-danger));
    font-weight: 700;
}

.prop-dash-risk-track {
    height: 5px;
    border-radius: 99px;
    background: var(--pt-bg-muted, hsl(220, 14%, 18%));
    overflow: hidden;
    margin-bottom: 0.35rem;
}

.prop-dash-risk-fill {
    height: 100%;
    border-radius: 99px;
    background: var(--pt-green, var(--bs-success));
    transition:
        width 0.6s ease,
        background-color 0.2s ease;
    max-width: 100%;
}

.prop-dash-risk-fill--warn {
    background: linear-gradient(90deg, var(--pt-green, #50cd89), var(--pt-yellow, #ffc700));
}

.prop-dash-risk-fill--danger {
    background: var(--pt-red, var(--bs-danger));
}

.prop-dash-risk-foot {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.35rem;
    font-size: 0.72rem;
    line-height: 1.35;
}

.prop-dash-risk-foot span {
    min-width: 0;
}

/* Challenge Status — один блок вместо календаря + trading days + отдельного daily reset */
.prop-dash-challenge-card {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.prop-dash-challenge-head {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

.prop-dash-challenge-title {
    font-size: 0.95rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--pt-text-dim, var(--bs-secondary-color));
}

.prop-dash-challenge-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
    margin-bottom: 0.65rem;
}

.prop-dash-challenge-grid--3 {
    grid-template-columns: 1fr 1fr 1fr;
}

@media (max-width: 575.98px) {
    .prop-dash-challenge-grid--3 {
        grid-template-columns: 1fr;
    }
}

.prop-dash-challenge-cell {
    text-align: center;
    padding: 0.5rem 0.35rem;
    border-radius: 6px;
    background: var(--pt-bg-muted, var(--bs-secondary-bg));
    border: 1px solid var(--pt-border, var(--bs-border-color));
}

.prop-dash-challenge-value {
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.2;
}

.prop-dash-challenge-value--cyan {
    color: var(--pt-cyan, var(--bs-primary));
}

.prop-dash-challenge-value--yellow {
    color: var(--pt-yellow, var(--bs-warning));
}

.prop-dash-challenge-lbl {
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 600;
    color: var(--pt-text-dim, var(--bs-secondary-color));
    margin-top: 0.2rem;
}

.prop-dash-challenge-period {
    font-size: 0.8rem;
    margin-bottom: 0.35rem;
    line-height: 1.35;
    text-align: center;
}

.prop-dash-challenge-progress-track {
    height: 5px;
    border-radius: 99px;
    background: var(--pt-bg-muted, hsl(220, 14%, 18%));
    overflow: hidden;
    margin-bottom: 0.75rem;
}

.prop-dash-challenge-progress-fill {
    height: 100%;
    border-radius: 99px;
    background: linear-gradient(90deg, var(--pt-green, #2ed678), var(--pt-cyan, var(--bs-primary)));
    transition: width 0.6s ease;
}

.prop-dash-challenge-reset {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 0.3125rem;
    margin-top: auto;
    padding-top: 0.5rem;
    border-top: 1px solid var(--pt-border, var(--bs-border-color));
    justify-content: flex-start;
    text-align: left;
    font-size: 0.8rem;
    line-height: 1.35;
    color: var(--pt-text-muted, var(--bs-secondary-color));
}

.prop-dash-challenge-reset-icon {
    flex-shrink: 0;
    font-size: 0.875rem;
    opacity: 0.9;
}

.prop-dash-challenge-reset-label {
    flex-shrink: 0;
}

.prop-dash-challenge-reset-time {
    font-size: 0.8rem;
    font-weight: 500;
    font-variant-numeric: tabular-nums lining-nums;
    color: var(--bs-emphasis-color);
}

/* Список аккаунтов на дашборде — активное состояние под токены */
.prop-dashboard-content .notice.selected-dashboard-account.bg-light-primary,
.prop-dashboard-content .notice.selected-dashboard-tournament.bg-light-primary {
    background-color: var(--pt-cyan-mist) !important;
    border-color: var(--pt-cyan, var(--bs-primary)) !important;
}

[data-bs-theme="light"] .prop-dashboard-content .notice.selected-dashboard-account.bg-light-primary,
[data-bs-theme="light"] .prop-dashboard-content .notice.selected-dashboard-tournament.bg-light-primary {
    background-color: var(--pt-cyan-mist) !important;
}

/* Фаза B.2: список аккаунтов в сайдбаре дашборда */
.prop-dashboard-content .my-accounts-list .notice {
    border-radius: 8px;
    border-style: solid !important;
    border-color: var(--pt-border, var(--bs-border-color)) !important;
    background-color: var(--pt-bg-card, var(--bs-card-bg));
    transition:
        border-color 0.15s ease,
        background-color 0.15s ease,
        box-shadow 0.15s ease;
}

.prop-dashboard-content .my-accounts-list .notice.border-secondary:hover {
    border-color: var(--pt-cyan, var(--bs-primary)) !important;
    background-color: var(--pt-bg-muted, var(--bs-secondary-bg));
    box-shadow: 0 0 0 1px var(--pt-cyan-mist);
}

.prop-dashboard-content .my-accounts-list .notice .text-gray-900 {
    color: var(--bs-emphasis-color) !important;
}

.prop-dashboard-content .my-accounts-list .notice .text-gray-800 {
    color: var(--bs-emphasis-color) !important;
}

.prop-dashboard-content .my-accounts-list .notice .text-gray-700 {
    color: var(--pt-text-muted, var(--bs-secondary-color)) !important;
}

.prop-dashboard-content .my-accounts-list .notice .badge.fs-6 {
    font-family: var(--bs-font-monospace);
    font-variant-numeric: tabular-nums;
}

/* Таблица «следующие выплаты» на дашборде */
.prop-dashboard-content #dashboard-payout thead td {
    color: var(--pt-text-dim, var(--pt-text-muted, var(--bs-secondary-color))) !important;
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    border-bottom-color: var(--pt-border, var(--bs-border-color)) !important;
    padding-top: 0.35rem;
    padding-bottom: 0.5rem;
}

.prop-dashboard-content #dashboard-payout.table-row-dashed tbody tr {
    border-bottom-color: var(--pt-border, var(--bs-border-color));
}

.prop-dashboard-content #dashboard-payout tbody tr:hover td {
    background-color: var(--pt-cyan-row);
}

[data-bs-theme="light"] .prop-dashboard-content #dashboard-payout tbody tr:hover td {
    background-color: var(--pt-cyan-tint);
}

.prop-dashboard-content .col-xxl-3 h4.mb-4 {
    color: var(--bs-emphasis-color);
    font-weight: 600;
    letter-spacing: -0.02em;
}

.prop-dashboard-content .card-header .card-label.text-gray-800,
.prop-dashboard-content .card-header .prop-dash-performance-heading {
    color: var(--bs-emphasis-color) !important;
}

/* Турниры: раскрытие карточки — акцент из палитры, фон под тему */
.tournament-detail-block {
    display: none;
    bottom: -230px;
    left: -1px;
    width: calc(100% + 2px);
    box-shadow: 0 0.35rem 1rem hsla(220, 20%, 4%, 0.25);
    z-index: 2;
    background-color: var(--pt-bg-card, var(--bs-card-bg)) !important;
}

[data-bs-theme="light"] .tournament-detail-block {
    box-shadow: 0 0.4rem 1.25rem hsla(220, 16%, 40%, 0.12);
}
.tournament-detail-block.active {
    display: block;
    border-left: 1px solid var(--pt-yellow, var(--bs-warning)) !important;
    border-right: 1px solid var(--pt-yellow, var(--bs-warning)) !important;
    border-bottom: 1px solid var(--pt-yellow, var(--bs-warning)) !important;
}
.tournament-block.active {
    display: block;
    border-left: 1px solid var(--pt-yellow, var(--bs-warning)) !important;
    border-right: 1px solid var(--pt-yellow, var(--bs-warning)) !important;
    border-top: 1px solid var(--pt-yellow, var(--bs-warning)) !important;
}

.tournament-countdown {text-align: center}
.tournament-countdown .countdown-section {

}
.tournament-countdown .countdown-period {
    display: block;
}
.tournament-countdown .countdown-amount {
    font-size: 200%;
}

/* C.9: логин / регистрация — OAuth (Google), light+dark через токены (без Material hex в PHP) */
.login-options {
    display: flex;
    flex-direction: column;
    max-width: 300px;
    margin: 15px auto;
}

.login-btn {
    padding: 6px 12px;
    border: 1px solid var(--pt-border);
    border-radius: 4px;
    text-align: left;
    cursor: pointer;
    background-color: var(--pt-bg-card);
    font-family: var(--bs-font-sans-serif);
    font-size: 14px;
    color: var(--pt-text);
    display: flex;
    align-items: center;
    box-shadow: var(--bs-box-shadow-sm);
    transition:
        box-shadow 0.2s ease,
        background-color 0.2s ease;
}

.login-btn:hover {
    box-shadow: var(--bs-box-shadow);
    background-color: var(--pt-bg-muted);
}

.google-btn {
    background-color: var(--pt-bg-card);
    color: var(--pt-text);
}

.google-btn::before {
    content: url("https://www.google.com/favicon.ico");
    margin-right: 10px;
    vertical-align: middle;
}

/* Metronic: «тёмно-зелёная» CTA — на палитру PropTerminal (не #2e8857 / --kt-success) */
.btn.btn-success-dark {
    background-color: var(--bs-success);
    border-color: var(--bs-success);
}

[data-bs-theme="light"] .btn.btn-success-dark,
[data-bs-theme="light"] .btn.btn-success-dark:hover,
[data-bs-theme="light"] .btn.btn-success-dark:focus-visible {
    color: hsl(210, 20%, 98%);
}

.btn.btn-success-dark:hover,
.btn.btn-success-dark:focus-visible {
    background-color: color-mix(in srgb, var(--bs-success) 88%, #000);
    border-color: color-mix(in srgb, var(--bs-success) 88%, #000);
}

/* ─── Тёмная тема: приглушённые solid / outline / ghost-кнопки (меньше насыщенности, ближе к терминалу) ─── */
[data-bs-theme="dark"] .btn.btn-primary {
    --bs-btn-color: hsl(210, 22%, 96%);
    --bs-btn-bg: hsl(186, 36%, 36%);
    --bs-btn-border-color: hsl(186, 30%, 30%);
    --bs-btn-hover-color: hsl(210, 22%, 98%);
    --bs-btn-hover-bg: hsl(186, 38%, 42%);
    --bs-btn-hover-border-color: hsl(186, 34%, 36%);
    --bs-btn-focus-shadow-rgb: 60, 140, 150;
    --bs-btn-active-color: hsl(210, 22%, 98%);
    --bs-btn-active-bg: hsl(186, 34%, 32%);
    --bs-btn-active-border-color: hsl(186, 28%, 28%);
    --bs-btn-disabled-color: hsl(215, 12%, 55%);
    --bs-btn-disabled-bg: hsl(220, 12%, 22%);
    --bs-btn-disabled-border-color: hsl(220, 10%, 26%);
}

[data-bs-theme="dark"] .btn.btn-success {
    --bs-btn-color: hsl(150, 15%, 96%);
    --bs-btn-bg: hsl(152, 32%, 34%);
    --bs-btn-border-color: hsl(152, 28%, 28%);
    --bs-btn-hover-color: hsl(150, 15%, 98%);
    --bs-btn-hover-bg: hsl(152, 34%, 40%);
    --bs-btn-hover-border-color: hsl(152, 30%, 34%);
    --bs-btn-focus-shadow-rgb: 55, 130, 95;
    --bs-btn-active-color: hsl(150, 15%, 98%);
    --bs-btn-active-bg: hsl(152, 30%, 30%);
    --bs-btn-active-border-color: hsl(152, 26%, 26%);
    --bs-btn-disabled-color: hsl(215, 12%, 55%);
    --bs-btn-disabled-bg: hsl(220, 12%, 22%);
    --bs-btn-disabled-border-color: hsl(220, 10%, 26%);
}

[data-bs-theme="dark"] .btn.btn-info {
    --bs-btn-color: hsl(258, 20%, 96%);
    --bs-btn-bg: hsl(258, 28%, 42%);
    --bs-btn-border-color: hsl(258, 24%, 36%);
    --bs-btn-hover-color: hsl(258, 15%, 98%);
    --bs-btn-hover-bg: hsl(258, 30%, 48%);
    --bs-btn-hover-border-color: hsl(258, 26%, 42%);
    --bs-btn-focus-shadow-rgb: 110, 80, 160;
    --bs-btn-active-color: hsl(258, 15%, 98%);
    --bs-btn-active-bg: hsl(258, 26%, 36%);
    --bs-btn-active-border-color: hsl(258, 22%, 32%);
    --bs-btn-disabled-color: hsl(215, 12%, 55%);
    --bs-btn-disabled-bg: hsl(220, 12%, 22%);
    --bs-btn-disabled-border-color: hsl(220, 10%, 26%);
}

[data-bs-theme="dark"] .btn.btn-warning {
    --bs-btn-color: hsl(220, 18%, 12%);
    --bs-btn-bg: hsl(42, 38%, 48%);
    --bs-btn-border-color: hsl(42, 34%, 40%);
    --bs-btn-hover-color: hsl(220, 18%, 10%);
    --bs-btn-hover-bg: hsl(42, 40%, 54%);
    --bs-btn-hover-border-color: hsl(42, 36%, 46%);
    --bs-btn-focus-shadow-rgb: 160, 130, 55;
    --bs-btn-active-color: hsl(220, 18%, 10%);
    --bs-btn-active-bg: hsl(42, 36%, 42%);
    --bs-btn-active-border-color: hsl(42, 32%, 36%);
    --bs-btn-disabled-color: hsl(215, 12%, 45%);
    --bs-btn-disabled-bg: hsl(220, 12%, 22%);
    --bs-btn-disabled-border-color: hsl(220, 10%, 26%);
}

[data-bs-theme="dark"] .btn.btn-danger {
    --bs-btn-color: hsl(350, 18%, 96%);
    --bs-btn-bg: hsl(352, 36%, 42%);
    --bs-btn-border-color: hsl(352, 32%, 36%);
    --bs-btn-hover-color: hsl(350, 15%, 98%);
    --bs-btn-hover-bg: hsl(352, 38%, 48%);
    --bs-btn-hover-border-color: hsl(352, 34%, 42%);
    --bs-btn-focus-shadow-rgb: 150, 70, 85;
    --bs-btn-active-color: hsl(350, 15%, 98%);
    --bs-btn-active-bg: hsl(352, 32%, 36%);
    --bs-btn-active-border-color: hsl(352, 28%, 32%);
    --bs-btn-disabled-color: hsl(215, 12%, 55%);
    --bs-btn-disabled-bg: hsl(220, 12%, 22%);
    --bs-btn-disabled-border-color: hsl(220, 10%, 26%);
}

[data-bs-theme="dark"] .btn.btn-success-dark {
    background-color: hsl(152, 32%, 34%);
    border-color: hsl(152, 28%, 28%);
    color: hsl(150, 15%, 96%);
}

[data-bs-theme="dark"] .btn.btn-success-dark:hover,
[data-bs-theme="dark"] .btn.btn-success-dark:focus-visible {
    background-color: hsl(152, 34%, 40%);
    border-color: hsl(152, 30%, 34%);
    color: hsl(150, 15%, 98%);
}

[data-bs-theme="dark"] .btn.btn-success-dark:focus-visible {
    box-shadow: 0 0 0 0.2rem rgba(55, 130, 95, 0.35);
}

[data-bs-theme="dark"] .btn.btn-light-primary {
    --bs-btn-color: hsl(186, 42%, 72%);
    --bs-btn-bg: hsla(186, 40%, 48%, 0.12);
    --bs-btn-border-color: hsla(186, 35%, 45%, 0.35);
    --bs-btn-hover-color: hsl(186, 45%, 78%);
    --bs-btn-hover-bg: hsla(186, 42%, 50%, 0.2);
    --bs-btn-hover-border-color: hsla(186, 38%, 50%, 0.45);
    --bs-btn-focus-shadow-rgb: 60, 140, 150;
    --bs-btn-active-color: hsl(186, 48%, 82%);
    --bs-btn-active-bg: hsla(186, 38%, 48%, 0.28);
    --bs-btn-active-border-color: hsla(186, 36%, 52%, 0.5);
}

[data-bs-theme="dark"] .btn.btn-outline-primary {
    --bs-btn-color: hsl(186, 42%, 68%);
    --bs-btn-border-color: hsla(186, 38%, 48%, 0.45);
    --bs-btn-hover-color: hsl(210, 22%, 96%);
    --bs-btn-hover-bg: hsl(186, 36%, 36%);
    --bs-btn-hover-border-color: hsl(186, 32%, 32%);
    --bs-btn-focus-shadow-rgb: 60, 140, 150;
    --bs-btn-active-color: hsl(210, 22%, 96%);
    --bs-btn-active-bg: hsl(186, 34%, 32%);
    --bs-btn-active-border-color: hsl(186, 30%, 28%);
}

[data-bs-theme="dark"] .btn.btn-outline-success {
    --bs-btn-color: hsl(152, 32%, 58%);
    --bs-btn-border-color: hsla(152, 30%, 45%, 0.45);
    --bs-btn-hover-color: hsl(150, 15%, 96%);
    --bs-btn-hover-bg: hsl(152, 32%, 34%);
    --bs-btn-hover-border-color: hsl(152, 28%, 28%);
    --bs-btn-focus-shadow-rgb: 55, 130, 95;
    --bs-btn-active-color: hsl(150, 15%, 96%);
    --bs-btn-active-bg: hsl(152, 30%, 30%);
    --bs-btn-active-border-color: hsl(152, 26%, 26%);
}

[data-bs-theme="dark"] .btn.btn-outline-info {
    --bs-btn-color: hsl(258, 28%, 68%);
    --bs-btn-border-color: hsla(258, 26%, 55%, 0.45);
    --bs-btn-hover-color: hsl(258, 20%, 96%);
    --bs-btn-hover-bg: hsl(258, 28%, 42%);
    --bs-btn-hover-border-color: hsl(258, 24%, 36%);
    --bs-btn-focus-shadow-rgb: 110, 80, 160;
    --bs-btn-active-color: hsl(258, 20%, 96%);
    --bs-btn-active-bg: hsl(258, 26%, 36%);
    --bs-btn-active-border-color: hsl(258, 22%, 32%);
}

[data-bs-theme="dark"] .btn.btn-outline-warning {
    --bs-btn-color: hsl(42, 38%, 62%);
    --bs-btn-border-color: hsla(42, 36%, 50%, 0.5);
    --bs-btn-hover-color: hsl(220, 18%, 12%);
    --bs-btn-hover-bg: hsl(42, 38%, 48%);
    --bs-btn-hover-border-color: hsl(42, 34%, 40%);
    --bs-btn-focus-shadow-rgb: 160, 130, 55;
    --bs-btn-active-color: hsl(220, 18%, 12%);
    --bs-btn-active-bg: hsl(42, 36%, 42%);
    --bs-btn-active-border-color: hsl(42, 32%, 36%);
}

[data-bs-theme="dark"] .btn.btn-outline-danger {
    --bs-btn-color: hsl(352, 36%, 62%);
    --bs-btn-border-color: hsla(352, 34%, 50%, 0.45);
    --bs-btn-hover-color: hsl(350, 18%, 96%);
    --bs-btn-hover-bg: hsl(352, 36%, 42%);
    --bs-btn-hover-border-color: hsl(352, 32%, 36%);
    --bs-btn-focus-shadow-rgb: 150, 70, 85;
    --bs-btn-active-color: hsl(350, 18%, 96%);
    --bs-btn-active-bg: hsl(352, 32%, 36%);
    --bs-btn-active-border-color: hsl(352, 28%, 32%);
}

/* Dropzone (plugins.bundle: .dropzone { background:#fff }) — профиль, загрузка документов */
[data-bs-theme="dark"] .dropzone,
[data-bs-theme="dark"] .dropzone.dz-clickable {
    background-color: var(--pt-bg-muted) !important;
    background-image: none !important;
    border: 1px dashed var(--pt-cyan-border) !important;
    color: var(--pt-text);
}

[data-bs-theme="dark"] .dropzone.dz-drag-hover {
    background-color: var(--pt-cyan-tint) !important;
    border-color: var(--pt-cyan) !important;
}

[data-bs-theme="dark"] .dropzone .dz-message,
[data-bs-theme="dark"] .dropzone .dz-message * {
    color: var(--pt-text);
}

[data-bs-theme="dark"] .dropzone .dz-message h3,
[data-bs-theme="dark"] .dropzone .dz-message .text-gray-900 {
    color: var(--bs-emphasis-color) !important;
}

[data-bs-theme="dark"] .dropzone .dz-preview.dz-image-preview {
    background-color: var(--pt-bg-card) !important;
}

[data-bs-theme="dark"] .dropzone .dz-preview.dz-file-preview .dz-image {
    background: var(--pt-bg-muted) !important;
    background-image: none !important;
}

[data-bs-theme="dark"] .dropzone .dz-preview .dz-details {
    color: var(--pt-text);
}

[data-bs-theme="dark"] .dropzone .dz-remove {
    background-color: var(--pt-bg-card) !important;
    box-shadow: 0 0.1rem 0.75rem rgba(0, 0, 0, 0.35);
}

/* ─── My Accounts: каркас терминала (шаг 1 плана prop-terminal-standalone) ─── */
.prop-my-accounts-term .section-mb {
    margin-bottom: 10px;
}

.prop-my-accounts-term .prop-ma-stat-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    margin-bottom: 10px;
}

.prop-my-accounts-term .prop-ma-stat-card {
    background: var(--pt-bg-card);
    border: 1px solid var(--pt-border);
    border-radius: 8px;
    padding: 14px 16px;
    position: relative;
    overflow: hidden;
}

.prop-my-accounts-term .prop-ma-stat-label {
    font-size: 9.5px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--pt-text-dim, var(--pt-text-muted));
    font-weight: 600;
    margin-bottom: 8px;
}

.prop-my-accounts-term .prop-ma-stat-value {
    font-size: 18px;
    font-weight: 700;
    letter-spacing: -0.03em;
    font-family: var(--bs-font-monospace);
    color: var(--pt-text);
    line-height: 1.2;
}

.prop-my-accounts-term .prop-ma-stat-value .badge {
    font-size: 0.65rem;
    font-weight: 600;
    vertical-align: middle;
}

.prop-my-accounts-term .prop-ma-stat-sub {
    font-size: 10.5px;
    color: var(--pt-text-muted);
    margin-top: 4px;
}

.prop-my-accounts-term .prop-ma-stat-ph {
    opacity: 0.45;
}

.prop-my-accounts-term .rules-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-bottom: 14px;
}

/* Чипы правил — как badge-pill в prop-terminal-standalone (green / yellow / cyan) */
.prop-my-accounts-term .prop-ma-chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 10.5px;
    font-weight: 700;
    padding: 4px 10px;
    border-radius: 999px;
    letter-spacing: 0.03em;
}

.prop-my-accounts-term .prop-ma-chip--green {
    background: var(--pt-green-dim);
    color: var(--pt-green);
    border: 1px solid var(--pt-green-border);
}

.prop-my-accounts-term .prop-ma-chip--yellow {
    background: var(--pt-yellow-dim);
    color: var(--pt-yellow);
    border: 1px solid var(--pt-yellow-border);
}

.prop-my-accounts-term .prop-ma-chip--cyan {
    background: var(--pt-cyan-dim);
    color: var(--pt-cyan);
    border: 1px solid var(--pt-cyan-border);
}

.prop-my-accounts-term .prop-ma-chip--red {
    background: var(--pt-red-dim);
    color: var(--pt-red);
    border: 1px solid var(--pt-red-border);
}

.prop-my-accounts-term .prop-ma-journal-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 12px;
}

.prop-my-accounts-term .prop-ma-journal-title {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--pt-text);
    letter-spacing: -0.02em;
}

.prop-my-accounts-term .prop-ma-journal-sub {
    font-size: 10.5px;
    color: var(--pt-text-muted);
    margin-top: 2px;
}

.prop-my-accounts-term .prop-ma-journal-kpi {
    font-size: 13px;
    font-weight: 700;
    font-family: var(--bs-font-monospace);
    color: var(--pt-green);
}

.prop-my-accounts-term .prop-ma-journal-kpi-sub {
    font-size: 10px;
    color: var(--pt-text-muted);
    margin-top: 2px;
}

.prop-my-accounts-term .journal-toolbar {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
    flex-wrap: wrap;
}

.prop-my-accounts-term .journal-toolbar .search-box {
    flex: 1;
    min-width: 200px;
    position: relative;
}

.prop-my-accounts-term .journal-toolbar .search-box svg {
    position: absolute;
    left: 9px;
    top: 50%;
    transform: translateY(-50%);
    stroke: var(--pt-text-muted);
    pointer-events: none;
}

.prop-my-accounts-term .prop-ma-journal-search {
    width: 100%;
    padding: 7px 10px 7px 32px;
    border-radius: 6px;
    border: 1px solid var(--pt-border);
    background: var(--pt-bg-card);
    color: var(--pt-text);
    font-size: 12px;
    font-family: inherit;
    outline: none;
    transition: border-color 0.15s ease;
}

.prop-my-accounts-term .prop-ma-journal-search:focus-visible {
    border-color: var(--pt-focus-ring);
}

.prop-my-accounts-term .prop-ma-journal-search:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.prop-my-accounts-term .prop-ma-journal-card {
    border-color: var(--pt-border);
    background: var(--pt-bg-card);
}

.prop-my-accounts-term .trade-table.prop-ma-trade-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 11.5px;
}

.prop-my-accounts-term .trade-table.prop-ma-trade-table thead td,
.prop-my-accounts-term .trade-table.prop-ma-trade-table thead th {
    text-align: left;
    padding: 7px 10px;
    font-size: 9.5px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--pt-text-muted);
    border-bottom: 1px solid var(--pt-border);
    vertical-align: middle;
}

.prop-my-accounts-term .trade-table.prop-ma-trade-table tbody td {
    padding: 9px 10px;
    border-bottom: 1px solid hsla(220, 14%, 50%, 0.18);
    vertical-align: middle;
}

[data-bs-theme="dark"] .prop-my-accounts-term .trade-table.prop-ma-trade-table tbody td {
    border-bottom-color: hsla(220, 14%, 16%, 0.45);
}

.prop-my-accounts-term .trade-table.prop-ma-trade-table tbody tr:last-child td {
    border-bottom: none;
}

.prop-my-accounts-term .trade-table.prop-ma-trade-table tbody tr:hover td {
    background: var(--pt-cyan-row, hsla(186, 100%, 42%, 0.06));
}

/* Closed Trade History: Type (buy / sell / прочее) и Profit — перебиваем text-gray-600 у tbody */
.prop-my-accounts-term .trade-table.prop-ma-trade-table td.prop-ma-trade-type--buy {
    color: hsl(152, 55%, 36%) !important;
    font-weight: 600;
}

.prop-my-accounts-term .trade-table.prop-ma-trade-table td.prop-ma-trade-type--sell {
    color: hsl(350, 58%, 45%) !important;
    font-weight: 600;
}

.prop-my-accounts-term .trade-table.prop-ma-trade-table td.prop-ma-trade-type--other {
    color: var(--pt-text-muted) !important;
    font-weight: 600;
}

.prop-my-accounts-term .trade-table.prop-ma-trade-table td.prop-ma-trade-profit--pos {
    color: hsl(152, 55%, 36%) !important;
    font-weight: 600;
}

.prop-my-accounts-term .trade-table.prop-ma-trade-table td.prop-ma-trade-profit--neg {
    color: hsl(350, 58%, 45%) !important;
    font-weight: 600;
}

.prop-my-accounts-term .trade-table.prop-ma-trade-table td.prop-ma-trade-profit--zero,
.prop-my-accounts-term .trade-table.prop-ma-trade-table td.prop-ma-trade-profit--na {
    color: var(--pt-text-muted) !important;
}

[data-bs-theme="dark"] .prop-my-accounts-term .trade-table.prop-ma-trade-table td.prop-ma-trade-type--buy,
[data-bs-theme="dark"] .prop-my-accounts-term .trade-table.prop-ma-trade-table td.prop-ma-trade-profit--pos {
    color: hsl(142, 48%, 52%) !important;
}

[data-bs-theme="dark"] .prop-my-accounts-term .trade-table.prop-ma-trade-table td.prop-ma-trade-type--sell,
[data-bs-theme="dark"] .prop-my-accounts-term .trade-table.prop-ma-trade-table td.prop-ma-trade-profit--neg {
    color: hsl(350, 65%, 62%) !important;
}

@media (max-width: 1100px) {
    .prop-my-accounts-term .prop-ma-stat-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 576px) {
    .prop-my-accounts-term .prop-ma-stat-grid {
        grid-template-columns: 1fr;
    }
}