/* ═══════════════════════════════════════════════════════════
   JUCON — Jupiter Control · дизайн-система v2 «Calm»
   Деловая серьёзность + комфорт «как у Claude»: щедрый воздух,
   мягкие крупные скругления, двухслойные тени на «приподнятых»
   карточках, плоские поверхности на таблицах данных.
   Фирменная палитра Jupiter Capital, IBM Plex Sans/Mono,
   tabular-figures на числах. Только визуальный слой — id/классы
   и структура DOM сохранены (логика в app.js).
   ═══════════════════════════════════════════════════════════ */

:root {
  /* Бренд (синий) */
  --navy-900:#14233F; --navy-800:#1A2B4A; --navy-700:#24365A;
  --blue-700:#244C86; --blue-600:#2E5FA3; --blue-500:#3A6FB8; --blue-300:#9DB8DD;
  --blue-100:#EEF3FA; --blue-50:#F5F8FC;
  /* Нейтрали */
  --ink:#1C1C1C; --grey-700:#42536B; --grey-600:#5A6B85; --grey-500:#7C8AA1; --grey-400:#A2AEC2;
  --grey-300:#D0D7E3; --grey-250:#E3E9F2; --grey-200:#E8EDF5; --grey-100:#F2F4F7;
  --line-soft:#EDF1F7; --white:#FFFFFF;
  /* Состояния (приглушённые) */
  --success:#2F7D5B; --success-bg:#EAF4EE;
  --warning:#B5852A; --warning-bg:#F7F0DE; --amber-500:#D9920A;
  --danger:#B23A3A;  --danger-bg:#F8ECEC; --danger-row:#FCF6F6; --red-500:#B23A3A;
  --info:#2E5FA3;
  /* Категории блокнота */
  --cat-trade:#24365A; --cat-tech:#2E5FA3; --cat-reminder:#B5852A; --cat-schedule:#2F7D5B;
  /* Поверхности/типографика */
  --bg:#F4F7FB; --surface:#FFFFFF; --surface-2:#FAFCFE;
  /* Крупные мягкие радиусы (как у Claude) */
  --radius-sm:8px; --radius:10px; --radius-md:12px; --radius-lg:14px; --radius-xl:18px; --radius-2xl:22px;
  /* Тени: card — почти плоско; soft/lifted — двухслойные «приподнятые»; pop — оверлеи */
  --shadow-card:0 1px 2px rgba(20,35,63,.05);
  --shadow-soft:0 1px 2px rgba(20,35,63,.04), 0 10px 26px -10px rgba(20,35,63,.14);
  --shadow-lifted:0 2px 6px rgba(20,35,63,.06), 0 18px 44px -14px rgba(20,35,63,.20);
  --shadow-pop:0 14px 48px rgba(20,35,63,.22);
  --font:'IBM Plex Sans',system-ui,-apple-system,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,monospace;
  --sidebar-w:270px; --header-h:68px;
  --ease:cubic-bezier(.4,0,.2,1);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0;height:100%}
:where(button,a,input,textarea,select,[tabindex]):focus-visible,
.nav-item:focus-visible,.nav-node:focus-visible,.chat-row:focus-visible,.history-item:focus-visible,
.folder-card:focus-visible,.nb-card:focus-visible,.refdoc-chip:focus-visible,
.saved-doc:focus-visible,.search-item:focus-visible{outline:2px solid var(--blue-500);outline-offset:2px;border-radius:var(--radius-sm)}
.modal-open{overflow:hidden}
body{
  font-family:var(--font); background:var(--bg); color:var(--ink);
  font-size:14px; line-height:1.5;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.num{font-variant-numeric:tabular-nums}
.hidden{display:none !important}
button{font-family:inherit}
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-thumb{background:#CDD7E6;border-radius:7px;border:3px solid transparent;background-clip:padding-box}
::-webkit-scrollbar-thumb:hover{background:#B6C3D8;background-clip:padding-box}

@keyframes jc-blink{0%,100%{opacity:1}50%{opacity:0}}
@keyframes jc-dot{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
@keyframes jc-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes jc-pop{from{opacity:0;transform:scale(.94) translateY(-6px)}to{opacity:1;transform:none}}
@keyframes jc-spin{to{transform:rotate(360deg)}}
@keyframes jc-shimmer{0%{background-position:-360px 0}100%{background-position:360px 0}}

/* Скелетон вместо голого спиннера */
.skeleton{background:linear-gradient(90deg,#EEF2F8 0px,#F6F9FC 180px,#EEF2F8 360px);background-size:720px 100%;animation:jc-shimmer 1.3s linear infinite;border-radius:8px}
[data-theme="dark"] .skeleton{background:linear-gradient(90deg,var(--c-surface) 0px,var(--c-surface-2) 180px,var(--c-surface) 360px);background-size:720px 100%}
.skeleton-list{display:flex;flex-direction:column;gap:10px;padding:2px}
.skeleton-list--row{height:64px}
.skeleton-list--line{height:34px}
.skeleton-list--cell{height:84px}
.load-error{padding:26px 10px;color:var(--c-ink-faint,var(--grey-400));font-size:12.5px;text-align:center;line-height:1.6}
.load-error__retry{margin-top:8px}
.cal-load-error,.docs-load-error{grid-column:1 / -1}

/* ── Эмблема-монограмма «J» ─────────────────────────────────── */
.mark{
  display:flex;align-items:center;justify-content:center;
  background:var(--navy-900);color:#fff;font-family:var(--mono);font-weight:600;
  border-radius:var(--radius-md);flex:0 0 auto;letter-spacing:.01em;
}
.mark--sm{width:32px;height:32px;font-size:16px}
.mark--chat{width:30px;height:30px;font-size:14px;border-radius:9px}
.mark--lg{width:52px;height:52px;font-size:25px;border-radius:15px;box-shadow:var(--shadow-soft)}

/* ════════════════ ВХОД ════════════════ */
.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(120% 120% at 50% 0%,#FBFCFE 0%,var(--bg) 60%)}
.login-card{
  width:100%;max-width:400px;background:var(--surface);border:1px solid var(--grey-250);
  border-radius:var(--radius-2xl);box-shadow:var(--shadow-lifted);padding:40px 36px;text-align:center;
}
.login-card .mark{margin:0 auto 18px}
.wordmark{margin:0;font-size:25px;font-weight:600;color:var(--navy-900);letter-spacing:.04em}
.tagline{margin:5px 0 26px;font-size:13px;color:var(--grey-500)}
.login-form{display:flex;flex-direction:column;gap:14px;text-align:left}
.field{display:flex;flex-direction:column;gap:6px}
.field__label{font-size:12px;font-weight:600;color:var(--grey-700)}
.field input,.input{
  height:44px;border:1px solid var(--grey-300);border-radius:var(--radius);
  padding:0 13px;font-size:14px;font-family:inherit;color:var(--ink);background:#fff;outline:none;
  transition:border-color .14s var(--ease),box-shadow .14s var(--ease);
}
.field input:focus,.input:focus{border-color:var(--blue-500);box-shadow:0 0 0 3px rgba(46,95,163,.13)}
.login-error{min-height:16px;font-size:12.5px;color:var(--danger)}
.login-note{margin:22px 0 0;font-size:12px;color:var(--grey-400);line-height:1.55}

/* ════════════════ КАРКАС ════════════════ */
.app,.master{display:flex;height:100vh;width:100%;overflow:hidden;background:var(--bg);color:var(--ink)}

/* ── Сайдбар (фирменный navy, спокойный и просторный) ──────── */
.sidebar{
  width:var(--sidebar-w);flex:0 0 var(--sidebar-w);height:100vh;background:var(--navy-900);
  border-right:none;display:flex;flex-direction:column;padding:18px 14px;color:#AEBCD6;
}
.sidebar__head{display:flex;align-items:center;gap:12px;padding:4px 8px 18px}
.sidebar__brand{line-height:1.2}
.sidebar__name{display:block;font-size:15.5px;font-weight:600;color:#fff;letter-spacing:-0.01em}
.sidebar__sub{display:block;font-size:10px;color:#7F90AD;text-transform:uppercase;letter-spacing:.07em;margin-top:1px}

/* переключатель блоков */
.block-switch{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;background:rgba(255,255,255,.06);border-radius:var(--radius);border:none}
.block-switch button{
  appearance:none;border:none;background:transparent;cursor:pointer;border-radius:9px;
  padding:9px 0;font-size:12.5px;font-weight:600;color:#94A6C4;transition:all .14s var(--ease);
}
.block-switch button:hover{color:#D6E0F0}
.block-switch button.active{background:#fff;color:var(--navy-900);box-shadow:0 1px 3px rgba(0,0,0,.2)}

.side-scroll{flex:1;overflow-y:auto;margin-top:18px;display:flex;flex-direction:column;gap:3px;min-height:0}
.nav-group-label{font-size:10px;font-weight:700;letter-spacing:0.09em;text-transform:uppercase;color:#5E7099;padding:6px 10px 8px}
.nav-item{
  display:flex;align-items:center;gap:12px;padding:9px 11px;border-radius:var(--radius);
  font-size:13.5px;color:#AEBCD6;cursor:pointer;transition:background .14s var(--ease),color .14s var(--ease);
  width:100%;text-align:left;appearance:none;background:none;border:none;font-family:inherit;
}
.nav-item svg{flex:0 0 auto;color:#5E7099;transition:color .14s var(--ease)}
.nav-item:hover{background:rgba(255,255,255,.07);color:#E7EDF7}
.nav-item.active{background:rgba(255,255,255,.12);color:#fff;font-weight:600}
.nav-item.active svg{color:#9FB6DC}

.admin-btn{
  display:flex;align-items:center;gap:11px;padding:10px 11px;margin-top:6px;border-radius:var(--radius);
  font-size:13px;font-weight:600;color:#AEBCD6;cursor:pointer;border:none;background:rgba(255,255,255,.06);
}
.admin-btn:hover{background:rgba(255,255,255,.1)}
.admin-btn.active{background:#fff;color:var(--navy-900)}
.admin-btn.active svg{color:var(--navy-900)}
.admin-btn svg{color:#5E7099}
.admin-btn .tag{margin-left:auto;font-size:9.5px;font-weight:700;letter-spacing:.05em;opacity:.65}

.sidebar__foot{display:flex;align-items:center;gap:11px;margin-top:12px;padding:11px 8px 4px;border-top:1px solid rgba(255,255,255,.08)}
.user__avatar{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.12);color:#BFD0EC;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;flex:0 0 auto}
.user__meta{line-height:1.25;min-width:0;flex:1}
.user__name{display:block;font-size:13px;font-weight:600;color:#EAF0FA;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.user__role{display:block;font-size:11px;color:#7F90AD}
.user__logout{appearance:none;border:none;background:transparent;cursor:pointer;color:#6E80A0;padding:7px;border-radius:9px;transition:all .14s var(--ease)}
.user__logout:hover{color:#fff;background:rgba(255,255,255,.1)}

/* ── Главная область ───────────────────────────────────────── */
.main{flex:1;min-width:0;display:flex;flex-direction:column;height:100vh}
.header{
  height:var(--header-h);flex:0 0 var(--header-h);border-bottom:1px solid var(--line-soft);
  background:var(--surface);display:flex;align-items:center;gap:14px;padding:0 28px;
}
/* «Просмотр трейдера» (мастер → «Трейдеры») — read-only банер над контентом. */
.view-as-banner{display:flex;align-items:center;gap:10px;padding:10px 28px;
  background:var(--warning-soft,#FFF6E5);border-bottom:1px solid var(--warning,#D8A23A);
  color:var(--navy-900);font-size:13px;font-weight:600}
.view-as-banner svg{flex:0 0 auto;color:var(--warning,#B8860B)}
.view-as-banner__text{flex:1}
/* Тёмная тема: баннер «просмотр аккаунта трейдера» был ярко-кремовым (--warning-soft без override) — вырвиглазно на тёмном. Приглушённый янтарь + ink-текст. */
[data-theme="dark"] .view-as-banner{background:rgba(217,146,10,.15);border-bottom-color:rgba(217,146,10,.45);color:var(--c-ink)}
[data-theme="dark"] .view-as-banner svg{color:var(--amber-500,#D9920A)}
#view-as-exit{margin-left:auto}
/* Read-only режим просмотра — глушим композер и все мутирующие контролы, не
   полагаясь только на бэкенд-блок (см. app.js _viewAsRewrite): пользователь не
   должен вообще видеть рабочий ввод там, где сохранить нельзя.
   ⚠️ Фикс аудита: 4 селектора ниже раньше не совпадали с реальной разметкой
   (.nb-new/#trade-del/.doc-form__save/.doc-form__check — настоящие id/классы
   #note-new/#trade-delete/#doc-form-save/#doc-form-check) — правило молча не
   срабатывало на них. Плюс добавлены контролы, изначально пропущенные:
   Контроль решений, дерево (новая папка/файл/закрепить), диктовка сделки,
   композер «Обработать по задаче» в блокноте, меню чата (переименовать/
   удалить/перенести). Сама запись всё равно заблокирована на сетевом уровне
   (_viewAsRewrite), это — второй, UX-слой защиты. */
body.view-as-trader .composer,
body.view-as-trader .rail__add,
body.view-as-trader #new-chat,
body.view-as-trader #proj-add,
body.view-as-trader #note-new,
body.view-as-trader #nb-del,
body.view-as-trader #nb-pin,
body.view-as-trader .nb-ai-btn,
body.view-as-trader .nb-ai-instruct,
body.view-as-trader #trade-new,
body.view-as-trader #trade-save,
body.view-as-trader #trade-delete,
body.view-as-trader #trade-extract,
body.view-as-trader #journal-import,
body.view-as-trader #journal-clear,
body.view-as-trader #doc-form-save,
body.view-as-trader #doc-form-check,
body.view-as-trader #dc-add,
body.view-as-trader [data-dc-edit],
body.view-as-trader [data-dc-del],
body.view-as-trader #node-newfolder,
body.view-as-trader #node-newfile,
body.view-as-trader #node-pin,
body.view-as-trader .chat-row__menu{
  display:none!important;
}
/* Журнал/таблица — читаются, но не редактируются кликом (в отличие от кнопок
   выше, тут скрывать нечего — это же сами данные трейдера, только выключаем
   интерактивность ячейки/select). */
body.view-as-trader .journal-cell,
body.view-as-trader .journal-inline{
  pointer-events:none!important;
}

.header__crumb{font-size:10px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--grey-400)}
.header__row{display:flex;align-items:baseline;gap:12px;min-width:0}
.header__title{margin:0;font-size:18px;font-weight:600;color:var(--navy-900);letter-spacing:-0.01em;white-space:nowrap}
.header__sub{font-size:12.5px;color:var(--grey-500);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.header__actions{display:flex;align-items:center;gap:10px;flex:0 0 auto;margin-left:auto}
.header__search{
  display:inline-flex;align-items:center;gap:10px;height:38px;padding:0 14px;min-width:230px;
  border:1px solid var(--grey-250);background:var(--bg);border-radius:var(--radius-lg);color:var(--grey-500);
  font-size:13px;cursor:pointer;transition:all .14s var(--ease);
}
.header__search:hover{border-color:var(--grey-300);background:#fff}
.header__search span{flex:1;text-align:left}
.menu-btn{display:none}
.kbd{font-family:var(--mono);font-size:11px;color:var(--grey-400);background:#fff;border:1px solid var(--grey-250);border-radius:6px;padding:2px 7px}

.content{flex:1;min-height:0;position:relative;background:var(--bg)}
.screen{height:100%;overflow-y:auto;box-sizing:border-box}
.screen--pad{padding:34px 38px 48px}
.screen-inner{margin:0 auto}
.screen-inner--narrow{max-width:760px}
.screen-inner--mid{max-width:880px}
.screen-inner--wide{max-width:1100px}

/* ════════════════ КНОПКИ / БЕЙДЖИ ════════════════ */
.btn{appearance:none;display:inline-flex;align-items:center;gap:8px;justify-content:center;
  height:38px;padding:0 16px;border-radius:var(--radius);font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;border:1px solid transparent;transition:background .14s var(--ease),border-color .14s var(--ease),box-shadow .14s var(--ease),transform .1s var(--ease)}
.btn:active{transform:translateY(.5px)}
.btn--primary{background:var(--blue-600);color:#fff;box-shadow:0 1px 2px rgba(36,76,134,.25)}
.btn--primary:hover{background:var(--blue-700)}
.btn--primary:disabled{opacity:.5;cursor:default;box-shadow:none}
.btn--ghost{background:#fff;border-color:var(--grey-300);color:var(--grey-700)}
.btn--ghost:hover{background:var(--grey-100);border-color:var(--grey-300)}
.btn--danger{background:var(--danger);color:#fff;border-color:var(--danger)}
.btn--danger:hover{background:#963030;border-color:#963030}
.btn--danger:disabled{opacity:.5;cursor:default}
.btn--sm{height:32px;padding:0 13px;font-size:12px;border-radius:9px}
.btn--full{width:100%}
.icon-btn{appearance:none;border:none;background:transparent;cursor:pointer;color:var(--grey-500);padding:8px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;transition:all .14s var(--ease)}
.icon-btn:hover{background:var(--grey-100);color:var(--navy-900)}

.badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;border-radius:7px;padding:3px 9px}
.badge--up{font-size:10.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:3px 9px;border-radius:7px}
.badge--info{color:var(--blue-700);background:var(--blue-100)}
.badge--success{color:var(--success);background:var(--success-bg)}
.badge--warning{color:var(--warning);background:var(--warning-bg)}
.badge--danger{color:var(--danger);background:var(--danger-bg)}
.badge--protected{color:var(--navy-900);background:var(--grey-200);border:1px solid var(--grey-300)}

.muted{color:var(--grey-500)}
.dim{color:var(--grey-400)}

/* ════════════════ ЧАТ ════════════════ */
.chat{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;position:relative;background:var(--bg)}
.chat__scroll{flex:1;min-height:0;overflow-y:auto;padding:36px 28px 28px}
.chat__col{max-width:780px;margin:0 auto;display:flex;flex-direction:column;gap:30px}

.msg{display:flex;flex-wrap:wrap;gap:14px;animation:jc-in .28s var(--ease)}
.msg--user{flex-direction:row-reverse}
.msg__body{min-width:0;max-width:640px}
.msg--user .msg__body{display:flex;flex-direction:column;align-items:flex-end}
.msg__who{font-size:11px;font-weight:700;letter-spacing:0.04em;color:var(--grey-500);margin-bottom:7px;padding:0 2px}
.msg__bubble{font-size:15px;line-height:1.65;color:var(--ink);white-space:pre-wrap;word-wrap:break-word}
/* Ответ ассистента — мягкая светлая плашка слева */
.msg--ai .msg__bubble,.msg--assistant .msg__bubble{
  background:var(--surface);border:1px solid var(--grey-250);border-radius:18px;border-top-left-radius:7px;
  padding:15px 19px;box-shadow:var(--shadow-soft);
}
/* Запрос пользователя — акцентная плашка справа */
.msg--user .msg__bubble{background:var(--blue-600);color:#fff;border:none;border-radius:18px;border-top-right-radius:7px;padding:12px 17px;box-shadow:0 2px 8px -2px rgba(36,76,134,.4)}
.msg__time{flex-basis:100%;margin-left:44px;font-size:11px;color:var(--grey-400)}
.msg--user .msg__time{margin-left:0;text-align:right}
/* Действия под ответом ВСЕГДА занимают своё место (высота зарезервирована — чат не
   скачет при наведении), но видны только на ховер/фокусе — как у Claude. */
.msg__actions{flex-basis:100%;margin-left:44px;margin-top:8px;height:32px;display:flex;gap:8px;opacity:0;pointer-events:none;transition:opacity .16s var(--ease)}
.msg--assistant:hover .msg__actions,.msg--user:hover .msg__actions,.msg__actions:focus-within{opacity:1;pointer-events:auto}
.msg--user .msg__actions{justify-content:flex-end}
/* Инлайн-редактирование своего сообщения (#5) */
.msg-edit{flex-basis:100%;display:flex;flex-direction:column;gap:8px;align-items:flex-end}
.msg-edit__ta{width:100%;max-width:78%;border:1px solid var(--blue-300);border-radius:14px;border-top-right-radius:5px;padding:11px 15px;font:inherit;font-size:14.5px;line-height:1.6;color:var(--ink);background:var(--surface);resize:none;outline:none;box-shadow:0 0 0 3px rgba(46,95,163,.12)}
.msg-edit__bar{display:flex;gap:8px}
.msg-act{appearance:none;border:1px solid var(--grey-250);background:var(--surface);color:var(--grey-600);font-size:12px;border-radius:8px;padding:5px 11px;cursor:pointer;transition:all .14s var(--ease)}
.msg-act:hover{background:var(--grey-100);color:var(--navy-900);border-color:var(--grey-300)}
.msg-act:disabled{opacity:.5;cursor:default;pointer-events:none}
.trade-from-chat{appearance:none;border:1px solid var(--grey-300);background:var(--surface);color:var(--blue-600);font-size:11px;border-radius:7px;padding:2px 8px;margin-left:6px;cursor:pointer;vertical-align:middle}
.trade-from-chat:hover{background:var(--blue-50)}

/* ═══ Обзор руководителя (мастер-аккаунт) ═══
   Премиальная переработка (2026-07): навигация переехала в левую рейку —
   .master-rail/.master-main переиспользуют ТЕ ЖЕ классы, что у трейдера
   (.rail/.rail__nav/.nav-i/.rail__foot/.main), поэтому вся «парящая стеклянная
   среда» (плита-шелл на aurora, ниже в разделе 5) и обе темы достаются даром —
   без них .master была плоским контейнером без блюра/скругления/маржи. */
.master{flex-direction:row}
.master-header{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:17px 26px;flex:0 0 auto;border-bottom:1px solid var(--line-soft)}
.master-header__lead{display:flex;flex-direction:column;gap:3px;min-width:0}
.master-header__crumb{font-size:11.5px;color:var(--grey-500);text-transform:uppercase;letter-spacing:.03em}
.master-header__title{margin:0;font-size:19px;font-weight:600;color:var(--navy-900);white-space:nowrap}
.master-subnav{display:flex;gap:8px;flex-wrap:wrap}
.master__pick{margin-left:auto;display:flex;align-items:center;gap:9px}
.master__pick-l{font-size:12px;color:var(--grey-600)}
.master__pick select{min-width:200px}
.master__body{flex:1;overflow:auto;padding:22px 26px}
/* Бейдж-счётчик на иконке рейки (архив/решения на согласовании) — цифра, не
   только цвет (research: badge должен читаться и без цвета/тултипа). */
.nav-i__badge{position:absolute;top:4px;right:4px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:#B23A3A;color:#fff;font-size:9.5px;font-weight:700;line-height:16px;text-align:center;box-shadow:0 0 0 2px rgba(15,25,45,.85)}
[data-theme="light"] .nav-i__badge{box-shadow:0 0 0 2px rgba(255,255,255,.9)}
/* #10/#19: личные чаты руководителя с ассистентом («Разбор с ассистентом») —
   сайдбар (папки+чаты) слева, открытый чат справа, как у трейдера. */
.master-advisor{height:100%;display:flex;gap:18px}
/* Владелец: сайдбар «просто на синем листе», кнопка и поиск «съехались» —
   у .master-advisor__side не было ни gap между детьми, ни собственного фона
   (в отличие от трейдерского .chat-history: gap:13px + background:var(--c-surface-2),
   благодаря которому сайдбар читается как отдельная панель, не голые элементы
   на фоне шелла). Собственная карточка-панель — тот же радиус (18px), что и
   премиум-карточки Монитора на этом же экране (#master-screen). */
.master-advisor__side{flex:0 0 264px;display:flex;flex-direction:column;gap:13px;min-height:0;
  border:1px solid var(--c-hair,var(--grey-250));background:var(--c-surface-2);
  border-radius:18px;padding:16px}
.master-advisor__side-bar{display:flex;gap:8px}
.master-advisor__side-bar .btn{flex:1}
.master-chat-tree{flex:1;overflow:auto}
.master-advisor__main{flex:1;min-width:0;display:flex;flex-direction:column;gap:12px}
.master-advisor__head{flex:0 0 auto}
.master-chat-title{width:100%;border:none;outline:none;background:transparent;font-size:19px;font-weight:700;color:var(--c-ink-strong,var(--navy-900));padding:4px 2px;border-radius:8px;transition:background-color .14s var(--ease)}
.master-chat-title:hover,.master-chat-title:focus{background:var(--c-glass-solid,var(--grey-100))}
.master-advisor__msgs{flex:1;overflow:auto;display:flex;flex-direction:column;gap:16px;padding-right:4px}
.master-advisor__composer{flex:0 0 auto;display:flex;gap:10px;align-items:flex-end;border:1px solid var(--c-glass-brd,var(--grey-250));background:var(--c-glass,#fff);border-radius:var(--radius-lg);padding:9px;box-shadow:var(--sh-card,var(--shadow-card))}
.master-advisor__composer textarea{flex:1;border:none;outline:none;resize:none;font:inherit;font-size:14px;line-height:1.55;background:transparent;color:var(--c-ink,var(--ink));min-height:38px;max-height:160px;padding:8px 6px}
.master-advisor__composer #mc-send{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-width:80px}
.master-empty{padding:26px;color:var(--grey-400);text-align:center}
.master-card__meta{font-size:12.5px;color:var(--grey-600);margin-bottom:10px}
/* П0-фикс: дата на карточке блокнота мастера (раньше её не рендерили вовсе) */
.master-card__date{margin-left:auto;font-size:11px;font-weight:600;color:var(--blue-700);background:var(--blue-50);border:1px solid #DCE6F4;border-radius:7px;padding:2px 8px;white-space:nowrap}

/* ── Инциденты (P0 #3 + research PagerDuty/Sentry/content-moderation):
   полоса цвета по серьёзности слева + раздельные бейджи «что» (категория) и
   «насколько уверен ИИ» (bucketed, не голая цифра) + шапка/тело/подвал. ── */
/* Полоса цвета по серьёзности задаётся ниже (!important, border-left-шорткат) —
   .master-card{border:1px solid...!important} (глас-слой) иначе перебивает её
   тем же приёмом, что и .master-card.ja--down/.ja--up (та же страница). */
.master-inc{padding:15px 18px}
.master-inc__head{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:10px}
.master-inc__sev{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:700;padding:3px 10px;border-radius:999px}
.master-inc__sev--critical{color:var(--danger);background:var(--danger-bg)}
.master-inc__sev--high{color:#9a5518;background:#FBEEDF}
.master-inc__sev--medium{color:var(--warning);background:var(--warning-bg)}
.master-inc__sev--low{color:var(--blue-700);background:var(--blue-100)}
.master-inc__conf{font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px;color:var(--grey-600);background:var(--grey-100);border:1px solid var(--grey-250)}
.master-inc__conf--high{color:var(--success);background:var(--success-bg);border-color:transparent}
.master-inc__conf--med{color:var(--warning);background:var(--warning-bg);border-color:transparent}
.master-inc__conf--low{color:var(--grey-500);background:transparent;border-style:dashed}
.master-inc__body{font-size:13px;line-height:1.6;color:var(--grey-700)}
.master-inc__foot{margin-top:11px;padding-top:10px;border-top:1px dashed var(--grey-200);
  display:flex;align-items:center;justify-content:flex-start;gap:10px}
.master-inc__src{appearance:none;border:none;background:none;padding:0;cursor:pointer;font-size:12px;font-weight:600;color:var(--blue-600,var(--c-accent));font-family:inherit}
.master-inc__src:hover{text-decoration:underline}
/* Владелец: ссылка «Открыть чат-источник» и круглая кнопка «Разобрать» стояли
   в противоположных углах карточки (space-between без ограничения ширины) —
   на широкой карточке читалось как два несвязанных элемента. Прижимаем кнопку
   вправо через margin-left:auto вместо растяжения на всю ширину подвала. */
.master-inc__foot .master-discuss{margin-left:auto}

/* ── Документы-карточки (решения/аудиты/спец-анализ журнала) — research:
   title+metadata strip + узкая мера чтения (~68ch) для длинного AI-текста +
   действия в отдельном подвале, вместо голой markdown-простыни. ── */
.master-doc-card{padding:18px 20px}
.master-doc-card__meta{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:11px;font-size:12.5px}
.master-doc-card__who{font-weight:600;color:var(--navy-900)}
.master-doc-card__ctx{color:var(--grey-500)}
.master-doc-card__body{max-width:70ch;font-size:13.5px;line-height:1.65;color:var(--ink)}
.master-doc-card__body :first-child{margin-top:0}
.master-doc-card__body :last-child{margin-bottom:0}
/* Владелец: Решения — не большими «облаками», а свёрнуты, раскрываются по
   клику. max-height (не line-clamp) — тело может содержать таблицы/списки от
   renderMarkdown, line-clamp с блочными детьми ведёт себя непредсказуемо.
   Фейд через mask-image (не оверлей-градиент сплошным цветом) — .master-card
   на самом деле полупрозрачное стекло (var(--c-glass)+blur), не сплошной
   фон, поэтому цветной оверлей дал бы видимый шов; маска корректно гасит
   сам контент независимо от того, что находится под карточкой. */
.master-doc-card__body--collapsed{max-height:110px;overflow:hidden;
  -webkit-mask-image:linear-gradient(to bottom,#000 70%,transparent 100%);
  mask-image:linear-gradient(to bottom,#000 70%,transparent 100%)}
.master-doc-card__toggle{appearance:none;border:none;background:none;padding:8px 0 0;margin:0;cursor:pointer;
  font-size:12.5px;font-weight:600;color:var(--c-accent,var(--blue-600));display:block}
.master-doc-card__toggle:hover{color:var(--c-accent-strong,var(--blue-700))}
.master-doc-card__foot{margin-top:12px;padding-top:12px;border-top:1px dashed var(--grey-200);display:flex;flex-direction:column;gap:10px}
.master-doc-card__foot-sp{flex:1}

/* ── Greeting-«шапка» лендинга «Разбор с ассистентом» (в духе Claude: эмблема +
   именной заголовок + рабочий инпут прямо на экране) — владелец явно попросил
   заменить прежнюю всплывающую карточку на встроенный экран «где сразу
   пишется». См. _masterHeroHtml()/masterChatCreate(projectId, initialText). */
.master-hero{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding:28px 0 26px}
.master-hero .emblem--xl{margin-bottom:6px}
.master-hero__eyebrow{margin:0;font-size:12.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--grey-400)}
.master-hero__title{margin:0;font-size:24px;font-weight:600;color:var(--navy-900);letter-spacing:-.01em}
.master-hero__quote{margin:6px 0 0;font-size:14.5px;font-style:italic;color:var(--grey-500);max-width:480px;line-height:1.55;text-align:center}
.master-hero__quote-lead{font-style:normal;font-weight:600;opacity:.8}
.master-hero__composer{width:100%;max-width:560px;margin-top:18px;display:flex;align-items:flex-end;gap:8px;
  border:1px solid var(--grey-300);border-radius:20px;background:#fff;padding:12px 12px 12px 18px;box-shadow:var(--shadow-lifted)}
.master-hero__composer textarea{flex:1;min-width:0;border:none;outline:none;resize:none;background:transparent;
  font:inherit;font-size:14.5px;color:var(--ink);max-height:160px;line-height:1.5}
.master-hero__composer textarea::placeholder{color:var(--grey-500)}
.master-menu-link{text-align:center;margin-top:14px}
/* Меню — те же 3 пункта рейки папками-карточками (masterRenderGreeting →
   _renderMasterMenu), тот же язык, что folder-card в Мониторе. */
.master-menu{padding:8px 0}
.master-menu__back{margin-bottom:16px}

/* ── «Обзор» — пульс по всем трейдерам (landing вместо слепого выбора) ── */
.master-overview__strip{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-bottom:20px;padding:16px 20px;border:1px solid var(--grey-250);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow-soft)}
.master-overview__strip-item{display:flex;align-items:baseline;gap:7px}
.master-overview__strip-item b{font-size:22px;font-weight:700;color:var(--navy-900);font-variant-numeric:tabular-nums}
.master-overview__strip-item span{font-size:12.5px;color:var(--grey-500)}
.master-overview__strip-item--flag b{color:var(--warning)}
.master-overview__strip-go{margin-left:auto}
.master-overview__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
.master-overview__card{border:1px solid var(--grey-250);border-radius:var(--radius-lg);background:#fff;padding:17px 19px;cursor:pointer;box-shadow:var(--shadow-soft);transition:border-color .14s var(--ease),box-shadow .18s var(--ease),transform .14s var(--ease)}
.master-overview__card:hover{border-color:#C7D3E5;box-shadow:var(--shadow-lifted);transform:translateY(-2px)}
.master-overview__card-h{display:flex;align-items:baseline;gap:7px;margin-bottom:13px}
.master-overview__card-h b{font-size:14.5px;color:var(--navy-900)}
.master-overview__card-u{font-size:12px;color:var(--grey-400)}
.master-overview__card-kpis{display:grid;grid-template-columns:1fr 1fr;gap:12px 10px}
.master-overview__card-kpis span{display:block;font-size:15px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink)}
.master-overview__card-kpis span.pos{color:var(--success)}
.master-overview__card-kpis span.neg{color:var(--danger)}
.master-overview__card-kpis small{display:block;font-size:11px;color:var(--grey-500);margin-top:1px;font-weight:500}
.master-overview__card-go{margin-top:13px;font-size:12px;font-weight:600;color:var(--blue-600)}
.master-overview__card-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:13px}
.master-overview__card-foot .master-overview__card-go{margin-top:0}
.master-combined{border:1px solid var(--grey-250);border-radius:var(--radius-lg);background:#fff;padding:17px 19px;box-shadow:var(--shadow-soft);margin-bottom:16px}
.master-combined__head{display:flex;align-items:baseline;gap:9px;font-size:14.5px;font-weight:700;color:var(--navy-900);margin-bottom:12px}
.master-combined__hint{font-size:11.5px;font-weight:500;color:var(--grey-500)}
.master-combined__checks{display:flex;flex-wrap:wrap;gap:8px 18px;margin-bottom:13px}
.master-combined__chk{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--ink);cursor:pointer}
.master-combined__chk input{accent-color:var(--blue-600);cursor:pointer}
/* П0-фикс (2026-07): раньше ВСЕ колонки — включая короткие дату/актив/R/исход —
   переносились по словам и сжимались в max-width:260px ("Почему зашёл"/"Описание
   ошибки" читались лапшой по одному слову в строке). Теперь короткие поля —
   узкие/nowrap, свободный текст (.master-td--area, type:"area" из /trades/fields) —
   в разы шире + перенос по словам; вся таблица растёт вширь и скроллится
   горизонтально (.master-tablewrap{overflow-x:auto} уже было). */
.master-tablewrap{overflow-x:auto;border:1px solid var(--grey-250);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow-soft)}
/* table-layout:fixed + <colgroup> (см. _journalColgroupHtml в app.js, общая с
   трейдерским .journal-table) — тот же баг «криво» на мастерском зеркале журнала. */
/* min-width:100% убрана — тот же баг растяжения колонок, что и .journal-table выше. */
.master-table{border-collapse:collapse;width:auto;table-layout:fixed;font-size:13px}
.master-table th,.master-table td{border-bottom:1px solid var(--line-soft);padding:10px 13px;text-align:left;white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis}
.master-table th{background:var(--surface-2);font-weight:600;color:var(--grey-600);font-size:11px;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}
.master-table th.master-th--area,.master-table td.master-td--area{white-space:normal;word-break:normal;overflow-wrap:break-word;overflow:visible;text-overflow:clip;min-width:320px;max-width:480px;line-height:1.55}
.master-trow{cursor:pointer}
.master-trow:hover{background:var(--blue-50)}
.master-trow-d td{background:var(--blue-50);font-size:12.5px;line-height:1.5;white-space:normal}
.master-split{display:flex;gap:18px;height:100%}
.master-list{flex:0 0 260px;display:flex;flex-direction:column;gap:5px;overflow:auto}
.master-li{appearance:none;text-align:left;border:1px solid var(--grey-250);background:#fff;border-radius:var(--radius);padding:10px 12px;font-size:13px;cursor:pointer;color:var(--ink);transition:all .14s var(--ease)}
.master-li:hover{background:var(--grey-100)}
.master-li.active{background:var(--blue-50);border-color:var(--blue-300);font-weight:600}
.master-conv-wrap{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px}
.master-conv-head{display:flex;justify-content:flex-end}
.master-conv{flex:1;overflow:auto;background:#fff;border:1px solid var(--grey-250);border-radius:var(--radius-lg);padding:18px;display:flex;flex-direction:column;gap:14px;box-shadow:var(--shadow-soft)}
.master-msg__r{font-size:11px;color:var(--grey-500);margin-bottom:3px}
.master-msg__t{margin-left:7px;color:var(--grey-400);font-weight:400}
.master-msg__c{font-size:13.5px;line-height:1.55}
.master-msg--assistant .master-msg__c{background:var(--grey-100);border-radius:14px;border-top-left-radius:5px;padding:10px 14px}
.master-msg--user .master-msg__c{background:var(--blue-100);border-radius:14px;border-top-right-radius:5px;padding:10px 14px;align-self:flex-end}
.master-card{border:1px solid var(--grey-250);border-radius:var(--radius-lg);background:#fff;padding:16px 18px;margin-bottom:14px;box-shadow:var(--shadow-soft)}
.master-card__h{display:flex;align-items:center;flex-wrap:wrap;gap:4px;font-weight:600;color:var(--navy-900);margin-bottom:9px;font-size:14px}
.master-doc__item{font-size:13px;line-height:1.5;margin:5px 0;padding-bottom:5px;border-bottom:1px dashed var(--grey-200)}
.master-note__c{font-size:13px;line-height:1.6;white-space:pre-wrap}
/* F2 мастер-дрилдаун: кликабельные строки/карточки → открыть источник */
tr.master-drill{cursor:pointer}
tr.master-drill:hover{background:rgba(18,179,166,.09)}
.master-card.master-drill{cursor:pointer;transition:border-color .14s var(--ease),box-shadow .14s var(--ease)}
.master-card.master-drill:hover{border-color:rgba(18,179,166,.55);box-shadow:var(--sh-card)}
.master-src{font-weight:500;font-size:11px;color:#0E8E83;background:rgba(18,179,166,.12);border-radius:6px;padding:1px 7px;margin-left:6px}
/* Журнал-picker: выбор сделки из диалога */
.tradepicker-list{display:flex;flex-direction:column;gap:8px;margin-top:8px;max-height:52vh;overflow:auto}
.tradepicker-item{appearance:none;text-align:left;border:1px solid var(--grey-250);background:#fff;border-radius:var(--radius);padding:11px 14px;font-size:13.5px;cursor:pointer;color:var(--ink);transition:background .14s var(--ease),border-color .14s var(--ease)}
.tradepicker-item:hover{background:rgba(18,179,166,.08);border-color:rgba(18,179,166,.45)}
/* F2: просмотр заметки целиком в мастер-оверлее */
.master-note-meta{font-size:12px;color:var(--s-muted);margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--line-soft)}
.master-deleted-badge{font-size:12px;color:#9a5b00;background:rgba(245,158,11,.14);border:1px solid rgba(245,158,11,.32);border-radius:8px;padding:7px 11px;margin-bottom:11px}
.master-note-rich{font-size:14px;line-height:1.65}
.master-note-rich h1,.master-note-rich h2,.master-note-rich h3{margin:.6em 0 .3em;line-height:1.25}
.master-note-rich ul,.master-note-rich ol{padding-left:1.4em;margin:.4em 0}
.master-note-rich p{margin:.4em 0}

/* Просмотр файла — .modal--wide{max-width:780px} (ниже) раньше молча резал
   .fv-modal's width:min(1180px,96vw) до 780px (max-width всегда ограничивает
   width, даже explicit) — окно чата-источника/документа у мастера и файл-вьюер
   трейдера были теснее задуманного. Явно снимаем ограничение для этой комбинации. */
.fv-modal{display:flex;flex-direction:column;max-height:90vh;width:min(1180px,96vw)}
.fv-modal.modal--wide{max-width:min(1180px,96vw)}
.fv-head{display:flex;align-items:center;gap:10px}
.fv-head .modal__title{flex:1;margin:0}
/* «Разобрать в чате» — на уровне заголовка модалки (владелец: раньше сливалась
   внутри тела/чата, нужно отдельно сверху). Пусто по умолчанию — не сломано,
   если конкретный вид детали не передаёт action-кнопку. */
.fv-head__actions{flex:0 0 auto;display:flex;gap:8px}
.fv-body{flex:1;overflow:auto;margin:14px 0;min-height:220px;border:1px solid var(--grey-250);border-radius:var(--radius-lg);background:var(--grey-100)}
.fv-note{padding:24px;color:var(--grey-500);text-align:center}
.fv-text{margin:0;padding:16px 18px;white-space:pre-wrap;word-wrap:break-word;font-size:13px;line-height:1.6;font-family:var(--mono);color:var(--ink);background:#fff}
.fv-center{display:flex;justify-content:center;align-items:flex-start;padding:16px;background:#fff;min-height:220px}
.fv-img{max-width:100%;height:auto;border-radius:8px}
.fv-pdf{width:100%;height:70vh;border:none;background:#fff}

/* Блокнот: список-карточки + rich-редактор */
.notes-toolbar{display:flex;justify-content:flex-end;margin:-4px 0 2px}
.note-card--clickable{cursor:pointer;transition:border-color .14s var(--ease)}
.note-card--clickable:hover{border-color:var(--blue-500)}
.note-card__title{font-weight:600;color:var(--navy-900);font-size:14px;margin:2px 0 4px}
.note-card__rich{color:var(--blue-600);font-weight:700;margin-left:4px}
.ne-modal{display:flex;flex-direction:column;max-height:90vh;width:min(860px,95vw)}
.ne-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.ne-title{flex:1;border:none;outline:none;font-size:19px;font-weight:600;color:var(--navy-900);background:transparent;font-family:inherit}
#ne-editor-box{display:flex;flex-direction:column;min-height:300px;max-height:62vh;overflow:hidden;background:#fff;border:1px solid var(--grey-300);border-radius:var(--radius-lg)}
#ne-editor-box .ql-toolbar{border:none;border-bottom:1px solid var(--grey-250);flex:0 0 auto}
#ne-editor-box .ql-container{border:none;flex:1;overflow:auto;font-size:15px;font-family:inherit}
#ne-editor-box .ql-editor{min-height:240px}

/* Просмотр Word/Excel с форматированием */
.fv-doc{padding:22px 26px;background:#fff;font-size:14.5px;line-height:1.7;color:var(--ink)}
.fv-doc h1,.fv-doc h2,.fv-doc h3{color:var(--navy-900);margin:16px 0 9px}
.fv-doc p{margin:0 0 11px}
.fv-doc table{border-collapse:collapse;margin:12px 0}
.fv-doc td,.fv-doc th{border:1px solid var(--grey-300);padding:7px 10px}
.fv-doc img{max-width:100%}
.fvx-sheet{margin:16px 18px 6px;font-size:13px;font-weight:600;color:var(--navy-900)}
.fvx-table{border-collapse:collapse;margin:0 18px 18px;font-size:12.5px;background:#fff}
.fvx-table td{border:1px solid var(--grey-300);padding:5px 9px;white-space:nowrap}
.fvx-more{margin:0 18px 16px;color:var(--grey-400);font-size:12px}

/* ═══ Блокнот: master-detail + rich-редактор (Quill) ═══ */
.nb{display:flex;height:100%;min-height:0}
.nb-list{flex:0 0 auto;width:300px;display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--line-soft);background:var(--surface-2)}
.nb-list__top{display:flex;flex-direction:column;gap:11px;padding:16px 14px 11px}
.nb-search{display:flex;align-items:center;gap:8px;border:1px solid var(--grey-300);background:#fff;border-radius:var(--radius);height:38px;padding:0 12px;color:var(--grey-400);transition:border-color .14s var(--ease)}
.nb-search:focus-within{border-color:var(--blue-500)}
.nb-search input{flex:1;border:none;outline:none;background:transparent;font-size:13px;color:var(--ink)}
.nb-filters{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px}
.nb-fil{appearance:none;border:1px solid var(--grey-250);background:#fff;border-radius:9px;padding:5px 11px;font-size:12px;color:var(--grey-600);cursor:pointer;white-space:nowrap;transition:all .14s var(--ease)}
.nb-fil:hover{background:var(--grey-100)}
.nb-fil.active{background:var(--navy-900);border-color:var(--navy-900);color:#fff;font-weight:600}
.nb-cards{flex:1;overflow-y:auto;min-height:0;display:flex;flex-direction:column;gap:6px;padding:4px 10px 16px}
.nb-cards__empty{padding:22px 10px;color:var(--grey-400);font-size:12.5px;text-align:center;line-height:1.6}
.nb-card{border:1px solid transparent;border-radius:var(--radius-md);padding:11px 13px;cursor:pointer;transition:all .14s var(--ease)}
.nb-card:hover{background:#fff;border-color:var(--grey-250);box-shadow:var(--shadow-card)}
.nb-card.active{background:#fff;border-color:var(--blue-500);box-shadow:var(--shadow-soft)}
.nb-card.flash{animation:jc-flash 1.6s ease-out}
@keyframes jc-flash{0%,30%{background:var(--blue-100);border-color:var(--blue-500);box-shadow:0 0 0 3px rgba(46,95,163,.18)}100%{background:transparent;box-shadow:none}}
.nb-card__head{display:flex;align-items:center;gap:7px;margin-bottom:4px}
.nb-card__cat{font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--grey-500)}
.nb-card__pin{font-size:10px}
.nb-card__time{margin-left:auto;font-family:var(--mono);font-size:11.5px;font-weight:600;color:var(--grey-500)}
.nb-card__title{font-size:14px;font-weight:600;color:var(--navy-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:3px}
.nb-card__prev{font-size:12.5px;color:var(--grey-500);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nb-card__date{margin-top:7px;display:inline-block;font-size:11px;font-weight:600;color:var(--blue-700);background:var(--blue-50);border:1px solid #DCE6F4;border-radius:7px;padding:2px 8px}

/* Дата события в редакторе заметки */
.nb-date{display:flex;align-items:center;gap:9px;margin:0 0 12px;padding:0;flex-wrap:wrap;color:var(--grey-500)}
.nb-date__lbl{font-size:12px;font-weight:600;color:var(--grey-600)}
.nb-date__in{border:1px solid var(--grey-300);border-radius:var(--radius);padding:6px 9px;font-size:12.5px;font-family:inherit;color:var(--ink);background:#fff;outline:none}
.nb-date__in:focus{border-color:var(--blue-500)}
.nb-date__in--t{width:100px}
.nb-date__btn{display:inline-flex;align-items:center;gap:6px;appearance:none;border:1px solid var(--blue-500);background:var(--blue-50);color:var(--blue-700);font-size:12px;font-weight:600;border-radius:8px;padding:6px 11px;cursor:pointer;transition:background .14s var(--ease)}
.nb-date__btn:hover{background:var(--blue-100)}
.nb-date__clear{appearance:none;border:none;background:transparent;color:var(--grey-400);cursor:pointer;font-size:13px;padding:3px 6px;border-radius:6px}
.nb-date__clear:hover{color:var(--danger);background:var(--danger-bg)}

/* Календарь */
.cal-wrap{display:flex;flex-direction:column;gap:16px;max-width:1120px}
.cal-bar{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--grey-250);border-radius:var(--radius-lg);padding:12px 16px;box-shadow:var(--shadow-soft)}
.cal-title{font-size:17px;font-weight:700;color:var(--navy-900);min-width:170px}
.cal-hint{margin-left:auto;font-size:12px;color:var(--grey-400)}
.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;padding:0 2px}
.cal-wd{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--grey-400);padding:0 8px}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
.cal-cell{min-height:104px;border:1px solid var(--grey-250);border-radius:var(--radius-md);background:#fff;padding:8px;display:flex;flex-direction:column;gap:5px;transition:border-color .14s var(--ease),box-shadow .14s var(--ease)}
.cal-cell--blank{background:transparent;border-color:transparent}
.cal-cell--day{cursor:pointer}
.cal-cell--day:hover{border-color:var(--blue-300);box-shadow:var(--shadow-soft)}
.cal-cell--today{border-color:var(--blue-500);box-shadow:0 0 0 1px var(--blue-500) inset}
.cal-cell__d{font-size:12.5px;font-weight:600;color:var(--grey-500);font-variant-numeric:tabular-nums}
.cal-cell--today .cal-cell__d{color:var(--blue-700)}
.cal-cell__evs{display:flex;flex-direction:column;gap:3px;overflow:hidden}
.cal-ev{appearance:none;text-align:left;border:none;background:var(--blue-50);color:var(--navy-900);font-size:11px;border-radius:7px;padding:3px 7px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-left:2px solid var(--blue-500)}
.cal-ev:hover{background:var(--blue-100)}
.cal-ev__t{font-variant-numeric:tabular-nums;color:var(--blue-700);font-weight:600}
@media (max-width:680px){.cal-cell{min-height:70px}.cal-ev{font-size:10px}}

.nb-resizer{flex:0 0 auto;width:6px;cursor:col-resize;background:transparent;transition:background .14s var(--ease)}
.nb-resizer:hover,.nb-resizer:active{background:var(--blue-100)}
.nb-editor{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--bg);min-height:0}
.nb-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--grey-400);font-size:14px;padding:28px;text-align:center;line-height:1.6}
.nb-doc{flex:1;display:flex;flex-direction:column;min-height:0}
/* Липкий тулбар форматирования */
#note-toolbar.ql-toolbar{border:none;padding:10px 22px}
#note-toolbar{display:flex;align-items:center;gap:5px;flex-wrap:wrap;background:rgba(255,255,255,.86);-webkit-backdrop-filter:saturate(1.6) blur(8px);backdrop-filter:saturate(1.6) blur(8px);border-bottom:1px solid var(--line-soft);position:sticky;top:0;z-index:6}
#note-toolbar button{width:32px;height:32px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;color:var(--grey-700);padding:0;float:none;transition:all .14s var(--ease)}
#note-toolbar button:hover{background:var(--grey-100);color:var(--navy-900)}
#note-toolbar button.ql-active{background:var(--blue-100);color:var(--blue-600)}
#note-toolbar button svg{width:15px;height:15px}
.nb-tbdiv{width:1px;height:20px;background:var(--grey-250);margin:0 5px}
.nb-save{margin-left:auto;font-family:var(--mono);font-size:11.5px;color:var(--grey-400)}
.nb-scroll{flex:1;overflow-y:auto;min-height:0}
.nb-title{display:block;width:100%;margin:6px 0 6px;padding:0;border:none;outline:none;background:transparent;font-size:30px;font-weight:700;letter-spacing:-.02em;color:var(--navy-900);font-family:inherit;line-height:1.2}
.nb-meta{display:flex;align-items:center;gap:10px;margin:0 0 10px;padding:0;flex-wrap:wrap}
.nb-cat-wrap{position:relative}
.nb-cat{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--grey-300);background:#fff;border-radius:9px;padding:5px 10px;font-size:12.5px;color:var(--grey-700);cursor:pointer;font-family:inherit}
.nb-cat:hover{background:var(--grey-100)}
.nb-cat-menu{position:absolute;top:38px;left:0;z-index:30;background:#fff;border:1px solid var(--grey-250);border-radius:var(--radius-md);box-shadow:var(--shadow-pop);padding:6px;width:216px}
.nb-cat-row{padding:9px 10px;border-radius:9px;cursor:pointer;font-size:12.5px;color:var(--ink)}
.nb-cat-row:hover{background:var(--grey-100)}
.nb-cat-row.active{font-weight:600;color:var(--navy-900)}
.nb-cat-row--re{border-top:1px solid var(--grey-200);margin-top:4px;color:var(--blue-600)}
.nb-pin{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--grey-300);background:#fff;border-radius:9px;padding:5px 10px;font-size:12.5px;color:var(--grey-600);cursor:pointer;font-family:inherit}
.nb-pin:hover{background:var(--grey-100)}
.nb-pin.active{color:var(--blue-600);border-color:#DCE6F4;background:var(--blue-50)}
.nb-stats{margin-left:auto;font-family:var(--mono);font-size:11.5px;color:var(--grey-400)}
.nb-del{appearance:none;border:1px solid transparent;background:transparent;color:var(--grey-400);font-size:12px;cursor:pointer;border-radius:9px;padding:5px 9px;font-family:inherit}
.nb-del:hover{color:var(--red-500);background:var(--danger-bg)}
#nb-quill{margin:0;padding:0;width:100%}
#nb-quill .ql-container{border:none;font-size:16px;font-family:inherit}
#nb-quill .ql-editor{padding:8px 0 10px;min-height:420px;line-height:1.78;color:var(--ink)}
#nb-quill .ql-editor.ql-blank::before{left:0;color:var(--grey-400);font-style:normal}
#nb-quill .ql-editor h1{font-size:26px;line-height:1.3;letter-spacing:-.01em;color:var(--navy-900)}
#nb-quill .ql-editor h2{font-size:20px;line-height:1.35;color:var(--navy-900)}
#nb-quill .ql-editor blockquote{border-left:3px solid var(--blue-500);background:var(--blue-50);padding:8px 14px;color:var(--grey-700);border-radius:0 8px 8px 0;margin:.7em 0}
/* Сетка редактора: «лист бумаги» + панель «Действия ИИ» */
.nb-doc-grid{display:flex;flex-wrap:wrap;gap:28px;align-items:flex-start;max-width:1160px;margin:0 auto;padding:30px 32px 44px}
.nb-doc-main{flex:1 1 380px;min-width:0;max-width:740px;background:#fff;border:1px solid var(--grey-250);border-radius:var(--radius-2xl);box-shadow:var(--shadow-lifted);padding:42px 48px 38px}
.nb-doc-main .nb-title{padding:0;margin:0 0 6px;border-bottom:1px solid var(--line-soft);padding-bottom:14px}
.nb-doc-main .nb-meta{padding:0;margin:14px 0 12px}
/* «← К списку» — ТОЛЬКО для узкого/мобильного экрана (там блокнот схлопывается в одну
   панель: список ИЛИ редактор). На десктопе список всегда виден слева, кнопка бессмысленна
   и путает. !important — потому что Quill вешает на #note-toolbar класс .ql-toolbar и его
   правило .ql-toolbar button (выше специфичность) иначе перебивает display:none и кнопка
   протекала на десктоп. */
.nb-back{display:none!important;align-items:center;gap:4px;appearance:none;border:1px solid var(--grey-300);background:#fff;color:var(--grey-700);font-size:12.5px;border-radius:var(--radius);padding:5px 11px;cursor:pointer;margin-right:6px}
@media (max-width:760px){
  .nb-resizer{display:none}
  .nb-list{width:100%;flex:1 1 auto;border-right:none}
  .nb-editor{display:none}
  .nb--editing .nb-list{display:none}
  .nb--editing .nb-editor{display:flex}
  .nb-back{display:inline-flex!important}
  .nb-doc-grid{padding:14px 14px 24px;gap:18px}
  .nb-doc-main{padding:22px 22px 24px;max-width:none}
  .nb-title{font-size:25px}
}
.nb-ai{flex:1 1 200px;min-width:190px;display:flex;flex-direction:column;gap:9px;position:sticky;top:14px}
.nb-ai__h{font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--grey-400);padding:2px 2px 2px}
.nb-ai-btn{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:1px solid var(--grey-250);background:#fff;border-radius:var(--radius-md);padding:11px 13px;font-size:12.5px;color:var(--ink);cursor:pointer;font-family:inherit;box-shadow:var(--shadow-card);transition:all .14s var(--ease)}
.nb-ai-btn svg{color:var(--blue-600);flex:0 0 auto}
.nb-ai-btn:hover{background:var(--blue-50);border-color:#DCE6F4}
.nb-ai-btn:disabled{opacity:.6;cursor:default}
.nb-ai-result{border:1px solid #DCE6F4;background:var(--blue-50);border-radius:var(--radius-md);padding:12px 13px;font-size:12.5px;line-height:1.55;color:var(--grey-700)}
.nb-ai-result__h{display:flex;align-items:center;gap:6px;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--blue-600);margin-bottom:7px}
.nb-ai-result__body{font-size:12.5px;line-height:1.55}
.nb-ai-result__body.md p{margin:0 0 6px}
.nb-ai-result__body.md ul,.nb-ai-result__body.md ol{margin:0 0 6px;padding-left:18px}
.nb-ai-result__body.md h2,.nb-ai-result__body.md h3{font-size:13px;margin:6px 0 4px;color:var(--navy-900)}
.nb-ai-result__row{display:flex;gap:6px;margin-top:9px}
.nb-ai-result__date{display:flex;align-items:center;gap:6px;margin-top:8px;padding:7px 10px;font-size:12px;line-height:1.4;color:var(--blue-700);background:var(--blue-100);border-radius:var(--radius);border:1px solid #DCE6F4}
/* «Умный блокнот» (2026-07-01): задача ассистенту по записи — переехала из-под
   заголовка записи СЮДА, под «Действия ИИ» (тот же композер, что просился в §16). */
.nb-ai-instruct{display:flex;flex-direction:column;gap:8px;border-radius:var(--radius-md);padding:10px}
.nb-ai-instruct textarea{border:none;outline:none;resize:none;background:transparent;font-family:inherit;font-size:12.5px;line-height:1.5;color:var(--ink);min-height:44px}
.nb-ai-instruct textarea::placeholder{color:var(--grey-400)}
.nb-ai-instruct__go{align-self:flex-end}
.nb-src{border:1px solid var(--grey-250);border-radius:var(--radius-md);padding:11px 13px}
.nb-src__h{font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--grey-400);margin-bottom:6px}
.nb-export{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--grey-300);background:#fff;border-radius:9px;padding:5px 10px;font-size:12px;color:var(--grey-600);cursor:pointer;font-family:inherit}
.nb-export:hover{background:var(--grey-100);color:var(--navy-900)}

/* Drop-зона папки */
#node-screen-inner.node-drop{outline:2px dashed var(--blue-500);outline-offset:-8px;background:var(--blue-50);border-radius:var(--radius-lg)}
#screen-node{position:relative}
.msg__files{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:9px}
.file-chip{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--grey-300);border-radius:9px;padding:5px 10px;font-size:12px;color:var(--navy-700);font-family:var(--mono)}
.thinking{display:inline-flex;gap:5px;align-items:center;height:1.5em}
.thinking span{width:7px;height:7px;border-radius:50%;background:var(--blue-500);animation:jc-dot 1.2s infinite}
.thinking span:nth-child(2){animation-delay:.2s}
.thinking span:nth-child(3){animation-delay:.4s}
.caret{display:inline-block;width:2px;height:1.05em;background:var(--blue-600);margin-left:2px;vertical-align:-2px;animation:jc-blink 1s steps(1) infinite}

/* пустое состояние чата */
.chat-empty{padding:64px 0 12px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px}
.chat-empty .mark{margin-bottom:8px}
.chat-empty__title{margin:0;font-size:24px;font-weight:600;color:var(--navy-900);letter-spacing:-0.01em}
.chat-empty__hint{margin:0;font-size:14px;color:var(--grey-500);max-width:420px;line-height:1.55}
.mode-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;width:100%;max-width:620px;margin-top:18px}
.mode-card{border:1px solid var(--grey-250);background:#fff;border-radius:var(--radius-lg);padding:15px 16px;text-align:left;cursor:pointer;box-shadow:var(--shadow-card);transition:all .14s var(--ease)}
.mode-card:hover{border-color:var(--blue-300);box-shadow:var(--shadow-soft);transform:translateY(-1px)}
.mode-card.active{border-color:var(--blue-500);box-shadow:0 0 0 2px rgba(46,95,163,.14),var(--shadow-soft)}
.mode-card__t{font-size:13.5px;font-weight:600;color:var(--navy-900);margin-bottom:5px}
.mode-card__d{font-size:12px;color:var(--grey-500);line-height:1.5}

/* композер — скруглённый, приподнятый, мягкая тень */
.composer{flex:0 0 auto;border-top:1px solid var(--line-soft);background:linear-gradient(to top,var(--bg) 60%,rgba(244,247,251,0));padding:8px 28px 22px}
.composer__col{max-width:780px;margin:0 auto}
.composer__bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.mode-seg{display:inline-flex;background:#fff;border:1px solid var(--grey-250);border-radius:var(--radius);padding:3px;gap:3px;flex-wrap:wrap;box-shadow:var(--shadow-card)}
.mode-seg button{appearance:none;border:none;background:transparent;cursor:pointer;border-radius:8px;padding:7px 13px;font-size:12.5px;font-weight:500;color:var(--grey-500);transition:all .14s var(--ease)}
.mode-seg button:hover{color:var(--navy-900)}
.mode-seg button.active{background:var(--blue-600);color:#fff;font-weight:600}
.composer__box{border:1px solid var(--grey-300);border-radius:var(--radius-2xl);background:#fff;padding:14px 16px 11px;box-shadow:var(--shadow-lifted);transition:border-color .14s var(--ease),box-shadow .14s var(--ease)}
.composer__box:focus-within{border-color:var(--blue-500);box-shadow:0 0 0 3px rgba(46,95,163,.1),var(--shadow-lifted)}
.composer__chips{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:10px}
.composer__input{width:100%;border:none;outline:none;resize:none;background:transparent;font-size:15px;line-height:1.6;color:var(--ink);padding:2px;min-height:48px;display:block;font-family:inherit}
.composer__input::placeholder{color:var(--grey-400)}
.composer__row{display:flex;align-items:center;gap:11px;margin-top:8px}
.composer__hint{margin-left:auto;font-size:11.5px;color:var(--grey-400);font-family:var(--mono)}
.btn--send{width:38px;height:38px;padding:0;border-radius:var(--radius-md);background:var(--blue-600);color:#fff;border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 2px 8px -2px rgba(36,76,134,.5);transition:background .14s var(--ease),transform .1s var(--ease)}
.btn--send:hover{background:var(--blue-700)}
.btn--send:active{transform:scale(.94)}
.btn--send:disabled{opacity:.45;cursor:default;box-shadow:none}
.btn--send--stop,.btn--send--stop:hover{background:var(--blue-600)}
/* Голосовой ввод (микрофон) в композере */
.mic-btn{position:relative}
.mic-btn__ico{display:inline-block}
.mic-btn__dot{display:none}
.mic-btn--rec{color:var(--danger,#B23A3A)!important;border-color:var(--danger,#B23A3A)!important;background:var(--danger-bg,#F8ECEC)!important}
.mic-btn--rec .mic-btn__ico{color:var(--danger,#B23A3A)}
.mic-btn--rec .mic-btn__dot{display:block;position:absolute;top:2px;right:2px;width:7px;height:7px;border-radius:50%;background:var(--danger,#B23A3A);box-shadow:0 0 0 2px #fff;animation:mic-pulse 1s ease-in-out infinite}
@keyframes mic-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.65)}}
.mic-btn--busy{opacity:.6;cursor:default}
.mic-btn--busy .mic-btn__ico{animation:mic-blink 1s ease-in-out infinite}
@keyframes mic-blink{0%,100%{opacity:1}50%{opacity:.25}}
[data-theme="dark"] .mic-btn--rec{background:rgba(178,58,58,.16)!important}
.msg__stopped{font-size:12px;color:var(--grey-400);margin-top:6px;font-style:italic}
.msg__stopped--err{color:var(--red-500,#D64545)}
.composer__note{margin:10px 0 0;font-size:11px;color:var(--grey-400);text-align:center}

/* ════════════════ БЛОКНОТ (быстрые заметки) ════════════════ */
.note-entry{border:1px solid var(--grey-250);border-radius:var(--radius-lg);background:#fff;padding:16px 18px 13px;box-shadow:var(--shadow-soft)}
.note-entry__head{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.note-entry__title{font-size:12.5px;color:var(--grey-700);font-weight:600}
.note-entry__hint{margin-left:auto;font-size:11.5px;color:var(--grey-400)}
.note-entry textarea{width:100%;border:none;outline:none;resize:none;background:transparent;font-size:14.5px;line-height:1.6;color:var(--ink);min-height:46px;display:block;font-family:inherit}
.note-entry__row{display:flex;align-items:center;margin-top:6px}
.note-filters{display:flex;gap:8px;flex-wrap:wrap}
.notes-list{display:flex;flex-direction:column;gap:12px}
.note-card{background:#fff;border:1px solid var(--grey-250);border-radius:var(--radius-md);padding:15px 17px;box-shadow:var(--shadow-card);animation:jc-in .2s ease}
.note-card__head{display:flex;align-items:center;gap:10px;margin-bottom:9px}
.note-cat{display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase}
.note-cat .dot{width:7px;height:7px;border-radius:50%}
.note-sorting{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;font-weight:600;color:var(--grey-500)}
.spinner{width:12px;height:12px;border:1.8px solid #C7D3E5;border-top-color:var(--blue-600);border-radius:50%;animation:jc-spin .7s linear infinite;display:inline-block}
.note-card__time{margin-left:auto;font-family:var(--mono);font-size:11.5px;color:var(--grey-400)}
.note-card__text{font-size:14.5px;line-height:1.62;color:var(--ink);white-space:pre-wrap}
.note-card__actions{display:flex;gap:8px;margin-top:11px;opacity:0;transition:opacity .14s var(--ease)}
.note-card:hover .note-card__actions{opacity:1}

/* ════════════════ АРХИВ ════════════════ */
.card-grid{display:grid;gap:16px}
.card-grid--folders{grid-template-columns:repeat(auto-fill,minmax(252px,1fr))}
.card-grid--docs{grid-template-columns:repeat(auto-fill,minmax(308px,1fr))}
.folder-card{background:#fff;border:1px solid var(--grey-250);border-radius:var(--radius-xl);padding:20px;display:flex;flex-direction:column;gap:14px;cursor:pointer;box-shadow:var(--shadow-soft);transition:border-color .14s var(--ease),box-shadow .18s var(--ease),transform .14s var(--ease)}
.folder-card:hover{box-shadow:var(--shadow-lifted);transform:translateY(-2px);border-color:#C7D3E5}
.folder-card--protected{background:var(--blue-50);border:1px solid var(--grey-300);border-left:3px solid var(--navy-900)}
.folder-card__top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.folder-ico{width:40px;height:40px;border-radius:var(--radius-md);background:var(--blue-100);color:var(--blue-600);display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.folder-card--protected .folder-ico{background:var(--grey-200);color:var(--navy-900)}
.folder-card__name{font-size:14.5px;font-weight:600;color:var(--navy-900)}
.folder-card__desc{font-size:12px;color:var(--grey-500);margin-top:4px;line-height:1.5}
.folder-card__cnt{font-family:var(--mono);font-size:12px;color:var(--grey-500);font-variant-numeric:tabular-nums}

/* ═══ ДАШБОРД ГЛАВНОГО ЭКРАНА («Встреча 8» v2, подпись блока — «Встреча 9» п.5) —
   hero слева + виджеты справа. Живые данные с анимацией: у сотрудника —
   эквити-кривая сделок + события; у руководителя — сводка по команде +
   предстоящие события + инциденты/решения. Единый каркас .dash-page/.dash-shell.
   .dash-page — тот же max-width/центровка, что раньше жили на .dash-shell,
   вынесены на уровень выше, чтобы подпись блока ".dash-block-head" (паттерн
   .node-head — иконка+название) шла НАД всей раскладкой (hero+виджеты), а не
   внутри hero — иначе у hero (он текстово центрирован) заголовок съезжал бы
   вслед за центровкой вместо «слева сверху», как везде в интерфейсе. */
.dash-page{max-width:1040px;margin:0 auto;padding:0 4px}
.node-head.dash-block-head{margin:14px 4px 6px}
.dash-shell{display:grid;grid-template-columns:minmax(320px,1fr) minmax(340px,1.15fr);gap:28px;align-items:start;padding:8px 0 40px;animation:dash-in .5s var(--ease) both}
@keyframes dash-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.dash-hero{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding:18px 8px 8px;position:sticky;top:8px}
.dash-hero .emblem--xl{margin-bottom:6px}
.dash-hero__title{margin:0;font-size:24px;font-weight:600;color:var(--navy-900);letter-spacing:-.01em}
.dash-hero__quote{margin:6px 0 2px;font-size:14px;font-style:italic;color:var(--grey-500);max-width:440px;line-height:1.55}
.dash-hero__quote-lead{font-style:normal;font-weight:600;opacity:.8}
.dash-hero__composer{width:100%;max-width:520px;margin-top:18px;display:flex;align-items:flex-end;gap:8px;background:#fff;border:1px solid var(--grey-250);border-radius:var(--radius-xl);padding:10px 10px 10px 16px;box-shadow:var(--shadow-soft);transition:box-shadow .18s var(--ease),border-color .14s var(--ease)}
.dash-hero__composer:focus-within{box-shadow:var(--shadow-lifted);border-color:var(--blue-300)}
.dash-hero__composer textarea{flex:1;min-width:0;border:none;outline:none;resize:none;background:transparent;font-family:inherit;font-size:14.5px;color:var(--ink);max-height:160px;padding:6px 0}
.dash-hero__composer textarea::placeholder{color:var(--grey-500)}
.dash-hero__menu-link{margin-top:16px;background:none;border:none;cursor:pointer;font-family:inherit;font-size:13.5px;font-weight:600;color:var(--blue-600);padding:8px 14px;border-radius:var(--radius);transition:background .14s var(--ease),gap .14s}
.dash-hero__menu-link:hover{background:var(--blue-50)}
/* Колонка виджетов: одинаковая ширина (карточки — блочные дети flex-column, ширина
   колонки задаётся grid-template-columns выше), одинаковый ритм между карточками. */
.dash-side{display:flex;flex-direction:column;gap:18px;padding-top:10px;align-items:stretch}

.dash-panel{background:#fff;border:1px solid var(--grey-250);border-radius:var(--radius-xl);padding:18px 20px;box-shadow:var(--shadow-soft);transition:box-shadow .18s var(--ease),border-color .14s var(--ease);animation:dash-panel-in .5s var(--ease) both}
.dash-panel+.dash-panel{animation-delay:.08s}
@keyframes dash-panel-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.dash-panel[onclick],.dash-panel--chart,.dash-panel--team{cursor:pointer}
.dash-panel--demo{cursor:default}
.dash-panel:hover{box-shadow:var(--shadow-lifted);border-color:#C7D3E5}
.dash-panel--demo:hover{box-shadow:var(--shadow-soft);border-color:var(--grey-250)}
/* Заголовки панелей — были мелкие/серые/uppercase, владелец попросил «чуть
   заметнее, но без кричащего»: чуть крупнее+темнее+без uppercase, лёгкий
   разделитель снизу вместо только отступа (тоньше самого текста, не акцент). */
.dash-panel__h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px;padding-bottom:11px;border-bottom:1px solid var(--grey-100)}
.dash-panel__t{font-size:13.5px;font-weight:700;letter-spacing:-.005em;color:var(--navy-900)}
.dash-panel__demo{font-size:11px;font-weight:600;color:var(--grey-400);background:var(--grey-100);padding:2px 8px;border-radius:20px}
.dash-panel__empty,.dash-panel__hint{font-size:13px;color:var(--grey-500);padding:6px 0 2px}
.dash-panel__hint{text-align:center;margin-top:8px}
.dash-chips{display:flex;gap:6px;flex-wrap:wrap}
.dash-chip{font-size:11.5px;font-weight:600;color:var(--grey-700);background:var(--grey-100);padding:3px 9px;border-radius:20px;font-variant-numeric:tabular-nums}
.dash-chip.pos{color:var(--success);background:rgba(47,125,91,.10)}
.dash-chip.neg{color:var(--danger);background:rgba(178,58,58,.10)}

/* эквити-кривая */
.dash-curve-wrap{width:100%}
.dash-curve{width:100%;height:auto;display:block;overflow:visible}
.dash-curve__zero{stroke:var(--grey-250);stroke-width:1;stroke-dasharray:3 4}
.dash-curve__line{stroke:var(--blue-500);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.dash-panel--demo .dash-curve__line{stroke:var(--grey-400);stroke-dasharray:4 5}
.dash-panel--demo .dash-curve__area{opacity:.4}
.dash-curve__area{opacity:0;animation:dash-area-in .9s .35s var(--ease) forwards}
@keyframes dash-area-in{to{opacity:1}}
.dash-curve__dot{fill:var(--blue-600);stroke:#fff;stroke-width:2;opacity:0;animation:dash-dot-in .35s 1.15s var(--ease) forwards}
.dash-panel--demo .dash-curve__dot{fill:var(--grey-400)}
@keyframes dash-dot-in{from{opacity:0;transform:scale(.2)}to{opacity:1;transform:scale(1)}}
.dash-curve__dot{transform-box:fill-box;transform-origin:center}

/* события (сотрудник + мастер) */
.dash-events{display:flex;flex-direction:column;gap:2px}
.dash-event{display:flex;align-items:center;gap:11px;padding:9px 6px;border-radius:var(--radius);cursor:pointer;opacity:0;animation:dash-ev-in .4s var(--ease) forwards;animation-delay:calc(var(--i,0)*.06s + .1s);transition:background .14s var(--ease)}
.dash-event:hover{background:var(--grey-100)}
@keyframes dash-ev-in{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:none}}
.dash-event__dot{width:8px;height:8px;border-radius:50%;background:var(--blue-500);flex:0 0 auto}
.dash-event--warn .dash-event__dot{background:var(--warning)}
.dash-event--incident .dash-event__dot{background:var(--danger)}
.dash-event--decision .dash-event__dot{background:var(--success)}
.dash-event__body{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}
.dash-event__t{font-size:13.5px;font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dash-event--warn .dash-event__t{font-weight:600;color:var(--warning)}
.dash-event__when{font-size:11.5px;color:var(--grey-500)}
.dash-event__arrow{color:var(--warning);font-weight:700;flex:0 0 auto}

/* команда (мастер) */
.dash-team{display:flex;flex-direction:column;gap:13px}
.dash-team-row{cursor:pointer;opacity:0;animation:dash-ev-in .4s var(--ease) forwards;animation-delay:calc(var(--i,0)*.07s + .1s)}
.dash-team-row__top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.dash-team-row__name{font-size:13.5px;font-weight:600;color:var(--navy-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dash-team-row__r{font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}
.dash-team-row__r.pos{color:var(--success)}.dash-team-row__r.neg{color:var(--danger)}
.dash-team-row__bar{height:6px;border-radius:6px;background:var(--grey-100);margin:5px 0 3px;overflow:hidden}
.dash-team-row__fill{display:block;height:100%;width:0;border-radius:6px;animation:dash-bar-grow .8s .15s cubic-bezier(.4,0,.2,1) forwards}
.dash-team-row__fill.pos{background:linear-gradient(90deg,var(--blue-400,#6d9dd6),var(--blue-600))}
.dash-team-row__fill.neg{background:linear-gradient(90deg,#d98a8a,var(--danger))}
@keyframes dash-bar-grow{to{width:var(--w,0)}}
.dash-team-row__sub{font-size:11.5px;color:var(--grey-500)}

/* skeleton загрузки */
.dash-skel{border-radius:var(--radius);background:linear-gradient(90deg,var(--grey-100) 25%,var(--grey-200) 50%,var(--grey-100) 75%);background-size:200% 100%;animation:dash-shimmer 1.3s ease-in-out infinite}
@keyframes dash-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* меню выбора (Ассистент / Корп.документация) */
.dash-menu{max-width:720px;margin:0 auto;padding:8px 4px 40px;animation:dash-in .4s var(--ease) both}
.dash-menu__back{margin-bottom:20px}
.dash-menu__grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.dash-menu-card{background:#fff;border:1px solid var(--grey-250);border-radius:var(--radius-2xl);padding:28px 24px;display:flex;flex-direction:column;gap:10px;cursor:pointer;box-shadow:var(--shadow-soft);transition:border-color .16s var(--ease),box-shadow .2s var(--ease),transform .16s var(--ease);position:relative;overflow:hidden}
.dash-menu-card::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--blue-500),var(--navy-700));opacity:0;transition:opacity .2s var(--ease)}
.dash-menu-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lifted);border-color:#C7D3E5}
.dash-menu-card:hover::before{opacity:1}
.dash-menu-card__ico{width:56px;height:56px;border-radius:var(--radius-lg);background:var(--blue-100);color:var(--blue-600);display:flex;align-items:center;justify-content:center;margin-bottom:6px}
.dash-menu-card__name{font-size:17px;font-weight:600;color:var(--navy-900)}
.dash-menu-card__desc{font-size:13px;color:var(--grey-500);line-height:1.5;flex:1}
.dash-menu-card__go{font-size:13px;font-weight:600;color:var(--blue-600);margin-top:6px}

@media (max-width:900px){.dash-page{max-width:560px}.dash-shell{grid-template-columns:1fr;gap:18px}.dash-hero{position:static;padding-top:12px}.dash-menu__grid{grid-template-columns:1fr}}

[data-theme="dark"] .dash-hero__title{color:var(--c-ink-strong)!important}
/* .dash-panel__t НЕ в списке ниже (владелец, «Встреча 9» п.2): заголовок
   панели теперь навy-900/c-ink-strong (чуть заметнее), не тусклый faint. */
[data-theme="dark"] .dash-hero__quote,[data-theme="dark"] .dash-event__when,[data-theme="dark"] .dash-team-row__sub{color:var(--c-ink-faint)!important}
[data-theme="dark"] .dash-panel__h{border-bottom-color:var(--c-hair)!important}
[data-theme="dark"] .dash-hero__composer,[data-theme="dark"] .dash-panel,[data-theme="dark"] .dash-menu-card{background:var(--c-glass)!important;-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border-color:var(--c-glass-brd)!important}
[data-theme="dark"] .dash-hero__composer textarea,[data-theme="dark"] .dash-event__t,[data-theme="dark"] .dash-team-row__name,[data-theme="dark"] .dash-menu-card__name{color:var(--c-ink)!important}
[data-theme="dark"] .dash-chip,[data-theme="dark"] .dash-team-row__bar{background:var(--c-surface-h)!important}

/* таблицы данных (плоские) */
.data-card{background:#fff;border:1px solid var(--grey-250);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-soft)}
.data-table{width:100%;border-collapse:collapse;font-size:13px}
.data-table th{text-align:left;padding:12px 17px;border-bottom:1px solid var(--grey-250);font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--grey-500);font-weight:700;white-space:nowrap;background:var(--surface-2)}
.data-table th.r,.data-table td.r{text-align:right}
.data-table td{padding:13px 17px;border-bottom:1px solid var(--line-soft);color:var(--grey-700)}
.data-table tr:last-child td{border-bottom:none}
.data-table tr.is-incident{background:var(--danger-row)}
.toolbar{display:flex;align-items:center;margin-bottom:16px;gap:12px;flex-wrap:wrap}
.toolbar__spacer{margin-left:auto}
.tag-long{font-size:11px;color:var(--success);background:var(--success-bg);border-radius:6px;padding:2px 7px;margin-left:4px}
.tag-short{font-size:11px;color:var(--danger);background:var(--danger-bg);border-radius:6px;padding:2px 7px;margin-left:4px}

/* документы */
.doc-card{background:#fff;border:1px solid var(--grey-250);border-radius:var(--radius-lg);padding:19px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow-soft);transition:border-color .14s var(--ease),box-shadow .18s var(--ease),transform .14s var(--ease)}
.doc-card:hover{border-color:#C7D3E5;box-shadow:var(--shadow-lifted);transform:translateY(-1px)}
.doc-card--form{border-left:3px solid var(--blue-600)}
.doc-card__t{font-size:14.5px;font-weight:600;color:var(--navy-900)}
.doc-card__d{font-size:12.5px;color:var(--grey-700);line-height:1.55}
.doc-card__meta{margin-top:auto;font-family:var(--mono);font-size:11.5px;color:var(--grey-400)}

mark{background:#FFF1C9;color:inherit;padding:0 2px;border-radius:3px}

/* таймлайн */
.timeline{background:#fff;border:1px solid var(--grey-250);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-soft)}
.timeline__row{display:flex;align-items:center;gap:15px;padding:16px 18px;border-bottom:1px solid var(--line-soft)}
.timeline__row:last-child{border-bottom:none}
.timeline__time{font-family:var(--mono);font-size:13px;color:var(--navy-700);font-variant-numeric:tabular-nums;width:48px;flex:0 0 auto}
.timeline__dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}
.timeline__text{font-size:13.5px;color:var(--ink);flex:1}

/* расшифровка */
.dropzone{border:1.5px dashed #C7D3E5;border-radius:var(--radius-xl);background:#fff;padding:38px 22px;display:flex;flex-direction:column;align-items:center;gap:11px;text-align:center;box-shadow:var(--shadow-soft)}
.dropzone.drag{border-color:var(--blue-500);background:var(--blue-50)}
.dropzone__ico{width:48px;height:48px;border-radius:var(--radius-md);background:var(--blue-100);color:var(--blue-600);display:flex;align-items:center;justify-content:center}
.dropzone__t{font-size:14.5px;font-weight:600;color:var(--navy-900)}
.dropzone__d{font-size:12.5px;color:var(--grey-500)}
.tr-item{background:#fff;border:1px solid var(--grey-250);border-radius:var(--radius-lg);display:flex;align-items:center;gap:15px;padding:15px 17px;box-shadow:var(--shadow-card)}

/* ════════════════ СЛУЖЕБНЫЙ СЛОЙ ════════════════ */
.inc-card{background:#fff;border:1px solid var(--grey-250);border-radius:var(--radius-lg);padding:17px 19px;box-shadow:var(--shadow-soft)}
.inc-card--rude{border-left:3px solid var(--danger)}
.inc-card--rule{border-left:3px solid var(--warning)}
.inc-card__head{display:flex;align-items:center;gap:10px;margin-bottom:9px}
.inc-card__title{font-size:13.5px;font-weight:600;color:var(--navy-900)}
.inc-card__meta{margin-left:auto;font-family:var(--mono);font-size:11.5px;color:var(--grey-400)}
.inc-card__body{font-size:13px;color:var(--grey-700);line-height:1.55;margin-bottom:11px}
.link{color:var(--blue-600);cursor:pointer;font-weight:500;font-size:12.5px}
.link:hover{text-decoration:underline}

/* инструкции — таймлайн версий + редактор */
.ver-card{display:flex;gap:15px;background:#fff;border:1px solid var(--grey-250);border-radius:var(--radius-lg);padding:17px 19px;box-shadow:var(--shadow-soft)}
.ver-card--current{border-left:3px solid var(--blue-600)}
.ver-num{flex:0 0 52px;height:52px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:18px;font-weight:600;font-variant-numeric:tabular-nums;background:var(--grey-100);color:var(--grey-500)}
.ver-card--current .ver-num{background:var(--blue-100);color:var(--blue-700)}
.ver-card__head{display:flex;align-items:center;gap:10px;margin-bottom:5px}
.ver-card__title{font-size:14px;font-weight:600;color:var(--navy-900)}
.ver-card__meta{font-family:var(--mono);font-size:11.5px;color:var(--grey-400);margin-bottom:7px}
.ver-card__desc{font-size:12.5px;color:var(--grey-700);line-height:1.55}
.editor-split{display:grid;grid-template-columns:240px 1fr;gap:18px}
.editor-list{display:flex;flex-direction:column;gap:4px}
.editor-list__item{padding:10px 12px;border-radius:var(--radius);font-size:13px;color:var(--grey-700);cursor:pointer;border:1px solid transparent}
.editor-list__item:hover{background:var(--grey-100)}
.editor-list__item.active{background:var(--blue-50);color:var(--navy-900);font-weight:600;border-color:var(--blue-300)}
.editor-pane{background:#fff;border:1px solid var(--grey-250);border-radius:var(--radius-lg);padding:18px;display:flex;flex-direction:column;gap:13px;box-shadow:var(--shadow-soft)}
.editor-pane__head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.editor-textarea{width:100%;min-height:320px;border:1px solid var(--grey-300);border-radius:var(--radius);padding:13px;font-family:var(--mono);font-size:12.5px;line-height:1.65;color:var(--ink);resize:vertical;outline:none}
.editor-textarea:focus{border-color:var(--blue-500)}
.editor-actions{display:flex;align-items:center;gap:10px}

/* отчёты — номерные плашки */
.report-card{display:flex;background:#fff;border:1px solid var(--grey-250);border-left:3px solid var(--blue-600);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-soft)}
.report-card--audit{border-left-color:var(--navy-900)}
.report-num{flex:0 0 94px;background:var(--blue-50);border-right:1px solid var(--grey-200);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:30px;font-weight:600;color:var(--blue-700);font-variant-numeric:tabular-nums}
.report-card--audit .report-num{color:var(--navy-900)}
.report-body{padding:18px 20px;flex:1}
.report-body__head{display:flex;align-items:baseline;gap:10px;margin-bottom:10px}
.report-body__title{font-size:15px;font-weight:600;color:var(--navy-900)}
.report-body__date{font-family:var(--mono);font-size:11.5px;color:var(--grey-400)}
.report-body ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--grey-700);line-height:1.55}

/* ════════════════ МОДАЛКИ / ТОСТЫ ════════════════ */
.overlay{position:fixed;inset:0;background:rgba(20,35,63,.4);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:50;padding:24px;animation:jc-in .16s var(--ease)}
.overlay--top{align-items:flex-start;padding-top:12vh}
#confirm-overlay,#prompt-overlay{z-index:70}
.palette{background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-pop);width:100%;max-width:620px;display:flex;flex-direction:column;max-height:72vh;overflow:hidden}
.palette__bar{display:flex;align-items:center;gap:11px;padding:16px 18px;border-bottom:1px solid var(--grey-200);color:var(--grey-400)}
.palette__bar input{flex:1;min-width:0;border:none;outline:none;background:transparent;font-size:15.5px;color:var(--ink);font-family:inherit}
.palette__esc{flex:0 0 auto;font-family:var(--mono);font-size:10.5px;color:var(--grey-400);border:1px solid var(--grey-300);border-radius:6px;padding:2px 7px}
.palette__close{flex:0 0 auto;appearance:none;border:none;background:transparent;color:var(--grey-400);font-size:15px;line-height:1;cursor:pointer;padding:4px 2px;border-radius:6px;transition:all .14s var(--ease)}
.palette__close:hover{background:var(--grey-100);color:var(--ink)}
.palette__chips{display:flex;gap:7px;flex-wrap:wrap;padding:12px 18px 4px}
.palette-chip{appearance:none;border:1px solid var(--grey-300);background:#fff;color:var(--grey-600);font-size:12px;border-radius:999px;padding:5px 13px;cursor:pointer;transition:all .14s var(--ease)}
.palette-chip:hover{background:var(--grey-100)}
.palette-chip.active{background:var(--blue-600);border-color:var(--blue-600);color:#fff}
.palette__results{flex:1;overflow-y:auto;padding:10px 14px 16px;display:flex;flex-direction:column;gap:16px}
.palette__results .search-item{width:100%;text-align:left;appearance:none;background:#fff}
.palette-action .search-item__t{display:flex;align-items:center;gap:8px}
.palette-action__ico{display:inline-flex;width:18px;justify-content:center;color:var(--blue-600);font-size:13px}
.modal{background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-pop);width:100%;max-width:460px;padding:28px}
.modal__title{margin:0 0 11px;font-size:17px;font-weight:600;color:var(--navy-900)}
.modal__body{font-size:13.5px;color:var(--grey-700);line-height:1.55;margin-bottom:20px}
.modal__actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}
.toast-stack{position:fixed;bottom:22px;right:22px;display:flex;flex-direction:column;gap:9px;z-index:80}
.toast{background:var(--navy-900);color:#fff;border-radius:var(--radius);padding:12px 16px;font-size:13px;box-shadow:var(--shadow-pop);animation:jc-in .2s ease;max-width:350px}
.toast--error,.toast--err{background:var(--danger)}
.toast--success,.toast--ok{background:var(--success)}
.toast--leaving{opacity:0;transform:translateY(6px);transition:all .2s var(--ease)}

/* drop overlay для вложений */
.drop-overlay{position:absolute;inset:0;background:rgba(46,95,163,.08);border:2px dashed var(--blue-500);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;z-index:20}
.drop-overlay__box{background:#fff;border-radius:var(--radius);padding:18px 28px;font-size:14px;font-weight:600;color:var(--blue-700);box-shadow:var(--shadow-pop)}

/* заглушки разделов «в разработке» */
.stub{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;color:var(--grey-500);padding:44px}
.stub__ico{width:54px;height:54px;border-radius:15px;background:var(--blue-100);color:var(--blue-600);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-soft)}
.stub__t{font-size:17px;font-weight:600;color:var(--navy-900)}
.stub__d{font-size:13px;max-width:400px;line-height:1.6}

/* пагинация */
.pager{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:14px}
.pager__info{font-family:var(--mono);font-size:12px;color:var(--grey-500)}

/* фильтры */
.select,select.filter,input.filter{appearance:none;border:1px solid var(--grey-300);border-radius:var(--radius);padding:8px 12px;font-family:inherit;font-size:12.5px;color:var(--grey-700);background:#fff;cursor:pointer;height:38px;transition:border-color .14s var(--ease)}
.select:focus,select.filter:focus,input.filter:focus{border-color:var(--blue-500);outline:none}
input.filter{cursor:text}
.filter--sm{max-width:130px}
.filter-check{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--grey-700)}

/* ════════════ ЧАТ: layout + панель истории ════════════ */
.chat-layout{display:flex;height:100%;min-height:0;position:relative}
.chat-history{width:268px;flex:0 0 268px;border-right:1px solid var(--line-soft);background:var(--surface-2);display:flex;flex-direction:column;gap:13px;padding:16px 13px;min-height:0}
.chat-nav-toggle{display:none;align-items:center;gap:6px;position:absolute;left:12px;top:12px;z-index:15;border:1px solid var(--grey-250);background:var(--surface);color:var(--grey-700);font-size:12.5px;border-radius:var(--radius);padding:6px 11px;cursor:pointer;box-shadow:var(--shadow-pop)}
.chat-nav-backdrop{display:none}
/* Десктоп: сворачивание панели списка чатов — аккуратная иконка panel-collapse */
.chat-pane-toggle{display:none}
@media (min-width:861px){
  .chat-pane-toggle{display:inline-flex;align-items:center;justify-content:center;position:absolute;left:12px;top:12px;z-index:15;width:30px;height:30px;border:1px solid var(--grey-250);background:var(--surface);color:var(--grey-500);border-radius:9px;cursor:pointer;box-shadow:var(--shadow-card);transition:all .14s var(--ease);font-size:0}
  .chat-pane-toggle:hover{background:var(--grey-100);color:var(--navy-900)}
  .chat-layout.chat-pane-collapsed .chat-history{display:none}
}
.chat-history__section{display:flex;flex-direction:column;gap:9px}
.chat-history__section--grow{flex:1;min-height:0}
.chat-history__label{display:flex;align-items:center;justify-content:space-between;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--grey-400);padding:0 5px}
.side-search{display:flex;align-items:center;gap:8px;border:1px solid var(--grey-300);border-radius:var(--radius);padding:0 11px;height:36px;background:#fff;transition:border-color .14s var(--ease)}
.side-search:focus-within{border-color:var(--blue-500)}
.side-search svg{color:var(--grey-400);flex:0 0 auto}
.side-search input{border:none;outline:none;background:transparent;font-size:13px;width:100%;font-family:inherit}
.projects{display:flex;flex-direction:column;gap:2px}
.project-pill{display:flex;align-items:center;gap:6px;padding:7px 10px;border-radius:var(--radius);font-size:13px;color:var(--grey-700);cursor:pointer;transition:background .14s var(--ease)}
.project-pill:hover{background:var(--grey-100)}
.project-pill.active{background:var(--blue-50);color:var(--navy-900);font-weight:600}
.project-pill.drop-target{background:var(--blue-100);outline:2px dashed var(--blue-500)}
.project-pill__name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.project-pill__mode,.project-pill__del{appearance:none;border:none;background:transparent;cursor:pointer;color:var(--grey-400);font-size:12px;padding:0 2px;opacity:0}
.project-pill:hover .project-pill__mode,.project-pill:hover .project-pill__del{opacity:1}
.history__list{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:1px}
.history-item{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:var(--radius);font-size:13px;color:var(--grey-700);cursor:pointer;transition:background .14s var(--ease)}
.history-item:hover{background:var(--grey-100)}
.history-item.active{background:var(--blue-50);color:var(--navy-900);font-weight:600}
.history-item__dot{width:7px;height:7px;border-radius:50%;flex:0 0 auto;cursor:pointer}
.history-item__title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.history-item__menu{appearance:none;border:none;background:transparent;cursor:pointer;color:var(--grey-400);padding:2px;border-radius:6px;opacity:0;display:inline-flex}
.history-item:hover .history-item__menu{opacity:1}

/* Сайдбар-дерево: категории + чаты */
.chat-tree{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:1px;padding-right:2px}
.cat-group{display:flex;flex-direction:column}
.cat-head{display:flex;align-items:center;gap:6px;padding:7px 9px;border-radius:var(--radius);cursor:pointer;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--grey-500);user-select:none;transition:background .14s var(--ease)}
.cat-head:hover{background:var(--grey-100)}
.cat-head.drop-target{background:var(--blue-100);outline:2px dashed var(--blue-500)}
.cat-head__chev{flex:0 0 auto;color:var(--grey-400);transition:transform .15s var(--ease)}
.cat-group:not(.collapsed) .cat-head__chev{transform:rotate(90deg)}
.cat-head__name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cat-head__count{font-weight:600;color:var(--grey-400);font-variant-numeric:tabular-nums}
.cat-head__del{appearance:none;border:none;background:transparent;cursor:pointer;color:var(--grey-400);font-size:12px;padding:0 2px;opacity:0;line-height:1}
.cat-head:hover .cat-head__del{opacity:1}
.cat-group.collapsed .cat-body{display:none}
.cat-body{display:flex;flex-direction:column;gap:1px;padding:1px 0 5px}
.cat-empty{font-size:11.5px;color:var(--grey-400);padding:4px 10px 4px 24px;font-style:italic}
.chat-row{position:relative;display:flex;align-items:center;gap:9px;padding:7px 10px 7px 24px;border-radius:var(--radius);font-size:13px;color:var(--grey-700);cursor:pointer;transition:background .14s var(--ease)}
.chat-row:hover{background:var(--grey-100)}
.chat-row.active{background:var(--blue-50);color:var(--navy-900);font-weight:600}
.chat-row__title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Правка (пул 2026-07-06, #15): точка непрочитанного на самой строке чата —
   раньше бейдж «N новых» был только на заголовке категории. */
.chat-row__dot{flex:0 0 auto;width:7px;height:7px;border-radius:50%;background:var(--danger,#B23A3A)}
[data-theme="dark"] .chat-row__dot{background:var(--c-neg,#e06a6a)}
.chat-row--unseen .chat-row__title{font-weight:600}
.chat-row__time{flex:0 0 auto;font-size:11px;color:var(--grey-400)}
.chat-row__menu{appearance:none;border:none;background:transparent;cursor:pointer;color:var(--grey-400);padding:2px;border-radius:6px;opacity:0;display:inline-flex}
.chat-row:hover .chat-row__menu{opacity:1}
.tree-hint{font-size:12.5px;color:var(--grey-400);padding:16px 10px;text-align:center;line-height:1.55}

/* ── Расшифровка диалогов ── */
#screen-transcribe{position:relative}
.trans-wrap{display:flex;flex-direction:column;gap:18px}
.trans-upload{border:1.5px dashed var(--grey-300);border-radius:var(--radius-xl);background:var(--surface);padding:26px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px;box-shadow:var(--shadow-soft)}
.trans-upload.drag{border-color:var(--blue-500);background:var(--blue-50)}
.trans-upload__ico{color:var(--blue-600)}
.trans-upload__t{font-size:15.5px;font-weight:600;color:var(--navy-900)}
.trans-upload__d{font-size:12.5px;color:var(--grey-500);max-width:500px;line-height:1.55}
.trans-upload .btn{margin-top:6px}
.trans-cols{display:grid;grid-template-columns:250px 1fr;gap:18px;align-items:start}
.trans-listcol{display:flex;flex-direction:column;gap:5px}
.trans-empty{font-size:13px;color:var(--grey-500);padding:18px;text-align:center;line-height:1.55}
.trans-item{display:flex;align-items:center;gap:9px;padding:10px 12px;border:1px solid var(--grey-250);border-radius:var(--radius);cursor:pointer;background:#fff;transition:all .14s var(--ease)}
.trans-item:hover{background:var(--grey-100)}
.trans-item.active{border-color:var(--blue-500);background:var(--blue-50)}
.trans-item__id{flex:1;min-width:0;font-size:12.5px;font-weight:600;color:var(--navy-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.trans-item__date{flex:0 0 auto;font-size:11px;color:var(--grey-400);white-space:nowrap}
.trans-badge{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;border-radius:6px;padding:2px 8px;white-space:nowrap}
.trans-badge.is-wait{background:var(--grey-100);color:var(--grey-500)}
.trans-badge.is-work{background:var(--blue-100);color:var(--blue-700)}
.trans-badge.is-done{background:var(--success-bg);color:var(--success)}
.trans-badge.is-fail{background:var(--danger-bg);color:var(--danger)}
.trans-detailcol{border:1px solid var(--grey-250);border-radius:var(--radius-xl);background:var(--surface);padding:22px;min-height:160px;box-shadow:var(--shadow-soft)}
.trans-working{display:flex;align-items:center;gap:11px;color:var(--grey-700);font-size:13.5px;padding:18px 4px}
.trans-stepper{display:flex;align-items:center;gap:7px;padding:6px 2px 2px}
.trans-step{display:flex;align-items:center;gap:7px}
.trans-step__dot{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;border:1.5px solid var(--grey-300);color:var(--grey-400);background:#fff}
.trans-step__l{font-size:12.5px;font-weight:600;color:var(--grey-400)}
.trans-step__bar{flex:1;height:2px;min-width:18px;background:var(--grey-250);border-radius:2px}
.trans-step--active .trans-step__dot{border-color:var(--blue-500);color:var(--blue-700);background:var(--blue-50)}
.trans-step--active .trans-step__l{color:var(--navy-900)}
.trans-step--done .trans-step__dot{border-color:var(--success);color:#fff;background:var(--success)}
.trans-step--done .trans-step__l{color:var(--grey-700)}
.trans-fail{color:var(--danger);font-size:13.5px;padding:8px;line-height:1.55}
.trans-title-row{display:flex;gap:9px;align-items:center;margin-bottom:14px}
.trans-title-input{flex:1;min-width:0;border:1px solid var(--grey-300);border-radius:var(--radius);padding:8px 12px;font-size:14px;font-weight:600;color:var(--navy-900);background:#fff}
.trans-summary{margin:0 0 11px;font-size:14.5px;color:var(--navy-900);line-height:1.6}
.trans-sit{margin:0 0 4px;font-size:13px;color:var(--grey-700);line-height:1.55}
.trans-sect{margin-top:16px}
.trans-sect__h{font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--grey-400);margin-bottom:7px}
.trans-chips{display:flex;flex-wrap:wrap;gap:7px}
.trans-chips .chip{background:var(--blue-100);color:var(--blue-700);border-radius:7px;padding:3px 10px;font-size:12px}
.trans-ul{margin:0;padding-left:18px;font-size:13px;color:var(--grey-700);line-height:1.65}
.trans-ul li{margin-bottom:3px}
.trans-proto-h{font-size:15px;font-weight:700;color:var(--navy-900);margin:14px 0 5px}
.trans-none{font-size:13px;color:var(--grey-400)}
.trans-info{border-collapse:collapse;width:100%;max-width:540px;font-size:13px}
.trans-info td{border:1px solid var(--grey-250);padding:6px 10px;color:var(--grey-700)}
.trans-info__k{font-weight:600;color:var(--navy-900);width:160px;background:var(--blue-50)}
.trans-tasks{border-collapse:collapse;width:100%;font-size:12.5px}
.trans-tasks th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--grey-400);padding:6px 9px;border-bottom:1px solid var(--grey-250)}
.trans-tasks td{border:1px solid var(--grey-200);padding:6px 9px;color:var(--grey-700);vertical-align:top}
.trans-toggle{cursor:pointer;user-select:none}
.trans-transcript{margin-top:9px;white-space:pre-wrap;font-size:12.5px;color:var(--grey-700);line-height:1.65;background:var(--grey-100);border-radius:var(--radius);padding:12px 14px;max-height:320px;overflow-y:auto}
.trans-actions{display:flex;gap:9px;margin-top:18px}
/* Правка #14 — панель обрезки/скорости записи */
.trans-audio-edit{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}
.trans-edit-in{border:1px solid var(--grey-250);border-radius:var(--radius);padding:6px 9px;font-size:12.5px;color:var(--grey-700);background:var(--grey-50,#fff)}
.trans-edit-in[type="number"]{width:100px}
@media (max-width:760px){.trans-cols{grid-template-columns:1fr}}

/* ── Торговый журнал ── */
.journal-wrap{display:flex;flex-direction:column;gap:16px;max-width:1600px}
/* Корень жалобы «наслоение»/«раздвинь их друг от друга» (фидбэк 2026-07-03):
   #jtab-journal — простой display:block БЕЗ какого-либо вертикального
   отступа между своими прямыми детьми (диктовка/панель кнопок →
   пилюли-фильтры+поиск → таблица) — ни gap, ни margin ни у контейнера, ни у
   самих блоков. Замерено: 0px между низом .journal-bar и верхом
   #journal-filters, 0px между низом #journal-filters и верхом
   .journal-table-wrap — визуально всё сливается в один слипшийся блок.
   display:flex;column + gap раздвигает их так же, как это уже сделано у
   родителя .journal-wrap (тот же gap:16px, для визуальной консистентности). */
#jtab-journal{display:flex;flex-direction:column;gap:16px}
/* «Кратко» (7 колонок) — таблица заметно уже, чем полноширинный контейнер
   (рассчитанный на «Все поля»); сжимаем и центрируем ТОЛЬКО вкладку «Журнал»
   (#jtab-journal), чтобы диктовка/фильтры не выглядели растянутыми над узкой
   таблицей (фидбэк 2026-07-03) — класс НЕ вешаем на .journal-wrap целиком,
   иначе сузились бы и «Аналитика»/«Контроль решений» (общий на все 3 вкладки).
   ⚠️ Классическая ловушка flex (найдено адверсариальным ревью 2026-07-03,
   4 агента + elementFromPoint-верификация): #jtab-journal — flex-item родителя
   .journal-wrap (column). Авто-margin по left/right ОТКЛЮЧАЕТ cross-axis
   stretch — без явного width:100%/min-width:0 блок считает ширину по
   max-content содержимого (~840px из-за нерастянутых .journal-bar/
   .journal-filters), а не по реально доступному месту. На узких экранах
   (768–960px) контейнер вылезает за экран → журнал целиком уходит в
   горизонтальный скролл → при прокрутке вправо заголовок «Торговый журнал»/
   вкладки (соседи #jtab-journal по тому же скролл-боксу) уезжают влево и
   заезжают ПОД левую рейку (.rail, z-index:30) — подтверждено
   document.elementFromPoint(): под курсором оказывается кнопка рейки, а не
   заголовок журнала. Это и есть баг «наслоение символов». Фикс: width:100%+
   min-width:0 — теперь ширина = min(реально доступное, 900px), а не
   min(max-content, 900px). */
.journal-wrap--compact{max-width:900px;width:100%;min-width:0;margin-left:auto;margin-right:auto}
.journal-bar{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap}
.journal-view .journal-bar{display:none}
/* 2 явных блочных ряда (пилюли / поиск+селекты+кнопки) вместо flex-basis:100%-
   трюка на одном общем flex-контейнере — см. комментарий в renderJournalFilters
   (app.js) про баг «пузыри наезжают друг на друга». */
.journal-filters{display:flex;flex-direction:column;gap:9px}
.journal-filters__row{display:flex;gap:9px;align-items:center;flex-wrap:wrap;min-width:0}
.journal-filter__q{flex:1 1 240px;min-width:160px;border:1px solid var(--grey-300);border-radius:var(--radius);background:#fff;padding:7px 11px;font-size:13px;color:var(--ink)}
/* max-width — <select> без потолка ширины растягивается по тексту ВЫБРАННОЙ
   опции (у нас есть варианты за 30+ символов кириллицы — «Отсутствие
   ответственного подхода»); без потолка это раздувало ряд непредсказуемо. */
.journal-filter__sel{flex:0 1 auto;max-width:220px;min-width:0;border:1px solid var(--grey-300);border-radius:var(--radius);background:#fff;padding:7px 9px;font-size:13px;color:var(--ink);text-overflow:ellipsis}
.journal-filter__count{margin-left:auto;font-size:12px;color:var(--grey-400);font-variant-numeric:tabular-nums}
.journal-pills{display:flex;gap:7px;flex-wrap:wrap}
.journal-pill{appearance:none;border:1px solid var(--grey-300);background:#fff;color:var(--grey-600);font-size:12.5px;border-radius:999px;padding:6px 14px;cursor:pointer;transition:all .14s var(--ease)}
.journal-pill:hover{background:var(--grey-100)}
.journal-pill.active{background:var(--navy-900);border-color:var(--navy-900);color:#fff}
/* Полоса метрик журнала — приподнятые карточки */
.journal-stats{display:flex;gap:11px;flex-wrap:wrap}
.jstat{flex:0 0 auto;min-width:104px;border:1px solid var(--grey-250);border-radius:var(--radius-lg);background:#fff;padding:13px 17px;display:flex;flex-direction:column;gap:3px;box-shadow:var(--shadow-soft)}
.jstat__v{font-size:19px;font-weight:700;color:var(--navy-900);font-variant-numeric:tabular-nums;line-height:1.1}
.jstat__v.pos{color:var(--success)}.jstat__v.neg{color:var(--danger)}
.jstat__l{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--grey-400)}
.jstat--split{flex-direction:row;align-items:center;gap:12px;min-width:0}
.jstat--split span{font-size:12.5px;font-weight:600;font-variant-numeric:tabular-nums}
.jstat__tp{color:var(--success)}.jstat__sl{color:var(--danger)}.jstat__bu{color:var(--grey-500)}
.journal-th{cursor:pointer;user-select:none}
.journal-th:hover{color:var(--navy-900)}
.journal-th.is-sorted{color:var(--blue-700)}
.journal-th--num{text-align:right}
.journal-td--num{text-align:right;font-variant-numeric:tabular-nums}
.journal-td--pos{color:var(--success);font-weight:600}
.journal-td--neg{color:var(--danger);font-weight:600}
/* UX-фикс аудита: актив терялся среди прочих колонок — просили «более явно
   видно актив» — жирнее + чуть крупнее, тем же токеном, что заголовки. */
.journal-td--asset{font-weight:700;color:var(--navy-900);letter-spacing:.01em}
.journal-inline{appearance:none;border:1px solid transparent;background:transparent;font:inherit;color:inherit;cursor:pointer;padding:1px 4px;border-radius:6px;max-width:100%}
.journal-inline:hover{border-color:var(--grey-300);background:#fff}
.journal-inline:focus-visible{outline:none;border-color:var(--blue-500);background:#fff}
.journal-cell{cursor:text}
.journal-cell:hover{box-shadow:inset 0 0 0 1px var(--grey-300);border-radius:6px}
.journal-cell-edit{width:100%;min-width:70px;border:1px solid var(--blue-500);border-radius:6px;padding:4px 6px;font:inherit;color:var(--ink);background:#fff;outline:none;font-variant-numeric:tabular-nums}
.journal-more{display:none}
/* Шапка журнала: константы (Депозит · Риск% · Риск$) — приподнято */
.journal-head{display:flex;gap:20px;align-items:center;flex-wrap:wrap;border:1px solid var(--grey-250);border-radius:var(--radius-lg);background:#fff;padding:14px 18px;box-shadow:var(--shadow-soft)}
.jhead__item{display:flex;align-items:center;gap:9px}
.jhead__l{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--grey-500)}
.jhead__in{width:124px;border:1px solid var(--grey-300);border-radius:var(--radius);padding:7px 10px;font-size:13.5px;font-family:inherit;color:var(--ink);outline:none;font-variant-numeric:tabular-nums}
.jhead__in--sm{width:88px}
.jhead__in:focus{border-color:var(--blue-500)}
.jhead__val{font-size:15px;font-weight:700;color:var(--navy-900)}
.jhead__hint{font-size:11.5px;color:var(--grey-400);margin-left:auto}
.jhead__saved{font-size:11.5px;color:var(--c-pos,#15795A);font-weight:600;opacity:0;transition:opacity .25s var(--ease,ease)}
.jhead__saved--show{opacity:1}
/* Аналитика по периоду — приподнятые панели */
.journal-analytics{display:flex;flex-direction:column;gap:12px}
.janalytics__bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:2px}
.janalytics__h{font-size:13px;font-weight:700;color:var(--navy-900)}
.janalytics__range{font-size:11.5px;color:var(--grey-400);margin-left:auto;font-variant-numeric:tabular-nums}
/* «Свой диапазон дат» в аналитике журнала (правка владельца 07.07) */
.journal-range{display:flex;gap:10px;flex-wrap:wrap;align-items:center;width:100%;margin-top:2px}
.journal-range__l{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--grey-600)}
.journal-range__l input[type="date"]{border:1px solid var(--grey-300);background:#fff;color:var(--navy-900);border-radius:8px;padding:5px 9px;font-size:12.5px;font-family:inherit;cursor:pointer}
[data-theme="dark"] .journal-range__l{color:var(--c-muted,#9fb0cc)}
[data-theme="dark"] .journal-range__l input[type="date"]{background:var(--c-glass-solid,#16213a);border-color:var(--c-glass-brd,rgba(255,255,255,.15));color:var(--c-ink,#e6edf7)}
.janalytics__grid{display:flex;gap:11px;flex-wrap:wrap;margin-bottom:2px}
.janalytics__cols{display:grid;grid-template-columns:1.6fr 1fr;gap:16px}
/* Владелец: «Анализ журнала» у трейдера — как в Мониторе. Данные там принципиально
   другие (Монитор — filed-документы автоматического анализа мастера; у трейдера —
   живой расчёт по категориям, «Разобрать →» лишь отправляет сообщение в чат, не
   заводит документ — нет бэкенд-эндпоинта, который вернул бы трейдеру «свои» filed-
   записи, /master/journal-analysis жёстко require_master). Выравниваем визуальный
   язык карточки на токены premium-прохода Монитора (18px радиус, просторнее паддинг),
   не изобретая нового бэкенда ради данных, которых структурно не существует для трейдера. */
.jeq,.jerr{border:1px solid var(--grey-250);border-radius:18px;background:#fff;padding:20px 22px;box-shadow:var(--shadow-soft)}
.jeq__h{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--grey-500);margin-bottom:9px}
.jeq__svg{width:100%;height:124px;display:block}
.jeq__empty{font-size:12.5px;color:var(--grey-400);padding:24px 0;text-align:center}
.jerr__t{width:100%;border-collapse:collapse;font-size:12.5px}
.jerr__t th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--grey-400);padding:5px 7px;border-bottom:1px solid var(--grey-200)}
.jerr__t td{padding:6px 7px;border-bottom:1px solid var(--line-soft);color:var(--grey-700)}
.jerr__t td.num{text-align:right;font-variant-numeric:tabular-nums}
.jerr__t td.neg{color:var(--danger);font-weight:600}
@media (max-width:880px){.janalytics__cols{grid-template-columns:1fr}}
/* Журнал на телефоне — карточки сделок */
@media (max-width:680px){
  .journal-table-wrap{border:none;background:transparent;overflow:visible;box-shadow:none}
  .journal-table thead{display:none}
  .journal-table,.journal-table tbody{display:block}
  .journal-table tr{display:block;border:1px solid var(--grey-250);border-radius:var(--radius-xl);background:#fff;padding:14px 16px;margin-bottom:13px;box-shadow:var(--shadow-soft)}
  .journal-table td{display:flex;justify-content:space-between;align-items:baseline;gap:14px;border:none;padding:6px 0;max-width:none;white-space:normal;overflow:visible;text-overflow:clip;border-bottom:1px solid var(--line-soft)}
  .journal-table td:last-child{border-bottom:none}
  .journal-table td::before{content:attr(data-label);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--grey-400);flex:0 0 42%}
  .journal-table td > *{text-align:right}
  .journal-table td:first-child{font-size:16px;font-weight:700;color:var(--navy-900);border-bottom:1px solid var(--grey-200);padding-bottom:10px;margin-bottom:3px}
  .journal-table tr:not(.card-open) td.journal-td--more{display:none}
  .journal-table td.journal-cellact{display:flex;justify-content:space-between;align-items:center;padding-top:11px;border-bottom:none}
  .journal-table td.journal-cellact::before{content:none}
  .journal-more{display:inline-flex;align-items:center;gap:4px;appearance:none;border:1px solid var(--grey-300);background:#fff;color:var(--blue-600);font-size:12.5px;font-weight:600;border-radius:var(--radius);padding:6px 13px;cursor:pointer}
  .journal-more:hover{background:var(--blue-50)}
  .journal-table .journal-inline{border-color:var(--grey-300);background:#fff}
  .journal-head{gap:13px}.jhead__hint{display:none}
  /* Фикс аудита UX-консистентности: мобильная карточная раскладка журнала
     осталась жёстко белой (background:#fff) — в тёмной теме десктопная таблица
     затемнена (см. [data-theme="dark"] .journal-table th/tbody tr:hover ниже
     по файлу), а мобильные карточки — нет. */
  [data-theme="dark"] .journal-table tr{background:var(--c-glass-solid)!important;border-color:var(--c-glass-brd)!important}
  [data-theme="dark"] .journal-more{background:var(--c-glass-solid)!important;border-color:var(--c-glass-brd)!important;color:var(--c-accent)!important}
  [data-theme="dark"] .journal-table .journal-inline{background:var(--c-glass-solid)!important;border-color:var(--c-glass-brd)!important}
}
/* min-width:0 на обоих уровнях (владелец, вживую: панель ввода «наезжает» и
   обрезается за край экрана в «Все поля») — flex-элемент по умолчанию
   min-width:auto, а textarea без cols/width имеет intrinsic-ширину (браузер
   ставит cols=20) — это НЕ давало .journal-dictate сжаться внутри
   .journal-bar{flex-wrap:wrap}, панель вылезала за контейнер вместо переноса. */
.journal-dictate{flex:1;min-width:0;display:flex;gap:9px;align-items:flex-start;border:1px solid var(--grey-300);border-radius:var(--radius-lg);background:#fff;padding:9px;box-shadow:var(--shadow-card)}
.journal-dictate textarea{flex:1;min-width:0;border:none;outline:none;resize:none;font-size:13.5px;font-family:inherit;line-height:1.55;background:transparent;color:var(--ink);min-height:40px}
.nb-instruct-bar{margin-bottom:14px}
.journal-dictate .btn{flex:0 0 auto;margin-top:4px}
.journal-bar > .btn{flex:0 0 auto;white-space:nowrap;margin-top:4px}
/* Таблица данных — намеренно плоская и читаемая */
.journal-table-wrap{overflow-x:auto;border:1px solid var(--grey-250);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow-card)}
/* table-layout:fixed + <colgroup> (см. _journalColgroupHtml в app.js) — без него
   браузер (auto-layout) при малом числе строк/пустых ячеек раздувает «лёгкие»
   колонки непредсказуемо широко (жалоба «криво»: заголовки/значения не читаются
   единой колонкой). ⚠️ БЕЗ min-width:100% (было — убрано): при table-layout:fixed
   браузер распределяет РАЗНИЦУ между суммой ширин <col> и шириной таблицы ПРОПОРЦИОНАЛЬНО
   по всем колонкам — с min-width:100% сумма colgroup (например 898px) растягивалась до
   ширины контейнера (например 1246px), т.е. каждая колонка непредсказуемо раздувалась
   на ~35-60% сверх заданной ширины (короткие «Исход»/«Направление» растягивались так же,
   как длинная «Категория ошибки») — та самая жалоба «поля наезжают друг на друга»
   (найдено вживую, замерено через getBoundingClientRect: colgroup 92/100/140/96/96/140/170px
   рендерились как 150/136/190/130/132/190/231px). Без min-width:100% таблица берёт РОВНО
   сумму <col>-ширин; .journal-table-wrap{overflow-x:auto} уже даёт горизонтальный скролл,
   если колонок много (сумма шире контейнера) — обратный случай не нуждается в растяжении. */
.journal-table{width:auto;table-layout:fixed;border-collapse:collapse;font-size:12.5px}
.journal-table th{text-align:left;font-weight:700;color:var(--grey-500);text-transform:uppercase;letter-spacing:.03em;font-size:10.5px;padding:11px 13px;border-bottom:1px solid var(--grey-250);white-space:nowrap;background:var(--surface-2);position:sticky;top:0;z-index:1}
.journal-table td{padding:10px 13px;border-bottom:1px solid var(--line-soft);color:var(--grey-700);font-variant-numeric:tabular-nums;white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis}
/* #20: длинные текстовые поля (почему зашёл / описание ошибки) — шире и с
   переносом строк, вместо однострочного «…» как у коротких полей. */
.journal-table td.journal-cell--area{white-space:normal;max-width:420px;min-width:260px;overflow-wrap:break-word;line-height:1.5}
.journal-table tbody tr{cursor:pointer;transition:background .12s var(--ease)}
.journal-table tbody tr:hover{background:var(--blue-50)}
.journal-empty{text-align:center;color:var(--grey-500);padding:24px;font-size:13px}
.journal-cellact{text-align:right}
.journal-edit{appearance:none;border:none;background:transparent;cursor:pointer;color:var(--grey-400);font-size:13px}
.modal--wide{max-width:780px}
/* Окно планирования (план словами → задачи с датами) — широкое, горизонтальное */
#planmodal-overlay .modal{max-width:min(940px,96vw);width:100%}
#planmodal-input{display:block;width:100%;box-sizing:border-box;height:auto;min-height:112px;resize:vertical;line-height:1.5;padding:11px 13px}
.planmodal-bar{display:flex;align-items:center;gap:12px;margin-top:10px}
.planmodal-tasks{display:flex;flex-direction:column;gap:8px;margin-top:14px;max-height:44vh;overflow-y:auto}
.planmodal-tasks:empty{margin-top:0}
.plan-task{display:flex;align-items:center;gap:8px;padding:4px;border-radius:10px}
.plan-task--nodate{background:var(--warning-bg,#F7F0DE);box-shadow:inset 0 0 0 1px rgba(181,133,42,.32)}
.plan-task .input{height:38px}
.plan-task__t{flex:1 1 auto;min-width:0}
.plan-task__d{flex:0 0 auto;width:150px}
.plan-task__tm{flex:0 0 auto;width:104px}
.plan-task__x{flex:none;width:30px;height:30px;border:none;background:transparent;color:var(--grey-500);border-radius:7px;cursor:pointer;font-size:13px;line-height:1}
.plan-task__x:hover{background:var(--grey-100);color:var(--danger)}
@media (max-width:560px){.plan-task{flex-wrap:wrap}.plan-task__d,.plan-task__tm{width:auto;flex:1 1 46%}}
.trade-toolbar{display:flex;align-items:center;gap:11px;margin-top:8px}
.trade-toolbar__hint{font-size:11.5px;color:var(--grey-400)}
.trade-form{display:grid;grid-template-columns:1fr 1fr;gap:11px 17px;max-height:64vh;overflow-y:auto;padding:4px 2px 2px;margin-top:6px}
.trade-row{display:flex;flex-direction:column;gap:4px;min-width:0}
.trade-row--wide{grid-column:1 / -1}
.trade-section__h{grid-column:1 / -1;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--grey-500);margin:14px 0 2px;padding-bottom:5px;border-bottom:1px solid var(--grey-200)}
.trade-section__h:first-child{margin-top:0}
.trade-row__label{font-size:11px;color:var(--grey-500);font-weight:600}
.trade-input{border:1px solid var(--grey-300);border-radius:var(--radius);padding:8px 10px;font-size:13px;font-family:inherit;background:#fff;color:var(--ink);outline:none;width:100%;transition:border-color .14s var(--ease)}
.trade-input:focus{border-color:var(--blue-500)}
.trade-input--area{resize:vertical;min-height:48px;line-height:1.55}
.trade-validation{margin:8px 0 2px;border:1px solid var(--warning);background:var(--warning-bg);border-radius:var(--radius);padding:10px 13px;display:flex;flex-direction:column;gap:6px}
.trade-val__h{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--warning)}
.trade-val__h--warn{color:var(--danger)}
.trade-val__item{font-size:12.5px;color:var(--danger);line-height:1.45}
.trade-val__chips{display:flex;flex-wrap:wrap;gap:7px}
.trade-val__chip{font-size:12px;border:1px dashed var(--warning);background:#fff;color:#8a6516;border-radius:7px;padding:3px 10px;cursor:pointer;font-weight:600}
.trade-val__chip:hover{background:var(--warning);color:#fff}
.trade-row--missing .trade-input{border-color:var(--warning);background:#FFFDF6}
.trade-row--missing .trade-row__label::after{content:" +";color:var(--warning);font-weight:800}
@media (max-width:680px){.trade-form{grid-template-columns:1fr}.journal-bar{flex-direction:column}}

/* ── Связанный поиск ── */
.search-wrap{display:flex;flex-direction:column;gap:16px}
.search-box{display:flex;align-items:center;gap:11px;border:1px solid var(--grey-300);border-radius:var(--radius-xl);padding:0 16px;height:50px;background:#fff;box-shadow:var(--shadow-soft);transition:border-color .14s var(--ease),box-shadow .14s var(--ease)}
.search-box svg{color:var(--grey-400);flex:0 0 auto}
.search-box input{flex:1;border:none;outline:none;background:transparent;font-size:15px;font-family:inherit;color:var(--ink)}
.search-box:focus-within{border-color:var(--blue-500);box-shadow:0 0 0 3px rgba(46,95,163,.1),var(--shadow-soft)}
.search-results{display:flex;flex-direction:column;gap:18px}
.search-hint{color:var(--grey-500);font-size:13px;padding:20px 4px;text-align:center}
.search-group{display:flex;flex-direction:column;gap:5px}
.search-group__h{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--grey-400);padding:0 4px 2px}
.search-item{display:block;width:100%;text-align:left;appearance:none;font:inherit;color:inherit;border:1px solid var(--grey-250);border-radius:var(--radius);padding:11px 14px;cursor:pointer;background:#fff;transition:all .14s var(--ease)}
.search-item:hover{background:var(--surface);border-color:var(--blue-300);box-shadow:var(--shadow-soft)}
.search-item__head{display:flex;align-items:baseline;gap:10px}
.search-item__t{flex:1;min-width:0;font-size:13.5px;font-weight:600;color:var(--navy-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.search-item__d{flex:0 0 auto;font-size:11.5px;color:var(--grey-400);font-variant-numeric:tabular-nums}
.search-item__s{font-size:12.5px;color:var(--grey-500);line-height:1.45;margin-top:3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* ── Здоровое несогласие (корп. документы) ── */
.docs-wrap{display:flex;flex-direction:column;gap:16px}
.docs-bar{display:flex;gap:9px;align-items:center}
.docs-select{flex:1;border:1px solid var(--grey-300);border-radius:var(--radius);padding:8px 11px;font-size:13px;font-family:inherit;background:#fff;color:var(--ink);outline:none}
.docs-head{display:flex;flex-direction:column;gap:6px}
.docs-head__top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.docs-title{font-size:16px;font-weight:600;color:var(--navy-900)}
.docs-sub{font-size:12.5px;color:var(--grey-500);line-height:1.55}
.dis-period{border:1px solid var(--grey-300);border-radius:var(--radius);padding:9px 12px;font-size:13.5px;font-family:inherit;background:#fff;color:var(--ink);outline:none;max-width:280px}
.dis-period:focus{border-color:var(--blue-500)}
.dis-points{display:flex;flex-direction:column;gap:16px}
.dis-point{border:1px solid var(--grey-250);border-radius:var(--radius-lg);background:#fff;padding:14px;display:flex;flex-direction:column;gap:10px;box-shadow:var(--shadow-soft)}
.dis-point__head{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--grey-500)}
.dis-point__del{appearance:none;border:none;background:transparent;cursor:pointer;color:var(--grey-400);font-size:13px}
.dis-field{display:flex;flex-direction:column;gap:4px}
.dis-field__l{font-size:11.5px;color:var(--grey-500);font-weight:600}
.dis-input{border:1px solid var(--grey-300);border-radius:var(--radius);padding:8px 10px;font-size:13px;font-family:inherit;line-height:1.55;background:#fff;color:var(--ink);outline:none;resize:vertical;min-height:44px}
.dis-input:focus{border-color:var(--blue-500)}
.dis-hints{display:flex;flex-direction:column;gap:5px;margin-top:2px}
.dis-hint{font-size:12px;color:#8A6A1E;background:#FBF4E5;border-radius:8px;padding:6px 9px;line-height:1.45}
.dc-hint{font-size:12px;color:var(--grey-600);background:var(--grey-100);border-radius:8px;padding:6px 9px;line-height:1.45;margin-bottom:8px}
[data-theme="dark"] .dc-hint{background:var(--c-glass-solid)!important;color:var(--c-ink-faint)!important}
.dis-hints--ok{font-size:12px;color:#2F7D5B}
.dis-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.dis-status{font-size:12.5px;color:var(--grey-500)}

/* ── Документы компании (справочники) ── */
.refdocs{display:flex;flex-direction:column;gap:9px;padding-bottom:14px;border-bottom:1px solid var(--grey-200)}
.refdocs__h{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--grey-400)}
.refdocs__list{display:flex;flex-direction:column;gap:13px}
.refdoc-folder{display:flex;flex-direction:column;gap:7px}
.refdoc-folder__h{font-size:12px;font-weight:600;color:var(--navy-900)}
/* Раньше flex-wrap с чипами переменной ширины по контенту — ряды получались
   "рваными" (жалоба владельца: "плашки расположены как-то криво"), число
   чипов в ряду и их ширина зависели от длины текста, а не от общей сетки.
   Грид с равными колонками — чипы выравниваются в ровные ряды независимо от
   длины названия документа. */
.refdoc-folder__items{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.refdocs__empty{font-size:12.5px;color:var(--grey-400)}
.refdoc-chip{display:flex;align-items:flex-start;gap:8px;border:1px solid var(--grey-300);border-radius:var(--radius);background:#fff;padding:10px 12px;font-size:12.5px;color:var(--grey-700);cursor:pointer;font-family:inherit;transition:all .14s var(--ease)}
.refdoc-chip:hover{background:var(--grey-100);border-color:var(--blue-500)}
/* Реальные названия документов длинные («Подход 1 — Самостоятельная работа над
   ошибками», «СТАНДАРТ JUPITER — эталон профессионала») — однострочный ellipsis
   срезал именно ту часть, которая отличает документы друг от друга (жалоба
   владельца, скрин: все чипы читались как «Подход N — …»). 2 строки вместо 1. */
.refdoc-chip>span:first-child{flex:1;min-width:0;text-align:left;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.refdoc-chip__cat{flex:0 0 auto;font-size:10.5px;color:var(--grey-400);background:var(--grey-100);border-radius:5px;padding:1px 6px;margin-top:1px}
.refdoc-view__head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.refdoc-view__body{margin-top:14px;max-height:62vh;overflow-y:auto;white-space:pre-wrap;word-break:break-word;font-family:var(--mono,monospace);font-size:12.5px;line-height:1.65;color:var(--ink);background:var(--grey-100);border-radius:var(--radius);padding:14px}

/* ── сообщения (рендерит движок) ── */
.msg__avatar{width:30px;height:30px;border-radius:9px;flex:0 0 auto;overflow:hidden;box-shadow:var(--shadow-card)}
.msg--user .msg__avatar{display:none}
.msg__avatar svg{width:30px;height:30px;display:block}
.empty-state{padding:64px 0 12px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px}
.empty-state__eyebrow{margin:8px 0 0;font-size:12.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--grey-400)}
.empty-state__title{margin:2px 0 0;font-size:24px;font-weight:600;color:var(--navy-900);letter-spacing:-.01em}
.empty-state__hint{margin:0;font-size:14px;color:var(--grey-500);max-width:440px;line-height:1.55}
.empty-state__quote{margin:2px 0 0;font-size:14.5px;font-style:italic;color:var(--grey-500);max-width:480px;line-height:1.55}
.empty-state__quote-lead{font-style:normal;font-weight:600;opacity:.8}
.emblem{display:flex;align-items:center;justify-content:center}
.emblem--xl{width:52px;height:52px}
.emblem svg{width:100%;height:100%}
.cursor{display:inline-block;width:2px;height:1.05em;background:var(--blue-600);margin-left:1px;vertical-align:-2px;animation:jc-blink 1s steps(1) infinite}

/* ── сегмент/бейдж режимов (рендерит движок) ── */
.mode-seg__btn{appearance:none;border:none;background:transparent;cursor:pointer;border-radius:8px;padding:7px 13px;font-size:12.5px;font-weight:500;color:var(--grey-500);display:inline-flex;align-items:center;gap:7px;transition:all .14s var(--ease)}
.mode-seg__btn:hover{color:var(--navy-900)}
.mode-seg__btn.active{background:var(--blue-600);color:#fff;font-weight:600}
.mode-seg__btn.active .mode-seg__dot{box-shadow:0 0 0 2px rgba(255,255,255,.5)}
.mode-seg__dot{width:7px;height:7px;border-radius:50%}
.mode-badge{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:var(--navy-900)}
.mode-badge__dot{width:8px;height:8px;border-radius:50%}

/* ── чипы вложений ── */
.file-chip__icon{font-size:13px}
.file-chip__name{overflow:hidden;text-overflow:ellipsis}
.file-chip__remove{appearance:none;border:none;background:transparent;cursor:pointer;color:var(--grey-500);font-size:13px;padding:0 1px}
.file-chip--static{background:var(--grey-100)}

/* ── контекстное меню ── */
.ctx-menu{position:fixed;z-index:60;background:#fff;border:1px solid var(--grey-250);border-radius:var(--radius-md);box-shadow:var(--shadow-pop);padding:6px;min-width:190px}
.ctx-menu__item{display:flex;align-items:center;gap:9px;width:100%;appearance:none;border:none;background:transparent;cursor:pointer;border-radius:8px;padding:9px 11px;font-size:13px;color:var(--grey-700);text-align:left}
.ctx-menu__item:hover{background:var(--grey-100)}
.ctx-menu__item--danger{color:var(--danger)}
.ctx-menu__sub{font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--grey-400);padding:7px 11px 3px}
.ctx-menu__sep{height:1px;background:var(--grey-200);margin:5px 0}
/* Тёмная тема (не было вовсе — меню оставалось белым поверх тёмного экрана) */
[data-theme="dark"] .ctx-menu{background:var(--c-surface-2,#16243d)!important;border:1px solid var(--c-glass-brd)!important}
[data-theme="dark"] .ctx-menu__item{color:var(--c-ink)!important}
[data-theme="dark"] .ctx-menu__item:hover{background:var(--c-surface-h)!important}
[data-theme="dark"] .ctx-menu__sub{color:var(--c-ink-faint)!important}
[data-theme="dark"] .ctx-menu__sep{background:var(--c-hair)!important}

/* ── markdown в ответе ── */
.msg__bubble.md p{margin:0 0 11px}.msg__bubble.md p:last-child{margin-bottom:0}
.msg__bubble.md h1,.msg__bubble.md h2,.msg__bubble.md h3{margin:16px 0 9px;color:var(--navy-900);font-weight:600}
.msg__bubble.md h1{font-size:19px}.msg__bubble.md h2{font-size:16.5px}.msg__bubble.md h3{font-size:14.5px}
.msg__bubble.md ul,.msg__bubble.md ol{margin:0 0 11px;padding-left:22px}
.msg__bubble.md li{margin:4px 0}
.msg__bubble.md code{font-family:var(--mono);font-size:.9em;background:var(--grey-100);border:1px solid var(--grey-200);border-radius:5px;padding:1px 5px}
.msg__bubble.md pre{background:var(--grey-100);border:1px solid var(--grey-200);border-radius:var(--radius);padding:13px;overflow-x:auto;margin:0 0 11px}
.msg__bubble.md pre code{background:none;border:none;padding:0}
.msg__bubble.md table{border-collapse:collapse;width:100%;margin:0 0 11px;font-size:13px}
.msg__bubble.md th,.msg__bubble.md td{border:1px solid var(--grey-300);padding:8px 11px;text-align:left}
.msg__bubble.md th{background:var(--grey-100);font-weight:600}
.msg__bubble.md blockquote{margin:0 0 11px;padding:7px 13px;border-left:3px solid var(--blue-500);background:var(--blue-50);color:var(--grey-700);border-radius:0 8px 8px 0}
.msg__bubble.md a{color:var(--blue-600)}
.msg__bubble.md hr{border:none;border-top:1px solid var(--grey-250);margin:13px 0}
/* REVIEW-029-R6 P1.1: канонический адрес документа в уведомлении — рабочая
   ссылка, а не голый путь, который копируют руками. Обычный язык ссылок Jucon
   (тот же --c-accent, что у .md a выше), увеличенная зона клика — элемент
   встречается внутри строки текста, а не отдельной кнопкой. */
.hd-doc-link{color:var(--c-accent);text-decoration:underline;text-underline-offset:2px;
  cursor:pointer;border-radius:6px;padding:1px 2px}
.hd-doc-link:hover{color:var(--c-accent-strong)}
.hd-doc-link:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px}

/* ════════════ АДМИН-ОВЕРЛЕЙ (Служебный слой) — повышенный контраст ════════════ */
.admin{background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-pop);width:100%;max-width:1140px;max-height:88vh;display:flex;flex-direction:column;overflow:hidden}
.admin__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:20px 24px;border-bottom:1px solid var(--grey-200)}
.admin__title{margin:0;font-size:18px;font-weight:700;color:var(--navy-900)}
.admin__subtitle{margin:5px 0 0;font-size:12.5px;color:var(--grey-600);max-width:660px;line-height:1.55}
.admin__tabs{display:flex;gap:5px;padding:12px 22px 0;flex-wrap:wrap;border-bottom:1px solid var(--grey-200);background:var(--surface-2)}
.admin-tab{appearance:none;border:none;background:transparent;cursor:pointer;padding:9px 14px;font-size:13px;font-weight:600;color:var(--grey-600);border-radius:var(--radius) var(--radius) 0 0;border-bottom:2px solid transparent;transition:color .14s var(--ease)}
.admin-tab:hover{color:var(--navy-900)}
.admin-tab.active{color:var(--navy-900);font-weight:700;border-bottom-color:var(--blue-600)}
.admin__panel{padding:22px 24px;overflow:auto;flex:1;min-height:0}
.admin__body{display:grid;grid-template-columns:262px 1fr;gap:20px;min-height:0}
.admin__body--reports{grid-template-columns:300px 1fr}
/* Расходы — карточки (₽ + $) */
.spend-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:18px}
.spend-card{border:1px solid var(--grey-250);border-radius:var(--radius-lg);background:#fff;padding:16px;box-shadow:var(--shadow-soft)}
.spend-card--accent{border-color:var(--blue-300);background:var(--blue-50)}
.spend-card--accent .spend-card__val{color:var(--blue-700)}
.spend-card__val{font-size:22px;font-weight:700;color:var(--navy-900);font-variant-numeric:tabular-nums;line-height:1.1}
.spend-card__val--over{color:var(--danger)}
.spend-card__sub{font-size:12px;color:var(--grey-500);font-variant-numeric:tabular-nums;margin-top:3px}
.spend-card__lbl{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--grey-500);margin-top:8px}
.spend-usd{color:var(--grey-400);font-size:11.5px}
.budget{margin:6px 0 20px}
.budget__track{height:9px;border-radius:6px;background:var(--grey-200);overflow:hidden}
.budget__bar{height:100%;background:var(--blue-500);border-radius:6px;transition:width .3s var(--ease)}
.budget__bar--warn{background:var(--amber-500)}
.budget__bar--over{background:var(--danger)}
.budget__label{font-size:12px;color:var(--grey-600);margin-top:7px}
.admin__h4{margin:20px 0 9px;font-size:13.5px;font-weight:700;color:var(--navy-900)}
.admin__table{width:100%;border-collapse:collapse;font-size:13px}
.admin__table th{text-align:left;font-weight:700;color:var(--grey-600);font-size:11px;text-transform:uppercase;letter-spacing:.03em;padding:9px 11px;border-bottom:1px solid var(--grey-250);background:var(--surface-2)}
.admin__table td{padding:9px 11px;border-bottom:1px solid var(--grey-200);color:var(--grey-700);font-variant-numeric:tabular-nums}
/* Вкладка «Аудитор» */
.auditor-intro{font-size:13px;color:var(--grey-700);line-height:1.55;margin:0 0 16px;background:var(--blue-50);border:1px solid #DCE6F4;border-radius:var(--radius-lg);padding:13px 16px}
.auditor-card{border:1px solid var(--grey-250);border-radius:var(--radius-lg);background:#fff;margin-bottom:11px;overflow:hidden;box-shadow:var(--shadow-card)}
.auditor-card__head{display:flex;align-items:center;gap:11px;padding:13px 16px;cursor:pointer}
.auditor-card__head:hover{background:var(--grey-100)}
.auditor-card__icon{font-size:15px}
.auditor-card__who{font-weight:600;color:var(--navy-900);font-size:13.5px}
.auditor-card__period{font-size:12px;color:var(--grey-400);font-variant-numeric:tabular-nums}
.auditor-card__go{margin-left:auto;font-size:12px;font-weight:600;color:var(--blue-600)}
.auditor-card__body{padding:0 16px 16px;border-top:1px solid var(--grey-200)}
.head-crumb--link{cursor:pointer}
.head-crumb--link:hover{color:var(--blue-600)}
@media (max-width:680px){.spend-cards{grid-template-columns:repeat(2,1fr)}}
.admin__list{display:flex;flex-direction:column;gap:5px;max-height:62vh;overflow:auto}
.admin__list>*{padding:10px 12px;border-radius:var(--radius);font-size:13px;color:var(--grey-700);cursor:pointer;border:1px solid transparent;transition:all .14s var(--ease)}
.admin__list>*:hover{background:var(--grey-100)}
.admin__list>*.active{background:var(--blue-50);color:var(--navy-900);font-weight:600;border-color:var(--blue-300)}
.admin__editor{display:flex;flex-direction:column;gap:13px;min-width:0}
.admin__editor-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.admin__current{font-size:14px;font-weight:600;color:var(--navy-900)}
.admin__version{font-family:var(--mono);font-size:12px;color:var(--grey-400)}
.admin__textarea{width:100%;min-height:300px;border:1px solid var(--grey-300);border-radius:var(--radius);padding:13px;font-family:var(--mono);font-size:12.5px;line-height:1.65;color:var(--ink);resize:vertical;outline:none}
.admin__textarea:focus{border-color:var(--blue-500)}
.admin__textarea:disabled{background:var(--grey-100);color:var(--grey-500)}
.admin__actions{display:flex;align-items:center;gap:10px}
.admin__status{font-size:12.5px;color:var(--grey-600);margin-left:auto}
.admin__history{border-top:1px solid var(--grey-250);padding-top:13px;display:flex;flex-direction:column;gap:9px;font-size:12.5px}
.admin__filters{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.admin__scroll{max-height:62vh;overflow:auto;border:1px solid var(--grey-250);border-radius:var(--radius-lg);background:#fff}
.admin__pager{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:14px}
.admin__pageinfo{font-family:var(--mono);font-size:12px;color:var(--grey-600)}
.admin__muted{padding:20px;color:var(--grey-500);font-size:13px}
.admin__hint{font-size:12.5px;color:var(--grey-600);margin:0}
.logrow,.incrow,.convrow{padding:12px 15px;border-bottom:1px solid var(--line-soft);font-size:12.5px}
.logrow:last-child,.incrow:last-child,.convrow:last-child{border-bottom:none}
.logrow__meta,.incrow__meta,.convrow__meta{display:flex;gap:10px;flex-wrap:wrap;align-items:center;color:var(--grey-500);font-size:11.5px;margin-bottom:5px}
.logrow__text,.incrow__text{color:var(--grey-700);line-height:1.55;white-space:pre-wrap}
.actrow__act{font-weight:600;color:var(--navy-900);font-size:12.5px}
.actrow__ent{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;border-radius:6px;padding:2px 8px;background:var(--blue-100);color:var(--blue-700)}
.actrow__bad{font-size:10.5px;font-weight:700;border-radius:6px;padding:2px 7px;background:var(--danger-bg);color:var(--danger);font-variant-numeric:tabular-nums}
.actrow__path{color:var(--grey-400);font-size:11px;margin-top:2px}
.actrow--open{cursor:pointer;border-radius:var(--radius);transition:background .14s var(--ease)}
.actrow--open:hover{background:var(--blue-50)}
.actrow__go{margin-left:auto;color:var(--blue-600);font-size:11.5px;font-weight:600}
.chip-inc{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;border-radius:6px;padding:2px 8px;background:var(--danger-bg);color:var(--danger)}
.set-checks{display:flex;flex-direction:column;gap:9px;margin-top:13px}
.set-check{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--grey-700)}
.set-form{display:flex;flex-direction:column;gap:13px}

/* Затемнение под мобильным drawer-сайдбаром */
.sidebar-backdrop{display:none;position:fixed;inset:0;z-index:39;background:rgba(10,18,35,.45)}
@media (max-width:860px){
  .chat-history{position:absolute;left:0;top:0;bottom:0;width:min(82%,300px);z-index:25;transform:translateX(-100%);transition:transform .2s var(--ease);box-shadow:var(--shadow-pop)}
  .chat-layout.chatnav-open .chat-history{transform:none}
  .chat-nav-backdrop{display:none;position:absolute;inset:0;z-index:24;background:rgba(10,18,35,.4)}
  .chat-layout.chatnav-open .chat-nav-backdrop{display:block}
  .chat-nav-toggle{display:inline-flex}
  .sidebar{position:fixed;z-index:40;transform:translateX(-100%);transition:transform .2s var(--ease);box-shadow:var(--shadow-pop)}
  .app.nav-open .sidebar{transform:none}
  .app.nav-open .sidebar-backdrop{display:block}
  .header{padding:0 16px}
  .menu-btn{display:inline-flex}
  .screen--pad{padding:22px 16px 36px}
  .header__search{min-width:0}
  .header__search span,.header__search .kbd{display:none}
  .btn--sm{min-height:38px}.icon-btn{min-width:38px;min-height:38px}
  .nb-fil{min-height:36px}
  .chat__scroll{padding:24px 16px}
  .composer{padding:8px 16px 18px}
}
@media (hover:none){
  .msg__actions,.note-card__actions,.history-item__menu,.chat-row__menu,
  .cat-head__del,.project-pill__del,.nav-node__more{opacity:1}
  /* Тач-устройства: :hover недостижим, а .msg__actions теперь скрыт через
     pointer-events (не только opacity) — без этого кнопки видны, но не нажимаются. */
  .msg__actions{pointer-events:auto}
}

/* ══ Корп-документы: папки ══ */
.folder-card__foot{display:flex;align-items:center;justify-content:space-between;margin-top:auto}
.folder-card__go{font-size:12px;font-weight:600;color:var(--blue-600)}
.docs-folder{display:flex;flex-direction:column;gap:20px}
/* margin-bottom — .screen-inner (родитель) не flex/grid и не даёт gap между
   соседними блоками; без него .folder-detail__grid шёл вплотную к шапке
   (жалоба владельца: «нижнее окно наезжает на Папки и Закрепить», на ВСЕХ
   папках — общий шаблон и у Регламентов, и у Культуры компании). */
.folder-detail__head{display:flex;align-items:center;gap:15px;margin-bottom:20px}
.folder-detail__title{font-size:16px;font-weight:600;color:var(--navy-900);flex:1}
.folder-detail__grid{display:grid;grid-template-columns:1fr;gap:20px}
.folder-block{background:#fff;border:1px solid var(--grey-250);border-radius:var(--radius-lg);padding:18px 20px;display:flex;flex-direction:column;gap:13px;box-shadow:var(--shadow-soft)}
.folder-block__h{display:flex;align-items:center;gap:10px;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--grey-400)}
.folder-block__h>span:first-child{flex:1}
.saved-docs{display:flex;flex-direction:column;gap:9px}
.saved-doc{display:flex;align-items:center;gap:11px;border:1px solid var(--grey-250);border-radius:var(--radius);padding:11px 13px;cursor:pointer;transition:all .14s var(--ease)}
.saved-doc:hover{border-color:var(--blue-300);background:var(--blue-50)}
.saved-doc__main{flex:1;display:flex;align-items:baseline;gap:10px;min-width:0}
.saved-doc__t{font-size:13.5px;font-weight:600;color:var(--navy-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.saved-doc__d{font-family:var(--mono);font-size:11.5px;color:var(--grey-400)}
.saved-doc__del{appearance:none;border:none;background:transparent;cursor:pointer;color:var(--grey-400);font-size:14px;padding:2px 5px;border-radius:6px}
.saved-doc__del:hover{color:var(--danger);background:var(--danger-bg)}
.saved-doc__badge{flex:0 0 auto;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--success);background:var(--success-bg);border-radius:6px;padding:2px 8px;white-space:nowrap}
.saved-doc__act{flex:0 0 auto;appearance:none;border:1px solid var(--grey-300);background:var(--surface);color:var(--grey-700);font-size:12px;border-radius:8px;padding:5px 11px;cursor:pointer;white-space:nowrap}
.saved-doc__act:hover{background:var(--grey-100)}
.saved-doc__act--send{border-color:var(--blue-500);color:var(--blue-700)}
.saved-doc__act--send:hover{background:var(--blue-50)}
.saved-doc--submitted{background:#F6FAF7;border-color:#CFE5D8}

/* ══ Модалка-форма документа ══ */
.modal--form{max-width:700px;width:100%;display:flex;flex-direction:column;max-height:88vh}
.doc-form__head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.doc-form__sub{font-size:12px;color:var(--grey-500);margin-top:3px}
.doc-form__body{flex:1;min-height:0;overflow-y:auto;margin:16px 0;display:flex;flex-direction:column;gap:13px}
.doc-form__period{width:100%}
.doc-form__items{display:flex;flex-direction:column;gap:15px}
.doc-form__actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border-top:1px solid var(--grey-200);padding-top:16px}
.doc-input{border:1px solid var(--grey-300);border-radius:var(--radius);padding:8px 10px;font-size:13px;font-family:inherit;line-height:1.55;background:#fff;color:var(--ink);outline:none}
textarea.doc-input{resize:vertical;min-height:44px}
.doc-input:focus{border-color:var(--blue-500)}
select.doc-input{cursor:pointer;height:38px}

/* ══ Сайдбар: дерево узлов ══ */
.nav-tree{display:flex;flex-direction:column;gap:1px}
.nav-empty{font-size:12px;color:#5E7099;padding:6px 10px}
.nav-node{display:flex;align-items:center;gap:8px;padding:8px 9px;border-radius:var(--radius);font-size:13.5px;color:#AEBCD6;cursor:pointer;transition:background .14s var(--ease),color .14s var(--ease);user-select:none}
.nav-node:hover{background:rgba(255,255,255,.07);color:#E7EDF7}
.nav-node.active{background:rgba(255,255,255,.12);color:#fff;font-weight:600}
.nav-node.active .nav-ico{color:#9FB6DC}
.nav-ico{flex:0 0 auto;color:#5E7099;display:inline-flex;align-items:center}
.nav-node.active .nav-ico svg{stroke:#9FB6DC}
.nav-node__t{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav-chev{flex:0 0 auto;width:14px;color:#5E7099;font-size:13px;line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:transform .14s var(--ease)}
.nav-chev.open{transform:rotate(90deg)}
.nav-chev--blank{visibility:hidden}
.nav-pill{flex:0 0 auto;font-family:var(--mono);font-size:9.5px;font-weight:700;color:#9FB6DC;background:rgba(255,255,255,.1);border-radius:5px;padding:1px 5px}
.nav-node__more{flex:0 0 auto;appearance:none;border:none;background:transparent;cursor:pointer;color:#5E7099;font-size:15px;line-height:1;padding:0 2px;border-radius:6px;opacity:0;transition:opacity .14s var(--ease)}
.nav-node:hover .nav-node__more{opacity:1}
.nav-node__more:hover{color:#fff;background:rgba(255,255,255,.1)}
.nav-add{display:flex;align-items:center;gap:8px;width:100%;appearance:none;border:none;background:transparent;cursor:pointer;border-radius:var(--radius);padding:8px 9px;margin-top:2px;font-family:inherit;font-size:12.5px;font-weight:500;color:#7F90AD}
.nav-add:hover{background:rgba(255,255,255,.07);color:#E7EDF7}
.nav-add svg{color:#5E7099}

/* ══ Экран папки (содержимое узла) ══ */
.node-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px;flex-wrap:wrap}
.node-head__title{display:flex;align-items:center;gap:11px;font-size:19px;font-weight:600;color:var(--navy-900)}
.node-head__title svg{color:var(--blue-600)}
.node-head__actions{display:flex;align-items:center;gap:9px}
.node-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(188px,1fr));gap:14px}
.node-card{background:#fff;border:1px solid var(--grey-250);border-radius:var(--radius-lg);padding:16px;display:flex;flex-direction:column;gap:10px;cursor:pointer;box-shadow:var(--shadow-soft);transition:border-color .14s var(--ease),box-shadow .18s var(--ease),transform .14s var(--ease)}
.node-card:hover{border-color:#C7D3E5;box-shadow:var(--shadow-lifted);transform:translateY(-1px)}
.node-card__ico{width:38px;height:38px;border-radius:var(--radius-md);background:var(--blue-100);color:var(--blue-600);display:flex;align-items:center;justify-content:center}
.node-card__t{font-size:13.5px;font-weight:600;color:var(--navy-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.node-card__h{font-size:11px;color:var(--grey-400)}
.node-empty{grid-column:1/-1;font-size:13px;padding:32px 0;text-align:center;color:var(--grey-400)}

/* drag-and-drop: подсветка зоны сброса в сайдбаре */
.side-scroll.drop-on{outline:2px dashed #4C82C4;outline-offset:-4px;border-radius:var(--radius);background:rgba(76,130,196,.12)}

/* ═══════════════════════════════════════════════════════════
   НОВЫЕ КОМПОНЕНТЫ (добавлены в app.js после снимка дизайна m21).
   Стиль — в духе «Calm»: плоско, спокойно, синий-акцент, мягкие тени.
   ═══════════════════════════════════════════════════════════ */

/* RU/EN переключатель (шапка) */
.lang{display:flex;background:var(--grey-100);border-radius:999px;padding:3px;border:1px solid var(--grey-250)}
.lang button{appearance:none;border:none;background:transparent;cursor:pointer;font-size:11.5px;font-weight:600;color:var(--grey-500);padding:6px 12px;border-radius:999px;transition:all .14s var(--ease)}
.lang button:hover{color:var(--navy-900)}
.lang button.active{background:#fff;color:var(--navy-900);box-shadow:var(--shadow-card)}

/* «Заголовок» сайдбар-дерева (системные узлы) — на тёмном фоне */
.nav-tree-label{font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#5E7099;padding:11px 10px 6px;white-space:nowrap}
.nav-tree-label:first-child{padding-top:2px}

/* Сайдбар-голова кликабельна (= на главную) */
.sidebar__head{cursor:pointer;border-radius:var(--radius);transition:background .14s var(--ease)}
.sidebar__head:hover{background:rgba(255,255,255,.06)}

/* KPI-бейджи журнала: крупное число + спокойный дельта-бейдж по знаку */
.jstat{min-width:120px}
.jstat__top{display:flex;align-items:center;gap:8px}
.jstat__v--dual{font-size:14px;font-weight:600;letter-spacing:0;white-space:normal;line-height:1.25}
.jstat__delta{display:inline-flex;align-items:center;justify-content:center;width:22px;height:20px;border-radius:7px;flex:0 0 auto}
.jstat__delta svg{width:12px;height:12px}
.jstat__delta--up{background:var(--success-bg);color:var(--success)}
.jstat__delta--down{background:var(--danger-bg);color:var(--danger)}

/* Панель «Связанное» (взаимосвязь модулей: в заметке, сделке) */
.related{margin-top:18px;border-top:1px solid var(--line-soft);padding-top:14px;display:flex;flex-direction:column;gap:7px}
.related:empty{display:none}
.related__h{display:flex;align-items:center;gap:6px;font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--grey-400);margin:0}
.related__h svg{color:var(--blue-500);flex:0 0 auto}
.related__group{font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--grey-400);margin:4px 0 0}
.related .search-item{padding:9px 12px}

/* Дата-напоминание в редакторе заметки */
.nb-date__lbl--rem{margin-left:14px}
.nb-date__in--rem{min-width:170px}

/* Колокольчик напоминаний (плавающий) */
.rem-bell{position:fixed;right:22px;bottom:22px;z-index:60;width:46px;height:46px;border-radius:50%;border:1px solid var(--grey-250);background:#fff;color:var(--grey-700);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-pop)}
.rem-bell:hover{background:var(--grey-100);color:var(--navy-900)}
.rem-bell--has{color:var(--danger);border-color:rgba(178,58,58,.4)}
.rem-bell__count{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--danger);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center}
/* Фидбэк 2026-07-01: раньше панель была прибита к нижнему правому углу экрана
   независимо от того, где сам колокольчик (он давно переехал в шапку, .header__bell) —
   визуально не читалось, что это дропдаун ЭТОЙ иконки. Позиция теперь считается в JS
   (_positionRemPanel, по образцу .ctx-menu) от getBoundingClientRect() колокольчика;
   здесь только «нейтральная» база + попап-анимация с началом роста от угла кнопки. */
.rem-panel{position:fixed;z-index:70;width:330px;max-height:60vh;overflow-y:auto;background:var(--surface);border:1px solid var(--grey-250);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop);padding:7px;transform-origin:top right;animation:jc-pop .16s var(--ease)}
.rem-panel__head{font-weight:600;font-size:13px;padding:9px 11px;color:var(--grey-500)}
.rem-panel__empty{padding:18px;color:var(--grey-400);font-size:13.5px;text-align:center}
.rem-item{display:flex;align-items:center;gap:9px;padding:10px 11px;border-radius:var(--radius);cursor:pointer;transition:background .14s var(--ease)}
.rem-item:hover{background:var(--grey-100)}
.rem-item__body{flex:1;min-width:0}
.rem-item__t{font-size:13.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rem-item__when{font-size:12px;color:var(--grey-500)}
.rem-item__done{flex:none;width:28px;height:28px;border-radius:7px;border:1px solid var(--grey-250);background:transparent;color:var(--success);cursor:pointer;transition:background .14s var(--ease),transform .14s var(--ease)}
.rem-item__done:hover{background:var(--success-bg);transform:scale(1.06)}
/* Метка «Завтра» + элементы-праздники в колокольчике */
.rem-item__soon{display:inline-block;margin-left:8px;font-size:10px;font-weight:700;letter-spacing:.02em;color:#fff;background:var(--blue-600,#2E5FA3);border-radius:5px;padding:1px 6px;vertical-align:middle}
.rem-item--hol{cursor:default;border-left:2px solid var(--grey-300)}
.rem-item--hol:hover{background:transparent}
.rem-hol--closed{border-left-color:var(--danger,#B23A3A)}
.rem-hol--early{border-left-color:var(--warning,#B5852A)}
.rem-hol--ru{border-left-color:var(--blue-500,#3A6FB8)}
.rem-hol--company,.rem-hol--bd{border-left-color:#3E7A6A}

/* Вкладка «Пользователи» (служебный слой) */
.u-table{width:100%;border-collapse:collapse;font-size:14px}
.u-table th,.u-table td{text-align:left;padding:10px 13px;border-bottom:1px solid var(--grey-200);vertical-align:middle}
.u-table th{font-weight:700;color:var(--grey-500);font-size:11px;text-transform:uppercase;letter-spacing:.03em;background:var(--surface-2)}
.u-table tr:last-child td{border-bottom:none}
.u-actions{white-space:nowrap;text-align:right}
.u-badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:600}
.u-badge--ok{background:var(--success-bg);color:var(--success)}
.u-badge--blocked{background:var(--danger-bg);color:var(--danger)}
.u-danger{color:var(--danger)}
.u-danger:hover{background:var(--danger-bg)}
.admin__h{font-size:15px;font-weight:600;margin:4px 0 12px;color:var(--navy-900)}

/* ═══════════════════════════════════════════════════════════
   ░░░  СКИН «AI SaaS Dashboard» (glassmorphism)  ░░░
   Перекрывает «Calm» поверх: aurora-фон, матовое стекло, иконочная
   рейка, крупные KPI с градиентными дельтами, цветные бейджи.
   Палитра navy/blue/teal/violet. Накладывается ПОСЛЕ всех правил —
   побеждает по порядку, сохраняя покрытие компонентов из базы.
   ═══════════════════════════════════════════════════════════ */
:root{
  --navy-1:#0C1A31; --navy-2:#1C3056; --navy-3:#24416E;
  --s-blue:#2E5FA3; --s-blue-2:#3A6FB8; --s-blue-3:#5B8AD0; --s-blue-soft:#9DB8DD;
  --s-teal:#12B3A6; --s-teal-2:#2DD4BF; --s-violet:#7C6FF0;
  --s-ink:#15233F; --s-ink-2:#33415C; --s-muted:#5E6E89; --s-muted-2:#8794A9;
  --glass:linear-gradient(160deg,rgba(255,255,255,.9),rgba(255,255,255,.78));
  --glass-2:linear-gradient(160deg,rgba(255,255,255,.82),rgba(255,255,255,.66));
  --glass-brd:1px solid rgba(255,255,255,.85);
  --sh-card:0 1px 0 rgba(255,255,255,.7) inset,0 16px 34px -18px rgba(18,38,76,.34);
  --sh-pop:0 24px 60px -22px rgba(18,38,76,.45);
  --rs-sm:12px; --rs:16px; --rs-lg:20px; --rs-xl:26px;
  --blur:blur(22px) saturate(1.3);
}
/* Aurora-фон на всём приложении */
body{
  background:
    radial-gradient(46% 38% at 10% 4%,rgba(45,212,191,.20),transparent 62%),
    radial-gradient(42% 40% at 92% 2%,rgba(124,111,240,.18),transparent 60%),
    radial-gradient(60% 55% at 78% 108%,rgba(46,95,163,.20),transparent 60%),
    radial-gradient(50% 45% at 18% 112%,rgba(18,179,166,.12),transparent 60%),
    linear-gradient(180deg,#EEF3FB,#E7EEF7) !important;
  background-attachment:fixed !important;
}
.app{background:transparent}
.login-screen{background:
  radial-gradient(46% 40% at 12% 2%,rgba(45,212,191,.20),transparent 62%),
  radial-gradient(46% 42% at 90% 4%,rgba(124,111,240,.18),transparent 60%),
  linear-gradient(180deg,#EEF3FB,#E7EEF7)}
.login-card{background:var(--glass);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border:var(--glass-brd);box-shadow:var(--sh-pop)}

/* ░░ ИКОНОЧНАЯ РЕЙКА (единственная навигация) ░░ */
.rail{position:sticky;top:0;height:100vh;flex:0 0 84px;width:84px;display:flex;flex-direction:column;align-items:center;gap:8px;padding:18px 0 16px;background:linear-gradient(180deg,var(--navy-1),var(--navy-2) 62%,#16294A);box-shadow:14px 0 40px -28px rgba(10,20,45,.7);z-index:30}
.rail__logo{width:46px;height:46px;border-radius:15px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-weight:600;font-size:23px;color:#fff;cursor:pointer;border:none;background:linear-gradient(150deg,#4C7BC4,#2E5FA3 60%,#214B86);box-shadow:0 8px 20px -8px rgba(46,95,163,.8),0 0 0 1px rgba(255,255,255,.14) inset}
.mode{margin-top:14px;display:flex;flex-direction:column;gap:4px;padding:4px;border-radius:15px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.08)}
.mode__btn{position:relative;width:48px;height:40px;border:none;cursor:pointer;border-radius:11px;background:transparent;display:flex;align-items:center;justify-content:center;color:#93A6C6;transition:all .16s ease}
.mode__btn:hover{color:#DCE6F6;background:rgba(255,255,255,.06)}
.mode__btn.active{background:linear-gradient(150deg,#3A6FB8,#2E5FA3);color:#fff;box-shadow:0 6px 16px -6px rgba(46,95,163,.9)}
.rail__div{width:34px;height:1px;background:rgba(255,255,255,.1);margin:12px 0 10px}
.rail__nav{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1;overflow-y:auto;overflow-x:hidden;width:100%;scrollbar-width:none}
.rail__nav::-webkit-scrollbar{display:none}
.rail__group{display:none;flex-direction:column;align-items:center;gap:6px}
.rail__group:not(.hidden){display:flex}
.nav-i{position:relative;width:50px;height:50px;border-radius:15px;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#8DA0C0;transition:all .16s ease;flex:0 0 auto}
.nav-i:hover{color:#E2EAF7;background:rgba(255,255,255,.07)}
.nav-i.active{color:#fff;background:linear-gradient(150deg,rgba(58,111,184,.34),rgba(46,95,163,.22));box-shadow:0 0 0 1px rgba(120,160,220,.35) inset}
.nav-i.active::before{content:"";position:absolute;left:-13px;top:50%;transform:translateY(-50%);width:4px;height:24px;border-radius:0 4px 4px 0;background:linear-gradient(180deg,#5B8AD0,#2DD4BF)}
.rail__foot{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:auto;padding-top:8px}
/* Кластер мастера (Jucon/Трейдеры/Монитор) в рейке сотрудничьего shell'а —
   3 кнопки того же языка, что .rail__shield, сгруппированы визуально. */
.rail__master-cluster{display:flex;flex-direction:column;align-items:center;gap:8px;padding-bottom:6px;
  border-bottom:1px solid var(--c-hair,rgba(255,255,255,.12));margin-bottom:2px}
.rail__shield{width:50px;height:50px;border-radius:15px;border:1px solid rgba(255,255,255,.12);cursor:pointer;display:flex;align-items:center;justify-content:center;color:#A9BCDC;background:rgba(255,255,255,.05);transition:all .16s ease;position:relative}
.rail__shield:hover{color:#fff;background:rgba(255,255,255,.1)}
.rail__ava{width:46px;height:46px;border-radius:50%;position:relative;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:15px;color:#fff;background:linear-gradient(150deg,#2DD4BF,#12B3A6);box-shadow:0 6px 16px -7px rgba(18,179,166,.9);border:2px solid rgba(255,255,255,.22)}
.tip{position:absolute;left:60px;top:50%;transform:translateY(-50%) translateX(-6px);background:#0D1B33;color:#EAF1FB;font-size:12px;font-weight:500;white-space:nowrap;padding:7px 11px;border-radius:9px;pointer-events:none;opacity:0;transition:opacity .14s ease,transform .14s ease;box-shadow:0 12px 30px -12px rgba(10,20,45,.7);z-index:60;border:1px solid rgba(255,255,255,.08)}
.tip::before{content:"";position:absolute;left:-5px;top:50%;transform:translateY(-50%);width:9px;height:9px;background:#0D1B33;border-left:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08);rotate:45deg}
.nav-i:hover .tip,.rail__shield:hover .tip,.rail__ava:hover .tip,.mode__btn:hover .tip,.rail__logo:hover .tip{opacity:1;transform:translateY(-50%) translateX(0)}
.rail__add{width:42px;height:42px;border-radius:13px;border:1px dashed rgba(255,255,255,.2);background:transparent;color:#7F90AD;cursor:pointer;display:flex;align-items:center;justify-content:center;position:relative;transition:all .16s ease;flex:0 0 auto}
.rail__add:hover{color:#DCE6F6;border-color:rgba(255,255,255,.4)}

/* ░░ ШАПКА → glass topbar ░░ */
.header{background:linear-gradient(180deg,rgba(238,243,251,.92),rgba(238,243,251,.5))!important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:none!important;box-shadow:none!important;height:auto!important;min-height:var(--header-h);padding:18px 30px 14px!important;align-items:flex-start}
.header__crumb{letter-spacing:.1em;color:var(--s-muted-2)}
.header__title{font-size:21px;font-weight:700;letter-spacing:-.02em;color:var(--navy-1)}
.header__sub{color:var(--s-muted)}
.header__actions{align-items:center}
.lang{background:rgba(255,255,255,.7);border:1px solid rgba(255,255,255,.85);border-radius:11px;box-shadow:var(--sh-card)}
.lang button.active{background:linear-gradient(150deg,#3A6FB8,#2E5FA3);color:#fff;box-shadow:none}
.header__search{background:rgba(255,255,255,.7)!important;border:1px solid rgba(255,255,255,.85)!important;border-radius:13px!important;color:var(--s-ink-2)!important;box-shadow:var(--sh-card);height:42px!important}
.header__search:hover{color:var(--s-blue)!important;box-shadow:var(--sh-card)}
.icon-btn.menu-btn{color:var(--s-ink-2)}

/* поле контента — стекло «дышит» на aurora */
.content{background:transparent!important}
.screen{background:transparent!important}

/* ░░ Кнопки — синий градиент ░░ */
.btn--primary{background:linear-gradient(150deg,#3A6FB8,#2E5FA3)!important;border:none;box-shadow:0 10px 22px -12px rgba(46,95,163,.9)}
.btn--primary:hover{background:linear-gradient(150deg,#4279C6,#27508C)!important}
.btn--ghost{background:rgba(255,255,255,.72);border-color:rgba(255,255,255,.85);box-shadow:var(--sh-card)}
.btn--ghost:hover{background:#fff}
.btn--send{background:linear-gradient(150deg,#3A6FB8,#2E5FA3)!important;border-radius:13px}

/* ░░ KPI журнала → стеклянные карточки с градиент-дельтой ░░ */
.journal-stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}
@media (max-width:1180px){.journal-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:680px){.journal-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.jstat{position:relative;overflow:hidden;min-width:0;border-radius:var(--rs-lg)!important;padding:17px 17px 15px!important;background:var(--glass)!important;backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border:var(--glass-brd)!important;box-shadow:var(--sh-card)!important;display:flex;flex-direction:column;gap:0}
.jstat::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--g-blue,linear-gradient(180deg,#5B8AD0,#2E5FA3))}
.journal-stats .jstat:nth-child(6n+1)::before{background:linear-gradient(180deg,#5B8AD0,#2E5FA3)}
.journal-stats .jstat:nth-child(6n+2)::before{background:linear-gradient(180deg,#2DD4BF,#12B3A6)}
.journal-stats .jstat:nth-child(6n+3)::before{background:linear-gradient(180deg,#7C6FF0,#5B8AD0)}
.journal-stats .jstat:nth-child(6n+4)::before{background:linear-gradient(180deg,#5B8AD0,#2E5FA3)}
.journal-stats .jstat:nth-child(6n+5)::before{background:linear-gradient(180deg,#2DD4BF,#3A6FB8)}
.journal-stats .jstat:nth-child(6n+6)::before{background:linear-gradient(180deg,#7C6FF0,#2E5FA3)}
.jstat__top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;order:0}
.jstat__v{font-family:var(--mono)!important;font-weight:600!important;font-size:26px!important;letter-spacing:-.02em;color:var(--navy-1)!important;line-height:1.05!important;white-space:nowrap}
.jstat__v--dual{font-size:15px!important;white-space:normal;line-height:1.2}
.jstat__l{font-size:11.5px!important;color:var(--s-muted)!important;margin-top:8px!important;font-weight:500!important;text-transform:none!important;letter-spacing:0!important;order:1}
.jstat__delta{width:auto;height:auto;display:inline-flex;align-items:center;gap:3px;font-family:var(--mono);font-size:11px;font-weight:600;padding:3px 8px;border-radius:9px;color:#fff!important;white-space:nowrap}
.jstat__delta svg{width:12px;height:12px}
.jstat__delta--up{background:linear-gradient(135deg,#2DD4BF,#1F9D6B)!important}
.jstat__delta--down{background:linear-gradient(135deg,#E2756F,#DB5B57)!important}
.jstat--split{background:var(--glass)!important;border:var(--glass-brd)!important;box-shadow:var(--sh-card)!important;border-radius:var(--rs-lg)!important}
.jstat--split::before{display:none}

/* ░░ Панели аналитики → стекло ░░ */
.journal-head,.jeq,.jerr,.journal-table-wrap,.master-tablewrap,.master-card,.cal-bar,.trans-upload,.trans-detailcol,.data-card,.timeline,.dropzone{background:var(--glass)!important;backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border:var(--glass-brd)!important;box-shadow:var(--sh-card)!important;border-radius:var(--rs-lg)!important}
.janalytics__cols{gap:18px}
.jeq__h,.jerr__t th,.tablecard__h{color:var(--s-muted)}
.journal-table th{background:rgba(255,255,255,.4)!important;color:var(--s-muted-2)!important;border-bottom:1px solid var(--line,rgba(20,40,80,.09))!important}
.journal-table td{border-bottom:1px solid rgba(20,40,80,.06)!important;color:var(--s-ink-2)!important}
.journal-table tbody tr:hover{background:rgba(255,255,255,.5)!important}
.journal-pill.active{background:linear-gradient(150deg,#3A6FB8,#2E5FA3)!important;border-color:transparent}

/* ░░ Цветные бейджи таблицы (направление / исход) — рендер в app.js ░░ */
.dir{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:3px 9px 3px 7px;border-radius:8px}
.dir--long{color:#15795A;background:rgba(45,212,191,.16)}
.dir--short{color:#244C86;background:rgba(91,138,208,.18)}
.dir i{width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;display:inline-block}
.dir--long i{border-bottom:6px solid #15795A}
.dir--short i{border-top:6px solid #244C86}
.out{display:inline-flex;font-size:10.5px;font-weight:700;letter-spacing:.03em;padding:3px 9px;border-radius:8px}
.out--tp{color:#15795A;background:rgba(31,157,107,.14)}
.out--sl{color:#B23A3A;background:rgba(219,91,87,.15)}
.out--bu{color:#5E6E89;background:rgba(94,110,137,.14)}

/* ░░ Donut «Распределение R» (рендер в app.js) ░░ */
.donut{display:flex;align-items:center;gap:22px}
.donut__svg{flex:0 0 auto;filter:drop-shadow(0 10px 18px rgba(18,38,76,.18))}
.donut__c{font-family:var(--mono);font-weight:600;fill:var(--navy-1)}
.donut__legend{display:flex;flex-direction:column;gap:11px;flex:1;min-width:0}
.dl{display:flex;align-items:center;gap:10px;font-size:12.5px}
.dl i{width:11px;height:11px;border-radius:4px;flex:0 0 auto}
.dl__t{color:var(--s-ink-2)}
.dl__v{margin-left:auto;font-family:var(--mono);font-weight:600;color:var(--navy-1);font-variant-numeric:tabular-nums}
/* Hero-метрика в карточке эквити */
.jeq__big{display:flex;align-items:baseline;gap:12px;margin:2px 0 10px}
.jeq__num{font-family:var(--mono);font-size:28px;font-weight:600;letter-spacing:-.02em;color:var(--navy-1)}
.jeq__num.pos{color:#1F9D6B}.jeq__num.neg{color:#DB5B57}
.jeq__count{font-size:12px;color:var(--c-ink-muted)}

/* ░░ Карточки/айтемы → стекло ░░ */
.folder-card,.doc-card,.node-card,.search-item,.nb-ai-btn,.nb-ai-instruct,.mode-card,.cal-cell,.trans-item,.inc-card,.ver-card,.report-card,.editor-pane,.dis-point,.folder-block,.spend-card,.auditor-card{background:var(--glass)!important;backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border:var(--glass-brd)!important;box-shadow:var(--sh-card)!important}
.cal-cell--blank{background:transparent!important;border-color:transparent!important;box-shadow:none!important}
.folder-ico,.node-card__ico,.stub__ico,.dropzone__ico,.trans-upload__ico{background:rgba(46,95,163,.12)!important;color:var(--s-blue)!important}

/* ░░ Чат → glass + градиентные пузыри ░░ */
.chat{background:transparent}
.msg--user .msg__bubble{background:linear-gradient(140deg,#4C7BC4,#2E5FA3 70%,#214B86)!important;border-radius:20px;border-top-right-radius:7px;box-shadow:0 14px 30px -16px rgba(46,95,163,.8)}
.msg--ai .msg__bubble.md,.msg--assistant .msg__bubble.md,.msg--ai .msg__bubble,.msg--assistant .msg__bubble{background:linear-gradient(155deg,rgba(255,255,255,.92),rgba(255,255,255,.62));border:1px solid rgba(255,255,255,.9);border-radius:20px;border-top-left-radius:7px;padding:15px 19px;box-shadow:0 14px 34px -20px rgba(18,38,76,.4)}
.composer{background:transparent!important;border-top:none!important;backdrop-filter:none!important}
.composer__box{background:var(--glass)!important;backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border:var(--glass-brd)!important;border-radius:var(--rs-xl)!important;box-shadow:var(--sh-card)!important}
.mode-seg,.lang{box-shadow:var(--sh-card)}
.mode-seg__btn.active,.mode-seg button.active{background:linear-gradient(150deg,#3A6FB8,#2E5FA3)!important;color:#fff!important}
.chat-history,.nb-list{background:rgba(255,255,255,.32)!important;backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border-right:1px solid rgba(255,255,255,.5)!important}

/* ░░ Модалки/оверлеи/палитра/админка → стекло ░░ */
.modal,.admin,.palette,.fv-modal{background:var(--glass)!important;backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border:var(--glass-brd)!important;box-shadow:var(--sh-pop)!important}
.overlay{background:rgba(16,30,56,.42)!important;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.admin-tab.active{border-bottom-color:var(--s-blue)}
.toast{background:var(--navy-1)}

/* старый сайдбар не используется (его заменила рейка) */
.sidebar{display:none!important}
/* админ-группа дерева не нужна в рейке (доступ — через щит); прячем */
.rail .nav-group{display:none!important}

/* ── Журнал-тулбар (константы + диктовка) → glass ── */
.journal-head{background:linear-gradient(135deg,rgba(124,111,240,.10),rgba(45,212,191,.07) 55%,rgba(255,255,255,0)),var(--glass)!important;gap:16px!important;padding:13px 18px!important;border-radius:var(--rs-lg)!important}
.jhead__l{font-size:10px;letter-spacing:.05em;color:var(--s-muted)}
.jhead__in{font-family:var(--mono);font-weight:600;background:rgba(255,255,255,.72)!important;border:1px solid rgba(255,255,255,.85)!important;border-radius:11px!important;color:var(--navy-1)!important}
.jhead__val{font-family:var(--mono);font-weight:600;color:var(--navy-1)}
.jhead__hint{color:var(--s-muted-2)}
.journal-dictate{background:rgba(255,255,255,.72)!important;border:1px solid rgba(255,255,255,.85)!important;border-radius:13px!important;box-shadow:inset 0 1px 2px rgba(18,38,76,.05)!important}
.journal-dictate:focus-within{border-color:var(--s-teal-2)!important;box-shadow:0 0 0 3px rgba(45,212,191,.16)!important}
#trade-extract{background:linear-gradient(135deg,#2DD4BF,#12B3A6)!important;color:#fff!important;border:none!important;box-shadow:0 8px 18px -9px rgba(18,179,166,.9)}

/* ── фильтр-пилюли ── */
.journal-pill{background:rgba(255,255,255,.5)!important;border:1px solid rgba(255,255,255,.8)!important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--s-muted)!important}
.journal-pill.active{background:var(--grad-btn,linear-gradient(135deg,#4C7BC4,#2E5FA3 70%,#244C86))!important;color:#fff!important;border-color:transparent!important;box-shadow:0 8px 18px -9px rgba(46,95,163,.8)}

/* ── KPI hover-лифт ── */
.jstat{transition:transform .18s cubic-bezier(.2,0,0,1),box-shadow .18s ease}
.jstat:hover{transform:translateY(-2px);box-shadow:0 1px 0 rgba(255,255,255,.7) inset,0 26px 50px -22px rgba(18,38,76,.5)!important}

/* ── Инсайт-полоса (рендер в renderJournalAnalytics) ── */
.jinsight{display:flex;align-items:center;gap:16px;border-radius:var(--rs-xl);padding:15px 20px;background:linear-gradient(135deg,rgba(124,111,240,.16),rgba(45,212,191,.10) 58%,rgba(46,95,163,.10)),var(--glass);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border:1px solid rgba(255,255,255,.85);box-shadow:var(--sh-card)}
.jinsight__ic{flex:0 0 auto;width:42px;height:42px;border-radius:14px;display:flex;align-items:center;justify-content:center;color:#fff;background:linear-gradient(140deg,#7C6FF0,#3A6FB8);box-shadow:0 10px 22px -10px rgba(124,111,240,.9)}
.jinsight__h{font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;background:linear-gradient(90deg,#7C6FF0,#2E5FA3);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:3px}
.jinsight__t{font-size:13px;color:var(--s-ink-2);line-height:1.5}
.jinsight__t b{color:var(--navy-1);font-weight:600}

/* ── эквити hero-число — градиентный текст ── */
.jeq__num{background:linear-gradient(100deg,#7C6FF0,#2E5FA3 55%,#12B3A6);-webkit-background-clip:text;background-clip:text;color:transparent}
.jeq__num.neg{background:none;color:#DB5B57;-webkit-text-fill-color:#DB5B57}

/* ═══════════════════════════════════════════════════════════
   ░ ПОЛИРОВКА (make-interfaces-feel-better) ░
   Интеррап-переходы (без transition:all), scale-on-press 0.96,
   контекстные иконки (cubic-bezier .2,0,0,1), стеклянный блокнот,
   живой стеклянный календарь. tabular-nums, text-wrap.
   ═══════════════════════════════════════════════════════════ */

/* — Рейка: точечные переходы + микро-движение иконки + tactile press — */
.nav-i,.mode__btn,.rail__shield,.rail__add{transition:background-color .16s ease,color .16s ease,box-shadow .16s ease,scale .16s ease!important;will-change:scale}
.rail__logo{transition:scale .16s ease;will-change:scale}
.nav-i svg,.mode__btn svg,.rail__shield svg{transition:transform .2s cubic-bezier(.2,0,0,1)}
.nav-i:hover svg,.mode__btn:hover svg,.rail__shield:hover svg{transform:scale(1.12)}
.nav-i:active,.mode__btn:active,.rail__shield:active,.rail__add:active,.rail__logo:active{scale:.96}
/* активный индикатор-полоса плавно «вырастает» (а не моргает) */
.nav-i::before{content:"";position:absolute;left:-13px;top:50%;width:4px;height:24px;border-radius:0 4px 4px 0;background:linear-gradient(180deg,#5B8AD0,#2DD4BF);transform:translateY(-50%) scaleY(.2);opacity:0;transition:transform .22s cubic-bezier(.2,0,0,1),opacity .2s ease;pointer-events:none}
.nav-i.active::before{opacity:1;transform:translateY(-50%) scaleY(1)}

/* — Тултип-каретка: ОДИН transform (была «кривая» из-за отдельного rotate), чистый ромб — */
.tip::before{transform:translateY(-50%) rotate(45deg);rotate:none;left:-4px;width:8px;height:8px;border:none;box-shadow:none}

/* — Заголовки: красивый перенос — */
.header__title,.topbar__title,.modal__title,.chat-empty__title,.nb-title,.cal-title{text-wrap:balance}

/* — Блокнот: стекло + премиальный «лист» — */
.nb,.nb-editor{background:transparent!important}
.nb-list{background:linear-gradient(180deg,rgba(255,255,255,.42),rgba(255,255,255,.24))!important;border-right:1px solid rgba(255,255,255,.55)!important}
.nb-card{transition:background-color .16s ease,box-shadow .18s ease,transform .16s ease,border-color .16s ease}
.nb-card:hover{background:rgba(255,255,255,.72)!important;box-shadow:var(--sh-card)!important;transform:translateY(-1px)}
.nb-card.active{background:#fff!important;border-color:transparent!important;box-shadow:0 0 0 1px rgba(58,111,184,.42),var(--sh-card)!important}
.nb-doc-main{background:linear-gradient(160deg,rgba(255,255,255,.97),rgba(255,255,255,.88))!important;border:1px solid rgba(255,255,255,.9)!important;box-shadow:var(--sh-pop)!important;border-radius:var(--rs-xl)!important}
.nb-title{letter-spacing:-.02em;color:var(--navy-1)}
#note-toolbar{background:rgba(255,255,255,.72)!important;-webkit-backdrop-filter:blur(12px) saturate(1.4);backdrop-filter:blur(12px) saturate(1.4);border-bottom:1px solid rgba(255,255,255,.6)!important}
.nb-ai-btn{transition:background-color .16s ease,box-shadow .18s ease,transform .16s ease,border-color .16s ease}
.nb-ai-btn:hover{transform:translateY(-1px)}
.nb-ai-btn:active{scale:.98}
.nb-fil{transition:background-color .14s ease,color .14s ease,box-shadow .16s ease}
.nb-fil.active{background:var(--grad-btn,linear-gradient(135deg,#4C7BC4,#2E5FA3 70%,#244C86))!important;border-color:transparent!important;color:#fff!important}

/* — Календарь: живые стеклянные ячейки — */
.cal-grid{gap:8px}
.cal-cell{border:1px solid rgba(255,255,255,.7)!important;background:var(--glass)!important;backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);box-shadow:var(--sh-card)!important;border-radius:var(--rs)!important;transition:transform .16s cubic-bezier(.2,0,0,1),box-shadow .18s ease!important;position:relative;overflow:hidden}
.cal-cell--blank{background:transparent!important;border-color:transparent!important;box-shadow:none!important;backdrop-filter:none}
.cal-cell--day:hover{transform:translateY(-2px);box-shadow:0 1px 0 rgba(255,255,255,.7) inset,0 18px 30px -16px rgba(18,38,76,.4)!important;z-index:2}
.cal-cell--day:active{transform:translateY(0)}
.cal-cell--today{border-color:transparent!important;box-shadow:0 0 0 1.5px #2E5FA3 inset,var(--sh-card)!important}
.cal-cell--today::after{content:"СЕГОДНЯ";position:absolute;top:6px;right:7px;font-size:8px;font-weight:700;letter-spacing:.05em;color:#fff;background:linear-gradient(135deg,#3A6FB8,#2E5FA3);border-radius:5px;padding:2px 6px}
.cal-cell__d{font-variant-numeric:tabular-nums;color:var(--s-ink-2)}
.cal-cell--today .cal-cell__d{color:#2E5FA3;font-weight:700}
.cal-cell--has{border-color:rgba(58,111,184,.32)!important}
.cal-add{position:absolute;left:50%;top:55%;transform:translate(-50%,-50%) scale(.5);opacity:0;font-size:22px;font-weight:300;color:var(--s-muted-2);transition:opacity .16s ease,transform .2s cubic-bezier(.2,0,0,1);pointer-events:none}
.cal-cell--day:hover .cal-add{opacity:.55;transform:translate(-50%,-50%) scale(1)}
.cal-cell--has .cal-add{display:none}
.cal-ev{background:rgba(46,95,163,.1)!important;border:none!important;border-left:2px solid #3A6FB8!important;color:var(--navy-1)!important;border-radius:7px!important;transition:background-color .14s ease,transform .12s ease}
.cal-ev:hover{background:rgba(46,95,163,.18)!important;transform:translateX(1px)}
.cal-ev__t{color:#2E5FA3;font-weight:600}
.cal-wd{color:var(--s-muted-2)}
.cal-bar{background:var(--glass)!important;backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border:var(--glass-brd)!important;box-shadow:var(--sh-card)!important;border-radius:var(--rs-lg)!important}
.cal-title{color:var(--navy-1)}
@keyframes cal-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.cal-grid .cal-cell--day{animation:cal-in .3s cubic-bezier(.2,0,0,1) both}

/* ═══════════════════════════════════════════════════════════
   ░ ПОЛИРОВКА v2 ░  заметнее иконки + смена экрана,
   переосмысленный блокнот, наполненный календарь.
   ═══════════════════════════════════════════════════════════ */

/* — Заметнее: иконки рейки + анимация смены раздела — */
.nav-i:hover{background:rgba(255,255,255,.13)!important;box-shadow:inset 0 0 0 1px rgba(120,160,220,.22)}
.nav-i:hover svg,.mode__btn:hover svg,.rail__shield:hover svg{transform:scale(1.18)}
.nav-i.active svg{filter:drop-shadow(0 2px 6px rgba(45,212,191,.45))}
@keyframes jc-screenin{from{opacity:0;transform:translateY(10px) scale(.995)}to{opacity:1;transform:none}}
.content .screen:not(.hidden){animation:jc-screenin .34s cubic-bezier(.2,0,0,1)}

/* — БЛОКНОТ: «лист-документ» переосмыслен — */
.nb-doc-grid{padding:32px 36px 52px}
.nb-doc-main{position:relative;padding:38px 44px 44px!important;overflow:hidden}
.nb-doc-main::before{content:"";position:absolute;left:0;top:0;right:0;height:4px;background:linear-gradient(90deg,#7C6FF0,#3A6FB8 55%,#2DD4BF)}
.nb-title{font-size:32px!important;font-weight:700;color:var(--navy-1)!important;padding:8px 0 4px!important;border:none!important;letter-spacing:-.02em}
.nb-title::placeholder{color:#B9C3D6}
.nb-meta{gap:8px!important;padding:0 0 14px!important;border-bottom:1px solid rgba(20,40,80,.07);margin-bottom:16px!important}
.nb-cat,.nb-pin,.nb-export{background:rgba(255,255,255,.72)!important;border:1px solid rgba(255,255,255,.9)!important;box-shadow:var(--sh-card);border-radius:10px!important;color:var(--s-ink-2)!important;transition:transform .14s ease,box-shadow .16s ease,color .14s ease}
.nb-cat:hover,.nb-pin:hover,.nb-export:hover{transform:translateY(-1px);color:var(--s-blue)!important;box-shadow:0 8px 18px -10px rgba(46,95,163,.6)}
.nb-pin.active{background:linear-gradient(135deg,rgba(58,111,184,.16),rgba(45,212,191,.12))!important;color:var(--s-blue)!important;border-color:rgba(58,111,184,.3)!important}
.nb-del{color:var(--s-muted-2)!important;border-radius:10px!important}
.nb-del:hover{color:#DB5B57!important;background:rgba(219,91,87,.1)!important}
.nb-stats{color:var(--s-muted-2)}
/* свойства (дата/напоминание) — единый стеклянный блок вместо «голых» нативных полей */
.nb-date{background:linear-gradient(135deg,rgba(124,111,240,.06),rgba(45,212,191,.05) 60%,rgba(255,255,255,0)),rgba(255,255,255,.55)!important;border:1px solid rgba(255,255,255,.85);border-radius:14px;padding:13px 15px!important;gap:10px!important;box-shadow:inset 0 1px 2px rgba(18,38,76,.04)}
.nb-date__ico{color:var(--s-blue)}
.nb-date__lbl{color:var(--s-muted)!important;font-size:11px!important;text-transform:uppercase;letter-spacing:.04em;font-weight:700}
.nb-date__in{background:#fff!important;border:1px solid rgba(20,40,80,.12)!important;border-radius:10px!important;padding:7px 10px!important;font-family:var(--mono)!important;font-size:12.5px!important;color:var(--navy-1)!important;box-shadow:var(--sh-card);transition:border-color .14s ease,box-shadow .14s ease}
.nb-date__in:focus{border-color:var(--s-blue)!important;box-shadow:0 0 0 3px rgba(46,95,163,.12)}
.nb-date__in::-webkit-calendar-picker-indicator{opacity:.45;cursor:pointer}
.nb-date__in::-webkit-calendar-picker-indicator:hover{opacity:.85}
.nb-date__btn{background:linear-gradient(135deg,#7C6FF0,#3A6FB8)!important;color:#fff!important;border:none!important;border-radius:10px!important;box-shadow:0 8px 18px -9px rgba(124,111,240,.8);transition:transform .14s ease}
.nb-date__btn:hover{transform:translateY(-1px)}
.nb-date__clear{color:var(--s-muted-2)}
/* письменная поверхность — теплее, читабельнее */
#nb-quill{border-top:1px solid rgba(20,40,80,.07)!important;margin-top:18px!important;padding-top:8px!important}
#nb-quill .ql-editor{font-size:16.5px!important;line-height:1.85!important;color:#27324A!important;padding:14px 0 80px!important}
#nb-quill .ql-editor.ql-blank::before{color:#AEB8CC!important;font-style:normal!important;font-size:16.5px!important}
.nb-empty{font-size:14.5px;color:var(--s-muted)}
.nb-ai__h{color:var(--s-muted-2)}

/* — КАЛЕНДАРЬ: 2 колонки + панель «Ближайшие события» — */
.cal-wrap{display:grid!important;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start;max-width:1200px!important}
.cal-main{display:flex;flex-direction:column;gap:14px;min-width:0}
.cal-side{position:sticky;top:8px;background:var(--glass);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border:var(--glass-brd);box-shadow:var(--sh-card);border-radius:var(--rs-xl);padding:18px}
.cal-side__h{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--s-muted);margin-bottom:14px}
.cal-up{display:flex;flex-direction:column;gap:8px}
.cal-up__it{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:1px solid rgba(255,255,255,.8);background:rgba(255,255,255,.55);border-radius:13px;padding:10px 12px;cursor:pointer;font-family:inherit;box-shadow:var(--sh-card);transition:transform .14s ease,box-shadow .16s ease}
.cal-up__it:hover{transform:translateY(-1px);box-shadow:0 10px 22px -12px rgba(18,38,76,.5)}
.cal-up__d{flex:0 0 auto;min-width:46px;font-family:var(--mono);font-size:11px;font-weight:600;color:#fff;background:linear-gradient(135deg,#3A6FB8,#2E5FA3);border-radius:9px;padding:6px 8px;text-align:center;line-height:1.25;text-transform:uppercase;letter-spacing:.02em}
.cal-up__b{display:flex;flex-direction:column;min-width:0;flex:1}
.cal-up__t{font-size:13px;font-weight:600;color:var(--navy-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-up__time{font-family:var(--mono);font-size:11px;color:var(--s-muted)}
.cal-up__empty{font-size:12.5px;color:var(--s-muted-2);line-height:1.5;padding:6px 2px}
.cal-hint{color:var(--s-muted-2)}
@media (max-width:920px){.cal-wrap{grid-template-columns:1fr!important}.cal-side{position:static}}

/* ── Календарь: биржа США + праздники РФ + компания (сдержанная палитра) ── */
/* Фильтр-тумблеры категорий (они же легенда — цветная точка перед названием) */
.cal-filters{display:flex;flex-wrap:wrap;gap:8px 20px;padding:4px 2px 2px}
/* --c-ink читаем в обеих темах (в dark --grey-300 = hairline → был тусклым) */
.cal-filt{font-size:12px;color:var(--c-ink,#42536B)}
.cal-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px;vertical-align:middle}
.cal-dot--us{background:var(--danger,#B23A3A)}
.cal-dot--ru{background:var(--blue-500,#3A6FB8)}
.cal-dot--company{background:#3E7A6A}
/* Пометка-чип внутри дня — приглушённый фон, тонкая цветная планка слева */
.cal-hol{display:block;font-size:10.5px;font-weight:600;line-height:1.3;border-radius:5px;padding:2px 7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-left:2px solid transparent}
.cal-hol--closed{background:var(--danger-bg,#F8ECEC);color:#8f2f2f;border-left-color:var(--danger,#B23A3A)}
.cal-hol--early{background:var(--warning-bg,#F7F0DE);color:#7a5a12;border-left-color:var(--warning,#B5852A)}
.cal-hol--ru{background:var(--blue-50,#F5F8FC);color:var(--blue-700,#244C86);border-left-color:var(--blue-500,#3A6FB8)}
.cal-hol--company,.cal-hol--bd{background:#EDF5F2;color:#2f6a5b;border-left-color:#3E7A6A}
/* Очень лёгкая заливка ячейки-праздника (почти белые тона приложения) */
.cal-cell--closed{background:var(--danger-row,#FCF6F6)!important;border-color:rgba(178,58,58,.22)!important}
.cal-cell--early{background:#FCFAF2!important;border-color:rgba(181,133,42,.22)!important}
.cal-cell--ru{background:var(--blue-50,#F5F8FC)!important;border-color:rgba(58,111,184,.20)!important}
.cal-cell--fest{background:#F3FAF7!important;border-color:rgba(62,122,106,.22)!important}
/* Сайдбар: блок «Ближайшие праздники» */
.cal-side__h--sep{margin-top:20px}
.cal-holidays{display:flex;flex-direction:column;gap:8px}
.cal-hd{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:12px;border:1px solid rgba(255,255,255,.7);background:rgba(255,255,255,.5);box-shadow:var(--sh-card)}
.cal-hd__d{flex:0 0 auto;min-width:46px;font-family:var(--mono);font-size:11px;font-weight:700;color:#fff;border-radius:9px;padding:6px 8px;text-align:center;line-height:1.25;text-transform:uppercase;letter-spacing:.02em;background:var(--grey-500)}
.cal-hd--closed .cal-hd__d{background:var(--danger,#B23A3A)}
.cal-hd--early .cal-hd__d{background:var(--warning,#B5852A)}
.cal-hd--ru .cal-hd__d{background:var(--blue-600,#2E5FA3)}
.cal-hd--company .cal-hd__d,.cal-hd--bd .cal-hd__d{background:#3E7A6A}
.cal-hd__b{display:flex;flex-direction:column;min-width:0;flex:1;gap:1px}
.cal-hd__n{font-size:12.5px;font-weight:600;color:var(--navy-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-hd__tag{font-size:10.5px;color:var(--s-muted)}
[data-theme="dark"] .cal-hd{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12)}
[data-theme="dark"] .cal-hd__n{color:#e8eefc}
[data-theme="dark"] .cal-hol--closed{background:rgba(178,58,58,.16);color:#eaa5a5}
[data-theme="dark"] .cal-hol--early{background:rgba(181,133,42,.16);color:#e2c078}
[data-theme="dark"] .cal-hol--ru{background:rgba(58,111,184,.16);color:#a9c4ea}
[data-theme="dark"] .cal-hol--company,[data-theme="dark"] .cal-hol--bd{background:rgba(62,122,106,.16);color:#8fc7b6}
[data-theme="dark"] .cal-cell--closed{background:rgba(178,58,58,.10)!important}
[data-theme="dark"] .cal-cell--early{background:rgba(181,133,42,.10)!important}
[data-theme="dark"] .cal-cell--ru{background:rgba(58,111,184,.10)!important}
[data-theme="dark"] .cal-cell--fest{background:rgba(62,122,106,.10)!important}
/* Модалка «Синхронизация с устройствами» */
.sync-url{display:flex;gap:8px;align-items:center;margin-top:4px}
.sync-url .input{flex:1 1 auto;min-width:0;font-family:var(--mono);font-size:11.5px}
.sync-url .btn{flex:0 0 auto}
.sync-guide{display:flex;flex-direction:column;gap:9px;margin-top:16px}
.sync-guide__it{font-size:12.5px;line-height:1.5;color:var(--grey-700,#42536B);padding-left:12px;border-left:2px solid var(--grey-250)}
.sync-guide__it b{color:var(--navy-900,#14233F)}
.sync-note{font-size:11.5px;color:var(--s-muted,var(--grey-500));margin:14px 0 0;line-height:1.45}
[data-theme="dark"] .sync-guide__it{color:var(--c-ink,#C3CFE3);border-left-color:var(--c-glass-brd,rgba(255,255,255,.12))}
[data-theme="dark"] .sync-guide__it b{color:var(--c-ink-strong,#ECF1FA)}

/* ═══════════════════════════════════════════════════════════
   ░ ПОЛИРОВКА v3 ░  ЯВНАЯ пружинистая анимация иконок,
   скруглённые записи, чистый редактор без «коробки»,
   симпатичная шапка календаря.
   ═══════════════════════════════════════════════════════════ */

/* — Иконки рейки: спокойный мягкий ховер (без пружины/поворота — иначе «тряска») — */
.nav-i svg,.mode__btn svg,.rail__shield svg{transition:transform .18s ease,color .16s ease,filter .2s ease!important}
.nav-i:hover{background:linear-gradient(150deg,rgba(91,138,208,.26),rgba(46,95,163,.14))!important;color:#fff!important;box-shadow:inset 0 0 0 1px rgba(120,160,220,.28)}
.nav-i:hover svg,.mode__btn:hover svg,.rail__shield:hover svg{transform:scale(1.08)}
.nav-i.active svg{filter:drop-shadow(0 2px 7px rgba(45,212,191,.5))}
.rail__logo{transition:transform .18s ease,box-shadow .2s ease}
.rail__logo:hover{transform:scale(1.04);box-shadow:0 12px 26px -8px rgba(46,95,163,.9),0 0 0 1px rgba(255,255,255,.18) inset}

/* — Блокнот-список: скруглённые «карточки-записи» с воздухом — */
.nb-cards{gap:8px!important;padding:6px 10px 16px!important}
.nb-card{border-radius:14px!important;border:1px solid transparent!important;background:rgba(255,255,255,.4)!important;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background-color .16s ease,box-shadow .18s ease,transform .16s ease}
.nb-card:hover{background:rgba(255,255,255,.8)!important;box-shadow:var(--sh-card)!important;transform:translateY(-1px)}
.nb-card.active{background:#fff!important;border-color:transparent!important;box-shadow:0 0 0 1px rgba(58,111,184,.42),0 12px 24px -14px rgba(18,38,76,.5)!important}

/* — Редактор: убрать «коробку» (рамки невидимы) + мягкие свойства — */
#nb-quill,#nb-quill.ql-container,#nb-quill .ql-container,#nb-quill .ql-editor{border:none!important;box-shadow:none!important}
#nb-quill{margin-top:10px!important;padding-top:2px!important;border-top:none!important}
.nb-date{background:linear-gradient(135deg,rgba(124,111,240,.05),rgba(45,212,191,.045) 60%,transparent)!important;border:none!important;box-shadow:none!important;border-radius:12px;padding:12px 6px!important;gap:11px!important}

/* — Шапка календаря: симпатичнее — */
.cal-bar{padding:12px 16px!important;gap:9px!important;align-items:center}
#cal-prev,#cal-next{width:34px;height:34px;padding:0!important;border-radius:11px;font-size:18px;line-height:1;background:rgba(255,255,255,.7)!important;border:1px solid rgba(255,255,255,.9)!important;box-shadow:var(--sh-card);color:var(--s-ink-2)!important;transition:transform .14s ease,color .14s ease}
#cal-prev:hover,#cal-next:hover{color:var(--s-blue)!important;transform:translateY(-1px)}
#cal-today{border-radius:11px!important}
.cal-title{font-size:19px!important;font-weight:700;color:var(--navy-1)!important;min-width:148px;letter-spacing:-.01em}
.cal-hint{margin-left:auto;font-size:11px!important;color:var(--s-muted-2)!important;max-width:300px;text-align:right;line-height:1.4}

/* ── Карточки разделов (экран узла / папки) — пружинистый ховер + поп иконки + stagger ── */
.node-card,.folder-card{transition:transform .2s cubic-bezier(.2,0,0,1),box-shadow .2s ease,border-color .16s ease!important}
.node-card:hover,.folder-card:hover{transform:translateY(-3px)!important;box-shadow:0 20px 38px -18px rgba(18,38,76,.5)!important;border-color:rgba(91,138,208,.4)!important}
.node-card:active,.folder-card:active{transform:translateY(-1px) scale(.99)!important}
.node-card__ico,.folder-ico{transition:transform .2s cubic-bezier(.2,0,0,1),background-color .18s ease,color .18s ease}
.node-card:hover .node-card__ico,.folder-card:hover .folder-ico{transform:scale(1.08);background:linear-gradient(135deg,rgba(58,111,184,.2),rgba(45,212,191,.16))!important;color:#2E5FA3!important}
@keyframes node-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.node-grid .node-card,.card-grid .folder-card{animation:node-in .42s cubic-bezier(.2,0,0,1) both}
.node-grid .node-card:nth-child(1),.card-grid .folder-card:nth-child(1){animation-delay:.02s}
.node-grid .node-card:nth-child(2),.card-grid .folder-card:nth-child(2){animation-delay:.07s}
.node-grid .node-card:nth-child(3),.card-grid .folder-card:nth-child(3){animation-delay:.12s}
.node-grid .node-card:nth-child(4),.card-grid .folder-card:nth-child(4){animation-delay:.17s}
.node-grid .node-card:nth-child(5),.card-grid .folder-card:nth-child(5){animation-delay:.22s}
.node-grid .node-card:nth-child(6),.card-grid .folder-card:nth-child(6){animation-delay:.27s}
.node-grid .node-card:nth-child(n+7),.card-grid .folder-card:nth-child(n+7){animation-delay:.3s}

/* ═══════════════════════════════════════════════════════════
   ░ ПОЛИРОВКА v4 — допилка по фидбэку (плавность вкладок, градиент виджетов) ░
   ═══════════════════════════════════════════════════════════ */

/* #3 — горизонтальные вкладки/пилюли: мягкий ховер вместо резкого скачка фона */
.journal-pill,.admin-tab,.mode-seg button,.mode-seg__btn,.nb-fil,
.lang button,.master-li,.admin__tabs .admin-tab,.journal-filter__sel{
  transition:background-color .18s var(--ease),color .16s var(--ease),box-shadow .18s var(--ease),border-color .16s var(--ease)!important;
}
.admin-tab{transition:color .16s var(--ease),border-color .18s var(--ease),background-color .16s var(--ease)!important}

/* #4 — больше градиента: мягкий цветной подтон на стеклянных KPI (а не только в углу) */
.journal-stats .jstat:nth-child(6n+1){background:linear-gradient(150deg,rgba(91,138,208,.13),rgba(255,255,255,0) 64%),var(--glass)!important}
.journal-stats .jstat:nth-child(6n+2){background:linear-gradient(150deg,rgba(45,212,191,.13),rgba(255,255,255,0) 64%),var(--glass)!important}
.journal-stats .jstat:nth-child(6n+3){background:linear-gradient(150deg,rgba(124,111,240,.13),rgba(255,255,255,0) 64%),var(--glass)!important}
.journal-stats .jstat:nth-child(6n+4){background:linear-gradient(150deg,rgba(91,138,208,.13),rgba(255,255,255,0) 64%),var(--glass)!important}
.journal-stats .jstat:nth-child(6n+5){background:linear-gradient(150deg,rgba(45,212,191,.12),rgba(124,111,240,.05) 52%,rgba(255,255,255,0) 82%),var(--glass)!important}
.journal-stats .jstat:nth-child(6n+6){background:linear-gradient(150deg,rgba(124,111,240,.13),rgba(58,111,184,.05) 52%,rgba(255,255,255,0) 82%),var(--glass)!important}
/* крупные аналитические карты — тоже лёгкий диагональный подтон */
.jeq,.jerr{background:linear-gradient(160deg,rgba(58,111,184,.08),rgba(45,212,191,.045) 55%,rgba(255,255,255,0) 82%),var(--glass)!important}
.donut__svg{filter:drop-shadow(0 10px 20px rgba(18,38,76,.16))}

/* ═══════════════════════════════════════════════════════════
   ░ ПОЛИРОВКА v5 — по сквозному аудиту (make-interfaces-feel-better):
   стеклянная консистентность, точечные переходы (без transition:all),
   мягкие тени вместо грубых рамок, контраст, перенос заголовков. ░
   ═══════════════════════════════════════════════════════════ */
/* — Точечные переходы вместо transition:all (#14) — */
.mode-card{transition-property:background-color,color,box-shadow,border-color,transform!important}
.trans-item{transition:background-color .16s var(--ease),border-color .16s var(--ease),box-shadow .18s var(--ease)!important}
.master-li{transition:background-color .16s var(--ease),border-color .16s var(--ease),box-shadow .16s var(--ease)!important}
.master-li:hover{box-shadow:var(--sh-card)}

/* — Чат: мягче рамка пузыря ассистента + плавный фокус композера — */
.msg--ai .msg__bubble,.msg--assistant .msg__bubble{border:1px solid rgba(255,255,255,.6)!important}
.composer__box{transition:box-shadow .18s cubic-bezier(.2,0,0,1),border-color .18s ease!important}

/* — Активная фильтр-пилюля: мягкая тень вместо жёсткой — */
.journal-pill.active{box-shadow:0 1px 0 rgba(255,255,255,.7) inset,0 12px 24px -12px rgba(46,95,163,.45)!important}

/* — Стеклянная консистентность: убрать грубые рамки/белый фон «Calm» под стеклом — */
.admin__scroll{background:rgba(255,255,255,.5)!important;border:1px solid rgba(255,255,255,.7)!important;box-shadow:var(--sh-card)!important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.filter,select.filter,input.filter{background:rgba(255,255,255,.72)!important;border:1px solid rgba(255,255,255,.85)!important;border-radius:11px!important;box-shadow:var(--sh-card)!important;color:var(--s-ink)!important;transition:border-color .16s var(--ease),box-shadow .16s var(--ease)!important}
.filter:focus,select.filter:focus,input.filter:focus{border-color:var(--s-blue)!important;box-shadow:0 0 0 3px rgba(46,95,163,.14)!important;outline:none}
.admin-tab.active{border-bottom-color:var(--s-blue)!important}

/* — Расшифровка: загрузка/шаги/таблицы мягче — */
.trans-upload{border:1px dashed rgba(58,111,184,.3)!important;background:linear-gradient(155deg,rgba(255,255,255,.86),rgba(255,255,255,.6))!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 12px 28px -16px rgba(20,35,63,.18)!important;border-radius:var(--rs-lg)!important;transition:border-color .18s var(--ease),box-shadow .18s var(--ease)}
.trans-upload:hover{border-color:rgba(45,212,191,.5)!important}
.trans-step__dot{transition:background-color .2s var(--ease),border-color .2s var(--ease),color .2s var(--ease)}
.trans-info td,.trans-tasks td,.trans-tasks th{border-color:rgba(20,35,63,.07)!important}
.trans-info__k{background:rgba(46,95,163,.06)!important}

/* — Редактор сделки / просмотр файла на стекле — */
.trade-input{background:rgba(255,255,255,.72)!important;border:1px solid rgba(255,255,255,.85)!important;border-radius:11px!important;box-shadow:inset 0 1px 2px rgba(18,38,76,.04)!important;transition:border-color .16s var(--ease),box-shadow .16s var(--ease)!important}
.trade-input:focus{border-color:var(--s-blue)!important;box-shadow:0 0 0 3px rgba(46,95,163,.14)!important}
.fv-body{background:rgba(255,255,255,.5)!important;border:1px solid rgba(255,255,255,.7)!important;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}

/* — Вход: стеклянная карточка, читаемые поля, согласованные радиус/тень — */
.login-card{border-radius:var(--rs-xl)!important;box-shadow:var(--sh-pop)!important}
.login-card .field input,.login-card .input{background:rgba(255,255,255,.8)!important;border:1px solid rgba(255,255,255,.9)!important;box-shadow:inset 0 1px 2px rgba(18,38,76,.05)}
.login-card .field input:focus,.login-card .input:focus{border-color:var(--s-blue)!important;box-shadow:0 0 0 3px rgba(46,95,163,.16)!important}

/* — Календарь: переводимый бейдж «сегодня» — */
html[lang="en"] .cal-cell--today::after{content:"TODAY"}

/* — Типографика: красивый перенос заголовков и абзацев (make-interfaces #10) — */
.header__title,.modal__title,.chat-empty__title,.nb-title,.cal-title,.admin__title,.stub__t{text-wrap:balance}
.chat-empty__hint,.modal__body,.stub__d,.tagline{text-wrap:pretty}

/* ═══════════════════════════════════════════════════════════
   ░ ПОЛИРОВКА v6 — по ревью владельца на проде ░
   ═══════════════════════════════════════════════════════════ */
/* 1) Кнопки под ответом ассистента — мягкая стеклянная пилюля вместо серой рамки */
.msg-act{appearance:none;background:rgba(255,255,255,.65);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.8)!important;color:var(--s-ink-2)!important;font-size:12px;font-weight:500;border-radius:11px!important;padding:7px 13px;cursor:pointer;transition:background-color .16s var(--ease),box-shadow .18s var(--ease),transform .14s var(--ease),color .16s var(--ease)!important;box-shadow:inset 0 1px 2px rgba(255,255,255,.9),0 6px 14px -8px rgba(18,38,76,.2)!important}
.msg-act:hover{background:rgba(255,255,255,.88)!important;color:var(--s-blue)!important;box-shadow:inset 0 1px 2px rgba(255,255,255,.9),0 10px 22px -10px rgba(46,95,163,.5)!important;transform:translateY(-1px)}
.msg-act:active{scale:.96;box-shadow:inset 0 1px 2px rgba(255,255,255,.9),0 4px 8px -6px rgba(18,38,76,.2)!important}

/* 2) «Лист» редактора заметки — стекло с сохранением читаемости (aurora мягко просвечивает) */
.nb-doc-main{background:linear-gradient(160deg,rgba(255,255,255,.8),rgba(255,255,255,.66))!important;backdrop-filter:blur(18px) saturate(1.3)!important;-webkit-backdrop-filter:blur(18px) saturate(1.3)!important;border:1px solid rgba(255,255,255,.82)!important;box-shadow:0 1px 1px rgba(255,255,255,.7) inset,0 16px 38px -16px rgba(45,212,191,.16),0 8px 18px -12px rgba(124,111,240,.13)!important}

/* 3) Модалки/палитра — чистое светлое матовое стекло (без серой мути) + мягче подложка */
.modal,.palette{background:linear-gradient(155deg,rgba(255,255,255,.95),rgba(255,255,255,.88))!important;backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border:1px solid rgba(255,255,255,.92)!important;box-shadow:0 0 0 1px rgba(255,255,255,.6) inset,0 24px 60px -22px rgba(18,38,76,.45)!important}
.modal .input{background:rgba(255,255,255,.95)!important;border:1px solid rgba(224,232,245,.9)!important}
.overlay{background:rgba(12,26,49,.34)!important;backdrop-filter:blur(6px)!important;-webkit-backdrop-filter:blur(6px)!important}

/* ═══════════════════════════════════════════════════════════
   ░ ПОЛИРОВКА v7 — все стёкла ближе к белому (чистая прозрачность, без серой мути) ░
   ═══════════════════════════════════════════════════════════ */
.admin__scroll,.fv-body{background:rgba(255,255,255,.8)!important}
.filter,select.filter,input.filter{background:rgba(255,255,255,.86)!important}
.chat-history,.nb-list{background:linear-gradient(180deg,rgba(255,255,255,.66),rgba(255,255,255,.5))!important}
.trans-upload{background:linear-gradient(155deg,rgba(255,255,255,.92),rgba(255,255,255,.78))!important}
.admin__textarea,.set-form input,.set-form textarea{background:rgba(255,255,255,.82)!important;border:1px solid rgba(255,255,255,.85)!important}

/* — Цветовое кодирование действий под ответом ассистента — */
.msg-act--journal{color:#fff!important;background:linear-gradient(135deg,#2DD4BF,#12B3A6)!important;border:none!important;font-weight:600!important;box-shadow:0 6px 16px -8px rgba(18,179,166,.7)!important}
.msg-act--journal:hover{color:#fff!important;background:linear-gradient(135deg,#34DCC6,#0FA89A)!important;box-shadow:0 10px 22px -9px rgba(18,179,166,.8)!important;transform:translateY(-1px)}
.msg-act--note{color:#5448C8!important;background:linear-gradient(135deg,rgba(124,111,240,.16),rgba(91,138,208,.1))!important;border-color:rgba(124,111,240,.32)!important;font-weight:600!important}
.msg-act--note:hover{color:#4338B8!important;background:linear-gradient(135deg,rgba(124,111,240,.26),rgba(91,138,208,.16))!important;box-shadow:inset 0 1px 2px rgba(255,255,255,.9),0 10px 22px -10px rgba(124,111,240,.5)!important}
.nb-date__hint{font-size:11px;color:#8794A9;margin-left:4px;align-self:center}

/* ═══ ПОЛИРОВКА v8 — по ревью: сплошные кнопки вместо стеклянного подтона ═══ */
/* «→ В блокнот» — сплошная фиолетовая кнопка, белый текст (как зелёная «→ В журнал») */
.msg-act--note{color:#fff!important;background:linear-gradient(135deg,#8B7DF5,#6354DD)!important;border:none!important;font-weight:600!important;box-shadow:0 6px 16px -8px rgba(99,84,221,.7)!important}
.msg-act--note:hover{color:#fff!important;background:linear-gradient(135deg,#9789F8,#5A4BD2)!important;box-shadow:0 10px 22px -9px rgba(99,84,221,.85)!important;transform:translateY(-1px)}
/* Фильтр-пилюли журнала: активная — тот же синий, что у primary-кнопок (--grad-btn),
   не тёмный navy (фидбэк 2026-07-01: «сделай все тёмно-синие кнопки синими»);
   неактивные — плотнее, не «washed» (переопределено в v15 на --c-btn2 solid) */
.journal-pill.active{background:var(--grad-btn,linear-gradient(135deg,#4C7BC4,#2E5FA3 70%,#244C86))!important;color:#fff!important;border-color:transparent!important}
/* #24: подвкладки «Сделки / Анализ журнала» внутри «Торговый журнал» */
.master-subtabs{display:flex;gap:8px;margin-bottom:14px}
/* Мастер-журнал: бар с метой + кнопками (колонки/экспорт) */
.master-jbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.master-jbar__sp{flex:1}

/* ═══ ПОЛИРОВКА v9 — встреча №5 (J): кнопки по ТИПУ = по цвету ═══ */
/* Кнопки-ДЕЙСТВИЯ (ряд под ответом: → журнал, → блокнот, копировать, уточнить;
   «Разобрать» в аналитике) — ЕДИНЫЙ акцент teal. Кнопки-ФУНКЦИИ/фильтры — navy
   (журнальные пилюли и пр. уже navy). Так действия и функции отличаются цветом. */
.msg-act--journal, .msg-act--note{
  color:#fff!important;
  background:linear-gradient(135deg,#2DD4BF,#12B3A6)!important;
  border:none!important; font-weight:600!important;
  box-shadow:0 6px 16px -8px rgba(18,179,166,.7)!important;
}
.msg-act--journal:hover, .msg-act--note:hover{
  color:#fff!important;
  background:linear-gradient(135deg,#34DCC6,#0FA89A)!important;
  box-shadow:0 10px 22px -9px rgba(18,179,166,.85)!important;
  transform:translateY(-1px);
}
/* Вторичные действия того же ряда (Уточнить, Копировать) — тот же teal, лёгкой заливкой */
.msg-act:not(.msg-act--journal):not(.msg-act--note){
  color:#0E8E83!important;
  background:rgba(18,179,166,.10)!important;
  border:1px solid rgba(18,179,166,.30)!important;
}
.msg-act:not(.msg-act--journal):not(.msg-act--note):hover{
  color:#0A6E66!important;
  background:rgba(18,179,166,.18)!important;
  border-color:rgba(18,179,166,.45)!important;
  transform:translateY(-1px);
}
/* Кнопка «Разобрать →» в таблице ошибок (H) — действие, тот же teal */
.jerr__actcell{text-align:right;white-space:nowrap}
.jerr__act{
  appearance:none;border:1px solid rgba(18,179,166,.30);
  background:rgba(18,179,166,.10);color:#0E8E83;
  font-size:11.5px;font-weight:600;border-radius:8px;padding:4px 10px;
  cursor:pointer;white-space:nowrap;
  transition:background-color .14s var(--ease),color .14s var(--ease),border-color .14s var(--ease),transform .14s var(--ease);
}
.jerr__act:hover{background:rgba(18,179,166,.2);color:#0A6E66;border-color:rgba(18,179,166,.5);transform:translateY(-1px)}
/* J4: мягкие hover-«всплывания» карточек аналитики */
.jeq,.jerr{transition:transform .18s var(--ease),box-shadow .18s var(--ease),background .18s var(--ease)}
.jeq:hover,.jerr:hover{transform:translateY(-2px);box-shadow:var(--sh-pop)!important}

/* ═══════════════════════════════════════════════════════════════════════
   ░░░  v10 — ПЕРЕНОС ПРОТОТИПА (J): Light Glassmorphism + DARK тема  ░░░
   Парящий стеклянный шелл на анимированной aurora, светлая стеклянная
   рейка (темой), движущийся знак, чат «как у Claude», система кнопок.
   Подход: семантические токены --c-* для обеих тем + РЕМАП старых
   переменных на них → вся платформа флипается через body[data-theme].
   ═══════════════════════════════════════════════════════════════════════ */

/* ── 1. Семантические токены: СВЕТЛАЯ тема ── */
:root,[data-theme="light"]{
  --c-canvas-solid:#E7EEF7;
  --c-ink-strong:#15233F; --c-ink:#33415C; --c-ink-muted:#5E6E89; --c-ink-faint:#66768F;
  --c-surface:#FFFFFF; --c-surface-2:#FAFCFE; --c-surface-h:#FFFFFF;
  --c-glass:linear-gradient(160deg,rgba(255,255,255,.9),rgba(255,255,255,.78));
  --c-glass-2:linear-gradient(160deg,rgba(255,255,255,.82),rgba(255,255,255,.66));
  --c-glass-solid:rgba(255,255,255,.72);
  /* Фидбэк 2026-07-01 (проверено вживую в DevTools на master-аккаунте): рамка
     БЕЛАЯ (.85 alpha) физически не видна, если реальный фон под кнопкой почти
     белый — а стеклянный "шелл" на aurora именно такой (aurora после блюра+
     полупрозрачности даёт очень бледный, почти белый оттенок). Белая рамка
     "ловит блик" только на насыщенном/тёмном фоне; на бледном она невидима.
     Тёмно-тонированная рамка (как --c-hair-2) видна ВСЕГДА, вне зависимости
     от того, что именно под кнопкой. */
  --c-glass-brd:rgba(20,40,80,.18);
  /* Фидбэк 2026-07-01 (3-й раунд): полупрозрачное "стекло" — правильный язык для
     больших панелей/карточек, но для МЕЛКИХ кнопок оно всегда будет казаться
     блёклым (оттенок фона под кнопкой непредсказуем). Кнопки-«призраки»
     переведены на ЭТИ токены — плотную, однозначно видимую, непрозрачную
     заливку (не переменную по фону), отдельно от --c-glass-*. */
  --c-btn2:#EDF2F9; --c-btn2-h:#E1E9F5; --c-btn2-brd:#C7D3E5; --c-btn2-brd-h:#A8B9D6;
  --c-hair:rgba(20,40,80,.09); --c-hair-2:rgba(20,40,80,.14);
  --c-accent:#2E5FA3; --c-accent-strong:#244C86;
  --c-accent-soft:rgba(46,95,163,.10); --c-accent-soft-2:rgba(46,95,163,.17); --c-accent-line:rgba(46,95,163,.26);
  --c-field:rgba(255,255,255,.72); --c-field-brd:rgba(20,40,80,.12);
  --c-pos:#15795A; --c-pos-bg:rgba(45,212,191,.16);
  --c-neg:#B23A3A; --c-neg-bg:rgba(219,91,87,.14);
  --c-warn:#B5852A; --c-warn-bg:rgba(217,146,10,.14);
  --c-rail:linear-gradient(180deg,rgba(255,255,255,.72),rgba(255,255,255,.5));
  --c-rail-brd:rgba(255,255,255,.7); --c-rail-ink:#5E6E89; --c-rail-ink-h:#15233F;
  --c-shell:linear-gradient(160deg,rgba(255,255,255,.66),rgba(255,255,255,.44));
  --c-shell-brd:rgba(255,255,255,.65);
  --c-aurora-1:rgba(40,80,150,.30); --c-aurora-2:rgba(30,160,170,.22); --c-aurora-3:rgba(95,80,200,.28); --c-aurora-op:.62;
  --c-canvas:radial-gradient(46% 38% at 10% 4%,rgba(45,212,191,.18),transparent 62%),radial-gradient(42% 40% at 92% 2%,rgba(124,111,240,.16),transparent 60%),radial-gradient(60% 55% at 78% 108%,rgba(46,95,163,.18),transparent 60%),radial-gradient(50% 45% at 18% 112%,rgba(18,179,166,.10),transparent 60%),linear-gradient(180deg,#EEF3FB,#E7EEF7);
  /* Добавлен ТЕСНЫЙ контакт-слой (2px/6px, .18) — прежний единственный внешний
     слой был большим/мягким (16-34px blur) и на бледном фоне почти не давал
     видимого края у мелких элементов (кнопки .btn--sm высотой 30-32px). */
  --sh-card:0 1px 0 rgba(255,255,255,.7) inset,0 2px 6px -2px rgba(18,38,76,.18),0 16px 34px -18px rgba(18,38,76,.34);
  --sh-soft:0 1px 2px rgba(20,35,63,.04),0 10px 26px -10px rgba(20,35,63,.14);
  --sh-lift:0 1px 0 rgba(255,255,255,.7) inset,0 3px 8px -2px rgba(18,38,76,.22),0 22px 44px -18px rgba(18,38,76,.28);
  --sh-pop:0 24px 60px -22px rgba(18,38,76,.45);
  --sh-shell:0 1px 0 rgba(255,255,255,.7) inset,0 50px 90px -34px rgba(18,34,68,.32),0 14px 36px -20px rgba(18,34,68,.16);
}
/* ── Семантические токены: ТЁМНАЯ тема ── */
[data-theme="dark"]{
  --c-canvas-solid:#0A1220;
  --c-ink-strong:#ECF1FA; --c-ink:#C3CFE3; --c-ink-muted:#9FB0CC; --c-ink-faint:#7E8DA8;
  --c-surface:#16213A; --c-surface-2:#1B2942; --c-surface-h:#22324F;
  --c-glass:linear-gradient(160deg,rgba(64,90,142,.32),rgba(20,32,58,.46));
  --c-glass-2:linear-gradient(160deg,rgba(52,76,122,.26),rgba(16,28,52,.44));
  /* Фидбэк 2026-07-01: было .07/.13 — фон и рамка «стеклянных» кнопок/полей почти
     не читались на тёмном канвасе («подсветка убогая»). Подняли контраст —
     единая точка правки поднимает ВСЕ вторичные кнопки/поля/карточки разом
     (--c-glass-solid/--c-glass-brd используются в .btn--ghost, .msg-act,
     .nb-ai-btn, инпутах, шапке и т.д.). */
  --c-glass-solid:rgba(255,255,255,.12);
  --c-glass-brd:rgba(255,255,255,.22);
  /* Фидбэк 2026-07-01 (3-й раунд): та же плотная непрозрачная заливка, что и в
     светлой теме — заметно светлее канваса/поверхности при ЛЮБОМ окружении. */
  --c-btn2:#26365C; --c-btn2-h:#324875; --c-btn2-brd:#4C6396; --c-btn2-brd-h:#6E8CC4;
  --c-hair:rgba(255,255,255,.09); --c-hair-2:rgba(255,255,255,.16);
  --c-accent:#5B8AD0; --c-accent-strong:#9CBDE9;
  --c-accent-soft:rgba(91,138,208,.18); --c-accent-soft-2:rgba(91,138,208,.30); --c-accent-line:rgba(120,160,220,.42);
  --c-field:rgba(255,255,255,.06); --c-field-brd:rgba(255,255,255,.15);
  --c-pos:#2DD4BF; --c-pos-bg:rgba(45,212,191,.18);
  --c-neg:#E0726D; --c-neg-bg:rgba(224,114,109,.20);
  --c-warn:#E0B24E; --c-warn-bg:rgba(224,178,78,.16);
  --c-rail:linear-gradient(180deg,rgba(30,48,84,.55),rgba(13,23,42,.62));
  --c-rail-brd:rgba(255,255,255,.10); --c-rail-ink:#9FB0CC; --c-rail-ink-h:#ECF1FA;
  --c-shell:linear-gradient(160deg,rgba(46,68,114,.40),rgba(15,26,48,.52));
  --c-shell-brd:rgba(255,255,255,.12);
  --c-aurora-1:rgba(40,90,180,.40); --c-aurora-2:rgba(30,170,180,.20); --c-aurora-3:rgba(110,90,220,.38); --c-aurora-op:.85;
  --c-canvas:radial-gradient(46% 38% at 10% 4%,rgba(45,140,150,.16),transparent 62%),radial-gradient(42% 40% at 92% 2%,rgba(110,90,220,.20),transparent 60%),radial-gradient(60% 55% at 78% 108%,rgba(40,90,180,.24),transparent 60%),linear-gradient(165deg,#0A1220,#0B1830 60%,#0A1426);
  /* Инсет-хайлайт .06/.07 → .16/.22: на тёмном канвасе тёмная внешняя тень почти
     не видна (тень-на-тёмном), поэтому «приподнятость» кнопки читается ТОЛЬКО
     через светлый ободок сверху — его и усилили. */
  --sh-card:0 1px 0 rgba(255,255,255,.16) inset,0 16px 34px -18px rgba(0,0,0,.6);
  --sh-soft:0 10px 26px -10px rgba(0,0,0,.5);
  --sh-lift:0 1px 0 rgba(255,255,255,.22) inset,0 26px 52px -18px rgba(0,0,0,.7);
  --sh-pop:0 24px 60px -22px rgba(0,0,0,.72);
  --sh-shell:0 1px 0 rgba(255,255,255,.07) inset,0 50px 100px -34px rgba(0,0,0,.7),0 14px 40px -20px rgba(0,0,0,.5);
}
/* ── 2. РЕМАП старых переменных на семантические ──
   ВАЖНО: алиасы объявляем И на [data-theme] (=body), а не только на :root.
   CSS-переменные наследуют ВЫЧИСЛЕННОЕ значение: `--glass:var(--c-glass)` на :root
   замёрзнет в светлое уже на html и потомки унаследуют литерал. Объявление на body
   (с data-theme) пересчитывает алиас против тем-токенов того же элемента. */
:root,[data-theme="light"],[data-theme="dark"]{
  --mark:linear-gradient(115deg,#13294C 0%,#21457C 34%,#324C9E 64%,#241F52 100%);
  /* радиусы/мотion/стекло — значения прототипа (v11 parity) */
  --r-ctl:13px; --r-card:18px; --r-zone:22px; --r-shell:30px; --r-pill:999px;
  --ease:cubic-bezier(.22,.61,.36,1);
  --blur:blur(28px) saturate(1.4);
  /* синий градиент действий (ведущая кнопка чата + send) */
  --grad-btn:linear-gradient(120deg,#5C93E9 0%,#3568AE 45%,#2E5FA3 70%,#4C84D8 100%);
  /* бренд/текст */
  --navy-900:var(--c-ink-strong); --navy-800:var(--c-ink-strong); --navy-700:var(--c-ink-strong);
  --navy-1:var(--c-ink-strong);
  --blue-700:var(--c-accent-strong); --blue-600:var(--c-accent); --blue-500:var(--c-accent);
  --blue-300:var(--c-accent); --blue-100:var(--c-accent-soft); --blue-50:var(--c-accent-soft);
  --s-ink:var(--c-ink-strong); --s-ink-2:var(--c-ink); --s-muted:var(--c-ink-muted); --s-muted-2:var(--c-ink-faint);
  --ink:var(--c-ink);
  --grey-700:var(--c-ink); --grey-600:var(--c-ink-muted); --grey-500:var(--c-ink-muted); --grey-400:var(--c-ink-faint);
  --grey-300:var(--c-hair-2); --grey-250:var(--c-hair); --grey-200:var(--c-hair); --grey-100:var(--c-surface-2);
  --line-soft:var(--c-hair); --white:var(--c-surface);
  --bg:var(--c-canvas-solid); --surface:var(--c-surface); --surface-2:var(--c-surface-2);
  /* стекло/тени */
  --glass:var(--c-glass); --glass-2:var(--c-glass-2); --glass-brd:1px solid var(--c-glass-brd);
  --shadow-card:var(--sh-card); --shadow-soft:var(--sh-soft); --shadow-lifted:var(--sh-lift); --shadow-pop:var(--sh-pop);
  /* состояния */
  --success:var(--c-pos); --success-bg:var(--c-pos-bg); --danger:var(--c-neg); --danger-bg:var(--c-neg-bg);
  --warning:var(--c-warn); --warning-bg:var(--c-warn-bg); --info:var(--c-accent); --red-500:var(--c-neg);
}
/* ── 3. Фон/канва: aurora по теме ── */
html{background:var(--c-canvas-solid)}
body{background:var(--c-canvas)!important;background-attachment:fixed!important;color:var(--c-ink)}
.login-screen{background:var(--c-canvas)!important}
/* эмблема J — фирменный градиент (а не плоский navy), чтобы --navy-900 мог стать ink в dark */
.mark{background:var(--mark)!important;color:#fff}
.toast{background:#16213A!important;color:#ECF1FA}

/* ── 4. Анимированная aurora (движущиеся пятна за шеллом) ── */
@keyframes au-f1{to{transform:translate(5vw,4vw) scale(1.08)}}
@keyframes au-f2{to{transform:translate(-5vw,5vw) scale(1.05)}}
@keyframes au-f3{to{transform:translate(4vw,-5vw) scale(1.1)}}
.aurora{position:fixed;inset:-12%;z-index:0;pointer-events:none;filter:blur(64px);opacity:var(--c-aurora-op);transition:opacity .5s var(--ease)}
.aurora b{position:absolute;border-radius:50%;display:block;will-change:transform}
.aurora .a{width:54vw;height:54vw;left:-12vw;top:-14vw;background:radial-gradient(circle,var(--c-aurora-1),transparent 64%);animation:au-f1 22s var(--ease) infinite alternate}
.aurora .b{width:48vw;height:48vw;right:-8vw;top:-8vw;background:radial-gradient(circle,var(--c-aurora-2),transparent 64%);animation:au-f2 27s var(--ease) infinite alternate}
.aurora .c{width:56vw;height:56vw;right:0;bottom:-24vw;background:radial-gradient(circle,var(--c-aurora-3),transparent 64%);animation:au-f3 32s var(--ease) infinite alternate}
@media (prefers-reduced-motion:reduce){.aurora .a,.aurora .b,.aurora .c{animation:none}}

/* ── 5. Парящий стеклянный ШЕЛЛ (вся платформа = одна плита на aurora) ──
   .master — та же плита (раньше была плоским, немаржинальным контейнером без
   неё: единственная причина, почему у мастера ТЖ/глубина ощущались «не так,
   как у сотрудников» — сам шелл на .master никогда не применялся). */
.app,.master{
  position:relative;z-index:1;display:flex;margin:14px;width:auto;height:calc(100vh - 28px);
  border-radius:30px;overflow:hidden;background:var(--c-shell)!important;
  -webkit-backdrop-filter:blur(28px) saturate(1.4);backdrop-filter:blur(28px) saturate(1.4);
  border:1px solid var(--c-shell-brd);box-shadow:var(--sh-shell);
}
.app .rail,.app .main,.master .rail,.master .main{height:100%!important}
.rail{position:relative!important;top:auto!important}

/* ── 6. СВЕТЛАЯ СТЕКЛЯННАЯ РЕЙКА (темой) ── */
.rail{background:var(--c-rail)!important;border-right:1px solid var(--c-hair)!important;box-shadow:none!important}
.rail__logo{background:var(--mark)!important;box-shadow:0 8px 20px -8px rgba(40,70,150,.55),0 0 0 1px rgba(255,255,255,.22) inset!important}
.mode{background:var(--c-glass-solid)!important;border:1px solid var(--c-hair)!important}
.mode__btn{color:var(--c-rail-ink)!important}
.mode__btn:hover{color:var(--c-accent)!important;background:var(--c-surface-h)!important}
.mode__btn.active{background:var(--c-surface)!important;color:var(--c-accent)!important;box-shadow:var(--sh-card)!important}
.rail__div{background:var(--c-hair)!important}
.nav-i{color:var(--c-rail-ink)!important}
.nav-i:hover{color:var(--c-rail-ink-h)!important;background:var(--c-surface-h)!important;box-shadow:none!important}
.nav-i.active{color:var(--c-accent)!important;background:var(--c-accent-soft)!important;box-shadow:none!important}
.nav-i.active::before{background:linear-gradient(180deg,var(--c-accent),var(--c-pos))!important}
.nav-i.active svg{filter:none!important}
.rail__shield{border:1px solid var(--c-hair)!important;background:transparent!important;color:var(--c-rail-ink)!important}
.rail__shield:hover{color:var(--c-accent)!important;background:var(--c-surface-h)!important;box-shadow:var(--sh-card)!important}
.rail__add{border:1px dashed var(--c-hair-2)!important;color:var(--c-ink-faint)!important}
.rail__add:hover{color:var(--c-accent)!important;border-color:var(--c-accent-line)!important;background:var(--c-surface-h)!important}
/* аватар — нейтральное стекло (teal/зелёный из рейки убран) */
.rail__ava{background:var(--c-surface)!important;color:var(--c-ink-strong)!important;border:1px solid var(--c-glass-brd)!important;box-shadow:var(--sh-card)!important}

/* ── 7. ШАПКА: прозрачная (часть шелла), отделена волоском ── */
.header{background:transparent!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;border-bottom:1px solid var(--c-hair)!important}
.header__crumb{color:var(--c-ink-faint)!important}
.header__title{color:var(--c-ink-strong)!important}
.header__sub{color:var(--c-ink-muted)!important}
.header__search{background:var(--c-glass-solid)!important;border:1px solid var(--c-glass-brd)!important;color:var(--c-ink-muted)!important}
.lang{background:var(--c-glass-solid)!important;border:1px solid var(--c-glass-brd)!important}
.lang button{color:var(--c-ink-muted)}
.lang button.active{background:var(--c-accent)!important;color:#fff!important}
.icon-btn{color:var(--c-ink-muted)}
.icon-btn:hover{background:var(--c-surface-h)!important;color:var(--c-accent)!important}
#theme-toggle svg{transition:transform .4s var(--ease)}
#theme-toggle:active svg{transform:rotate(40deg)}

/* ── 8. ЧАТ «как у Claude»: ответ ИИ = чистая типографика, юзер = тинт-пузырь ── */
.chat__scroll{padding:34px 0 16px}
.chat__col{padding:0 30px}
/* ответ ассистента — без карточки, чистый текст */
.msg--assistant .msg__bubble,.msg--ai .msg__bubble,
.msg--assistant .msg__bubble.md,.msg--ai .msg__bubble.md{
  background:none!important;border:none!important;box-shadow:none!important;
  padding:2px 0 0!important;color:var(--c-ink)!important;font-size:15px;line-height:1.72;
}
.msg--assistant .msg__bubble b,.msg--ai .msg__bubble b{color:var(--c-ink-strong)}
.msg__avatar{flex:0 0 auto}
.msg--assistant .msg__avatar{width:30px;height:30px;border-radius:10px;overflow:hidden;box-shadow:0 8px 18px -10px rgba(60,90,200,.5),0 0 0 1px rgba(255,255,255,.2) inset}
.msg--assistant .msg__avatar .emblem__svg{width:30px;height:30px;display:block}
/* запрос пользователя — деликатный тинт-пузырь (не сплошной синий) */
.msg--user .msg__bubble{
  background:var(--c-surface)!important;border:1px solid var(--c-hair)!important;color:var(--c-ink-strong)!important;
  border-radius:18px!important;border-top-right-radius:6px!important;padding:13px 17px!important;
  box-shadow:var(--sh-card)!important;
}

/* ── 9. КОМПОЗЕР ── */
.composer__box{background:var(--c-glass)!important;border:1px solid var(--c-glass-brd)!important;border-radius:24px!important;box-shadow:var(--sh-card)!important}
.composer__box:focus-within{border-color:var(--c-accent-line)!important;box-shadow:var(--sh-card),0 0 0 3px var(--c-accent-soft)!important}
.composer__input{color:var(--c-ink-strong)}
.composer__hint,.composer__note{color:var(--c-ink-faint)}

/* ── 10. СИСТЕМА КНОПОК действий (цветокод по концепции) ── */
/* ведущая «Новый чат/Новая сделка/primary» — royal синий */
.btn--primary{background:linear-gradient(135deg,#4C7BC4,var(--c-accent) 70%,#244C86)!important;border:none!important;color:#fff!important;box-shadow:0 10px 22px -12px rgba(46,95,163,.8)!important}
.btn--primary:hover{filter:saturate(1.08) brightness(1.03)}
.btn--ghost{background:var(--c-glass-solid)!important;border:1px solid var(--c-glass-brd)!important;color:var(--c-ink)!important;box-shadow:var(--sh-card)!important}
.btn--ghost:hover{background:var(--c-surface-h)!important;color:var(--c-ink-strong)!important}
.btn--send{background:linear-gradient(135deg,#4C7BC4,var(--c-accent) 70%,#244C86)!important;border-radius:13px!important;color:#fff!important}
/* действия под ответом: журнал=teal, блокнот=лаванда, несогласие=синий, утилиты=нейтрал */
.msg-act{background:var(--c-glass-solid)!important;border:1px solid var(--c-glass-brd)!important;color:var(--c-ink-muted)!important;border-radius:11px!important;box-shadow:var(--sh-card)!important}
.msg-act:hover{background:var(--c-surface-h)!important;color:var(--c-ink-strong)!important;transform:translateY(-1px)}
.msg-act--journal{color:#fff!important;background:linear-gradient(135deg,#2DD4BF,#12B3A6)!important;border:none!important;font-weight:600!important;box-shadow:0 6px 16px -8px rgba(18,179,166,.6)!important}
.msg-act--journal:hover{color:#fff!important;background:linear-gradient(135deg,#34DCC6,#0FA89A)!important}
.msg-act--note{color:#fff!important;background:linear-gradient(135deg,#8B7DF5,#6354DD)!important;border:none!important;font-weight:600!important;box-shadow:0 6px 16px -8px rgba(99,84,221,.55)!important}
.msg-act--note:hover{color:#fff!important;background:linear-gradient(135deg,#9789F8,#5A4BD2)!important}
.msg-act--dis{color:#fff!important;background:linear-gradient(135deg,#4C7BC4,#2E5FA3)!important;border:none!important;font-weight:600!important;box-shadow:0 6px 16px -8px rgba(46,95,163,.55)!important}
.msg-act--dis:hover{color:#fff!important;background:linear-gradient(135deg,#588AD6,#27508C)!important}

/* ── 11. ТЁМНАЯ ТЕМА: оверрайды панелей с зашитым белым (свет не трогаем) ──
   Многое уже флипается через алиасы (--glass/--surface/--navy-1/--grey-*),
   но в слоях v1–v9 есть hardcoded rgba(255,255,255,..)/#fff — здесь их гасим.
   Плоские селекторы (без CSS-nesting) ради совместимости. */
/* списки/боковые панели */
[data-theme="dark"] .chat-history,[data-theme="dark"] .nb-list{background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02))!important;border-right:1px solid var(--c-hair)!important}
[data-theme="dark"] .chat-row,[data-theme="dark"] .history-item{color:var(--c-ink)}
[data-theme="dark"] .chat-row:hover,[data-theme="dark"] .history-item:hover{background:var(--c-surface-h)!important}
[data-theme="dark"] .chat-row.active,[data-theme="dark"] .history-item.active{background:var(--c-accent-soft)!important;color:var(--c-accent-strong)!important}
/* блокнот */
[data-theme="dark"] .nb-card{background:rgba(255,255,255,.04)!important}
[data-theme="dark"] .nb-card:hover{background:rgba(255,255,255,.08)!important}
[data-theme="dark"] .nb-card.active{background:var(--c-surface-h)!important;box-shadow:0 0 0 1px var(--c-accent-line),var(--sh-card)!important}
[data-theme="dark"] .nb-doc-main{background:linear-gradient(160deg,rgba(60,84,132,.30),rgba(18,28,52,.5))!important;border:1px solid var(--c-glass-brd)!important}
[data-theme="dark"] #note-toolbar{background:rgba(20,32,58,.7)!important;border-bottom:1px solid var(--c-hair)!important}
[data-theme="dark"] .nb-cat,[data-theme="dark"] .nb-pin,[data-theme="dark"] .nb-export,[data-theme="dark"] .nb-date__in,[data-theme="dark"] .trade-input{background:var(--c-glass-solid)!important;border:1px solid var(--c-glass-brd)!important;color:var(--c-ink)!important}
[data-theme="dark"] .nb-date{background:rgba(255,255,255,.03)!important}
[data-theme="dark"] #nb-quill .ql-editor{color:var(--c-ink)!important}
[data-theme="dark"] #nb-quill .ql-editor.ql-blank::before{color:var(--c-ink-faint)!important}
/* календарь */
[data-theme="dark"] .cal-cell{background:var(--c-glass)!important;border:1px solid var(--c-hair)!important}
[data-theme="dark"] .cal-side,[data-theme="dark"] .cal-bar{background:var(--c-glass)!important;border:1px solid var(--c-glass-brd)!important}
[data-theme="dark"] .cal-up__it{background:rgba(255,255,255,.04)!important;border:1px solid var(--c-hair)!important}
[data-theme="dark"] #cal-prev,[data-theme="dark"] #cal-next{background:var(--c-glass-solid)!important;border:1px solid var(--c-glass-brd)!important;color:var(--c-ink)!important}
[data-theme="dark"] .cal-cell__d{color:var(--c-ink)}
[data-theme="dark"] .cal-ev{background:var(--c-accent-soft)!important;color:var(--c-ink-strong)!important}
/* журнал-инпуты/таблица */
[data-theme="dark"] .journal-table th{background:rgba(255,255,255,.04)!important;color:var(--c-ink-faint)!important}
[data-theme="dark"] .journal-dictate,[data-theme="dark"] .jhead__in{background:var(--c-glass-solid)!important;border:1px solid var(--c-glass-brd)!important;color:var(--c-ink)!important}
/* Плейсхолдер по умолчанию слишком тёмный на тёмном фоне — везде, где есть свои
   инпуты на "стекле" (сливается в почти нечитаемый серый, скрин владельца). */
[data-theme="dark"] .jhead__in::placeholder,[data-theme="dark"] .journal-dictate textarea::placeholder,
[data-theme="dark"] .input::placeholder,[data-theme="dark"] .filter::placeholder,
[data-theme="dark"] .trade-input::placeholder,[data-theme="dark"] .master-advisor__composer textarea::placeholder,
[data-theme="dark"] .msg-edit__ta::placeholder{color:var(--c-ink-faint)!important;opacity:1!important}
/* .journal-pill:not(.active) в тёмной теме — см. v15 (плотная заливка --c-btn2,
   выше по source order обычным .journal-pill:not(.active), без [data-theme]
   в селекторе — здесь раньше было [data-theme="dark"] .journal-pill:not(.active)
   с более высокой specificity, что перебивало v15; убрано). */
/* модалки/палитра/админка/инпуты */
[data-theme="dark"] .modal,[data-theme="dark"] .palette{background:linear-gradient(155deg,rgba(46,68,114,.5),rgba(15,26,48,.6))!important;border:1px solid var(--c-glass-brd)!important}
[data-theme="dark"] .modal .input,[data-theme="dark"] .input,[data-theme="dark"] .field input,[data-theme="dark"] .admin__textarea,[data-theme="dark"] .set-form input,[data-theme="dark"] .set-form textarea,[data-theme="dark"] .filter,[data-theme="dark"] select.filter,[data-theme="dark"] input.filter,[data-theme="dark"] .journal-filter__sel{background:var(--c-glass-solid)!important;border:1px solid var(--c-glass-brd)!important;color:var(--c-ink-strong)!important}
/* Фикс аудита (UX-проход): «Здоровое несогласие»/«Слепые зоны» и справочные
   документы оставались белыми (background:#fff жёстко) — .doc-input/.dis-input
   textarea НЕ несут класс .input (только select/text-варианты его получают),
   поэтому общее правило выше их не покрывало: светлый текст на белом фоне
   был нечитаем. Аналогично .refdoc-chip/.docs-select/.dis-period. */
[data-theme="dark"] .doc-input,[data-theme="dark"] .dis-input,[data-theme="dark"] .docs-select,[data-theme="dark"] .dis-period{background:var(--c-glass-solid)!important;border:1px solid var(--c-glass-brd)!important;color:var(--c-ink-strong)!important}
[data-theme="dark"] .refdoc-chip{background:var(--c-glass-solid)!important;border:1px solid var(--c-glass-brd)!important;color:var(--c-ink)!important}
[data-theme="dark"] .refdoc-chip:hover{background:var(--c-surface-h)!important;border-color:var(--c-accent)!important}
[data-theme="dark"] .refdoc-chip__cat{background:var(--c-surface-2)!important;color:var(--c-ink-faint)!important}
/* Тот же класс бага — фильтры командной палитры (Ctrl+K) остались белыми в тёмной теме. */
[data-theme="dark"] .palette-chip{background:var(--c-glass-solid)!important;border:1px solid var(--c-glass-brd)!important;color:var(--c-ink)!important}
[data-theme="dark"] .palette-chip:hover{background:var(--c-surface-h)!important}
[data-theme="dark"] .palette-chip.active{background:var(--c-accent)!important;border-color:transparent!important;color:#fff!important}
[data-theme="dark"] .saved-doc--submitted{background:rgba(45,212,191,.08)!important;border-color:rgba(45,212,191,.28)!important}
/* Нативный список <option> не наследует токены select — без явного стиля остаётся
   светлым (белый фон/тёмный текст скрывается на светлом фоне под тёмной темой). */
[data-theme="dark"] .filter option,[data-theme="dark"] .input option,[data-theme="dark"] select.filter option,[data-theme="dark"] .journal-filter__sel option,[data-theme="dark"] .journal-inline option,[data-theme="dark"] .trade-input option,[data-theme="dark"] .doc-input option{background:#16243d;color:#e8eef7}
[data-theme="dark"] .journal-inline{color:var(--c-ink)!important}
[data-theme="dark"] .journal-inline:hover,[data-theme="dark"] .journal-inline:focus-visible{background:var(--c-glass-solid)!important;border-color:var(--c-glass-brd)!important;color:var(--c-ink-strong)!important}
/* .journal-table (журнал трейдера) остался на старой светлой палитре (--blue-50) —
   в тёмной теме подсветка строки была почти белой поверх тёмного текста. */
[data-theme="dark"] .journal-table tbody tr:hover{background:rgba(255,255,255,.05)!important}
[data-theme="dark"] .msg-edit__ta{background:var(--c-glass-solid)!important;border:1px solid var(--c-glass-brd)!important;color:var(--c-ink-strong)!important;box-shadow:none!important}
[data-theme="dark"] .admin__scroll,[data-theme="dark"] .fv-body{background:rgba(255,255,255,.04)!important;border:1px solid var(--c-hair)!important}
[data-theme="dark"] .trans-upload{background:linear-gradient(155deg,rgba(255,255,255,.06),rgba(255,255,255,.02))!important;border:1px dashed var(--c-accent-line)!important}
/* Фикс аудита UX-консистентности (2026-07-02, раунд 3): ещё 7 мест с жёстким
   background:#fff/литералом цвета, пропущенных в предыдущих проходах —
   тот же класс бага (.doc-input/.dis-input/.refdoc-chip выше). */
[data-theme="dark"] .file-chip{background:var(--grey-100)!important}
[data-theme="dark"] .drop-overlay__box{background:var(--c-surface)!important}
[data-theme="dark"] .nb-cat-menu{background:var(--c-glass-solid)!important;border:1px solid var(--c-glass-brd)!important}
[data-theme="dark"] .nb-back{background:var(--c-glass-solid)!important;border-color:var(--c-glass-brd)!important;color:var(--c-ink)!important}
[data-theme="dark"] .journal-cell-edit{background:var(--c-glass-solid)!important;border-color:var(--c-glass-brd)!important;color:var(--c-ink-strong)!important}
[data-theme="dark"] .journal-filter__q{background:var(--c-glass-solid)!important;border:1px solid var(--c-glass-brd)!important;color:var(--c-ink-strong)!important}
[data-theme="dark"] .trade-val__chip{background:var(--c-glass-solid)!important;border-color:var(--c-warn)!important;color:var(--c-warn)!important}
[data-theme="dark"] .dis-hint{background:var(--c-warn-bg)!important;color:var(--c-warn)!important}

/* ── 12. ЛОГОТИП-ЭМБЛЕМА ── фидбэк 2026-07-01: растровая эмблема (глоу-«J» на
   тёмном тайле) была разработана под ТЁМНЫЕ поверхности — на светлой стеклянной
   рейке жёсткий непрозрачный квадрат смотрелся чужеродной наклейкой (PNG не умеет
   мягко сливаться со светлым стеклом, как остальные элементы). Решение: держим
   PNG ТОЛЬКО в тёмной теме (где он и задуман), а в светлой — откатываемся на уже
   готовый и проверенный текстовый монограм-«J» (тот же приём, что был у рейки ДО
   PNG: `--mark`-градиент + белая буква), который живёт в разметке (текст "J"
   добавлен в 4 .mark--logo элемента), но был скрыт `font-size:0`. */
[data-theme="dark"] .mark--logo{
  background:url("/img/logo-mark.png?v=m64") center/cover no-repeat!important;
  font-size:0!important; /* прячем текст-фолбэк без color:transparent (иначе .tip наследует прозрачную заливку) */
  animation:none!important;
  outline:1px solid rgba(255,255,255,.14); outline-offset:-1px; /* hairline — PNG иначе сливается с тёмным фоном по краю */
}
.mark--logo .tip{font-size:12px!important}
.rail__logo.mark--logo{box-shadow:0 10px 22px -10px rgba(20,30,70,.45)!important}
[data-theme="dark"] .rail__logo.mark--logo{box-shadow:0 10px 22px -10px rgba(0,0,0,.6)!important}
/* Светлая тема: монограм на фирменном градиенте (--mark) — без PNG, полностью
   векторно/CSS, поэтому идеально сливается со стеклянной рейкой (мягкая тень
   вместо жёсткой картинки). Раньше на рейке крутилась анимация (background-size
   240%+mark-flow) — из-за неё один и тот же градиент выглядел по-разному в
   разные моменты (владелец сравнил два скриншота рейки — «главная иконка
   темнее» — на деле просто разная фаза анимации). Владелец: тёмный статичный
   вариант нравится больше — убираем анимацию, везде одна и та же статика. */
[data-theme="light"] .mark--logo{background:var(--mark)!important}

/* ═══════════════════════════════════════════════════════════════════════
   ░░░ v11 — PARITY С ПРОТОТИПОМ (J) ░░░
   Точное соответствие прототипу + ЦВЕТ-ПОЛИТИКА: зелёный/teal и фиолетовый/
   лаванда — ТОЛЬКО в Торговом журнале. Рейка/шапка/чат/композер/кнопки —
   синий акцент + нейтраль. Все color-значения на токенах (тёмная тема цела).
   ═══════════════════════════════════════════════════════════════════════ */
@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes barx{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes gradmove{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
@keyframes v11screenin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.rise{opacity:0;animation:rise .6s var(--ease) forwards}
.content .screen:not(.hidden){animation:v11screenin .42s var(--ease) both!important}
::-webkit-scrollbar{width:9px!important;height:9px!important}
::-webkit-scrollbar-thumb{background:var(--c-hair-2)!important;border-radius:6px!important;border:2.5px solid transparent!important;background-clip:padding-box!important}
::-webkit-scrollbar-thumb:hover{background:var(--c-ink-faint)!important;background-clip:padding-box!important}
@media (prefers-reduced-motion:reduce){*{animation-duration:.001s!important;animation-iteration-count:1!important}}

/* ── РЕЙКА ── */
.rail{flex:0 0 78px!important;width:78px!important;gap:6px!important}
.rail__logo{width:44px!important;height:44px!important;border-radius:14px!important}
.rail__logo:hover{transform:scale(1.06)!important}.rail__logo:active{transform:scale(.96)!important}
.mode{border-radius:14px!important;background:var(--c-glass-solid)!important;border:1px solid var(--c-hair)!important}
.mode__btn{width:46px!important;height:38px!important;border-radius:10px!important}
.mode__btn.active{background:var(--c-surface)!important;color:var(--c-accent)!important;box-shadow:var(--sh-card)!important}
.rail__div{width:32px!important;margin:12px 0 8px!important;background:var(--c-hair)!important}
.rail__nav{gap:4px!important}
.nav-i{height:48px!important;border-radius:14px!important}
.nav-i:active{transform:scale(.96)!important}
.nav-i:hover{background:var(--c-surface-h)!important;color:var(--c-rail-ink-h)!important;box-shadow:none!important}
.nav-i:hover svg{transform:none!important}
.nav-i.active{background:var(--c-accent-soft)!important;color:var(--c-accent)!important;box-shadow:none!important}
.nav-i.active svg{filter:none!important;transform:none!important}
.nav-i::before{background:var(--c-accent)!important}
.nav-i.active::before{left:-13px!important;width:3px!important;height:22px!important;border-radius:0 3px 3px 0!important;background:var(--c-accent)!important}
.rail__add{width:40px!important;height:40px!important;border-radius:12px!important;border:1px dashed var(--c-hair-2)!important}
.rail__add:hover{background:var(--c-surface-h)!important;color:var(--c-accent)!important;border-color:var(--c-accent-line)!important}
.rail__shield{width:48px!important;height:48px!important;border-radius:14px!important;border:1px solid var(--c-hair)!important}
.rail__shield:hover{box-shadow:var(--sh-card)!important;color:var(--c-accent)!important;background:var(--c-surface-h)!important}
.rail__shield:hover svg{transform:none!important}.rail__shield:active{transform:scale(.96)!important}
.rail__ava{font-size:13px!important;border:1px solid var(--c-glass-brd)!important;background:var(--c-surface)!important;color:var(--c-ink-strong)!important;box-shadow:var(--sh-card)!important;background-image:none!important;position:relative!important}
.rail__role{position:absolute;bottom:-5px;left:50%;transform:translateX(-50%);font-size:7.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--c-accent-strong);background:var(--c-surface-h);padding:1px 6px;border-radius:999px;white-space:nowrap;box-shadow:var(--sh-card);border:1px solid var(--c-glass-brd)}
.tip{left:58px!important;padding:6px 11px!important}

/* ── ШАПКА ── */
.header{align-items:center!important;gap:18px!important;padding:17px 26px!important;min-height:unset!important;height:auto!important}
.header__lead{gap:7px!important}
.header__actions{gap:9px!important;align-items:center!important}
.header__title{font-size:22px!important;font-weight:600!important;letter-spacing:-.02em!important}
.header__sub{font-size:13px!important}
.header__crumb{display:inline-flex!important;align-self:flex-start!important;align-items:center!important;gap:6px!important;font-size:9.5px!important;font-weight:600!important;letter-spacing:.12em!important;text-transform:uppercase!important;color:var(--c-ink-muted)!important;background:var(--c-glass-solid)!important;border:1px solid var(--c-hair)!important;padding:4px 10px!important;border-radius:999px!important}
.header__crumb:empty{display:none!important}
.header__lead:has(.header__crumb:empty){justify-content:center!important}
.icon-btn#theme-toggle{width:39px!important;height:39px!important;padding:0!important;border-radius:12px!important;background:var(--c-glass-solid)!important;border:1px solid var(--c-glass-brd)!important;color:var(--c-ink-muted)!important}
.icon-btn#theme-toggle:hover{background:var(--c-surface-h)!important;box-shadow:var(--sh-card)!important;color:var(--c-accent)!important}
.lang{gap:2px!important;padding:3px!important;border-radius:11px!important;background:var(--c-glass-solid)!important;border:1px solid var(--c-glass-brd)!important}
.lang button{font-size:12px!important;font-weight:600!important;padding:6px 10px!important;border-radius:8px!important;color:var(--c-ink-muted)!important}
.lang button.active{background:var(--c-surface-h)!important;color:var(--c-accent)!important;box-shadow:var(--sh-card)!important}
.header__search{height:39px!important;padding:0 13px!important;gap:9px!important;border-radius:12px!important;font-size:13px!important;min-width:unset!important;background:var(--c-glass-solid)!important;border:1px solid var(--c-glass-brd)!important;color:var(--c-ink-muted)!important}
.header__search:hover{background:var(--c-surface-h)!important;box-shadow:var(--sh-card)!important}
.header__search svg{color:var(--c-ink-muted)!important}
.header__search .kbd{font-size:10px!important;color:var(--c-ink-faint)!important;border:1px solid var(--c-hair-2)!important;background:transparent!important;border-radius:6px!important;padding:2px 6px!important}

/* ── ЧАТ-ПОТОК ── */
.chat__scroll{padding:34px 0 10px!important}
.chat__col{max-width:720px!important;gap:30px!important}
.msg--user .msg__avatar{display:none!important}
.msg--user .msg__bubble{max-width:78%!important;font-size:14.5px!important;line-height:1.6!important}
.msg--assistant .msg__bubble,.msg--ai .msg__bubble{padding:3px 0 0!important;color:var(--c-ink)!important}
.msg--assistant .msg__bubble p,.msg--ai .msg__bubble p{margin:0 0 13px!important}
.msg--assistant .msg__bubble p:last-child,.msg--ai .msg__bubble p:last-child{margin-bottom:0!important}
.msg--assistant .msg__bubble b,.msg--ai .msg__bubble b{font-weight:600!important;color:var(--c-ink-strong)!important}

/* ── КНОПКИ ДЕЙСТВИЙ ЧАТА (синие действия + нейтральные утилиты) ── */
.msg-act{display:inline-flex!important;align-items:center!important;gap:7px!important;height:38px!important;padding:0 13px!important;border-radius:999px!important;font-size:12.5px!important;font-weight:600!important;border:1px solid var(--c-accent-line)!important;color:var(--c-accent-strong)!important;background:var(--c-glass-solid)!important;box-shadow:var(--sh-card)!important;position:relative;overflow:hidden;transition:transform .2s var(--ease),background-color .22s var(--ease),color .2s var(--ease),border-color .2s var(--ease),box-shadow .26s var(--ease)}
.msg-act:hover{background:var(--c-accent-soft)!important;box-shadow:var(--sh-lift)!important;color:var(--c-accent-strong)!important;transform:none!important}
.msg-act:active{transform:scale(.97)!important}
.msg-act--journal{color:#fff!important;border-color:transparent!important;background:var(--grad-btn)!important;background-size:220% 220%!important;animation:gradmove 8s var(--ease) infinite;box-shadow:0 10px 24px -12px rgba(46,95,163,.7),0 1px 0 rgba(255,255,255,.25) inset!important}
.msg-act--journal::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 38%,rgba(255,255,255,.4) 50%,transparent 62%);transform:translateX(-130%);transition:transform .7s var(--ease)}
.msg-act--journal:hover{background:var(--grad-btn)!important;color:#fff!important;box-shadow:0 18px 36px -12px rgba(46,95,163,.85),0 1px 0 rgba(255,255,255,.32) inset!important}
.msg-act--journal:hover::before{transform:translateX(130%)}
/* --dis с :not-цепочкой (0,3,0) — чтобы перебить старое v9 teal-правило .msg-act:not(journal):not(note) */
.msg-act--note,.msg-act--dis:not(.msg-act--journal):not(.msg-act--note){color:var(--c-accent-strong)!important;background:var(--c-glass-solid)!important;border:1px solid var(--c-accent-line)!important;box-shadow:var(--sh-card)!important}
.msg-act--note:hover,.msg-act--dis:not(.msg-act--journal):not(.msg-act--note):hover{background:var(--c-accent-soft)!important;box-shadow:var(--sh-lift)!important;color:var(--c-accent-strong)!important}
.msg-act:not(.msg-act--journal):not(.msg-act--note):not(.msg-act--dis){color:var(--c-ink-muted)!important;background:transparent!important;border:1px solid var(--c-hair)!important;box-shadow:none!important}
.msg-act:not(.msg-act--journal):not(.msg-act--note):not(.msg-act--dis):hover{color:var(--c-ink-strong)!important;background:var(--c-surface)!important;box-shadow:var(--sh-card)!important}

/* ── КОМПОЗЕР ── */
.composer{padding:8px 30px 22px!important}
.composer__col{max-width:720px!important;display:flex!important;flex-direction:column!important;gap:9px!important}
.composer__box{padding:7px 7px 7px 18px!important;border-radius:24px!important}
.composer__box:focus-within{box-shadow:var(--sh-card),0 0 0 3px var(--c-accent-soft-2)!important}
.composer__input{padding:13px 0 6px!important;line-height:1.55!important;min-height:0!important;color:var(--c-ink-strong)!important}
.composer__row{gap:10px!important;margin-top:0!important;padding:4px 4px 2px!important}
.composer__hint{font-family:inherit!important;font-size:11.5px!important;color:var(--c-ink-faint)!important}
.composer__note{font-size:11.5px!important;margin:0!important}
.composer__row #attach{background:transparent!important;border:none!important;box-shadow:none!important;height:34px!important;padding:0 12px!important;border-radius:10px!important;font-size:12.5px!important;font-weight:500!important;color:var(--c-ink-muted)!important}
.composer__row #attach:hover{color:var(--c-accent)!important;background:var(--c-surface)!important}
.btn--primary{background:var(--grad-btn)!important;background-size:220% 220%!important;animation:gradmove 8s var(--ease) infinite}
.btn--send{width:40px!important;height:40px!important;border-radius:12px!important;background:var(--grad-btn)!important;background-size:220% 220%!important;animation:gradmove 8s var(--ease) infinite;box-shadow:0 8px 18px -12px rgba(46,95,163,.6),0 1px 0 rgba(255,255,255,.25) inset!important}
.btn--send:hover{filter:saturate(1.1) brightness(1.04)!important;box-shadow:0 14px 28px -12px rgba(46,95,163,.78),0 1px 0 rgba(255,255,255,.32) inset!important}
.btn--send:active{transform:scale(.92)!important}

/* ── ТОРГОВЫЙ ЖУРНАЛ (teal/violet здесь РАЗРЕШЕНЫ) ── */
.ecat{display:flex;flex-direction:column;gap:14px}
.ecat__row{display:flex;align-items:center;gap:10px;margin-bottom:5px}
.ecat__n{font-size:12.5px;color:var(--c-ink)}
.ecat__c{font-family:var(--mono);font-size:11.5px;font-weight:600;color:var(--c-ink-muted)}
.ecat__go{margin-left:auto;font-size:11px;font-weight:600;color:var(--c-accent);background:none;border:none;padding:0;cursor:pointer;transition:color .18s var(--ease),transform .18s var(--ease)}
.ecat__go:hover{color:var(--c-accent-strong);transform:translateX(2px)}
.ebar{height:7px;border-radius:5px;background:var(--c-hair);overflow:hidden}
.ebar i{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,#3A6FB8,#7C6FF0);transform-origin:left;animation:barx .9s var(--ease) .2s both}
.jeq__line{stroke-dasharray:1500;stroke-dashoffset:1500;animation:draw 1.8s var(--ease) .15s forwards}
.jeq__num{font-size:24px!important;background:none!important;-webkit-text-fill-color:initial!important;color:var(--c-pos)!important}
.jeq__num.neg{background:none!important;color:var(--c-neg)!important;-webkit-text-fill-color:initial!important}
.jstat{padding:15px 15px 14px!important;border-radius:16px!important}
.jstat::before{width:3px!important}
.jstat__v{font-size:22px!important}
.jstat__l{font-size:11px!important}
.jstat__delta{font-size:10.5px!important}
.jstat:hover{transform:translateY(-3px)!important}
.jeq{border-radius:18px!important}
.jeq__h,.jhd__t{font-size:13px!important;font-weight:600!important;text-transform:none!important;letter-spacing:0!important;color:var(--c-ink-strong)!important}
.journal-table{font-size:12px!important}
.journal-table th{font-size:10px!important;font-weight:600!important;color:var(--c-ink-faint)!important;padding:8px 12px!important}
.journal-table td{padding:11px 12px!important}
.dir{font-size:10.5px!important;border-radius:7px!important;padding:3px 8px!important}
.out{font-size:10px!important;border-radius:6px!important;padding:2px 7px!important}
.janalytics__cols{gap:16px!important}
@media(max-width:980px){.janalytics__cols{grid-template-columns:1fr!important}}
.journal-bar{align-items:center!important;gap:10px!important;flex-wrap:wrap!important}
.journal-dictate{border-radius:14px!important;padding:5px 5px 5px 14px!important;align-items:center!important}
.jbtn{height:38px!important;border-radius:11px!important;font-size:12.5px!important;font-weight:600!important}

/* ── ЦВЕТ-ПОЛИТИКА: убрать лаванду/teal ВНЕ ТЖ (блокнот, мастер) → синий ── */
.nb-doc-main::before{background:linear-gradient(90deg,#5B8AD0,#2E5FA3)!important}
.nb-date__btn{background:var(--grad-btn)!important;box-shadow:0 8px 18px -9px rgba(46,95,163,.7)!important}
.master-src{color:var(--c-accent)!important;background:var(--c-accent-soft)!important}

/* ═══════════════════════════════════════════════════════════════════════
   ░░░ v12 — РАУНД ПРАВОК ПО ТЕСТУ ВЛАДЕЛЬЦА (m61) ░░░
   Чат-отступы · кнопки чище · тёмные «белые» · тултипы · шапка(колокол) ·
   назад-стрелка · поддержка ниже в рейке.
   ═══════════════════════════════════════════════════════════════════════ */

/* #7 — Чат: больше воздуха по краям (окошки не лепятся к краям шелла) */
.chat__scroll{padding:36px 14px 12px!important}
.chat__col{max-width:760px!important;padding:0 30px!important;margin:0 auto!important}
.composer{padding:8px 44px 22px!important}
.composer__col{max-width:760px!important}

/* #4 — Кнопки действий чата: чистая 3-уровневая иерархия (залит → синий-тинт → призрак) */
.msg__actions{gap:8px!important;align-items:center!important;flex-wrap:wrap!important}
.msg-act{height:36px!important;padding:0 14px!important;font-size:12.5px!important;line-height:1!important;letter-spacing:0!important}
/* ведущая «В журнал» — залитая синяя, тень мягче */
.msg-act--journal{box-shadow:0 8px 20px -12px rgba(46,95,163,.65),0 1px 0 rgba(255,255,255,.22) inset!important}
/* вторичные действия (блокнот/несогласие) — синий тинт + читаемый бордер */
.msg-act--note,.msg-act--dis:not(.msg-act--journal):not(.msg-act--note){background:var(--c-accent-soft)!important;border:1px solid var(--c-accent-line)!important;color:var(--c-accent-strong)!important;box-shadow:none!important}
.msg-act--note:hover,.msg-act--dis:not(.msg-act--journal):not(.msg-act--note):hover{background:var(--c-accent-soft-2)!important;box-shadow:var(--sh-card)!important}
/* утилиты (Уточнить/Копировать) — призрак, явно третичные */
.msg-act:not(.msg-act--journal):not(.msg-act--note):not(.msg-act--dis){background:transparent!important;border:1px solid var(--c-hair-2)!important;color:var(--c-ink-muted)!important;box-shadow:none!important}
.msg-act:not(.msg-act--journal):not(.msg-act--note):not(.msg-act--dis):hover{background:var(--c-surface-h)!important;border-color:var(--c-hair-2)!important;color:var(--c-ink-strong)!important}

/* #6 — ТЁМНАЯ ТЕМА: гасим яркие «белые» бейджи/пилюли (блокнот и пр.) */
[data-theme="dark"] .nb-card__date{color:var(--c-accent-strong)!important;background:var(--c-accent-soft)!important;border-color:var(--c-accent-line)!important}
.nb-card__date{border-color:var(--c-accent-line)!important}
[data-theme="dark"] .nb-card{background:rgba(255,255,255,.035)!important;border:1px solid var(--c-hair)!important}
[data-theme="dark"] .nb-card.active{background:rgba(255,255,255,.07)!important;border-color:var(--c-accent-line)!important}
[data-theme="dark"] .nb-card__cat{color:var(--c-ink-muted)!important}
[data-theme="dark"] .nb-card__time{color:var(--c-ink-faint)!important}
[data-theme="dark"] .nb-card__title{color:var(--c-ink-strong)!important}
[data-theme="dark"] .nb-card__prev{color:var(--c-ink-muted)!important}
[data-theme="dark"] .badge--info{color:var(--c-accent-strong)!important;background:var(--c-accent-soft)!important}
[data-theme="dark"] .nb-fil{background:var(--c-glass-solid)!important;border:1px solid var(--c-glass-brd)!important;color:var(--c-ink-muted)!important}
[data-theme="dark"] .nb-fil.active{background:var(--c-accent)!important;color:#fff!important;border-color:transparent!important}
[data-theme="dark"] .side-search,[data-theme="dark"] .nb-search{background:var(--c-glass-solid)!important;border:1px solid var(--c-glass-brd)!important}
[data-theme="dark"] .side-search input,[data-theme="dark"] .nb-search input{color:var(--c-ink-strong)!important}

/* #8 — Тултипы: единый тёмный .tip везде; убрать наследование прозрачной заливки */
.tip{-webkit-text-fill-color:initial!important}
.rail__logo:hover .tip,.rail__add:hover .tip,#logout:hover .tip,#open-feedback:hover .tip{opacity:1;transform:translateY(-50%) translateX(0)}

/* #5 — Колокольчик уведомлений в ШАПКЕ (как чип рядом с поиском) */
.header__bell{position:static!important;width:39px!important;height:39px!important;padding:0!important;border-radius:12px!important;background:var(--c-glass-solid)!important;border:1px solid var(--c-glass-brd)!important;color:var(--c-ink-muted)!important;display:inline-flex!important;align-items:center;justify-content:center;flex:0 0 auto}
.header__bell:hover{background:var(--c-surface-h)!important;box-shadow:var(--sh-card)!important;color:var(--c-accent)!important}
.header__bell:active{transform:scale(.96)!important}
.header__bell .rem-bell__count{position:absolute;top:5px;right:6px;min-width:15px;height:15px;padding:0 3px;border-radius:999px;background:var(--c-neg);color:#fff;font:600 9px/15px var(--mono);text-align:center;box-shadow:0 0 0 2px var(--c-surface)}
.header__bell .rem-bell__count.hidden{display:none}
/* старый плавающий колокол — спрятать (переехал в шапку) */
.rem-bell:not(.header__bell){display:none!important}

/* #9 — Кнопка «Назад» вместо бургера */
.back-btn{display:inline-flex!important;align-items:center;justify-content:center;width:39px;height:39px;border-radius:12px;background:var(--c-glass-solid);border:1px solid var(--c-glass-brd);color:var(--c-ink-muted);flex:0 0 auto;margin-right:2px;transition:transform .16s var(--ease),background-color .16s var(--ease),color .16s var(--ease),box-shadow .18s var(--ease)}
.back-btn:hover{background:var(--c-surface-h);color:var(--c-accent);box-shadow:var(--sh-card)}
.back-btn:active{transform:scale(.96)}
.back-btn:disabled{opacity:.4;cursor:default;box-shadow:none}
.back-btn svg{transition:transform .18s var(--ease)}
.back-btn:hover:not(:disabled) svg{transform:translateX(-2px)}
.menu-btn{display:none!important}

/* #2 — Рейка: поддержка НИЖЕ (порядок: аватар → поддержка → выход) */
.rail__foot{gap:8px!important}
.rail__foot #open-feedback{order:2}
.rail__foot #rail-avatar{order:1}
.rail__foot #logout{order:3}
.rail__foot #rail-admin{order:0}
#open-feedback.rail__shield:hover{color:var(--c-accent)!important;background:var(--c-surface-h)!important}

/* #3 — пустое состояние «Аналитика по ошибкам» */
.jerr-empty{font-size:12.5px;line-height:1.5;color:var(--c-ink-muted);padding:8px 2px;text-wrap:pretty}

/* ── Интро-видео прелоадер (играет → плавно уходит к экрану входа) ── */
.intro-preloader{position:fixed;inset:0;z-index:10000;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;
  background:radial-gradient(120% 90% at 50% 50%,#10203c 0%,#0A1220 60%,#070d18 100%);
  opacity:1;transition:opacity 1s cubic-bezier(.22,.61,.36,1),transform 1.1s cubic-bezier(.22,.61,.36,1),visibility 1s}
.intro-preloader.intro-done{opacity:0;transform:translateY(-22px) scale(.985);visibility:hidden;pointer-events:none}
.intro-aura{position:absolute;inset:-20%;z-index:0;pointer-events:none;filter:blur(80px);opacity:.55}
.intro-aura b{position:absolute;border-radius:50%;display:block}
.intro-aura .a{width:46vw;height:46vw;left:8%;top:6%;background:radial-gradient(circle,rgba(46,95,163,.5),transparent 65%);animation:intro-drift 16s cubic-bezier(.22,.61,.36,1) infinite alternate}
.intro-aura .b{width:40vw;height:40vw;right:6%;bottom:8%;background:radial-gradient(circle,rgba(124,111,240,.35),transparent 65%);animation:intro-drift2 19s cubic-bezier(.22,.61,.36,1) infinite alternate}
.intro-aura .c{width:34vw;height:34vw;left:40%;bottom:0;background:radial-gradient(circle,rgba(45,212,191,.22),transparent 65%);animation:intro-drift 22s cubic-bezier(.22,.61,.36,1) infinite alternate}
@keyframes intro-drift{to{transform:translate(6%,5%) scale(1.12)}}
@keyframes intro-drift2{to{transform:translate(-6%,-5%) scale(1.1)}}
.intro-stage{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center}
.intro-markwrap{position:relative;width:148px;height:148px;display:flex;align-items:center;justify-content:center}
.intro-glyph-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.intro-outline{stroke:rgba(91,138,208,.4);stroke-width:2.4;fill:none}
.intro-spark{stroke:#eaf2ff;stroke-width:3;fill:none;filter:drop-shadow(0 0 5px rgba(200,222,250,.95));opacity:0}
.intro-final{fill:url(#introHotgrad);filter:drop-shadow(0 0 2px rgba(255,255,255,.9)) drop-shadow(0 0 8px rgba(150,190,240,.85)) drop-shadow(0 0 18px rgba(80,130,210,.65)) drop-shadow(0 0 34px rgba(50,95,175,.4));opacity:0}
.intro-hash{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:'IBM Plex Mono',monospace;font-size:14px;font-weight:600;letter-spacing:.06em;color:#dbe8fb;text-shadow:0 0 10px rgba(150,190,240,.85)}
.intro-flash{position:absolute;inset:-40px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.95),rgba(255,255,255,0) 60%);opacity:0;pointer-events:none}
.intro-word{margin-top:-15px;font-size:30px;font-weight:700;letter-spacing:.34em;padding-left:.34em;color:#EAF1FB;opacity:0;transform:translateY(8px);transition:opacity .5s cubic-bezier(.22,.61,.36,1),transform .5s cubic-bezier(.22,.61,.36,1)}
.intro-tag{margin-top:9px;font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;color:#7E8DA8;opacity:0;transform:translateY(8px);transition:opacity .5s cubic-bezier(.22,.61,.36,1) .08s,transform .5s cubic-bezier(.22,.61,.36,1) .08s}
.intro-word.show,.intro-tag.show{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.intro-preloader{display:none!important}}

/* ═══════════════════════════════════════════════════════════════════════
   ░░░ v13 — МАСТЕР-АККАУНТ: премиум + корректная тёмная тема (эталон) ░░░
   Был хардкод #fff на панелях + var(--navy-900) как ФОН top-bar (ремап
   сделал его светлым ink → в dark инвертировался). Чиним всё на токенах.
   Фон плиты теперь = .app,.master{background:var(--c-shell)} (раздел 5) —
   .master больше не дублирует --c-canvas (тот уже на body под шеллом).
   ═══════════════════════════════════════════════════════════════════════ */
.master{color:var(--c-ink)!important}
/* Шапка контента — узкая стеклянная полоса (бренд теперь в рейке слева, не тут) */
.master-header{background:var(--c-glass)!important;-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border-bottom:1px solid var(--c-hair)!important}
.master-header__crumb{color:var(--c-ink-faint)!important}
.master-header__title{color:var(--c-ink-strong)!important}
.master__pick-l{color:var(--c-ink-muted)!important}
.master__pick select{height:38px!important;border-radius:11px!important;background:var(--c-glass-solid)!important;border:1px solid var(--c-glass-brd)!important;color:var(--c-ink-strong)!important}
.master__pick select option{color:#16233F;background:#fff}
.master__body{padding:26px 30px!important}
/* Панели / карты / таблицы / списки → единое стекло (обе темы) */
.master-tablewrap,.master-conv,.master-card,.master-li,.tradepicker-item,.master-overview__strip,.master-overview__card,.master-combined,.master-hero__composer{background:var(--c-glass)!important;-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--c-glass-brd)!important;box-shadow:var(--sh-card)!important;border-radius:16px!important}
.master-card{padding:18px 20px!important;margin-bottom:16px!important}
.master-card__h{color:var(--c-ink-strong)!important}
.master-card__meta{color:var(--c-ink-muted)!important}
/* П0-фикс: бейдж-даты блокнота — рамка была хардкод-хексом (как у трейдерского
   .nb-card__date), без ремапа «плывёт» в тёмной теме — чиним так же, как там. */
[data-theme="dark"] .master-card__date{color:var(--c-accent-strong)!important;background:var(--c-accent-soft)!important;border-color:var(--c-accent-line)!important}
/* Инциденты: серьёзность уже читается по бейджу .master-inc__sev--* (иконка+
   цвет+текст в заголовке карточки) — раньше ДОПОЛНИТЕЛЬНО дублировалась цветной
   полосой слева на самой карточке (.master-card.master-inc--*{border-left:...}),
   убрано в v21 (премиум-проход) как визуальный шум/анти-паттерн: одна и та же
   информация двумя разными сигналами. «high» — единственный цвет без готового
   токена, ремапим вручную в тёмной теме (не переиспользовать светлый hex как
   есть — «неонит»/съезжает). */
[data-theme="dark"] .master-inc__sev--high{color:#f0c48a!important;background:rgba(194,118,46,.16)!important}
.master-overview__strip-item b{color:var(--c-ink-strong)!important}
.master-overview__strip-item span{color:var(--c-ink-muted)!important}
.master-overview__card-h b{color:var(--c-ink-strong)!important}
.master-overview__card-u{color:var(--c-ink-faint)!important}
.master-overview__card-kpis small{color:var(--c-ink-muted)!important}
.master-overview__card-go{color:var(--c-accent)!important}
.master-combined__head{color:var(--c-ink-strong)!important}
.master-combined__hint{color:var(--c-ink-faint)!important}
.master-combined__chk{color:var(--c-ink)!important}
.master-doc-card__who{color:var(--c-ink-strong)!important}
.master-doc-card__ctx{color:var(--c-ink-muted)!important}
.master-doc-card__body{color:var(--c-ink)!important}
.master-doc-card__foot{border-top-color:var(--c-hair)!important}
.master-inc__foot{border-top-color:var(--c-hair)!important}
.master-inc__body{color:var(--c-ink)!important}
.master-table{font-size:13px!important}
.master-table th{background:var(--c-glass-solid)!important;color:var(--c-ink-faint)!important;border-bottom:1px solid var(--c-hair)!important}
.master-table th,.master-table td{padding:11px 14px!important;border-bottom:1px solid var(--c-hair)!important;color:var(--c-ink)!important}
.master-trow:hover,.master-trow-d td{background:var(--c-accent-soft)!important}
.master-trow-d td{color:var(--c-ink)!important}
.master-list{gap:6px!important}
.master-li{padding:11px 13px!important;color:var(--c-ink)!important}
.master-li:hover{background:var(--c-surface-h)!important}
.master-li.active{background:var(--c-accent-soft)!important;border-color:var(--c-accent-line)!important;color:var(--c-accent-strong)!important;font-weight:600!important}
.master-conv{padding:20px!important;gap:14px!important}
.master-msg__r{color:var(--c-ink-muted)!important}
.master-msg__c{color:var(--c-ink)!important}
.master-msg--assistant .master-msg__c{background:var(--c-surface-2)!important;border:1px solid var(--c-hair)!important}
.master-msg--user .master-msg__c{background:var(--c-accent-soft)!important;color:var(--c-ink-strong)!important}
.master-doc__item{color:var(--c-ink)!important;border-bottom:1px dashed var(--c-hair)!important}
.master-note__c,.master-note-rich{color:var(--c-ink)!important}
.master-note-meta{color:var(--c-ink-muted)!important;border-bottom:1px solid var(--c-hair)!important}
.master-empty{color:var(--c-ink-faint)!important;padding:40px 26px!important}
.master-split{gap:20px!important}
/* drill-hover — синий (teal убран) */
tr.master-drill:hover{background:var(--c-accent-soft)!important}
.master-card.master-drill:hover{border-color:var(--c-accent-line)!important;box-shadow:var(--sh-lift)!important}
.tradepicker-item:hover{background:var(--c-accent-soft)!important;border-color:var(--c-accent-line)!important}
.master-deleted-badge{color:var(--c-warn)!important;background:var(--c-warn-bg)!important;border:1px solid var(--c-warn)!important}
/* Мастер-журнал: воздух между блоками (владелец: «окошки слишком близко») */
.master__body .janalytics__grid{gap:14px!important;margin-bottom:18px!important}
.master__body .janalytics__cols{gap:16px!important;margin-bottom:18px!important}
.master-jbar{margin-bottom:16px!important;gap:10px!important}

/* Встреча №6: вкладка «Решения» (приватные рекомендации ассистента руководителю).
   Дизайн-система m61: только токены --c-*, синий+нейтраль (зелёный/фиолетовый — лишь в ТЖ). */
.master-dec{display:flex;flex-direction:column;gap:9px;margin-bottom:14px}
.master-dec__badge{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;font-size:11px;font-weight:600;vertical-align:middle;background:var(--c-accent-soft);color:var(--c-accent);border:1px solid var(--c-accent-line)}
.master-dec__badge--done{background:var(--c-surface-2);color:var(--c-ink-muted);border-color:var(--c-hair)}
.master-dec__src{align-self:flex-start;font-size:12px;color:var(--c-accent);background:none;border:none;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:2px}
.master-dec__comment{width:100%;min-height:58px;box-sizing:border-box;resize:vertical;border:1px solid var(--c-glass-brd);border-radius:10px;padding:8px 10px;font-family:inherit;font-size:13px;color:var(--c-ink);background:var(--c-glass-solid);outline:none}
.master-dec__comment:focus{border-color:var(--c-accent)}
.master-dec__actions{display:flex;align-items:center;gap:12px}
.master-dec__when{font-size:11.5px;color:var(--c-ink-muted)}

/* Решения/Анализ ошибок — маленькая карточка (только название ситуации),
   полная деталь открывается в #master-detail по клику (задача владельца:
   «не облака, а маленькое окошко, подробнее по нажатию»). */

/* Встреча №6: подпапка папки-категории (Журнал внутри Корп-документации) */
.cat-group--nested{margin-left:14px;border-left:1.5px solid var(--c-hair)}
.cat-group--nested>.cat-head{padding-left:8px}

/* Встреча №6 (правка 18): мастер видит чат трейдера ТОЧЬ-В-ТОЧЬ как он сам —
   пузыри с выравниванием (трейдер справа на акценте, ассистент слева). */
.master-msg{display:flex;flex-direction:column}
.master-msg--user{align-items:flex-end}
.master-msg--assistant{align-items:flex-start}
.master-msg__c{display:inline-block;max-width:84%}
.master-msg--user .master-msg__r{text-align:right}
.master-msg--user .master-msg__c{background:var(--c-accent)!important;color:#fff!important;border-top-right-radius:6px!important;border:none!important}

/* Встреча №6 (правка 25): панель кнопок генерации аудитов */
.master-audits__bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;font-size:13px;color:var(--c-ink-muted)}
/* Найден реальный баг (владелец: «карточки съезжаются со словом Монитор»):
   .master-audits__back — единственная кнопка-навигация в разделах Монитора БЕЗ
   отступа снизу (в отличие от .mon-crumb, margin-bottom:14-18px, которым
   пользуются все остальные 5 разделов) — сетка папок/панель аудитов сразу
   ПОД кнопкой садились впритык. */
.master-audits__back{margin-bottom:16px}

/* Встреча №6 (правка 23): история правок сделки «было → стало» */
.master-hist{margin-top:16px;border-top:1px solid var(--c-hair);padding-top:12px}
.master-hist__h{font-weight:600;font-size:13px;margin-bottom:8px;color:var(--c-ink-strong)}
.master-hist__ver{font-size:11.5px;color:var(--c-ink-muted);margin:10px 0 4px;font-weight:600}
.master-hist__row{font-size:12.5px;margin:2px 0;color:var(--c-ink)}
.master-hist__old{color:var(--c-ink-muted);text-decoration:line-through}
.master-hist__new{color:var(--c-accent);font-weight:600}

/* Фидбэк #10: селектор напоминания читаем в обеих темах (был серый текст на белом в dark) */
.nb-date__in--lead{cursor:pointer;color:var(--c-ink)!important;background:var(--c-glass-solid)!important;border:1px solid var(--c-glass-brd)!important}
[data-theme="dark"] .nb-date__in--lead{color:var(--c-ink)!important;background:var(--c-glass-solid)!important;border-color:var(--c-glass-brd)!important}
[data-theme="dark"] .nb-date__in--lead option{background:#16243d;color:#e8eef7}

/* Спец-анализ журнала: двусторонний акцент сигнала уже несёт бейдж
   .master-ja__badge--up/--down (текст «улучшение»/«ухудшение», цвет+фон) —
   дублирующая цветная полоса слева на карточке (.master-card.ja--up/--down)
   убрана в v21 (тот же анти-паттерн, что у инцидентов выше). Ухудшение —
   красный, улучшение — teal (teal/зелёный допустим: это ТЖ-контекст). */
.master-ja__badge--down{background:var(--danger-bg)!important;color:var(--danger)!important;border-color:rgba(178,58,58,.32)!important}
.master-ja__badge--up{background:rgba(18,179,166,.12)!important;color:#0E9C90!important;border-color:rgba(18,179,166,.4)!important}
.master-ja__scale{font-size:12px;color:var(--c-ink-muted)}
[data-theme="dark"] .master-ja__badge--down{color:#f4a6a6!important}
[data-theme="dark"] .master-ja__badge--up{color:#5eead4!important}

/* #14: окно редактирования сделки — фикс-высота, прокручивается середина, кнопки
   («Сохранить») всегда видны (раньше модалка переполняла экран и save был недоступен). */
.modal--trade{display:flex;flex-direction:column;max-height:92vh}
.modal--trade>.modal__title,.modal--trade>.trade-toolbar{flex:0 0 auto}
.modal--trade>.trade-validation{flex:0 0 auto;max-height:20vh;overflow-y:auto}
.modal--trade>.trade-form{flex:1 1 auto;min-height:0;max-height:none}
.modal--trade>.related{flex:0 0 auto;max-height:22vh;overflow-y:auto}
.modal--trade>.modal__actions{flex:0 0 auto;margin-top:18px}

/* #14: мастер видит, какие поля изменились в ПОСЛЕДНЮЮ правку — прямо в карточке
   сделки (подсветка строки + метка), не только в блоке «История правок». */
.u-table tr.master-row--changed>td{background:rgba(58,111,184,.07)}
.master-changed-tag{margin-left:6px;font-size:10px;font-weight:700;color:var(--blue-600);white-space:nowrap}
[data-theme="dark"] .u-table tr.master-row--changed>td{background:rgba(125,170,255,.1)!important}
[data-theme="dark"] .master-changed-tag{color:var(--c-accent)}

/* #3/#11: секции мастера «На согласование» / «Принятые решения» (история решений). */
.master-sec__h{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--c-ink-muted,var(--grey-500));margin:20px 2px 11px;padding-bottom:6px;border-bottom:1px solid var(--c-hair,var(--grey-250))}
.master-sec__h:first-child{margin-top:2px}
.master-sec__h--accepted{color:#0E9C90}
.master-empty--sm{padding:14px 2px!important;font-size:13px;text-align:left}
[data-theme="dark"] .master-sec__h--accepted{color:#5eead4}

/* ── Единый цвет кнопок-действий (фидбэк 2026-07-01) ──────────────────────
   Слой v9 когда-то красил «действия» под ответом ассистента (→журнал/→блокнот)
   и «Распознать» в Журнале в teal/фиолетовый; политика поменялась на «синие
   действия + нейтральные утилиты» (см. CLAUDE.md), но эти конкретные места не
   доправили. Финальный проход поверх всех прежних слоёв — один и тот же
   --grad-btn (тот же, что у обычных .btn--primary) везде, обе темы. */
.msg-act--journal,.msg-act--note,.msg-act--dis,#trade-extract{
  background:var(--grad-btn)!important;color:#fff!important;border:none!important;
  font-weight:600!important;box-shadow:0 10px 22px -12px rgba(46,95,163,.8)!important;
}
.msg-act--journal:hover,.msg-act--note:hover,.msg-act--dis:hover,#trade-extract:hover{
  filter:brightness(1.08)!important;transform:translateY(-1px);
}
.msg-act:not(.msg-act--journal):not(.msg-act--note):not(.msg-act--dis),.jerr__act{
  color:var(--c-ink)!important;background:var(--c-glass-solid)!important;
  border:1px solid var(--c-glass-brd)!important;
}
.msg-act:not(.msg-act--journal):not(.msg-act--note):not(.msg-act--dis):hover,.jerr__act:hover{
  background:var(--c-surface-h,var(--grey-100))!important;color:var(--c-ink-strong)!important;
}

/* ═══════════════════════════════════════════════════════════════════════
   ░░░  v12 — ПРЕМИАЛЬНЫЙ ПРОХОД ПО КНОПКАМ (фидбэк 2026-07-01: «кнопки убогие»)  ░░░
   Один слой поверх ЦЕНТРАЛЬНЫХ переиспользуемых классов (.btn*, .icon-btn,
   .journal-pill, .nb-ai-btn, .msg-act) — поднимает КАЖДУЮ кнопку платформы разом
   (журнал, чат, блокнот, мастер, календарь — все они собраны из этих классов),
   а не точечно по экранам. Принципы (make-interfaces-feel-better):
   - тень вместо рамки; interactive transition, а не keyframes;
   - press = scale(.96) — не меньше (иначе выглядит утрированно);
   - конкретные transition-property (никогда `all`);
   - primary получает лёгкий блик-скольжение при hover (как у msg-act--journal).
   ═══════════════════════════════════════════════════════════════════════ */
.btn,.icon-btn,.journal-pill,.nb-ai-btn,.msg-act{
  transition-property:background-color,background,border-color,box-shadow,transform,color,filter;
  transition-duration:.16s;transition-timing-function:var(--ease);
}
/* ⚠️ Это правило — ИСТОЧНИК press-эффекта .nb-ai-btn (scale .96). Есть ЕЩЁ
   такой же список ниже по файлу (v17 секция C, "Убрать «3D при нажатии» ВЕЗДЕ") —
   если туда снова попадёт .nb-ai-btn/.msg-act, это правило будет молча перебито
   (уже случалось, находка UX-аудита 2026-07-02). Перед правкой любого
   :active{transform...} списка — грепни ВСЕ вхождения ".nb-ai-btn:active"
   по файлу, их несколько (эта строка, ~1642 scale:.98, ~1853 .msg-act). */
.btn:active,.journal-pill:active,.nb-ai-btn:active{transform:scale(.96)!important;transition-duration:.08s}
.icon-btn:active{transform:scale(.96)}

/* ── .btn--primary/.btn--danger: приподнятая «ведущая» кнопка + блик при hover ── */
.btn--primary,.btn--danger{position:relative;overflow:hidden;border-radius:var(--r-ctl,var(--radius))!important}
.btn--primary::before,.btn--danger::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.32) 50%,transparent 65%);
  transform:translateX(-140%);transition:transform .7s var(--ease);
}
.btn--primary:hover::before,.btn--danger:hover::before{transform:translateX(140%)}
.btn--primary:hover{transform:translateY(-1px);box-shadow:0 16px 30px -14px rgba(46,95,163,.85)!important}
.btn--primary:active{transform:scale(.96)!important;box-shadow:0 6px 14px -8px rgba(46,95,163,.7)!important}
.btn--danger:hover{transform:translateY(-1px);box-shadow:0 16px 30px -14px rgba(178,58,58,.55)!important}
.btn--danger:active{transform:scale(.96)!important}

/* ── .btn--ghost: лёгкий подъём + мягкая тень на hover, компактный press ── */
.btn--ghost:hover{box-shadow:var(--sh-lift,var(--shadow-lifted))!important;transform:translateY(-1px)}
.btn--ghost:active{transform:scale(.96)!important;box-shadow:var(--sh-card,var(--shadow-card))!important}
.icon-btn:hover{transform:translateY(-1px)}

/* ── Пилюли фильтров (.journal-pill) и «Действия ИИ» (.nb-ai-btn) — тот же подъём ── */
.journal-pill:hover{transform:translateY(-1px);box-shadow:var(--sh-card,var(--shadow-card))}
.nb-ai-btn:hover{transform:translateY(-1px)}

/* ── «Задача ассистенту» (нов. .nb-ai-instruct, под «Действия ИИ») — фокус-кольцо
   как у остальных полей платформы (composer/journal-dictate). ── */
.nb-ai-instruct:focus-within{box-shadow:var(--sh-card,var(--shadow-card)),0 0 0 3px var(--c-accent-soft,var(--blue-100))!important}

/* ═══════════════════════════════════════════════════════════════════════
   ░░░  v13 — ЧАТ: воздух вместо «прижато к краю» (фидбэк 2026-07-01)  ░░░
   Корень: `.chat__col` (max-width:760px + центрирование) существовал в CSS,
   но НИКОГДА не применялся в разметке (app.js рендерит `.msg` прямо в
   `#messages.chat__scroll`, без обёртки) — мёртвый класс. У композера же
   `.composer__col` реально висит в HTML, поэтому он был аккуратно
   центрирован, а сообщения над ним — растянуты во всю ширину (у юзер-пузыря
   было ~15px до правого края шелла). Чиним БЕЗ правки app.js/index.html —
   переносим тот же max-width/центровку на сам `.msg` (уже прямой потомок
   `.chat__scroll` в реальной разметке), тот же 760px, что и у композера.
   ═══════════════════════════════════════════════════════════════════════ */
.chat__scroll>.msg{max-width:760px;width:100%;margin-left:auto;margin-right:auto}

/* ═══════════════════════════════════════════════════════════════════════
   ░░░  v14 — ТЁМНАЯ ТЕМА: добор контраста сверх токенов (фидбэк 2026-07-01)  ░░░
   --c-glass-solid/--c-glass-brd/--sh-card/--sh-lift подняты у корня (см. блок
   тёмной темы выше). .btn--ghost/.msg-act/.jerr__act здесь ранее тоже
   переопределялись — ЗАМЕНЕНО в v15 (плотная заливка вместо прозрачной); эти
   строки убраны, чтобы [data-theme="dark"] .btn--ghost (выше по specificity)
   не перебивал новые правила v15 с обычным .btn--ghost. ── */
[data-theme="dark"] .icon-btn:hover{background:rgba(255,255,255,.10)!important}

/* ═══════════════════════════════════════════════════════════════════════
   ░░░  v15 — ВТОРИЧНЫЕ КНОПКИ: ПОЛНЫЙ ПЕРЕСМОТР (фидбэк 2026-07-01, 3-й заход)  ░░░
   v12/v14 точечно поднимали ПРОЗРАЧНОСТЬ «стеклянных» токенов — этого мало:
   полупрозрачная заливка ПРИНЦИПИАЛЬНО не может дать однозначный контраст,
   потому что цвет под кнопкой непредсказуем (стекло на aurora, страница
   мастер-аккаунта, любая карточка — каждый раз чуть другой тон). Меняем
   ПОДХОД: «Экспорт»/«Импорт»/«Очистить»/пилюли фильтров/нейтральные действия
   в чате — на ПЛОТНУЮ, непрозрачную заливку (--c-btn2/--c-btn2-brd) плюс
   заметно крупнее (высота/паддинги) и с более выразительной тенью.
   ═══════════════════════════════════════════════════════════════════════ */
.btn--ghost,
.journal-pill:not(.active),
.msg-act:not(.msg-act--journal):not(.msg-act--note):not(.msg-act--dis),
.jerr__act{
  background:var(--c-btn2)!important;
  border:1.5px solid var(--c-btn2-brd)!important;
  color:var(--c-ink-strong)!important;
  box-shadow:0 1px 2px rgba(20,35,63,.08),0 6px 14px -8px rgba(20,35,63,.22)!important;
  font-weight:600!important;
}
.btn--ghost:hover,
.journal-pill:not(.active):hover,
.msg-act:not(.msg-act--journal):not(.msg-act--note):not(.msg-act--dis):hover,
.jerr__act:hover{
  background:var(--c-btn2-h)!important;
  border-color:var(--c-btn2-brd-h)!important;
  color:var(--c-ink-strong)!important;
  box-shadow:0 2px 4px rgba(20,35,63,.1),0 10px 22px -10px rgba(20,35,63,.3)!important;
  transform:translateY(-1.5px)!important;
}
.btn--ghost:active,
.journal-pill:not(.active):active{
  transform:scale(.96) translateY(0)!important;
  box-shadow:0 1px 2px rgba(20,35,63,.1)!important;
}
/* Крупнее — паддинги/высота/шрифт (фидбэк: «в плане размера» тоже) */
.btn{height:40px!important;padding:0 18px!important;font-size:13.5px!important}
.btn--sm{height:35px!important;padding:0 16px!important;font-size:13px!important}
.icon-btn{padding:9px!important}
.journal-pill{padding:8px 17px!important;font-size:13px!important;font-weight:600!important}
.msg-act{height:39px!important;padding:0 16px!important;font-size:13px!important}
.nb-ai-btn{padding:12px 14px!important;font-size:13px!important}

/* ═══════════════════════════════════════════════════════════════════════
   ░░░ v14 — МАСТЕР-АККАУНТ, второй раунд фидбэка (2026-07-01) ░░░
   Рейка с подписями (не только тултип), инбокс-лендинг «Разбор с ассистентом»,
   бейджи непрочитанного (мессенджер-стиль), полоса «Завершить» в чате, аватар
   пикера трейдера + флаг-проблема, вьюер заметки 1-в-1 с трейдерским (nb-doc-
   main + Quill .ql-editor), карточки Архива с .docx-скачиванием.
   ═══════════════════════════════════════════════════════════════════════ */

/* Рейка мастера — С ПОДПИСЬЮ под иконкой (фидбэк: «непонятно, что за раздел без
   наведения» — руководитель не ежедневный пользователь, тултип ненадёжен как
   единственный способ узнать). .rail.master-rail — двойной класс, чтобы
   перебить более общее !important-правило .rail{width:78px} (ниже по каскаду). */
.rail.master-rail{width:96px!important;flex:0 0 96px!important}
.master-rail .rail__nav{gap:3px!important}
.master-nav-i{flex-direction:column!important;justify-content:center;gap:3px;width:100%!important;height:54px!important;border-radius:14px!important;padding:6px 2px}
.master-nav-i__label{font-size:9.5px;font-weight:600;letter-spacing:.01em;line-height:1.1}
/* Тултип теперь ДОПОЛНИТЕЛЬНАЯ подсказка (полное описание), не единственный
   источник текста — подпись всегда видна. Сдвигаем точку показа правее (рейка
   96px, не 78px). */
.master-rail .tip{left:74px!important}

.master__pick-col{display:flex;flex-direction:column;gap:1px}
.master__pick-ava{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:13px;color:#fff;background:linear-gradient(150deg,#4C7BC4,#2E5FA3 60%,#214B86);flex:0 0 auto;position:relative}
/* Фидбэк: «триггер, который обращает внимание на проблему» у выбранного трейдера
   (нерассмотренные инциденты) — кольцо+точка на аватаре пикера, не только текст. */
.master__pick-ava--flag{box-shadow:0 0 0 2px var(--danger,#B23A3A)}
.master__pick-ava--flag::after{content:"";position:absolute;right:-2px;bottom:-2px;width:10px;height:10px;border-radius:50%;background:var(--danger,#B23A3A);box-shadow:0 0 0 2px #fff}

/* Инбокс-лендинг «Разбор с ассистентом» (бывшая отдельная вкладка «Обзор») —
   переиспользует .master-overview__* без изменений, просто внутри #mc-main. */
.master-inbox-landing{padding:2px}
.master-overview__strip-item[data-go-folder]{cursor:pointer}
.master-overview__strip-item[data-go-folder]:hover{text-decoration:underline}

/* Бейдж непрочитанного на папке (мессенджер-стиль: число = нужно действие) */
.cat-head__unread{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:var(--danger,#B23A3A);color:#fff;font-size:10px;font-weight:700;margin-left:4px}
/* #round2-review (should-fix): .chat-row переиспользуется трейдерским чатом
   (chatRow() в app.js) — .chat-row__dot существует только у мастера
   (masterChatRow()), поэтому padding скопили ТОЛЬКО под #mc-tree,
   иначе у трейдера сайдбар молча ужимался на 6px без причины. */
#mc-tree .chat-row{padding-left:18px!important}
/* Правка (2026-07-07): точка «нужно разобрать» — КРАСНАЯ (danger), не синяя
   (была var(--c-accent) — синий и не тот смысл). position:relative теперь на
   базовом .chat-row (см. выше), поэтому точка корректно висит на своей строке
   и в #chat-tree (лента Инцидентов), а не улетала в левый край, как раньше,
   когда relative-родитель существовал только под #mc-tree. Ровно по центру
   левого поля строки, вертикально по центру. */
.chat-row__dot{position:absolute;left:9px;top:50%;transform:translateY(-50%);width:7px;height:7px;border-radius:50%;background:var(--danger,#B23A3A);box-shadow:0 0 0 2px var(--c-surface,#fff)}
[data-theme="dark"] .chat-row__dot{background:var(--c-neg,#e06a6a);box-shadow:0 0 0 2px var(--c-bg,#0f1830)}

/* Полоса «Завершить → в Архив» — прямо в чате инбокса, не отдельная вкладка */
.master-resolve-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 14px;margin:0 0 12px;border-radius:var(--radius-lg);background:var(--c-accent-soft,rgba(46,95,163,.08));border:1px solid var(--c-accent-line,rgba(46,95,163,.25))}
.master-resolve-bar__l{flex:1 1 260px;font-size:12.5px;color:var(--c-ink,var(--ink))}
.master-resolve-bar textarea{flex:1 1 220px;min-height:36px;max-height:80px;resize:vertical;border:1px solid var(--c-glass-brd,var(--grey-250));border-radius:9px;padding:7px 10px;font-family:inherit;font-size:12.5px;background:var(--c-glass-solid,#fff);color:var(--c-ink,var(--ink));outline:none}

/* Карточки Архива: подпись типа документа + скачивание */
.master-doc-card__dl{margin-left:auto}
.master-doc-card__comment{margin-top:10px;padding-top:10px;border-top:1px dashed var(--c-hair,var(--grey-200));font-size:13px;color:var(--c-ink-muted,var(--grey-600))}

/* Аудиты: настоящие иконки вместо эмодзи — переиспользуем .folder-ico (уже есть
   у корп-документов), просто теперь внутри svg, а не эмодзи-текст. */
.folder-ico svg{width:20px;height:20px}

/* Вьюер заметки у мастера — 1-в-1 с трейдерским .nb-doc-main (та же карточка),
   просто отцентрирована внутри модалки (там она обычно flex-child, тут — нет).
   #round2-review (should-fix): .fv-body сама стеклянная карточка (фон+рамка+блюр
   в обеих темах) — карточка-в-карточке вокруг .nb-doc-main. Гасим фон/рамку/блюр
   .fv-body ИМЕННО когда внутри заметка, чтобы видна была только одна карточка,
   как у трейдера (там .nb-doc-main лежит прямо на фоне страницы, без обёртки). */
.fv-body:has(.master-note-view){background:transparent!important;border:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.master-note-view{margin:0 auto}
.master-note-view__quill{margin:0;padding:0;width:100%;border:none!important;box-shadow:none!important}
.master-note-view__quill .ql-editor{padding:8px 0 0;min-height:0;line-height:1.78;color:var(--ink);font-size:16px}
.master-note-view__quill .ql-editor h1{font-size:26px;line-height:1.3;letter-spacing:-.01em;color:var(--navy-900)}
.master-note-view__quill .ql-editor h2{font-size:20px;line-height:1.35;color:var(--navy-900)}
.master-note-view__quill .ql-editor blockquote{border-left:3px solid var(--blue-500);background:var(--blue-50);padding:8px 14px;color:var(--grey-700);border-radius:0 8px 8px 0;margin:.7em 0}
.master-note-view__foot{margin-top:14px}
.master-note-view__src{appearance:none;border:none;background:none;padding:0;cursor:pointer;font-size:12.5px;font-weight:600;color:var(--blue-600,var(--c-accent))}
.master-note-view__src:hover{text-decoration:underline}

[data-theme="dark"] .master-nav-i__label{color:var(--c-rail-ink)}
[data-theme="dark"] .master-nav-i.active .master-nav-i__label{color:var(--c-accent)}
[data-theme="dark"] .master__pick-ava--flag{box-shadow:0 0 0 2px var(--c-neg,#e06a6a)}
[data-theme="dark"] .master__pick-ava--flag::after{background:var(--c-neg,#e06a6a);box-shadow:0 0 0 2px var(--c-surface,#16213A)}
[data-theme="dark"] .cat-head__unread{background:var(--c-neg,#e06a6a)}
/* Правка (2026-07-07): было var(--c-accent) (синий) — точка «нужно разобрать»
   должна быть КРАСНОЙ, как и бейдж-счётчик папки. */
[data-theme="dark"] .chat-row__dot{background:var(--c-neg,#e06a6a);box-shadow:0 0 0 2px var(--c-bg,#0f1830)}
[data-theme="dark"] .master-resolve-bar{background:var(--c-accent-soft)!important;border-color:var(--c-accent-line)!important}
[data-theme="dark"] .master-resolve-bar textarea{background:var(--c-glass-solid)!important;border-color:var(--c-glass-brd)!important;color:var(--c-ink)!important}
[data-theme="dark"] .master-doc-card__comment{color:var(--c-ink-muted)!important;border-top-color:var(--c-hair)!important}
[data-theme="dark"] .master-note-view__quill .ql-editor{color:var(--c-ink)!important}
[data-theme="dark"] .master-note-view__quill .ql-editor h1,[data-theme="dark"] .master-note-view__quill .ql-editor h2{color:var(--c-ink-strong)!important}
[data-theme="dark"] .master-note-view__quill .ql-editor blockquote{background:var(--c-surface-2)!important;color:var(--c-ink-muted)!important;border-left-color:var(--c-accent)!important}

/* ═══════════════════════════════════════════════════════════════════════
   ░░░  v16 — единый язык синих кнопок + мелкие фиксы (фидбэк 2026-07-01)  ░░░
   1) Блик-скольжение (был только у .btn--primary/.btn--danger) — теперь у
      ЛЮБОЙ синей «кнопки-действия»: активная пилюля фильтра, «Дата из текста»,
      «Распознать», кнопка отправки. Чат (.msg-act) — СОЗНАТЕЛЬНО не включён,
      там свой, более скромный язык (владелец: «в чате ассистента убери»).
   2) .journal-pill лишился backdrop-filter — комбинация blur+scale(.96) на
      press давала визуальный артефакт «странное 3D» (blur создаёт отдельный
      composite-слой, который «плывёт» при transform на нём же).
   3) .msg-act уменьшен обратно — v15 сделал его каким же большим, как
      основные кнопки, а это должны быть компактные лёгкие действия под
      ответом ассистента.
   4) .msg__time (время+дата под ответом) — явно фиксируем left, «на всякий».
   5) Эмблема ассистента в чате (.msg__avatar, 30px) — раньше везде PNG
      (тёмный тайл), в светлой теме не менялась. Теперь как рейка/логин:
      в light — векторный монограм на --mark, без PNG.
   6) .header__bell был position:static!important → счётчик-бейдж
      (position:absolute) не мог прицепиться к самой кнопке и «улетал» к
      ближайшему позиционированному предку (в верхний угол экрана). Вернули
      position:relative — бейдж встаёт точно на угол колокольчика.
   ═══════════════════════════════════════════════════════════════════════ */

/* 1. Блик-скольжение — общий язык синих action-кнопок */
.journal-pill.active,.nb-date__btn,#trade-extract,.btn--send{position:relative;overflow:hidden}
.journal-pill.active::before,.nb-date__btn::before,#trade-extract::before,.btn--send::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.32) 50%,transparent 65%);
  transform:translateX(-140%);transition:transform .7s var(--ease);
}
.journal-pill.active:hover::before,.nb-date__btn:hover::before,#trade-extract:hover::before,.btn--send:hover::before{transform:translateX(140%)}

/* 2. Пилюли фильтров — без backdrop-filter (устраняло «3D»-артефакт на press) */
.journal-pill{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}

/* 3. Действия в чате — компактно (не как основные кнопки) */
.msg-act{height:29px!important;padding:0 12px!important;font-size:12px!important;font-weight:600!important}

/* 4. Время сообщения ассистента — точно у левого края (под аватаром) */
.msg:not(.msg--user)>.msg__time{text-align:left!important;margin-left:44px!important;flex-basis:100%!important}

/* 4b. Корень бага «время съезжает правее» на ДЛИННЫХ ответах (фидбэк 2026-07-03):
   .msg__bubble с flex-basis:auto (по умолчанию) считает свой размер под перенос
   строки по max-content абзаца (ширина БЕЗ переноса), а не по остатку места
   рядом с аватаром — если текст длинный, max-content » остатка, и flex целиком
   переносит пузырь на свою строку (x=0), а .msg__time остаётся на фикс-отступе
   44px «под аватаром» → расхождение. flex-basis:0 убирает content-based расчёт
   при переносе строк, пузырь встаёт в один ряд с аватаром при любой длине текста.
   Безопасно: у ответа ассистента нет фона/рамки (чистая типографика), поэтому
   flex-grow:1 (растяжение на остаток ширины) не меняет вид коротких реплик. */
.msg--assistant .msg__bubble,.msg--ai .msg__bubble{flex:1 1 0%!important;min-width:0!important}

/* 5. Эмблема ассистента в чате — в светлой теме как рейка (векторный монограм) */
[data-theme="light"] .msg--assistant .msg__avatar{
  background:var(--mark)!important;display:flex!important;align-items:center;justify-content:center;
  color:#fff;font-family:var(--mono);font-weight:600;font-size:13px;
}
[data-theme="light"] .msg--assistant .msg__avatar .emblem__svg{display:none!important}
[data-theme="light"] .msg--assistant .msg__avatar::before{content:"J"}

/* 5b. Эмблема пустого чата (.emblem--xl, тот же PNG-символ #jucon-mark) — в СВЕТЛОЙ
   теме тоже векторный монограм, а не тёмный PNG-тайл (фидбэк 2026-07-01: «в светлой
   теме сохраняется иконка тёмная»). Тот же приём, что у аватара/рейки. */
[data-theme="light"] .emblem--xl{
  background:var(--mark)!important;border-radius:15px;overflow:hidden;
  box-shadow:0 10px 22px -10px rgba(20,30,70,.45);
  display:flex!important;align-items:center;justify-content:center;
  color:#fff;font-family:var(--mono);font-weight:600;font-size:26px;line-height:1;
}
[data-theme="light"] .emblem--xl .emblem__svg{display:none!important}
[data-theme="light"] .emblem--xl::before{content:"J"}

/* 6. Колокольчик — вернуть containing block для бейджа-счётчика */
.header__bell{position:relative!important}

/* ═══════════════════════════════════════════════════════════════════════
   ░░░  v17 — ЕДИНАЯ КНОПКА: финальный сброс (фидбэк 2026-07-01)  ░░░
   Владелец: кнопки разного цвета / «liquid glass» / «3D при нажатии» — свести
   к ОДНОМУ языку. Диагноз (проверено в preview):
   • «разный цвет» → `animation:gradmove` двигает градиент → у «Новая сделка»
     оттенок в каждый кадр другой, у «Распознать»/пилюль статичный → никогда
     не совпадают. Лечение: убить анимацию, один СТАТИЧНЫЙ градиент на всех.
   • «liquid glass» → полупрозрачный фон + backdrop-filter на кнопках. Убрано.
   • «3D» → inset-бевел `…inset` + `scale(.9x)` на :active. Убрано, press = плоское
     затемнение brightness, hover = плоское осветление, без transform.
   Этот блок — ПОСЛЕДНИЙ в файле, поэтому перебивает все прежние слои.
   ═══════════════════════════════════════════════════════════════════════ */
:root,[data-theme="light"],[data-theme="dark"]{
  --btn-blue:linear-gradient(135deg,#4076C6 0%,#2E5FA3 60%,#274F8C 100%);
}

/* ── A. ВСЕ синие action-кнопки — идентичны (журнал + блокнот + композер) ── */
.btn--primary,.btn--send,#trade-extract,
.journal-pill.active,.nb-fil.active,.nb-date__btn,
.msg-act--journal,.msg-act--note,
.msg-act--dis:not(.msg-act--journal):not(.msg-act--note){
  background:var(--btn-blue)!important;background-size:auto!important;animation:none!important;
  color:#fff!important;border:none!important;
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
  box-shadow:0 4px 12px -5px rgba(39,79,140,.55)!important;
  transition:filter .15s var(--ease),box-shadow .15s var(--ease)!important;
}
.btn--primary:hover,.btn--send:hover,#trade-extract:hover,
.journal-pill.active:hover,.nb-fil.active:hover,.nb-date__btn:hover,
.msg-act--journal:hover,.msg-act--note:hover,
.msg-act--dis:not(.msg-act--journal):not(.msg-act--note):hover{
  background:var(--btn-blue)!important;filter:brightness(1.08)!important;transform:none!important;
  box-shadow:0 6px 16px -5px rgba(39,79,140,.65)!important;
}
.btn--primary:active,.btn--send:active,#trade-extract:active,
.journal-pill.active:active,.nb-fil.active:active,.nb-date__btn:active,
.msg-act--journal:active,.msg-act--note:active,
.msg-act--dis:not(.msg-act--journal):not(.msg-act--note):active{
  filter:brightness(.92)!important;transform:none!important;
  box-shadow:0 2px 6px -4px rgba(39,79,140,.55)!important;
}

/* ── B. Нейтральные утилиты (Экспорт/Импорт/Очистить, неактивные пилюли,
   нейтральные действия чата) — единый ПЛОСКИЙ светлый стиль, без стекла/3D ── */
.btn--ghost,
.journal-pill:not(.active),
.msg-act:not(.msg-act--journal):not(.msg-act--note):not(.msg-act--dis),
.jerr__act{
  background:var(--c-btn2)!important;border:1.5px solid var(--c-btn2-brd)!important;
  color:var(--c-ink-strong)!important;font-weight:600!important;
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
  box-shadow:0 1px 2px rgba(20,35,63,.07)!important;
  transition:filter .15s var(--ease),background-color .15s var(--ease),border-color .15s var(--ease)!important;
}
.btn--ghost:hover,
.journal-pill:not(.active):hover,
.msg-act:not(.msg-act--journal):not(.msg-act--note):not(.msg-act--dis):hover,
.jerr__act:hover{
  background:var(--c-btn2-h)!important;border-color:var(--c-btn2-brd-h)!important;
  color:var(--c-ink-strong)!important;filter:none!important;transform:none!important;
  box-shadow:0 2px 5px rgba(20,35,63,.1)!important;
}
.btn--ghost:active,
.journal-pill:not(.active):active,
.msg-act:not(.msg-act--journal):not(.msg-act--note):not(.msg-act--dis):active,
.jerr__act:active{filter:brightness(.96)!important;transform:none!important}

/* ── C. Убрать «3D при нажатии» ВЕЗДЕ: никакого scale на press ──
   ⚠️ Фикс аудита UX-консистентности: .nb-ai-btn/.msg-act сюда попали по
   невнимательности (комментарий-обоснование блока v17 выше говорит только
   про СИНИЕ CTA-кнопки) и перебивали свой же .96-press из v12 (та же
   специфичность+!important, но эта секция позже по файлу) — у них нет
   filter-фолбэка на active, поэтому кнопки «Действия ИИ» в блокноте жались
   «в никуда», без всякой визуальной реакции. */
.btn:active,.btn--sm:active,.btn--primary:active,.btn--ghost:active,.btn--danger:active,
.btn--send:active,.journal-pill:active,
.nb-date__btn:active,.nb-fil:active,#trade-extract:active{transform:none!important}

/* ── D. В ЧАТЕ блик УБРАН (владелец: «в чате ассистента убери») ── */
.msg-act--journal::before,.msg-act--note::before,.msg-act--dis::before{content:none!important;display:none!important}
.msg-act{position:static!important;overflow:visible!important}

/* ── E. Инсет-бевел прочь у синих кнопок (двойная страховка) ── */
.btn--send,.msg-act--journal{box-shadow:0 4px 12px -5px rgba(39,79,140,.55)!important}

/* ── F. Бейдж-счётчик колокольчика — меньше и вплотную к углу иконки ── */
.header__bell .rem-bell__count{
  top:3px!important;right:3px!important;min-width:14px!important;width:14px!important;height:14px!important;
  padding:0!important;font:700 9px/14px var(--mono)!important;border-radius:50%!important;
  box-shadow:0 0 0 2px var(--c-surface,#fff)!important;
}

/* ── Регламенты: справочные документы компании внутри корп-папки Архива ── */
.node-materials{margin:2px 0 18px}
.node-materials:empty{display:none;margin:0}
.node-materials__h{
  font:600 12px/1 var(--sans,inherit);letter-spacing:.02em;text-transform:uppercase;
  color:var(--c-ink-3,#6b7a90);margin:0 0 10px;
}

/* ═══════════════════════════════════════════════════════════════════════
   ░░░  v18 — МОНИТОР-ПРОВОДНИК + FOUNDER (фидбэк 2026-07-01, раунд 3)  ░░░
   Рейка 3 группы, Монитор = Windows-проводник (разделы→месяцы→документы),
   поиск во всех папках. Акцент остаётся СИНИМ; золото — только подпись бренда.
   ═══════════════════════════════════════════════════════════════════════ */
/* Подпись бренда «FOUNDER» под логотипом. Цвет задаётся в v20 (синяя палитра
   var(--c-accent-strong), обе темы) — здесь только раскладка (без цвета: золото
   было отменено по фидбэку владельца → см. round3-review, мёртвые правила убраны). */
.rail__brandrole{display:block;text-align:center;font-size:8.5px;font-weight:700;letter-spacing:.14em;margin:-2px 0 2px;line-height:1}
/* Подписи под иконками рейки уже есть → выдвижные тултипы на них не нужны */
.master-nav-i .tip,.master-rail .rail__logo .tip{display:none!important}
/* Хлебные крошки проводника */
.mon-crumb{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:0 0 14px;font-size:13.5px;color:var(--c-ink-muted,var(--grey-600))}
.mon-crumb__link{appearance:none;border:none;background:none;padding:0;cursor:pointer;font:inherit;font-size:13.5px;font-weight:600;color:var(--c-accent,var(--blue-600))}
.mon-crumb__link:hover{text-decoration:underline}
.mon-crumb__sep{color:var(--c-ink-muted,var(--grey-400))}
.mon-crumb__cur{font-weight:600;color:var(--c-ink-strong,var(--navy-900))}
/* Список документов месяца / результатов поиска */
.mon-docs{display:flex;flex-direction:column;gap:12px}

/* ── Вьюер справочного документа: режим Word-HTML (mammoth) + кнопка скачивания ── */
.refdoc-view__actions{display:flex;align-items:center;gap:8px}
.refdoc-view__body--rich{
  white-space:normal;word-break:normal;font-family:var(--sans,inherit);font-size:14px;
  line-height:1.7;background:var(--c-surface,#fff);color:var(--c-ink,var(--ink));
}
.refdoc-view__body--rich p{margin:0 0 10px}
.refdoc-view__body--rich strong,.refdoc-view__body--rich b{font-weight:700}
.refdoc-view__body--rich em,.refdoc-view__body--rich i{font-style:italic}
.refdoc-view__body--rich h1,.refdoc-view__body--rich h2,.refdoc-view__body--rich h3,
.refdoc-view__body--rich h4{margin:16px 0 8px;font-weight:700;line-height:1.3}
.refdoc-view__body--rich h1{font-size:19px}
.refdoc-view__body--rich h2{font-size:16px}
.refdoc-view__body--rich h3,.refdoc-view__body--rich h4{font-size:15px}
.refdoc-view__body--rich ul,.refdoc-view__body--rich ol{margin:0 0 10px;padding-left:22px}
.refdoc-view__body--rich li{margin:2px 0}
.refdoc-view__body--rich table{border-collapse:collapse;width:100%;margin:12px 0;font-size:13px}
.refdoc-view__body--rich th,.refdoc-view__body--rich td{
  border:1px solid var(--c-glass-brd,#dfe4ec);padding:6px 9px;text-align:left;vertical-align:top;
}
.refdoc-view__body--rich thead th,.refdoc-view__body--rich tr:first-child td{
  background:var(--grey-100,#f3f5f8);font-weight:600;
}
.refdoc-view__body--rich a{color:var(--c-royal,#2E5FA3);text-decoration:underline}
.refdoc-view__body--rich img{max-width:100%;height:auto;border-radius:6px}

/* ── Вьюер справочного документа — вид «страницы» (правка #5/7/9: «выглядит
   плохо, нужно как в Google Docs»). Скоуп строго на #refdoc-viewer — остальные
   модалки/палитра сохраняют обычный стеклянный стиль (перебиваем именно и
   только два !important-правила глас-слоя выше по специфичности через ID). */
#refdoc-viewer.overlay{background:var(--grey-200,#e8edf5)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
[data-theme="dark"] #refdoc-viewer.overlay{background:#22262c!important}
#refdoc-viewer .modal.modal--wide{
  background:#fff!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  border:1px solid var(--grey-200,#e1e4e8)!important;
  box-shadow:0 1px 3px rgba(20,30,50,.12),0 10px 34px -8px rgba(20,30,50,.3)!important;
  max-width:900px;width:100%;padding:0;border-radius:8px;
  display:flex;flex-direction:column;max-height:90vh;overflow:hidden;
}
[data-theme="dark"] #refdoc-viewer .modal.modal--wide{background:#fff!important;border-color:#dfe1e5!important}
#refdoc-viewer .refdoc-view__head{flex:0 0 auto;background:#fff;border-bottom:1px solid var(--grey-200,#e1e4e8);padding:16px 28px;margin:0}
/* var(--ink) в тёмной теме — светлый цвет (расчитан на тёмный фон); шапка вьюера
   ВСЕГДА белая (см. правило выше), поэтому цвет текста тоже нужен фиксированный
   тёмный, а не переменная темы — иначе в dark theme заголовок блёклый на белом. */
#refdoc-viewer #refdoc-title{color:#1f1f1f!important}
#refdoc-viewer .refdoc-view__body{
  /* min-height:0 — классический флексбокс-баг: flex-элемент по умолчанию имеет
     min-height:auto (не 0), поэтому при контенте выше модалки (многостраничные
     docx-preview документы) он просто РАСТЁТ вместо того чтобы сжаться до
     контейнера и дать overflow-y:auto скроллить — контент обрезался краем
     модалки без скролла (фидбэк владельца: «не скроллятся до конца»). */
  flex:1 1 auto;min-height:0;margin:0;max-height:none;overflow-y:auto;
  background:var(--grey-200,#e8edf5);padding:32px;
}
[data-theme="dark"] #refdoc-viewer .refdoc-view__body{background:#2b2e33}
#refdoc-viewer .refdoc-view__body--rich,
#refdoc-viewer .refdoc-view__body:not(.refdoc-view__body--rich):not(.refdoc-view__body--original){
  max-width:760px;margin:0 auto;background:#fff!important;color:#1f1f1f!important;
  border-radius:2px;box-shadow:0 1px 3px rgba(0,0,0,.15),0 2px 10px rgba(0,0,0,.08);
}
#refdoc-viewer .refdoc-view__body--rich{padding:56px 64px}
#refdoc-viewer .refdoc-view__body:not(.refdoc-view__body--rich):not(.refdoc-view__body--original){padding:40px 48px}

/* ── Рендер САМОГО docx (docx-preview) — правка пула 2026-07-06, #9-уточнение:
   «один в один, будто открыли в Word» (mammoth такое форматирование не хранит,
   см. openRefDoc/_renderRefDocOriginal в app.js). docx-preview сам рисует
   белые «страницы» с тенью — контейнер тут ТОЛЬКО холст, без своей рамки/фона,
   иначе получится двойная рамка вокруг уже нарисованной библиотекой страницы. */
/* Фидбэк владельца: серый холст вокруг страницы (по образцу Google Docs) — сам
   Word так не показывает документ (белый лист без подложки). Раз цель «один в
   один с Word» — держим фон белым, без холста, именно для этого режима. */
/* overflow-x:auto + align-items:flex-start — тот же фикс, что у «Заполнить»
   (#arc-docx-edit): широкий landscape-бланк («Инициативы трейдера») шире вьюера,
   при center его левый край (столбец «№») уходит в недостижимый скролл. flex-start
   прижимает к левому краю → «№» виден, остальное прокручивается вправо. */
#refdoc-viewer .refdoc-view__body--original{ display:flex; justify-content:center; overflow-x:auto; background:#fff!important; }
[data-theme="dark"] #refdoc-viewer .refdoc-view__body--original{ background:#fff!important; }
#refdoc-viewer .refdoc-view__body--original .docx-preview-wrapper{ background:transparent; padding:0; align-items:flex-start!important; }
/* НАЙДЕНА реальная причина «не докручивается до конца» (владелец, «Стандарт»/
   «Обязанности») — у docx-preview в СОБСТВЕННОМ инжектируемом <style> секция
   страницы (section.${className}) жёстко получает overflow:hidden. Документы
   БЕЗ ручных разрывов страниц (обычная проза — Word сам считает переносы при
   печати, вручную их не расставляют) рендерятся ОДНОЙ секцией с min-height на
   одну «страницу» — всё, что не влезло в эту высоту, обрезалось overflow:hidden
   самой секции, а не скроллилось внешним контейнером. Возвращаем visible —
   пусть контент выходит за пределы «страницы», скроллит уже внешний .refdoc-view__body. */
/* Фидбэк владельца: тень/рамка (box-shadow) вокруг section.docx-preview рисовала
   границу ОДНОЙ Word-страницы — теперь, когда контент течёт одним потоком поверх
   overflow:visible (см. выше), эта тень обрамляет только верхнюю часть документа
   высотой в одну страницу, а остальной текст течёт ниже БЕЗ рамки — выглядит как
   случайный обрезанный прямоугольник. Убрана совсем — без неё цельно, без разрыва. */
#refdoc-viewer .refdoc-view__body--original .docx-preview-wrapper>section.docx-preview{
  overflow:visible!important; box-shadow:none!important;
}

/* ── Тот же вид «страницы» — редактор бланков «Шаблонов» (правка пула
   2026-07-06, #9-уточнение: «ВСЕ ДОКУМЕНТЫ ОТКРЫВАЛИСЬ КАК WORD», как справочные
   документы). Скоуп строго на #archive-doc-modal — .ql-editor внутри уже была
   белой «страницей» с тенью, но её окружение (модалка/шапка/тулбар) оставалось
   обычным стеклянным стилем, отсюда визуальный разнобой. */
#archive-doc-modal.overlay{background:var(--grey-200,#e8edf5)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
[data-theme="dark"] #archive-doc-modal.overlay{background:#22262c!important}
#archive-doc-modal .modal.modal--wide{
  background:#fff!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  border:1px solid var(--grey-200,#e1e4e8)!important;
  box-shadow:0 1px 3px rgba(20,30,50,.12),0 10px 34px -8px rgba(20,30,50,.3)!important;
}
[data-theme="dark"] #archive-doc-modal .modal.modal--wide{background:#fff!important;border-color:#dfe1e5!important}
#archive-doc-modal .fv-head{background:#fff;border-bottom:1px solid var(--grey-200,#e1e4e8)}
#archive-doc-modal #arc-modal-title,#archive-doc-modal #arc-title{color:#1f1f1f!important}
#archive-doc-modal #arc-modal-sub{color:var(--grey-600,#6b7280)!important}
#archive-doc-modal #arc-toolbar{background:#fff!important;border-bottom:1px solid var(--grey-200,#e1e4e8)}
#archive-doc-modal #arc-quill{background:var(--grey-200,#e8edf5)!important;padding:32px 0}
[data-theme="dark"] #archive-doc-modal #arc-quill{background:#2b2e33!important}

/* ── Заполнение бланка В ТОМ ЖЕ виде, что «Показать шаблон» (docx-preview),
   вместо Quill — правка владельца 2026-07-06. #arc-docx-edit — тот же холст +
   страница, что #refdoc-viewer .refdoc-view__body--original (см. выше), плюс
   визуальная подсказка «сюда можно печатать», когда доступно редактирование. */
#archive-doc-modal #arc-docx-edit{
  /* min-height:0 — тот же флексбокс-фикс, что у #refdoc-viewer .refdoc-view__body выше.
     overflow-x:auto — широкий landscape-бланк (8 колонок, «Инициативы трейдера») шире
     модалки; без прокрутки по X крайний левый столбец «№» недостижим. */
  background:#fff!important;padding:32px 0;overflow-y:auto;overflow-x:auto;
  flex:1 1 auto;min-height:0;display:flex;justify-content:center;max-height:68vh;
}
/* Фидбэк владельца: серый холст (Google Docs style) убран — Word показывает
   белый лист без подложки, а цель тут «один в один с Word». */
[data-theme="dark"] #archive-doc-modal #arc-docx-edit{background:#fff!important}
/* align-items:flex-start перебивает СОБСТВЕННЫЙ align-items:center из инжектируемого
   <style> docx-preview (.docx-preview-wrapper — flex-column): при center широкая
   section центрируется по кросс-оси, её левый край уходит в НЕДОСТИЖИМЫЙ отрицательный
   скролл (не докрутить до столбца «№»). flex-start прижимает к левому краю → «№»
   виден на скролле=0, остальное прокручивается вправо (надёжно, в отличие от safe
   center — тот ломал клики). */
#archive-doc-modal #arc-docx-edit .docx-preview-wrapper{background:transparent!important;padding:0!important;align-items:flex-start!important}
/* См. подробный комментарий у #refdoc-viewer — тот же overflow:hidden-баг
   в собственном <style> docx-preview, тот же фикс. */
/* Тот же фикс, что у #refdoc-viewer выше — box-shadow обрамляла бы только
   первую «страницу» высотой, остальной текст без рамки — убрана совсем. */
#archive-doc-modal #arc-docx-edit .docx-preview-wrapper>section.docx-preview{
  overflow:visible!important; box-shadow:none!important;
}
#archive-doc-modal #arc-docx-edit.arc-docx-edit--editable .docx-preview-wrapper>section.docx-preview{
  outline:2px solid transparent;transition:outline-color .15s var(--ease);cursor:text;
}
#archive-doc-modal #arc-docx-edit.arc-docx-edit--editable .docx-preview-wrapper>section.docx-preview:focus-within{
  outline-color:var(--blue-500,#3b82f6);
}

/* ═══════════════════════════════════════════════════════════════════════
   ░░░  v19 — ПРЕМИУМ-ПРОХОД МАСТЕРА (подтянуть к виджету)  ░░░
   Спокойнее, просторнее, чище — В РАМКАХ стеклянного шелла, без реискина.
   Всё scoped на #master-screen: трейдера не трогаем. Синий акцент сохранён.
   Специфичность id (#master-screen) + !important перебивает глас-слой v10.
   ═══════════════════════════════════════════════════════════════════════ */
/* Сетка папок — больше воздуха, ровный ритм */
#master-screen .card-grid--folders{grid-template-columns:repeat(auto-fill,minmax(266px,1fr))!important;gap:18px!important}
/* Карточка-папка: просторнее, спокойный премиум-ховер (без «прыжка» и scale) */
#master-screen .folder-card{padding:22px!important;gap:16px!important;border-radius:18px!important;box-shadow:0 1px 2px rgba(20,38,76,.04),0 10px 26px -18px rgba(20,38,76,.30)!important}
#master-screen .folder-card:hover{transform:translateY(-2px)!important;border-color:rgba(91,138,208,.45)!important;box-shadow:0 2px 5px rgba(20,38,76,.06),0 18px 38px -20px rgba(20,38,76,.42)!important}
#master-screen .folder-card:active{transform:translateY(0)!important}
/* Иконка-чип: мягче, крупнее, спокойный ховер (без вращения/увеличения) */
#master-screen .folder-ico{width:44px!important;height:44px!important;border-radius:13px!important;background:rgba(46,95,163,.10)!important;color:var(--c-accent,#2E5FA3)!important}
#master-screen .folder-card:hover .folder-ico{transform:none!important;background:rgba(46,95,163,.15)!important;color:var(--c-accent,#2E5FA3)!important}
/* Название/описание/подвал: типографика + хайрлайн-разделитель перед подвалом */
#master-screen .folder-card__name{font-size:15px!important;letter-spacing:-.01em}
#master-screen .folder-card__desc{font-size:12.5px!important;margin-top:5px!important;line-height:1.55}
#master-screen .folder-card__foot{padding-top:14px;border-top:1px solid var(--c-hair,rgba(20,38,76,.09))}
#master-screen .folder-card__go{color:var(--c-accent,var(--blue-600))!important}
/* Крошки — крупнее, просторнее */
#master-screen .mon-crumb{margin-bottom:18px;font-size:14px}
/* Документ-карточка: больше воздуха, мягче */
#master-screen .master-doc-card{padding:22px 24px!important;border-radius:18px!important}
#master-screen .master-doc-card__meta{margin-bottom:14px!important;gap:10px!important}
#master-screen .mon-docs{gap:14px}
/* Владелец: карточки Инцидентов/Решений выглядели «криво» рядом с папками/
   документами того же экрана — этот блок их пропустил при premium-проходе
   (16px радиус от общего .master-card, паддинг 15/18 и 13/16 вместо 22/24).
   Выравниваем на те же токены, что folder-card/master-doc-card выше. */

#master-screen .master-inc{border-radius:18px!important;padding:18px 20px!important}
/* Пилюли-фильтр висели впритык к первой карточке (0px отступа) — единый
   отступ под шапкой месяца во всех 4 разделах, что используют этот фильтр. */
.mon-inc-filter{margin-bottom:14px}
/* Тёмная тема: тени под фон шелла (навигация rgba(0,0,0)) */
[data-theme="dark"] #master-screen .folder-card{box-shadow:0 2px 8px rgba(0,0,0,.24),0 14px 32px -20px rgba(0,0,0,.5)!important}
[data-theme="dark"] #master-screen .folder-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.3),0 22px 42px -22px rgba(0,0,0,.6)!important}
[data-theme="dark"] #master-screen .folder-ico{background:rgba(120,160,230,.16)!important;color:var(--c-accent)!important}

/* ═══════════════════════════════════════════════════════════════════════
   ░░░  v20 — рейка: ровный ритм + FOUNDER в палитре + стильные штрихи  ░░░
   Фидбэк: «расстояния на сайдбаре странно выстроены», «FOUNDER в палитре»,
   «проработай всё чтобы стильнее». Синий акцент, scoped на мастера.
   ═══════════════════════════════════════════════════════════════════════ */
/* Ровный вертикальный ритм рейки мастера (было: смесь gap 3/6/8 + разные margin) */
.rail.master-rail{gap:7px!important;padding:16px 0 14px!important}
.master-rail .rail__brandrole{margin:3px 0 11px!important}
.master-rail .rail__nav{gap:6px!important}
.master-rail .rail__div{margin:9px 0!important;width:38px!important}
.master-rail .rail__foot{gap:14px!important;padding-top:12px!important}
/* FOUNDER — в фирменной палитре (синий accent-strong), как пилюля роли «РУК.», не золото */
.rail__brandrole{color:var(--c-accent-strong)!important;font-size:9px!important;letter-spacing:.16em!important}
/* Крошки-ссылки — аккуратный ховер */
#master-screen .mon-crumb__link:hover{color:var(--c-accent-strong,var(--c-accent))!important}
/* Активная иконка рейки — чуть заметнее и чище (стильный премиум-акцент) */
#master-screen .master-nav-i.active{box-shadow:inset 0 0 0 1px var(--c-accent-line,rgba(46,95,163,.28))!important}
/* Шапка мастера — крупнее/просторнее заголовок */
#master-screen .master-header{padding:18px 28px!important}
#master-screen .master-header__title{font-size:20px!important;letter-spacing:-.01em}

/* «Разобрать в чате» — кнопка теперь в #md-actions (шапка модалки, см. .fv-head__actions
   выше), не здесь. Выбор папки в полосе «Завершить» — синий акцент. */
.master-resolve-bar__btns{display:flex;gap:8px;flex-wrap:wrap}

/* ═══════════════════════════════════════════════════════════════════════
   ░░░  v21 — ПРЕМИУМ-ПРОХОД: СЕТКА ВМЕСТО УЗКОЙ КОЛОНКИ + УБРАН ШУМ  ░░░
   Фидбэк владельца («сделай ещё премиальней, на высшем уровне»): Блокнот/
   Документы трейдера у мастера были одной узкой колонкой карточек в пустом
   широком экране (структурная проблема, не только визуальная) — карточка
   документа иногда почти пустая. Решение: .master-grid (responsive card-grid,
   тот же принцип repeat(auto-fill,...), что и .card-grid--folders), карточки
   внутри — .master-card--grid с clamp-превью (не голое «пусто») + подвал со
   счётчиком/датой. Тот же язык дизайна, что у трейдера — токены --c-*, никакой
   новой палитры. Side-stripe border-left у инцидентов/анализа журнала убран
   выше (дублировал уже существующие цветные бейджи с текстом — редундантный
   визуальный шум, не два разных сигнала).
   ═══════════════════════════════════════════════════════════════════════ */
.master-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.master-card--grid{display:flex!important;flex-direction:column;margin-bottom:0!important}
.master-card--grid .master-card__h{justify-content:space-between;margin-bottom:11px!important}
.master-card__preview{color:var(--c-ink-muted);font-size:12.5px;line-height:1.55;flex:1;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.master-card__empty{color:var(--c-ink-faint);font-style:italic}
.master-card__foot{display:flex;align-items:center;justify-content:space-between;gap:8px;
  margin-top:12px;padding-top:11px;border-top:1px solid var(--c-hair)}
.master-card__cnt{font-size:11px;font-weight:600;color:var(--c-ink-faint)}
.master-card__badge{flex:0 0 auto;font-size:10px;font-weight:700;text-transform:uppercase;
  letter-spacing:.04em;padding:3px 9px;border-radius:999px;white-space:nowrap}
.master-card__badge--ok{background:var(--success-bg)!important;color:var(--success)!important}
.master-card__badge--info{background:var(--blue-100)!important;color:var(--blue-700)!important}
/* Фикс аудита экспорта: карточка расшифровки со статусом "failed" (masterRenderTranscripts). */
.master-card__badge--err{background:var(--danger-bg)!important;color:var(--danger)!important}

/* ═══ Блокнот мастера: тулбар (фильтр+вид) + список-вид ═══════════════════
   Фидбэк владельца: блокнот должен сортироваться и сеткой (было), и плоским
   вертикальным списком, с фильтрами (правки/категория). Тулбар — тот же
   визуальный язык, что .journal-filters (пилюли+select), переключатель вида —
   .icon-btn с новым .active-состоянием (раньше нигде не требовалось). */
.notes-toolbar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:0 0 16px}
.notes-view-toggle{display:flex;gap:3px;margin-left:auto;padding:3px;border-radius:12px;
  background:var(--c-glass-solid,var(--grey-100));border:0.5px solid var(--c-glass-brd,var(--grey-250))}
.icon-btn.active{background:var(--c-accent-soft)!important;color:var(--c-accent-strong)!important}
.notes-list{display:flex;flex-direction:column;gap:6px}
.notes-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 16px;
  border-radius:var(--radius-lg,14px);background:var(--c-glass-solid,#fff);
  border:0.5px solid var(--c-glass-brd,var(--grey-250));cursor:pointer;
  transition:transform .16s var(--ease),border-color .16s var(--ease),box-shadow .16s var(--ease)}
.notes-row:hover{transform:translateY(-1px);border-color:var(--c-accent-line,rgba(46,95,163,.25))}
.notes-row__main{display:flex;align-items:center;gap:10px;min-width:0;flex:1}
.notes-row__title{font-weight:600;color:var(--c-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.notes-row__cat{flex:0 0 auto;font-size:12px;color:var(--c-ink-muted)}
.notes-row__date{flex:0 0 auto;font-size:12px;color:var(--c-ink-faint)}
/* Пустой список (масштаб «на высшем уровне»): центрированный крупный блок вместо
   голой серой строки. НЕ трогает .master-empty--sm (компактный инлайн-вариант
   внутри карточки инцидента — там принудительный min-height сломал бы разметку). */
.master-empty:not(.master-empty--sm){display:flex;align-items:center;justify-content:center;
  gap:10px;min-height:120px;color:var(--c-ink-faint);font-size:13.5px;text-align:center}
/* Карточка при наведении/фокусе — единый лёгкий подъём (соответствует .folder-card
   в v19 выше, тот же премиум-язык hover без «прыжка»/scale) */
.master-card--grid.master-drill{transition:transform .16s var(--ease),border-color .16s var(--ease),box-shadow .16s var(--ease)!important}
.master-card--grid.master-drill:hover{transform:translateY(-2px)!important}
/* Чаты трейдера (список слева): единый акцент активной строки + мягкий ховер,
   тот же .rail-подобный язык, что у чат-дерева мастер-инбокса (.chat-row). */
.master-li{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;transition:background-color .14s var(--ease),color .14s var(--ease)}
.master-li:hover{background:var(--c-surface-h)!important}
.master-li.active{background:var(--c-accent-soft)!important;color:var(--c-accent-strong)!important;font-weight:600}
.master-li__title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.master-li__time{flex:0 0 auto;font-size:11px;color:var(--grey-400)}
/* Найдено попутно: .master-li — жёсткий background:#fff (строка ~365) без
   тёмной темы, тот же паттерн, что уже чинили в прошлых UX-раундах. */
[data-theme="dark"] .master-li{background:var(--c-glass-solid)!important;border-color:var(--c-glass-brd)!important}

/* Жалоба владельца: пилюли подвкладок «Журнал/Блокнот/Чаты/Документы» выглядели
   "криво" относительно заголовка «Трейдер» — причина: .master-header{align-items:
   center} центрировал ОДНОСТРОЧНЫЕ пилюли против ДВУХСТРОЧНОГО блока крошка+
   заголовок — пилюли повисали где-то в середине, не пришитые ни к верху, ни к
   базовой линии заголовка. Фикс: заголовок+пикер трейдера — первая строка (через
   order, без правки HTML), подвкладки-пилюли — вторая строка на всю ширину, чётко
   под заголовком, а не сбоку от него на непонятной высоте. */
#master-screen .master-header{align-items:flex-start!important}
#master-screen .master-header__lead{order:1}
#master-screen .master__pick{order:2;margin-top:1px}
#master-screen .master-subnav{order:3;flex-basis:100%;margin-top:14px}

/* «Разобрать в чате» — иконкой везде, не текстом (владелец: компактнее, единый
   язык). Класс держит форму (квадратная кнопка под один SVG), цвет/hover уже
   даёт .btn--primary из «единой кнопки» v17 выше — не дублируем. */
.btn--icon-sq{width:35px!important;padding:0!important;gap:0!important}
.btn--icon-sq svg{flex:0 0 auto}

/* ═══ Журнал: вкладки (задача #30, Excel-паритет) ══════════════════════
   .journal-tabs переиспользует .admin__tabs/.admin-tab (уже полностью
   стилизованы, включая тёмную тему) — здесь только контекстный отступ. */
.journal-tabs{margin:0 0 16px;padding:0 0 0!important;border-bottom-color:var(--c-hair,var(--grey-200))!important;background:none!important}

/* Контроль решений — подсказки из ошибок журнала (владелец: «авто из ошибок
   журнала + доработка»), список записей (переиспользует .master-card/
   .master-doc-card__foot/.master-doc-card__body--collapsed — тот же язык,
   что Решения в Мониторе), форма — .trade-row/.trade-input (тот же язык,
   что редактор сделки). */
.dc-toolbar{display:flex;justify-content:flex-end;margin:0 0 14px}
/* Подсказки «из ошибок журнала» (свежие сделки с ошибкой) — Excel-паритет KR */
.dc-sugg{border:1px dashed var(--c-glass-brd,var(--grey-300));border-radius:var(--radius-lg,12px);padding:11px 13px;margin:0 0 14px;background:var(--c-accent-soft,rgba(46,95,163,.06))}
.dc-sugg__h{font-size:12px;font-weight:700;color:var(--c-ink-strong,var(--navy-900));margin-bottom:8px}
.dc-sugg__row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:5px 0;border-top:1px solid var(--c-glass-brd,var(--grey-200))}
.dc-sugg__row:first-of-type{border-top:none}
.dc-sugg__ctx{flex:1 1 auto;min-width:0;font-size:12.5px;color:var(--c-ink,var(--grey-700))}
/* «Разбор текстов» — библиотека разборов (правка владельца 07.07) */
.reader-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:16px}
.reader-list{display:flex;flex-direction:column;gap:9px}
.reader-card{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--c-glass-brd,var(--grey-250));border-radius:var(--radius-lg,12px);background:var(--c-glass-solid,#fff);cursor:pointer;transition:background .14s var(--ease),border-color .14s var(--ease)}
.reader-card:hover{background:var(--c-surface-h,var(--grey-100));border-color:var(--c-accent-line,var(--blue-300))}
.reader-card__ico{flex:0 0 auto;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:9px;background:var(--c-accent-soft,var(--blue-50));color:var(--c-accent,var(--blue-600))}
.reader-card__body{flex:1 1 auto;min-width:0}
.reader-card__title{font-size:13.5px;font-weight:600;color:var(--c-ink-strong,var(--navy-900));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.reader-card__meta{font-size:11.5px;color:var(--c-muted,var(--grey-400));margin-top:2px}
[data-theme="dark"] .reader-card{background:var(--c-glass-solid,#16213a);border-color:var(--c-glass-brd,rgba(255,255,255,.12))}
/* ── Reader-контекст сайдбара («Разбор текстов» = своё пространство чата) ── */
/* В reader-режиме скрываем ассистентские «Новый чат» и «Категории чатов», показываем блок разбора. */
.reader-side{display:none}
.chat-history--reader #new-chat{display:none}
.chat-history--reader .chat-history__label{display:none}
.chat-history--reader .reader-side{display:flex;flex-direction:column;gap:9px;margin-bottom:4px}
.reader-side__video{display:flex;flex-direction:column;gap:8px;padding:10px;border:1px solid var(--c-glass-brd,var(--grey-250));border-radius:var(--radius-lg,12px);background:var(--c-surface,var(--grey-50))}
[data-theme="dark"] .reader-side__video{background:rgba(255,255,255,.03);border-color:var(--c-glass-brd,rgba(255,255,255,.10))}
.reader-video__input{width:100%;min-width:0;padding:9px 12px;font-size:13px;border:1px solid var(--c-glass-brd,var(--grey-250));border-radius:var(--radius-md,10px);background:var(--c-glass-solid,#fff);color:var(--c-ink-strong,var(--navy-900))}
.reader-video__input:focus{outline:none;border-color:var(--c-accent,var(--blue-500))}
.reader-video__status{font-size:11.5px;color:var(--c-muted,var(--grey-400));line-height:1.35}
[data-theme="dark"] .reader-video__input{background:var(--c-glass-solid,#16213a);border-color:var(--c-glass-brd,rgba(255,255,255,.12))}

/* Тумблер-переключатель (iOS-стиль) для «Разбирать кадры» */
.switch{display:flex;align-items:center;gap:9px;cursor:pointer;user-select:none;font-size:12px;color:var(--c-ink,var(--navy-700));line-height:1.3}
.switch input{position:absolute;opacity:0;width:0;height:0}
.switch__track{position:relative;flex:0 0 auto;width:36px;height:20px;border-radius:999px;background:var(--c-glass-brd,var(--grey-300));transition:background .18s var(--ease,ease)}
.switch__thumb{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .18s var(--ease,ease)}
.switch input:checked + .switch__track{background:var(--c-accent,var(--blue-500))}
.switch input:checked + .switch__track .switch__thumb{transform:translateX(16px)}
.switch input:focus-visible + .switch__track{box-shadow:0 0 0 3px var(--c-accent-soft,rgba(59,130,246,.35))}
.switch__label{flex:1 1 auto}
[data-theme="dark"] .switch__track{background:rgba(255,255,255,.18)}
.dc-card__head{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin-bottom:11px;font-size:12.5px}
.dc-card__num{font-weight:700;color:var(--c-ink-faint)}
.dc-card__asset{font-weight:600;color:var(--c-ink-strong)}
.dc-card__status{flex:0 0 auto;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;
  padding:3px 9px;border-radius:999px;white-space:nowrap;margin-left:auto}
.dc-card__status--not_started{background:var(--grey-100);color:var(--grey-600)}
.dc-card__status--in_progress{background:var(--blue-100);color:var(--blue-700)}
.dc-card__status--reproduced{background:var(--warning-bg);color:var(--warning)}
.dc-card__status--paused{background:var(--grey-100);color:var(--grey-500)}
.dc-card__status--cancelled{background:var(--danger-bg);color:var(--danger)}
.dc-card__closed{flex:0 0 100%;font-size:11.5px;color:var(--c-ink-faint)}
.dc-card__sol{margin-top:10px;font-size:13px;line-height:1.6;color:var(--c-ink)}
.dc-card__sol div{margin-top:4px}
.dc-card__foot{flex-direction:row!important;align-items:center;flex-wrap:wrap;gap:10px!important}
.dc-card__meta{font-size:12px;color:var(--c-ink-muted);margin-right:auto}

/* ═══ Вход CEO — премиальная анимация, золотая (задача #33) ══════════════
   Та же хореография, что у общего #intro-preloader (подбор хеша → искра
   обходит контур буквы → вспышка → эмблема → wordmark) — владелец прямо
   попросил переиспользовать этот вариант, не изобретать новый. Отличия:
   золотая палитра вместо ледяной сине-белой + подпись CEO вместо тега
   Jupiter Control — единственная точка входа, где это уместно (руководитель).
   Один раз за сессию — см. jucon_master_intro_seen в app.js. */
.master-intro{position:fixed;inset:0;z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;
  background:radial-gradient(120% 90% at 50% 50%,#10203c 0%,#0A1220 60%,#070d18 100%);
  opacity:1;transition:opacity 1s cubic-bezier(.22,.61,.36,1),transform 1.1s cubic-bezier(.22,.61,.36,1),visibility 1s}
.master-intro.master-intro--done{opacity:0;transform:translateY(-22px) scale(.985);visibility:hidden;pointer-events:none}
.master-intro__aura{position:absolute;inset:-20%;z-index:0;pointer-events:none;filter:blur(80px);opacity:.55}
.master-intro__aura b{position:absolute;border-radius:50%;display:block}
.master-intro__aura .a{width:46vw;height:46vw;left:8%;top:6%;background:radial-gradient(circle,rgba(46,95,163,.5),transparent 65%);animation:intro-drift 16s cubic-bezier(.22,.61,.36,1) infinite alternate}
.master-intro__aura .b{width:40vw;height:40vw;right:6%;bottom:8%;background:radial-gradient(circle,rgba(124,111,240,.35),transparent 65%);animation:intro-drift2 19s cubic-bezier(.22,.61,.36,1) infinite alternate}
.master-intro__aura .c{width:34vw;height:34vw;left:40%;bottom:0;background:radial-gradient(circle,rgba(45,212,191,.22),transparent 65%);animation:intro-drift 22s cubic-bezier(.22,.61,.36,1) infinite alternate}
.master-intro__stage{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center}
.master-intro__markwrap{position:relative;width:148px;height:148px;display:flex;align-items:center;justify-content:center}
.master-intro__glyph-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.master-intro__outline{stroke:rgba(212,168,88,.4);stroke-width:2.4;fill:none}
.master-intro__spark{stroke:#fff3d6;stroke-width:3;fill:none;filter:drop-shadow(0 0 5px rgba(240,210,140,.95));opacity:0}
.master-intro__final{fill:url(#masterIntroHotgrad);opacity:0;
  filter:drop-shadow(0 0 2px rgba(255,255,255,.9)) drop-shadow(0 0 8px rgba(240,210,140,.85)) drop-shadow(0 0 18px rgba(200,155,60,.65)) drop-shadow(0 0 34px rgba(150,110,30,.4))}
.master-intro__hash{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:'IBM Plex Mono',monospace;font-size:14px;font-weight:600;letter-spacing:.06em;color:#f3e2b0;text-shadow:0 0 10px rgba(220,180,90,.85)}
.master-intro__flash{position:absolute;inset:-40px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.95),rgba(255,255,255,0) 60%);opacity:0;pointer-events:none}
.master-intro__word{margin-top:-15px;font-size:30px;font-weight:700;letter-spacing:.34em;padding-left:.34em;color:#e3c878;opacity:0;transform:translateY(8px);
  transition:opacity .5s cubic-bezier(.22,.61,.36,1),transform .5s cubic-bezier(.22,.61,.36,1)}
.master-intro__tag{margin-top:9px;font-size:12.5px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:#d4af37;opacity:0;transform:translateY(8px);
  transition:opacity .5s cubic-bezier(.22,.61,.36,1) .08s,transform .5s cubic-bezier(.22,.61,.36,1) .08s}
.master-intro__word.show,.master-intro__tag.show{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.master-intro{display:none!important}}

/* Приветственный greeting — раньше модальный оверлей поверх экрана (владелец:
   «отвратительно, должно быть как у Claude»), убран целиком. Greeting теперь
   встроен прямо в пустое состояние чата (.empty-state__eyebrow/__title, см.
   ниже) и в лендинг «Разбор с ассистентом» (.master-hero, masterRenderInboxLanding) —
   заголовок+инпут сразу на экране, а не всплывающая карточка. */

/* Звук интерфейса (задача #33) — по умолчанию выключен (офисная среда),
   иконка отражает состояние: перечёркнутый/обычный динамик. */
.sound-toggle__on{display:none}
#sound-toggle[aria-pressed="true"] .sound-toggle__on,
#master-sound-toggle[aria-pressed="true"] .sound-toggle__on{display:inline}
#sound-toggle[aria-pressed="true"] .sound-toggle__off,
#master-sound-toggle[aria-pressed="true"] .sound-toggle__off{display:none}

/* Действия под сообщением чата — иконки вместо текстовых подписей (владелец:
   «как у Клод», tooltip на hover через title/aria-label уже на кнопке).
   Финальное правило (конец каскада) — сбрасывает цветные градиенты
   .msg-act--journal/--note/--dis, накопленные для прежних текстовых кнопок. */
.msg__actions .msg-act{
  height:28px!important;width:28px!important;padding:0!important;
  display:inline-flex!important;align-items:center;justify-content:center;
  background:transparent!important;border:1px solid transparent!important;
  color:var(--c-ink-faint)!important;box-shadow:none!important;
}
.msg__actions .msg-act:hover{
  background:var(--c-surface-h)!important;color:var(--c-ink-strong)!important;
  border-color:var(--c-hair)!important;transform:none!important;
}
.msg__actions .msg-act svg{display:block}


/* ═══ Архив документов (бланки + заполненные копии, задача: чат/архив 2026-07-04) ═══ */
.arc-modal{max-width:min(940px,96vw);display:flex;flex-direction:column;max-height:92vh}
.arc-readonly-banner{background:var(--blue-50);color:var(--blue-600);border-radius:var(--radius);padding:8px 14px;font-size:12.5px;margin:0 0 10px}
[data-theme="dark"] .arc-readonly-banner{background:var(--c-glass-solid)!important;color:var(--c-ink)!important}
#archive-doc-modal #arc-title{padding:0;margin:0 0 10px;border:none;border-bottom:1px solid var(--line-soft);border-radius:0;font-size:22px;font-weight:650}
#archive-doc-modal #arc-title:disabled{opacity:.7;background:transparent}
#arc-toolbar.ql-toolbar{border:none;padding:6px 0 10px}
#arc-toolbar{display:flex;align-items:center;gap:5px;flex-wrap:wrap;border-bottom:1px solid var(--line-soft)}
#arc-toolbar button{width:30px;height:30px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;color:var(--grey-700);padding:0;float:none;transition:all .14s var(--ease)}
#arc-toolbar button:hover{background:var(--grey-100);color:var(--navy-900)}
#arc-toolbar button.ql-active{background:var(--blue-100);color:var(--blue-600)}
/* Правка по фидбэку владельца (2026-07-05): «заполнение выглядит как тупой
   редактор» — раньше не было даже размеров заголовков (h1/h2 рендерились как
   обычный текст) и высота была зажата (52vh). Подтягиваем типографику к
   #nb-quill («Мой блокнот») + читаемая ширина строки (не на всю ширину модалки —
   так выглядит «как документ», а не как голое textarea).*/
#arc-quill{margin:0;padding:0;width:100%;overflow-y:auto;flex:1 1 auto;background:var(--surface-2,var(--grey-100));border-radius:var(--radius-lg)}
#arc-quill .ql-container{border:none;font-size:15.5px;font-family:inherit}
#arc-quill .ql-editor{max-width:720px;margin:0 auto;padding:22px 26px 40px;min-height:320px;max-height:68vh;line-height:1.8;color:var(--ink);background:var(--c-surface,#fff);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft)}
#arc-quill .ql-editor.ql-blank::before{left:26px;color:var(--grey-400);font-style:normal}
#arc-quill .ql-editor h1{font-size:26px;line-height:1.3;letter-spacing:-.01em;color:var(--navy-900);margin-top:0}
#arc-quill .ql-editor h2{font-size:20px;line-height:1.35;color:var(--navy-900)}
#arc-quill .ql-editor blockquote{border-left:3px solid var(--blue-500);background:var(--blue-50);padding:8px 14px;color:var(--grey-700);border-radius:0 8px 8px 0;margin:.7em 0}
[data-theme="dark"] #arc-quill{background:var(--c-surface-2)!important}
[data-theme="dark"] #arc-quill .ql-editor{background:var(--c-glass-solid)!important;color:var(--c-ink)!important}
[data-theme="dark"] #arc-quill .ql-editor h1,[data-theme="dark"] #arc-quill .ql-editor h2{color:var(--c-ink-strong)!important}
[data-theme="dark"] #arc-quill .ql-editor blockquote{background:var(--c-surface-2)!important;color:var(--c-ink-muted)!important;border-left-color:var(--c-accent)!important}
[data-theme="dark"] #arc-quill .ql-editor.ql-blank::before{color:var(--c-ink-faint)!important}
[data-theme="dark"] #arc-toolbar button{color:var(--c-ink)!important}
@media (max-width:760px){#arc-quill .ql-editor{max-width:none;padding:16px 16px 32px}}
.arc-tpl-card{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.arc-tpl-card__title{font-size:14px;font-weight:600;color:var(--ink)}
.arc-tpl-card__foot{display:flex;gap:8px;flex-wrap:wrap}
/* «Встреча 8»: карточки бланка в «Истории документов» — заполненные кликабельны
   (ведут прямо в docx-историю), незаполненные — просто информативная плашка. */
.arc-tpl-card__sub{font-size:12px;color:var(--grey-600)}
.arc-tpl-card[data-open-hist]{cursor:pointer;transition:border-color .14s var(--ease),background .14s var(--ease)}
.arc-tpl-card[data-open-hist]:hover{border-color:var(--blue-500);background:var(--blue-50)}
.arc-tpl-card--empty{opacity:.6}
[data-theme="dark"] .arc-tpl-card[data-open-hist]:hover{background:var(--c-surface-h)!important;border-color:var(--c-accent)!important}
[data-theme="dark"] .arc-tpl-card__sub{color:var(--c-ink-faint)!important}
.arc-tpl-list{display:flex;flex-direction:column;gap:10px}
.arc-owner-group{display:flex;flex-direction:column;gap:8px}
.arc-owner-group__h{font-size:12px;font-weight:650;color:var(--c-ink-muted,var(--grey-600));text-transform:uppercase;letter-spacing:.02em}
.refdoc-chip--deleted{opacity:.6}

/* История версий архив-документа (встреча №7) */
.arc-hist__body{display:flex;gap:16px;flex:1 1 auto;min-height:340px;max-height:56vh}
.arc-hist__list{flex:0 0 220px;display:flex;flex-direction:column;gap:6px;overflow-y:auto;padding-right:6px;border-right:1px solid var(--line-soft)}
.arc-hist__row{display:flex;flex-direction:column;gap:2px;text-align:left;padding:9px 11px;border-radius:var(--radius);border:1px solid transparent;background:transparent;cursor:pointer;font-family:inherit;transition:all .14s var(--ease)}
.arc-hist__row:hover{background:var(--grey-100)}
.arc-hist__row.active{background:var(--blue-50);border-color:var(--blue-500)}
.arc-hist__row-label{font-size:13px;font-weight:600;color:var(--ink)}
.arc-hist__row-date{font-size:11.5px;color:var(--grey-600)}
.arc-hist__view{flex:1 1 auto;overflow-y:auto;padding:2px 4px 2px 6px;font-size:14.5px;line-height:1.7;color:var(--ink)}
/* Заполненная версия с сохранённым docx-preview-рендером (маркер docx-preview-wrapper,
   см. openArchiveDocHistory) — рисуем «страницей Word», тот же приём, что #arc-docx-edit:
   белый холст, overflow-x:auto (широкие landscape-бланки), align-items:flex-start (см.
   комментарий у #arc-docx-edit — safe center ломает клики/скролл до столбца «№»). Раньше
   История показывала тот же HTML плоским текстом «на стекле» — жалоба владельца. */
.arc-hist__view--docx{
  background:#fff!important;padding:32px 0;overflow-x:auto;
  display:flex;justify-content:center;
}
[data-theme="dark"] .arc-hist__view--docx{background:#fff!important}
.arc-hist__view--docx .docx-preview-wrapper{background:transparent!important;padding:0!important;align-items:flex-start!important}
.arc-hist__view--docx .docx-preview-wrapper>section.docx-preview{overflow:visible!important;box-shadow:none!important}
[data-theme="dark"] .arc-hist__row.active{background:var(--c-glass-solid)!important;border-color:var(--c-accent)!important}
[data-theme="dark"] .arc-hist__row:hover{background:var(--c-surface-h)!important}
[data-theme="dark"] .arc-hist__row-label,[data-theme="dark"] .arc-hist__view{color:var(--c-ink)!important}
[data-theme="dark"] .arc-hist__row-date{color:var(--c-ink-faint)!important}

/* ── Примирение 2026-07-04: E2 карточки действий агента + E3 теги встречи ── */
.agent-act{max-width:760px;margin:10px auto 0;padding:14px 16px;background:var(--c-surface-2);
  border:1px solid var(--c-hair);border-radius:16px;}
.agent-act__title{font-weight:600;font-size:14px;color:var(--c-ink);margin-bottom:8px;}
.agent-act__preview{font-size:13px;color:var(--c-ink);background:var(--c-surface);
  border:1px solid var(--c-hair);border-radius:10px;padding:8px 10px;margin-bottom:10px;
  white-space:pre-wrap;max-height:180px;overflow:auto;}
.agent-act__btns{display:flex;gap:8px;align-items:center;}
.agent-act__done{font-size:13px;color:var(--c-pos);font-weight:600;}
/* Этап 2 «документы через чат»: Word-предпросмотр прямо в карточке действия
   агента — тот же приём «страницы Word», что и .arc-hist__view--docx/
   #arc-docx-edit (белый холст, docx-preview-wrapper прозрачный/без паддинга,
   секция без тени) — компактный, со своим скроллом, не растягивает чат. */
.agent-act__docprev{max-height:480px;overflow:auto;border:1px solid var(--c-hair);
  border-radius:10px;margin-bottom:10px;background:#fff!important;padding:20px 0;
  display:flex;justify-content:center;}
[data-theme="dark"] .agent-act__docprev{background:#fff!important}
.agent-act__docprev .docx-preview-wrapper{background:transparent!important;padding:0!important;align-items:flex-start!important}
.agent-act__docprev .docx-preview-wrapper>section.docx-preview{overflow:visible!important;box-shadow:none!important}
.agent-act__docprev--loading{display:flex;align-items:center;justify-content:center;
  min-height:120px;color:var(--c-ink-faint);font-size:13px;background:var(--c-surface)!important;}
.agent-act__btns--docprev{margin-top:2px;}
.agent-act__saved{font-size:13px;color:var(--c-pos);font-weight:600;}

.meet-tags{display:flex;gap:8px;align-items:center;margin:8px 0 12px;flex-wrap:wrap;}
.meet-tags__part{flex:1;min-width:200px;padding:7px 10px;border:1px solid var(--c-hair);
  border-radius:10px;background:var(--c-surface);color:var(--c-ink);font-size:13px;}
.meet-tags__date{padding:7px 10px;border:1px solid var(--c-hair);border-radius:10px;
  background:var(--c-surface);color:var(--c-ink);font-size:13px;}
.trans-item__meet{display:block;font-size:12px;color:var(--c-ink);opacity:.65;margin-top:2px;}

/* Приветствие ПО ЦЕНТРУ области сообщений (как у Claude) — только когда чат пуст.
   :has() срабатывает лишь при наличии #empty-state (после первого сообщения JS его
   удаляет → правило отключается, раскладка ленты не затрагивается). */
.chat__scroll:has(> #empty-state){display:flex;flex-direction:column;justify-content:center}
.chat__scroll > #empty-state.chat-empty{padding-top:0;padding-bottom:0;margin-top:-32px}

/* ═══ Помощь ИИ — плавающий помощник (справа снизу, как у Notion) ═══ */
.ai-fab{position:fixed;right:22px;bottom:22px;z-index:900;width:58px;height:58px;border:1px solid rgba(20,40,80,.08);
  border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(120% 120% at 30% 25%,#fff,#eef3fa);
  box-shadow:0 6px 18px -6px rgba(20,35,63,.30),0 2px 6px rgba(20,35,63,.12);
  transition:transform .16s cubic-bezier(.2,.7,.3,1),box-shadow .16s ease}
.ai-fab:hover{transform:translateY(-2px) scale(1.05);box-shadow:0 12px 28px -8px rgba(20,35,63,.36),0 3px 8px rgba(20,35,63,.16)}
.ai-fab:active{transform:scale(.95)}
.ai-fab__mark{width:32px;height:32px;display:block}
.ai-fab__spark{position:absolute;right:-2px;top:-2px;width:20px;height:20px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;color:#fff;
  background:linear-gradient(135deg,var(--blue-500),var(--blue-700));
  box-shadow:0 2px 6px rgba(20,35,63,.28),0 0 0 2px var(--surface)}
.ai-fab__tip{position:absolute;right:66px;top:50%;transform:translateY(-50%);white-space:nowrap;
  background:#152340;color:#fff;font-size:12.5px;padding:6px 11px;border-radius:8px;
  opacity:0;pointer-events:none;transition:opacity .14s ease;box-shadow:var(--shadow-soft)}
.ai-fab:hover .ai-fab__tip{opacity:1}
[data-theme="dark"] .ai-fab__tip{background:#0d1626;color:#fff;border:1px solid var(--c-hair)}
.ai-fab.ai-fab--hidden{display:none}

.ai-panel{position:fixed;right:22px;bottom:22px;z-index:901;width:390px;max-width:calc(100vw - 32px);
  height:560px;max-height:calc(100vh - 44px);display:flex;flex-direction:column;
  background:var(--surface);border:1px solid var(--grey-250);border-radius:20px;
  box-shadow:var(--shadow-pop);overflow:hidden;animation:aiPanelIn .18s ease}
@keyframes aiPanelIn{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
.ai-panel__head{display:flex;align-items:center;gap:11px;padding:14px 14px 13px;border-bottom:1px solid var(--line-soft);background:var(--surface-2)}
.ai-panel__mark{flex:0 0 auto;width:34px;height:34px;display:block}
.ai-panel__ttl{flex:1;min-width:0}
.ai-panel__name{font-weight:600;font-size:14.5px;color:var(--navy-900)}
.ai-panel__sub{font-size:11.5px;color:var(--grey-500);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ai-panel__x{flex:0 0 auto;appearance:none;border:none;background:transparent;color:var(--grey-500);font-size:15px;cursor:pointer;width:28px;height:28px;border-radius:8px;transition:background .12s}
.ai-panel__x:hover{background:var(--grey-100);color:var(--navy-900)}
.ai-panel__msgs{flex:1;min-height:0;overflow-y:auto;padding:16px 14px;display:flex;flex-direction:column;gap:12px}
.ai-panel__empty{margin:auto;text-align:center;color:var(--grey-500);font-size:13px;line-height:1.6;max-width:280px}
.ai-msg{max-width:86%;font-size:13.5px;line-height:1.55;border-radius:14px;padding:9px 12px;white-space:pre-wrap;word-break:break-word}
.ai-msg--user{align-self:flex-end;background:var(--blue-600);color:#fff;border-bottom-right-radius:5px}
.ai-msg--bot{align-self:flex-start;background:var(--grey-100);color:var(--ink);border-bottom-left-radius:5px}
.ai-msg--bot .thinking span{background:var(--grey-400)}
.ai-panel__composer{display:flex;align-items:flex-end;gap:8px;padding:11px 12px;border-top:1px solid var(--line-soft)}
.ai-panel__input{flex:1;resize:none;border:1px solid var(--grey-300);border-radius:12px;padding:9px 12px;font:inherit;font-size:13.5px;color:var(--ink);background:var(--surface);max-height:120px;line-height:1.45}
.ai-panel__input:focus{outline:none;border-color:var(--blue-500);box-shadow:0 0 0 3px rgba(46,95,163,.14)}
.ai-panel__send{flex:0 0 auto;width:38px;height:38px;border:none;border-radius:11px;cursor:pointer;display:flex;align-items:center;justify-content:center;background:var(--blue-600);color:#fff;transition:filter .12s,transform .12s}
.ai-panel__send:hover{filter:brightness(1.08)}
.ai-panel__send:active{transform:scale(.94)}
.ai-panel__send:disabled{opacity:.5;cursor:default}
.ai-panel__foot{padding:0 14px 11px;font-size:10.5px;color:var(--grey-400);text-align:center}
.ai-panel .agent-act{max-width:100%;margin:2px 0 0}
@media (max-width:520px){.ai-panel{right:8px;bottom:8px;height:calc(100vh - 16px)}}

/* Тёмная тема */
[data-theme="dark"] .ai-panel{background:var(--c-surface);border-color:var(--c-hair)}
[data-theme="dark"] .ai-panel__head{background:var(--c-surface-2);border-color:var(--c-hair)}
[data-theme="dark"] .ai-panel__name{color:var(--c-ink)}
[data-theme="dark"] .ai-panel__x:hover{background:var(--c-surface-2);color:var(--c-ink)}
[data-theme="dark"] .ai-msg--bot{background:var(--c-surface-2);color:var(--c-ink)}
[data-theme="dark"] .ai-panel__input{background:var(--c-surface-2);border-color:var(--c-hair);color:var(--c-ink)}
[data-theme="dark"] .ai-panel__foot{color:var(--c-ink-faint)}

/* Приветствие руководителя ПО ЦЕНТРУ области (как у трейдера) — только на экране
   приветствия (.master-inbox-landing). В меню (_renderMasterMenu) правило не сработает. */
.master__body:has(.master-hero){display:flex;flex-direction:column;justify-content:center}
.master__body:has(.master-hero) > .master-inbox-landing{margin-top:-24px}

/* ═══ Раздел «Встречи»: вкладки Записи · Повестки · Протоколы ═══ */
.trans-tabs{display:flex;gap:6px;margin:0 0 16px;border-bottom:1px solid var(--line-soft);padding-bottom:2px}
.trans-tab{appearance:none;border:none;background:transparent;cursor:pointer;font:inherit;font-size:13.5px;
  font-weight:600;color:var(--grey-500);padding:8px 14px;border-radius:10px 10px 0 0;position:relative}
.trans-tab:hover{color:var(--navy-900);background:var(--grey-100)}
.trans-tab.active{color:var(--blue-600)}
.trans-tab.active::after{content:"";position:absolute;left:10px;right:10px;bottom:-3px;height:2px;background:var(--blue-600);border-radius:2px}
.meet-card{background:var(--surface);border:1px solid var(--grey-250);border-radius:16px;padding:16px 18px;margin:0 0 14px;box-shadow:var(--shadow-card)}
.meet-card__h{font-weight:600;font-size:14.5px;color:var(--navy-900);margin-bottom:8px}
.meet-card__sub{font-size:11.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--grey-400);margin:10px 0 4px}
.meet-card__act{margin-top:12px}
[data-theme="dark"] .trans-tab:hover{color:var(--c-ink);background:var(--c-surface-2)}
[data-theme="dark"] .trans-tab.active{color:var(--blue-300)}
[data-theme="dark"] .trans-tab.active::after{background:var(--blue-300)}
[data-theme="dark"] .meet-card{background:var(--c-surface);border-color:var(--c-hair)}
[data-theme="dark"] .meet-card__h{color:var(--c-ink)}

.master-combined__charts{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:14px}
@media (max-width:760px){.master-combined__charts{grid-template-columns:1fr}}
.jeq-empty{color:var(--grey-500);font-size:13px;padding:20px;text-align:center}

/* ═══ Монитор v2 (встреча 9, «супер-аудитор») — новый корень + лента/отчёты ═══ */
.mon2-tabs{display:flex;gap:6px;margin:10px 0 14px;border-bottom:1px solid var(--line-soft);padding-bottom:2px}
.mon2-tab{appearance:none;border:none;background:transparent;cursor:pointer;font:inherit;font-size:13.5px;
  font-weight:600;color:var(--grey-500);padding:8px 14px;border-radius:10px 10px 0 0;position:relative}
.mon2-tab:hover{color:var(--navy-900);background:var(--grey-100)}
.mon2-tab.active{color:var(--blue-600)}
.mon2-tab.active::after{content:"";position:absolute;left:10px;right:10px;bottom:-3px;height:2px;background:var(--blue-600);border-radius:2px}
.mon2-toolbar{display:flex;justify-content:flex-end;margin-bottom:10px}
.mon2-add{display:flex;gap:8px;flex-wrap:wrap;align-items:center;width:100%}
.mon2-add input[type="text"]{flex:1;min-width:180px}
.mon2-add input,.mon2-add select{border:1px solid var(--grey-250);border-radius:10px;padding:8px 10px;font:inherit;font-size:13px;background:var(--surface);color:var(--navy-900)}
.mon2-feed{display:flex;flex-direction:column;gap:2px}
.mon2-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;cursor:pointer;font-size:13.5px}
.mon2-row:hover{background:var(--grey-100)}
.mon2-row__sev{font-size:10px;flex:0 0 auto}
.mon2-row__sev--note{color:var(--grey-400)}
.mon2-row__sev--warning{color:#d4a017}
.mon2-row__sev--critical{color:var(--red-500,#e5484d)}
.mon2-row__title{flex:1;font-weight:600;color:var(--navy-900);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mon2-row__sub{color:var(--grey-500);font-size:12px;flex:0 0 auto}
.mon2-row__status{color:var(--grey-500);font-size:12px;flex:0 0 auto}
.mon2-row__date{color:var(--grey-400);font-size:11.5px;flex:0 0 auto;white-space:nowrap}
.mon2-row--report{cursor:pointer}
.mon2-ctx{background:var(--grey-100);border-radius:10px;padding:10px;font-size:11.5px;overflow:auto;margin-top:10px}
[data-theme="dark"] .mon2-tab:hover{color:var(--c-ink);background:var(--c-surface-2)}
[data-theme="dark"] .mon2-tab.active{color:var(--blue-300)}
[data-theme="dark"] .mon2-tab.active::after{background:var(--blue-300)}
[data-theme="dark"] .mon2-row:hover{background:var(--c-surface-2)}
[data-theme="dark"] .mon2-row__title{color:var(--c-ink)}
[data-theme="dark"] .mon2-add input,[data-theme="dark"] .mon2-add select{background:var(--c-surface-2);border-color:var(--c-hair);color:var(--c-ink)}
[data-theme="dark"] .mon2-ctx{background:var(--c-surface-2)}
@media (max-width:640px){.mon2-row{flex-wrap:wrap}.mon2-row__title{flex:1 1 100%}}

/* ═══════════════════════════════════════════════════════════════════════
   ░░░  ДНК КОМПАНИИ — «Хроника» (концепция B, DECISION-001)  ░░░
   Рабочая поверхность вкладки. В отличие от прежней 3D-сцены живёт в ОБЕИХ
   темах на общих токенах Jucon (--c-surface/--c-ink/--c-line): аудит показал,
   что вечно-тёмная сцена внутри светлой оболочки и читалась как «отдельная
   демка».
   Полоса-«пульс» (DECISION-002, Вариант A) — ниже, отдельный блок.

   Палитра нитей разделов — ФИРМЕННАЯ (правка владельца 2026-07-16: прежние
   #5b8def/#8b7ff0/#c99149 были «не в нашей палитре»): синий бренда (Вячеслав),
   teal кривой эквити (Георгий), сталь канваса (Компания), небесный (Jucon).
   Фиолетовый по цвет-политике зарезервирован за ТЖ. ЗОЛОТО/--c-warn — только
   семантика «требует решения» (REVIEW-004-R2 P2), в идентичности разделов его
   нет. -deep — нижний край градиента сегмента. */
:root,[data-theme="light"]{
  --sec-v:#3A6FB8; --sec-v-deep:#2E5FA3;
  --sec-g:#189E93; --sec-g-deep:#12796F;
  --sec-c:#8DA3C6; --sec-c-deep:#7590B8;
  --sec-j:#56A7DC; --sec-j-deep:#3D8FC6;
}
[data-theme="dark"]{
  --sec-v:#6E9BD8; --sec-v-deep:#5B8AD0;
  --sec-g:#2DD4BF; --sec-g-deep:#1FB3A2;
  --sec-c:#9FB4D9; --sec-c-deep:#8AA2CC;
  --sec-j:#6FC0EE; --sec-j-deep:#54A9DC;
}
.chron{padding:16px 26px 34px;max-width:1440px;margin:0 auto}
.chron__head{margin-bottom:12px}
.chron__title{margin:0;font-size:21px;font-weight:650;letter-spacing:-.015em;
  color:var(--c-ink-strong)}
.chron__sub{margin:3px 0 0;font-size:12.5px;color:var(--c-ink-muted)}
.chron__meta{margin:4px 0 0;font-size:12px;color:var(--c-ink-faint);
  font-variant-numeric:tabular-nums}
/* Заголовки блоков — тем же голосом, что eyebrow панелей дашборда. */
.chron__h3{margin:16px 0 8px;font-size:10.5px;font-weight:750;letter-spacing:.1em;
  text-transform:uppercase;color:var(--c-ink-faint)}
.chron__h3:first-child{margin-top:0}
.chron-count{display:inline-block;min-width:22px;padding:2px 8px;border-radius:11px;
  margin-left:2px;background:var(--c-warn-bg);color:var(--c-warn);
  font-size:11px;font-weight:700;text-align:center;font-variant-numeric:tabular-nums;
  letter-spacing:0}

/* ── «Пульс» (DECISION-002, Вариант A; сдержанность — REVIEW-004-R2 P2) ───────
   Единственный визуально смелый элемент экрана — остальное молчит.
   Одна корзина периода = один слот; сегменты — доля раздела (порядок
   фиксирован). Агрегат честный (GET /monitor/signature, SQL count() по ВСЕЙ
   авторизованной истории периода). Свечение ТОЛЬКО у точки «требует решения» —
   это семантика внимания, а не декор; сегменты без glow.
   Клик по слоту = фильтр Хроники (URL-backed, см. chronWithBucket). */
.chron-sig{position:relative;margin:0 0 14px;padding:14px 20px 12px;border-radius:20px;
  border:1px solid rgba(255,255,255,.84);
  background:linear-gradient(145deg,rgba(255,255,255,.91),rgba(243,247,253,.78));
  box-shadow:0 15px 34px -29px rgba(18,38,76,.62)}
[data-theme="dark"] .chron-sig{
  background:linear-gradient(145deg,rgba(25,41,68,.94),rgba(20,34,57,.87));
  border-color:rgba(154,180,224,.2);
  box-shadow:0 18px 36px -29px rgba(0,0,0,.88)}
.chron-sig__head{display:flex;align-items:baseline;justify-content:space-between;
  gap:12px;flex-wrap:wrap;margin-bottom:14px}
.chron-sig__eyebrow{margin:0;font-size:10.5px;font-weight:750;letter-spacing:.1em;
  text-transform:uppercase;color:var(--c-accent)}
.chron-sig__meta{margin:0;font-family:var(--mono);font-size:11px;color:var(--c-ink-faint);
  font-variant-numeric:tabular-nums}
/* Явная подпись активного выбора корзины + сброс — сигнал, что Хроника ниже
   сужена (REVIEW-004-R2: obvious label, active state, reset). */
.chron-sig__sel{display:inline-flex;align-items:center;gap:8px;font-size:11.5px;
  font-weight:600;color:var(--c-accent);font-variant-numeric:tabular-nums}
/* ≥40×40 (REVIEW-004-R3 P2: контракт целей действует и в selected-состоянии). */
.chron-sig__reset{min-height:40px;min-width:40px;padding:0 12px;border-radius:10px;
  cursor:pointer;border:1px solid var(--c-accent-line);background:var(--c-accent-soft);
  color:var(--c-accent);font:inherit;font-size:11px;font-weight:600}
.chron-sig__reset:hover{background:var(--c-accent-soft-2)}
.chron-sig__row{display:flex;gap:6px;align-items:flex-end;height:60px;padding:12px 0 0}
.chron-sig__cell{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:flex-end;
  gap:2px;height:100%;border:0;background:none;padding:0 2px;border-radius:9px;
  position:relative;cursor:pointer;transition:background-color .14s ease}
.chron-sig__cell:hover,.chron-sig__cell:focus-visible{background:var(--c-accent-soft)}
.chron-sig__cell:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px}
/* Выбранная корзина — акцентная подложка + линия-основание. */
.chron-sig__cell--on{background:var(--c-accent-soft);
  box-shadow:0 2px 0 0 var(--c-accent)}
.chron-sig__cell--on:hover{background:var(--c-accent-soft-2)}
@media (prefers-reduced-motion:reduce){.chron-sig__cell{transition:none}}
/* Сегмент — плоская «таблетка» с лёгким градиентом объёма; без свечения. */
.chron-sig__seg{width:100%;border-radius:4px;flex-shrink:0}
.chron-sig__seg.chron-dot--v{background:linear-gradient(180deg,var(--sec-v),var(--sec-v-deep))}
.chron-sig__seg.chron-dot--g{background:linear-gradient(180deg,var(--sec-g),var(--sec-g-deep))}
.chron-sig__seg.chron-dot--c{background:linear-gradient(180deg,var(--sec-c),var(--sec-c-deep))}
.chron-sig__seg.chron-dot--j{background:linear-gradient(180deg,var(--sec-j),var(--sec-j-deep))}
/* Слой внимания (REVIEW-004-R3 P1) — не бинарная точка, а ЧИСЛО нерешённых
   с документированной шкалой интенсивности: 1-2 — приглушённый, 3-5 —
   средний, 6+ — сильный. Кольцо — пик периода (максимум нерешённых;
   при равенстве — больше критичных, затем позднее). Золото по-прежнему
   означает ровно одно: «требует решения». */
.chron-sig__att{position:absolute;top:-4px;left:50%;transform:translateX(-50%);
  min-width:16px;height:16px;padding:0 4px;border-radius:9px;
  font-family:var(--mono);font-size:10px;font-weight:700;line-height:16px;
  text-align:center;font-variant-numeric:tabular-nums}
.chron-sig__att--lo{background:var(--c-warn-bg);color:var(--c-warn)}
.chron-sig__att--mid{background:var(--c-warn);color:var(--c-surface)}
.chron-sig__att--hi{background:var(--c-warn);color:var(--c-surface);
  box-shadow:0 0 10px -1px var(--c-warn)}
.chron-sig__att--peak{outline:2px solid var(--c-warn);outline-offset:2px}
.chron-sig__axis{display:flex;gap:6px;margin-top:8px;padding-top:8px;
  border-top:1px solid var(--c-hair)}
.chron-sig__axis span{flex:1;text-align:center;font-family:var(--mono);font-size:10px;
  color:var(--c-ink-faint);font-variant-numeric:tabular-nums}
/* Фикс-строка деталей (REVIEW-004-R3 P2): место зарезервировано — наведение/
   фокус ничего не перекрывают и не сдвигают; первая/последняя корзина
   равноправны. */
.chron-sig__detail{margin:8px 0 0;min-height:18px;font-size:11.5px;
  color:var(--c-ink-muted);font-variant-numeric:tabular-nums;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chron-sig__legend{display:flex;gap:14px;flex-wrap:wrap;margin:8px 0 0;
  font-size:11.5px;color:var(--c-ink-muted)}
.chron-sig__legend b{display:inline-block;width:8px;height:8px;border-radius:50%;
  margin-right:5px;vertical-align:middle}
.chron-sig__legend-att{color:var(--c-ink-faint);font-size:10.5px}
.chron-sig__empty{padding:6px 0 2px;font-size:12px;color:var(--c-ink-faint)}

/* ── Фильтры: настоящие кнопки (aria-pressed), не div'ы с обработчиком ──
   Тихие (REVIEW-004-R2 P2): подпись группы + пилюли с волосяной рамкой,
   активная — акцентная заливка. Иерархию держат отступы, не эффекты. */
.chron__filters{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:4px}
.chron-fgroup{display:flex;flex-direction:column;gap:6px}
.chron-fgroup__label{font-size:10.5px;font-weight:700;letter-spacing:.09em;
  text-transform:uppercase;color:var(--c-ink-faint);padding:0 2px}
.chron-fgroup__pills{display:flex;flex-wrap:wrap;gap:5px}
/* 40px по высоте — минимальная цель нажатия (REVIEW-003 P1: плотность берём
   типографикой и отступами, а не уменьшением цели). Горизонталь ужата, чтобы
   все 4 группы вставали в одну строку на 1440 — Хроника обязана попадать в
   первый экран (REVIEW-004-R3 P1). */
.chron-pill{min-height:40px;padding:0 10px;border-radius:10px;cursor:pointer;
  background:transparent;border:1px solid var(--c-hair);
  color:var(--c-ink-muted);font-size:12px;font-weight:600;
  display:inline-flex;align-items:center;
  transition:background-color .14s ease,color .14s ease,border-color .14s ease}
.chron-pill:hover{color:var(--c-ink);border-color:var(--c-hair-2)}
.chron-pill[aria-pressed="true"]{background:var(--c-accent-soft);
  border-color:var(--c-accent-line);color:var(--c-accent)}
.chron-pill[aria-pressed="true"]:hover{background:var(--c-accent-soft-2)}
.chron-pill:focus-visible,.chron-row__btn:focus-visible,.chron-src:focus-visible,
.chron-att__btn:focus-visible,.chron-page:focus-visible,.chron-detail__title:focus-visible{
  outline:2px solid var(--c-accent);outline-offset:2px}

.chron__cols{display:flex;gap:18px;align-items:flex-start}
.chron__main{flex:1;min-width:0}

/* ── «Требует решения» — главный вопрос руководителя ──
   Тихая карточка с ТЁПЛОЙ левой кромкой: золото здесь — семантика
   «нужно решение» (единственная роль золота на экране), не декор. */
.chron-att{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.chron-att__item{display:flex;align-items:center;gap:12px;padding:0 14px;
  background:var(--c-surface);border:1px solid var(--c-hair);
  border-left:3px solid var(--c-warn);border-radius:11px}
.chron-att__item:hover{border-color:var(--c-hair-2);border-left-color:var(--c-warn)}
[data-theme="dark"] .chron-att__item{background:var(--c-surface-2)}
/* Однострочная сводка (REVIEW-004-R3 P1: Хроника — в первом экране):
   заголовок и мета в одну строку, высота ровно под цель нажатия. */
.chron-att__btn{flex:1;min-height:40px;padding:5px 0;background:none;border:0;cursor:pointer;
  display:flex;align-items:baseline;gap:10px;text-align:left;min-width:0;
  border-radius:10px}
.chron-att__title{font-size:12.5px;font-weight:600;color:var(--c-ink);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chron-att__meta{flex:0 0 auto;font-size:11px;color:var(--c-ink-faint);
  font-variant-numeric:tabular-nums;white-space:nowrap}
.chron-att__all{margin-top:6px;min-height:40px;padding:0 12px;border:0;cursor:pointer;
  background:none;border-radius:10px;text-align:left;
  font:inherit;font-size:12px;font-weight:600;color:var(--c-accent)}
.chron-att__all:hover{color:var(--c-accent-strong);text-decoration:underline}
@media (max-width:860px){
  .chron-att__btn{flex-wrap:wrap;row-gap:0}
  .chron-att__title{white-space:normal}
}

/* ── Таблица ──
   Тихая карточка-поверхность (REVIEW-004-R2 P2: смелый элемент на экране
   один — «Пульс»; Хроника — точный рабочий список): плоская поверхность,
   волосяные разделители, воздух. */
.chron-tablecard{padding:6px 18px 10px;border-radius:16px;
  background:var(--c-surface);border:1px solid var(--c-hair)}
[data-theme="dark"] .chron-tablecard{background:var(--c-surface-2)}
.chron-table{width:100%;border-collapse:collapse;table-layout:fixed}
.chron-table thead th{text-align:left;font-size:10.5px;font-weight:700;letter-spacing:.09em;
  text-transform:uppercase;color:var(--c-ink-faint);padding:12px 10px 9px;
  border-bottom:1px solid var(--c-hair);white-space:nowrap}
.chron-table thead th:nth-child(1){width:74px}
.chron-table thead th:nth-child(2){width:132px}
.chron-table thead th:nth-child(3){width:118px}
.chron-table thead th:nth-child(5){width:132px}
.chron-table thead th:nth-child(6){width:118px}
.chron-day__th{padding:18px 10px 7px;font-size:11px;font-weight:700;letter-spacing:.07em;
  text-transform:uppercase;color:var(--c-ink-soft);text-align:left;
  border-bottom:1px solid var(--c-hair);font-variant-numeric:tabular-nums}
.chron-row{border-bottom:1px solid var(--c-hair)}
.chron-row:last-child{border-bottom:0}
.chron-row{transition:background-color .12s ease}
.chron-row:hover{background:var(--c-surface-h)}
[data-theme="dark"] .chron-row:hover{background:var(--c-surface-h)}
.chron-c{padding:0 10px;font-size:12.5px;color:var(--c-ink-soft);vertical-align:middle;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chron-c--time{font-family:var(--mono);font-size:11.5px;font-variant-numeric:tabular-nums;
  color:var(--c-ink-faint)}
.chron-c--title{font-weight:400;overflow:visible;white-space:normal}
/* Строка целиком не кликабельна: кликом управляет НАСТОЯЩАЯ кнопка внутри —
   её видит клавиатура и скринридер. Высота 40px — цель нажатия. */
.chron-row__btn{width:100%;min-height:40px;padding:9px 0;background:none;border:0;cursor:pointer;
  text-align:left;font-size:12.5px;font-weight:600;color:var(--c-ink);border-radius:8px;
  white-space:normal;transition:color .12s ease}
.chron-row__btn:hover{color:var(--c-accent)}
.chron-row__hidden{display:inline-block;min-height:40px;line-height:40px;
  font-size:12.5px;color:var(--c-ink-faint);font-style:italic}
.chron-row--hidden{background:transparent}
.chron-row--hidden:hover{background:transparent}
.chron-row--attn .chron-c--time{color:var(--c-ink-soft)}

.chron-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:8px;
  vertical-align:middle;background:var(--c-ink-faint)}
.chron-dot--v{background:var(--sec-v)}
.chron-dot--g{background:var(--sec-g)}
.chron-dot--c{background:var(--sec-c)}
.chron-dot--j{background:var(--sec-j)}

/* Статус — цвет + ТЕКСТ: одним цветом статус не кодируем (дальтонизм, ч/б печать). */
.chron-badge{display:inline-block;padding:3px 10px;border-radius:10px;font-size:11px;
  font-weight:600;background:var(--c-btn2);border:1px solid var(--c-btn2-brd);
  color:var(--c-ink-soft);white-space:nowrap}
/* «Требует решения» — тёплый бейдж (не синий: это призыв, а не состояние). */
.chron-badge--attn{background:var(--c-warn-bg);border-color:transparent;color:var(--c-warn);
  box-shadow:0 0 0 1px var(--c-warn-bg)}

.chron-src{display:inline-flex;align-items:center;min-height:40px;padding:0 4px;
  font-size:12px;font-weight:600;color:var(--c-accent);text-decoration:none;border-radius:8px;
  transition:color .12s ease}
.chron-src:hover{text-decoration:underline;color:var(--c-accent-strong)}
.chron-src--deny{color:var(--c-ink-faint);font-weight:400;cursor:default}

/* ── Страницы: DOM ограничен размером страницы при любой длине истории ── */
.chron__pager{display:flex;gap:8px;margin-top:16px}
.chron-page{min-height:40px}
.chron-page[disabled]{opacity:.45;cursor:default}

/* ── Деталь: в потоке справа, не модалка и не тёмный остров ──
   Тихая поверхность — как Хроника; смелость экрана вся в «Пульсе». */
.chron__detail{flex:0 0 366px;max-width:366px;padding:20px;position:sticky;top:18px;
  background:var(--c-surface);border:1px solid var(--c-hair);border-radius:16px}
[data-theme="dark"] .chron__detail{background:var(--c-surface-2)}
.chron__detail[hidden]{display:none}
.chron-detail__head{display:flex;align-items:flex-start;gap:8px}
.chron-detail__eyebrow{margin:0;font-size:10.5px;font-weight:700;letter-spacing:.09em;
  text-transform:uppercase;color:var(--c-accent)}
.chron-detail__title{margin:3px 0 0;font-size:15.5px;font-weight:600;color:var(--c-ink-strong);flex:1}
.chron-detail__close{margin-left:auto;min-width:40px;min-height:40px;font-size:18px;line-height:1}
.chron-detail__meta{margin:10px 0 0;font-size:12px;color:var(--c-ink-faint);
  font-variant-numeric:tabular-nums}
.chron-detail__sub{margin:6px 0 0;font-size:12.5px;color:var(--c-ink-soft)}
.chron-detail__src{margin-top:16px;padding-top:14px;border-top:1px solid var(--c-hair)}
/* REVIEW-029-R6 P2.3: элемент несёт .btn .btn--sm, но БЕЗ варианта
   (--primary/--ghost), а ни .btn, ни это правило не задавали `color` — сквозь
   каскад проступал дефолтный браузерный цвет ссылки #0000EE («вырвиглазный»,
   формулировка владельца), не имеющий отношения к палитре Jucon. Приводим к
   тому же языку ссылок, что и соседний .chron-src в этой же Хронике:
   --c-accent, подчёркивание по ховеру. */
.chron-detail__open{min-height:40px;display:inline-flex;align-items:center;text-decoration:none;
  color:var(--c-accent)}
.chron-detail__open:hover{color:var(--c-accent-strong);text-decoration:underline}
.chron-detail__open:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px}
.chron-detail__deny{margin:0;font-size:12px;color:var(--c-ink-faint)}

/* Stale/conflict источника: отдельно от --deny (нет прав) и от тоста (сеть) —
   запись видна, но её первоисточник протух между загрузкой и кликом.
   Тёплая рамка — «нужно действие», не синяя декорация. */
.chron-detail__stale{padding:13px 14px;border:1px solid var(--c-warn);border-radius:13px;
  background:var(--c-warn-bg)}
.chron-detail__stale-title{margin:0;font-size:12.5px;font-weight:600;color:var(--c-ink)}
.chron-detail__stale-sub{margin:4px 0 0;font-size:12px;color:var(--c-ink-muted)}
.chron-detail__stale-btn{margin-top:10px;min-height:40px}

/* ── Состояния — тихие карточки, как Хроника ── */
.chron-state{padding:38px 24px;text-align:center;border-radius:16px;
  background:var(--c-surface);border:1px solid var(--c-hair)}
[data-theme="dark"] .chron-state{background:var(--c-surface-2)}
.chron-state__title{margin:0;font-size:14px;font-weight:600;color:var(--c-ink-strong)}
.chron-state__sub{margin:6px 0 0;font-size:12.5px;color:var(--c-ink-faint)}
.chron-state__btn{margin-top:14px;min-height:40px}
.chron-state--err{border-color:var(--c-warn)}
.chron-skel{display:flex;flex-direction:column;gap:8px;padding-top:8px}
.chron-skel__row{height:44px;border-radius:10px;background:var(--c-surface-2);
  animation:chron-pulse 1.2s ease-in-out infinite}
@keyframes chron-pulse{0%,100%{opacity:.55}50%{opacity:.85}}
/* Единственная анимация экрана — и та гаснет при reduced-motion. */
@media (prefers-reduced-motion:reduce){.chron-skel__row{animation:none}}

/* ── Узко / 200% zoom: таблица уезжает в карточки, деталь встаёт под список ── */
@media (max-width:1100px){
  .chron__cols{flex-direction:column}
  .chron__detail{flex:1;max-width:none;width:100%;position:static}
}
@media (max-width:860px){
  .chron{padding:16px 12px 26px}
  .chron-sig{padding:14px 15px 13px;border-radius:16px}
  .chron-tablecard{padding:4px 14px 8px;border-radius:16px}
  .chron-table,.chron-table tbody,.chron-table tr,.chron-table td,.chron-table th{display:block}
  .chron-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
  .chron-row{padding:8px 0 10px;border-bottom:1px solid var(--c-line)}
  .chron-c{padding:0;white-space:normal}
  .chron-c--time{display:inline-block;margin-right:10px}
  .chron-c--sec,.chron-c--type{display:inline-block;margin-right:10px}
  .chron-day__th{padding:14px 0 6px}
  /* <thead> уходит в sr-only здесь — без видимого заголовка колонки голое
     значение («10:32», «Наблюдение») не сообщает, что оно значит. Дублируем
     подпись колонки перед значением через data-label (заполняется в JS). */
  .chron-c[data-label]::before{content:attr(data-label) ": ";font-weight:600;
    color:var(--c-ink-faint)}
}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* ═══════════════════════════════════════════════════════════
   ГЛАВНЫЙ ЭКРАН v4 — operational home, а не экран-приветствие
   Задача: сразу дать контекст, одно место для команды и три
   проверяемых следующих шага. Акцент — «линия рабочего дня».
   ═══════════════════════════════════════════════════════════ */
.dash-page{max-width:1180px;padding:0 10px}
.dash-shell{grid-template-columns:minmax(0,1.22fr) minmax(330px,.78fr);gap:22px;padding:10px 0 48px;align-items:start}
.dash-hero{position:relative;top:auto;align-items:stretch;text-align:left;gap:0;padding:25px 27px 24px;min-height:514px;border:1px solid rgba(255,255,255,.84);border-radius:24px;background:linear-gradient(145deg,rgba(255,255,255,.91),rgba(243,247,253,.78));box-shadow:0 22px 50px -32px rgba(18,38,76,.58);overflow:hidden}
.dash-hero::before{display:none}
.dash-hero::after{content:"";position:absolute;width:300px;height:300px;right:-150px;top:-175px;border:1px solid rgba(91,138,208,.14);border-radius:50%;box-shadow:0 0 0 22px rgba(91,138,208,.045),0 0 0 54px rgba(91,138,208,.012);pointer-events:none}
.dash-hero__meta{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;padding-left:2px}
.dash-hero__eyebrow{font-size:10.5px;font-weight:750;letter-spacing:.1em;text-transform:uppercase;color:#2E5FA3}
.dash-hero__date{font-family:var(--mono);font-size:11px;color:var(--s-muted);font-variant-numeric:tabular-nums;text-transform:capitalize}
.dash-hero__heading{position:relative;z-index:1;display:block;margin-bottom:26px}
.dash-hero__heading .emblem--xl{display:none}
.dash-hero .emblem--xl{width:48px;height:48px;flex:0 0 48px;margin:0;border-radius:16px;background:linear-gradient(145deg,#386EB5,#234C86);box-shadow:0 13px 26px -14px rgba(35,76,134,.8)}
.dash-hero .emblem--xl .emblem__svg{width:32px;height:32px}
.dash-hero__title{font-size:26px;line-height:1.12;letter-spacing:-.03em;color:var(--navy-1);margin:0}
.dash-hero__lead{max-width:470px;margin:6px 0 0;font-size:13.5px;line-height:1.52;color:var(--s-muted)}
.dash-hero__composer{position:relative;z-index:1;max-width:none;margin:0 0 18px;padding:10px 10px 10px 15px;border-radius:16px;background:rgba(255,255,255,.82);box-shadow:inset 0 1px rgba(255,255,255,.82),0 12px 26px -22px rgba(18,38,76,.44);align-items:center}
.dash-hero__composer:focus-within{border-color:rgba(58,111,184,.68);box-shadow:0 0 0 4px rgba(58,111,184,.13),0 16px 28px -22px rgba(18,38,76,.5)}
.dash-hero__composer textarea{font-size:14px;padding:0;line-height:1.45}
.dash-mic,.dash-send{min-width:40px;min-height:40px}
.dash-quick{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:2px}
.dash-quick__item{position:relative;display:flex;min-height:103px;flex-direction:column;align-items:flex-start;justify-content:flex-start;padding:13px 28px 13px 13px;text-align:left;font:inherit;cursor:pointer;color:var(--s-ink-2);background:rgba(255,255,255,.46);border:1px solid rgba(44,76,122,.09);border-radius:15px;transition:transform .18s cubic-bezier(.2,0,0,1),background-color .18s ease,border-color .18s ease,box-shadow .18s ease}
.dash-quick__item:hover{transform:translateY(-2px);background:rgba(255,255,255,.86);border-color:rgba(46,95,163,.3);box-shadow:0 15px 28px -23px rgba(18,38,76,.7)}
.dash-quick__item:active{transform:translateY(0) scale(.98)}
.dash-quick__item:focus-visible{outline:3px solid rgba(58,111,184,.52);outline-offset:2px}
.dash-quick__title{font-size:12.5px;font-weight:720;color:var(--navy-1);line-height:1.3}
.dash-quick__desc{margin-top:5px;font-size:11px;line-height:1.45;color:var(--s-muted)}
.dash-quick__arrow{position:absolute;right:12px;bottom:11px;color:#2E5FA3;font-size:15px;transition:transform .18s cubic-bezier(.2,0,0,1)}
.dash-quick__item:hover .dash-quick__arrow{transform:translateX(3px)}
.dash-hero__menu-link{align-self:flex-start;position:relative;z-index:1;margin:18px 0 0 -7px;min-height:40px;padding:8px 10px;color:#2E5FA3}
.dash-side{gap:13px;padding-top:0}
.dash-panel{padding:17px 18px;border-radius:19px;background:linear-gradient(145deg,rgba(255,255,255,.91),rgba(243,247,253,.78));box-shadow:0 15px 34px -29px rgba(18,38,76,.62)}
.dash-panel__h{margin-bottom:11px;padding-bottom:10px}
.dash-panel__t{font-size:12px;letter-spacing:.01em}
[data-theme="dark"] .dash-hero{background:linear-gradient(145deg,rgba(25,41,68,.94),rgba(20,34,57,.87));border-color:rgba(145,169,213,.16);box-shadow:0 24px 58px -34px rgba(0,0,0,.82)}
[data-theme="dark"] .dash-hero__title,[data-theme="dark"] .dash-quick__title{color:#F1F5FD}
[data-theme="dark"] .dash-hero__lead,[data-theme="dark"] .dash-hero__date,[data-theme="dark"] .dash-quick__desc{color:rgba(210,222,241,.67)}
[data-theme="dark"] .dash-hero__composer,[data-theme="dark"] .dash-quick__item{background:rgba(255,255,255,.055);border-color:rgba(180,202,240,.13)}
[data-theme="dark"] .dash-quick__item:hover{background:rgba(255,255,255,.09);border-color:rgba(93,151,222,.5)}
[data-theme="dark"] .dash-panel{background:rgba(21,34,55,.65);border-color:rgba(180,202,240,.12)}
@media (max-width:980px){.dash-shell{grid-template-columns:1fr}.dash-hero{min-height:0}.dash-side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.dash-panel--chart,.dash-panel--team{grid-column:span 2}}
@media (max-width:640px){.dash-page{padding:0}.dash-shell{padding-top:0;gap:14px}.dash-hero{padding:20px 17px 18px;border-radius:18px}.dash-hero__meta{margin-bottom:10px}.dash-hero__heading{align-items:flex-start;margin-bottom:21px}.dash-hero__title{font-size:22px}.dash-hero__lead{font-size:12.5px}.dash-quick{grid-template-columns:1fr;gap:7px}.dash-quick__item{min-height:72px;padding:12px 30px 12px 13px}.dash-quick__desc{margin-top:3px}.dash-side{display:flex;gap:12px}.dash-panel--chart,.dash-panel--team{grid-column:auto}.dash-hero__date{display:none}}

/* Второй проход home v4: возвращаем смысловую цитату и даём правой колонке
   жёсткий вертикальный бюджет. Главный экран не должен превращаться в ленту. */
.dash-hero{min-height:0}
.dash-hero__quote{margin:8px 0 0;max-width:465px;font-size:12px;font-style:italic;line-height:1.5;color:var(--s-muted-2);text-wrap:pretty}
.dash-hero__quote::before{display:none}
.dash-panel__count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:20px;padding:0 7px;border-radius:999px;font-family:var(--mono);font-size:10.5px;font-variant-numeric:tabular-nums;color:var(--s-muted);background:rgba(46,95,163,.09)}
.dash-panel--team-events{min-height:0}
.dash-panel--team-events .dash-events{max-height:178px;overflow-y:auto;padding-right:5px;scrollbar-width:thin;scrollbar-color:rgba(91,138,208,.38) transparent}
.dash-panel--team-events .dash-events::-webkit-scrollbar{width:5px}
.dash-panel--team-events .dash-events::-webkit-scrollbar-thumb{background:rgba(91,138,208,.38);border-radius:999px}
.dash-panel--team-events .dash-event{gap:9px;padding:6px 4px}
.dash-panel--team-events .dash-event__dot{width:7px;height:7px}
.dash-panel--team-events .dash-event__t{font-size:12.5px;line-height:1.3}
.dash-panel--team-events .dash-event__when{font-size:10.5px}
[data-theme="dark"] .dash-hero{background:linear-gradient(145deg,rgba(25,41,68,.94),rgba(20,34,57,.87));border-color:rgba(154,180,224,.22)}
[data-theme="dark"] .dash-hero__eyebrow{color:#79b2ff}
[data-theme="dark"] .dash-hero__quote{color:rgba(205,220,246,.68)}
[data-theme="dark"] .dash-hero__composer{background:rgba(8,19,38,.34);border-color:rgba(156,190,244,.38);box-shadow:inset 0 1px rgba(255,255,255,.06),0 16px 28px -23px rgba(0,0,0,.78)}
[data-theme="dark"] .dash-hero__composer:focus-within{border-color:rgba(105,160,235,.72);box-shadow:0 0 0 4px rgba(105,160,235,.12),0 16px 30px -22px rgba(0,0,0,.82)}
[data-theme="dark"] .dash-panel{background:linear-gradient(145deg,rgba(25,41,68,.94),rgba(20,34,57,.87));border-color:rgba(154,180,224,.2);box-shadow:0 18px 36px -29px rgba(0,0,0,.88)}
[data-theme="dark"] .dash-panel__t{color:#edf3ff}
[data-theme="dark"] .dash-panel__h{border-bottom-color:rgba(153,178,221,.18)}
[data-theme="dark"] .dash-panel__empty{color:rgba(206,220,245,.7)}
[data-theme="dark"] .dash-panel__count{color:rgba(210,224,248,.76);background:rgba(121,178,255,.12)}
[data-theme="dark"] .dash-panel--team-events .dash-event:hover{background:rgba(255,255,255,.055)}

/* Главный блок: знак Jucon самодостаточен — не оборачиваем его во вторую синюю
   «плашку». Инциденты — одна рабочая строка, а не третий бесконечный виджет. */
.dash-hero .emblem--xl{background:transparent!important;box-shadow:none!important;border-radius:0!important}
.dash-hero__quote{margin-top:9px}
.dash-incidents-side{width:100%;min-height:70px;margin:0;padding:0 22px;display:flex;align-items:center;gap:12px;border:1px solid rgba(44,76,122,.12);border-radius:19px;background:linear-gradient(145deg,rgba(255,255,255,.91),rgba(243,247,253,.78));box-shadow:0 15px 34px -29px rgba(18,38,76,.62);color:var(--s-ink-2);font:inherit;font-size:12.5px;font-weight:650;cursor:pointer;text-align:left;transition:transform .16s cubic-bezier(.2,0,0,1),color .16s ease,border-color .16s ease,box-shadow .16s ease}
.dash-incidents-side:hover{transform:translateY(-1px);color:#2E5FA3;border-color:rgba(46,95,163,.34);box-shadow:0 20px 36px -28px rgba(18,38,76,.68)}
.dash-incidents-side:focus-visible{outline:3px solid rgba(58,111,184,.5);outline-offset:3px}
.dash-incidents-inline__label{display:inline-flex;align-items:center;gap:9px;min-width:0;line-height:1.35}
.dash-incidents-inline__dot{width:8px;height:8px;border-radius:50%;background:#d75c58;box-shadow:0 0 0 3px rgba(215,92,88,.12);flex:0 0 auto}
.dash-incidents-inline__count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;margin-left:5px;padding:0 7px;border-radius:999px;background:#d75c58;color:#fff;font-family:var(--mono);font-size:10.5px;font-weight:700;font-variant-numeric:tabular-nums}
.dash-incidents-inline__count--loading{background:rgba(46,95,163,.16);color:var(--s-muted)}
.dash-incidents-inline__count--zero{background:rgba(46,95,163,.12);color:var(--s-muted)}
.dash-incidents-inline__arrow{margin-left:auto;padding-left:8px;font-size:11.5px;font-weight:600;color:var(--s-muted);white-space:nowrap;transition:transform .16s cubic-bezier(.2,0,0,1),color .16s ease}
.dash-incidents-inline:hover .dash-incidents-inline__arrow{transform:translateX(3px);color:#2E5FA3}
[data-theme="dark"] .dash-incidents-side{background:linear-gradient(145deg,rgba(25,41,68,.94),rgba(20,34,57,.87));border-color:rgba(154,180,224,.2);box-shadow:0 18px 36px -29px rgba(0,0,0,.88);color:#e7eefc!important}
.dash-shell:has(.dash-incidents-side){align-items:stretch}
.dash-shell:has(.dash-incidents-side) .dash-hero{height:100%;min-height:0}
@media (max-width:980px){.dash-shell:has(.dash-incidents-side){align-items:start}.dash-shell:has(.dash-incidents-side) .dash-hero{height:auto}}
[data-theme="dark"] .dash-incidents-inline__label{color:#e7eefc!important}
[data-theme="dark"] .dash-incidents-side:hover{color:#8bc0ff;border-color:rgba(124,180,255,.46);box-shadow:0 22px 40px -28px rgba(0,0,0,.9)}
[data-theme="dark"] .dash-incidents-inline__count--loading,[data-theme="dark"] .dash-incidents-inline__count--zero{background:rgba(121,178,255,.16);color:rgba(224,236,255,.78)}
[data-theme="dark"] .dash-incidents-inline__arrow{color:rgba(202,218,244,.7)}
@media (max-width:640px){.dash-incidents-side{min-height:58px;padding:0 14px}.dash-incidents-inline__arrow{font-size:0}.dash-incidents-inline__arrow::after{content:"→";font-size:16px}}

/* Dashboard surface contract. Geometry is theme-independent; only these
   opaque color tokens change. Opaque fills prevent the aurora canvas from
   tinting one card differently from the others. */
.dash-page{
  --dash-card-bg:linear-gradient(145deg,#FFFFFF,#F3F7FD);
  --dash-card-border:rgba(20,40,80,.10);
  --dash-card-shadow:0 18px 42px -30px rgba(18,38,76,.48);
}
[data-theme="dark"] .dash-page{
  --dash-card-bg:linear-gradient(145deg,#192944,#142239);
  --dash-card-border:rgba(154,180,224,.20);
  --dash-card-shadow:0 18px 42px -30px rgba(0,0,0,.82);
}
.dash-page .dash-hero,
.dash-page .dash-panel,
.dash-page .dash-incidents-side{
  background:var(--dash-card-bg)!important;
  border-color:var(--dash-card-border)!important;
  box-shadow:var(--dash-card-shadow)!important;
}
.dash-page .dash-hero::after{display:none!important}
.dash-page .dash-hero__heading .emblem--xl{display:none!important}

/* ══ TASK-029 «Здоровое несогласие»: канонический документ ══════════════════
   Своих цветов не заводим — только существующие токены (--c-*), чтобы обе
   темы работали без отдельного набора правил, как во всём остальном UI. */
.hd-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 14px}
.hd-filters__q{max-width:280px}
.hd-filters__pills{display:flex;flex-wrap:wrap;gap:6px}
.hd-list{display:flex;flex-direction:column;gap:10px}
.hd-row{cursor:pointer;display:flex;flex-direction:column;gap:6px}
.hd-row:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px}
.hd-row__top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.hd-row__title{font-weight:600;font-size:14.5px;flex:1;min-width:0}
.hd-row__meta{font-size:12.5px}
.hd-row--legacy{opacity:.85}
.hd-chip{font-size:11.5px;padding:2px 9px;border-radius:999px;white-space:nowrap;
  background:var(--c-btn2);color:var(--c-ink-soft);border:1px solid var(--c-line)}
.hd-chip--submitted{background:var(--blue-100);color:var(--blue-700);border-color:transparent}
.hd-chip--needs_revision{background:var(--c-warn-bg,var(--c-btn2));color:var(--c-warn,var(--c-ink))}
.hd-chip--reviewed{background:var(--c-ok-bg,var(--c-btn2));color:var(--c-ok,var(--c-ink))}
.hd-chip--legacy{font-style:italic}

/* ── R2 (DECISION-029-desktop-document-view-not-modal): полноценная desktop
   document-page в рабочей области — двухколоночный лист + управление сбоку,
   НЕ overlay. Ширина листа читается как страница Word, не как форма. ── */
.hd-page{max-width:1180px}
.hd-page__crumbs{display:flex;align-items:center;gap:14px;margin:0 0 16px;flex-wrap:wrap}
.hd-page__path{font-size:13px}
.hd-page__grid{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:24px;align-items:start}
.hd-page__doc{min-width:0}
.hd-page__side{position:sticky;top:16px;display:flex;flex-direction:column;gap:14px}

.hd-warn{margin:0 0 14px;padding:10px 12px;border-radius:12px;font-size:13px;
  background:var(--c-btn2);border:1px solid var(--c-line)}
.hd-warn--conflict{border-color:var(--blue-700);font-weight:500}
.hd-warn--manager{background:var(--blue-100);color:var(--blue-700);border-color:transparent}

/* Лист документа — фирменный бланк, тот же порядок и смысл, что и Word.
   R3 (REVIEW-029-R2 P0.2, DECISION-029-document-palette-fidelity): цвета
   бренда/заголовка/заголовков пунктов/подзаголовка НЕ хардкодятся здесь как
   независимые константы — CSS читает custom properties, которые JS выставляет
   на .hd-sheet ИЗ ТОГО ЖЕ `visual_contract`, что получает сервер по
   template_version версии (см. hdRenderDocPage → v.visual_contract). Один
   контракт, один источник для экрана и для генератора Word.
   R4 (REVIEW-029-R3 P2.1): фолбэки ниже — НЕЙТРАЛЬНЫЕ, НЕ повтор фирменного
   контракта. Раньше здесь дублировались те же самые брендовые hex — версия с
   неподтверждённым/будущим template_version (сервер отдаёт `visual_contract:
   null`, см. hd_documents.visual_contract()) выглядела бы ТАК ЖЕ фирменно,
   как текущий шаблон, хотя её оформление никогда не сверялось с исходным
   бланком — тихая подмена. paper/body остаются нейтральными по построению
   (белый лист/чёрный текст — универсальный дефолт ЛЮБОГО документа, не
   специфика бренда Jupiter Capital), поэтому не меняются. */
.hd-sheet{
  --hd-paper: #FFFFFF; --hd-brand: #4B5563; --hd-title: #374151;
  --hd-section: #4B5563; --hd-secondary: #6B7280; --hd-body: #000000;
  background:var(--hd-paper);color:var(--hd-body);border:1px solid var(--c-line);
  border-radius:6px;box-shadow:var(--shadow-pop,0 8px 30px rgba(20,25,40,.08));
  padding:48px 56px;display:flex;flex-direction:column;gap:0}
/* Лист остаётся фирменным белым бланком в обеих темах приложения — сам
   документ не следует теме Jucon (DECISION-029: "Сам белый лист документа
   сохраняет фирменный вид утверждённого бланка"). */
.hd-sheet__brand{font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--hd-brand)}
.hd-sheet__kind{font-size:11px;color:var(--hd-secondary);margin:2px 0 22px}
.hd-sheet__title{font-size:22px;font-weight:700;margin:0 0 10px;line-height:1.3;color:var(--hd-title)}
.hd-sheet__title-input{font-size:20px;font-weight:700;padding:6px 10px;margin:0 0 10px;
  border-radius:8px;width:100%;background:transparent;color:var(--hd-title)}
.hd-sheet__meta{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:12.5px;color:var(--hd-secondary);
  margin:0 0 28px;padding-bottom:18px;border-bottom:1px solid #e5e7ec}
.hd-sheet__body{display:flex;flex-direction:column;gap:22px}
.hd-sheet--edit{gap:16px}
.hd-sheet--edit .hd-field{margin-bottom:6px}
.hd-point{display:flex;flex-direction:column;gap:8px}
.hd-point__h{font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  color:var(--hd-section);margin:0 0 2px;display:flex;align-items:center;gap:8px}
.hd-field{display:flex;flex-direction:column;gap:2px}
.hd-field__l{font-size:12px;color:var(--hd-secondary)}
.hd-field__v{font-size:14.5px;line-height:1.55;white-space:pre-wrap;color:var(--hd-body)}
.hd-field--missing .hd-field__l{font-weight:600;color:#8a5a00}
.hd-note{font-size:13px;padding:8px 12px;border-radius:10px;background:#eef1f6;
  color:var(--hd-body);display:flex;gap:8px;flex-wrap:wrap}
.hd-note__l{color:var(--hd-secondary)}

/* Управление документом — рядом с листом, не заменяет его. */
.hd-side__card{background:var(--c-surface-2);border:1px solid var(--c-line);
  border-radius:14px;padding:14px}
.hd-side__h{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;
  color:var(--c-ink-soft);margin:0 0 10px}
.hd-side__row{margin:0 0 10px}
.hd-side__lab{display:block;font-size:11.5px;color:var(--c-ink-faint);margin:0 0 4px}
.hd-side__wide{width:100%;margin:0 0 8px;justify-content:center}
.hd-side__wide:last-child{margin-bottom:0}
.hd-side__note{font-size:12px;line-height:1.5;margin:0 0 8px}
/* .hd-side__ver удалён вместе с технической строкой `template_version ·
   contract_version` на карточке документа (REVIEW-029-R6 P2.2) — служебные
   идентификаторы остаются в API-модели и аудите, но не на глазах у
   пользователя. Класс больше не используется, правило снято. */
.hd-side__point{display:flex;flex-direction:column;gap:6px;padding:8px 0;
  border-top:1px solid var(--c-line)}
.hd-side__point:first-of-type{border-top:none}
.hd-side__point-h{font-size:11.5px;color:var(--c-ink-faint)}

@media (max-width:1080px){
  .hd-page__grid{grid-template-columns:1fr}
  .hd-page__side{position:static}
}

/* История-папка (не document-page): 390px-правила из R1 не тронуты по решению
   владельца (DECISION-029-desktop-first-mobile-deferred) — оставлены как были
   для экрана списка, единственное, что относилось именно к модалке (снятой в
   R2), убрано вместе с ней. */
@media (max-width:520px){
  .hd-list ~ *, .hd-filters ~ *{min-width:0}
  .hd-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
  .hd-head .folder-detail__title{flex:1 1 100%;order:2;min-width:0}
  .hd-head #hd-new{order:3;margin-left:0!important;flex:1 1 auto}
  .hd-head #hd-back{order:1}
  .hd-row__top{flex-wrap:wrap}
  .hd-row__title{flex:1 1 100%}
  .hd-filters__q{max-width:none;width:100%}
}
