/* --- _css --- */
:root{--bg:#f4f6fa;--fg:#172033;--mut:#64708a;--card:#fff;--line:#e3e8f0;--line2:#cfd7e4;--acc:#2f5bea;--acc2:#e9efff;--accfg:#fff;
--ok:#17803d;--okbg:#e6f6ec;--warn:#a15c07;--warnbg:#fff3dc;--bad:#c2302d;--badbg:#fdeaea;--info:#1d5fb8;--infobg:#e7f1fd;--nogo:#5b667c;--nogobg:#eef1f6;
--side:#0f1a33;--sidefg:#b8c3dc;--sideact:#fff;--sidehov:#1a2a4f;--shadow:0 1px 2px rgba(16,24,40,.06),0 1px 3px rgba(16,24,40,.08);--r:10px}
:root[data-theme=dark]{--bg:#0e131c;--fg:#e7ebf3;--mut:#93a0b8;--card:#171e2b;--line:#252e3f;--line2:#33405a;--acc:#6f97ff;--acc2:#1b2746;--accfg:#0b1120;
--ok:#59d08a;--okbg:#12301f;--warn:#f0b25a;--warnbg:#33260e;--bad:#ff8a84;--badbg:#3a1718;--info:#7db4ff;--infobg:#12294a;--nogo:#9aa6bd;--nogobg:#222b3b;
--side:#0a0f1a;--sidefg:#8fa0bf;--sidehov:#141d31;--shadow:0 1px 2px rgba(0,0,0,.4)}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0e131c;--fg:#e7ebf3;--mut:#93a0b8;--card:#171e2b;--line:#252e3f;--line2:#33405a;--acc:#6f97ff;--acc2:#1b2746;--accfg:#0b1120;
--ok:#59d08a;--okbg:#12301f;--warn:#f0b25a;--warnbg:#33260e;--bad:#ff8a84;--badbg:#3a1718;--info:#7db4ff;--infobg:#12294a;--nogo:#9aa6bd;--nogobg:#222b3b;
--side:#0a0f1a;--sidefg:#8fa0bf;--sidehov:#141d31;--shadow:0 1px 2px rgba(0,0,0,.4)}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:14px/1.5 -apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;background:var(--bg);color:var(--fg)}
a{color:var(--acc);text-decoration:none}a:hover{text-decoration:underline}
h1,h2,h3{line-height:1.25;margin:0 0 .5em}h2{font-size:22px;font-weight:700;letter-spacing:-.01em}h3{font-size:16px;font-weight:650;margin-top:1.4em}
small{color:var(--mut)}
/* каркас */
.app{display:flex;min-height:100vh}
.side{width:248px;flex:none;background:var(--side);color:var(--sidefg);position:sticky;top:0;height:100vh;overflow-y:auto;padding:14px 10px 20px;z-index:40}
.side .brand{display:flex;align-items:center;gap:10px;padding:6px 10px 14px;color:#fff;font-weight:700;font-size:16px;text-decoration:none}
.side .brand i{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,#4f7bff,#7a5cff);font-style:normal;font-size:15px}
.side .brand small{display:block;color:var(--sidefg);font-weight:400;font-size:11px;margin-top:-2px}
.side details{margin:2px 0}
.side summary{list-style:none;cursor:pointer;padding:8px 10px 4px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#6e7fa4;user-select:none}
.side summary::-webkit-details-marker{display:none}
.side summary::after{content:"▸";float:right;transition:transform .15s}.side details[open]>summary::after{transform:rotate(90deg)}
.side a.nl{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:8px;color:var(--sidefg);text-decoration:none;font-size:13.5px}
.side a.nl i{width:18px;text-align:center;font-style:normal;opacity:.85}
.side a.nl:hover{background:var(--sidehov);color:#fff}
.side a.nl.on{background:var(--acc);color:#fff;font-weight:600}
.side a.nl .bdg{margin-left:auto;background:#e5484d;color:#fff;border-radius:10px;font-size:11px;padding:0 7px;line-height:18px}
.side .ft{margin-top:14px;padding:10px;border-top:1px solid #ffffff14;font-size:12px}
.side .ft a{color:var(--sidefg)}
.content{flex:1;min-width:0;display:flex;flex-direction:column}
.top{position:sticky;top:0;z-index:30;display:flex;gap:10px;align-items:center;padding:10px 20px;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--line)}
.top form.srch{flex:1;max-width:560px;margin:0;position:relative}
.top form.srch input{width:100%;padding:8px 12px 8px 34px;border-radius:9px;background:var(--card)}
.top form.srch::before{content:"⌕";position:absolute;left:11px;top:5px;font-size:18px;color:var(--mut)}
.top .sp{flex:1}
.top .who{font-size:13px;color:var(--mut)}
.iconbtn{background:var(--card);color:var(--fg);border:1px solid var(--line2);width:36px;height:36px;padding:0;display:inline-grid;place-items:center;border-radius:9px;cursor:pointer;font-size:16px}
.iconbtn:hover{border-color:var(--acc)}
.burger{display:inline-grid}
main{padding:20px;width:100%;max-width:1480px;margin:0 auto}
/* кнопки и формы */
input,select,textarea,button{font:inherit;color:var(--fg);border:1px solid var(--line2);border-radius:8px;background:var(--card);padding:7px 10px;transition:border-color .12s,box-shadow .12s}
input,select,textarea{max-width:100%}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--acc);box-shadow:0 0 0 3px color-mix(in srgb,var(--acc) 22%,transparent)}
input[type=checkbox],input[type=radio]{padding:0;width:auto;accent-color:var(--acc)}
button,a.btn.pri{background:var(--acc);color:var(--accfg);border-color:var(--acc);font-weight:600;cursor:pointer}
button:hover{filter:brightness(1.08)}
button:active{transform:translateY(1px)}
button.ghost,.iconbtn{background:var(--card)}
form[action*="delete"] button,button[name=delete]{background:var(--badbg);color:var(--bad);border-color:transparent}
a.btn{display:inline-block;padding:6px 12px;margin:3px 6px 3px 0;border:1px solid var(--line2);border-radius:8px;background:var(--card);color:var(--fg);text-decoration:none;font-weight:500}
a.btn:hover{border-color:var(--acc);color:var(--acc);text-decoration:none}
textarea{min-height:70px}
label{font-size:12px;color:var(--mut)}
/* карточки, сетка */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;box-shadow:var(--shadow)}
.card>b:first-child{display:block;font-size:13px;letter-spacing:.02em;margin-bottom:4px}
.card label{display:block;margin-top:10px;margin-bottom:3px}
.card:not(.bar) input:not([type=checkbox]):not([type=radio]),.card:not(.bar) select,.card:not(.bar) textarea{width:100%}
.card p{margin:.4em 0}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin-bottom:14px}
.bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:14px}.bar>input,.bar>select{width:auto}
.kpi small{display:block;text-transform:uppercase;letter-spacing:.05em;font-size:11px}
.kpi h1{font-size:28px;margin:6px 0 4px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
/* таблицы */
.tblwrap{overflow-x:auto}
.tblwrap.fit{overflow:auto;max-height:calc(100vh - 190px);min-height:320px}.tblwrap.fit th{top:0}
table{border-collapse:separate;border-spacing:0;width:100%;background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);margin-bottom:14px}
th,td{padding:9px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
tr:last-child>td{border-bottom:0}
th{font-size:11.5px;font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:var(--mut);background:color-mix(in srgb,var(--card) 92%,var(--line));position:sticky;top:0;white-space:nowrap}
tbody tr:hover td,table tr:hover>td{background:color-mix(in srgb,var(--acc) 5%,var(--card))}
td.n,th.n,td[align=right]{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
table table{box-shadow:none}
/* статусы */
.pill{display:inline-block;padding:1px 9px;border-radius:999px;background:var(--nogobg);color:var(--nogo);font-size:12px;font-weight:600;white-space:nowrap}
.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.info{background:var(--infobg);color:var(--info)}
.neg{color:var(--bad)}.pos{color:var(--ok)}
/* сообщения */
.msg{display:flex;gap:10px;align-items:center;padding:10px 14px;border-radius:9px;margin-bottom:12px;border:1px solid var(--line);background:var(--card)}
.msg.error{background:var(--badbg);color:var(--bad);border-color:transparent}.msg.success{background:var(--okbg);color:var(--ok);border-color:transparent}
/* липкая панель сохранения */
.savebar{position:sticky;bottom:0;z-index:20;display:flex;gap:10px;align-items:center;padding:10px 16px;margin:16px -4px 0;background:color-mix(in srgb,var(--card) 92%,transparent);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 -4px 14px rgba(16,24,40,.08)}
/* вход */
.loginwrap{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(1200px 600px at 10% -10%,#dfe8ff 0,transparent 60%),var(--bg)}
.login{width:100%;max-width:360px}
.login .brand{display:flex;align-items:center;gap:12px;margin-bottom:18px;font-size:20px;font-weight:700}
.login .brand i{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,#4f7bff,#7a5cff);color:#fff;font-style:normal}
.login p{margin:0 0 12px}.login label{display:block}.login input{width:100%;padding:10px 12px}.login button{width:100%;padding:10px;margin-top:6px}
.login .errorlist{list-style:none;padding:8px 10px;margin:0 0 10px;border-radius:8px;background:var(--badbg);color:var(--bad)}
.errorlist{color:var(--bad);list-style:none;padding:0;margin:4px 0}
/* подсказка поиска */
.lk-r{background:var(--card)!important;border:1px solid var(--line2)!important;border-radius:8px;box-shadow:0 8px 24px rgba(16,24,40,.18)}
.lk-r div:hover{background:var(--acc2)!important}
html.side-off main{max-width:none}
/* свёрнутое меню: узкая полоса с иконками */
.sidecol{position:sticky;bottom:0;display:flex;align-items:center;gap:10px;width:100%;margin-top:12px;padding:9px 10px;border:0;border-radius:8px;background:var(--side);color:var(--sidefg);font-size:13px;cursor:pointer;box-shadow:0 -10px 14px var(--side)}
.sidecol:hover{background:var(--sidehov);color:#fff}.sidecol .ar{width:18px;text-align:center;font-size:16px;line-height:1}
@media(min-width:981px){
 .side{transition:width .15s}
 html.side-off .side{width:62px;padding:14px 7px 20px;overflow-x:hidden}
 html.side-off .side .lb,html.side-off .side .brand span,html.side-off .side .ngt,html.side-off .side .ft{display:none}
 html.side-off .side .ng{border-top:1px solid #ffffff14;margin-top:6px;padding-top:6px}
 html.side-off .side .brand{justify-content:center;padding:6px 0 12px}
 html.side-off .side a.nl{justify-content:center;padding:10px 0;position:relative}
 html.side-off .side a.nl i{width:auto;font-size:16px}
 html.side-off .side a.nl .bdg{position:absolute;top:3px;right:5px;padding:0 5px;font-size:10px;line-height:15px}
 html.side-off .side .sidecol{justify-content:center;padding:10px 0}
 html.side-off .side .sidecol .ar{transform:rotate(180deg)}
 html.side-off .side a.nl:hover::after{content:attr(data-tip);position:fixed;left:66px;margin-top:-2px;background:#111a2e;color:#fff;padding:5px 10px;border-radius:6px;font-size:12.5px;white-space:nowrap;z-index:100;box-shadow:0 4px 14px rgba(0,0,0,.3);pointer-events:none}
 .top .burger{display:none}
}
/* мобильная версия */
@media(max-width:980px){
 html.side-off .side{display:block}
 .side{position:fixed;left:0;top:0;transform:translateX(-100%);transition:transform .2s;width:272px;box-shadow:0 0 40px rgba(0,0,0,.4)}
 body.nav-open .side{transform:none}
 body.nav-open::after{content:"";position:fixed;inset:0;background:rgba(10,16,30,.45);z-index:35}
 .burger{display:inline-grid}.top{padding:8px 12px}.top .who{display:none}
 main{padding:12px}
}

.srt{cursor:pointer;user-select:none;white-space:nowrap}.srt:hover{color:var(--acc)}
.srt::after,th a.so::after{content:'↕';opacity:.35;margin-left:5px;font-size:11px}
.srt.asc::after,th a.so.asc::after{content:'▲';opacity:1;color:var(--acc)}.srt.desc::after,th a.so.desc::after{content:'▼';opacity:1;color:var(--acc)}
th a.so{color:inherit;text-decoration:none;white-space:nowrap}th a.so:hover{color:var(--acc)}

.back{display:inline-block;margin-bottom:8px;font-size:13px;color:var(--mut);text-decoration:none}.back:hover{color:var(--acc)}
.phead{display:flex;gap:14px;align-items:center;margin-bottom:14px;flex-wrap:wrap}.phead .pt{flex:1;min-width:220px}.phead h2{margin:0 0 4px}
.av{width:52px;height:52px;border-radius:14px;background:var(--acc2);color:var(--acc);display:grid;place-items:center;font-size:22px;font-weight:700}
.pmeta{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.pmeta small{color:var(--mut)}
.grid.kp{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:14px}
.kpi b{display:block;font-size:24px;margin:6px 0 2px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.kpi span{font-size:12px;color:var(--mut)}.msg.warn{background:var(--warnbg,#fff4dd);color:var(--warn);border-color:transparent}
.kpi.bad{border-color:var(--bad)}.kpi.bad b{color:var(--bad)}
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin:4px 0 16px;overflow-x:auto;white-space:nowrap}
.tabs a{padding:10px 14px;font-size:14px;color:var(--mut);text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px}
.tabs a:hover{color:var(--fg)}.tabs a.on{color:var(--acc);border-bottom-color:var(--acc);font-weight:600}
.tabs i{font-style:normal;font-size:11px;background:var(--acc2);color:var(--acc);border-radius:9px;padding:1px 7px;margin-left:4px}.tabs i.w{background:var(--warn);color:#fff}
.tp[hidden]{display:none}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:14px;align-items:start}
.card h3{margin:0 0 12px;font-size:15px}
.fld{margin-bottom:10px}.fld label{display:block;font-size:12px;color:var(--mut);margin-bottom:3px}.fld input:not([type=checkbox]),.fld select{min-height:38px;box-sizing:border-box}.fld small{display:block;color:var(--mut);margin-top:3px}.fld em{display:block;color:var(--bad);font-style:normal;font-size:12px;margin-top:3px}
.fld.err input{border-color:var(--bad)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.chk{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:6px 0}.chk label{margin-right:12px}
.note div{margin-top:4px}.muted{color:var(--mut)}
@media(max-width:700px){.row2{grid-template-columns:1fr}.grid2{grid-template-columns:1fr}}
.trow{display:flex;gap:8px;align-items:center}.trow span{color:var(--mut);font-size:13px}.trow input{min-width:0;flex:1}.trow input[type=number]{width:30%}
.why{padding:6px 0;border-bottom:1px solid var(--line);font-size:14px}.why b{display:inline-block;min-width:34px;color:var(--mut)}.why.neg b{color:var(--bad)}.fld textarea{width:100%;box-sizing:border-box}
.colpanel{position:absolute;right:0;top:100%;z-index:30;width:300px;max-height:70vh;overflow:auto;box-shadow:0 12px 32px rgba(16,24,40,.22)}
.colpanel[hidden]{display:none}.colopt{display:block;padding:3px 0;font-size:14px;cursor:pointer}.colopt input{margin-right:6px}
#otbl th{position:relative;white-space:normal;word-break:break-word;overflow-wrap:anywhere;vertical-align:bottom;line-height:1.2;hyphens:auto}#otbl th .rz{position:absolute;right:0;top:0;bottom:0;width:7px;cursor:col-resize}#otbl th .rz:hover{background:var(--acc2)}
#otbl th a.so{white-space:normal;display:inline}
#otbl td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ffilter{padding:12px;margin-bottom:12px}.ffilter input:not([type=checkbox]),.ffilter select{width:auto}
.presets{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.chipb{padding:4px 11px;border:1px solid var(--line2);border-radius:16px;font-size:13px;text-decoration:none;background:var(--card)}.chipb:hover{border-color:var(--acc)}
.fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}.fgrid fieldset{border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin:0}
.fgrid legend{font-size:12px;color:var(--mut);padding:0 6px}.fgrid label{display:block;font-size:13px;margin:5px 0;color:var(--mut)}.fgrid label input:not([type=checkbox]),.fgrid label select{display:block;width:100%;box-sizing:border-box;margin-top:2px;color:var(--fg)}
.fgrid label.chk1{display:inline-block;margin-right:12px;color:var(--fg)}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.chipx{padding:3px 10px;background:var(--acc2);color:var(--acc);border-radius:14px;font-size:13px;text-decoration:none}
#fpanel[hidden]{display:none}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;align-items:start;margin-bottom:14px}
.qa{margin-bottom:12px;font-size:13px;display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:10px 14px}.qa a{padding:5px 11px;border:1px solid var(--line2);border-radius:8px;background:var(--card);text-decoration:none}.qa a:hover{border-color:var(--acc)}.qa form{margin:0;display:inline}.qa button{min-height:30px;padding:3px 11px;background:var(--card);color:var(--acc);border:1px solid var(--line2);font-weight:400}
.calc{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:8px 0}.calc small{display:block;color:var(--mut);font-size:12px}.calc b{font-size:20px}
.tp .card{margin-bottom:12px}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--card)}
.seg a{padding:7px 12px;font-size:13px;color:var(--fg);text-decoration:none}.seg a.on{background:var(--acc);color:var(--accfg)}
.kanban{display:grid;grid-template-columns:repeat(5,minmax(210px,1fr));gap:12px;overflow-x:auto;align-items:start;padding-bottom:8px}
.kcol{background:var(--bg2,rgba(127,127,127,.08));border:1px solid var(--line);border-radius:12px;padding:8px;min-height:120px}
.kcol.over{outline:2px dashed var(--acc)}
.kcol header{padding:4px 6px 8px;display:flex;justify-content:space-between;align-items:center}
.kbody{display:flex;flex-direction:column;gap:8px}
.kcard{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:9px 10px;font-size:13px;cursor:grab}
.kcard.drag{opacity:.4}.kcard.saved{box-shadow:0 0 0 2px var(--ok)}
.kcard .kc{font-weight:600;margin-top:2px}.kempty{text-align:center;opacity:.6;margin:6px 0}
@media(max-width:700px){.kanban{grid-template-columns:repeat(5,82vw);scroll-snap-type:x mandatory}.kcol{scroll-snap-align:start}}
@media(max-width:700px){
 .hide-m{display:none}
 table{font-size:13px;display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}th,td{padding:8px}
 input,select,textarea{font-size:16px;min-height:38px}
 button{min-height:40px}.bar>*{flex:1 1 140px}
 h2{font-size:20px}.kpi h1{font-size:24px}
 .top form.srch input{font-size:16px}
 .savebar{margin:14px -2px 0}
}
a[href^="tel:"]{white-space:nowrap}
@media print{.side,.top,.savebar{display:none!important}main{padding:0}body{background:#fff}}
.totbar{display:flex;flex-wrap:wrap;gap:6px 18px;padding:9px 12px;margin:8px 0;background:var(--card,#fff);border:1px solid var(--line,#dde);border-radius:8px;position:sticky;bottom:0;z-index:5}.totbar b{font-variant-numeric:tabular-nums}.chk3{display:flex;flex-wrap:wrap;gap:4px 16px}.trow select,.trow input{min-width:0;flex:1}#otbl tr.sel td{background:#cfe3ff!important}
/* ===== единая система кнопок: цвет по смыслу, крупные, с иконками ===== */
button:not(.linkbtn):not(.iconbtn):not(.chipb):not(.tb),a.btn{min-height:38px;padding:8px 16px;font-size:14px;line-height:1.2;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:600;box-shadow:0 1px 0 rgba(0,0,0,.06)}
a.btn{margin:3px 6px 3px 0;text-decoration:none}
[data-ic]::before{content:attr(data-ic);font-size:15px;line-height:1;font-weight:700}
.bk-ok{background:var(--ok)!important;color:#fff!important;border-color:var(--ok)!important}
.bk-pri{background:var(--acc)!important;color:var(--accfg)!important;border-color:var(--acc)!important}
.bk-bad{background:var(--badbg)!important;color:var(--bad)!important;border:1px solid var(--bad)!important}
.bk-bad:hover{background:var(--bad)!important;color:#fff!important}
.bk-sec{background:var(--card)!important;color:var(--fg)!important;border:1px solid var(--line2)!important}
.bk-dl{background:var(--infobg)!important;color:var(--info)!important;border:1px solid var(--info)!important}
.savebar button,.savebar a.btn{min-height:46px;padding:10px 24px;font-size:15px}
.savebar button.pri,.savebar button:first-child{background:var(--ok);border-color:var(--ok);color:#fff}
.bar>button,.bar>a.btn{min-height:40px}
td button:not(.linkbtn),td a.btn{min-height:32px;padding:5px 11px;font-size:13px}
@media (max-width:760px){button:not(.linkbtn):not(.iconbtn):not(.chipb):not(.tb),a.btn{min-height:44px}}
/* --- _css --- */
.colopt{display:flex;align-items:center;gap:6px;padding:3px 6px;border-radius:6px;font-size:13px}.colopt.over{background:var(--acc2);outline:1px dashed var(--acc)}
.colopt .grip{cursor:grab;color:var(--mut)}.colopt .nm{flex:1}.colopt .mv{padding:0 7px;line-height:20px}#otbl th.dropx{box-shadow:inset 3px 0 0 var(--acc)}#otbl th[draggable=true]{cursor:grab}#otbl tbody tr{cursor:pointer}#otbl tbody tr:hover td{background:var(--acc2)}
/* --- _css --- */
.flowgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}.fstep{border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.fstep label{display:block;font-size:13px;color:var(--mut);margin:6px 0}.fstep input[type=date],.fstep input:not([type]){width:auto;display:inline-block}.plan{margin-top:12px;display:grid;gap:6px}
.queue{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;margin-bottom:18px}
a.qitem{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--fg);text-decoration:none}
a.qitem b{font-size:24px;min-width:34px}a.qitem.warn b{color:var(--warn)}a.qitem.bad b{color:var(--bad)}a.qitem.info b{color:var(--info)}
a.qitem:hover{border-color:var(--acc);text-decoration:none}a.qitem.zero{opacity:.5}
#pal{position:fixed;inset:0;background:rgba(10,15,28,.45);display:none;align-items:flex-start;justify-content:center;padding-top:12vh;z-index:99}
#pal.on{display:flex}#pal .box{width:min(640px,94vw);background:var(--card);border:1px solid var(--line2);border-radius:14px;box-shadow:0 20px 60px rgba(0,0,0,.35);overflow:hidden}
#pal input{width:100%;border:0;border-bottom:1px solid var(--line);padding:16px 18px;font-size:17px;border-radius:0;background:transparent;outline:0}
#pal .res{max-height:55vh;overflow:auto}#pal .grp{padding:8px 18px 2px;font-size:12px;color:var(--mut);text-transform:uppercase}
#pal a{display:flex;gap:10px;padding:9px 18px;color:var(--fg);text-decoration:none}#pal a small{margin-left:auto;color:var(--mut)}
#pal a.sel,#pal a:hover{background:var(--acc2);text-decoration:none}#pal .hint{padding:8px 18px;font-size:12px;color:var(--mut);border-top:1px solid var(--line)}
button.busy{opacity:.6;pointer-events:none}

.feedtop{display:grid;gap:8px;margin-bottom:10px}.fcomment{display:flex;gap:8px;align-items:flex-start;margin:0}.fcomment textarea{flex:1;min-height:44px}
.ftask{display:flex;gap:8px;flex-wrap:wrap;margin:0}.ftask input[name=title]{flex:1;min-width:220px}
.fkinds{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 12px}.chipb.on{background:var(--acc);color:var(--accfg);border-color:var(--acc)}
.feed{display:flex;flex-direction:column;gap:8px}.fev{display:flex;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--card)}
.fev.comment{border-left:3px solid var(--acc)}.fev.task{border-left:3px solid var(--warn)}.fev.money{border-left:3px solid var(--ok)}.fev.pinned{background:var(--warnbg)}
.fi{width:22px;text-align:center;flex:none}.fb{flex:1;min-width:0}.ftxt{white-space:normal;overflow-wrap:anywhere}.fh small{color:var(--mut)}
form.inl{display:inline;margin:0}button.linkbtn{background:none;border:0;color:var(--acc);padding:0 8px 0 0;font-weight:500;cursor:pointer}.od{color:var(--bad);font-weight:600}
.ftask-meta{margin-top:4px}
.tgrp h3{margin:16px 0 6px}.tgrp h3.bad{color:var(--bad)}.tgrp h3.warn{color:var(--warn)}
.trow{display:flex;gap:10px;align-items:center;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--card);margin-bottom:6px}.trow .tt{flex:1;min-width:0}
.saved{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:6px 0}.saved .chipb form{display:inline;margin:0}.saved .x{background:none;border:0;color:var(--mut);padding:0 0 0 6px;cursor:pointer}
.kcol header{flex-wrap:wrap}.ksum{display:block;width:100%;color:var(--mut);font-weight:400}
.kcard.late{border-left:4px solid var(--bad);background:var(--badbg)}.kn{margin-top:3px;color:var(--info)}.kn.warn{color:var(--warn)}.kn.bad{color:var(--bad)}
dialog.assetdlg{border:1px solid var(--line2);border-radius:14px;background:var(--card);color:var(--fg);padding:18px;width:min(720px,94vw);max-height:92vh;overflow:auto}
dialog.assetdlg::backdrop{background:rgba(10,15,28,.5)}
.adgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.adgrid label{display:flex;flex-direction:column;gap:3px;font-size:13px;color:var(--mut)}.adgrid label.wide{grid-column:1/-1}.adgrid input{width:100%}
.adr{display:flex;gap:8px;margin-bottom:10px}.adbar{display:flex;gap:8px;align-items:center;margin-top:14px}
div.adw{display:contents}div.adw[hidden]{display:none!important}h4.adh{grid-column:1/-1;margin:10px 0 0;padding-top:8px;border-top:1px solid var(--line);color:var(--fg)}.adchecks{display:flex;gap:14px;flex-wrap:wrap;color:var(--fg)}.adbool{grid-column:auto;flex-direction:row!important;align-items:center;gap:6px!important;color:var(--fg)!important}.adbool input{width:auto}.adgrid select{width:100%}
@media(max-width:600px){.adgrid{grid-template-columns:1fr}}

button.xbtn:not(#x){all:unset;box-sizing:border-box;width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:16px;line-height:1;color:var(--mut);background:var(--bg2,rgba(127,127,127,.12));transition:background .15s,color .15s,transform .15s;z-index:5}
button.xbtn:not(#x):hover{background:var(--bad);color:#fff;transform:rotate(90deg)}
.xbtn:focus-visible{outline:2px solid var(--accent,#3b6cf6);outline-offset:2px}
dialog>button.xbtn:not(#x){position:sticky;top:0;float:right;margin:-8px -8px 0 8px}
[data-closable]{position:relative}
[data-closable]>button.xbtn:not(#x){position:absolute;top:8px;right:8px;width:30px;height:30px;font-size:14px}
.docbar{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center;padding:12px 16px;margin-bottom:14px}
.dbgrp{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.dblab{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--mut);font-weight:700;min-width:74px}
.dbst{color:var(--mut)}.dbst .ok{color:var(--ok)}
.dbmenu{position:relative;margin-left:auto}.dbmenu>summary{list-style:none;cursor:pointer;display:inline-flex}.dbmenu>summary::-webkit-details-marker{display:none}
.dbdrop{position:absolute;right:0;top:calc(100% + 6px);z-index:30;min-width:300px;background:var(--card);border:1px solid var(--line2);border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.18);padding:6px}
.dbdrop a{display:block;padding:9px 12px;border-radius:8px;color:var(--fg);text-decoration:none;font-size:14px}.dbdrop a:hover{background:var(--infobg);color:var(--info)}.dbdrop hr{border:0;border-top:1px solid var(--line2);margin:4px 2px}
summary.btn{list-style:none;display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:8px 16px;font-size:14px;font-weight:600;border:1px solid var(--line2);border-radius:10px;background:var(--card);color:var(--fg);cursor:pointer;box-sizing:border-box}
summary.btn::-webkit-details-marker{display:none}
summary.btn.bk-bad{color:var(--bad);border-color:var(--bad);background:transparent}summary.btn.bk-bad:hover{background:var(--bad);color:#fff}
summary.btn.bk-sec:hover{background:var(--nogobg)}
details[open]>summary.btn{box-shadow:0 0 0 3px var(--infobg)}
/* --- собранное меню и вкладки разделов --- */
.side .ng{margin:4px 0 10px}
.side .ngt{padding:8px 10px 4px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#6e7fa4;user-select:none}
.side a.nl{padding:9px 10px;font-size:14px}
.side .ft span{opacity:.6;display:block;margin-top:6px}
.sectabs{display:flex;gap:4px;flex-wrap:wrap;margin:0 0 16px;padding:4px;background:var(--card);border:1px solid var(--line);border-radius:12px;width:max-content;max-width:100%}
.sectabs a{padding:7px 14px;border-radius:9px;font-size:13.5px;color:var(--mut);text-decoration:none;white-space:nowrap}
.sectabs a:hover{color:var(--fg);background:var(--acc2)}
.sectabs a.on{background:var(--acc);color:#fff;font-weight:600}
.iconbtn.bell{position:relative;text-decoration:none}
.iconbtn.bell .bdg{position:absolute;top:-5px;right:-5px;background:#e5484d;color:#fff;border-radius:10px;font-size:10.5px;padding:0 5px;line-height:16px}
/* --- карточка заявки: одна строка действий --- */
.obar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:0 0 12px}
.obar>a,.obar>form>button,.obar>details>summary{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:5px 12px;border:1px solid var(--line2);border-radius:9px;background:var(--card);color:var(--fg);text-decoration:none;font-size:13.5px;font-weight:400;cursor:pointer}
.obar>a:hover,.obar>details>summary:hover{border-color:var(--acc)}
.obar form{margin:0}
.obar details{position:relative}
.obar details>summary{list-style:none}.obar details>summary::-webkit-details-marker{display:none}
.obar .more{position:absolute;right:0;top:110%;z-index:30;min-width:280px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgba(16,24,40,.18);padding:6px}
.obar .more>a,.obar .more>form>button,.obar .more summary{display:block;width:100%;text-align:left;padding:8px 10px;border:0;border-radius:8px;background:none;color:var(--fg);text-decoration:none;font-size:13.5px;font-weight:400;cursor:pointer;min-height:0}
.obar .more>a:hover,.obar .more>form>button:hover,.obar .more summary:hover{background:var(--acc2)}
.obar .more hr{border:0;border-top:1px solid var(--line);margin:4px 0}
.obar .more .danger,.obar .more .danger summary{color:var(--bad)}
.obar .more details form{padding:4px 10px 8px}
.obar .sp{flex:1}
.fmore{margin-top:10px;border-top:1px dashed var(--line2);padding-top:6px}
.fmore>summary{cursor:pointer;color:var(--acc);font-size:13px;padding:4px 0;list-style:none;user-select:none}
.fmore>summary::-webkit-details-marker{display:none}
.fmore>summary::before{content:"▸ ";display:inline-block;transition:transform .15s}
.fmore[open]>summary::before{transform:rotate(90deg)}
.fmore>summary i{font-style:normal;color:var(--mut);font-size:12px}
.fmore[open]{padding-bottom:4px}
.xpt{margin:12px 0 4px;padding:10px 12px 4px;border:1px solid var(--line2);border-left:3px solid var(--acc);border-radius:10px;background:color-mix(in srgb,var(--acc2) 35%,var(--card))}
.xpt .xh{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.xpt .xh button{min-height:26px;padding:0 8px;margin-left:4px;background:var(--card);color:var(--mut);border:1px solid var(--line2);border-radius:7px;font-weight:400}
.xpt .xh .xdel:hover{color:var(--bad);border-color:var(--bad)}
.addpt{margin-top:10px;width:100%;background:none;border:1px dashed var(--acc);color:var(--acc);border-radius:9px;min-height:34px;font-weight:500;cursor:pointer}
.addpt:hover{background:var(--acc2)}
fieldset.ofs{border:0;margin:0;padding:0;min-width:0}
.obar>.editbtn{min-height:34px;padding:5px 16px;border-radius:9px;background:var(--acc);color:#fff;border:1px solid var(--acc);font-weight:600;cursor:pointer}
.obar>.editbtn.on{background:var(--card);color:var(--bad);border-color:var(--bad)}
.ro-mode section.tp:not([data-panel=feed]) .savebar,.ro-mode section.tp:not([data-panel=feed]) .assetadd,.ro-mode section.tp:not([data-panel=feed]) .addpt,.ro-mode section.tp:not([data-panel=feed]) .xh span,.ro-mode section.tp:not([data-panel=feed]) input[type=file]{display:none!important}
.ro-mode section.tp:not([data-panel=feed]) input:disabled:not([type=checkbox]):not([type=radio]),.ro-mode section.tp:not([data-panel=feed]) select:disabled,.ro-mode section.tp:not([data-panel=feed]) textarea:disabled{background:transparent;border-color:transparent;color:var(--fg);opacity:1;-webkit-text-fill-color:var(--fg);box-shadow:none;cursor:default}
.ro-mode section.tp:not([data-panel=feed]) select:disabled{appearance:none;-webkit-appearance:none}
.ro-mode section.tp:not([data-panel=feed]) input[type=checkbox]:disabled{opacity:.8}
.ro-mode section.tp:not([data-panel=feed]) button:disabled{display:none!important}
.ro-mode section.tp:not([data-panel=feed]) input:disabled::placeholder{color:transparent}
/* --- отчёты --- */
.rhead{display:flex;gap:12px;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;margin:0 0 14px}
.rhead h2{margin:0}.rhead .sub{color:var(--mut);font-size:13px;margin-top:3px}
.rhead .acts{display:flex;gap:8px;flex-wrap:wrap}
.rfilter{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding:10px 14px;margin-bottom:14px}
.rfilter label{display:flex;gap:6px;align-items:center;white-space:nowrap;font-size:13px;color:var(--mut);margin:0}
.rfilter input[type=date]{width:auto}
.rfilter .presets{display:flex;gap:6px;flex-wrap:wrap;margin-left:auto}
.rfilter .presets a{padding:4px 10px;border-radius:999px;background:var(--acc2);color:var(--acc);font-size:12.5px;text-decoration:none}
.rfilter .presets a:hover,.rfilter .presets a.on{background:var(--acc);color:#fff}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:14px}
.kpis .k{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;box-shadow:var(--shadow)}
.kpis .k small{display:block;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--mut)}
.kpis .k b{display:block;font-size:24px;margin:6px 0 2px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.kpis .k span{font-size:12px;color:var(--mut)}
.kpis .k.ok b{color:var(--ok)}.kpis .k.warn b{color:var(--warn)}.kpis .k.bad b{color:var(--bad)}
.kpis .k.acc{border-top:3px solid var(--acc)}
.rcard{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);margin-bottom:14px;overflow:hidden}
.rcard>.rh{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line)}
.rcard>.rh h3{margin:0;font-size:15px}.rcard>.rh small{color:var(--mut)}
.rcard>.rb{padding:12px 16px}
.rcard .tblwrap{margin:0;border:0;border-radius:0}
table.rtbl{width:100%;border-collapse:collapse;font-size:13.5px;font-variant-numeric:tabular-nums}
table.rtbl th{position:sticky;top:0;background:var(--card);text-align:left;font-size:11.5px;letter-spacing:.03em;text-transform:uppercase;color:var(--mut);font-weight:600;padding:9px 10px;border-bottom:1px solid var(--line2);white-space:nowrap}
table.rtbl th a{color:inherit;text-decoration:none}table.rtbl th a.on{color:var(--acc)}
table.rtbl td{padding:8px 10px;border-bottom:1px solid var(--line)}
table.rtbl tbody tr:hover td{background:color-mix(in srgb,var(--acc2) 45%,transparent)}
table.rtbl .n{text-align:right;white-space:nowrap}
table.rtbl tr.tot td{font-weight:700;background:var(--acc2);border-top:2px solid var(--acc);border-bottom:0}
.barcell{position:relative;min-width:120px}
.barcell i{position:absolute;left:0;top:50%;transform:translateY(-50%);height:60%;border-radius:4px;background:color-mix(in srgb,var(--acc) 18%,transparent)}
.barcell i.neg{background:color-mix(in srgb,var(--bad) 22%,transparent)}
.barcell span{position:relative;display:block;text-align:right;padding-right:4px}
.mp{display:inline-block;min-width:52px;text-align:center;padding:1px 8px;border-radius:999px;font-weight:600;font-size:12px}
.mp.ok{background:var(--okbg);color:var(--ok)}.mp.warn{background:var(--warnbg);color:var(--warn)}.mp.bad{background:var(--badbg);color:var(--bad)}
.rnote{color:var(--mut);font-size:12.5px;margin:-4px 0 14px}
details.rhelp{margin:-4px 0 14px;font-size:13px;color:var(--mut)}details.rhelp summary{cursor:pointer;color:var(--acc)}
.mchart{width:100%;height:auto;display:block}
.mchart .b1{fill:color-mix(in srgb,var(--acc) 22%,transparent)}.mchart .b2{fill:var(--acc)}
.mchart .gl{stroke:var(--line);stroke-width:1}.mchart .ax{fill:var(--mut);font-size:11px}
.mchart g:hover .b1{fill:color-mix(in srgb,var(--acc) 35%,transparent)}
.legend{display:flex;gap:16px;font-size:12.5px;color:var(--mut)}.legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.wtext{white-space:pre-wrap;font:14px/1.6 inherit;margin:0}
.lgrp .cnt{font-weight:700;color:var(--bad)}
.mbox{position:absolute;left:8px;top:100%;z-index:40;min-width:260px;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px rgba(16,24,40,.18);padding:4px}
.mbox div{padding:7px 10px;border-radius:7px;cursor:pointer;font-size:13.5px}.mbox div.on,.mbox div:hover{background:var(--acc2)}.mbox small{color:var(--mut)}
b.mn{color:var(--acc);background:var(--acc2);padding:0 4px;border-radius:5px;font-weight:600}
details.bhaul{margin-bottom:12px;border-left:4px solid var(--ok);padding:10px 14px}details.bhaul.back{border-left-color:var(--info)}
details.bhaul>summary{cursor:pointer;list-style:none;font-size:14px}details.bhaul>summary::-webkit-details-marker{display:none}
details.bhaul .tblwrap{margin:10px 0 6px}
.bhint{margin-top:10px;padding:10px 12px;border-radius:10px;background:var(--okbg);border:1px solid color-mix(in srgb,var(--ok) 35%,transparent);font-size:13px}.bhint div{margin-top:4px}
.riskbox{margin-bottom:12px;padding:10px 14px;border-left:4px solid var(--ok)}.riskbox.red{border-left-color:var(--bad);background:var(--badbg)}.riskbox.yellow{border-left-color:var(--warn);background:var(--warnbg)}
.riskbox .rk-h{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.riskbox .rk-l{margin:8px 0 4px;padding-left:4px;list-style:none}.riskbox .rk-l li{margin:3px 0;font-size:13.5px}.riskbox .rk-l li.red{color:var(--bad);font-weight:600}
.ctrbox{position:relative}.ctrbox .dbdrop{position:absolute;right:0;top:110%;z-index:40;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgba(16,24,40,.18)}
.ctrbox label{display:block;font-size:12.5px;color:var(--mut);margin-top:6px}.ctrbox label input{width:100%;margin-top:3px}
.obar .dlink{display:inline-flex;align-items:center;border:1px solid var(--line2);border-radius:9px;overflow:hidden;background:var(--card)}.obar .dlink input{border:0;width:230px;font-size:12px;padding:6px 8px;background:transparent}.obar .dlink button{min-height:32px;border:0;border-left:1px solid var(--line2);background:var(--acc2);color:var(--acc);padding:0 10px}
/* --- _css --- */
.fstep{display:grid;grid-template-columns:150px 1fr 60px;gap:10px;align-items:center;margin:6px 0}.fstep b{text-align:right}.fbar{height:14px;background:var(--line,#e5e7eb);border-radius:7px;overflow:hidden}.fbar i{display:block;height:100%;background:var(--acc,#2563eb)}.fbar.bad i{background:var(--bad,#dc2626)}
/* --- _css --- */
.askbox{display:flex;gap:8px}.askbox input{flex:1;font-size:16px;padding:10px 12px}.askex{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 14px}.askex a{padding:4px 10px;border:1px solid var(--line,#e5e7eb);border-radius:14px;font-size:13px;text-decoration:none;color:inherit}.askex a:hover{border-color:var(--acc,#2563eb)}.askres ul{margin:6px 0 10px 18px}.askres tr.clk{cursor:pointer}
/* --- _css --- */
.phint summary,.ppick summary{cursor:pointer;list-style:revert}.phint .kpis{margin:8px 0}.phint .k.ok b{color:var(--ok,#15803d)}.phint .k.bad b{color:var(--bad,#dc2626)}.phint .k.warn b{color:var(--warn,#b45309)}
/* --- _css --- */
/* упрощение интерфейса */
.row2>*,.grid2>*,.grid3>*{min-width:0}.card .fld input,.card .fld select,.card .fld textarea{max-width:100%;min-width:0;box-sizing:border-box}
.card .fld .trow{flex-wrap:wrap}
#id_external_note{min-height:64px;height:84px}
.egline{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:-2px 0 10px}.egline select{width:auto;padding:4px 6px;font-size:12px}.btn.sm,button.sm{padding:4px 10px;font-size:12px}
.dbfiles{font-size:13px;color:var(--mut)}.dbfiles a{color:var(--acc)}
details.riskbox>summary{list-style:none;cursor:pointer;display:flex;gap:10px;align-items:center;flex-wrap:wrap}details.riskbox>summary::-webkit-details-marker{display:none}
details.riskbox:not([open])>summary{margin:0}details.riskbox:not([open]){padding-top:10px;padding-bottom:10px}
.dbmenu.sub{display:block}.dbmenu.sub>summary{padding:6px 10px;cursor:pointer}
.obar>a,.obar>details>summary{white-space:nowrap}
.totbar .hint{flex-basis:100%;font-size:11px;color:var(--mut)}
/* --- _css --- */
.pmore{display:inline}.pmore>summary{list-style:none;cursor:pointer;display:inline-block}.pmore>summary::-webkit-details-marker{display:none}.pmore[open]{display:contents}
.linkbtn{background:none;border:0;color:var(--mut);font-size:13px;cursor:pointer;padding:4px 6px}.linkbtn:hover{color:var(--acc)}
/* --- _css --- */
a.card.kpi{text-decoration:none;color:inherit;display:block}a.card.kpi:hover{border-color:var(--acc)}.hk .kpi h1{margin:6px 0 2px}.hlink{font-size:13px;font-weight:400}span.bad,td.bad{color:var(--bad,#dc2626)}
/* --- _css --- */
.egline select{width:auto!important;min-width:0!important;padding:3px 6px!important;font-size:12px!important;height:auto!important}
.egline .btn.sm,.egline button.sm{padding:4px 10px!important;font-size:12px!important;min-height:0!important}
.card .fld .trow input[type=time]{min-width:76px;flex:1}
textarea#id_external_note{height:84px!important;min-height:64px!important}
/* --- _css --- */
.grid.hk{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:900px){.grid.hk{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* --- _css --- */
.card .fld .trow{flex-wrap:nowrap}.card .fld .trow input[type=time]{min-width:0!important;flex:1 1 0;padding-left:6px;padding-right:4px}
.card .fld .trow input[type=time]::-webkit-calendar-picker-indicator{display:none}
/* --- _css --- */
.row2:has(input[type=time]){grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr)}.card .fld .trow:has(input[type=time]){gap:4px;padding-left:6px;padding-right:6px}.card .fld .trow input[type=time]{padding-left:2px!important;padding-right:0!important}
/* --- _css --- */
.savebar[hidden]{display:none!important}
/* --- _css --- */
.pickrow{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 8px}.ppk{position:relative;flex:1;min-width:240px;max-width:460px;display:flex}
.ppk .ppk-t{flex:1;padding-right:28px}.ppk .ppk-x{position:absolute;right:4px;top:50%;transform:translateY(-50%);border:0;background:none;color:var(--mut);font-size:18px;cursor:pointer;padding:2px 6px}
.ppk-r{position:absolute;top:100%;left:0;right:0;z-index:60;background:var(--card);border:1px solid var(--line2);border-radius:8px;box-shadow:0 8px 24px rgba(16,24,40,.18);max-height:320px;overflow:auto;margin-top:2px}
.ppk-r div{padding:7px 10px;cursor:pointer;font-size:13px}.ppk-r div:hover,.ppk-r div.on{background:var(--acc2)}
/* --- _css --- */
.presets button.chipb{color:var(--acc)!important;background:transparent!important;border:1px solid var(--line2)!important;min-height:0!important;box-shadow:none!important}
.ppk .ppk-x{background:none!important;border:0!important;box-shadow:none!important;color:var(--mut)!important;min-height:0!important;width:auto!important;height:auto!important;padding:2px 8px!important;font-size:18px!important;line-height:1}
.ppk .ppk-x:hover{color:var(--bad,#dc2626)!important}.ppk .ppk-x[hidden]{display:none!important}
/* --- _css --- */
.fsides .ppk{max-width:none;min-width:0;width:100%}.fsides label{display:block}.fsides .ppk-t{width:100%}
/* --- _css --- */
details.bhaul>summary::after{content:"  ▸ показать";color:var(--acc);font-size:12.5px;font-weight:500}details.bhaul[open]>summary::after{content:"  ▾ скрыть"}details.bhaul:not([open]){padding-top:8px;padding-bottom:8px}
/* --- _css --- */
.paygrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:12px;margin-top:8px}.payside .ph{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.pnums{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;margin-bottom:8px}.pnums b.warn{color:var(--warn)}.pnums b.ok{color:var(--ok)}
.payf{display:flex;gap:6px;flex-wrap:wrap;margin:4px 0}.payf input{width:auto!important;flex:1;min-width:110px}.payf button{white-space:nowrap}
.prow{display:flex;gap:10px;align-items:center;padding:4px 0;border-top:1px solid var(--line);font-size:13px}.prow form{margin:0 0 0 auto}.payside .hlink{display:inline-block;margin-top:8px}
/* --- _css --- */
.pager{display:flex;gap:4px;align-items:center;flex-wrap:wrap;margin:12px 0 4px}.pager .sp{flex:1}
.pager .pg{min-width:32px;height:32px;display:inline-grid;place-items:center;padding:0 8px;border:1px solid var(--line2);border-radius:6px;background:var(--card);color:var(--fg);font-size:13px;text-decoration:none}
.pager a.pg:hover{border-color:var(--acc);color:var(--acc)}.pager .pg.on{background:var(--acc);border-color:var(--acc);color:#fff;font-weight:600}.pager .pg.off{opacity:.35}.pager .pg.gap{border:0;background:none;min-width:18px}
.pgo{display:flex;gap:4px;margin:0 0 0 8px}.pgo input{width:70px!important;height:32px}.pgo button{height:32px;padding:0 10px}
.pgper{display:flex;gap:6px;align-items:center;margin:0 0 0 12px;font-size:13px;color:var(--mut)}.pgper select{width:auto!important;height:32px;padding:2px 6px}.pgi{font-size:13px}
html.lg .pager{margin-bottom:48px}
/* --- _css --- */
/* список заявок: закреплённая шапка, цвета статусов, подсветка строк */
.owrap{max-height:calc(100vh - 230px);overflow:auto}html.lg .owrap{max-height:calc(100vh - 250px)}
.owrap #otbl thead th{position:sticky;top:0;z-index:3;box-shadow:0 1px 0 var(--line2)}
.pill.st{font-weight:600;border:1px solid transparent}
.pill.st[data-v="Не исполнялся"]{background:var(--nogobg);color:var(--nogo)}
.pill.st[data-v="Загрузка"]{background:#efe7ff;color:#6b3fd6}
.pill.st[data-v="В пути"]{background:var(--infobg);color:var(--info)}
.pill.st[data-v="Выгрузка"]{background:#fff0e0;color:#b45309}
.pill.st[data-v="Исполнен"],.pill.st[data-v="Оплачено"]{background:var(--okbg);color:var(--ok)}
.pill.st[data-v="Не оплачено"],.pill.st[data-v="Оплачено частично"]{background:var(--warnbg);color:var(--warn)}
.pill.st[data-v="Задолженность"],.pill.st[data-v="Частичная задолженность"]{background:var(--badbg);color:var(--bad)}
:root[data-theme=dark] .pill.st[data-v="Загрузка"]{background:#2a1f4a;color:#c4b0ff}:root[data-theme=dark] .pill.st[data-v="Выгрузка"]{background:#3a2a12;color:#f5c27a}
#otbl tr.fl-bad td:first-child{box-shadow:inset 4px 0 0 var(--bad)}#otbl tr.fl-bad td{background:color-mix(in srgb,var(--badbg) 55%,var(--card))!important}
#otbl tr.fl-warn td:first-child{box-shadow:inset 4px 0 0 #e0a100}#otbl tr.fl-warn td{background:color-mix(in srgb,var(--warnbg) 55%,var(--card))!important}
#otbl tr.fl-bad:hover td,#otbl tr.fl-warn:hover td{background:var(--acc2)!important}
.olegend{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--mut);margin-right:14px}.olegend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-left:8px}
.olegend .lg-bad{background:color-mix(in srgb,var(--badbg) 70%,var(--card));box-shadow:inset 3px 0 0 var(--bad)}.olegend .lg-warn{background:color-mix(in srgb,var(--warnbg) 70%,var(--card));box-shadow:inset 3px 0 0 #e0a100}
/* --- _css --- */
.owrap #otbl{overflow:visible!important}.owrap{overscroll-behavior:contain}
/* низкая маржа, массовое изменение, виды, риск оплаты */
#otbl tr.fl-low td:first-child{box-shadow:inset 4px 0 0 #8e5bd8}#otbl tr.fl-low td{background:color-mix(in srgb,#8e5bd8 9%,var(--card))!important}
#otbl tr.fl-low:hover td{background:var(--acc2)!important}
.olegend .lg-low{background:color-mix(in srgb,#8e5bd8 14%,var(--card));box-shadow:inset 3px 0 0 #8e5bd8}
#otbl tbody tr.sel td{background:var(--acc)!important;color:#fff}#otbl tbody tr.sel td a{color:#fff}
.bulkbar{position:fixed;left:50%;transform:translateX(-50%);bottom:46px;z-index:70;display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:var(--card);border:1px solid var(--acc);border-radius:10px;padding:8px 12px;box-shadow:0 8px 28px rgba(16,24,40,.22);max-width:calc(100vw - 32px)}
.bulkbar[hidden]{display:none}.bulkbar #bulkv{display:inline-flex;gap:6px;align-items:center}
.chipb.dflt{border-color:var(--acc);background:var(--acc2)}
.payrisk{margin-top:4px;font-size:12.5px;padding:5px 8px;border-radius:6px}.payrisk.ok{color:var(--ok);background:var(--okbg)}.payrisk.warn{background:var(--warnbg)}.payrisk.bad{background:var(--badbg);color:var(--bad)}
.prgrid td,.prgrid th{text-align:center}.prgrid td:first-child,.prgrid th:first-child{text-align:left}
.arform{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end}.arform label{margin:0}
.dupg{margin-bottom:12px}.dupg table td{vertical-align:top}.dupg .why{font-weight:400}

/* компактный список заявок: больше строк на экране */
.osrch{margin-bottom:6px;flex-wrap:nowrap}.osrch .otitle{margin:0 6px 0 0;font-size:16px;white-space:nowrap}.osrch .otitle small{font-size:12px;color:var(--mut)}
.osrch input[name=q]{min-width:200px!important;padding-top:5px;padding-bottom:5px}.osrch .sp{flex:0 0 4px}
.ffilter{padding:8px 10px!important;margin-bottom:6px!important}.ffilter .presets{margin-bottom:0;align-items:center}
.presets .chipb{padding:2px 9px;font-size:12px}
.otools{margin-left:auto;position:relative;display:flex;gap:10px;align-items:center}.otools .colpanel{right:0;top:26px}
.owrap #otbl td{padding-top:3px;padding-bottom:3px}.owrap #otbl th{padding-top:4px;padding-bottom:4px}
.owrap #otbl .pill.st{padding:0 8px;line-height:18px}
.pager{margin:4px 0 0!important}html.lg .pager{margin-bottom:0!important}
.pager .pg{min-width:26px;height:26px;font-size:12.5px}.pgo input,.pgo button{height:26px!important}.pgper select{padding:2px 6px}
html.lg main:has(#otbl){padding-top:8px;padding-bottom:28px}
.osrch button,.osrch a.btn,.osrch .seg a{padding:4px 12px!important;min-height:0!important;height:30px;font-size:13px;display:inline-flex;align-items:center}
.pager .pgo input,.pager .pgo button{height:26px!important;min-height:0!important;padding:0 8px!important}.pgper select{height:26px!important;padding:0 6px!important}
@media(max-width:980px){.osrch{flex-wrap:wrap}}
/* --- _lg --- */
/* ===== Вид «как в Логистере», современный: верхние вкладки разделов, панель инструментов, плотные таблицы, строка итогов внизу ===== */
html.lg{--bg:#eef1f6;--r:6px;--acc:#1f6fd1;--acc2:#e3eefc;--line:#dbe2ec;--line2:#c9d3e1;--shadow:0 1px 1px rgba(16,24,40,.04)}
html.lg[data-theme=dark]{--bg:#0e131c;--acc:#6f9dff;--acc2:#1b2746}
@media(prefers-color-scheme:dark){html.lg:not([data-theme=light]){--bg:#0e131c;--acc:#6f9dff;--acc2:#1b2746}}
html.lg body{font-size:13px}
html.lg .side,html.lg .top .burger{display:none!important}
html.lg main{max-width:none;padding:12px 16px 60px}
html.lg h2{font-size:18px;margin-bottom:.4em}html.lg h3{font-size:14px;margin-top:1.1em}

/* шапка: строка 1 — логотип, поиск, действия */
html.lg .top{padding:6px 14px;gap:8px;background:var(--card);backdrop-filter:none;border-bottom:1px solid var(--line);flex-wrap:wrap;row-gap:0}
.lgbrand{display:none}
html.lg .lgbrand{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--fg);text-decoration:none;margin-right:6px;white-space:nowrap}
html.lg .lgbrand i{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:7px;background:linear-gradient(135deg,#2f7bf0,#6a5cff);color:#fff;font-style:normal;font-size:13px}
html.lg .top form.srch{max-width:460px}
html.lg .top form.srch input{padding:6px 10px 6px 30px;border-radius:6px}
html.lg .top form.srch::before{top:3px;left:9px}
html.lg .iconbtn{width:32px;height:32px;border-radius:6px;font-size:14px}
html.lg .top a.btn.pri{padding:6px 12px;border-radius:6px}

/* строка 2 — вкладки разделов (как «Заказчики · Перевозчики · Заявки» в Логистере) */
.lgtabs{display:none}
html.lg .lgtabs{display:flex;flex-basis:100%;order:10;gap:2px;margin:6px -14px -6px;padding:0 10px;overflow-x:auto;scrollbar-width:none;background:linear-gradient(var(--card),color-mix(in srgb,var(--bg) 70%,var(--card)));border-top:1px solid var(--line)}
html.lg .lgtabs::-webkit-scrollbar{display:none}
html.lg .lgtabs a{display:flex;align-items:center;gap:7px;padding:9px 13px 8px;color:var(--fg);opacity:.82;font-weight:500;white-space:nowrap;border-bottom:3px solid transparent;text-decoration:none;position:relative}
html.lg .lgtabs a i{font-style:normal;display:inline-grid;place-items:center;width:22px;height:22px;border-radius:6px;background:var(--acc2);color:var(--acc);font-size:12px}
html.lg .lgtabs a:hover{opacity:1;background:color-mix(in srgb,var(--acc2) 55%,transparent)}
html.lg .lgtabs a.on{opacity:1;color:var(--acc);border-bottom-color:var(--acc);background:var(--card);font-weight:650}
html.lg .lgtabs a.on i{background:var(--acc);color:#fff}
html.lg .lgtabs .sep{width:1px;background:var(--line);margin:8px 6px}
html.lg .lgtabs .bdg{background:#e5484d;color:#fff;border-radius:9px;font-size:10.5px;padding:0 6px;line-height:16px;margin-left:2px}

/* строка 3 — вкладки внутри раздела как панель инструментов */
html.lg .sectabs{display:flex;gap:2px;flex-wrap:wrap;margin:-12px -16px 12px;padding:5px 14px;background:var(--card);border-bottom:1px solid var(--line);border-radius:0;box-shadow:none}
html.lg .sectabs a{padding:5px 11px;border-radius:5px;font-size:12.5px;color:var(--fg);background:none;border:1px solid transparent}
html.lg .sectabs a:hover{background:var(--acc2);text-decoration:none}
html.lg .sectabs a.on{background:var(--acc2);color:var(--acc);border-color:color-mix(in srgb,var(--acc) 35%,transparent);font-weight:600;box-shadow:none}

/* карточки, кнопки, поля — компактнее */
html.lg .card{border-radius:6px;padding:12px 14px;box-shadow:var(--shadow)}
html.lg input,html.lg select,html.lg textarea,html.lg button{border-radius:5px;padding:5px 9px}
html.lg a.btn{border-radius:5px;padding:5px 11px}
html.lg .grid{gap:10px;margin-bottom:10px}
html.lg .kpi h1{font-size:22px}
html.lg .msg{border-radius:6px;padding:8px 12px}

/* таблицы — плотные, как сетка Логистера */
html.lg table{font-size:12.5px}
html.lg th{background:color-mix(in srgb,var(--bg) 60%,var(--card));font-size:11.5px;font-weight:600;text-transform:none;letter-spacing:0;color:var(--mut);padding:6px 8px;border-bottom:1px solid var(--line2)}
html.lg td{padding:5px 8px;border-bottom:1px solid var(--line)}
html.lg tbody tr:nth-child(even) td{background:color-mix(in srgb,var(--bg) 35%,var(--card))}
html.lg tbody tr:hover td{background:var(--acc2)}
html.lg #otbl tbody tr.sel td{background:var(--acc)!important;color:#fff}html.lg #otbl tbody tr.sel td a{color:#fff}
html.lg .tblwrap{border:1px solid var(--line);border-radius:6px;background:var(--card)}
html.lg .tblwrap table{border:0;box-shadow:none;border-radius:0}

/* фильтр заявок: жёлтая строка с выбранными условиями, как «Последние 100 записей | …» */
html.lg #fform.card{padding:10px 12px}
html.lg .chips{background:#fff7d1;border:1px solid #efd98a;border-radius:5px;padding:5px 8px;margin-top:8px;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
html.lg .chips::before{content:"⏷ Фильтр:";font-weight:600;color:#7a5b00;font-size:12px;margin-right:2px}
html.lg[data-theme=dark] .chips{background:#33290b;border-color:#5c4a14}
html.lg .chipx{background:#fff;border:1px solid #e6cf7a;color:#5b4500;border-radius:4px;padding:1px 7px;font-size:12px}
html.lg[data-theme=dark] .chipx{background:#1d1708;color:#f0d68a}
html.lg .chipb{border-radius:5px;padding:3px 9px;font-size:12px}

/* строка итогов — внизу экрана, как статусная строка Логистера */
html.lg .totbar{position:fixed;left:0;right:0;bottom:0;margin:0;border-radius:0;border:0;border-top:1px solid var(--line2);background:color-mix(in srgb,var(--bg) 50%,var(--card));padding:6px 16px;font-size:12.5px;gap:0;z-index:50;box-shadow:0 -2px 8px rgba(16,24,40,.06)}
html.lg .totbar span+span::before{content:"|";color:var(--line2);margin:0 10px}

/* карточка заявки и контрагента */
html.lg .obar{gap:6px}html.lg .tabs a{padding:7px 12px}
html.lg .phead h2{font-size:19px}

/* переключатель вида */
.uisw{display:none}html .uisw{display:inline-grid}
@media(max-width:980px){html.lg .lgtabs a{padding:8px 10px}html.lg .lgtabs a span{display:none}html.lg .lgtabs a.on span{display:inline}html.lg .totbar{position:sticky}}

/* ===== Компактный режим для всех разделов: меньше воздуха — больше данных на экране ===== */
html.lg .top{padding:3px 12px}
html.lg .top form.srch input{padding:4px 10px 4px 30px}
html.lg .iconbtn{width:28px;height:28px}html.lg .top a.btn.pri{padding:4px 11px}
html.lg .lgtabs{margin:3px -12px -3px}html.lg .lgtabs a{padding:6px 11px 5px}html.lg .lgtabs a i{width:20px;height:20px;font-size:11px}
html.lg .sectabs{margin:-8px -14px 8px;padding:3px 12px}html.lg .sectabs a{padding:3px 10px;font-size:12.5px}
html.lg main{padding:8px 14px 40px}
html.lg h2{font-size:17px;margin:0 0 .3em}html.lg h3{font-size:13.5px;margin:.7em 0 .35em}
html.lg .card{padding:8px 12px}html.lg .card h3:first-child{margin-top:0}
html.lg .card label{margin-top:5px;margin-bottom:2px}
html.lg .grid{gap:8px;margin-bottom:8px}html.lg .grid2{gap:8px}html.lg .tp .card{margin-bottom:8px}
html.lg .fld{margin-bottom:5px}html.lg .fld label{margin-bottom:2px;font-size:11.5px}
html.lg .fld input:not([type=checkbox]),html.lg .fld select{min-height:30px}
html.lg input,html.lg select,html.lg textarea,html.lg button{padding:4px 8px}
html.lg .row2{gap:8px}html.lg .chk{margin:3px 0}
html.lg td{padding:4px 8px}html.lg th{padding:5px 8px}
html.lg td button:not(.linkbtn),html.lg td a.btn{min-height:26px;padding:2px 9px}
html.lg .phead{margin-bottom:8px;gap:10px}html.lg .phead h2{font-size:17px;margin:0 0 2px}
html.lg .av{width:38px;height:38px;border-radius:10px;font-size:17px}
html.lg .tabs{margin:2px 0 8px}html.lg .tabs a{padding:6px 11px;font-size:13px}
html.lg .obar{gap:5px;margin:0 0 8px}
html.lg .obar>a,html.lg .obar>form>button,html.lg .obar>details>summary,html.lg .obar>.editbtn{min-height:28px;padding:3px 10px;font-size:13px}
html.lg .rhead{margin:0 0 8px}html.lg .rhead .sub{font-size:12px;margin-top:1px}
html.lg .kpis{gap:8px;margin-bottom:8px}html.lg .kpis .k{padding:7px 11px}
html.lg .kpi h1{font-size:20px;margin:3px 0 2px}html.lg .kpi b{font-size:19px;margin:3px 0 1px}
html.lg .msg{padding:6px 10px;margin-bottom:8px}
html.lg .queue{gap:8px;margin-bottom:10px}html.lg a.qitem{padding:7px 11px}
html.lg .rfilter{padding:6px 10px;gap:8px;margin-bottom:8px}
html.lg details.fmore>summary{padding:3px 0}
html.lg .pill{padding:1px 8px}
html.lg .bar{gap:6px}
html.lg textarea{min-height:0}
html.lg .docbar{padding:5px 12px;margin-bottom:8px;gap:6px 18px}
html.lg .docbar a.btn,html.lg .obar .bk-pri,html.lg a.btn.bk-pri{padding:3px 11px;min-height:0;font-size:13px}
html.lg .card .fld .trow{padding:2px 6px;margin-bottom:0}
html.lg .fld textarea{min-height:52px;height:52px}
html.lg .grid3,html.lg .ogrid{gap:8px}
html.lg .card .fld input:not([type=checkbox]),html.lg .card .fld select{padding-top:3px;padding-bottom:3px}
html.lg .bhaul{padding:6px 12px}
html.lg button:not(.linkbtn):not(.iconbtn):not(.chipb):not(.tb),html.lg a.btn{min-height:30px;padding:4px 12px;font-size:13px;border-radius:6px}
html.lg a.btn{margin:2px 4px 2px 0}
html.lg .seg a{padding:4px 11px}
html.lg .stcard{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) 3fr;gap:0 12px;align-items:start}html.lg .stcard h3{grid-column:1/-1}
html.lg .stcard .fld textarea{height:44px;min-height:44px}
html.lg td .pill{line-height:16px;padding:0 7px}
@media(max-width:900px){html.lg .stcard{grid-template-columns:1fr}}
html.lg .card .fld input[readonly],html.lg .card .fld select:disabled,html.lg .card .fld input:disabled{min-height:26px}

/* ===== Шапка в одну строку: логотип · разделы · поиск-иконка · действия ===== */
.srchbtn,.densbtn{display:none!important}html.lg .srchbtn,html.lg .densbtn{display:inline-grid!important}
html.lg .top{flex-wrap:nowrap;position:sticky;top:0;z-index:60}
html.lg .top>*{order:2}html.lg .top .lgbrand{order:0;font-size:0;margin-right:4px}html.lg .top .lgbrand i{font-size:13px}
html.lg .top .lgtabs{order:1;flex:1 1 auto;flex-basis:auto;min-width:0;margin:-3px 0 -3px 0;padding:0;background:none;border-top:0}
html.lg .top>.sp{display:none}
html.lg .lgtabs a{padding:10px 9px 8px}html.lg .lgtabs a i{display:none}html.lg .lgtabs .sep{margin:10px 3px}
html.lg .top .who{display:none}
html.lg .top form.srch{position:absolute;top:calc(100% + 4px);right:12px;width:min(560px,92vw);max-width:none;display:none;z-index:80;background:var(--card);padding:8px;border:1px solid var(--line2);border-radius:8px;box-shadow:0 10px 30px rgba(16,24,40,.18)}
html.lg .top form.srch::before{top:13px;left:17px}
html.lg .top.so form.srch{display:block}html.lg .top form.srch input{width:100%}
@media(max-width:1320px){html.lg .lgtabs a i{display:inline-grid}html.lg .lgtabs a span{display:none}html.lg .lgtabs a.on span{display:inline}}
html.lg .sectabs{margin-top:-8px}

/* ===== Длинные списки: таблица по высоте окна, шапка и итог закреплены ===== */
.gfit{overflow:auto;overscroll-behavior:contain}.gfit table{overflow:visible!important;display:table}
.gfit thead th,.gfit tr:first-child>th{position:sticky;top:0;z-index:3;box-shadow:0 1px 0 var(--line2)}
.gfit tr.gtot>td{position:sticky;bottom:0;z-index:2;background:var(--card)!important;box-shadow:0 -1px 0 var(--line2);font-weight:600}

/* значки ролей в списке контрагентов */
.ico{display:inline-block;margin-right:5px;font-size:14px;line-height:1;cursor:default}.ico.ok{color:var(--ok);font-weight:700}

/* фильтр заявок — выпадающая панель поверх таблицы */
html.lg #fform{position:relative}
html.lg #fpanel{position:absolute;left:0;right:0;top:calc(100% - 4px);z-index:45;background:var(--card);border:1px solid var(--line2);border-radius:8px;padding:10px 12px;box-shadow:0 14px 34px rgba(16,24,40,.22);max-height:calc(100vh - 180px);overflow:auto}

/* «Деньги»: панель в одну строку */
.ftool{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 8px}.ftool h2{margin:0}.ftool .fq{display:flex;gap:4px;margin:0}.ftool .fq input{width:200px}.ftool .sp{flex:1}.ftool .ftot{cursor:help}

/* ===== Карточка заявки ===== */
/* одна строка действий: кнопки + документы */
.obar .docbar{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;padding:0;margin:0 0 0 6px;border:0;background:none;box-shadow:none}
.obar .docbar .dbgrp{display:flex;align-items:center;gap:5px}.obar .docbar .dblab{display:none}
.obar .docbar .dbst{font-size:11.5px;color:var(--mut)}.obar .docbar .dbfiles{font-size:12.5px}
/* полоса подсказок: следующий шаг, предупреждения, обратная загрузка */
.ostrip{display:flex;flex-wrap:wrap;gap:6px;align-items:flex-start;margin:0 0 8px}
.ostrip>*{margin:0!important}
.ostrip .owarn{border:1px solid var(--warn);background:var(--warnbg);border-radius:6px;padding:4px 10px;font-size:13px;max-width:100%}
.ostrip .owarn.bad{border-color:var(--bad);background:var(--badbg)}
.ostrip details.owarn>summary{cursor:pointer;list-style:none}.ostrip details>summary::-webkit-details-marker{display:none}
.ostrip details.owarn>summary b{margin-left:6px;color:var(--acc)}.ostrip details.owarn>div{margin-top:4px}
.ostrip>details.card{padding:4px 10px!important;border-radius:6px;font-size:13px}
.ostrip>details[open]{flex-basis:100%;order:9}
.ostrip>details:not([open])>*:not(summary){display:none}
/* блоки формы колонками, без дыр */
.grid3.masonry{display:grid;align-items:start}.grid3.masonry .mcol{display:flex;flex-direction:column;gap:8px;min-width:0}.grid3.masonry .mcol>.card{margin:0}
/* просмотр: «подпись: значение» строками, пустое скрыто */
.ro-mode #oform .fld{display:grid;grid-template-columns:minmax(110px,42%) 1fr;align-items:baseline;gap:0 8px;margin-bottom:1px}
.ro-mode #oform .fld>label{margin:0;font-size:12px;line-height:1.3}
.ro-mode #oform .fld>input,.ro-mode #oform .fld>select,.ro-mode #oform .fld>textarea,.ro-mode #oform .fld>*:not(label){min-height:0!important;height:auto;padding:1px 0!important;border:0!important;box-shadow:none!important}
.ro-mode #oform .fld>textarea{resize:none;height:auto;min-height:0!important}
.ro-mode #oform .fld>small{grid-column:2}
.ro-mode #oform .row2{grid-template-columns:1fr;gap:0}
.ro-mode #oform .fld .trow{border:0;padding:0}
.ro-mode.hide-empty #oform .fld.empty{display:none}
.ro-mode #oform details.fmore>summary{padding:2px 0}
.emptybtn{display:none}.ro-mode .emptybtn{display:inline}

/* ===== Плотный режим (кнопка ⇕ в шапке) ===== */
html.lg.dense body{font-size:12px}
html.lg.dense td{padding:2px 6px}html.lg.dense th{padding:3px 6px}
html.lg.dense .owrap #otbl td{padding-top:1px;padding-bottom:1px}html.lg.dense table{font-size:12px}
html.lg.dense .card{padding:6px 10px}html.lg.dense .fld{margin-bottom:3px}
html.lg.dense input,html.lg.dense select,html.lg.dense textarea{padding:2px 6px;font-size:12px}
html.lg.dense .fld input:not([type=checkbox]),html.lg.dense .fld select{min-height:26px}
html.lg.dense button:not(.linkbtn):not(.iconbtn):not(.chipb):not(.tb),html.lg.dense a.btn{min-height:26px;padding:2px 10px;font-size:12px}
html.lg.dense h2{font-size:15px}html.lg.dense h3{font-size:12.5px}
html.lg.dense .pill{font-size:11px}
html.lg.dense .densbtn{background:var(--acc2);color:var(--acc)}
html.lg summary.btn{min-height:28px!important;padding:3px 10px!important;font-size:13px!important;margin:0}
.ro-mode #oform .fld,.ro-mode #oform .fld *{border-color:transparent!important;box-shadow:none!important;background-image:none}
.ro-mode #oform .fld input:disabled,.ro-mode #oform .fld select:disabled{background:transparent!important}
.hbar{gap:8px;margin-bottom:6px;flex-wrap:wrap}.htbl td.hold{color:var(--bad);text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--bad) 50%,transparent)}.htbl td.hnew{color:var(--ok);font-weight:500}
.htbl tr.hfirst td{border-top:1px solid var(--line2)}.htbl td{word-break:break-word}

/* ===== Вкладка «Документы» заявки ===== */
#flowform .flowgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:8px;align-items:start}
#flowform .fstep{display:block;margin:0;border:1px solid var(--line);border-radius:8px;padding:6px 10px 8px;min-width:0}
#flowform .fstep .fh{display:block;text-align:left;font-size:13px;margin:0 0 4px}
#flowform .frow{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:center;gap:6px;padding:2px 0;border-bottom:1px dashed color-mix(in srgb,var(--line) 70%,transparent)}
#flowform .frow:last-of-type{border-bottom:0}
#flowform .frow .fl{font-size:12.5px;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#flowform .frow.done .fl{color:var(--ok)}#flowform .frow.done .fl::before{content:"✓ ";font-weight:700}
#flowform .frow .fv{display:flex;align-items:center;gap:4px;min-width:0}
#flowform .frow input{padding:2px 6px;font-size:12.5px;min-height:26px;height:26px;box-sizing:border-box}
#flowform .frow input[type=date]{width:128px;flex:0 0 128px}
#flowform .frow input.fno{width:80px;flex:1 1 80px;min-width:50px}
#flowform .frow input[name^=mail_track]{width:100%;flex:1 1 auto}
#flowform .frow .fot{font-size:12px;color:var(--mut)}
#flowform .fnote{font-size:11.5px;color:var(--mut);margin-top:4px}
#flowform .fbtn{margin-top:6px}
#flowform .plan{margin-top:8px;gap:3px;font-size:12.5px}
#scans form.bar{gap:6px!important;margin-bottom:4px}#scans form.bar select{width:auto}#scans form.bar input[type=file]{flex:1;min-width:220px;font-size:12.5px}
#scans table td{word-break:break-word}
#extras form.bar{flex-wrap:wrap}
.pdocs h3{margin:0 0 4px}.pdocs .pdg{display:flex;flex-wrap:wrap;gap:4px 6px;align-items:center;padding:3px 0}
.pdocs .pdl{width:110px;font-size:12px;color:var(--mut)}.pdocs .pdm{font-size:12px;color:var(--mut);margin-left:10px}
.pdocs .pdg a{padding:2px 9px;border:1px solid var(--line2);border-radius:5px;font-size:12.5px;text-decoration:none;background:var(--card)}
.pdocs .pdg a:hover{border-color:var(--acc);background:var(--acc2)}.pdocs .pdg a.muted{border:0;background:none}
.tp[data-panel=docs] .card{overflow-wrap:anywhere}
html .ro-mode #scans input[type=file],.ro-mode #scans input[type=file]{display:inline-block!important}
#extras form.bar{display:flex!important;flex-wrap:wrap;gap:6px;align-items:center}
#extras form.bar select,#extras form.bar input{width:auto!important;flex:0 0 auto;margin:0}#extras form.bar input[name=note]{flex:1 1 220px}
.ro-mode #extras form.bar select,.ro-mode #scans form.bar select{appearance:auto;-webkit-appearance:auto}
.cwho .chipb.on{background:var(--acc);color:#fff;border-color:var(--acc)}
.cwho .cwsel{padding:2px 8px;font-size:12.5px;border-radius:16px;width:auto}.cwho .cwsel.on{border-color:var(--acc);background:var(--acc2);color:var(--acc)}
.stcard .fld textarea{width:100%!important}.ro-mode #oform .stcard .fld{grid-template-columns:minmax(90px,auto) 1fr}
.ipseg{display:inline-flex;gap:0;margin:0 0 8px;border:1px solid var(--line2);border-radius:7px;overflow:hidden;background:var(--card)}
.ipseg a{padding:4px 12px;font-size:12.5px;color:var(--fg);text-decoration:none;border-left:1px solid var(--line)}.ipseg a:first-child{border-left:0}
.ipseg a:hover{background:var(--acc2)}.ipseg a.on{background:var(--acc);color:#fff}
/* --- _motion --- */
/* ===== Живой интерфейс: мягкие анимации, которые не мешают работе. Всё короткое (≤220 мс) и отключается системной настройкой «уменьшить движение». ===== */
:root{--ease:cubic-bezier(.2,.8,.2,1);--grad:linear-gradient(180deg,#2f7bf0,#1f63d6)}
html[data-theme=dark]{--grad:linear-gradient(180deg,#4c8dff,#2f6fe0)}
a,button,.btn,.chipb,.pill,input,select,textarea,summary,.card,.kpi,.qitem,.lgtabs a,.sectabs a,.tabs a,td{transition:background-color .15s var(--ease),border-color .15s var(--ease),color .15s var(--ease),box-shadow .2s var(--ease),transform .15s var(--ease),opacity .15s}

/* кнопки: лёгкий подъём при наведении, «нажатие» при клике */
button:not(.linkbtn):not(:disabled):hover,a.btn:hover,.obar>a:hover,.obar>details>summary:hover{transform:translateY(-1px);box-shadow:0 3px 10px rgba(16,24,40,.10)}
button:not(.linkbtn):not(:disabled):active,a.btn:active,.chipb:active{transform:translateY(0) scale(.97);box-shadow:none}
button.pri,a.btn.pri,.editbtn:not(.on),.bk-pri,#bulkgo{background-image:var(--grad)!important;border-color:transparent!important}
button.pri:hover,a.btn.pri:hover,.editbtn:hover,.bk-pri:hover{filter:brightness(1.06)}
.chipb:hover{transform:translateY(-1px)}

/* логотип и вкладки разделов: плавная полоска под активной вкладкой */
html.lg .lgbrand i{background:var(--grad);box-shadow:0 2px 8px rgba(80,90,255,.35)}
html.lg .lgtabs a{border-bottom-color:transparent!important}
html.lg .lgtabs a::after{content:"";position:absolute;left:8px;right:8px;bottom:-1px;height:3px;border-radius:3px 3px 0 0;background:var(--grad);transform:scaleX(0);transition:transform .22s var(--ease)}
html.lg .lgtabs a:hover::after{transform:scaleX(.35)}html.lg .lgtabs a.on::after{transform:scaleX(1)}
.tabs a{position:relative;border-bottom-color:transparent!important}
.tabs a::after{content:"";position:absolute;left:6px;right:6px;bottom:-1px;height:2px;background:var(--acc);transform:scaleX(0);transition:transform .2s var(--ease)}
.tabs a.on::after{transform:scaleX(1)}

/* появление страницы и переключение вкладок — только прозрачность, ничего не прыгает */
main{animation:fadeIn .18s ease-out}
section.tp:not([hidden]){animation:fadeIn .16s ease-out}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes popIn{from{opacity:0;transform:translateY(-4px) scale(.985)}to{opacity:1;transform:none}}
@keyframes slideIn{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:none}}

/* выпадающие меню, панели, поиск, раскрывающиеся блоки */
.obar .more,.dbdrop,.colpanel:not([hidden]),html.lg #fpanel:not([hidden]),html.lg .top.so form.srch,.bulkbar:not([hidden]),.ppk-r:not([hidden]){animation:popIn .16s var(--ease)}
details[open]>*:not(summary){animation:fadeIn .16s ease-out}
details>summary{cursor:pointer}

/* карточки-ссылки и плитки: мягкая тень при наведении */
a.card:hover,a.kpi:hover,a.qitem:hover,.kpis .k:hover{box-shadow:0 6px 18px rgba(16,24,40,.10);transform:translateY(-1px)}
.kpi h1,.kpis .k b{font-variant-numeric:tabular-nums}

/* таблицы: подсветка строки, выделение */
#otbl tbody tr.sel td{transition:none}
tbody tr:hover td{transition-duration:.05s}

/* фокус с клавиатуры — заметный, но аккуратный */
:focus-visible{outline:2px solid color-mix(in srgb,var(--acc) 70%,transparent);outline-offset:1px;border-radius:4px}

/* уведомления «Сохранено» — всплывают справа сверху и сами исчезают; ошибки остаются до закрытия */
.toasts{position:fixed;top:58px;right:16px;z-index:90;display:flex;flex-direction:column;gap:8px;max-width:min(440px,calc(100vw - 32px));pointer-events:none}
.toasts .msg{pointer-events:auto;margin:0!important;box-shadow:0 10px 30px rgba(16,24,40,.18);animation:slideIn .22s var(--ease);padding:9px 34px 9px 12px!important;position:relative;border-radius:8px}
.toasts .msg.out{opacity:0;transform:translateX(16px);transition:opacity .25s,transform .25s}
.toasts .msg .tx{position:absolute;top:5px;right:6px;border:0;background:none;padding:2px 6px;cursor:pointer;opacity:.6;font-size:15px;min-height:0}
.toasts .msg .tx:hover{opacity:1;transform:none;box-shadow:none}
.toasts .msg .tbar{position:absolute;left:0;bottom:0;height:2px;background:currentColor;opacity:.3;border-radius:0 0 0 8px;animation:tbar 5s linear forwards}
@keyframes tbar{from{width:100%}to{width:0}}

/* полоска загрузки при переходе между страницами */
#navbar{position:fixed;top:0;left:0;height:3px;width:0;z-index:100;background:var(--grad);box-shadow:0 0 8px rgba(80,90,255,.6);opacity:0;transition:width .4s var(--ease),opacity .3s}
#navbar.go{opacity:1;width:70%;transition:width 6s cubic-bezier(.1,.6,.2,1),opacity .1s}
#navbar.done{opacity:0;width:100%;transition:width .2s,opacity .4s .15s}

/* канбан: карточка «поднимается» при перетаскивании */
.kcard{transition:box-shadow .2s var(--ease),transform .15s var(--ease)}.kcard:hover{box-shadow:0 4px 14px rgba(16,24,40,.12)}
.kcard.dragging,.kcard:active{transform:rotate(1deg) scale(1.02);box-shadow:0 12px 28px rgba(16,24,40,.22)}
.kcard.saved{animation:savedFlash .9s ease-out}
@keyframes savedFlash{0%{box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 55%,transparent)}100%{box-shadow:0 0 0 0 transparent}}

/* статусы и метки — чуть живее */
.pill{transition:filter .15s}a:hover .pill{filter:brightness(.97)}
.frow.done .fl::before{display:inline-block;animation:fadeIn .3s}

/* шапка: тень, когда страница прокручена */
header.top.scrolled{box-shadow:0 4px 16px rgba(16,24,40,.08)}
/* плитки с цифрами: цветная полоска слева */
a.card.kpi,.kpis .k{position:relative;overflow:hidden}
a.card.kpi::before,.kpis .k::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--grad);opacity:.85}
.kpis .k.ok::before{background:var(--ok)}.kpis .k.warn::before{background:var(--warn)}.kpis .k.bad::before{background:var(--bad)}
/* карточки секций — едва заметный градиент сверху */
html.lg .card{background-image:linear-gradient(to bottom,color-mix(in srgb,var(--acc) 3%,transparent),transparent 48px)}

/* меню настроек в шапке */
.setm{position:relative}.setm>summary{list-style:none;display:inline-grid;place-items:center}.setm>summary::-webkit-details-marker{display:none}
.setp{position:absolute;right:0;top:calc(100% + 6px);z-index:85;background:var(--card);border:1px solid var(--line2);border-radius:10px;box-shadow:0 12px 30px rgba(16,24,40,.18);padding:6px;min-width:220px;display:flex;flex-direction:column;animation:popIn .16s var(--ease)}
.setp button,.setp a{display:block;text-align:left;border:0!important;background:none!important;padding:7px 10px!important;border-radius:6px!important;color:var(--fg)!important;font-size:13px!important;min-height:0!important;text-decoration:none;box-shadow:none!important;transform:none!important}
.setp button:hover,.setp a:hover{background:var(--acc2)!important}
/* ===== живой слой: кто онлайн, события, обновления строк ===== */
.onl[hidden]{display:none!important}.onl{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--mut);padding:0 6px;cursor:default;white-space:nowrap}
.onl i{width:8px;height:8px;border-radius:50%;background:#1baf7a;box-shadow:0 0 0 0 rgba(27,175,122,.6);animation:onl 2.4s infinite}
@keyframes onl{0%{box-shadow:0 0 0 0 rgba(27,175,122,.55)}70%{box-shadow:0 0 0 7px rgba(27,175,122,0)}100%{box-shadow:0 0 0 0 rgba(27,175,122,0)}}
.here{display:inline-flex;align-items:center;gap:6px;margin-left:10px;font-size:12px;padding:2px 9px;border-radius:12px;background:var(--warnbg);color:var(--warn);animation:fadeIn .3s}
.bell.bump{animation:bump .6s}@keyframes bump{0%,100%{transform:none}20%{transform:rotate(-14deg)}40%{transform:rotate(12deg)}60%{transform:rotate(-8deg)}80%{transform:rotate(4deg)}}
.toasts .msg.ev{background:var(--card);color:var(--fg);border:1px solid var(--line2);border-left:4px solid var(--acc)}
.toasts .msg.ev.ok{border-left-color:var(--ok)}.toasts .msg.ev.warn{border-left-color:var(--warn)}
.toasts .msg.ev a{color:inherit;text-decoration:none;display:block}.toasts .msg.ev small{color:var(--mut)}
tr.flash td{animation:rowFlash 1.6s ease-out}@keyframes rowFlash{0%{background:color-mix(in srgb,var(--ok) 28%,var(--card))}100%{}}
.lfeed{display:flex;flex-direction:column;gap:2px}.lfi{display:grid;grid-template-columns:44px 22px 1fr;gap:6px;align-items:baseline;padding:4px 6px;border-radius:6px;color:var(--fg);text-decoration:none;font-size:12.5px}
.lfi:hover{background:var(--acc2);text-decoration:none}.lfi .tm{color:var(--mut);font-variant-numeric:tabular-nums}.lfi small{color:var(--mut)}.lfi.new{animation:slideIn .35s var(--ease)}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
/* --- _vivid --- */
/* ===== Деловая тема: один фирменный синий, спокойные поверхности, акцентный цвет — только для статусов. ===== */
html.vivid{--brand:#1d4ed8;--brand2:#2563eb;--acc:var(--brand2);--acc2:color-mix(in srgb,var(--brand2) 9%,var(--card));--grad:linear-gradient(180deg,#2563eb,#1d4ed8)}
html.vivid[data-theme=dark]{--brand:#3b82f6;--brand2:#60a5fa;--grad:linear-gradient(180deg,#3b82f6,#2563eb)}
@media(prefers-color-scheme:dark){html.vivid:not([data-theme=light]){--brand:#3b82f6;--brand2:#60a5fa;--grad:linear-gradient(180deg,#3b82f6,#2563eb)}}

/* шапка — матовая, тонкая линия снизу */
html.vivid .top{background:color-mix(in srgb,var(--card) 82%,transparent)!important;backdrop-filter:blur(12px) saturate(1.3);-webkit-backdrop-filter:blur(12px) saturate(1.3)}
html.vivid .lgbrand i{background:var(--brand);box-shadow:none}
html.vivid .lgtabs a.on{color:var(--brand2)!important}
html.vivid .lgtabs a::after{background:var(--brand2)!important}

/* подвкладки: активная — сплошной синий */
html.vivid .sectabs a.on{background:var(--brand2)!important;color:#fff!important;border-color:transparent!important}

/* кнопки — сплошной фирменный синий, без переливов */
html.vivid button.pri,html.vivid a.btn.pri,html.vivid .editbtn:not(.on),html.vivid .bk-pri,html.vivid #bulkgo,html.vivid .seg a.on{background-image:var(--grad)!important;background-color:var(--brand2)!important;border-color:transparent!important;color:#fff!important}
html.vivid .chipb.on,html.vivid .cwho .chipb.on{background:var(--brand2)!important;color:#fff!important;border-color:transparent!important}

/* плитки с цифрами: белые, тонкая цветная линия сверху по смыслу (деньги — зелёная, просрочка — красная) */
html.vivid a.card.kpi::before,html.vivid .kpis .k::before{width:100%;height:2px;bottom:auto;background:var(--brand2);opacity:.9}
html.vivid .kpis .k.ok::before{background:var(--ok)}html.vivid .kpis .k.warn::before{background:var(--warn)}html.vivid .kpis .k.bad::before{background:var(--bad)}
html.vivid a.qitem b{color:var(--brand2)}
html.vivid .card,html.vivid .kpis .k{border-radius:8px!important}

/* таблицы: чуть заметный синий оттенок шапки и наведения */
html.vivid th{background:color-mix(in srgb,var(--brand2) 5%,var(--card))!important}
html.vivid tbody tr:hover td{background:color-mix(in srgb,var(--brand2) 6%,var(--card))!important}

.confetti{display:none}
.totbar .tall{flex-basis:100%}.totbar .tpage{color:var(--mut);display:flex;flex-wrap:wrap;gap:6px 18px}.totbar .tpage b{color:var(--txt,inherit)}
.wishf{padding:8px 12px;margin:8px 0}.wishf label{display:block;font-size:13.5px;margin-bottom:4px}.wishf .trow{display:flex;gap:6px}
.mkt{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin:8px 0}.mkt .mk{border:1px solid var(--line);border-radius:10px;padding:8px 10px}.mkt small{display:block;color:var(--mut);font-size:12px}.mkt b{font-size:19px;font-variant-numeric:tabular-nums}.mkt span{display:block;color:var(--mut);font-size:12.5px}

.econ{border:1px solid var(--line);border-left:4px solid var(--line2);border-radius:10px;padding:10px 12px;margin:8px 0}
.econ.t-ok{border-left-color:var(--ok)}.econ.t-mid{border-left-color:var(--acc)}.econ.t-warn{border-left-color:var(--warn);background:var(--warnbg)}.econ.t-bad{border-left-color:var(--bad);background:var(--badbg)}
.econ-main small,.econ-kv small{display:block;color:var(--mut);font-size:12px}.econ-main>b{font-size:24px;font-variant-numeric:tabular-nums;margin-right:8px}.econ-main span{color:var(--mut);font-size:13px}
.econ.t-ok .econ-main>b{color:var(--ok)}.econ.t-warn .econ-main>b{color:var(--warn)}.econ.t-bad .econ-main>b{color:var(--bad)}
.econ-kv{display:flex;flex-wrap:wrap;gap:6px 18px;margin:8px 0 2px}.econ-kv span{font-variant-numeric:tabular-nums}
.econ-cap,.econ-ok{font-size:13px;margin-top:8px}.econ-ok{font-weight:500}
.ptprog{display:flex;align-items:center;gap:10px;margin:0 0 10px;flex-wrap:wrap}.ptbar{flex:1;min-width:120px;height:8px;border-radius:4px;background:color-mix(in srgb,var(--line) 60%,transparent);overflow:hidden}.ptbar i{display:block;height:100%;background:var(--ok)}
.pttbl input[type=date]{width:140px}.pttbl tr.ptdone td{background:color-mix(in srgb,var(--ok) 9%,transparent)}.pttbl tr.ptlate td{background:color-mix(in srgb,var(--bad) 8%,transparent)}.ptchk{white-space:nowrap;display:flex;gap:5px;align-items:center}
.ptchip{display:inline-block;padding:3px 10px;border-radius:999px;background:var(--warnbg);color:var(--warn);font-size:13px;font-weight:600;text-decoration:none;margin-right:8px}.ptchip.ok{background:var(--okbg);color:var(--ok)}
