/* =============================================================================
   Журнал сделок — премиальный слой (TJ_PREMIUM_2026_09_05)

   Отдельный файл поверх trading-journal-styles.css. Ничего не удаляет: меняет
   поверхности, типографику и плотность. Отключается снятием одного <link>.

   Идея. Журнал сделок — не дашборд общего назначения, а рабочее место, где
   смотрят на числа. Значит числа должны доминировать, а всё вокруг — молчать:
   вместо пятнадцати рамок один фон и волосяные линии, вместо иконки в каждой
   плашке — воздух, вместо жирных подписей — тонкий верхний регистр.

   Что меняется:
     · поверхности     — рамки сняты, глубина даётся фоном и мягкой тенью;
     · метрики         — единая полоса с волосяными разделителями, без иконок;
     · типографика     — одна шкала, табличные цифры, спокойный верхний регистр;
     · таблица сделок  — плотнее (строка 90 → 56 px), действия по наведению;
     · состояния       — наведение и фокус видимые, движение уважает настройки.
   ============================================================================= */

.trading-journal-wrapper {
    /* Поверхности: три уровня глубины вместо рамок */
    --pr-ground: #0d1117;
    --pr-surface: #151a21;
    --pr-surface-2: #1b212a;
    --pr-surface-hover: #1e242e;

    /* Волосяные линии — единственный разделитель, который остаётся видимым */
    --pr-line: #232a35;
    --pr-line-soft: rgba(255, 255, 255, .055);

    /* Текст: три ступени, дальше начинается нечитаемое */
    --pr-text: #e6eaf0;
    --pr-muted: #8b95a5;
    --pr-faint: #5c6675;

    --pr-accent: #95ce5a;
    --pr-profit: #10b981;
    --pr-loss: #f43f5e;

    --pr-radius: 14px;
    --pr-radius-sm: 8px;
    --pr-shadow: 0 1px 2px rgba(0, 0, 0, .28), 0 8px 24px -12px rgba(0, 0, 0, .55);
}

/* ---------------------------------------------------------------------------
   1. Поверхности. Рамка вокруг каждого блока превращает страницу в сетку
   коробок; глубину лучше давать фоном и почти незаметной тенью.
   --------------------------------------------------------------------------- */
.trading-journal-wrapper .tj-card,
.trading-journal-wrapper .analytics-section,
.trading-journal-wrapper .tj-filters-card {
    background: var(--pr-surface);
    border: 1px solid var(--pr-line-soft);
    border-radius: var(--pr-radius);
    box-shadow: var(--pr-shadow);
}

.trading-journal-wrapper .tj-card-header,
.trading-journal-wrapper .analytics-section-header {
    border-bottom: 1px solid var(--pr-line-soft);
    padding: 14px 18px;
}

/* Заголовок панели: спокойный верхний регистр вместо крупного жирного.
   Иконка остаётся, но перестаёт спорить с текстом за внимание. */
.trading-journal-wrapper .tj-card-title,
.trading-journal-wrapper .analytics-section-title {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--pr-muted);
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 0;
}
.trading-journal-wrapper .tj-card-title i,
.trading-journal-wrapper .analytics-section-title i {
    font-size: 12px;
    color: var(--pr-faint);
}

/* ---------------------------------------------------------------------------
   2. Метрики обзора — сигнатурный блок. Пять чисел в одной полосе, разделённой
   волосяными линиями: так читается сводка терминала, а не набор карточек.
   --------------------------------------------------------------------------- */
.trading-journal-wrapper .tj-stats-grid {
    background: var(--pr-surface);
    border: 1px solid var(--pr-line-soft);
    border-radius: var(--pr-radius);
    box-shadow: var(--pr-shadow);
    /* TJ_FIX_2026_09_06e: обрезка здесь съедала всплывающие подсказки карточек —
       текст отрисовывался за границей полосы и был не виден. Скругление
       возвращаем крайним карточкам, обрезка больше не нужна. */
    position: relative;
    gap: 0;
}
.trading-journal-wrapper .tj-stats-grid > .tj-stat-card:first-child {
    border-top-left-radius: var(--pr-radius);
    border-bottom-left-radius: var(--pr-radius);
}
.trading-journal-wrapper .tj-stats-grid > .tj-stat-card:last-child {
    border-top-right-radius: var(--pr-radius);
    border-bottom-right-radius: var(--pr-radius);
}
/* Наведённая карточка поднимается над соседями, чтобы подсказка была видна целиком */
.trading-journal-wrapper .tj-stat-card:hover,
.trading-journal-wrapper .tj-stat-card:focus-within { z-index: 20; }

/* Пока выводов нет, текстовая часть блока подсказки скрыта */
.trading-journal-wrapper #tjx-insight.tjx-empty .tjx-insight-txt { display: none !important; }
.trading-journal-wrapper #tjx-insight.tjx-empty .tjx-row { justify-content: flex-end; }
.trading-journal-wrapper #tjx-insight.tjx-empty .tjx-limit { border-left: 0; padding-left: 0; }

.trading-journal-wrapper .tj-stat-card {
    background: transparent !important;
    border: 0 !important;
    border-right: 1px solid var(--pr-line-soft) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 18px 20px 17px !important;
    display: block !important;
    position: relative;
    transition: background .18s ease;
}
.trading-journal-wrapper .tj-stats-grid > .tj-stat-card:last-child {
    border-right: 0 !important;
}
.trading-journal-wrapper .tj-stat-card:hover {
    background: rgba(255, 255, 255, .014) !important;
    transform: none !important;
}

/* Иконка в плашке — самый узнаваемый признак шаблонного дашборда.
   Числу она ничего не добавляет, а место занимает. */
.trading-journal-wrapper .tj-stat-icon { display: none !important; }

.trading-journal-wrapper .tj-stat-content {
    display: block;
    min-width: 0;
}

.trading-journal-wrapper .tj-stat-label {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--pr-faint);
    margin-bottom: 10px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.trading-journal-wrapper .tj-stat-value {
    font-size: 27px;
    font-weight: 600;
    line-height: 1.05;
    letter-spacing: -.02em;
    font-variant-numeric: tabular-nums;
    color: var(--pr-text);
    margin: 0 0 8px;
}

.trading-journal-wrapper .tj-stat-sub,
.trading-journal-wrapper .tj-stat-sub-row,
.trading-journal-wrapper .tj-stat-sub-item {
    font-size: 11.5px;
    color: var(--pr-muted);
    font-variant-numeric: tabular-nums;
    letter-spacing: .01em;
}
.trading-journal-wrapper .tj-stat-sub-item i { color: var(--pr-faint); }

/* Первая карточка — результат счёта. Тонкая линия сверху вместо заливки:
   акцент виден боковым зрением и не превращает блок в баннер. */
.trading-journal-wrapper .tj-stat-card-primary {
    background: linear-gradient(180deg, rgba(149, 206, 90, .05), transparent 62%) !important;
}
.trading-journal-wrapper .tj-stat-card-primary::before {
    content: '';
    position: absolute;
    left: 0; right: 0; top: 0;
    height: 2px;
    background: linear-gradient(90deg, var(--pr-accent), rgba(149, 206, 90, .15));
}
.trading-journal-wrapper .tj-stat-card-primary .tj-stat-value {
    font-size: 31px !important;
}

/* Вклад инструментов: колонка моноширинных чисел, а не вторая таблица */
.trading-journal-wrapper .tj-pnl-contributors {
    margin-top: 12px;
    padding-top: 11px;
    border-top: 1px solid var(--pr-line-soft);
    display: grid;
    gap: 4px;
    font-variant-numeric: tabular-nums;
    font-size: 11.5px;
    color: var(--pr-muted);
}

/* ---------------------------------------------------------------------------
   3. Компактная полоса метрик на остальных вкладках
   --------------------------------------------------------------------------- */
.trading-journal-wrapper #tj-mini-stats {
    background: var(--pr-surface) !important;
    border: 1px solid var(--pr-line-soft) !important;
    border-radius: var(--pr-radius) !important;
    padding: 12px 18px !important;
}
.trading-journal-wrapper #tj-mini-stats .tj-mini-label,
.trading-journal-wrapper #tj-mini-stats [class*="label"] {
    font-size: 9.5px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--pr-faint);
}
.trading-journal-wrapper #tj-mini-stats [class*="value"] {
    font-variant-numeric: tabular-nums;
    letter-spacing: -.01em;
}

/* ---------------------------------------------------------------------------
   4. Таблица сделок. Была строка в 90 px и три кнопки в каждой — на экран
   помещалось три сделки. Журнал читают списком, значит нужна плотность.
   --------------------------------------------------------------------------- */
.trading-journal-wrapper .tj-table thead th {
    font-size: 9.5px !important;
    font-weight: 700 !important;
    letter-spacing: .12em !important;
    text-transform: uppercase;
    color: var(--pr-faint) !important;
    background: transparent !important;
    border-bottom: 1px solid var(--pr-line) !important;
    padding: 12px 14px !important;
    white-space: nowrap;
    vertical-align: middle;
}

.trading-journal-wrapper .tj-table tbody td {
    padding: 11px 14px !important;
    font-size: 12.5px;
    border-bottom: 1px solid var(--pr-line-soft) !important;
    font-variant-numeric: tabular-nums;
    vertical-align: middle;
}

.trading-journal-wrapper .tj-table tbody tr {
    transition: background .14s ease;
}
.trading-journal-wrapper .tj-table tbody tr:hover {
    background: var(--pr-surface-hover) !important;
}

/* Метка направления: тонкая, без заливки — в строке уже достаточно цвета */
.trading-journal-wrapper .tj-badge-long,
.trading-journal-wrapper .tj-badge-short,
.trading-journal-wrapper .tj-direction-badge {
    background: transparent !important;
    border: 1px solid currentColor;
    border-radius: 5px !important;
    padding: 2px 7px !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    letter-spacing: .08em;
    opacity: .85;
}

/* Действия появляются по наведению: в покое строка — это данные, а не панель
   управления. На сенсорных экранах остаются видимыми всегда. */
@media (hover: hover) and (pointer: fine) {
    .trading-journal-wrapper .tj-table tbody td .tj-btn-icon {
        opacity: 0;
        transition: opacity .14s ease;
    }
    .trading-journal-wrapper .tj-table tbody tr:hover .tj-btn-icon,
    .trading-journal-wrapper .tj-table tbody tr:focus-within .tj-btn-icon {
        opacity: 1;
    }
}

/* ---------------------------------------------------------------------------
   5. Фильтры. Разворачивать на весь экран пять списков ради двух сделок незачем,
   поэтому блок становится тише: он вспомогательный.
   --------------------------------------------------------------------------- */
.trading-journal-wrapper .tj-filters-card,
.trading-journal-wrapper #tj-filters {
    background: var(--pr-surface-2);
    box-shadow: none;
}
.trading-journal-wrapper .tj-filter-label,
.trading-journal-wrapper .tj-filters label {
    font-size: 10px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--pr-faint);
}

/* ---------------------------------------------------------------------------
   6. Поля ввода: спокойная рамка, видимый фокус
   --------------------------------------------------------------------------- */
.trading-journal-wrapper .tj-input,
.trading-journal-wrapper .tj-select,
.trading-journal-wrapper textarea.tj-input {
    background: var(--pr-surface-2);
    border: 1px solid var(--pr-line);
    border-radius: var(--pr-radius-sm);
    color: var(--pr-text);
    font-variant-numeric: tabular-nums;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.trading-journal-wrapper .tj-input:hover,
.trading-journal-wrapper .tj-select:hover {
    border-color: #2c3542;
}
.trading-journal-wrapper .tj-input:focus,
.trading-journal-wrapper .tj-select:focus,
.trading-journal-wrapper .tj-input:focus-visible {
    border-color: rgba(149, 206, 90, .55);
    box-shadow: 0 0 0 3px rgba(149, 206, 90, .12);
    outline: none;
}

/* ---------------------------------------------------------------------------
   7. Кнопки. Главная — одна на экран; остальные не должны с ней спорить.
   --------------------------------------------------------------------------- */
.trading-journal-wrapper .tj-btn-secondary {
    background: var(--pr-surface-2);
    border: 1px solid var(--pr-line);
    color: var(--pr-muted);
    border-radius: var(--pr-radius-sm);
    transition: border-color .15s ease, color .15s ease, background .15s ease;
}
.trading-journal-wrapper .tj-btn-secondary:hover:not(:disabled) {
    background: var(--pr-surface-hover);
    border-color: #2c3542;
    color: var(--pr-text);
}
.trading-journal-wrapper .tj-btn-primary {
    border-radius: var(--pr-radius-sm);
    box-shadow: 0 1px 0 rgba(255, 255, 255, .06) inset, 0 6px 16px -8px rgba(149, 206, 90, .5);
}

/* ---------------------------------------------------------------------------
   8. Боковое меню: номера горячих клавиш перестают выглядеть счётчиками
   --------------------------------------------------------------------------- */
.trading-journal-wrapper .tj-nav-hotkey,
.trading-journal-wrapper .tj-sidebar-hotkey,
.trading-journal-wrapper .tj-nav-item .tj-hotkey {
    background: transparent !important;
    border: 1px solid var(--pr-line) !important;
    color: var(--pr-faint) !important;
    font-size: 9.5px !important;
    font-weight: 600 !important;
    min-width: 17px;
    text-align: center;
    border-radius: 4px !important;
    opacity: .75;
}

/* ---------------------------------------------------------------------------
   9. Полосы уведомлений: цвет остаётся смыслом, а не фоном во всю ширину
   --------------------------------------------------------------------------- */
.trading-journal-wrapper #tj-backup-reminder,
.trading-journal-wrapper #tj-capital-banner,
.trading-journal-wrapper .tjx-limit-box {
    background: var(--pr-surface) !important;
    border-radius: var(--pr-radius) !important;
    box-shadow: var(--pr-shadow);
}
.trading-journal-wrapper #tj-backup-reminder { border: 1px solid rgba(240, 185, 11, .22) !important; }
.trading-journal-wrapper #tj-capital-banner { border: 1px solid rgba(149, 206, 90, .22) !important; }

/* ---------------------------------------------------------------------------
   10. Числа. Везде, где цифры выстраиваются в столбец, они должны быть
   одинаковой ширины — иначе колонка «дышит» при обновлении.
   --------------------------------------------------------------------------- */
.trading-journal-wrapper .analytics-insight-value,
.trading-journal-wrapper .analytics-insight-stats,
.trading-journal-wrapper .analytics-table td,
.trading-journal-wrapper .strategy-metric-value,
.trading-journal-wrapper .tj-stat-value,
.trading-journal-wrapper .emotion-stat-value {
    font-variant-numeric: tabular-nums;
}

.trading-journal-wrapper .analytics-insight-label {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .13em;
    text-transform: uppercase;
    color: var(--pr-faint);
}
.trading-journal-wrapper .analytics-insight-value {
    letter-spacing: -.02em;
    color: var(--pr-text);
}

/* ---------------------------------------------------------------------------
   11. Движение — только по согласию системы
   --------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
    .trading-journal-wrapper *,
    .trading-journal-wrapper *::before,
    .trading-journal-wrapper *::after {
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
    }
}

/* ---------------------------------------------------------------------------
   12. Узкий экран: полоса метрик разворачивается в колонки без рамок
   --------------------------------------------------------------------------- */
@media (max-width: 1100px) {
    .trading-journal-wrapper .tj-stat-card {
        border-right: 0 !important;
        border-bottom: 1px solid var(--pr-line-soft) !important;
    }
    .trading-journal-wrapper .tj-stats-grid > .tj-stat-card:last-child {
        border-bottom: 0 !important;
    }
}
@media (max-width: 768px) {
    .trading-journal-wrapper .tj-stat-value { font-size: 24px; }
    .trading-journal-wrapper .tj-stat-card-primary .tj-stat-value { font-size: 27px !important; }
    .trading-journal-wrapper .tj-card-header { padding: 12px 14px; }
    .trading-journal-wrapper .tj-table tbody td { padding: 10px 12px !important; }
}

/* ---------------------------------------------------------------------------
   13. Доводка после первого взгляда на живой экран.
   --------------------------------------------------------------------------- */

/* Разделители полосы метрик были почти невидимы — полоса читалась сплошной.
   Линия должна отделять числа, оставаясь тише самих чисел. */
.trading-journal-wrapper .tj-stat-card {
    border-right-color: #212833 !important;
}
@media (max-width: 1100px) {
    .trading-journal-wrapper .tj-stat-card { border-bottom-color: #212833 !important; }
}

/* Вклад инструментов был рассчитан на раскладку в строку и после перехода
   к блочной карточке уезжал вправо, оставляя дыру. Ставим его под ROI
   компактным списком во всю ширину. */
.trading-journal-wrapper .tj-pnl-contributors {
    width: auto !important;
    max-width: 260px;
    margin-left: 0 !important;
    padding-left: 0 !important;
    border-left: 0 !important;
    align-self: stretch !important;
    flex-shrink: 1 !important;
}
.trading-journal-wrapper .tj-pnl-contributors .tj-pnl-contributor {
    font-size: 11px;
    padding: 2px 0;
    border-bottom: 1px solid rgba(255, 255, 255, .035);
}
.trading-journal-wrapper .tj-pnl-contributors .tj-pnl-contributor:last-child {
    border-bottom: 0;
}

/* Подсказка дня: вертикальная линия вместо эмодзи. Цвет — акцент инструмента,
   поэтому подсказка читается как подсказка, а не как предупреждение. */
.trading-journal-wrapper #tjx-insight {
    background: var(--pr-surface) !important;
    border: 1px solid var(--pr-line-soft) !important;
    border-left: 2px solid rgba(149, 206, 90, .55) !important;
    border-radius: var(--pr-radius) !important;
    box-shadow: var(--pr-shadow);
}
.trading-journal-wrapper .tjx-insight-txt {
    color: var(--pr-text);
    font-size: 13px;
    line-height: 1.5;
}

/* Виджет дневного лимита — вспомогательный, поэтому тише подсказки рядом */
.trading-journal-wrapper .tjx-limit label {
    font-size: 10px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--pr-faint);
}
.trading-journal-wrapper .tjx-limit input {
    background: var(--pr-surface-2);
    border: 1px solid var(--pr-line);
    border-radius: var(--pr-radius-sm);
    color: var(--pr-text);
    font-variant-numeric: tabular-nums;
}
.trading-journal-wrapper .tjx-limit button {
    background: transparent;
    border: 1px solid var(--pr-line);
    color: var(--pr-muted);
    border-radius: var(--pr-radius-sm);
    transition: border-color .15s ease, color .15s ease;
}
.trading-journal-wrapper .tjx-limit button:hover {
    border-color: rgba(149, 206, 90, .5);
    color: var(--pr-accent);
}

/* Чипы сводки над графиком: одинаковая форма, значение — табличными цифрами */
.trading-journal-wrapper .tj-card-header-rich .tj-chip,
.trading-journal-wrapper .tj-summary-chip {
    background: var(--pr-surface-2);
    border: 1px solid var(--pr-line-soft);
    border-radius: 999px;
    font-variant-numeric: tabular-nums;
    font-size: 11.5px;
}

/* ---------------------------------------------------------------------------
   14. Таблица: точные классы вместо предположений.
   Разметка строки собирается в JS (renderTrades), поэтому селекторы ниже
   привязаны к тому, что там действительно выводится.
   --------------------------------------------------------------------------- */

/* Направление сделки. Залитая капсула кричит там, где хватает тонкой метки:
   в строке и так есть цвет — у результата. */
.trading-journal-wrapper .tj-badge-long,
.trading-journal-wrapper .tj-badge-short {
    background: transparent !important;
    border: 1px solid currentColor !important;
    border-radius: 5px !important;
    padding: 2px 6px !important;
    font-size: 9.5px !important;
    font-weight: 700 !important;
    letter-spacing: .09em;
    opacity: .8;
}
.trading-journal-wrapper .tj-badge-long { color: var(--pr-profit) !important; }
.trading-journal-wrapper .tj-badge-short { color: var(--pr-loss) !important; }

/* Статус — служебная отметка, а не второй акцент строки */
.trading-journal-wrapper .tj-badge-open,
.trading-journal-wrapper .tj-badge-closed {
    background: transparent !important;
    border: 1px solid var(--pr-line) !important;
    color: var(--pr-muted) !important;
    border-radius: 5px !important;
    padding: 2px 8px !important;
    font-size: 10px !important;
    font-weight: 600 !important;
}
.trading-journal-wrapper .tj-badge-open {
    color: #d8a01f !important;
    border-color: rgba(216, 160, 31, .35) !important;
}

/* Тикер: кликабельный, поэтому подчёркивается по наведению, а не рамкой */
.trading-journal-wrapper .tj-instrument-chip {
    font-weight: 600;
    letter-spacing: .02em;
    color: var(--pr-text);
    cursor: pointer;
    border-bottom: 1px dashed transparent;
    transition: border-color .15s ease, color .15s ease;
}
.trading-journal-wrapper .tj-instrument-chip:hover {
    color: var(--pr-accent);
    border-bottom-color: rgba(149, 206, 90, .5);
}

/* Действия появляются по наведению на строку. В покое строка — данные. */
@media (hover: hover) and (pointer: fine) {
    .trading-journal-wrapper .tj-table-actions {
        opacity: 0;
        transition: opacity .15s ease;
    }
    .trading-journal-wrapper .tj-table tbody tr:hover .tj-table-actions,
    .trading-journal-wrapper .tj-table tbody tr:focus-within .tj-table-actions {
        opacity: 1;
    }
}
.trading-journal-wrapper .tj-table-actions .tj-btn-icon {
    background: transparent !important;
    border: 1px solid var(--pr-line) !important;
    color: var(--pr-muted) !important;
    width: 28px; height: 28px;
    border-radius: 6px !important;
}
.trading-journal-wrapper .tj-table-actions .tj-btn-icon:hover {
    border-color: #333d4c !important;
    color: var(--pr-text) !important;
}
.trading-journal-wrapper .tj-table-actions .tj-btn-danger:hover {
    border-color: rgba(244, 63, 94, .45) !important;
    color: var(--pr-loss) !important;
}

/* Стоп и цель — вспомогательные числа, читаются одной строкой */
.trading-journal-wrapper .tj-cell-sltp {
    color: var(--pr-muted);
    white-space: nowrap;
    font-size: 12px;
}

/* Шапка таблицы: «ИНСТРУМЕНТ» и «ТИП» стояли вплотную, стрелка сортировки
   переносилась на другую строку. Дать колонкам воздух и держать стрелку рядом. */
.trading-journal-wrapper .tj-table thead th {
    padding: 12px 16px !important;
}
.trading-journal-wrapper .tj-table thead th .sort-icon,
.trading-journal-wrapper .tj-table thead th i {
    margin-left: 6px;
    opacity: .45;
    font-size: 9px;
}

/* Подпись «Дневной лимит убытка» ушла слишком глубоко в фон — возвращаем
   читаемость, оставляя её тише подсказки рядом. */
.trading-journal-wrapper .tjx-limit label {
    color: var(--pr-muted);
}

/* Служебная подпись для чтения с экрана */
.trading-journal-wrapper .tj-visually-hidden {
    position: absolute;
    width: 1px; height: 1px;
    margin: -1px; padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

/* ---------------------------------------------------------------------------
   15. Доводка таблицы после второго взгляда.
   Запрет переноса в колонке «SL / TP» без запаса по ширине привёл к тому,
   что числа наползали на соседнюю колонку с результатом. Ширину задаём явно,
   перенос разрешаем — при коротких числах он всё равно не понадобится.
   --------------------------------------------------------------------------- */
.trading-journal-wrapper .tj-cell-sltp {
    white-space: normal;
    font-size: 11.5px;
    min-width: 128px;
    line-height: 1.35;
}
.trading-journal-wrapper .tj-table th:nth-child(7) { min-width: 128px; }

/* Колонка результата не должна сжиматься до нуля из-за соседей */
.trading-journal-wrapper .tj-table td[data-label="P&L"],
.trading-journal-wrapper .tj-table th:nth-child(8) {
    min-width: 92px;
    text-align: right;
    padding-right: 18px !important;
}

/* Числовые колонки выравниваются по правому краю — так столбец читается сверху вниз */
.trading-journal-wrapper .tj-table td[data-label="Вход"],
.trading-journal-wrapper .tj-table td[data-label="Выход"],
.trading-journal-wrapper .tj-table td[data-label="R:R"],
.trading-journal-wrapper .tj-table td[data-label="R"] {
    text-align: right;
}
.trading-journal-wrapper .tj-table th:nth-child(5),
.trading-journal-wrapper .tj-table th:nth-child(6),
.trading-journal-wrapper .tj-table th:nth-child(9),
.trading-journal-wrapper .tj-table th:nth-child(10) {
    text-align: right;
}

/* Заголовки «ДАТА/ВРЕМЯ» и «ИНСТРУМЕНТ» слипались: стрелка сортировки первой
   колонки упиралась в текст второй. Дать каждой ячейке шапки собственный запас. */
.trading-journal-wrapper .tj-table thead th {
    padding-right: 20px !important;
}
.trading-journal-wrapper .tj-table th:first-child { padding-left: 18px !important; }

/* Дата и время: две строки читаются лучше одной длинной */
.trading-journal-wrapper .tj-table td[data-label="Дата"] {
    color: var(--pr-muted);
    font-size: 11.5px;
    white-space: nowrap;
}

/* Дата в одну строку упиралась в соседний тикер («04.09.2026 09:55GOLD»).
   Возвращаем перенос и даём колонке собственный запас справа. */
.trading-journal-wrapper .tj-table td[data-label="Дата"] {
    white-space: normal;
    min-width: 92px;
    padding-right: 18px !important;
    line-height: 1.35;
}
.trading-journal-wrapper .tj-table td[data-label="Инструмент"] {
    padding-left: 4px !important;
}

/* ---------------------------------------------------------------------------
   16. Аналитика: переключатель разделов и список показателей риска.
   --------------------------------------------------------------------------- */

/* Подвкладки были шестью залитыми кнопками с иконками — переключатель спорил
   с содержимым. Активный раздел отмечает линия снизу, остальное молчит. */
.trading-journal-wrapper .analytics-subtabs {
    border-bottom: 1px solid var(--pr-line);
    gap: 2px;
    padding: 0;
}
.trading-journal-wrapper .analytics-subtab {
    background: transparent !important;
    border: 0 !important;
    border-bottom: 2px solid transparent !important;
    border-radius: 0 !important;
    color: var(--pr-muted) !important;
    font-size: 12.5px !important;
    font-weight: 600 !important;
    padding: 11px 15px !important;
    box-shadow: none !important;
    transition: color .15s ease, border-color .15s ease;
}
.trading-journal-wrapper .analytics-subtab i {
    opacity: .5;
    margin-right: 7px;
    font-size: 11px;
}
.trading-journal-wrapper .analytics-subtab:hover {
    color: var(--pr-text) !important;
    background: transparent !important;
}
.trading-journal-wrapper .analytics-subtab.active {
    color: var(--pr-text) !important;
    border-bottom-color: var(--pr-accent) !important;
    background: transparent !important;
}
.trading-journal-wrapper .analytics-subtab.active i { opacity: .9; color: var(--pr-accent); }

/* Двенадцать коэффициентов в двенадцати плашках читаются как двенадцать кнопок.
   Список «показатель — значение» с волосяными линиями плотнее и спокойнее. */
.trading-journal-wrapper .tj-risk-analysis {
    gap: 0 28px !important;
}
.trading-journal-wrapper .tj-risk-item {
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px solid var(--pr-line-soft) !important;
    border-radius: 0 !important;
    padding: 11px 2px !important;
    display: flex !important;
    align-items: baseline;
    justify-content: space-between;
    gap: 14px;
}
.trading-journal-wrapper .tj-risk-item label {
    font-size: 12px;
    color: var(--pr-muted);
    margin: 0;
    letter-spacing: .01em;
}
.trading-journal-wrapper .tj-risk-item span {
    font-size: 14.5px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    letter-spacing: -.01em;
    color: var(--pr-text);
}

/* Карточки-выводы в разделах аналитики — те же правила, что у метрик обзора */
.trading-journal-wrapper .analytics-insight-card {
    background: var(--pr-surface-2) !important;
    border: 1px solid var(--pr-line-soft) !important;
    border-radius: var(--pr-radius) !important;
    box-shadow: none !important;
}
.trading-journal-wrapper .analytics-insight-icon {
    background: transparent !important;
    border: 1px solid var(--pr-line) !important;
    color: var(--pr-faint) !important;
}
.trading-journal-wrapper .analytics-insight-card.best .analytics-insight-icon {
    border-color: rgba(16, 185, 129, .3) !important;
    color: var(--pr-profit) !important;
}
.trading-journal-wrapper .analytics-insight-card.worst .analytics-insight-icon {
    border-color: rgba(244, 63, 94, .3) !important;
    color: var(--pr-loss) !important;
}

/* Таблицы аналитики — тот же ритм, что у списка сделок */
.trading-journal-wrapper .analytics-table thead th {
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--pr-faint);
    border-bottom: 1px solid var(--pr-line);
    padding: 11px 14px;
}
.trading-journal-wrapper .analytics-table tbody td {
    padding: 10px 14px;
    border-bottom: 1px solid var(--pr-line-soft);
    font-size: 12.5px;
}
.trading-journal-wrapper .analytics-table tbody tr:hover {
    background: var(--pr-surface-hover);
}

/* Промежуток в 28 px не оставил места двум колонкам по 250: auto-fit свернул
   список показателей в одну и вытянул панель вдвое. Возвращаем запас. */
.trading-journal-wrapper .tj-risk-analysis {
    gap: 0 18px !important;
}

/* ---------------------------------------------------------------------------
   17. Календарь. Яркая обводка по периметру у каждого торгового дня делает
   месяц пёстрым: глаз видит рамки, а не результат. Цвет уходит в заливку
   и в полосу слева — он остаётся, но перестаёт кричать.
   --------------------------------------------------------------------------- */
.trading-journal-wrapper .tj-calendar-day {
    border: 1px solid var(--pr-line-soft) !important;
    border-radius: 10px !important;
    min-height: 96px !important;
    padding: 10px !important;
    position: relative;
    overflow: hidden;
    transition: background .15s ease, border-color .15s ease;
}
.trading-journal-wrapper .tj-calendar-day.profit,
.trading-journal-wrapper .tj-calendar-day.loss {
    border-color: var(--pr-line-soft) !important;
    box-shadow: none !important;
}
.trading-journal-wrapper .tj-calendar-day.profit {
    background: rgba(16, 185, 129, .07) !important;
}
.trading-journal-wrapper .tj-calendar-day.loss {
    background: rgba(244, 63, 94, .07) !important;
}
.trading-journal-wrapper .tj-calendar-day.profit::before,
.trading-journal-wrapper .tj-calendar-day.loss::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 3px;
}
.trading-journal-wrapper .tj-calendar-day.profit::before { background: var(--pr-profit); opacity: .75; }
.trading-journal-wrapper .tj-calendar-day.loss::before { background: var(--pr-loss); opacity: .75; }

.trading-journal-wrapper .tj-calendar-day:hover {
    border-color: #2c3542 !important;
    transform: none !important;
}
.trading-journal-wrapper .tj-calendar-day.today {
    border-color: rgba(149, 206, 90, .45) !important;
}
.trading-journal-wrapper .tj-calendar-day-number {
    font-size: 12px;
    font-weight: 600;
    color: var(--pr-muted);
    font-variant-numeric: tabular-nums;
}
.trading-journal-wrapper .tj-calendar-day-pnl {
    font-size: 13px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    letter-spacing: -.01em;
    margin-top: 4px;
}
.trading-journal-wrapper .tj-calendar-day-trades {
    background: transparent !important;
    border: 1px solid var(--pr-line) !important;
    color: var(--pr-faint) !important;
    font-size: 9.5px !important;
    font-weight: 600 !important;
    min-width: 16px;
    height: 16px;
    line-height: 14px;
    border-radius: 4px !important;
}

/* ---------------------------------------------------------------------------
   18. Телефон: сводка не должна занимать три экрана.
   В столбце числа читаются сверху вниз, поэтому выравниваем их по левому краю
   и убираем лишнюю высоту — на первый экран помещается четыре показателя
   вместо полутора.
   --------------------------------------------------------------------------- */
@media (max-width: 560px) {
    .trading-journal-wrapper .tj-stat-card {
        text-align: left !important;
        padding: 13px 16px 12px !important;
    }
    .trading-journal-wrapper .tj-stat-content { text-align: left !important; }
    .trading-journal-wrapper .tj-stat-label {
        margin-bottom: 5px;
        font-size: 9.5px;
    }
    .trading-journal-wrapper .tj-stat-value {
        font-size: 21px !important;
        margin-bottom: 3px;
    }
    .trading-journal-wrapper .tj-stat-card-primary .tj-stat-value {
        font-size: 25px !important;
    }
    .trading-journal-wrapper .tj-stat-sub,
    .trading-journal-wrapper .tj-stat-sub-row { font-size: 11px; }
    .trading-journal-wrapper .tj-pnl-contributors {
        margin-top: 9px;
        padding-top: 8px;
        max-width: none;
    }
    .trading-journal-wrapper .tj-pnl-contributors .tj-pnl-contributor { font-size: 11px; }
}

/* ---------------------------------------------------------------------------
   19. Цвет в метриках — по знаку результата, а не везде подряд.

   Спор простой: покрасить всё зелёным и красным заманчиво, но тогда цвет
   перестаёт что-либо значить. Красим то, у чего есть знак и денежный смысл:
   общий результат, просадку, лучшую сделку. Win Rate и Payoff Ratio знака не
   имеют — 60% сами по себе ни хороши, ни плохи, и остаются нейтральными.
   --------------------------------------------------------------------------- */
.trading-journal-wrapper .tj-stat-value:not(.positive):not(.negative) {
    color: var(--pr-text);
}
.trading-journal-wrapper .tj-stat-value.positive { color: var(--pr-profit) !important; }
.trading-journal-wrapper .tj-stat-value.negative { color: var(--pr-loss) !important; }

/* Подстрочник наследует смысл, но приглушённо — иначе строка спорит с числом */
.trading-journal-wrapper .tj-stat-sub .positive,
.trading-journal-wrapper .tj-stat-sub-row .positive { color: var(--pr-profit); opacity: .9; }
.trading-journal-wrapper .tj-stat-sub .negative,
.trading-journal-wrapper .tj-stat-sub-row .negative { color: var(--pr-loss); opacity: .9; }

/* ---------------------------------------------------------------------------
   20. Карточка «Общий P&L» — две колонки.

   Список инструментов, стоявший под числом, делал карточку вдвое выше соседних,
   и справа в полосе зияла пустота. Раскладываем карточку в две колонки: слева
   подпись, число и ROI, справа — вклад инструментов. Список идёт вбок, высота
   полосы выравнивается, данные остаются на месте.
   --------------------------------------------------------------------------- */
.trading-journal-wrapper .tj-stat-card-primary {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0 22px;
    align-items: start;
}
.trading-journal-wrapper .tj-stat-card-primary .tj-stat-content {
    grid-column: 1;
    align-self: center;
}
.trading-journal-wrapper .tj-stat-card-primary .tj-pnl-contributors {
    grid-column: 2;
    align-self: center;
    width: auto !important;
    min-width: 150px;
    max-width: 210px;
    margin: 0 !important;
    padding: 0 0 0 20px !important;
    border-top: 0 !important;
    border-left: 1px solid var(--pr-line-soft) !important;
    display: grid !important;
    gap: 3px;
    font-size: 11.5px;
}
.trading-journal-wrapper .tj-stat-card-primary .tj-pnl-contributor {
    border-bottom: 0 !important;
    padding: 2px 0 !important;
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: baseline;
}
.trading-journal-wrapper .tj-stat-card-primary .tj-pnl-contributor > *:first-child {
    color: var(--pr-faint);
    font-size: 10px;
    letter-spacing: .06em;
    text-transform: uppercase;
}

/* Узкий экран: список уходит под число, иначе колонки не помещаются */
@media (max-width: 1100px) {
    .trading-journal-wrapper .tj-stat-card-primary {
        grid-template-columns: minmax(0, 1fr);
    }
    .trading-journal-wrapper .tj-stat-card-primary .tj-pnl-contributors {
        grid-column: 1;
        margin-top: 10px !important;
        padding: 9px 0 0 !important;
        border-left: 0 !important;
        border-top: 1px solid var(--pr-line-soft) !important;
        max-width: none;
    }
}

/* ---------------------------------------------------------------------------
   21. Виджет дневного лимита: состояние видно без нажатия.
   Раньше строка выглядела как «подпись — поле — ОК» без единого признака,
   работает ли настройка. Теперь рядом стоит её состояние.
   --------------------------------------------------------------------------- */
.trading-journal-wrapper .tjx-limit {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.trading-journal-wrapper .tjx-limit input {
    width: 96px;
    text-align: right;
    padding: 7px 10px;
}
.trading-journal-wrapper .tjx-limit button {
    padding: 7px 14px;
    font-size: 12px;
    font-weight: 600;
}
.trading-journal-wrapper .tjx-limit-state {
    font-size: 11px;
    color: var(--pr-faint);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.trading-journal-wrapper .tjx-limit-state-on { color: var(--pr-muted); }
.trading-journal-wrapper .tjx-limit-state-hit { color: var(--pr-loss); font-weight: 600; }

/* Подсказка и лимит — разные вещи, между ними нужен видимый шов */
.trading-journal-wrapper .tjx-row {
    display: flex;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
}
.trading-journal-wrapper .tjx-row .tjx-insight-txt {
    flex: 1 1 320px;
    min-width: 0;
}
.trading-journal-wrapper .tjx-row .tjx-limit {
    flex: 0 0 auto;
    padding-left: 24px;
    border-left: 1px solid var(--pr-line-soft);
}
@media (max-width: 900px) {
    .trading-journal-wrapper .tjx-row .tjx-limit {
        padding-left: 0;
        border-left: 0;
        border-top: 1px solid var(--pr-line-soft);
        padding-top: 12px;
        width: 100%;
    }
}

/* Предупреждение о превышении — заметное, но в палитре инструмента */
.trading-journal-wrapper .tjx-limit-banner:not([hidden]) {
    margin-top: 12px;
    padding: 11px 14px;
    border-radius: var(--pr-radius-sm);
    background: rgba(244, 63, 94, .09);
    border: 1px solid rgba(244, 63, 94, .3);
    color: #ffb3bd;
    font-size: 12.5px;
    line-height: 1.5;
}

/* ---------------------------------------------------------------------------
   22. Сводка по сделкам не нужна там, где нет сделок.
   Полоса метрик и напоминание о резервной копии показывались и на вкладке
   «Калькуляторы», хотя относиться им там не к чему: калькулятор считает
   планируемую сделку, а не разбирает прошлые.
   --------------------------------------------------------------------------- */
.trading-journal-wrapper.tj-tab-calculators #tj-mini-stats,
.trading-journal-wrapper.tj-tab-calculators #tj-backup-reminder,
.trading-journal-wrapper.tj-tab-calculators #tjx-insight {
    display: none !important;
}

/* ---------------------------------------------------------------------------
   24. TJ_FIX_2026_09_06d: пустая полоса подсказки ужимается до строки.
   Когда выводов ещё нет, на месте блока остаётся только настройка дневного
   лимита — держать под неё восемьдесят точек по высоте незачем.
   --------------------------------------------------------------------------- */
.trading-journal-wrapper #tjx-insight.tjx-empty {
    padding: 4px 14px !important;
    margin-bottom: 10px !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}
.trading-journal-wrapper #tjx-insight.tjx-empty .tjx-row {
    gap: 10px;
    min-height: 0;
}
.trading-journal-wrapper #tjx-insight.tjx-empty .tjx-limit input {
    padding: 5px 9px;
    font-size: 12px;
    width: 88px;
}
.trading-journal-wrapper #tjx-insight.tjx-empty .tjx-limit button {
    padding: 5px 11px;
    font-size: 11.5px;
}
.trading-journal-wrapper #tjx-insight.tjx-empty .tjx-limit label {
    font-size: 9.5px;
}
