@font-face{font-family:'ONY One';src:url(brand/ONYOne-Regular.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'ONY One';src:url(brand/ONYOne-Bold.woff2) format('woff2');font-weight:700;font-display:swap}
:root{--blue:#09286B;--gold:#FBAD0F;--dark:#051522;--line:#E6E6EE;--bg:#F4F4F8;--muted:#4A5563;--ok:#1B5E2E;--okbg:#E3F4E6;--warn:#6B4800;--warnbg:#FFF1CC;--bad:#A11D1D;--badbg:#FBE3E3;--sel:#EEF1F8}
*{box-sizing:border-box}
html,body{margin:0}
body{font-family:'ONY One',system-ui,-apple-system,'Segoe UI','PingFang SC','Microsoft YaHei',sans-serif;color:var(--dark);background:var(--bg);font-size:15px;line-height:1.45}
a{color:var(--blue)}
h1{font-size:26px;margin:0 0 4px}
h2{font-size:18px;margin:0 0 12px}
h3{font-size:15px;margin:0 0 8px}
.muted{color:var(--muted)}.small{font-size:13px}.tiny{font-size:12px}.b{font-weight:700}
header.top{display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px;padding:12px 24px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}
header.top img{height:26px;display:block}
.brandname{font-weight:700;color:var(--blue)}
.grow{flex:1 1 0}
.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}
.pill.line{border:1px solid var(--line);font-weight:400;color:var(--muted)}
.pill.demo{background:var(--warnbg);color:var(--warn)}
.pill.ok{background:var(--okbg);color:var(--ok)}.pill.warn{background:var(--warnbg);color:var(--warn)}.pill.bad{background:var(--badbg);color:var(--bad)}.pill.blue{background:#E6ECF7;color:var(--blue)}.pill.grey{background:#EEEEF3;color:#3A4250}
.layout{display:flex;min-height:calc(100vh - 55px)}
nav.side{flex:0 0 220px;background:var(--blue);padding:20px 12px;display:flex;flex-direction:column;gap:2px}
nav.side a{color:#fff;text-decoration:none;padding:10px 14px;border-radius:8px;font-size:15px}
nav.side a:hover{background:rgba(255,255,255,.1)}
nav.side a.on{background:rgba(255,255,255,.18);font-weight:700}
nav.side .sec{color:#B9C3DD;font-size:11px;letter-spacing:.06em;margin:18px 14px 4px}
main{flex:1 1 auto;min-width:0;padding:24px 28px;display:flex;flex-direction:column;gap:18px}
.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 20px}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:0 14px;border-radius:8px;border:1px solid var(--blue);background:#fff;color:var(--blue);font:inherit;font-weight:700;font-size:14px;cursor:pointer;text-decoration:none}
.btn:hover{background:var(--sel)}
.btn.primary{background:var(--blue);color:#fff}.btn.primary:hover{background:#0b3388}
.btn.gold{background:var(--gold);border-color:var(--gold);color:var(--dark)}
.btn.small{min-height:32px;padding:0 10px;font-size:13px}
.btn.on{background:var(--blue);color:#fff}
.btn.ghost{border-color:var(--line)}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.btn.danger.on{background:var(--bad);border-color:var(--bad);color:#fff}
.btn.okb.on{background:var(--ok);border-color:var(--ok);color:#fff}
.btn.wq.on{background:var(--gold);border-color:var(--gold);color:var(--dark)}
input,select,textarea{font:inherit;font-size:15px;color:var(--dark);min-height:40px;padding:6px 10px;border:1px solid #C9CDD8;border-radius:8px;background:#fff;width:100%}
textarea{min-height:70px}
input[type=checkbox]{width:18px;height:18px;min-height:0}
label.f{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:700;color:var(--muted)}
label.chk{display:flex;align-items:center;gap:8px;font-size:14px}
input.need{border:2px solid #D9534F}
table{border-collapse:collapse;width:100%}
th,td{padding:9px 8px;border-bottom:1px solid #EEEEF3;text-align:left;vertical-align:top;font-size:14px}
th{font-size:12px;color:var(--muted);font-weight:700}
tr.click{cursor:pointer}tr.click:hover td{background:#FAFBFE}
.scroll{overflow-x:auto}
.kpi{font-size:28px;font-weight:700;color:var(--blue)}
.timer{background:var(--blue);color:#fff;border-radius:12px;padding:12px 18px;min-width:220px}
.timer .t{font-size:28px;font-weight:700;letter-spacing:.02em}
.timer .s{font-size:12px;color:#C9D2EA}
.offer{border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff;text-align:left;font:inherit;color:inherit;width:100%;cursor:pointer;display:flex;flex-direction:column;gap:4px;min-height:84px}
.offer.min{border:2px solid #2E8B47;background:#F1FAF2}
.offer.voted{border:2px solid #9FB3DE;background:#EAF0FC}
.offer.chosen{border:2px solid #C98A00;background:#FFF1C7;box-shadow:0 0 0 3px rgba(251,173,15,.18)}
.voters{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:2px}
.av{width:26px;height:26px;border-radius:50%;color:#fff;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;border:2px solid #fff;box-shadow:0 0 0 1px rgba(9,40,107,.15);letter-spacing:.02em}
.av.me{background:var(--gold);color:var(--dark)}
.vlist{margin-top:8px;display:flex;flex-direction:column;gap:6px;font-size:12px}
.vl{display:flex;gap:6px;align-items:flex-start}.vl .av{flex:0 0 26px}
.offer.rejected{border:1px dashed #C9CDD8;background:#F7F7FA;color:#6B7280;cursor:not-allowed}
.offer .p{font-size:16px;font-weight:700}
.toast{position:fixed;right:20px;bottom:20px;max-width:420px;background:var(--dark);color:#fff;padding:12px 16px;border-radius:10px;box-shadow:0 6px 24px rgba(0,0,0,.2);z-index:50;font-size:14px}
.notice{padding:12px 14px;border-radius:10px;background:#FFF6E0;border:1px solid #F5D58A;font-size:14px}
.notice.bad{background:#FDF0F0;border-color:#F0B4B4;color:var(--bad)}
.notice.ok{background:#EFF9F1;border-color:#B5DFBF}
.notice.warn{background:#FDECEA;border-color:#F3B6AE}
.msg{padding:8px 12px;border-radius:10px;background:var(--bg);font-size:14px;max-width:80%}
.msg.me{align-self:flex-end;background:#E6ECF7}
.with-chat{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px;align-items:start}
.main-col{display:flex;flex-direction:column;gap:18px;min-width:0}
.side-chat{position:sticky;top:76px}
.chat-card{display:flex;flex-direction:column;max-height:calc(100vh - 96px);padding:16px}
.chat-card h2{margin-bottom:8px}
.chat-list{display:flex;flex-direction:column;gap:6px;overflow-y:auto;flex:1 1 auto;min-height:140px;padding-right:2px}
.chat-list .msg{max-width:92%}
.chat-send{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.chat-send input{flex:1 1 100%;min-width:0;order:-2}
.chat-send.wide input{flex:1 1 300px;order:0}
.chat-files{display:flex;flex-wrap:wrap;gap:6px;flex:1 1 100%;order:9}
.chat-send:not(.wide) .chat-files{order:-1}
.chat-files:empty{display:none}
.chip{display:inline-flex;align-items:center;gap:6px;background:#EEF1F8;border-radius:16px;padding:3px 4px 3px 10px;font-size:12px;max-width:100%}
.chip button{border:0;background:#fff;border-radius:50%;width:20px;height:20px;line-height:18px;cursor:pointer;font-size:14px;color:var(--muted)}
.chat-send .chat-attach,.chat-attach{font-size:16px;padding:4px 10px;cursor:pointer;margin-left:0}
.msg-files{display:flex;flex-direction:column;align-items:flex-start;gap:3px;margin-top:4px}
.file-link{border:0;background:none;padding:0;color:var(--blue);text-decoration:underline;cursor:pointer;font:inherit;font-size:13px;text-align:left;word-break:break-all}
.backbar{margin-bottom:-6px}
.main-in{display:flex;flex-direction:column;gap:18px;min-width:0}
.chat-send select{flex:1 1 auto;width:auto;min-width:0}
.chat-send .btn{flex:0 0 auto;margin-left:auto}
@media (max-width:1180px){.with-chat{grid-template-columns:1fr}.side-chat{position:static}.chat-card{max-height:none}.chat-list{max-height:420px}}
@media print{.with-chat{display:block}.side-chat{display:none}}
.login{max-width:980px;margin:40px auto;display:grid;grid-template-columns:minmax(280px,360px) 1fr;gap:20px}
/* рабочий режим: одно окно входа — посередине экрана */
.login.solo{grid-template-columns:minmax(280px,400px);justify-content:center;align-content:center;min-height:calc(100vh - 140px);margin:0 auto;padding:16px}
.who{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.who button{text-align:left;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;font:inherit;cursor:pointer}
.who button:hover{border-color:var(--blue)}
.bell{position:relative;text-decoration:none;font-size:14px}
.bell b{display:inline-flex;min-width:20px;height:20px;border-radius:10px;background:var(--gold);color:var(--dark);font-size:12px;align-items:center;justify-content:center;padding:0 5px;margin-left:4px}
@media (max-width:820px){
  nav.side{display:none}
  main{padding:16px}
  .login{grid-template-columns:1fr;margin:16px}
  header.top{padding:10px 16px}
  .hide-m{display:none}
}
@media print{header.top,nav.side,.noprint{display:none}main{padding:0}.card{border:none}}

.sug{position:absolute;z-index:20;left:0;right:0;top:100%;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(5,21,34,.12);max-height:320px;overflow:auto}
.sug button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;text-align:left;padding:8px 12px;border:0;border-bottom:1px solid #EEEEF3;background:#fff;font:inherit;cursor:pointer}
.sug button:hover{background:var(--sel)}
details>summary{list-style:none}details>summary::-webkit-details-marker{display:none}details>summary::before{content:'▸ ';color:var(--blue)}details[open]>summary::before{content:'▾ '}
nav.side b.cnt{display:inline-flex;min-width:20px;height:20px;border-radius:10px;background:var(--gold);color:var(--dark);font-size:12px;align-items:center;justify-content:center;padding:0 5px;margin-left:4px}
.btn.danger{border-color:var(--bad);color:var(--bad)}
.thread{display:grid;grid-template-columns:minmax(260px,360px) 1fr;gap:12px;align-items:start}
.thread .list button{display:block;width:100%;text-align:left;padding:10px 12px;border:0;border-bottom:1px solid #EEEEF3;background:#fff;font:inherit;cursor:pointer}
.thread .list button.on{background:var(--sel)}.thread .list button:hover{background:var(--sel)}
.msgs{display:flex;flex-direction:column;gap:8px;max-height:56vh;overflow:auto;padding:4px 0}
.msg.mine{align-self:flex-end;background:#E6ECF7}
.bars{display:flex;align-items:flex-end;gap:10px;height:160px;padding-top:10px}
.bars div{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;justify-content:flex-end;height:100%}
.bars i{display:block;width:100%;max-width:56px;background:var(--blue);border-radius:6px 6px 0 0}
.hbar{height:8px;border-radius:4px;background:var(--blue)}
@media (max-width:860px){.thread{grid-template-columns:1fr}}

.thread.rep{grid-template-columns:minmax(220px,260px) 1fr}
.menu-btn{display:none;font-size:20px;min-width:40px;padding:0}
@media (max-width:860px){.thread.rep{grid-template-columns:1fr}}
@media (max-width:820px){
  header.top{position:static;gap:8px 12px}
  header.top img{height:22px}
  .menu-btn{display:inline-flex}
  .who-name{flex-basis:100%;order:10;font-size:12px}
  header.top select{min-height:32px}
  body.nav-open nav.side{display:flex;position:fixed;left:0;right:0;top:0;bottom:0;z-index:40;overflow:auto;padding-top:64px}
  body.nav-open .menu-btn{position:fixed;top:10px;left:16px;z-index:41;background:#fff}
  body.nav-open{overflow:hidden}
  table{font-size:13px}
  h1{font-size:22px}
}
@media (max-width:640px){
  table.stack,table.stack tbody,table.stack tr,table.stack td{display:block;width:100%}
  table.stack tr:first-child{display:none}
  table.stack tr{padding:10px 0;border-bottom:1px solid var(--line)}
  table.stack td{border:0;padding:3px 0}
  table.stack td[data-l]:not([data-l=""])::before{content:attr(data-l) ': ';color:var(--muted);font-size:12px}
}
.guide p{margin:6px 0}.guide ol,.guide ul{margin:6px 0 6px 22px;padding:0}.guide li{margin:3px 0}.guide code{background:var(--bg);padding:1px 5px;border-radius:4px}
@media print{.guide{max-width:none!important}}

.accept-card{border:2px solid var(--gold);background:#FFFBEF}
.acc-dlg{border:0;border-radius:14px;padding:22px 24px;max-width:520px;width:calc(100% - 32px);box-shadow:0 20px 60px rgba(5,21,34,.3)}
.acc-dlg::backdrop{background:rgba(5,21,34,.45)}
.notice.ok-n{background:var(--okbg);border-color:#BFE3C6}

/* обновление программы */
.upd-bar{position:fixed;left:50%;transform:translateX(-50%);top:12px;z-index:9000;background:#09286B;color:#fff;border-radius:14px;padding:10px 14px;display:flex;gap:12px;align-items:center;flex-wrap:wrap;box-shadow:0 10px 30px rgba(5,21,34,.25);max-width:calc(100vw - 32px)}
.upd-bar .tiny{opacity:.75}
.upd-bar .btn.ghost{color:#fff;border-color:rgba(255,255,255,.4);background:transparent}
.wn-wrap{position:fixed;inset:0;background:rgba(5,21,34,.45);z-index:9500;display:flex;align-items:center;justify-content:center;padding:16px}
.wn-wrap .wn{max-width:620px;width:100%;max-height:80vh;overflow:auto;margin:0}
.wn-ver{padding:8px 0;border-bottom:1px solid var(--line)}
.wn-ver:last-of-type{border-bottom:0}
.wn-ver ul{margin:6px 0 0 18px;padding:0}
.wn-ver li{margin:4px 0;line-height:1.45}

.lib-row{padding:10px 0;border-bottom:1px solid var(--line);align-items:center;gap:8px}
.lib-row:last-child{border-bottom:0}
.site-mark{color:var(--blue)}
.site-card{border-left:4px solid var(--blue)}

/* страница входа: фото карьера на фоне */
body.login-bg{background:#3b2a1c url(brand/login-bg.jpg) center/cover no-repeat fixed}
body.login-bg::before{content:'';position:fixed;inset:0;background:linear-gradient(180deg,rgba(5,21,34,.25),rgba(5,21,34,.55));pointer-events:none;z-index:0}
body.login-bg #app{position:relative;z-index:1}
body.login-bg .login .card{background:rgba(255,255,255,.96);box-shadow:0 20px 60px rgba(5,21,34,.35);border:0}

/* всплывающие уведомления */
.pop-box{position:fixed;right:16px;top:70px;z-index:9200;display:flex;flex-direction:column;gap:8px;max-width:min(360px,calc(100vw - 32px))}
.pop{background:#fff;border-left:4px solid var(--gold);border-radius:12px;box-shadow:0 12px 34px rgba(5,21,34,.22);padding:12px 14px;animation:popin .25s ease-out}
.pop-h{font-weight:700;color:var(--blue);font-size:13px}
.pop-t{font-size:14px;margin-top:4px;line-height:1.4}
@keyframes popin{from{transform:translateY(-8px);opacity:0}to{transform:none;opacity:1}}
.bell.ring{animation:ring .8s ease-in-out 2}
@keyframes ring{0%,100%{transform:none}20%{transform:rotate(-12deg)}40%{transform:rotate(10deg)}60%{transform:rotate(-6deg)}80%{transform:rotate(4deg)}}
.bell b{box-shadow:0 0 0 3px rgba(251,173,15,.25)}

/* телефон: страна + номер */
.phone-in{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:10px;background:#fff;overflow:hidden}
.phone-in select{border:0;border-right:1px solid var(--line);border-radius:0;width:100px;flex:0 0 100px;padding:0 6px;background:#F7F8FB;font:inherit;text-overflow:ellipsis}
.phone-in .pc{display:flex;align-items:center;padding:0 2px 0 10px;color:var(--dark);font-weight:600}
.phone-in input{border:0!important;box-shadow:none!important;flex:1;min-width:0;padding-left:6px}
.phone-in:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px rgba(9,40,107,.12)}
.phone-in input:focus{outline:none;border:0!important;box-shadow:none!important}
/* исправление ошибки в предложении */
.corr-mark { color: #8A5A00; background: #FFF4D6; border-radius: 6px; padding: 1px 6px; display: inline-block; }
#md-dlg table td, #md-dlg table th { padding: 6px 8px; vertical-align: top; }
.nowrap{white-space:nowrap}
.av.mine { box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--gold); }
/* график закупок */
table.gantt { border-collapse: separate; border-spacing: 0; }
table.gantt th, table.gantt td { padding: 4px 6px; border-bottom: 1px solid #EEEEF3; font-size: 12px; }
table.gantt td:not(:first-child), table.gantt th:not(:first-child) { min-width: 34px; text-align: center; border-left: 1px solid #F3F4F8; }
.g-start { background: #FBAD0F; } .g-run { background: #FDE3A7; } .g-del { background: #BFD4F2; } .g-need { background: #2E7D6B; }
.gnow { box-shadow: inset 0 0 0 2px #D9534F; }
.gl { display: inline-block; width: 14px; height: 10px; border-radius: 3px; vertical-align: middle; margin-right: 4px; }
.cashbars { display: flex; align-items: flex-end; gap: 6px; height: 140px; margin: 6px 0 12px; padding-bottom: 28px; }
.cashbars .cb { flex: 1 1 0; min-width: 28px; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; text-align: center; position: relative; }
.cashbars .bar { width: 100%; background: linear-gradient(180deg, #FBAD0F, #E89A00); border-radius: 6px 6px 0 0; min-height: 2px; }
.cashbars .cb > .tiny { position: absolute; bottom: -30px; line-height: 1.1; }
.cashbars .cb > .tiny .tiny { position: static; color: var(--muted); }

.dm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}
.dm-opt{align-items:flex-start;gap:10px;border:1px solid var(--line,#E2E5EE);border-radius:10px;padding:12px 14px;cursor:pointer;background:#fff}
.dm-opt.on{border-color:#0A2A6E;background:#F2F5FB;box-shadow:inset 0 0 0 1px #0A2A6E}
.dm-opt input{margin-top:3px}
.dm-opt{display:flex;width:auto}
.dm-opt input[type=radio]{width:18px;height:18px;min-height:0;flex:none;margin:2px 0 0;padding:0}

.rt-bar{height:8px;border-radius:6px;background:#EEF0F5;overflow:hidden}
.rt-bar span{display:block;height:100%;background:linear-gradient(90deg,#D9534F,#F0A500 50%,#2E8B57)}
.npv-line{font-size:12px;color:#3A4560}
.pref{margin-top:6px;font-size:12px;line-height:1.35;color:#5A6378}
.pref.sig{color:var(--bad)}

.m-wrap{max-width:620px;margin:0 auto}
.m-wrap .card{padding:14px 16px}
.m-off{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;margin-top:6px;border:1px solid #E6E8EF;border-radius:10px}
.m-off.best{border-color:var(--ok);background:#F1FAF4}
.m-act{display:flex;flex-direction:column;gap:8px}
.m-big{width:100%;min-height:48px;font-size:16px;justify-content:center;text-align:center}
.m-total .kpi{margin:2px 0}
