:root{--navy:#10263b;--navy2:#173451;--ink:#14212b;--mut:#5b6b78;--line:#e2e8ee;--bg:#f5f7f9;--card:#fff;--acc:#1f6f5c;--acc2:#2f8f77;--gold:#c99a1c;--goldbg:#fff4d6;
--red:#c0392b;--redbg:#fde8e6;--yel:#b7791f;--yelbg:#fff3d6;--grn:#2e7d4f;--grnbg:#e5f4ea;--gray:#8a97a3}
*{box-sizing:border-box}body{margin:0;font:14px/1.45 'Segoe UI',system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--bg);display:flex;height:100vh;overflow:hidden}
.side{width:220px;background:var(--navy);color:#dce6ef;display:flex;flex-direction:column;padding:18px 12px;flex-shrink:0}
.brand{display:flex;gap:10px;align-items:center;padding:0 6px 22px}.brand b{display:block;color:#fff;font-size:15px}.brand small{color:#8fa6ba}
.logo{width:34px;height:34px;border-radius:8px;background:var(--acc2);color:#fff;display:grid;place-items:center;font-weight:700}
nav{display:flex;flex-direction:column;gap:4px}nav button{all:unset;cursor:pointer;padding:10px 10px;border-radius:8px;display:flex;gap:10px;align-items:center;color:#c9d6e2}
nav button i{font-style:normal;width:22px;height:22px;border-radius:50%;border:1px solid #4a6680;display:grid;place-items:center;font-size:12px}
nav button:hover{background:var(--navy2)}nav button.on{background:var(--navy2);color:#fff}nav button.on i{background:var(--acc2);border-color:var(--acc2);color:#fff}
.who{margin-top:auto;font-size:12px;color:#8fa6ba;padding:8px 6px;border-top:1px solid #23415e}
main{flex:1;overflow:auto;padding:0 28px 40px}
.top{position:sticky;top:0;background:var(--bg);display:flex;gap:18px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line);z-index:5}
.wk{display:flex;align-items:center;gap:8px}.wk label{color:var(--mut);font-size:12px}select,input{font:inherit;padding:7px 10px;border:1px solid #cdd6de;border-radius:7px;background:#fff;color:var(--ink)}
.sc{color:var(--mut);font-size:13px}.msg{margin-left:auto;font-size:13px;color:var(--mut)}.msg.err{color:var(--red)}.msg.ok{color:var(--grn)}
h1{font-size:22px;margin:22px 0 6px}.lead{color:var(--mut);margin:0 0 18px;max-width:900px}.h1row{display:flex;align-items:center;gap:16px}.h1row h1{margin-right:auto}
.view{display:none}.view.on{display:block}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px 18px}.card h3{margin:0 0 10px;font-size:14px}.wide{margin-top:16px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.hint{color:var(--mut);font-size:12.5px;margin:10px 0 0}
.seg{display:flex;border:1px solid #cdd6de;border-radius:8px;overflow:hidden}.seg button{all:unset;flex:1;text-align:center;padding:8px 6px;cursor:pointer;font-size:13px;border-right:1px solid #cdd6de}
.seg button:last-child{border:0}.seg button.on{background:var(--acc);color:#fff}
button.primary,button.ghost{font:inherit;border-radius:8px;padding:9px 16px;cursor:pointer;border:1px solid var(--acc)}button.primary{background:var(--acc);color:#fff}button.primary:hover{background:var(--acc2)}
button.ghost{background:#fff;color:var(--acc)}button:disabled{opacity:.55;cursor:wait}.actions{display:flex;gap:10px;margin-top:16px}
.empty{color:var(--mut);padding:30px;border:1px dashed #cdd6de;border-radius:10px;text-align:center;background:#fff}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:6px 0 16px}.kpi{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.kpi b{display:block;font-size:22px}.kpi span{color:var(--mut);font-size:12px}
.badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:600}.b-red{background:var(--redbg);color:var(--red)}.b-yel{background:var(--yelbg);color:var(--yel)}.b-grn{background:var(--grnbg);color:var(--grn)}.b-gray{background:#eef1f4;color:var(--gray)}
.blocks{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.blk h4{margin:0 0 8px;font-size:13px;color:var(--mut);text-transform:uppercase;letter-spacing:.04em}
.ind{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-top:1px solid var(--line)}.ind:first-of-type{border-top:0}.dot{width:10px;height:10px;border-radius:50%;margin-top:5px;flex-shrink:0}
.d-КРАСНЫЙ{background:var(--red)}.d-ЖЁЛТЫЙ{background:#e0a800}.d-ЗЕЛЁНЫЙ{background:var(--grn)}.d-x{background:#c4ccd4}.ind .nm{flex:1}.ind .v{font-weight:600;white-space:nowrap;text-align:right}.ind small{display:block;color:var(--mut);font-weight:400}
.quick{display:flex;gap:10px;flex-wrap:wrap;margin:6px 0 14px}.chip{background:#fff;border:1px solid var(--line);border-radius:20px;padding:6px 12px;font-size:12.5px}.chip b{margin-left:4px}
.stars3{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:16px}.s3{background:var(--goldbg);border:1px solid #f0d78a;border-radius:10px;padding:12px 14px;cursor:pointer}
.s3 .t{font-size:17px;font-weight:700}.s3 .st{color:var(--gold);float:right}.s3 .n{color:var(--mut);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.s3 .c{margin-top:8px;font-size:12.5px}
table.t{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;font-size:13px}
table.t th{background:#f0f3f6;color:var(--mut);font-weight:600;text-align:left;padding:8px 10px;cursor:pointer;white-space:nowrap;font-size:12px}table.t td{padding:7px 10px;border-top:1px solid var(--line);white-space:nowrap}
table.t tr:hover td{background:#f7faf9;cursor:pointer}.num{text-align:right}.pos{color:var(--grn)}.neg{color:var(--red)}.stc{color:var(--gold);font-weight:700}
.two{display:grid;grid-template-columns:1.25fr 1fr;gap:16px;margin-top:18px}.bar{display:flex;align-items:center;gap:8px;font-size:12.5px;margin:4px 0}.bar .l{width:150px;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bar .b{height:12px;border-radius:3px;background:var(--acc2)}.bar .b.n{background:#d98b80}.bar .v{width:52px;text-align:right}
.drawer{position:fixed;top:0;right:-560px;width:540px;height:100vh;background:#fff;box-shadow:-8px 0 30px rgba(16,38,59,.18);transition:right .2s;z-index:20;overflow:auto;padding:22px 24px}
.drawer.on{right:0}.drawer .x{position:absolute;right:14px;top:10px;border:0;background:none;font-size:26px;color:var(--mut);cursor:pointer}
.kv{display:grid;grid-template-columns:44% 56%;gap:6px 10px;font-size:13px}.kv div:nth-child(odd){color:var(--mut)}
.form{max-width:640px;display:flex;flex-direction:column;gap:12px}.form label{display:flex;flex-direction:column;gap:4px;color:var(--mut);font-size:12.5px}
.disc{color:var(--gray);font-size:11.5px;margin-top:22px}
.tw{overflow-x:auto;border-radius:10px}.kv{margin-top:8px}
.lang{display:flex;gap:0;margin:18px 6px 0;border:1px solid #4a6680;border-radius:8px;overflow:hidden;width:max-content}.lang button{all:unset;cursor:pointer;padding:5px 14px;font-size:12px;color:#c9d6e2}.lang button.on{background:var(--acc2);color:#fff}
.brand img.logo{width:36px;height:36px;border-radius:8px;display:block;background:none}
.navsep{height:1px;background:#23415e;margin:10px 6px}
.feed{display:flex;flex-direction:column;gap:6px;max-height:260px;overflow:auto}.feed div{font-size:13px;padding:6px 0;border-top:1px solid var(--line)}.feed div:first-child{border:0}
.tag{display:inline-block;min-width:92px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--mut)}
.up{color:var(--grn);font-size:11px;margin-left:3px}.dn{color:var(--red);font-size:11px;margin-left:3px}
table.t td select{padding:3px 6px;font-size:12.5px}table.t tr.nohov:hover td{background:none;cursor:default}
.mini{font:inherit;font-size:12px;border:1px solid #cdd6de;background:#fff;border-radius:6px;padding:3px 8px;cursor:pointer;color:var(--acc)}
.pfbar{display:flex;gap:14px;align-items:center;margin-bottom:14px}.pfbar .seg{width:auto}.pfbar .seg button{padding:7px 14px;flex:none}
.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12.5px;margin:4px 0 6px}.legend span{display:flex;align-items:center;gap:6px}.legend i{width:18px;height:3px;border-radius:2px;display:inline-block}
.chartbox svg{width:100%;height:auto;display:block}.chartbox text{font-size:11px;fill:#5b6b78}
.modal{position:fixed;inset:0;background:rgba(16,38,59,.35);display:none;place-items:center;z-index:30}.modal.on{display:grid}
.mbox{background:#fff;border-radius:12px;padding:20px 22px;width:460px;box-shadow:0 20px 50px rgba(16,38,59,.3)}.mbox h3{margin:0 0 12px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.warn{background:var(--yelbg);color:#7a5200;border-radius:8px;padding:8px 12px;font-size:12.5px;margin:10px 0}
.kpis.k5{grid-template-columns:repeat(5,1fr)}
#statusOut td small.nm{display:inline-block;max-width:170px;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;margin-top:0}
#statusOut td.trg{white-space:normal;min-width:200px;max-width:280px;font-size:12.5px}.tag{min-width:128px}
#statusOut table.t td,#statusOut table.t th{padding:7px 8px}
.pfgrid{display:grid;grid-template-columns:1fr;gap:16px;margin-top:16px}
#statusOut td.xp{white-space:normal;min-width:170px;max-width:200px;font-size:12.5px}#statusOut td.trg{min-width:180px;max-width:230px}
#statusOut td select{width:150px;margin-bottom:3px}#statusOut td .mini{margin-top:3px}
#statusOut td small.nm{max-width:130px}#statusOut td.trg{min-width:160px;max-width:200px}#statusOut td.xp{min-width:160px;max-width:180px}
.limcard{display:flex;align-items:center;gap:16px;justify-content:space-between}.limcard h3{margin:0 0 4px}
.limgrid{display:grid;grid-template-columns:1fr 300px;gap:16px;align-items:start}.limprev{position:sticky;top:76px}.limprev .tk{display:inline-block;margin:2px 6px 2px 0;font-weight:600}
.lrow{display:grid;grid-template-columns:24px 1fr 70px 70px 330px;align-items:center;gap:8px;padding:7px 12px;border-top:1px solid var(--line);background:#fff}
.lrow.sec{font-weight:600}.lrow.ind{background:#fafbfc;font-size:13px}.lrow.ind .nm{padding-left:14px}.lrow.hdr{background:#f0f3f6;color:var(--mut);font-size:12px;font-weight:600;border-top:0}
.ltree{border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:14px}.ltree .lrow:first-child{border-top:0}
.lrow .tg{cursor:pointer;color:var(--mut);user-select:none}.lrow .c{text-align:right;color:var(--mut);font-weight:400}.lrow .c b{color:var(--ink)}
.sg{display:flex;border:1px solid #cdd6de;border-radius:7px;overflow:hidden;width:max-content}.sg button{all:unset;cursor:pointer;padding:4px 9px;font-size:12px;border-right:1px solid #cdd6de;color:var(--ink);font-weight:400}
.sg button:last-child{border-right:0}.sg button.on{background:var(--acc);color:#fff}.sg button.on.x{background:var(--red)}.sg button.on.i{background:#8a97a3}
.lrow.set{box-shadow:inset 3px 0 0 var(--acc)}.lrow.setx{box-shadow:inset 3px 0 0 var(--red)}

/* широкие таблицы не раздвигают экран: прокрутка внутри своей карточки */
main{min-width:0}.two>*{min-width:0;overflow-x:auto}.view>*{max-width:100%}
.kpis.k6{grid-template-columns:repeat(6,1fr)}.kpi small{display:block;margin-top:2px}
.b-blue{background:#e6effa;color:#2b5d9b}
.rflag{color:#b9770e;font-weight:700;cursor:help}.rflag.hi{color:var(--red)}.badge.rev{padding:1px 6px;font-size:10.5px;cursor:help}
.tip{cursor:help}th.tip,.kpi>span.tip,h3.tip{text-decoration:underline dotted #9aa5b1;text-underline-offset:3px}
.topscroll{overflow-x:auto;overflow-y:hidden;height:14px;margin-bottom:2px}.topscroll>div{height:1px}#cardsOut{overflow-x:auto}
