:root{--blue:#00694c;--blue2:#00835d;--blue3:#e3f2ec;--red:#c8102e;--ink:#1b2430;--mut:#5d6b7c;--line:#d9e0ea;--bg:#f3f6fa;--card:#fff;--ok:#1e7f4f;--warn:#b76e00;--err:#c8102e;
--fb:#7a8ea8;--bmo:#00694c;--bomsu:#5fb89a;--vbs:#c9a227}
*{box-sizing:border-box}
body{margin:0;font:14px/1.45 "PT Sans","Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg)}
a{color:var(--blue2);text-decoration:none}a:hover{text-decoration:underline}
header.top{background:var(--blue);color:#fff;display:flex;align-items:center;gap:14px;padding:10px 20px;border-bottom:4px solid #00a36c}
header.top .emb{width:38px;height:44px;flex:none}
header.top .t1{font-size:12px;opacity:.85;text-transform:uppercase;letter-spacing:.04em}
header.top .t2{font-size:17px;font-weight:700}
header.top .me{margin-left:auto;text-align:right;font-size:13px}
header.top .me form{display:inline}header.top .me button{background:none;border:1px solid #ffffff80;color:#fff;border-radius:4px;padding:3px 10px;cursor:pointer;margin-left:8px}
.shell{display:flex;align-items:flex-start}
nav.main{background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;width:220px;flex:none;position:sticky;top:0;height:100vh;padding:10px 0;overflow:auto}
nav.main a{padding:10px 18px;color:var(--ink);font-weight:600;border-left:4px solid transparent}
nav.main a.on{color:var(--blue);border-left-color:var(--blue);background:var(--blue3)}nav.main a:hover{text-decoration:none;background:var(--blue3)}
main{padding:18px 20px 40px;flex:1;min-width:0;max-width:1600px}
@media(max-width:800px){.shell{display:block}nav.main{width:auto;height:auto;position:static;flex-direction:row;flex-wrap:wrap;border-right:0;border-bottom:1px solid var(--line)}}
h1{font-size:22px;margin:4px 0 14px;color:var(--blue)}h2{font-size:16px;margin:0 0 10px;color:var(--blue)}h3{font-size:14px;margin:12px 0 6px}
.card{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:14px 16px;margin-bottom:16px}
.grid{display:grid;gap:16px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1000px){.g2,.g3,.g4{grid-template-columns:1fr}}
.kpi{background:#fff;border:1px solid var(--line);border-left:4px solid var(--blue);border-radius:8px;padding:12px 14px}
.kpi .v{font-size:24px;font-weight:700;color:var(--blue)}.kpi .l{color:var(--mut);font-size:12px;text-transform:uppercase;letter-spacing:.03em}.kpi .s{font-size:12px;color:var(--mut)}
.kpi.red{border-left-color:var(--red)}.kpi.red .v{color:var(--red)}
table{border-collapse:collapse;width:100%;background:#fff}
th,td{border-bottom:1px solid var(--line);padding:6px 8px;text-align:left;vertical-align:top}
th{background:#eef5f1;font-size:12px;color:#22392f;font-weight:700;position:sticky;top:0;z-index:1}
td.n,th.n{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
tr.tot td{font-weight:700;background:#f7f9fc}
th.win,td.win{background:#eaf6f0}
.tw{overflow:auto;max-height:75vh;border:1px solid var(--line);border-radius:6px}
.tw th{top:0}
.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:end;margin-bottom:12px}
.filters label{display:flex;flex-direction:column;font-size:12px;color:var(--mut);gap:2px}
input,select,textarea{font:inherit;padding:5px 8px;border:1px solid #b8c4d4;border-radius:4px;background:#fff;max-width:100%}
textarea{width:100%;min-height:60px}
button,.btn{font:inherit;font-weight:600;background:var(--blue);color:#fff;border:0;border-radius:4px;padding:6px 14px;cursor:pointer;display:inline-block}
.btn:hover,button:hover{filter:brightness(1.1);text-decoration:none}
.btn.sec,button.sec{background:#fff;color:var(--blue);border:1px solid var(--blue)}
button.red,.btn.red{background:var(--red)}button.ok{background:var(--ok)}
.tag{display:inline-block;padding:1px 8px;border-radius:10px;font-size:12px;background:var(--blue3);color:var(--blue);white-space:nowrap}
.st-draft{background:#eceff3;color:#444}.st-review{background:#fff3d6;color:#8a5a00}.st-mef{background:#e9e2ff;color:#4b2fa5}.st-approved{background:#dff3e8;color:#1e7f4f}
.st-applied{background:var(--blue);color:#fff}.st-returned{background:#ffe3e3;color:#a10f25}.st-rejected{background:#f2f2f2;color:#888;text-decoration:line-through}
.flash{padding:10px 14px;border-radius:6px;margin-bottom:12px;background:#dff3e8;color:#145c38;border:1px solid #b7e0c9}
.flash.err{background:#ffe7e9;color:#8b0d20;border-color:#f3b8c0}
.ctl{padding:4px 0}.ctl.ok::before{content:"✔ ";color:var(--ok)}.ctl.warn::before{content:"⚠ ";color:var(--warn)}.ctl.err::before{content:"✖ ";color:var(--err)}.ctl.err{color:var(--err)}
.bars .row{display:grid;grid-template-columns:190px 1fr 110px;gap:8px;align-items:center;margin:4px 0;font-size:13px}
.bars .bar{height:16px;background:var(--blue3);border-radius:3px;overflow:hidden;display:flex}
.bars .bar span{display:block;height:100%}
.legend{display:flex;gap:12px;font-size:12px;color:var(--mut);margin:4px 0 8px;flex-wrap:wrap}.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:-1px}
.cols{display:flex;align-items:flex-end;gap:10px;height:200px;padding:6px 4px 0;border-bottom:1px solid var(--line)}
.cols .c{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch;height:100%;position:relative;min-width:24px}
.cols .c span{display:block}.cols .lab{display:flex;gap:10px;font-size:12px;color:var(--mut)}.cols .lab div{flex:1;text-align:center;min-width:24px}
.cols .c .val{position:absolute;top:-2px;width:100%;text-align:center;font-size:11px;color:var(--mut);transform:translateY(-100%)}
.cols .c.out span{opacity:.45}
.grp{display:flex;gap:2px;align-items:flex-end;height:100%;flex:1}.grp span{flex:1;border-radius:2px 2px 0 0}
.stages{display:flex;gap:4px;margin:8px 0}.stages div{flex:1;font-size:11px;padding:6px;border-radius:4px;background:#eef1f5;color:var(--mut);min-height:46px}
.stages div.done{background:#cfe8dc;color:var(--blue)}.stages div.cur{background:var(--blue);color:#fff;font-weight:700}
.muted{color:var(--mut)}.small{font-size:12px}.right{text-align:right}.nowrap{white-space:nowrap}
.dl{display:grid;grid-template-columns:220px 1fr;gap:4px 12px}.dl dt{color:var(--mut)}.dl dd{margin:0}
.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px 14px}.form-grid label{display:flex;flex-direction:column;font-size:12px;color:var(--mut);gap:2px}
.tabs{display:flex;gap:4px;margin-bottom:10px;flex-wrap:wrap}.tabs a{padding:5px 12px;border:1px solid var(--line);border-radius:16px;background:#fff;color:var(--ink);font-size:13px}.tabs a.on{background:var(--blue);color:#fff;border-color:var(--blue)}
details summary{cursor:pointer;color:var(--blue2);font-weight:600}
.diff-old{color:#a10f25;text-decoration:line-through}.diff-new{color:#1e7f4f;font-weight:600}
.login{max-width:420px;margin:8vh auto;background:#fff;border:1px solid var(--line);border-top:5px solid var(--blue);border-radius:8px;padding:28px}
.login input{width:100%;margin:4px 0 12px;padding:9px}
.pos{color:var(--ok)}.neg{color:var(--err)}
input.cell{width:100px;text-align:right}
.pager a{margin-right:6px}
.yearsel{margin-left:auto}.yearsel label{color:#fff;font-size:13px;display:flex;gap:6px;align-items:center}.yearsel select{font-weight:700}
header.top .me{margin-left:16px}
.cyc{font-size:13px;color:var(--mut)}
.treebar{display:flex;gap:4px;align-items:center;margin:4px 0 6px}.treebar button{padding:2px 9px}
table.tree .tg{cursor:pointer;display:inline-block;width:1.2em;color:var(--blue);user-select:none}table.tree tr.open>td>.tg{transform:rotate(90deg)}
table.tree .tg0{display:inline-block;width:1.2em}
table.tree tr.l0 td{font-weight:700;background:#f2f8f5}table.tree tr.l1 td{font-weight:600}
.pbar{display:inline-block;width:60px;height:8px;background:#e6efe9;border-radius:4px;margin-right:6px;vertical-align:middle;overflow:hidden}.pbar span{display:block;height:100%;background:linear-gradient(90deg,#188166,#18c38a)}
.donut{width:120px;height:120px;border-radius:50%;display:grid;place-items:center;margin:auto}.donut div{width:84px;height:84px;border-radius:50%;background:#fff;display:grid;place-items:center;text-align:center;font-size:12px;color:var(--mut)}.donut b{display:block;font-size:20px;color:var(--ink)}
.hbars .r{display:grid;grid-template-columns:150px 1fr;gap:6px;align-items:center;margin:6px 0;font-size:12px}.hbars .b{display:flex;flex-direction:column;gap:2px}.hbars .b span{height:9px;border-radius:2px;display:block}.hbars .b i{font-style:normal;font-size:11px;color:var(--mut)}
.c-plan{background:#4b6fd6}.c-bo{background:#c9a227}.c-cash{background:#3aa66b}.c-rest{background:#c7ccd3}
.sticky-filters{position:sticky;top:0;background:var(--bg);z-index:3;padding:6px 0}
.hide-rq .rq{display:none}
.navsep{padding:14px 18px 4px;font-size:11px;text-transform:uppercase;color:var(--mut);letter-spacing:.05em}
/* --- оформление v2 --- */
body{background:#f4f7f5}
.pagehead{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:12px}.pagehead h1{margin:0}.pagehead .sub{color:var(--mut);font-size:13px;margin-top:2px}
.tag.big{font-size:13px;padding:4px 12px;background:#e3f2ec;color:var(--blue);font-weight:700}
.flow{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:6px 0 12px}
.flow>div{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:13px;position:relative}
.flow>div b{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#e3ebe6;color:var(--blue);margin-right:6px;font-size:12px}
.flow>div.on{border-color:var(--blue);box-shadow:0 0 0 2px #00694c22}.flow>div.on b{background:var(--blue);color:#fff}
.flow form{margin-top:6px;display:flex;gap:4px}.flow input{padding:3px 6px;font-size:12px}.flow button{padding:3px 8px;font-size:12px}
.split{display:grid;grid-template-columns:300px 1fr;gap:14px;align-items:start}
@media(max-width:1100px){.split{grid-template-columns:1fr}.flow{grid-template-columns:1fr 1fr}}
.evlist{background:#fff;border:1px solid var(--line);border-radius:10px;max-height:78vh;overflow:auto;position:sticky;top:8px}
.evlist a{display:block;padding:8px 12px;border-bottom:1px solid #eef2f0;color:var(--ink);font-size:13px;line-height:1.3}
.evlist a:hover{background:#f2f8f5;text-decoration:none}.evlist a.on{background:#e3f2ec;border-left:4px solid var(--blue)}
.evlist a span{color:#3d4b45}.evlist a i{display:block;font-style:normal;font-size:11px;color:var(--mut);margin-top:2px}.evlist em{font-style:normal}
.chg{color:#d97706;font-size:12px}
table.calc tr.l0 td{background:#eef6f1}table.calc tr.srcrow td{color:#4b5a54;font-size:12px;background:#fbfcfb}
.card{border-radius:12px;box-shadow:0 1px 2px rgba(16,40,30,.04)}
th{background:#eef4f0;border-bottom:1px solid #d5e0da}
tr:hover>td{background-color:#f6faf8}
.tw{border-radius:10px;background:#fff}
table.tree tr.l0>td{background:#eaf4ee}table.tree tr.l1>td{background:#f5faf7}
table.sheet input.cell{width:92px;border-color:#c5d6cc;background:#fffef5}
table.sheet input.cell:focus{outline:2px solid #00835d55;background:#fff}
td.rq,th.rq{background:#fffbea}
.muted-col{color:var(--mut)}
table.pick tr{cursor:pointer}
nav.main a{font-size:14px}
button,.btn{border-radius:6px}
h1{font-size:24px;letter-spacing:-.01em}
table.reg{font-size:12.5px}table.reg th{vertical-align:bottom}
table.reg tr.stage th{text-align:center;font-size:13px;color:#fff;position:sticky;top:0}
table.reg .st3{background:#7a5c1e}table.reg .st2{background:#1f5f8b}table.reg .st1{background:var(--blue)}
table.reg thead tr:nth-child(2) th{top:34px}
table.reg tbody.blk{border-top:3px solid #c9d8cf}table.reg tr.head td{font-weight:700;background:#f2f8f5}
table.reg td{border-right:1px solid #eef2f0}
.rowtools{margin-top:6px;display:flex;gap:6px;align-items:center}.rowtools button{padding:2px 8px;font-size:12px}
dialog.dlg{border:0;border-radius:14px;padding:22px 26px;max-width:860px;width:92vw;box-shadow:0 20px 60px rgba(0,0,0,.25)}dialog.dlg::backdrop{background:rgba(20,40,30,.35)}
/* реестр субсидий v2 */
.kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:4px 0 14px}
.kpis>div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.kpis span{display:block;font-size:12px;color:var(--mut)}.kpis b{display:block;font-size:22px;color:var(--ink);margin:2px 0}.kpis b small{font-size:13px;color:var(--mut);font-weight:400}.kpis i{font-style:normal;font-size:12px;color:var(--mut)}
@media(max-width:1100px){.kpis{grid-template-columns:repeat(2,1fr)}}
.toolbar{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 12px}.toolbar .cyc{margin-left:auto}
table.subs{font-size:13px}table.subs th{white-space:nowrap}
table.subs tr.orgrow td{background:#e9f3ed;font-weight:700;cursor:pointer;border-top:2px solid #cfe0d6}
table.subs tbody.fold tr.obj,table.subs tbody.fold tr.det{display:none}table.subs tbody.fold .caret{display:inline-block;transform:rotate(-90deg)}
table.subs tr.obj{cursor:pointer}table.subs tr.obj td{padding:9px 8px;vertical-align:middle}table.subs tr.obj:hover td{background:#f4faf6}
table.subs tr.obj.open td{background:#eef7f1;border-bottom-color:transparent}
.oname{font-weight:600;max-width:440px;line-height:1.3}
table.subs tr.det{display:none}table.subs tr.obj.open+tr.det{display:table-row}table.subs tr.det>td{background:#f7fbf9;padding:0}
.det3{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:12px;padding:12px}
.det3 section{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 14px;min-width:0}
.det3 h4{margin:0 0 8px;font-size:14px;display:flex;gap:8px;align-items:center}.det3 h5{margin:10px 0 4px;font-size:12px;color:var(--mut);text-transform:uppercase}
dl.kv{display:grid;grid-template-columns:130px 1fr;gap:3px 10px;margin:0 0 8px;font-size:13px}dl.kv dt{color:var(--mut)}dl.kv dd{margin:0}
table.mini{font-size:12px;margin-top:4px}table.mini th{position:static;background:#f3f7f5}table.mini tr.b td{font-weight:700}
.line{display:flex;justify-content:space-between;gap:8px;font-size:13px;padding:2px 0;border-bottom:1px dashed #e4ebe7}
.con{border-left:3px solid #b7d3c4;padding:4px 0 6px 10px;margin-bottom:8px}
.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}
.b0{background:#eef1f3;color:#55606b}.b1{background:#e2edf8;color:#1f5f8b}.b2{background:#fff1d6;color:#8a5a00}.b3{background:#dcf2e6;color:#11643f}
.pbar.wide{width:100%;max-width:150px;height:7px;display:block;margin-bottom:3px}
.icon{padding:3px 8px;text-decoration:none}a.icon{font-size:13px}
@media(max-width:1200px){.det3{grid-template-columns:1fr}}
/* общая чистка */
header.top{padding:8px 20px;gap:12px;border-bottom:3px solid #00a36c}header.top .emb{width:30px;height:36px}header.top .t1{font-size:11px}header.top .t2{font-size:16px}
nav.main{width:210px;padding:12px 8px;gap:2px;background:#fbfdfc}
nav.main a{border-left:0;border-radius:8px;padding:9px 12px;font-weight:500;color:#2b3a33}
nav.main a.on{background:var(--blue);color:#fff;font-weight:600}nav.main a:hover:not(.on){background:#e8f3ed}
main{padding:20px 24px 48px}
.filters label{font-weight:500}
table{font-size:13px}th,td{padding:7px 9px}
.flash{border-radius:10px}
/* --- адаптивность и таблицы --- */
html,body{max-width:100%;overflow-x:hidden}
.burger{display:none;background:transparent;border:1px solid #ffffff66;color:#fff;font-size:18px;padding:2px 10px;border-radius:8px}
.tw{overflow:auto;-webkit-overflow-scrolling:touch;max-width:100%}
.tw>table{min-width:100%;width:max-content}
.tw th{position:sticky;top:0;z-index:2}
/* первая колонка закреплена при горизонтальной прокрутке */
.tw table.tree th:first-child,.tw table.tree td:first-child,.tw table.subs th:first-child,.tw table.subs td:first-child{position:sticky;left:0;z-index:1;background:#fff;box-shadow:1px 0 0 #dfe7e2}
.tw table.tree th:first-child,.tw table.subs th:first-child{z-index:3;background:#eef4f0}
.tw table.tree tr.l0>td:first-child{background:#eaf4ee}.tw table.tree tr.l1>td:first-child{background:#f5faf7}.tw table.tree tr.tot>td:first-child{background:#f7f9fc}
.tw table.tree td:first-child{min-width:320px;max-width:520px;white-space:normal}
td.n,th.n{white-space:nowrap}
.tw table.calc td:nth-child(2),.tw table.calc th:nth-child(2){position:sticky;left:0;background:#fff;z-index:1}
.tw table.calc td:first-child,.tw table.calc th:first-child{position:static;min-width:0;box-shadow:none}
@media (max-width:1100px){
  .grid.g4,.grid.g3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpis{grid-template-columns:repeat(2,1fr)}
  .split{grid-template-columns:1fr}.evlist{position:static;max-height:240px}
}
@media (max-width:860px){
  .burger{display:inline-block}
  header.top{flex-wrap:wrap;padding:8px 12px}header.top .t1{display:none}header.top .t2{font-size:14px}
  header.top .me{font-size:12px}header.top .me .small{display:none}
  .shell{display:block}
  nav.main{display:none;position:static;width:auto;height:auto;flex-direction:column;border-right:0;border-bottom:1px solid var(--line);padding:8px}
  body.navopen nav.main{display:flex}
  main{padding:14px 12px 40px}
  .grid.g2,.grid.g3,.grid.g4,.flow,.det3{grid-template-columns:1fr}
  .kpis{grid-template-columns:1fr 1fr;gap:8px}.kpis>div{padding:9px 10px}.kpis b{font-size:17px}.kpis i{font-size:11px}
  .filters{flex-direction:column;align-items:stretch}.filters label,.filters input,.filters select{width:100%}
  .toolbar .cyc{margin-left:0}
  .pagehead{flex-direction:column;align-items:flex-start}
  h1{font-size:20px}
  .tw table.tree td:first-child{min-width:220px}
  .form-grid{grid-template-columns:1fr}
  dl.kv{grid-template-columns:110px 1fr}
}
.kpis.k7{grid-template-columns:repeat(7,1fr)}@media(max-width:1300px){.kpis.k7{grid-template-columns:repeat(4,1fr)}}@media(max-width:860px){.kpis.k7{grid-template-columns:1fr 1fr}}
.applybox{border-left:4px solid var(--blue)}
table.sheet tr.restrow td,table.sheet tr[data-l="4"]:has(+ tr.restrow) td{background:#fff8e6}
table.sheet tr.restrow td:first-child{color:#8a5a00}
.chk{flex-direction:row!important;align-items:center;gap:8px;color:var(--ink)!important;font-size:13px!important;flex:1}
table.bud input,table.bud textarea{width:100%;min-height:32px}table.bud textarea{resize:vertical}table.bud input.cell{width:110px}
table.bud tr.newline td{background:#fbfdf4}
.badge.big{font-size:14px;padding:5px 14px}
/* Анимации: мягкое появление карточек и KPI, отклик кнопок и строк. Отключаются при prefers-reduced-motion. */
@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes flashin{from{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:none}}
.card,.kpi{animation:rise .35s cubic-bezier(.2,.7,.3,1) both;transition:box-shadow .2s,transform .2s}
.card:nth-child(2),.kpi:nth-child(2){animation-delay:.04s}.card:nth-child(3),.kpi:nth-child(3){animation-delay:.08s}
.card:nth-child(4),.kpi:nth-child(4){animation-delay:.12s}.kpi:nth-child(5){animation-delay:.16s}
.kpi:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(0,60,40,.10)}
.card:hover{box-shadow:0 4px 14px rgba(0,60,40,.06)}
button,.btn{transition:background .15s,transform .1s,box-shadow .15s}
button:hover,.btn:hover{background:var(--blue2);box-shadow:0 3px 10px rgba(0,105,76,.25)}
button:active,.btn:active{transform:scale(.97)}
tr{transition:background .15s}tr:hover td{background:#f2f8f5}
a{transition:color .15s}
input,select,textarea{transition:border-color .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--blue2);box-shadow:0 0 0 3px rgba(0,131,93,.15)}
.flash,.ctl{animation:flashin .3s ease-out both}
td.pos,td.neg{transition:color .2s}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
/* Подсветка изменений против редакции сравнения */
@keyframes chgpulse{0%{background:#ffe27a}100%{background:#fff4c2}}
td.chg,.legend-chg{background:#fff4c2;animation:chgpulse 1.2s ease-out;box-shadow:inset 3px 0 0 #e0a800;cursor:help}
.legend-chg{padding:1px 6px;border-radius:3px}
.edbar{align-items:flex-end}
table.btree input.cell{width:90px;text-align:right}table.btree tr.bgrp>td{font-weight:600;background:#f6faf8}table.btree td.b{font-weight:700}
/* Маршрут редакции ГП */
.tag.ed-draft{background:#eef2f7;color:#41526a}.tag.ed-mef{background:#fff1d6;color:#8a5a00}.tag.ed-approved{background:#e3f2ec;color:#00694c}
.edstages{display:flex;gap:6px;margin:6px 0 14px}.edstages span{flex:1;text-align:center;padding:6px;border-radius:6px;background:#eef2f7;color:var(--mut);font-size:13px;transition:background .3s}
.edstages span.on{background:var(--blue);color:#fff;font-weight:700;animation:rise .4s both}
.note{border-left:3px solid var(--line);padding:6px 10px;margin:6px 0;background:#fafbfd;border-radius:0 6px 6px 0;animation:rise .3s both}
.note.mef{border-left-color:#e0a800}.note.done{opacity:.6}
form.inline{display:inline}
/* СБР: срезы кассы, наборы колонок, чипы фильтров, проблемы строк */
.chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:4px 0 8px}
.chip{background:#e8f3ee;border:1px solid #b9d8c8;border-radius:14px;padding:2px 10px;font-size:12px;color:#14532d;text-decoration:none}.chip:hover{background:#d4ebe0}
.chkset{display:flex;gap:10px;align-items:center}.chk{display:flex!important;flex-direction:row!important;gap:4px;align-items:center;font-size:13px}
.slicebar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;background:#f4f8fc;border:1px solid #dbe6f0;border-radius:8px;padding:6px 12px;margin:6px 0}
.selh{font-size:14px;margin:8px 0 2px;color:#475569}
.colsets{margin:6px 0}.colsets a{padding:3px 10px}
.diffsum{background:#fff8e6;border:1px solid #f3d99b;border-radius:8px;padding:6px 12px;margin:6px 0;font-size:13px}
b.neg,.neg{color:#b91c1c}b.pos,.pos{color:#15803d}
table.tree tr.prob>td:first-child{box-shadow:inset 3px 0 0 #dc2626}
.probm{color:#b91c1c;font-size:11px;cursor:help;white-space:nowrap}
th.pre,td.pre{color:#64748b;background:#f8fafc}th.post,td.post{color:#475569;background:#f7f5fb}
.empty{color:#64748b;padding:14px;text-align:center}
/* Таблица ГП: панель фильтров, переключатели, уровни */
.fbar{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin:12px 0 8px}
.fmain{display:grid;grid-template-columns:2fr 2fr 2fr 1.2fr auto;gap:10px;align-items:end}
.fmain label,.fgrid label{display:flex;flex-direction:column;font-size:12px;color:var(--mut);gap:3px}
.fmain select,.fmain input,.fgrid select{width:100%}
.fmore{margin-top:8px}.fmore summary{cursor:pointer;color:var(--blue2);font-size:13px;user-select:none}
.fgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin-top:10px;animation:rise .25s both}
.fgrid .chkset{grid-column:1/-1;display:flex;gap:16px;flex-wrap:wrap}
.toolbar{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin:10px 0 12px}
.seg{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--card)}
.seg span{font-size:12px;color:var(--mut);padding:0 10px}
.seg a{padding:6px 12px;font-size:13px;color:var(--ink);border-left:1px solid var(--line);transition:background .15s}
.seg a:hover{background:var(--blue3);text-decoration:none}.seg a.on{background:var(--blue);color:#fff;font-weight:600}
.segsm{margin:4px 0 8px}
.menu{position:relative;margin-left:auto}.menu summary{list-style:none;cursor:pointer;padding:6px 12px;border:1px solid var(--line);border-radius:8px;background:var(--card);font-size:13px}
.menu summary::-webkit-details-marker{display:none}
.menu>div{position:absolute;right:0;top:110%;z-index:20;background:var(--card);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px rgba(0,40,30,.12);min-width:280px;padding:6px;animation:flashin .2s both}
.menu>div a{display:block;padding:7px 10px;border-radius:6px;color:var(--ink)}.menu>div a:hover{background:var(--blue3);text-decoration:none}
.treebar{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin-bottom:6px}
.treebar .lv{padding:3px 10px;font-size:12px}.treebar .lv.on{background:var(--blue);color:#fff}
.tbhint{margin-left:8px}
@media (max-width:900px){.fmain{grid-template-columns:1fr 1fr}.menu{margin-left:0}}

/* Сметы: читаемая таблица — фиксированные ширины, липкая шапка и первая колонка, годы разделены */
table.btree{table-layout:fixed;width:auto;min-width:100%}
table.btree th,table.btree td{width:96px}
table.btree th:first-child,table.btree td:first-child{width:320px;position:sticky;left:0;background:var(--card);z-index:1}
table.btree tr.bgrp>td:first-child{background:#f6faf8}
table.btree thead th{position:sticky;top:0;background:#eef5f1;z-index:2;white-space:normal;font-size:12px}
table.btree thead th:first-child{z-index:3}
table.btree th.yh,table.breg th.yh{border-left:2px solid var(--blue2);text-align:center}
table.btree td.b,table.btree th.b{border-right:2px solid #cfe2d9}
table.btree .mef,table.breg .mef{background:#fff9e8}
table.breg td.dif{background:#fff4c2;cursor:help}
table.breg td.b{font-weight:700}
/* Таблица ГП: редакции в панели, итог выборки отдельным блоком */
.edsel{display:inline-flex;gap:8px;align-items:center}
.edsel .seg select{border:0;border-left:1px solid var(--line);border-radius:0;padding:6px 8px;max-width:260px;background:transparent}
.selbox{background:linear-gradient(180deg,#f3faf6,#fff);border:1px solid var(--line);border-radius:10px;padding:10px 12px 2px;margin:8px 0 12px}
.selbox .selh{font-weight:700;color:var(--blue);margin-bottom:6px}
.selbox .kpis{margin-bottom:8px}
.legendline{margin:0 0 6px;color:var(--mut)}
/* Остатки: ограниченная ширина названия и единая прокрутка таблицы. */
.tw table.res{table-layout:fixed;width:1800px;min-width:0}
.tw table.res th{white-space:normal;overflow-wrap:anywhere;vertical-align:middle}
.tw table.res td{overflow-wrap:anywhere}
.tw table.res .res-name,.tw table.res thead tr:first-child>th:nth-child(2){position:sticky;left:0;z-index:3;background:#fff;box-shadow:2px 0 0 #d9e0ea}
.tw table.res thead tr:first-child>th:nth-child(2){z-index:6;background:#eef5f1}
.tw table.res thead th{z-index:4}
.tw table.res .tot .res-name{background:#f7f9fc}
.tw table.tree td:first-child,.tw table.tree th:first-child{width:380px;min-width:380px;max-width:380px;overflow-wrap:anywhere}
.fbar .chk{flex:none}
@media(max-width:650px){.tw table.res .res-name,.tw table.res thead tr:first-child>th:nth-child(2){position:static}.tw table.tree td:first-child,.tw table.tree th:first-child{min-width:230px;max-width:230px;width:230px}.fmain{grid-template-columns:1fr}}
