/* Git_Plan — дизайн-система (батч C). Эталон: prototype/style.css, перенос 1:1.
   Токены и компоненты обязательны для всех страниц; новые цвета, шрифты,
   тени и радиусы без согласования запрещены. */
:root{
  --bg:#faf8f4;          /* тёплый нейтральный фон */
  --surface:#ffffff;
  --ink:#231f20;         /* почти-чёрный, тёплый */
  --ink-60:rgba(35,31,32,.62);
  --ink-40:rgba(35,31,32,.42);
  --line:rgba(35,31,32,.14);
  --line-soft:rgba(35,31,32,.08);
  --accent:#c2410c;      /* терракотовый — единственный акцент */
  --accent-soft:rgba(194,65,12,.09);
  --good:#15803d;
  --bad:#b91c1c;
  --warn:#a16207;
  --mono:"IBM Plex Mono",ui-monospace,monospace;
  --sans:"IBM Plex Sans",-apple-system,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  --r:6px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{font-size:14px}
body{font-family:var(--sans);background:var(--bg);color:var(--ink);font-size:.92rem;line-height:1.45}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.mono{font-family:var(--mono)}
.muted{color:var(--ink-60);font-size:.84rem}
[hidden]{display:none}   /* урок прототипа: атрибут hidden проигрывает явному display */

/* ---------- каркас ---------- */
.topbar{position:fixed;inset:0 0 auto 0;height:52px;background:var(--surface);border-bottom:1px solid var(--line);
  display:flex;align-items:center;gap:18px;padding:0 20px;z-index:50}
.logo{font-weight:600;font-size:1.05rem;letter-spacing:-.01em;color:var(--ink)}
.logo:hover{text-decoration:none}
.logo span{color:var(--accent)}
.nav{display:flex;gap:2px;margin-left:12px}
.nav a{color:var(--ink-60);padding:6px 11px;font-size:.86rem;text-decoration:none}
.nav a:hover{color:var(--ink);text-decoration:none}
.nav a.active{color:var(--ink);font-weight:500;box-shadow:inset 0 -2px 0 var(--accent)}
.persona{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--ink);cursor:pointer;
  border:1px solid var(--line);border-radius:999px;padding:5px 12px;background:var(--surface)}
.persona-dot{width:8px;height:8px;border-radius:50%;background:var(--accent)}
.persona-caret{color:var(--ink-40);font-size:.7rem}

.sidebar{position:fixed;top:52px;bottom:0;left:0;width:230px;background:var(--surface);
  border-right:1px solid var(--line);padding:14px 0;overflow:auto}
.sidebar-title{font-size:.68rem;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-40);
  padding:4px 16px 10px}
.tree{list-style:none;font-size:.86rem}
.tree ul{list-style:none;margin-left:14px;border-left:1px solid var(--line-soft);padding-left:6px}
.tree li{padding:4px 8px;color:var(--ink-60);cursor:default}
.tree .t-node{color:var(--ink);font-weight:500}
.tree .t-leaf{color:var(--ink-60);padding-left:22px}
.tree .tgl{display:inline-flex;width:16px;justify-content:center;color:var(--ink-40);cursor:pointer;font-size:.7rem}
.tgl:hover{color:var(--accent)}
.sidebar-note{margin:18px 16px 0;font-size:.74rem;color:var(--ink-40);border-top:1px solid var(--line-soft);padding-top:12px}

.content{margin:52px 0 0 230px;padding:26px 30px 60px;max-width:1280px}
.content-wide{margin-left:0;max-width:1100px}

.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}
.page-head h1{font-size:1.35rem;font-weight:600;letter-spacing:-.01em;margin-bottom:4px}

/* ---------- чипы контекста ---------- */
.chips{display:flex;gap:8px;align-items:center;margin:0 0 14px;flex-wrap:wrap}
.chip{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;padding:4px 10px;border-radius:999px;
  border:1px solid var(--line);background:var(--surface);color:var(--ink-60);cursor:pointer}
.chip b{font-weight:500;color:var(--ink)}
.chip-accent{border-color:rgba(194,65,12,.35);background:var(--accent-soft);color:var(--accent)}
.chip-select select{border:0;background:transparent;font:inherit;font-weight:500;color:var(--ink);cursor:pointer;max-width:230px}
.chip-select select:focus{outline:none}
.btn-fix{margin-left:auto}

/* ---------- сравнение версий ---------- */
.compare-block{border-top:1px solid var(--line);background:#fdfbf7}
.compare-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;
  font-size:.82rem;color:var(--ink-60);border-bottom:1px solid var(--line-soft)}
.compare-head b{color:var(--ink)}
table.fin.compare th.col-art{vertical-align:bottom}
table.fin.compare tr.grp th{text-align:center;border-left:1px solid var(--line-soft);font-size:.74rem}
table.fin.compare tr.sub2 th{font-size:.66rem}
table.fin.compare td{border-left:1px solid var(--line-soft)}
table.fin.compare td:nth-child(3n+2){border-left:1px solid var(--line-soft)}
.diff-add{color:var(--good);background:rgba(21,128,61,.08)}
.selcol{width:34px;text-align:center}
table.selectable tbody tr{cursor:pointer}
table.selectable tbody tr.selected td{background:var(--accent-soft)}
table.selectable input[type=radio]{accent-color:var(--accent);cursor:pointer}

/* ---------- структура: привязки, мастер ---------- */
td.pad-3{padding-left:110px}
tr.bind>td{border-bottom:1px dashed var(--line-soft);height:26px}
.modal-lg{width:620px}
.wizard-steps{display:flex;gap:18px;margin-bottom:16px;border-bottom:1px solid var(--line-soft);padding-bottom:10px}
.wstep{font-size:.78rem;color:var(--ink-40);font-family:var(--mono)}
.wstep.on{color:var(--accent);font-weight:500}
.dropzone{border:1.5px dashed var(--line);border-radius:8px;background:var(--bg);
  padding:34px 20px;text-align:center;font-size:.9rem;margin-top:14px}
.dropzone .muted{font-size:.76rem}
.preview-tree{border:1px solid var(--line);border-radius:var(--r);background:var(--bg);
  padding:12px 16px;font-size:.86rem;margin-top:12px;max-height:260px;overflow:auto}
.preview-tree .mono{color:var(--ink-40);font-size:.72rem;margin-left:8px}
.pt-node{font-weight:600;padding:3px 0}
.pt-leaf{color:var(--ink-60);padding:3px 0}
.pt-1{padding-left:24px}
.pt-2{padding-left:48px}
.pt-3{padding-left:72px}
.bind-select{font:inherit;font-size:.82rem;padding:4px 8px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);min-width:240px}
.btn:disabled{opacity:.45;cursor:default}
.btn:disabled:hover{background:var(--surface)}
.btn.primary:disabled:hover{background:var(--accent)}

/* ---------- структура: пустое состояние ---------- */
.empty-state{padding:60px 20px}
.empty-inner{max-width:560px;margin:0 auto;text-align:center}
.empty-inner h2{font-size:1.15rem;font-weight:600;margin-bottom:10px}
.empty-inner .muted{margin-bottom:10px}
.empty-inner .btn{margin-top:14px}

/* ---------- маппинг статей ---------- */
.map-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start;margin-bottom:20px}
.map-list{max-height:420px;overflow:auto}
.map-item{padding:7px 14px;font-size:.85rem;border-bottom:1px solid var(--line-soft);cursor:pointer;color:var(--ink-60)}
.map-item:hover{background:var(--accent-soft)}
.map-item.sel{background:var(--accent-soft);color:var(--ink);font-weight:500;border-left:2px solid var(--accent)}
.map-item.mapped{color:var(--ink-40);cursor:default}
.map-item.mapped:hover{background:transparent}
.map-item .muted{font-size:.72rem}
.map-tree{max-height:420px;overflow:auto;padding:8px 0;font-size:.85rem}
.mt-node{padding:5px 14px;font-weight:500}
.mt-node .mt-name{cursor:pointer}
.mt-node .mt-name:hover{color:var(--accent)}
.mt-node.sel{background:var(--accent-soft);border-left:2px solid var(--accent)}
.mt-node .tgl{font-size:.7rem;color:var(--ink-40)}
.mt-leaf{padding:4px 14px;color:var(--ink-60);cursor:pointer}
.mt-leaf:hover{background:var(--accent-soft)}
.mt-leaf.sel{background:var(--accent-soft);color:var(--ink);font-weight:500;border-left:2px solid var(--accent)}
.mt-leaf .mono{font-size:.68rem;color:var(--ink-40);margin-left:6px}
.map-action{display:flex;align-items:center;gap:12px;padding:12px 16px;border-top:1px solid var(--line-soft);font-size:.82rem}
.map-action .muted{flex:1}

/* ---------- модальное окно и тост ---------- */
.modal-backdrop{position:fixed;inset:0;background:rgba(35,31,32,.4);z-index:100;display:flex;align-items:center;justify-content:center}
.modal-backdrop[hidden]{display:none}
.modal{background:var(--surface);border-radius:8px;border:1px solid var(--line);padding:22px 24px;width:440px;max-width:92vw}
.modal h3{font-size:1.05rem;font-weight:600;margin-bottom:8px}
.modal .muted{margin-bottom:14px}
.modal-label{display:block;font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-40);margin-bottom:5px}
.modal input[type=text]{width:100%;font:inherit;padding:7px 10px;border:1px solid var(--line);border-radius:var(--r);background:var(--bg)}
.modal input[type=text]:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}
.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:110;
  background:var(--ink);color:#faf8f4;font-size:.84rem;padding:10px 18px;border-radius:var(--r);max-width:90vw}
.toast[hidden]{display:none}
.banner{font-size:.8rem;color:var(--warn);background:rgba(161,98,7,.08);border:1px solid rgba(161,98,7,.25);
  border-radius:var(--r);padding:7px 12px;margin-bottom:20px}

/* ---------- KPI ---------- */
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border:1px solid var(--line);
  border-radius:var(--r);background:var(--surface);margin-bottom:20px;overflow:hidden}
.kpi{padding:14px 18px;border-right:1px solid var(--line-soft)}
.kpi:last-child{border-right:0}
.kpi-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-40)}
.kpi-value{font-size:1.5rem;font-weight:600;font-variant-numeric:tabular-nums lining-nums;letter-spacing:-.02em;margin-top:2px}
.kpi-sub{font-size:.74rem;color:var(--ink-40);margin-top:2px}

/* ---------- панели ---------- */
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-bottom:20px}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:12px 16px;border-bottom:1px solid var(--line-soft);flex-wrap:wrap}
.panel-head h2{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-60)}
.panel-actions{display:flex;gap:8px}

/* ---------- плотная финансовая таблица ---------- */
.table-wrap{overflow:auto}
table.fin{border-collapse:collapse;width:100%;font-size:.82rem}
table.fin th,table.fin td{padding:0 10px;height:30px;white-space:nowrap;border-bottom:1px solid var(--line-soft)}
table.fin th{font-weight:500;color:var(--ink-40);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;
  border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--surface);z-index:2}
table.fin th.num,table.fin td.num{text-align:right;font-variant-numeric:tabular-nums lining-nums}
table.fin th.col-art,table.fin td.col-art{text-align:left;position:sticky;left:0;background:var(--surface);z-index:1;
  min-width:240px;border-right:1px solid var(--line-soft)}
table.fin th.col-art{z-index:3}
table.fin tr:hover td{background:#fdf9f4}
tr.node>td{font-weight:600}
tr.node.sub>td{font-weight:500}
tr.leaf>td{color:var(--ink)}
table.fin td.pad-1{padding-left:48px}
table.fin td.pad-2{padding-left:84px;color:var(--ink-60)}
tr.total>td{font-weight:600;background:#faf6ef;border-top:1px solid var(--line)}
tr.total>td.col-art{background:#faf6ef}
tr.total.grand>td{background:#f4ecdf}
tr.total.grand>td.col-art{background:#f4ecdf}
.tgl{display:inline-flex;width:18px;justify-content:center;color:var(--ink-40);cursor:pointer;font-size:.7rem;margin-right:4px}
.mark{font-family:var(--mono);font-size:.68rem;color:var(--ink-40);margin-left:6px}
.legend{display:flex;gap:22px;padding:10px 16px;font-size:.74rem;color:var(--ink-40);border-top:1px solid var(--line-soft)}

/* ---------- diff ---------- */
.diff-add{color:var(--good);background:rgba(21,128,61,.08)}
.diff-del{color:var(--bad);text-decoration:line-through;text-decoration-color:rgba(185,28,28,.5)}

/* ---------- файлы ---------- */
.fileblock{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);margin-bottom:14px;overflow:hidden}
.fileblock-head{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:12px 16px;border-bottom:1px solid var(--line-soft);flex-wrap:wrap}
.fileblock-head h2{font-size:.95rem;font-weight:600;margin-bottom:2px}
.fileblock-actions{display:flex;gap:8px}
table.vers{width:100%;border-collapse:collapse;font-size:.82rem}
table.vers th,table.vers td{padding:7px 16px;text-align:left;border-bottom:1px solid var(--line-soft)}
table.vers th{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-40);font-weight:500}
table.vers tr:last-child td{border-bottom:0}
.tag{display:inline-block;font-size:.7rem;padding:2px 8px;border-radius:999px;border:1px solid var(--line);color:var(--ink-60)}
.tag.ok{border-color:rgba(21,128,61,.4);color:var(--good);background:rgba(21,128,61,.06)}
.tag.no{color:var(--ink-40)}
.tag.anchor{border-color:rgba(194,65,12,.4);color:var(--accent);background:var(--accent-soft)}

/* ---------- шкала времени ---------- */
.timeline{padding:18px 22px 8px}
.timeline input[type=range]{width:100%;accent-color:var(--accent);cursor:pointer}
.timeline-marks{display:flex;justify-content:space-between;font-family:var(--mono);font-size:.72rem;color:var(--ink-40);padding:6px 2px 10px}

/* ---------- кнопки ---------- */
.btn{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;font-weight:500;padding:6px 14px;
  border-radius:var(--r);border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;text-decoration:none}
.btn:hover{background:#f5efe6;text-decoration:none}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.primary:hover{background:#a33608}
.btn.danger{color:var(--bad);border-color:rgba(185,28,28,.4)}
.btn.danger:hover{background:rgba(185,28,28,.06)}

/* форма в модалках + выбор строки дерева (Структура) */
.form-row{margin:10px 0}
.form-row label{display:block;font-size:.78rem;color:var(--muted);margin-bottom:4px}
.modal select{width:100%;font:inherit;padding:7px 10px;border:1px solid var(--line);border-radius:var(--r);background:var(--bg)}
table.fin tbody tr.sel td{background:var(--accent-soft)}

/* ==================================================================
   Дополнения для Django-шаблонов (те же токены; новых цветов не вводим)
   ================================================================== */

/* переключатель персоны в шапке — выглядит как чип .persona эталона */
.persona-form{margin-left:auto}
.persona-form select{appearance:none;-webkit-appearance:none;border:1px solid var(--line);
  border-radius:999px;padding:5px 26px 5px 12px;background:var(--surface);font:inherit;
  font-size:.85rem;color:var(--ink);cursor:pointer;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='6'%3E%3Cpath d='M0 0l4 6 4-6z' fill='%23231f20' fill-opacity='.42'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 10px center}
.persona-form select:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}

/* flash-сообщения Django — как тост эталона */
.toast-stack{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:110;
  display:flex;flex-direction:column;gap:8px;align-items:center}
.toast-stack .toast{position:static;transform:none}
.toast.err{background:var(--bad)}

/* кнопка-ссылка (действия в таблицах: «Установить рабочей») */
button.link, .linklike{background:none;border:0;color:var(--accent);cursor:pointer;
  font:inherit;font-size:inherit;padding:0;text-align:left}
button.link:hover, .linklike:hover{text-decoration:underline}

/* поля форм мастеров (загрузка, маппинг, коммит) — в токенах эталона */
.form-row input[type=text],.form-row input[type=file],.form-row input[type=number],
.form-row select,.form-row input:not([type]){
  font:inherit;font-size:.9rem;padding:7px 10px;border:1px solid var(--line);
  border-radius:var(--r);background:var(--bg);width:100%;max-width:560px}
.form-row input:focus,.form-row select:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}
.form-row label{display:block;font-size:.78rem;color:var(--ink-40);margin-bottom:4px}
.form-check{display:flex;align-items:center;gap:8px;font-size:.86rem;margin:12px 0}
.form-check input{accent-color:var(--accent)}
details.alt{margin:14px 0}
details.alt summary{cursor:pointer;color:var(--accent);font-size:.86rem}

/* строка действий в таблице версий */
.row-actions{display:flex;gap:10px;align-items:center;white-space:nowrap}

/* светофор конгруэнтности (в токенах good/warn/bad) */
.light{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:8px;vertical-align:middle}
.light.green{background:var(--good)}
.light.yellow{background:var(--warn)}
.light.red{background:var(--bad)}

/* примечание-расшифровка под заголовком таблицы */
.note{color:var(--ink-40);font-size:.78rem;max-width:640px}

/* ссылки в боковом дереве «Структура бюджета» */
.tree a{color:inherit;text-decoration:none}
.tree a:hover{color:var(--accent);text-decoration:none}

/* ---------- батч R1: мастер загрузки и отчёт ERR-1 (эталон v992) ---------- */
.form-tabs{display:flex;gap:6px;margin-bottom:16px;flex-wrap:wrap}
.form-tab{padding:6px 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface);
  font-size:.84rem;cursor:pointer;color:var(--ink-60);text-decoration:none;display:inline-block}
.form-tab:hover{color:var(--ink);text-decoration:none}
.form-tab.active{border-color:rgba(194,65,12,.5);color:var(--accent);background:var(--accent-soft);font-weight:500}
.err-badge{display:inline-flex;align-items:center;font-family:var(--mono);font-size:.66rem;padding:1px 7px;
  border-radius:999px;margin-left:8px;cursor:help;white-space:nowrap}
.err-badge.warn{border:1px solid rgba(161,98,7,.45);color:var(--warn);background:rgba(161,98,7,.08)}
.err-badge.info{border:1px solid rgba(21,128,61,.4);color:var(--good);background:rgba(21,128,61,.06)}
.err-badge.blocker{border:1px solid rgba(185,28,28,.45);color:var(--bad);background:rgba(185,28,28,.07)}
.finding{display:flex;gap:12px;align-items:flex-start;padding:10px 16px;border-bottom:1px solid var(--line-soft);font-size:.84rem}
.finding:last-child{border-bottom:0}
.finding .f-code{font-family:var(--mono);font-size:.74rem;color:var(--ink-60);white-space:nowrap;padding-top:1px;min-width:64px}
.finding .f-body{flex:1;min-width:0}
.finding .f-where{font-size:.76rem;color:var(--ink-40);margin-top:2px}
.finding .f-todo{font-size:.78rem;margin-top:4px;color:var(--ink)}
.finding.acked{opacity:.55}
.finding .f-state{white-space:nowrap;padding-top:1px}
.err-report .finding{border:1px solid var(--line-soft);border-radius:var(--r);margin:8px 16px}
.err-report .finding:first-of-type{margin-top:12px}
.content-full{margin-left:0;max-width:none}
.grid-wrap{overflow:auto;max-width:100%;border:1px solid var(--line-soft);border-radius:var(--r)}
table.gridpv{border-collapse:collapse;font-family:var(--mono);font-size:.72rem}
table.gridpv th,table.gridpv td{border:1px solid var(--line-soft);padding:2px 8px;white-space:nowrap;max-width:170px;overflow:hidden;text-overflow:ellipsis}
table.gridpv th{background:#f4f2ed;color:var(--ink-60);position:sticky;left:0}
td.cell-per{background:#e8f0fe}
td.cell-val{background:#e6f4ea}
td.cell-art{background:#fdf0e4}
td.cell-ref{background:#fafafa;color:#9aa1ab}
.sw{display:inline-block;width:11px;height:11px;border-radius:2px;margin-right:5px;vertical-align:-1px}
.sw-art{background:#fdf0e4;border:1px solid #e0b98a}
.sw-per{background:#e8f0fe;border:1px solid #9db8e8}
.sw-val{background:#e6f4ea;border:1px solid #93cf9f}
.sw-ref{background:#fafafa;border:1px solid #d7dbe0}
.sw-dim{background:#f3e8fd;border:1px solid #c4a5e8}
.markup-grid{display:flex;gap:26px;flex-wrap:wrap;align-items:flex-start}
.markup-grid .form-row{min-width:250px}
.ver-comment{font-size:.78rem;color:var(--ink-60);margin-top:2px}
#diffGrid td.d-chg{background:#ffdcb0;font-weight:600;cursor:pointer}
#diffGrid tr.d-ins td{background:#e6f4ea}
#diffGrid tr.d-del td{background:#fdeceb;color:#9a3c3c;text-decoration:line-through}
#diffGrid tr.d-mov td,#diffGrid tr.d-movnew td{background:#e8f0fe;color:#3b5b8c;font-style:italic}
#diffGrid tr.d-fold td{background:#f4f2ed;color:var(--ink-60);text-align:center;cursor:pointer;font-size:.75rem;padding:4px}
#diffGrid tr.d-fold:hover td{background:#eceadf}
#diffGrid td .d-old{font-size:.68rem;color:var(--bad);font-weight:400}
#diffGrid tr.d-flash th,#diffGrid tr.d-flash td{box-shadow:inset 0 0 0 2px var(--accent)}

/* ---------- R2: «Консолидированный бюджет» (перенос 1:1 из prototype/style.css) ---------- */

/* строки элиминации ВГО на «Консолидированном бюджете» */
table.fin tr.elim-row td{font-style:italic;color:var(--warn,#a16207);background:rgba(161,98,7,.05);border-top:1px dashed rgba(161,98,7,.35)}

/* дрилл-даун: состав статьи из статей бюджетов ЦФО */
table.fin .dd-tgl{display:inline-flex;width:16px;justify-content:center;color:var(--ink-40);cursor:pointer;font-size:.7rem}
table.fin .dd-tgl:hover{color:var(--accent)}
table.fin tr.dd-row td{background:#f4f7fb;color:var(--ink-70);font-size:.85rem;border-bottom:1px dotted var(--line-soft)}
table.fin tr.dd-row td.col-art{background:#f4f7fb}
table.fin tr.dd-row.dd-note td{color:var(--ink-40);font-style:italic}

.subnav{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap}

tr.has-err>td.col-art{box-shadow:inset 2px 0 0 var(--warn)}

/* сводные строки мастер-бюджетов: Чистая прибыль, ЧДП, денежный мост */
tr.sum-row td{background:#f4f6f9;border-top:2px solid var(--line)}

/* сравнение версий консолидированного бюджета: 3 колонки на месяц */
table.cmp td.num, table.cmp th.num{padding:4px 6px;font-size:12px;white-space:nowrap}
table.cmp thead th{border-bottom:1px solid var(--line)}

/* БДДС: предупреждение денежного моста — под таблицей, с переносом строк */
.bridge-note{padding:10px 16px;color:var(--ink-40);font-style:italic;white-space:normal;line-height:1.55;border-top:1px dashed var(--line)}

/* --- R4: драйверы, связи показателей, выпадающая навигация (порт эталона v992) --- */
.modal.modal-wide{width:60vw;max-width:92vw;max-height:85vh;overflow:auto;display:flex;flex-direction:column}
.modal.modal-wide .modal-actions{position:sticky;bottom:-22px;background:var(--surface);padding:10px 0 2px;border-top:1px solid var(--line-soft);margin-top:auto}
.tag.tag-err{background:#d92d20;border-color:#d92d20;color:#fff;font-weight:700}
.nav-group{position:relative;display:inline-flex;align-items:center}
.nav-group-title{cursor:pointer}
.nav-caret{color:var(--ink-40);font-size:.7rem;margin-left:2px}
a.active .nav-caret{color:var(--ink)}
.nav-group .nav-sub{display:none;position:absolute;top:100%;left:0;min-width:190px;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px rgba(35,31,32,.12);padding:6px;z-index:60}
.nav-group:hover .nav-sub,.nav-group.open .nav-sub{display:block}
.nav-group .nav-sub a{display:block;padding:7px 12px;border-radius:6px;white-space:nowrap}
.nav-group .nav-sub a:hover{background:#f4f2ed}
.nav-group .nav-sub a.active{background:#eef4ff;font-weight:600}
td.cell-dim{background:#f3e8fd}
