@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;font-display:swap;src:url(/static/fonts/open-sans-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;font-display:swap;src:url(/static/fonts/open-sans-latin-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;font-display:swap;src:url(/static/fonts/open-sans-latin-700-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;font-display:swap;src:url(/static/fonts/open-sans-cyrillic-400-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;font-display:swap;src:url(/static/fonts/open-sans-cyrillic-600-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;font-display:swap;src:url(/static/fonts/open-sans-cyrillic-700-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
:root{--bg:#f6f5f2;--panel:#fff;--ink:#111;--muted:#111;--line:#e6e2da;--acc:#7a5c3e;--acc2:#efe7dc;--ok:#2f7d4f;--warn:#b7791f;--bad:#b23b3b;--blue:#2c6aa0;
--s-request:#8a8a8a;--s-ordered:#2c6aa0;--s-paid:#6b4fa3;--s-way:#b7791f;--s-kyiv:#1f8a8a;--s-delivered:#2f7d4f;--s-canceled:#b23b3b}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.45 -apple-system,"Segoe UI",Roboto,Arial,sans-serif}
a{color:var(--acc);text-decoration:none}a:hover{text-decoration:underline}
.hidden{display:none!important}
.muted{color:var(--muted)}
.logo{font-weight:700;font-size:20px;letter-spacing:.5px}.logo span{color:var(--acc)}
.login{position:fixed;inset:0;display:flex;align-items:center;justify-content:center}
.login-box{background:var(--panel);padding:32px;border-radius:12px;border:1px solid var(--line);width:320px;display:flex;flex-direction:column;gap:12px}
label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}
input,select,textarea{font:inherit;padding:7px 9px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);min-width:0}
input:focus,select:focus,textarea:focus{outline:2px solid var(--acc2);border-color:var(--acc)}
.btn{font:inherit;padding:7px 14px;border-radius:7px;border:1px solid var(--line);background:#fff;cursor:pointer;white-space:nowrap}
.btn:hover{border-color:var(--acc)}.btn.primary{background:var(--acc);border-color:var(--acc);color:#fff}.btn.small{padding:3px 9px;font-size:12px}
.btn.danger{color:var(--bad)}
.btn:disabled{opacity:.5;cursor:default}
.err{color:var(--bad);font-size:13px;min-height:18px}
#shell{display:flex;min-height:100vh}
.side{width:210px;flex:none;background:#25221e;color:#e9e4dc;padding:18px 14px;display:flex;flex-direction:column;gap:18px;position:sticky;top:0;height:100vh}
.side .logo{color:#fff}
.side nav{display:flex;flex-direction:column;gap:2px}
.side nav a{color:#d8d1c6;padding:7px 10px;border-radius:7px}
.side nav a.on,.side nav a:hover{background:#3a352f;color:#fff;text-decoration:none}
.side .me{margin-top:auto;font-size:12px}.side .me a{color:#d8b98f}
main{flex:1;padding:22px 28px;min-width:0}
h1{font-size:22px;margin:0 0 14px}h2{font-size:16px;margin:22px 0 10px}
.bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.bar .grow{flex:1}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;margin-bottom:6px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.card .k{font-size:12px;color:var(--muted)}.card .v{font-size:21px;font-weight:600;margin-top:2px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px;margin-bottom:14px;overflow:auto}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:1000px){.grid2{grid-template-columns:1fr}.side{width:170px}}
table{border-collapse:collapse;width:100%}
th,td{padding:6px 8px;border-bottom:1px solid var(--line);border-right:1px solid #efebe4;text-align:left;vertical-align:middle}
/* полосы через строку — как в Excel; цветные ячейки (статусы, дни, типы клиентов) важнее полос */
:where(table) > :where(tbody) > :where(tr:nth-child(even)) > :where(td){background:#e4e6ea}
th{font-size:12px;color:var(--muted);font-weight:500;background:#faf9f6;position:sticky;top:0}
tr.click{cursor:pointer}tr.click:hover td{background:#faf6f0}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
.badge{display:inline-block;padding:2px 10px;border-radius:4px;font-size:12px;color:#111;background:rgb(235,211,251);white-space:nowrap;font-weight:500}
/* цвета статусов — как в WF Business */
.b-Request{background:rgb(235,211,251)}.b-Ordered{background:rgb(255,246,0)}.b-Paid{background:rgb(255,200,120)}.b-On{background:rgb(0,191,255)}.b-In{background:rgb(158,253,56)}
.b-Delivered{background:rgb(5,102,8);color:#fff}.b-Canceled{background:rgb(192,192,192)}.b-Partial{background:rgb(255,120,0);color:#fff;font-weight:700}.b-Delay{background:rgb(255,0,0);color:#fff;font-weight:700}
td.d-yellow{background:rgb(255,246,0)}td.d-orange{background:rgb(255,154,2)}td.d-red{background:rgb(255,0,0);color:#fff;font-weight:600}td.d-ok{background:rgb(5,102,8);color:#fff}
/* типы клиентов — как в WF Business */
.t-undef,tr.t-undef td{background:rgb(255,208,208)}.t-studio,tr.t-studio td{background:rgb(140,202,178)}.t-private,tr.t-private td{background:rgb(161,219,228)}.t-salon{background:#fff}
.legend{display:inline-block;padding:1px 8px;border-radius:4px;border:1px solid var(--line);font-size:12px;font-weight:400}
/* выделенные строки — бирюзовые, как в WF Business */
tr.sel td{background:rgb(69,230,243)!important}

.star{cursor:pointer;color:#d6d0c6;font-size:16px;user-select:none}.star.on{color:#e0a400}
.vip{display:inline-block;background:#e0a400;color:#fff;font-size:10px;font-weight:700;padding:0 5px;border-radius:3px;vertical-align:middle}
td.items{font-size:12px;white-space:pre-line;color:#111;max-width:300px}
.tbar{display:flex;gap:6px;align-items:center;justify-content:flex-end;margin:0 0 6px}.tbar .sel-n{margin-right:auto;font-size:12px}
.pos{color:var(--ok)}.neg{color:var(--bad)}
.warns{background:#fff7e8;border:1px solid #f0d9a8;border-radius:8px;padding:8px 12px;margin:8px 0;font-size:13px}
.warns li{margin:2px 0}
.addline{display:grid;grid-template-columns:1.3fr 1.6fr .7fr .8fr .9fr auto;gap:8px;align-items:end}
@media(max-width:1100px){.addline{grid-template-columns:1fr 1fr 1fr}}
.preview{display:flex;gap:12px;align-items:flex-start;margin-top:10px}
.preview img{width:90px;height:90px;object-fit:cover;border-radius:8px;border:1px solid var(--line);background:#eee}
.thumb{width:36px;height:36px;object-fit:cover;border-radius:5px;background:#eee;vertical-align:middle}
.kv{display:grid;grid-template-columns:150px 1fr;gap:4px 12px}.kv div:nth-child(odd){color:var(--muted)}
.toast{position:fixed;right:20px;bottom:20px;background:#25221e;color:#fff;padding:10px 16px;border-radius:8px;opacity:0;transition:.25s;pointer-events:none;max-width:420px}
.toast.on{opacity:1}.toast.bad{background:var(--bad)}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.35);display:flex;align-items:center;justify-content:center;z-index:10}
.modal-box{background:#fff;border-radius:12px;padding:20px;width:min(560px,92vw);max-height:90vh;overflow:auto}
.form{display:grid;grid-template-columns:1fr 1fr;gap:10px}.form .full{grid-column:1/-1}
.bars{display:flex;align-items:flex-end;gap:6px;height:140px;padding-top:10px}
.bars div{flex:1;background:var(--acc);border-radius:4px 4px 0 0;position:relative;min-height:2px}
.bars div span{position:absolute;bottom:-18px;left:50%;transform:translateX(-50%);font-size:10px;color:var(--muted);white-space:nowrap}
.bars div b{position:absolute;top:-16px;left:50%;transform:translateX(-50%);font-size:10px;font-weight:500;white-space:nowrap}
.tot{display:flex;gap:22px;flex-wrap:wrap;font-size:15px}.tot b{font-size:18px}
td input.cell{width:80px;padding:3px 6px}td select.cell{padding:3px 6px}
.tabs{display:flex;gap:4px;margin-bottom:10px}.tabs a{padding:5px 12px;border-radius:20px;border:1px solid var(--line);background:#fff;color:var(--ink)}.tabs a.on{background:var(--acc);color:#fff;border-color:var(--acc)}
.drop{border:2px dashed var(--line);border-radius:8px;padding:10px;color:var(--muted);font-size:12px;margin:6px 0;text-align:center}.drop.on{border-color:var(--acc);background:var(--acc2)}
.seg{display:inline-flex}.seg .btn{border-radius:0}.seg .btn:first-child{border-radius:7px 0 0 7px}.seg .btn:last-child{border-radius:0 7px 7px 0;margin-left:-1px}.seg .btn.on{background:rgb(192,192,192);border-color:#999;font-weight:600}
.selbar{background:#fff;border:1px solid var(--line);border-radius:8px;padding:6px 10px}.btn.pay{background:rgb(34,197,94);color:#fff;border-color:rgb(34,197,94)}
td.sum-green,.legend.sum-green{color:#22c55e;font-weight:400}td.sum-red,.legend.sum-red{color:#ef4444;font-weight:700}
a.pf-link{color:#111;text-decoration:underline}a.pf-link.pf-paid,u.pf-paid{color:#16a34a}.pf-ok{color:#16a34a;font-weight:700;border:1.5px solid #16a34a;border-radius:50%;display:inline-flex;width:15px;height:15px;align-items:center;justify-content:center;font-size:10px}
.pf-up{display:inline-flex;align-items:center;justify-content:center;width:34px;height:28px;border-radius:6px;background:#3b82f6;color:#fff;font-size:17px;cursor:pointer}.pf-up:hover{background:#2563eb}td.pf{text-align:center;white-space:nowrap}
tr.chg td{background:#fffbe6}
tr.prod td{background:rgb(255,214,214)}tr.prod td:first-child{box-shadow:inset 4px 0 0 rgb(255,0,0)}
.stf{display:inline-flex;gap:6px;flex-wrap:wrap;align-items:center}.stf .btn{border:1px solid rgba(0,0,0,.15)}.stf .btn.on{outline:2px solid #181d1f;outline-offset:1px;font-weight:700}
a.onum{font-weight:400;color:#1d4ed8;text-decoration:underline}a.onum:hover{color:#1e3a8a}
select.cell.badge{border:1px solid rgba(0,0,0,.15);cursor:pointer;font-size:12px;padding:3px 6px}
select option.b-Request{background:rgb(235,211,251)}select option.b-Ordered{background:rgb(255,246,0)}select option.b-On{background:rgb(0,191,255)}select option.b-In{background:rgb(158,253,56)}select option.b-Delivered{background:rgb(5,102,8);color:#fff}select option.b-Delay{background:rgb(255,0,0);color:#fff;font-weight:700}select option.b-Canceled{background:rgb(192,192,192)}
td.num{white-space:nowrap}
/* задержка — красным, чтобы бросалась в глаза: и строка, и статус */
tr.delay td{background:rgb(255,205,205)}tr.delay td:first-child{box-shadow:inset 5px 0 0 rgb(255,0,0)}
tr.delay td.t-salon{background:rgb(255,205,205)}tr.prod td.t-salon{background:rgb(255,214,214)}
.badge.route{background:#e0e7ff;color:#1e3a8a;border:1px solid #6366f1}select.cell.route{background:#e0e7ff;border-color:#6366f1}
.crate{display:inline-block;margin-top:6px;background:#fff3cd;border:2px solid #e0a400;border-radius:8px;padding:6px 12px;font-size:14px}.crate b{font-size:17px;color:#b45309}.crate.big{font-size:16px;margin:4px 0 10px}.crate.big b{font-size:24px}
.protp{border:2px solid #7c3aed;background:#faf5ff}.prot{border-top:1px solid #e9d5ff;padding:8px 0;display:flex;flex-direction:column;gap:4px}.prot:first-of-type{border-top:none}
.prot.high{background:linear-gradient(90deg,#fde2e2,transparent);padding-left:8px;border-left:4px solid #dc2626}.prot.medium{padding-left:8px;border-left:4px solid #a855f7}
.prot .lvl{font-size:11px;font-weight:700;color:#fff;background:#a855f7;border-radius:4px;padding:1px 6px;margin-left:6px}.prot.high .lvl{background:#dc2626}
.prot .why{font-size:12px}.pi{display:inline-block;background:#fff;border:1px solid #e9d5ff;border-radius:4px;padding:1px 6px;margin:1px 2px}.pi.close{border-color:#dc2626}
.badge.prot-b{background:#7c3aed;color:#fff}.prot .btn{align-self:flex-start}
th.sortable{cursor:pointer;user-select:none;white-space:nowrap}th.sortable:hover{color:var(--ink)}.sarr{color:#7a5c3e;font-size:10px}
.fbtn{margin-left:4px;color:#111;font-size:11px;padding:0 3px;border-radius:3px}.fbtn:hover{background:#efe7dc;color:#111}.fbtn.on{background:#2563eb;color:#fff}
.fpop{position:absolute;z-index:50;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.15);padding:8px;width:270px}
.fpop .fq{width:100%;margin-bottom:6px}.fpop .fl{max-height:300px;overflow:auto;display:flex;flex-direction:column;gap:2px}.fpop .fl label{flex-direction:row;align-items:center;gap:6px;color:var(--ink);font-size:13px;cursor:pointer}
.f-n{font-size:12px;color:#2563eb;margin-right:8px}.yp{position:relative;display:inline-block}.yp-m{position:absolute;right:0;top:100%;margin-top:4px;z-index:40;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.15);padding:8px 10px;width:230px;display:grid;grid-template-columns:1fr 1fr;gap:4px}
.yp-m label{flex-direction:row;align-items:center;gap:6px;color:var(--ink);font-size:13px}.yp-m .bar{grid-column:1/-1}.yp-m.hidden{display:none}
/* компактная карточка заказа: всё под рукой, удобно и с телефона */
.obar{gap:6px}.obar .disc{flex-direction:row;align-items:center;gap:2px;color:var(--ink)}.obar .disc input{width:52px;padding:6px}
.dd{position:relative;display:inline-block}.dd-m{display:none;position:absolute;left:0;top:100%;z-index:30;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.14);padding:4px;min-width:230px}
.dd:hover .dd-m,.dd:focus-within .dd-m{display:flex;flex-direction:column}.dd-m button{font:inherit;text-align:left;background:none;border:0;padding:8px 10px;border-radius:6px;cursor:pointer;white-space:nowrap}.dd-m button:hover{background:var(--acc2)}
#view .panel{padding:10px 12px;margin-bottom:10px}#view h1{font-size:20px;margin-bottom:8px}td input.cell{width:64px}
@media(max-width:760px){#shell{flex-direction:column}.side{width:100%;height:auto;position:static;flex-direction:row;flex-wrap:wrap;gap:6px;padding:8px}.side nav{flex-direction:row;flex-wrap:wrap}.side nav a{padding:4px 8px;font-size:13px}.side .me{margin:0}
main{padding:10px}.grid2{grid-template-columns:1fr}.addline{grid-template-columns:1fr 1fr}.panel{overflow-x:auto}th,td{padding:4px 5px;font-size:13px}.kv{grid-template-columns:110px 1fr}}
.fpop{width:300px}.fpop .fl label{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:6px;padding:2px 4px;border-radius:4px}.fpop .fl label:hover{background:#f5f1ea}
.fpop .fc{font-size:11px}.fpop .only{font-size:11px;visibility:hidden;color:#2563eb}.fpop .fl label:hover .only{visibility:visible}
td.frl{color:#111;font-size:12px}details.panel summary{cursor:pointer;list-style:none}details.panel summary::before{content:'▸ ';color:#111}details[open].panel summary::before{content:'▾ '}
#doc-drop{padding:6px;font-size:11px}
.p20{color:#b45309}.p20 b{font-size:15px}label.pf-nofile{cursor:pointer;text-decoration:underline dotted;display:inline}label.pf-nofile::after{content:' ⇪';color:#3b82f6;font-size:11px}#o-sum{line-height:1.6}
select option.b-Partial{background:rgb(255,120,0);color:#fff}
.b-prod{background:rgb(255,0,0);color:#fff;font-weight:700}
#gsearch input{width:100%;background:#3a352f;border:1px solid #4a443c;color:#fff;border-radius:8px;padding:8px 10px}#gsearch input::placeholder{color:#b7ae9f}
.today{font-size:12px;color:#d8b98f;margin-top:-8px}.today b{color:#fff}
.fab{position:fixed;right:22px;bottom:22px;width:54px;height:54px;border-radius:50%;border:0;background:var(--acc);color:#fff;font-size:30px;line-height:1;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.25);z-index:20}.fab:hover{background:#5f4630}
.btn.plus{font-size:20px;line-height:1;padding:5px 13px;border-radius:50%}
.artc{display:grid;grid-template-columns:minmax(220px,380px) 1fr;gap:14px;margin-bottom:10px}.artimg img{width:100%;border-radius:10px;border:1px solid var(--line);background:#eee}.artimg img.small{width:90px;margin-top:6px}
@media(max-width:760px){.artc{grid-template-columns:1fr}.fab{right:14px;bottom:14px}}
.toast{right:90px}
#o-sel{justify-content:flex-end}#o-sel #o-sum{order:2;text-align:right;margin-left:auto}#o-sel .grow{display:none}#o-sel .btn{order:3}
.ohead{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.ohead h1{margin:0}.ohead .back{font-size:20px;text-decoration:none}
.money .tot{gap:26px}.money .due b{font-size:22px}.fopline{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px}.fopline .btn{margin-left:auto}
#view .kv{gap:2px 10px}#view .kv input{padding:4px 8px}
#o-sel{position:sticky;top:0;z-index:15;box-shadow:0 2px 8px rgba(0,0,0,.06)}
/* единый стиль кнопок статусов: тот же цвет, что у бейджа статуса */
.btn.st{border:1px solid rgba(0,0,0,.15);font-weight:600}.btn.st:hover{filter:brightness(.95);border-color:#333}
.stf a.btn{text-decoration:none;color:inherit}.stf .cnt{display:inline-block;min-width:18px;padding:0 5px;margin-left:4px;border-radius:9px;background:rgba(255,255,255,.65);color:#111;font-size:11px;text-align:center}
.stf a.btn:not(.badge){background:#fff}.hint{color:var(--muted);font-size:12px;margin:0 0 8px}tr.frrow td{color:#111;font-size:12px}
.cards a.card{border-left:6px solid var(--line)}
.cards a.card{text-decoration:none;color:var(--ink)}.stc-Request{border-left-color:rgb(235,211,251)!important}.stc-Ordered{border-left-color:rgb(255,246,0)!important}.stc-On{border-left-color:rgb(0,191,255)!important}.stc-In{border-left-color:rgb(158,253,56)!important}.stc-Delay{border-left-color:rgb(255,0,0)!important}.stc-Partial{border-left-color:rgb(255,120,0)!important}
.pctb{display:inline-block;background:#22c55e;color:#fff;font-weight:700;border-radius:5px;padding:2px 7px}input.pc{width:76px;text-align:right}
/* ===== v0.11 ===== */
.modal{z-index:1000}
/* «+» новый заказ сверху — круглый, как нижний */
.btn.plus{width:40px;height:40px;padding:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:26px;line-height:1;box-shadow:0 3px 10px rgba(0,0,0,.18)}
/* цветной список статусов (вместо системного) — один цвет у статуса везде */
.stpop{position:absolute;z-index:1100;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 28px rgba(0,0,0,.18);padding:5px;display:flex;flex-direction:column;gap:4px}
.stpop button{font:inherit;font-size:13px;text-align:left;border:1px solid rgba(0,0,0,.12);cursor:pointer;padding:6px 12px;border-radius:5px}
.stpop button.plain{background:#fff;color:var(--muted)}.stpop button:hover{filter:brightness(.93);outline:2px solid #181d1f;outline-offset:-1px}.stpop button.cur{outline:2px solid #181d1f;outline-offset:-1px}
select.stsel{cursor:pointer}
/* позиции заказа — каждая строка своим цветом статуса */
td.items{white-space:normal;min-width:280px}td.items .it{display:block;padding:2px 7px;margin:2px 0;border-radius:4px;font-size:12px;line-height:1.35;color:#111;border:1px solid rgba(0,0,0,.08)}td.items .it:not([class*="b-"]){background:#eee}
td.items .it.b-Delivered,td.items .it.b-Delay,td.items .it.b-Partial{color:#fff}
/* заметки */
.nti{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;font:italic 700 11px Georgia,serif;cursor:pointer;margin-left:5px;vertical-align:middle;color:#fff;background:#2563eb}
.nti.has-n:not(.has-c){background:#b23b3b}.nti.has-c.has-n{background:linear-gradient(90deg,#2563eb 50%,#b23b3b 50%)}
.it .nti{width:14px;height:14px;font-size:10px;border:1px solid #fff}
.ntpop{position:absolute;z-index:1100;max-width:360px;background:#25221e;color:#fff;padding:8px 11px;border-radius:8px;font-size:13px;white-space:pre-line;box-shadow:0 8px 24px rgba(0,0,0,.25)}
tr.lrow{cursor:pointer}tr.lrow.nopen td{box-shadow:inset 0 -2px 0 #7a5c3e}
tr.noterow td{background:#fbf8f3!important;border-bottom:2px solid #7a5c3e}
.notes2{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:4px 0}.notes2 label{font-size:12px;color:var(--ink);font-weight:600}.notes2 label .muted{font-weight:400}
.notes2 textarea{width:100%;font-size:13px;font-weight:400;resize:vertical;min-height:52px}
@media(max-width:760px){.notes2{grid-template-columns:1fr}}
/* Name2 — для нас: серым под названием */
.n2{font-size:11px;color:#8a7f70;font-style:italic}.n2.inl{display:inline;font-size:12px}
/* перетаскивание файлов */
.dz-on{outline:3px dashed #2563eb!important;outline-offset:-3px;background:#eff6ff!important}
/* просмотр картинки */
.lbox{position:fixed;inset:0;z-index:2000;background:rgba(20,18,15,.85);display:flex;align-items:center;justify-content:center;cursor:zoom-out}
.lbox img{max-width:92vw;max-height:90vh;border-radius:8px;box-shadow:0 10px 40px rgba(0,0,0,.5);background:#fff}.lbox .x{position:absolute;top:16px;right:22px;color:#fff;font-size:26px}
img.thumb,.artimg img,.preview img{cursor:zoom-in}
/* значки ухода с подписями */
.syms{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.sym{display:inline-flex;flex-direction:column;align-items:center;width:84px;text-align:center}.sym img{height:30px}.sym small{font-size:10px;color:var(--muted);line-height:1.2;margin-top:2px}
/* документы из выборки в «Заказах» */
.docbar{margin-top:-6px}.btn.doc{background:var(--acc);color:#fff;border-color:var(--acc)}
/* логотип в меню */
.side .brand{display:flex;align-items:center;gap:10px}.side .brand img{width:46px;height:46px;border-radius:50%;background:#fff;padding:3px;object-fit:contain}
.side .brand .logo{line-height:1.1}.side .brand .sub{font-size:10px;color:#d8b98f;letter-spacing:.6px;text-transform:uppercase;font-weight:400}
.login-box img{filter:none}
/* финансы — как дашборд WF, только аккуратнее */
.fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;align-items:start;margin-bottom:12px}
.fcol{display:flex;flex-direction:column;gap:14px}
.fcard{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.fcard h3{margin:0 0 10px;font-size:17px;font-weight:600;text-align:center}
.frow{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid #f0ece5;font-size:14px}.frow:last-child{border-bottom:0}.frow b{font-weight:600;white-space:nowrap}
.fsep{height:6px}.ftot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-top:10px;font-size:14px}.ftot.big{justify-content:center;font-size:18px;color:var(--blue)}.ftot.big.neg{color:var(--bad)}.ftot.big.pos{color:var(--ok)}
.pill{display:inline-block;min-width:34px;text-align:center;background:#2563eb;color:#fff;border-radius:12px;padding:1px 9px;font-size:13px}
.leg{display:flex;flex-wrap:wrap;gap:6px 14px;justify-content:center;font-size:12px;margin-bottom:8px}.leg i{display:inline-block;width:22px;height:10px;margin-right:5px;vertical-align:middle;border-radius:2px}
.dwrap{display:flex;justify-content:center;align-items:center;flex-direction:column;gap:6px;margin:6px 0 10px}.dc{text-align:center;display:flex;flex-direction:column;font-size:12px}.dc b{font-size:18px}
.donut{position:relative;border-radius:50%}.donut.in{position:absolute;border-radius:50%;border:3px solid #fff}.donut .hole{position:absolute;border-radius:50%;background:#fff}
table.mini td{padding:4px 6px;font-size:13px}.sw{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px}
.pbar{height:8px;background:#eee;border-radius:5px;overflow:hidden;margin-top:6px}.pbar i{display:block;height:100%;background:linear-gradient(90deg,#22c55e,#16a34a)}
.stpop .b-Delivered,.stpop .b-Delay,.stpop .b-Partial,select.stsel.b-Delivered,select.stsel.b-Delay{color:#fff}.stpop .b-Delay,.stpop .b-Partial{font-weight:700}
table.mini td:first-child{white-space:nowrap}

/* ===== v0.12: компактный вид, как в WF Business ===== */
body{font-size:13px;line-height:1.3}
.side{width:172px;padding:12px 10px;gap:10px}
.side nav a{padding:5px 9px;font-size:13px}
main{padding:10px 14px}
#view h1{font-size:17px;margin:0 0 6px}
#view .panel{padding:4px 6px;margin-bottom:8px;border-radius:8px}
#view .bar{gap:6px;margin-bottom:6px}
th,td{padding:2px 6px;line-height:1.3}
th{font-size:11.5px}
tr.lrow td,tr td{height:auto}
input,select,textarea{padding:3px 7px;font-size:13px;border-radius:6px}
.btn{padding:4px 10px;font-size:13px;border-radius:6px}.btn.small{padding:2px 7px;font-size:12px}
.badge{padding:1px 8px;font-size:12px}
.stf .btn,.stf a.btn{padding:3px 10px;font-size:12px}
.tbar{margin:0 0 3px}.tbar .btn{padding:1px 7px}
#view p.muted{margin:4px 0;font-size:12px}
.btn.plus{width:30px;height:30px;font-size:20px}
.fab{width:46px;height:46px;font-size:26px;right:16px;bottom:16px}
.card .v{font-size:18px}
/* позиции в «Заказах»: коллекция | артикул | кол-во, цвет статуса — полоса слева */
td.items{padding:0;min-width:330px;white-space:normal}
td.items .it{display:flex;align-items:center;gap:8px;margin:0;padding:1px 6px 1px 7px;border:0;border-bottom:1px solid #eee9e0;border-left:5px solid #bbb;border-radius:0;background:transparent!important;color:var(--ink)!important;font-size:12.5px;line-height:1.35}
td.items .it:last-child{border-bottom:0}
td.items .ic{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#111}
td.items .ia{flex:none;min-width:96px;font-weight:700}
td.items .iq{flex:none;min-width:58px;text-align:right;color:#111;white-space:nowrap;font-variant-numeric:tabular-nums}
td.items .it.b-Request{border-left-color:rgb(235,211,251)}td.items .it.b-Ordered{border-left-color:rgb(255,246,0)}td.items .it.b-Paid{border-left-color:rgb(255,200,120)}
td.items .it.b-On{border-left-color:rgb(0,191,255)}td.items .it.b-In{border-left-color:rgb(158,253,56)}td.items .it.b-Delivered{border-left-color:rgb(5,102,8)}
td.items .it.b-Canceled{border-left-color:rgb(192,192,192)}td.items .it.b-Partial{border-left-color:rgb(255,120,0)}td.items .it.b-Delay{border-left-color:rgb(255,0,0)}
td.items .badge{margin:2px 6px}
/* статус в «Заказах» — вся ячейка залита цветом статуса */
td.stc{padding:2px 8px;white-space:nowrap;font-size:12.5px;font-weight:400;color:#111}
td.stc.b-Delivered,td.stc.b-Delay,td.stc.b-Partial{color:#fff}
td.stc.b-Delay,td.stc.b-Partial{font-weight:700}
.nti{vertical-align:middle}
@media(max-width:760px){
  .side{padding:6px 8px;gap:4px}.side nav a{padding:3px 7px;font-size:12.5px}
  main{padding:6px}
  th,td{padding:2px 4px;font-size:12.5px}
  td.items{min-width:230px}td.items .ia{min-width:78px}td.items .iq{min-width:48px}
  #view h1{font-size:16px}
}
td select.cell,td select.stsel,td select.cell.badge{padding:0 4px;height:20px;font-size:12px;border-radius:4px}
#l-list td{white-space:nowrap}
#l-list td:nth-child(7){white-space:normal;min-width:110px;max-width:170px}
#l-list td:nth-child(8){max-width:170px;overflow:hidden;text-overflow:ellipsis}
#l-list td:nth-child(11){white-space:normal;min-width:112px}#l-list td:nth-child(11) .badge{display:block;margin:1px 0 0;font-size:11px;white-space:normal}
#l-list td:nth-child(13){white-space:normal;min-width:130px;max-width:260px;font-size:12px}
#l-list td select.stsel,#l-list td select.cell{width:104px}
.chk,.chk-all{margin:0;vertical-align:middle}th:first-child .chk-all,td:first-child .chk{cursor:pointer}
.bar .btn.doc{padding:2px 8px}
@media(max-width:760px){
  .side{flex-direction:row;flex-wrap:wrap;align-items:center;gap:3px 8px;padding:5px 8px;height:auto;position:static;width:100%}
  .side .brand{order:1;gap:6px}.side .brand .sub,.side .brand .ver{display:none}.side .brand img{width:26px!important;height:26px!important}.side .brand .logo{font-size:15px}
  #gsearch{order:2;flex:1;min-width:110px}#gsearch input{width:100%;padding:3px 7px;font-size:13px}
  .side .me{order:3;display:flex;gap:6px;align-items:center;font-size:11.5px;margin:0}.side .me br{display:none}.side .me select{margin:0!important;padding:1px;font-size:11.5px}
  #today{display:none}
  .side nav{order:4;width:100%;flex-direction:row;flex-wrap:nowrap;overflow-x:auto;gap:2px}.side nav a{white-space:nowrap;padding:3px 8px}
  .bar.selbar{font-size:12px}
  .fab{width:40px;height:40px;font-size:22px}
}
@media(max-width:760px){#o-list th:nth-child(3),#o-list td:nth-child(3),#o-list th:nth-child(5),#o-list td:nth-child(5),#o-list th:nth-child(7),#o-list td:nth-child(7),#o-list th:nth-child(12),#o-list td:nth-child(12),#l-list th:nth-child(4),#l-list td:nth-child(4),#l-list th:nth-child(5),#l-list td:nth-child(5),#l-list th:nth-child(6),#l-list td:nth-child(6){display:none}}
#l-list td:nth-child(5){white-space:normal;min-width:70px;max-width:96px}
#l-list td:nth-child(9){white-space:normal;max-width:150px;word-break:break-word}
th .fbtn{margin-left:2px;padding:0 1px}th .sarr{font-size:9px}
td.items{min-width:300px}
#l-list td:nth-child(13){min-width:100px;max-width:200px}#l-list td:nth-child(8){max-width:150px}#l-list td:nth-child(10){min-width:0}
#l-list td:nth-child(5){white-space:nowrap;max-width:112px;overflow:hidden;text-overflow:ellipsis}
#l-list td:nth-child(13){max-width:170px}
td.items .ia{flex:none;width:124px;min-width:124px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
td.items .ic{flex:1 1 auto;min-width:70px}
td.items .iq{width:62px;min-width:62px}
@media(max-width:760px){td.items .ia{width:92px;min-width:92px}td.items .iq{width:50px;min-width:50px}}
/* галочки выбора — «закреплённая колонка» как в Excel: при прокрутке вбок всегда на виду */
td.chkcol:first-child,th.chkcol:first-child{position:sticky;left:var(--pl,0px);z-index:3;background:#fff;box-shadow:1px 0 0 var(--line)}
td.chkcol:last-child,th.chkcol:last-child{position:sticky;right:var(--pr,0px);z-index:3;background:#fff;box-shadow:-1px 0 0 var(--line)}
tr:nth-child(even) > td.chkcol{background:#e4e6ea}
tr.delay > td.chkcol{background:rgb(255,205,205)}
th.chkcol{top:0}
tr.sel > td.chkcol{background:rgb(69,230,243)}
/* v0.12: меню — тонкая строка сверху вместо левой панели (больше места для таблиц) */
@media(min-width:761px){
  #shell{flex-direction:column}
  .side{width:100%;height:auto;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:4px 12px;padding:3px 12px;position:sticky;top:0;z-index:30;box-shadow:0 1px 4px rgba(0,0,0,.25)}
  .side .brand{order:1;gap:7px;flex:none}.side .brand img{width:28px;height:28px;padding:2px}.side .brand .logo{font-size:15px;white-space:nowrap}.side .brand .sub{display:none}
  .side nav{order:2;flex:1;min-width:0;flex-direction:row;flex-wrap:nowrap;gap:0;overflow-x:auto;scrollbar-width:none}.side nav::-webkit-scrollbar{display:none}
  .side nav a{padding:5px 10px;font-size:13px;white-space:nowrap;border-radius:6px}
  #gsearch{order:3;flex:none;width:210px}#gsearch input{padding:4px 9px;font-size:13px;border-radius:6px}
  .today{order:4;flex:none;margin:0;white-space:nowrap;font-size:12px}
  .side .me{order:5;flex:none;margin:0;display:flex;align-items:center;gap:6px;white-space:nowrap;font-size:12px}.side .me br{display:none}.side .me select{margin:0!important;padding:1px 3px;font-size:12px;height:22px}
  main{padding-top:8px}
}
@media(min-width:761px) and (max-width:1250px){.today,.side .me #me-role{display:none}#gsearch{width:150px}}
@media(min-width:761px){
  #gsearch{width:170px}.side .me #me-role{display:none}.side .me select{width:64px}.side .me>span#me-name+span,.side .me{gap:5px}
  .side nav{overflow:visible}.side nav a{padding:5px 8px}.side{gap:4px 8px}
}
@media(min-width:761px) and (max-width:1700px){.today{display:none}}
@media(min-width:761px) and (max-width:1250px){#gsearch{width:120px}.side nav a{padding:5px 6px;font-size:12.5px}}
@media(min-width:761px){.side .me select{width:84px}}

/* v0.13: закреплённая шапка страницы-списка; прокручивается только таблица */
#view.lv{display:flex;flex-direction:column;flex:none;height:calc(100vh - var(--tb,40px));min-height:0;overflow:hidden;box-sizing:border-box}
#view.lv > *{flex:none}
#view.lv > .lvp{flex:1 1 auto;min-height:0;overflow:auto;margin-bottom:4px}
#view.lv > h1{font-size:16px;margin:0 0 4px}
.lvp .tbar{position:sticky;top:0;left:0;z-index:6;background:var(--panel);padding:2px 0;margin:0}
.lvp th{top:0;z-index:4}
.lvp .tbar + table th{top:27px}
.lvp th.chkcol{z-index:7;top:0}
.lvp .tbar + table th.chkcol{top:27px}
main{min-width:0}
/* длинный текст в ячейках: одна строка, многоточие, полный текст при наведении */
td,th{max-width:260px}
td.num,th.num{max-width:none}
td:not(.items):not(.stc):not(.nw){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
td.items{max-width:none}
.nw{white-space:nowrap}
td b,td .onum,a.onum{font-weight:400}
.xbtn{position:absolute;right:10px;top:8px;border:0;background:none;font-size:22px;line-height:1;cursor:pointer;color:#111}.xbtn:hover{color:#000}
#modal-box{position:relative}

.split{display:inline-flex}.split .btn:first-child{border-radius:6px 0 0 6px}.split .btn:last-child{border-radius:0 6px 6px 0;margin-left:-1px;padding:2px 6px}
.pricehost{position:relative;display:inline-block}.pricepop{position:absolute;right:0;top:30px;z-index:50;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 20px rgba(0,0,0,.18);padding:10px;min-width:230px}
.pricepop.hidden{display:none}.pricepop label{font-size:13px;display:inline-flex;gap:5px;align-items:center}
input.cell.kst{padding:1px 4px;font-size:13px}input.cell.kst.saved{background:#d9f2d9;transition:background .3s}.cnt{opacity:.7;font-size:11px}
td.b{font-weight:700}
.frow.dr,.ftot.dr,.ftot .dr,tr.dr{cursor:pointer}.frow.dr:hover,tr.dr:hover,.ftot .dr:hover{background:#f3efe8}.hint2{font-size:11px;color:#111;margin-top:6px;text-align:center}
.drtot{font-size:15px;margin:2px 0 8px}
#modal-box{max-width:92vw}
.sugg{position:fixed;z-index:200;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 20px rgba(0,0,0,.18);max-height:320px;overflow:auto;padding:3px}
.sugg label{display:flex;gap:7px;align-items:center;padding:4px 8px;cursor:pointer;border-radius:5px;font-size:13px}.sugg label:hover{background:#f3efe8}.sugg input{margin:0;pointer-events:none}
.impgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}.impcard{display:block;text-decoration:none;color:inherit;position:relative}.impcard:hover{background:#f7f3ec}.impcard.soon{opacity:.75}.impcard .badge{position:absolute;right:10px;top:10px;background:#eee}
/* заголовок и вкладки закреплены и на страницах-дашбордах */
#view:not(.lv) > h1{position:sticky;top:var(--tb,40px);z-index:20;background:var(--bg,#f4f1ea);padding:4px 0;margin:0}
.bar > h1.h1in{margin:0 6px 0 0;font-size:17px;white-space:nowrap;flex:none}
.pricepop label,.sugg label,#modal-box .lrow label{flex-direction:row}
.pricepop .bar label{margin-right:8px}

.pflag{color:#d32f2f;font-weight:700;margin-left:2px;cursor:help}.pdisc{color:#d32f2f;font-size:10.5px;cursor:help;white-space:nowrap}

/* №23: таблица заказов — жирные значения, полоса клиента без белых дыр, подзаголовки позиций */
#o-list td.items .ic{color:#111}
#o-list td.t-salon{background:transparent}#o-list tr:nth-child(even) td.t-salon{background:#e4e6ea}#o-list tr.delay td.t-salon{background:rgb(255,205,205)}#o-list tr.prod td.t-salon{background:rgb(255,214,214)}
tr.hid-i{display:none}
th.ith{min-width:330px;padding:2px 6px 3px 12px;vertical-align:bottom}
.ih{display:flex;gap:8px;align-items:center;font-weight:700;font-size:11.5px}.ih>:nth-child(1){flex:1 1 auto;min-width:70px}.ih>:nth-child(2){flex:none;width:124px}.ih>:nth-child(3){flex:none;width:62px;text-align:right}
.ih input{font-size:11px;padding:1px 4px;height:20px;box-sizing:border-box;min-width:0}

.dirty{outline:2px solid #e8a33d;background:#fff8e8!important}
.savebar{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:70;display:flex;gap:10px;align-items:center;background:#2b2118;color:#fff;padding:9px 14px;border-radius:10px;box-shadow:0 4px 18px rgba(0,0,0,.3)}
.savebar.hidden{display:none}

/* компактная шапка списка: заголовок · короткий поиск · статусы · годы · + */
#view.lv > .bar:first-of-type{flex-wrap:wrap;gap:6px 8px}
#view.lv > .bar:first-of-type > input.grow{flex:0 1 260px;max-width:260px;min-width:150px}
#view.lv > .bar:first-of-type > .yp{margin-left:auto}
#view.lv > .bar:first-of-type > .stf{display:inline-flex;gap:5px;flex-wrap:wrap}



/* №23: карточка заказа — не растягиваем на весь экран, компактнее, поле артикула заметно */
#view.v-money{max-width:1120px;width:100%;margin-left:auto;margin-right:auto}
#view.v-money > .panel{padding:8px 12px;margin-bottom:8px}
#a-art{border:2px solid var(--acc);background:#fffdf6;font-weight:700;font-size:14px}
#a-art::placeholder{color:#a89a85;font-weight:400}
#view.v-money label{font-size:11.5px}

.addline>*{min-width:0}.addline input,.addline select{min-width:0;width:100%;box-sizing:border-box}.addline .btn{white-space:nowrap}

.sugg label.hl{background:#efe6d6}

.ptab{margin:6px 0;width:auto;min-width:520px}.ptab th.pcol{text-align:left;vertical-align:top;font-size:12.5px}.ptab tr.pno td{color:#8a8378}.ptab tr.psh td{background:#f6efe0}.ptab td,.ptab th{padding:3px 10px}
.ohead{position:sticky;top:var(--tb,40px);z-index:25;background:var(--bg,#f4f1ea);padding:5px 0;margin-bottom:6px;box-shadow:0 3px 4px -3px rgba(0,0,0,.25)}
/* исправление: строки не должны просвечивать между закреплёнными «Выгрузить всё» и заголовком таблицы */
#view.lv > .lvp{padding-top:0!important;padding-bottom:0}
.lvp .tbar{height:28px;box-sizing:border-box;margin:0!important;padding:0 2px!important;overflow:hidden;align-items:center}
.lvp .tbar + table th,.lvp .tbar + table th.chkcol{top:28px}
.lvp > table:first-child th{top:0}

.stkb{border:0;border-radius:10px;padding:0 6px;font-size:12px;font-weight:700;cursor:pointer;line-height:17px;margin-left:4px}.stk-ok{background:#d8f1dd;color:#1d7a37}.stk-split{background:#ffe9b8;color:#9a6200}.stk-no{background:#f9d5d5;color:#b23b3b}.stk-unk{background:#eee;color:#111}

.abar{display:flex;flex-wrap:wrap;gap:14px 28px;align-items:flex-end;justify-content:space-between;background:linear-gradient(180deg,#fff,#f7f8fb)}
.ab-grp{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch}.ab-t{width:100%;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted,#788)}
.ab-acts{margin-left:auto}
.ab{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-width:92px;padding:8px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);cursor:pointer;font:inherit;line-height:1.15;box-shadow:0 1px 2px rgba(0,0,0,.06);transition:transform .08s,box-shadow .12s,filter .12s}
.ab i{font-style:normal;font-size:18px}.ab b{font-size:13px}.ab small{font-size:10.5px;opacity:.85}
.ab:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 10px rgba(0,0,0,.14);filter:brightness(1.04)}.ab:active:not(:disabled){transform:none}
.ab-green{background:#22c55e;border-color:#22c55e;color:#fff}.ab-blue{background:#3b82f6;border-color:#3b82f6;color:#fff}
.ab-gold{background:#f59e0b;border-color:#f59e0b;color:#fff}.ab-save{background:var(--acc);border-color:var(--acc);color:#fff}
.ab-red{background:#fff;border-color:#ef4444;color:#ef4444}.ab-red:hover:not(:disabled){background:#ef4444;color:#fff}
.ab:disabled{background:#eceef2;border-color:#dfe2e8;color:#9aa1ad;cursor:not-allowed;box-shadow:none}
.ab-acts .ab{min-width:78px}
/* страницы-карточки (не длинные таблицы) — узкая центрованная колонка, глаза не разбегаются */
#view:not(.lv){max-width:1180px;width:100%;margin-left:auto;margin-right:auto}
#view.v-dash{max-width:1080px}
#view.v-wide{max-width:1500px}
#view.v-dash .cards{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
#view.v-dash .card{padding:8px 12px}
#view.v-dash .card .v{font-size:22px}
#view.v-dash .fcard table td,#view.v-dash .fcard table th{padding:3px 4px;font-size:12px}
#view.v-dash .panel table td,#view.v-dash .panel table th{padding-left:6px;padding-right:6px}

/* аналитика продаж */
.sa-seg{display:flex;flex-wrap:wrap;gap:6px}.sa-seg button{font:inherit;padding:6px 14px;border:1px solid var(--line);border-radius:999px;background:#fff;cursor:pointer}.sa-seg button.on{background:var(--acc);border-color:var(--acc);color:#fff}
.sa-chk{display:inline-flex;flex-direction:row;align-items:center;gap:5px;font-size:12.5px}
.sa-kpi{display:flex;gap:10px;margin-top:10px;flex-wrap:wrap}.sa-kpi div{flex:1 1 120px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:6px 12px;font-size:11.5px;color:var(--muted,#788)}.sa-kpi b{display:block;font-size:19px;color:var(--ink)}
table.sa td,table.sa th{padding:5px 7px;vertical-align:middle}.sa-th{cursor:pointer;white-space:nowrap}.sa-th.on{color:var(--acc)}
.sa-bar{position:relative;min-width:110px;height:20px;display:flex;align-items:center;justify-content:flex-end}.sa-bar i{position:absolute;left:0;top:2px;bottom:2px;background:rgba(122,92,68,.2);border-radius:4px}.sa-bar b{position:relative;padding-right:4px}.sa-pc{font-size:10.5px}
.sa-share{display:inline-block;width:56px;height:8px;background:#ece8e1;border-radius:4px;vertical-align:middle;overflow:hidden}.sa-share i{display:block;height:100%;background:#8aa}.sa-share.md i{background:#f59e0b}.sa-share.hi i{background:#ef4444}
.sa-v{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11.5px;font-weight:600}.sa-stable{background:#dcfce7;color:#166534}.sa-mid{background:#fef3c7;color:#92400e}.sa-one{background:#fee2e2;color:#991b1b}
.spark{display:block}.sa-mbars{display:flex;align-items:flex-end;gap:3px;overflow-x:auto;padding:4px 0 2px;border-bottom:1px solid var(--line)}.sa-mb{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-width:24px;font-size:9.5px;color:var(--muted,#788);text-align:center}.sa-mb i{display:block;width:16px;background:var(--acc);border-radius:3px 3px 0 0}
.sa-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px;margin-top:10px}.sa-cols table td{padding:3px 6px;font-size:12.5px}

.sa-bar{width:100%;min-width:130px}
#view.v-wide table.sa{width:100%}

/* клиент-кнопка: дотронулся — собрал всё по клиенту */
.cl-btn{display:inline-block;cursor:pointer;padding:1px 8px;margin:-1px -2px;border-radius:999px;border:1px solid transparent;font-weight:400;transition:background .1s,border-color .1s}
.cl-btn:hover{background:#fff;border-color:var(--acc);color:var(--acc);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.cf-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;background:#fff7e6;border:1px solid #f5c26b;border-left:5px solid #f59e0b;border-radius:10px;padding:8px 12px;margin:0 0 8px}

/* v0.17: заметка в строках — одна строка, полный текст при наведении (поверх, без сдвига таблицы) */
td.ln-note{font-size:12px;width:230px;max-width:230px;padding-top:0;padding-bottom:0}
.ln-note .nt{position:relative;height:20px}
.ln-note .nt-in{height:20px;overflow:hidden}
.ln-note .nt-in>div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:224px;line-height:20px}
.ln-note .nt:hover .nt-in{position:absolute;left:-4px;top:-4px;height:auto;width:360px;overflow:visible;background:var(--panel,#fff);border:1px solid var(--line,#ccc);border-radius:6px;box-shadow:0 4px 14px rgba(0,0,0,.22);padding:4px 8px;z-index:40}
.ln-note .nt:hover .nt-in>div{white-space:normal;overflow:visible;max-width:none;line-height:1.35}
/* v0.17: во всех списках ячейка — одна строка; длинный текст обрезается «…», полный виден при наведении */
.lvp table td:not(.items):not(.ln-note):not(.pf){white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}
.lvp table td.pf{white-space:nowrap}

/* v0.17: панель действий заказа — одна компактная строка, группы разделены чертой */
.abar{flex-wrap:wrap;gap:6px 0;align-items:center;justify-content:flex-start;padding:6px 10px!important}
.abar .ab-grp{flex-wrap:nowrap;gap:6px;align-items:center}
.abar .ab-t{width:auto;white-space:nowrap;font-size:10px;margin-right:2px}
.abar .ab-acts{margin-left:0;padding-left:12px;margin-left:12px;border-left:2px solid var(--line,#ddd)}
.abar .ab{flex-direction:row;gap:6px;min-width:0;padding:5px 11px;border-radius:9px;white-space:nowrap}
.abar .ab i{font-size:15px}.abar .ab b{font-size:12.5px}.abar .ab small{display:none}
.abar .ab-acts .ab{min-width:0}
.abar .ab{padding:4px 8px;gap:4px}.abar .ab b{font-size:12px}.abar .ab i{font-size:14px}
.abar .ab-t{display:none}
.abar .ab-acts{margin-left:auto;padding-left:10px}
.abar{flex-wrap:nowrap;justify-content:space-between}

.dgrp{display:inline-flex;gap:6px;padding:0 10px;margin:0 4px;border-left:2px solid var(--line,#ddd);border-right:2px solid var(--line,#ddd)}
.dgrp .btn{white-space:nowrap}
/* v0.17: строки заказа помещаются в панель — кнопки 🏭 и ✕ всегда видны */
tr.lrow input.cell[data-f="qty"],tr.lrow input.cell[data-f="unit_price"]{width:62px;min-width:0}
tr.lrow select[data-f="route"]{width:104px;min-width:0}
tr.lrow input[data-f="supplier_invoice"]{width:84px!important}
tr.lrow select[data-f="status"]{min-width:0;width:104px}
tr.lrow td{padding-left:5px;padding-right:5px}
tr.lrow button[data-cancel]{color:#c0392b;font-weight:700;min-width:26px}

/* v0.17: Строки заказов — фон чередуется по ЗАКАЗАМ (как в списке заказов), между заказами линия */
#l-list tr.og0:not(.delay):not(.prod)>td:not([class*="d-"]):not([class*="t-"]:not(.t-salon)){background:#fff}
#l-list tr.og1:not(.delay):not(.prod)>td:not([class*="d-"]):not([class*="t-"]:not(.t-salon)){background:#e4e6ea}
#l-list tr.ogfirst>td{border-top:2px solid #b9ad99}
#l-list td:not(.ln-note){white-space:nowrap!important;word-break:normal!important;min-width:0!important}
#l-list td .badge{white-space:nowrap!important;display:inline-block!important}
#l-list td:nth-child(11){max-width:none!important}
/* v0.17: жирным — суммы, номера проформ, CID/ID, количества, дни, даты — во всех таблицах */
table td, table td.num, table td.pf, table td.pf *, .pf-link, td.neg, td.pos, td.muted:not(.ln-note), td.items .it, td.items .it *{font-weight:400!important}
table td.sum-red, table td.sum-green, td.items .ia, td.bcol, td.bcol b{font-weight:700!important}
label.pf-nofile{color:#111}
.lvp td.muted:not(.ln-note){color:#3b3f45}
td.bcol,td.bcol b{font-weight:700!important}td.bcol input,td.bcol select{font-weight:inherit}
/* тип / статус клиента в карточке заказа (14.10.2026) */
.tsrow select{height:28px;padding:0 6px;border:1px solid #cfc8bb;border-radius:6px;font-size:13px}
.tsrow select.t-undef{background:rgb(255,208,208)}.tsrow select.t-studio{background:rgb(140,202,178)}.tsrow select.t-private{background:rgb(161,219,228)}
.tsrow select.cst-Unchecked{background:#ffd0d0;color:#9b1c1c;font-weight:600}.tsrow select.cst-Active{background:#e3f1e3}.tsrow select.cst-Inactive{background:#eee;color:#111}.tsrow select.cst-Not{background:#f3e6c8}

/* v0.18 (Матвей 14.10.2026): ничего не наезжает на любой ширине. Меню переносится на вторую строку, а не налезает; на узких экранах — прокрутка пунктов */
@media(min-width:761px){
  .side{flex-wrap:wrap}
  .side nav{flex:1 1 440px;flex-wrap:wrap;overflow:visible;min-width:0}
  .side .me{margin-left:auto}
  #gsearch{flex:0 1 170px;min-width:110px}
}
@media(max-width:760px){
  .side nav{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}
  body,#shell,main{max-width:100vw}main{overflow-x:clip}
  table{max-width:100%}.panel{overflow-x:auto}
}
img,svg,canvas,video{max-width:100%}
@media(max-width:420px){
  .side .me{flex-wrap:wrap;min-width:0;max-width:100%;font-size:11px}
  .side .me #me-name{max-width:70px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .side .me select{width:58px!important}#gsearch{min-width:80px}
}

/* v0.18: жирный только у артикула и сумм */
tr.flagged td{font-weight:400}td.d-red{font-weight:400}

.cl-btn{font-weight:400!important}

/* v0.18: СВЕТЛОЕ оформление (как старая WF): светлый фон, тёмный текст, светлая верхняя панель, без коричневых блоков */
:root{--bg:#f4f5f7;--panel:#fff;--ink:#111;--muted:#111;--line:#dcdfe4;--acc:#3b6ea5;--acc2:#e8eef6}
body{font:13px/1.4 Arial,"Helvetica Neue",Helvetica,sans-serif}
.side{background:#fff!important;color:#111!important;border-bottom:1px solid #d5d8dd;box-shadow:none!important}
.side .logo,.side .brand .logo{color:#111!important}.side .logo span{color:var(--acc)}
.side nav a{color:#111!important}.side nav a.on,.side nav a:hover{background:#e8eef6!important;color:#1d4f8a!important}
.side .me,.side .me a{color:#111!important}.side .me a{color:#1d4f8a!important}
.side .brand .sub,.side small{color:#111!important}
#gsearch{background:#f4f5f7!important;color:#111!important;border:1px solid #d5d8dd!important}
.btn.primary,.fab,#fab,.add-fab{background:#3b6ea5!important;border-color:#3b6ea5!important;color:#fff!important}
th{background:#eef0f3!important;color:#111}
a{color:#1d4f8a}
#gsearch input{background:#f4f5f7!important;color:#111!important;border:1px solid #d5d8dd!important}#gsearch input::placeholder{color:#8a8f98!important}
/* v0.18: тонкие плитки статусов — одна узкая строка */
.cards.slim{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 8px}
.cards.slim .card{flex:1 1 120px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:3px 10px;min-height:0;border-radius:8px}
.cards.slim .card .k{margin:0}.cards.slim .card .v{font-size:18px;margin:0;font-weight:700}

/* v0.18 (по замечаниям QA): списки без щели у закреплённых колонок, таблицы не шире панели */
#view .panel.pl-o,#view .panel.pl-l,#view .panel.pl-c,#view .panel.pl-k{padding-left:0;padding-right:0}
#view .panel.pl-o>.bar,#view .panel.pl-l>.bar,#view .panel.pl-c>.bar,#view .panel.pl-k>.bar,#view .panel.pl-o>.muted,#view .panel.pl-l>.muted,#view .panel.pl-c>.muted,#view .panel.pl-k>.muted{padding-left:8px;padding-right:8px}
@media(max-width:1250px){#o-list th,#o-list td,#l-list th,#l-list td{padding-left:4px;padding-right:4px}td.items{min-width:290px}#o-list td:nth-child(7),#o-list th:nth-child(7){max-width:90px}#l-list td:nth-child(5),#l-list th:nth-child(5){max-width:84px}}
@media(max-width:1250px){#o-list th:nth-child(5),#o-list td:nth-child(5),#o-list th:nth-child(7),#o-list td:nth-child(7),#l-list th:nth-child(5),#l-list td:nth-child(5),#l-list th:nth-child(6),#l-list td:nth-child(6){display:none}}
@media(max-width:1000px){#o-list th:nth-child(3),#o-list td:nth-child(3),#l-list th:nth-child(3),#l-list td:nth-child(3){display:none}}
@media(max-width:760px){.obar{flex-wrap:wrap}.panel{overflow-x:auto}#view .bar{flex-wrap:wrap}h1{min-width:0}}
/* v0.18: жирный только артикулы и суммы; поля не шире содержимого */
.prot b,.prot strong,.prot .first,tr.lrow button[data-cancel],.notes2 label,select option,.stpop .b-Delay,.b-Delay,.b-Partial,select.stsel{font-weight:400!important}
#view .form input,#view .form select{max-width:380px}#view .form label.full input{max-width:560px}
.addline input,.addline select{max-width:190px}.addline .art,.addline #ar-a{max-width:220px}
#view td select{width:auto;max-width:150px}
@media(max-width:760px){#view .form input,#view .form select{max-width:100%}}
@media(max-width:1250px){td.items{min-width:260px}#o-list td:nth-child(6),#o-list th:nth-child(6){max-width:170px}#l-list td:nth-child(7),#l-list th:nth-child(7){max-width:150px}}
@media(max-width:760px){.dgrp{flex-wrap:wrap;border:0;padding:0;margin:0}.panel span[style*="float:right"]{float:none!important;display:flex!important;flex-wrap:wrap;margin-top:6px}.panel .btn{white-space:normal}}

/* v0.18: шрифт как в старой WF — Open Sans (встроен в программу, работает без интернета) */
body,input,select,textarea,button{font-family:'Open Sans',Arial,'Helvetica Neue',Helvetica,sans-serif}body{font-size:13.5px}
@media(max-width:1500px){#l-list th:nth-child(6),#l-list td:nth-child(6){display:none}}
/* Оплаты поставщикам · PET — одна страница: слева мои оплаты, справа выписка KT */
.sp-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}
@media (max-width:1250px){.sp-grid{grid-template-columns:minmax(0,1fr)}}
tr.pet-ok td{background:#e3f4e6!important}
#sp-t td{padding-top:5px;padding-bottom:5px}
#sp-t td:nth-child(7){max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Строки заказов: колонки по содержимому, всё свободное место — «Заметке» (последняя колонка) */
#l-list table{width:100%}
#l-list th:last-child,#l-list td:last-child{width:100%!important;max-width:0!important;min-width:120px!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap!important}
#l-list td:nth-child(11) .badge:not(select){max-width:34px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
/* Расход: форма слева, шаблоны комментариев справа */
#modal-box.wide-ex{max-width:1000px;width:min(1000px,96vw)}
.ex-wrap{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}
@media(max-width:760px){.ex-wrap{grid-template-columns:minmax(0,1fr)}}
.ex-tpl{border-left:1px solid #e3e5e8;padding-left:14px}
.ex-tpl #ex-tq{width:100%}
#ex-tl{max-height:360px;overflow:auto;margin-top:6px}
#ex-tl .tpl{padding:4px 6px;border-radius:4px;cursor:grab;display:flex;gap:8px;justify-content:space-between;align-items:baseline;user-select:none}
#ex-tl .tpl:hover{background:#eef3fb}
#ex-tl .tpl span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
#ex-tl .tpl small{white-space:nowrap;font-size:11px;flex:none}
/* PET: зона перетаскивания и предпросмотр перед сохранением */
.pet-drop{border:2px dashed #b9c3cf;border-radius:8px;padding:10px;text-align:center;color:#6b7480;font-size:13px;cursor:pointer;margin:6px 0}
.pet-drop.over{border-color:#3d6fa8;background:#eef3fb;color:#3d6fa8}
.pet-prev{border:1px solid #c9d8ea;background:#f6f9fd;border-radius:8px;padding:8px;margin:6px 0}
.pet-prev table td,.pet-prev table th{font-size:11px;padding:2px 6px}
.fg-list .fg-it{padding:6px 0;border-bottom:1px solid #eceef1}.fg-list .fg-k{font-size:12px;margin-top:2px}
.fbtn,.sarr{font-family:'Segoe UI Symbol','Segoe UI',Arial,sans-serif}
tr.cap{display:none!important}
/* Единое правило (решение Матвея): всё, что убирает/удаляет, — КРАСНОЕ; согласие «всё верно» — ЗЕЛЁНОЕ. Глазу не надо искать */
.btn.danger,button.danger{background:#fdeaea!important;border-color:#e8a1a1!important;color:#c62828!important}
.btn.danger:hover,button.danger:hover{background:#c62828!important;border-color:#c62828!important;color:#fff!important}
.btn.ok{background:#2e7d32!important;border-color:#2e7d32!important;color:#fff!important}
.btn.ok:hover{background:#25692a!important}
.warnbox{display:flex;gap:12px;align-items:flex-start;background:#fdeaea;border:1px solid #e8a1a1;border-left:4px solid #c62828;border-radius:6px;padding:8px 10px;color:#7a1d1d;font-size:13px}
.warnbox ul{margin:4px 0 0 18px;padding:0}.warnbox .wb-act{display:flex;gap:6px;flex:none}
tr.doc-warn>td{padding:2px 0 8px!important;white-space:normal!important}
#l-list td.invcell,#l-list td.ln-note{cursor:text}
#l-list td.invcell:hover,#l-list td.ln-note:hover{outline:1px dashed #9fb3cc;outline-offset:-2px}
#l-list input.ed-in{width:100%;min-width:90px;height:22px;padding:0 4px;font-size:13px;border:1px solid #3d6fa8;border-radius:3px}
.cf-staff{margin-top:10px;border-top:1px solid #e3e5e8;padding-top:8px}
.st-row{display:grid;grid-template-columns:1.3fr 1fr 1fr auto;gap:6px;margin:5px 0}
.cfl-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.cfl-it{position:relative;width:120px;height:90px;border:1px solid #dfe3e8;border-radius:6px;overflow:hidden;background:#f6f7f9}
.cfl-img{width:100%;height:100%;object-fit:cover;cursor:zoom-in;display:block}
.cfl-doc{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;font-size:26px;text-decoration:none;padding:4px;text-align:center}
.cfl-doc span{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:110px;color:#111}
.cfl-x{position:absolute;top:3px;right:3px;padding:0 5px!important;line-height:18px}
.subpanel{border-top:1px solid #e3e5e8;margin-top:12px;padding-top:10px}
.subpanel .bar input{min-width:0}
/* Клиенты: цвета статусов и типов — на кнопках-фильтрах и в списке */
.cst-Active{background:#d9efd9!important;color:#1e5e22}.cst-Inactive{background:#e6e6e6!important;color:#111}.cst-Unchecked{background:#ffd0d0!important;color:#9b1c1c;font-weight:600}.cst-Not{background:#f3e2b8!important;color:#6b4e0e}
.cstb{padding:1px 8px;border-radius:10px;font-size:12px}
#c-flt button[data-g="st"][data-v="Active"]{background:#d9efd9;color:#1e5e22}#c-flt button[data-g="st"][data-v="Inactive"]{background:#e6e6e6;color:#111}
#c-flt button[data-g="st"][data-v="Unchecked"]{background:#ffd0d0;color:#9b1c1c}#c-flt button[data-g="st"][data-v="Not our segment"]{background:#f3e2b8;color:#6b4e0e}
#c-flt button[data-g="ty"][data-v="Undefined"]{background:rgb(255,208,208)}#c-flt button[data-g="ty"][data-v="Design studio"]{background:rgb(140,202,178)}#c-flt button[data-g="ty"][data-v="Private client"]{background:rgb(161,219,228)}#c-flt button[data-g="ty"][data-v="Salon"]{background:#fff}
#c-flt button.on{outline:2px solid #222;outline-offset:1px;font-weight:700}
#c-list select.c-ty,#c-list select.c-st{height:22px;padding:0 4px;font-size:12.5px;border-radius:4px;border:1px solid #cfd5dc;max-width:150px}
#c-list select.c-ty.t-salon{background:#fff}
#c-list td.c-city{cursor:text}#c-list td.c-city:hover{outline:1px dashed #9fb3cc;outline-offset:-2px}
.phl{white-space:nowrap;display:inline-block;margin:1px 6px 1px 0}
.phl .msg{display:inline-block;font-size:10px;font-weight:700;line-height:16px;padding:0 4px;border-radius:8px;color:#fff!important;text-decoration:none;margin-right:2px;vertical-align:1px}
.phl .m-wa{background:#25a244}.phl .m-vb{background:#7360f2}.phl .m-tg{background:#229ed9}
.phl .msg:hover{filter:brightness(1.15)}
.phl .ph-n{color:inherit;text-decoration:none;border-bottom:1px dotted #8a96a3}
/* узкие экраны: правая закреплённая колонка галочек не наезжает на статус; плитки статусов — сетка */
@media(max-width:1250px){td.chkcol:last-child,th.chkcol:last-child{position:static!important;box-shadow:none!important}}
@media(max-width:600px){#view.v-dash .cards,.cards.slim{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px}
  .cards.slim .card{min-width:0!important;padding:6px 8px!important}.cards.slim .card .v{font-size:18px!important}
  .tbar{flex-wrap:wrap}}
@media(max-width:1250px){.sp-grid .panel>.bar{flex-wrap:wrap}}
.fr-l{display:inline-flex;flex-direction:row;align-items:center;gap:4px;font-size:12px;color:var(--muted)}
#today b{color:#111!important;font-weight:700!important}
@media(max-width:600px){
  .lvp .tbar{flex-wrap:nowrap!important;overflow:hidden}.lvp .tbar .sel-n{display:none}.lvp .tbar .f-n{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  tr[data-key]{display:flex;flex-wrap:wrap;align-items:center}tr[data-key]>td:nth-child(2){flex:1 1 70%;min-width:0;white-space:normal!important}
  tr[data-key]>td:last-child{width:100%;text-align:left!important;white-space:normal!important;padding-top:0!important}
}
/* Строки заказов: таблица не шире экрана (иначе при правке ячейки она сдвигалась и слева появлялась «дыра» под закреплённой галочкой) */
#l-list td:nth-child(7){max-width:150px;overflow:hidden;text-overflow:ellipsis}
#l-list td:nth-child(8){max-width:130px;overflow:hidden;text-overflow:ellipsis}
#l-list td:nth-child(9){max-width:140px;overflow:hidden;text-overflow:ellipsis}
#l-list th:last-child,#l-list td:last-child{min-width:70px!important}
#l-list td.invcell{min-width:70px}
#c-flt{display:flex;flex-wrap:wrap;align-items:center;gap:6px}#c-flt .grow{flex:1 1 20px}
/* статус клиента в строке выглядит ровно как кнопка-фильтр сверху */
#c-list select.c-st{border-radius:6px;font-weight:500;padding:0 6px}
#c-list select.c-st.cst-Active{background:#d9efd9!important;color:#1e5e22;border-color:#a9d3a9}
#c-list select.c-st.cst-Inactive{background:#e6e6e6!important;color:#111;border-color:#c8c8c8}
#c-list select.c-st.cst-Unchecked{background:#ffd0d0!important;color:#9b1c1c;border-color:#efa3a3}
#c-list select.c-st.cst-Not{background:#f3e2b8!important;color:#6b4e0e;border-color:#dcc58b}
#c-flt button[data-g="st"]{border-color:transparent}
.st-row{grid-template-columns:1.2fr .9fr 1fr .9fr auto auto!important}.st-m{display:flex;align-items:center;gap:2px;font-size:14px;color:#c9a227;flex-direction:row!important}
.pstar{cursor:pointer;color:#b8b8b8;font-size:14px;text-decoration:none;margin-right:3px}.pstar.on{color:#e0a800}
.phl .m-off{background:#c7ccd2!important;cursor:default}.phl .m-em{background:#6b7785}
/* компактно: итоговые цифры — одной узкой строкой по содержимому, без растянутых пустых коробок (Аналитика, Финансы и др.) */
.sa-kpi{display:flex!important;flex-wrap:wrap;gap:6px!important;grid-template-columns:none!important}
.sa-kpi>div{flex:0 0 auto!important;display:flex!important;flex-direction:row!important;align-items:baseline;gap:6px;padding:4px 12px!important;min-height:0!important;font-size:12px;color:var(--muted);border-radius:8px}
.sa-kpi>div b{display:inline!important;font-size:16px!important;color:var(--ink);margin:0!important}
.cards:not(.slim){display:flex!important;flex-wrap:wrap;gap:6px}
.cards:not(.slim)>.card{flex:0 0 auto;padding:6px 14px;min-width:150px}
.cards:not(.slim)>.card .v{font-size:18px}
/* таблицы-списки не шире экрана на ноутбуках 1280–1500: второстепенные колонки прячутся (данные остаются в фильтрах/выгрузке) */
@media(max-width:1500px){#o-list th:nth-child(5),#o-list td:nth-child(5),#o-list th:nth-child(7),#o-list td:nth-child(7){display:none}
  td.items{min-width:250px}#o-list th,#o-list td{padding-left:5px;padding-right:5px}
  #k-list th:nth-child(6),#k-list td:nth-child(6),#k-list th:nth-child(7),#k-list td:nth-child(7){display:none}#k-list th,#k-list td{padding-left:5px;padding-right:5px}}
@media(max-width:1366px){#c-list th:nth-child(3),#c-list td:nth-child(3){display:none}#c-list th,#c-list td{padding-left:5px;padding-right:5px}
  #c-list td.c-ph .ph-n{max-width:120px;display:inline-block;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom}}
/* закреплённая колонка галочек — того же цвета, что и строка (тип клиента, полоса группы) */
tr.t-undef>td.chkcol{background:rgb(255,208,208)!important}tr.t-studio>td.chkcol{background:rgb(140,202,178)!important}tr.t-private>td.chkcol{background:rgb(161,219,228)!important}
/* карточка клиента: таблица книг не вылезает за свою панель */

#view .cl-books table td{max-width:200px;overflow:hidden;text-overflow:ellipsis;padding-left:5px;padding-right:5px}
@media(max-width:600px){
  tr[data-key]{display:grid!important;grid-template-columns:24px minmax(0,1fr);border-bottom:1px solid #e3e5e8}
  tr[data-key]:nth-child(even){background:#eef0f3}tr[data-key]>td{background:transparent!important;border:0!important}
  tr[data-key]>td:last-child{grid-column:1/-1;display:flex!important;flex-wrap:wrap;gap:4px;align-items:center;padding:2px 6px 6px!important}
}

/* 0.21: панели в две колонки не тянутся по высоте соседа */
.grid2{align-items:start}

/* 0.21 финансы: лестница, ⓘ, контроль */
a.ib{display:inline-block;margin-left:5px;width:16px;height:16px;line-height:16px;text-align:center;border-radius:50%;background:#e7effc;color:#2563c9!important;font-size:11px;font-weight:700;cursor:pointer;text-decoration:none!important;vertical-align:1px}
a.ib:hover{background:#2563c9;color:#fff!important}
.fcard.lad{margin-bottom:12px;border-color:#b9cdf0;max-width:980px}
.lad .lhead{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:6px;font-size:15px}
.lad .lnew{background:#e7effc;color:#2563c9;border-radius:10px;padding:1px 8px;font-size:11px;font-weight:700}
.lad .lrow{display:grid;grid-template-columns:24px minmax(0,1fr) 220px 110px;gap:10px;align-items:center;padding:6px 0;border-bottom:1px solid #f0f1f3;font-size:14px}
.lad .lrow b{text-align:right;white-space:nowrap}
.lad .lnum{width:20px;height:20px;border-radius:10px;background:#2563c9;color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center}.lad .lnum.m{background:#c62828}
.lad .lbar{position:relative;height:12px;background:#f3f5f8;border-radius:3px}.lad .lbar i{position:absolute;top:0;bottom:0;border-radius:3px;background:#2563c9}.lad .lbar i.neg{background:#e57373}
.lad .lreal{display:flex;justify-content:space-between;align-items:center;background:#e8f3ec;border:1px solid #b5dcc2;border-radius:10px;padding:10px 14px;margin:10px 0 6px;font-size:16px;font-weight:600}
.lad .lreal b{font-size:22px;color:#1e7a3a}.lad .lreal.neg{background:#fdecec;border-color:#e57373}.lad .lreal.neg b{color:#c62828}
.lad .lsub{font-size:12.5px;margin-bottom:6px}
@media(max-width:760px){.lad .lrow{grid-template-columns:22px minmax(0,1fr) 96px}.lad .lbar{display:none}}
.ctiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:8px 0}
.ctile{background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px 10px;cursor:pointer;font-size:12.5px}.ctile b{font-size:17px}
.ctile.bad{border-color:#e57373}.ctile.bad b{color:#c62828}.ctile.good b{color:#1e7a3a}
table.ctl tr.badrow>td{background:#fff5f5}table.ctl tr.okrow>td{color:#7a8590}
table.ctl td.ln-note{max-width:520px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.badge-red{background:#c62828;color:#fff;border-radius:10px;padding:1px 9px;font-size:12px;font-weight:600}.badge-green{background:#2e7d32;color:#fff;border-radius:10px;padding:1px 9px;font-size:12px}
.btn.blue{background:#2563c9!important;border-color:#2563c9!important;color:#fff!important}
.btn.sm{padding:2px 8px;font-size:12px}

/* 0.21 Главная — 4 колонки */
.d4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:8px 0 10px;align-items:start}
.d4c{background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 12px;font-size:13px;min-width:0}
.d4t{display:block;font-size:13.5px;margin-bottom:4px}
.d4r{display:flex;justify-content:space-between;gap:8px;padding:3px 0;border-top:1px solid #f0f1f3;white-space:nowrap}.d4r:first-of-type{border-top:0}
.d4r>span{overflow:hidden;text-overflow:ellipsis;min-width:0}.d4r b{white-space:nowrap}
.d4p{font-size:12px;padding:0 0 3px;white-space:nowrap;overflow:hidden}
.d4more{display:inline-block;font-size:12px;margin:3px 8px 0 0}
.d4fin{display:inline-block;background:#fdecec;border:1px solid #e57373;color:#c62828!important;border-radius:8px;padding:4px 12px;margin:6px 0 0;font-size:13px}
@media(max-width:1100px){.d4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.d4{grid-template-columns:1fr}}
.d4r .cl-btn{display:inline;padding:0 2px;margin:0}

/* 0.21 клиент: сводка одной строкой, свёрнутые каталоги */
.csum{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;margin:4px 0 10px;max-width:1100px}
.cst{background:#fff;border:1px solid var(--line);border-radius:8px;padding:5px 10px;font-size:12px;display:flex;flex-direction:column}.cst b{font-size:16px}
.cst.bad{border-color:#e57373}.cst.bad b{color:#c62828}
.catpill{display:inline-block;background:#f1efe8;border-radius:10px;padding:0 8px;font-size:12px;color:#5b5240;white-space:nowrap}
.it.catgrp{cursor:pointer}.it.catgrp .ia{color:#2563c9}

/* 0.21 телефон: нижняя панель + заказы карточками */
#bnav{display:none}
@media(max-width:600px){
  #bnav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:fixed;left:0;right:0;bottom:0;z-index:60;background:#fff;border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}
  #bnav a{display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 0 7px;font-size:11px;color:#111;text-decoration:none;min-height:44px;justify-content:center}
  #bnav a i{font-style:normal;font-size:18px;line-height:1}#bnav a.on{color:#2563c9;font-weight:600}
  body{padding-bottom:62px}
  .fab{bottom:72px!important}
  .side nav{display:none!important}
  body.navopen .side nav{display:flex!important;flex-direction:column!important;position:fixed;left:0;right:0;bottom:56px;z-index:59;background:#fff;border-top:1px solid var(--line);padding:6px 10px;max-height:60vh;overflow:auto;box-shadow:0 -6px 20px rgba(0,0,0,.12)}
  body.navopen .side nav a{padding:10px 8px!important;font-size:15px;border-bottom:1px solid #f0f1f3}
  #o-list table{display:block;border:0;min-width:0!important;width:100%}
  #o-list tbody{display:block}
  #o-list tr:first-child{display:none}
  #o-list tr{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"n c s" "i i i" "st st d";gap:3px 8px;background:#fff;border:1px solid var(--line);border-radius:10px;margin:0 0 8px;padding:8px 10px}
  #o-list tr>td{display:block;border:0!important;padding:0!important;background:none!important;position:static!important;box-shadow:none!important;min-width:0;max-width:none!important}
  #o-list tr>td:nth-child(1),#o-list tr>td:nth-child(3),#o-list tr>td:nth-child(4),#o-list tr>td:nth-child(5),#o-list tr>td:nth-child(7),#o-list tr>td:nth-child(11),#o-list tr>td.chkcol{display:none!important}
  #o-list tr>td:nth-child(2){grid-area:n;font-weight:700}#o-list tr>td:nth-child(6){grid-area:c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  #o-list tr>td:nth-child(10){grid-area:s;font-weight:700}#o-list tr>td:nth-child(8){grid-area:i}#o-list tr>td:nth-child(9){grid-area:st;font-size:12px}#o-list tr>td:nth-child(12){grid-area:d;font-size:12px}
  #o-list tr.delay{border-color:#e57373}
}
.lad .lreal{flex-wrap:wrap;gap:6px}.lad .lreal b{white-space:nowrap}
#view{padding-bottom:80px}
#view.lv > .lvp{flex:0 1 auto}

/* 0.21: скидка в итогах заказа — % и € рядом */
.discbox .dpair{display:inline-flex;align-items:center;gap:3px}.discbox .dpair input{width:52px;padding-left:4px;padding-right:2px}.discbox .dpair #o-disc{width:66px}.discbox .dpair i{font-style:normal;color:#111;margin-right:4px}
.discbox input.calc{color:#111;font-style:italic}

/* 0.22: телефоны клиента — строка на номер */
.ph-row{display:grid;grid-template-columns:92px minmax(110px,1fr) minmax(90px,1fr) minmax(130px,1.1fr) 30px;gap:5px;margin-bottom:5px;align-items:center}

.ph-who-l{color:#111;font-size:12.5px}
@media(max-width:600px){.ph-row{grid-template-columns:86px 1fr auto}.ph-row .ph-who,.ph-row .ph-r{grid-column:span 1}}
#cf-ph-add{width:auto!important;display:inline-block;margin-top:2px}
.erase-l{max-height:220px;overflow:auto;margin:4px 0 8px;padding-left:18px}

/* 0.22: мессенджеры — одинаковые цвета везде (маленькие значки у номера и большие кнопки в окнах) */
.msg{display:inline-block;font-size:10px;font-weight:700;line-height:16px;padding:0 4px;border-radius:8px;color:#fff!important;text-decoration:none;margin-right:2px;vertical-align:1px}
.m-wa{background:#25a244}.m-vb{background:#7360f2}.m-tg{background:#229ed9}.m-em{background:#6b7785}
.btn.mb{color:#fff!important;font-weight:600;border:0!important}.btn.mb .msg{background:rgba(255,255,255,.22)}
.btn.mb-wa{background:#25a244!important}.btn.mb-vb{background:#7360f2!important}.btn.mb-tg{background:#229ed9!important}.btn.mb-em{background:#6b7785!important}
.btn.mb:hover{filter:brightness(1.1)}

/* 0.22 аналитика: заказы клиента внутри карточки книги */
tr.sa-cl{cursor:pointer}tr.sa-cl:hover td{background:#e7effc}tr.sa-cl.open td{background:#dbe7fb;font-weight:600}
tr.sa-co>td{padding:4px 6px 10px 14px!important;background:#f7f9fc}
.sa-cot{width:100%;font-size:12.5px}.sa-cot th{font-weight:600;color:#111}.sa-cot td.ln-note{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sa-cotot td{border-top:1px solid #c9d3e3}

/* 0.22: окно «Вы уверены, что хотите стереть?» — поверх всего, в т.ч. поверх других окон */
.cfm-wrap{position:fixed;inset:0;z-index:9999;background:rgba(20,25,35,.35);display:flex;align-items:center;justify-content:center;padding:16px}
.cfm{position:relative;background:#fff;border-radius:12px;box-shadow:0 12px 40px rgba(0,0,0,.25);padding:18px 20px 14px;max-width:440px;width:100%}
.cfm-t{display:block;font-size:16px;color:#c62828;padding-right:22px}.cfm-d{margin-top:8px;font-size:13px;color:#111;max-height:80px;overflow:hidden}
.cfm-b{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.cfm-x{position:absolute;right:10px;top:8px;border:0;background:none;font-size:20px;cursor:pointer;color:#111}
.cfm-ok:focus{outline:3px solid rgba(198,40,40,.35);outline-offset:1px}
table.fitw{width:auto!important;min-width:520px;max-width:100%}
.panel.okbox{border-color:#b5dcc2;background:#f1f9f3}.panel.okbox div{margin-top:3px;font-size:13px}
tr.yhide{display:none!important}
/* 0.24 Lifetime / Статус каталога */
.lfb{display:inline-block;border-radius:10px;padding:1px 8px;font-size:12px;font-weight:600;white-space:nowrap}
.lf-a .lfb,.lfb.lf-a{background:#e8f3ec;color:#1e7a3a}.lfb.lf-s{background:#fff1c2;color:#7a5a00}.lfb.lf-i{background:#eceff2;color:#111}
td.lfc.lf-s{background:#fff6d6}td.lfc.lf-i{background:#eceff2}td.lfc select{background:transparent}
.lfchip{border-radius:14px}.lfchip.on.lf-a{background:#1e7a3a;color:#fff;border-color:#1e7a3a}.lfchip.on.lf-s{background:#e0a100;color:#fff;border-color:#e0a100}.lfchip.on.lf-i{background:#5b6673;color:#fff;border-color:#5b6673}.lfchip.on.lf-q{background:#f0d27a;border-color:#e0a100}
.lfq{display:inline-flex;width:16px;height:16px;border-radius:50%;background:#ffe27a;color:#7a5a00;font-weight:700;font-size:11px;align-items:center;justify-content:center}
td.stc.st-ex{background:#a6f74f}td.stc.st-sr{background:#fff34d}td.stc.st-nb{background:#7fdccd}td.stc select{background:transparent}
span.stc.st-ex{background:#a6f74f}span.stc.st-sr{background:#fff34d}span.stc.st-nb{background:#7fdccd}span.stc{background:#eceff2;font-size:12px}
tr.k-off td{color:#111}tr.k-off td a{color:#6b7885}
.btn.warnb{background:#fff1c2;border-color:#e0a100;color:#7a5a00}
.lrt td{vertical-align:middle;padding:4px 6px}.lrt tr.lr-h td{background:#e7effc;padding:6px}.lrt tr.lr-g td{background:#f5f7fa}.lrt tr.lr-past td:first-child{box-shadow:inset 3px 0 0 #c62828}
.lrt select,.lrt input{font-size:12px}
.artwarn{display:inline-block;border-radius:6px;padding:1px 6px;font-size:11px;font-weight:600;margin-left:4px}.artwarn.stock{background:#fff1c2;color:#7a5a00}.artwarn.inactive{background:#fdecec;color:#c62828}
.warnbox.yel{background:#fff6d6;border-color:#f0d27a;color:#5a4300}
.warnbox.yel{border-left-color:#e0a100}
.ntpop .ntx{float:right;margin:-2px -2px 4px 8px;cursor:pointer;color:#c62828;font-weight:700}.stpop .stx{color:#111;border-top:1px solid #eceff2;margin-top:4px}
/* 0.24 кубики «от прибыли к деньгам» */
.cubes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:10px}
.cube{position:relative;border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:3px;min-width:0}
.cube .t{font-size:13px;font-weight:600}.cube .v{font-size:22px;font-weight:700;white-space:nowrap}.cube .s{font-size:12px;color:#111}
.cube .cl{display:flex;justify-content:space-between;gap:8px;font-size:12px}.cube .cl b{white-space:nowrap}
.cube .op{position:absolute;left:-11px;top:50%;transform:translateY(-50%);background:#fff;border:1px solid #c9ced6;border-radius:50%;width:20px;height:20px;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center}
.cube.g{background:#e8f3ec;border:1px solid #b5dcc2}.cube.g .v{color:#1e7a3a}.cube.y{background:#fff6d6;border:1px solid #f0d27a}.cube.y .v{color:#8a6a00}
.cube.r{background:#fdecec;border:1px solid #e57373}.cube.r .v{color:#c62828}.cube.b{background:#e7effc;border:2px solid #2563c9}.cube.b .v{color:#2563c9}
.cfoot{display:grid;grid-template-columns:1fr;gap:10px;margin-top:10px}.cfoot .note{border-radius:8px;padding:8px 10px;font-size:13px;background:#f5f7fa;border:1px solid #d9dde3}
.flog{background:#e7effc;border-radius:8px;padding:6px 8px;margin:6px 0}.flog .frow{border:0;padding:3px 0}
@media(max-width:900px){.cubes{grid-template-columns:1fr 1fr}.cfoot{grid-template-columns:1fr}}
.pbat{background:#e7effc;border-radius:6px;padding:0 5px;margin-right:4px}
#k-list table{font-size:13.5px}#k-list select.cell{max-width:128px;padding:1px 2px}#k-list .kexp{width:62px!important}#k-list td{padding-left:5px;padding-right:5px}
/* 0.26 каталоги у клиента */
.cbt td{padding:3px 6px}.cbt select.cbst{padding:1px 4px;font-size:12.5px;border-radius:5px}
.cb-sold{background:#a6f74f!important}.cb-sold_kt{background:#b5c34a!important}.cb-gift{background:#7fe0c2!important}.cb-to_offer{background:#f6d7ef!important}.cb-loan{background:#fff34d!important}.cb-rent{background:#ffb35c!important}.cb-offered{background:rgb(235,211,251)!important}.cb-refused{background:#d5d9de!important;color:#4a5560}.cb-not_ours{background:#ff8a8a!important}.cb-request{background:#cfe0ff!important}.cb-returned{background:#eceff2!important;color:#111}
.cbchip.zero{opacity:.55}.lrow.cbhave .li-c{border:2px solid #d33!important;background:#fff0f0}
.cbb{display:inline-block;border-radius:5px;padding:1px 8px;font-size:12px}
.cbchip{border-radius:14px}.cbchip.on{outline:2px solid #2563c9}
.cbwarn{color:#c62828;font-weight:600}
a.ncl{font-size:11px;color:#111;text-decoration:none;margin-left:4px}
#modal-box label.nw,.cbt label.nw{display:inline-flex;flex-direction:row;align-items:center;gap:6px;margin:0;font-size:13.5px;color:var(--ink)}.cbt b{font-weight:600}
.pill.neg{background:#c62828!important;color:#fff}

/* 0.27: ✎ вписано вручную (жёлтая метка) */
.ed-hand{display:inline-block;background:#fff3b0;color:#7a5b00;border-radius:4px;padding:1px 6px;font-size:11px;white-space:nowrap;font-weight:600}
.pwres{margin-top:10px;font-size:15px}
table.pct input.cell{width:84px}table.pct select.cell{width:auto}table.pct td{vertical-align:middle}
.artx{cursor:text;border-bottom:1px dashed #9aa5b1}.artx:hover{background:#fff8d6}
.stkb{display:inline-block;background:#e6f0ff;color:#1d4ed8;border:1px solid #b9d0ff;border-radius:5px;padding:1px 7px;font-size:12px;font-weight:600;text-decoration:none;white-space:nowrap;margin-left:6px}

/* 0.28 рассылка */
.chb{display:inline-block;min-width:26px;text-align:center;border-radius:5px;padding:2px 6px;font-size:12px;font-weight:700;color:#fff;text-decoration:none;margin:1px}.ch-wa{background:#25a244}.ch-viber{background:#7360f2}.ch-tg{background:#229ed9}.ch-email{background:#6b7785}
tr.mlsent td{opacity:.6}
label.rowlbl{display:inline-flex!important;flex-direction:row!important;align-items:center;gap:6px;margin:0}
/* 0.29 продажи */
.sg-act{border-left:4px solid #22a447}.sg-cool{border-left:4px solid #f59e0b}.sg-sleep{border-left:4px solid #94a3b8}.sg-req{border-left:4px solid #a78bfa}.sg-none{border-left:4px solid #e5e7eb}
.card.on{outline:2px solid #2563eb}.sgb{font-size:11px;border-radius:4px;padding:1px 5px;background:#eef2f7;border-left:0!important}
.sgb.sg-act{background:#dcfce7}.sgb.sg-cool{background:#fef3c7}.sgb.sg-sleep{background:#e5e7eb}.sgb.sg-req{background:#ede9fe}
.notein textarea{width:100%;box-sizing:border-box}.btn.mic{font-size:15px}.btn.mic.rec{background:#dc2626!important;color:#fff!important;animation:pulse 1s infinite}@keyframes pulse{50%{opacity:.6}}
.notes-list{margin-top:6px;max-height:320px;overflow:auto}.nrow{display:grid;grid-template-columns:150px 1fr auto;gap:8px;padding:4px 0;border-top:1px solid #eef0f3;align-items:start}
@media(min-width:1251px) and (max-width:1500px){.side nav a{padding:4px 6px!important;font-size:12.5px!important}#gsearch{flex-basis:150px!important}}
.scards{display:flex;gap:8px;flex-wrap:wrap}.scard{display:flex;flex-direction:column;gap:2px;background:#fff;border:1px solid #e3e6ea;border-radius:8px;padding:8px 12px;min-width:150px;cursor:pointer;text-decoration:none;color:inherit}
.scard .k{font-size:12.5px;color:#556}.scard .v{font-size:22px;font-weight:700}.scard.on{outline:2px solid #2563eb}
.sellt td,.sellt th{white-space:nowrap}.sellt td:nth-child(1){max-width:190px;overflow:hidden;text-overflow:ellipsis}.sellt td:nth-child(2){max-width:90px;overflow:hidden;text-overflow:ellipsis}.sellt td:nth-child(3){max-width:90px;overflow:hidden;text-overflow:ellipsis}.sellt td.ell{max-width:170px!important;overflow:hidden;text-overflow:ellipsis}.sellt td.nxt{max-width:150px;overflow:hidden;text-overflow:ellipsis}
.btn.vw{padding:0 5px;font-size:12px;line-height:18px;margin-left:4px}.cfl-dl{position:absolute;bottom:2px;left:2px;padding:0 4px!important}

/* ---------- экран входа: ничего лишнего до входа */
.login{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:16px;background:radial-gradient(1200px 600px at 50% -10%,#ffffff 0%,#eef1f5 55%,#e3e7ee 100%)}
.login-box{width:100%;max-width:360px;background:#fff;border:1px solid #e3e6eb;border-radius:16px;padding:34px 30px 22px;box-shadow:0 18px 50px rgba(30,41,59,.10),0 2px 6px rgba(30,41,59,.05);display:flex;flex-direction:column;gap:14px}
.login-box .l-logo{width:180px;align-self:center;margin-bottom:2px}
.login-box .l-title{margin:4px 0 2px;font-size:20px;font-weight:600;text-align:center;color:#111;letter-spacing:.2px}
.login-box .l-f{gap:6px;font-size:12.5px;color:#111}
.login-box .l-f input{height:42px;padding:0 12px;border:1px solid #d6dae1;border-radius:10px;font-size:15px;background:#fbfcfd;transition:border-color .15s,box-shadow .15s}
.login-box .l-f input:focus{outline:none;border-color:#3b6ea5;box-shadow:0 0 0 3px rgba(59,110,165,.15);background:#fff}
.login-box .l-btn{height:44px;border-radius:10px;font-size:15px;font-weight:600;width:100%;justify-content:center}
.login-box .l-pk{background:#fff;border:1px solid #d6dae1;color:#111;font-weight:500}
.login-box .l-pk:hover{background:#f5f7fa}
.login-box .l-or{display:flex;align-items:center;gap:10px;color:#9aa1ab;font-size:12px;margin:-2px 0}
.login-box .l-or:before,.login-box .l-or:after{content:"";flex:1;height:1px;background:#e5e7eb}
.login-box .l-err{min-height:0;color:#b91c1c;font-size:13px;text-align:center}
.login-box .l-err:empty{display:none}
.login-box .l-lang{align-self:center;border:none;background:transparent;color:#111;font-size:12px;padding:2px 4px;margin-top:2px;cursor:pointer}
.login-box .l-lang:focus{outline:none}
.cfm-d{white-space:pre-line;max-height:280px;overflow:auto}

/* 0.31: вкладки настроек */
.settabs{margin:2px 0 12px;row-gap:6px}.settabs a{font-size:13px;white-space:nowrap}
.grid2>[hidden]{display:none!important}
.grid2.setgrid{display:block;column-count:2;column-gap:14px}.setgrid>.panel{break-inside:avoid;display:block;width:auto}.settabs a,.settabs a:hover{text-decoration:none}
@media(max-width:1000px){.grid2.setgrid{column-count:1}}
.settabs{flex-wrap:wrap}.settabs a{flex:0 0 auto}
@media(max-width:700px){.settabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin-right:-10px;padding-right:10px}.settabs::-webkit-scrollbar{display:none}}

/* 0.31: компактные длинные таблицы */
.tscroll{overflow:auto;border:1px solid var(--line);border-radius:8px;margin-top:6px}.tscroll table{margin:0;border:0}.tscroll th{position:sticky;top:0;z-index:2;background:#faf9f6;box-shadow:0 1px 0 var(--line)}
tr.ct-h{display:none}table.ct-open tr.ct-h{display:table-row}
.ct-foot{font-size:12px;margin:4px 2px 0}.ct-foot a{color:var(--acc)}

/* 0.31: карточка клиента */
.grid2.cl-top{grid-template-columns:1fr;max-width:820px}.grid2.cl-top>.panel{margin-bottom:8px}
.cltabs{flex-wrap:wrap;margin:6px 0 8px;row-gap:6px}.cltabs a{text-decoration:none;font-size:13px;flex:0 0 auto}.cltab-body>.panel[hidden]{display:none}
@media(max-width:700px){.cltabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.cltabs::-webkit-scrollbar{display:none}}

/* 0.31: телефон — «+» не закрывает последние строки; панель действий заказов появляется, только когда что-то отмечено */
@media(max-width:700px){#view{padding-bottom:76px}#o-sel:not(.has-sel){display:none}}

/* 0.31: единая кнопка документа */
.docbtn{display:inline-flex;align-items:center;gap:2px;white-space:nowrap;border:1px solid var(--line);border-radius:6px;background:#fff;padding:0 2px 0 6px;line-height:22px}
.docbtn .dn{padding-right:4px;color:var(--ink)}.docbtn .dx,td.pf .dx{padding:0 4px;text-decoration:none;font-size:13px;color:var(--acc)}.docbtn .dx:hover,td.pf .dx:hover{background:var(--acc2);border-radius:4px}
.docbtn.off{opacity:.45;filter:grayscale(1);cursor:default}
.docbtn button.dx{border:0;background:none;cursor:pointer;font:inherit;font-size:13px;color:var(--acc)}.docbtn .dn{color:var(--ink)}

/* 0.31: цвета и шрифт wallfashion.com.ua */
@font-face{font-family:'Tinos';font-weight:400;font-display:swap;src:url(/static/fonts/tinos-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Tinos';font-weight:700;font-display:swap;src:url(/static/fonts/tinos-latin-700-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Tinos';font-weight:400;font-display:swap;src:url(/static/fonts/tinos-cyrillic-400-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Tinos';font-weight:700;font-display:swap;src:url(/static/fonts/tinos-cyrillic-700-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
:root{--bg:#F7F7FA;--ink:#111;--muted:#111;--line:#E5E5E5;--acc:#8C0747;--acc2:#F4E4EC;--ok:#32A88B;--bad:#C0222A;--warn:#FF9E45;--ink2:#111}
body{color:var(--ink);background:var(--bg)}h1,h2,h3,.logo{font-family:'Tinos','Times New Roman',serif;font-weight:700;color:var(--ink)}
.muted{color:var(--muted)}.err,.neg{color:var(--bad)}

/* 0.31: телефон — ☰ меню, одна колонка, таблицы листаются с закреплённой 1-й колонкой, крупные кнопки связи */
#menu-btn{display:none}
@media(max-width:700px){
  #menu-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:36px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-size:20px;line-height:1}
  .grid2,.grid2.setgrid{grid-template-columns:1fr;column-count:1}
  .tscroll{-webkit-overflow-scrolling:touch}.tscroll th:first-child,.tscroll td:first-child{position:sticky;left:0;z-index:1;background:#fff;box-shadow:1px 0 0 var(--line)}.tscroll th:first-child{z-index:3;background:#faf9f6}
  .btn.mb{min-height:40px;padding:8px 14px;font-size:14px}.phl a[data-ch],.phl .chbtn{min-width:34px;min-height:34px}
}
@media(max-width:700px){#fab{display:none!important}}

/* 0.31.1: кубики — подпись и цифра в одну строку, пояснение мелко под ними, ряд вдвое ниже, ширина по содержимому */
.scard,.cards:not(.slim)>.card{display:flex!important;flex-direction:row!important;flex-wrap:wrap;align-items:baseline;gap:1px 8px;padding:4px 10px!important;min-width:0!important;width:auto;flex:0 0 auto}
.scard .k,.cards:not(.slim)>.card .k{margin:0;font-size:12.5px;white-space:nowrap}
.scard .v,.cards:not(.slim)>.card .v{margin:0!important;font-size:18px;font-weight:700;line-height:1.2}
.scard>.muted,.cards:not(.slim)>.card>.muted,.cards:not(.slim)>.card>small{flex:0 0 100%;font-size:11px;line-height:1.2}
.scards,.cards:not(.slim){gap:6px!important}
#view.lv{padding-bottom:6px!important}
@media(max-width:700px){#view.lv{padding-bottom:4px!important}}
#view.lv{padding-bottom:2px!important}#view.lv>.lvp{margin-bottom:2px!important}

/* 0.31.1: одна и та же кнопка везде одного цвета: подтверждающие — синие, удаление — красное; #8C0747 — только ссылки/вкладки/логотип/заголовки */
:root{--btn:#3b6ea5}
.btn.primary,.btn.doc,.ab-save,#fab,.fab{background:var(--btn)!important;border-color:var(--btn)!important;color:#fff!important}
.btn.primary:hover,.btn.doc:hover{filter:brightness(1.08)}
.btn.danger,.btn.small.danger{color:var(--bad)}
/* v0.34: чёткий текст везде — чёрный #111; цвет только по смыслу, но достаточно тёмный (контраст ≥ 7:1 на белом) */
:root{--ink:#111;--muted:#111;--ink2:#111;--ok:#0F6A2B;--bad:#A50E1E;--btn:#2a5a94}
body,td,th,label,small,.k,.muted,.hint,.sub,.lbl,p,span.muted,div.muted,.card .k,.panel .muted,.tbar,.ct-foot,.cl-lbl{color:#111}
.pos{color:#0F6A2B!important}.neg,.err{color:#A50E1E!important}
input::placeholder,textarea::placeholder{color:#333;opacity:1}
.fbtn{color:#111}.fbtn.on{color:#fff}
.btn.primary,.btn.doc,.ab-save,#fab,.fab{background:var(--btn)!important}
:root{--ok:#0A5A22;--bad:#8F0B1A}
.pos{color:#0A5A22!important}.neg,.err{color:#8F0B1A!important}
.btn.small.danger,.btn.danger{color:#8F0B1A!important}
.ib{color:#1a3f8f!important}.f-n a,.f-n{color:#1a3f8f}
.btn.ok,.btn.small.ok{background:#1b5e20!important;color:#fff!important}
/* v0.34: Старая WF — без горизонтальной полосы, длинные списки в окне, имена файлов чёрным */
#ow,#ow-files,.setgrid .panel{overflow-x:hidden}
#ow-files table{width:100%;table-layout:auto}.owf-un{max-height:280px;overflow:auto;border:1px solid var(--line);border-radius:8px;margin-top:4px}
.owf-row{display:flex;gap:6px;align-items:center;padding:3px 6px;border-bottom:1px solid var(--line);flex-wrap:nowrap}.owf-row a{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#111}
.owf-row select{max-width:170px}.owf-row input{width:80px}
@media(max-width:700px){.owf-row{flex-wrap:wrap}.owf-row a{flex-basis:100%}}
.mf-win{max-height:46vh;overflow:auto;border:1px solid var(--line);border-radius:8px;margin-top:6px}.mf-win table{margin:0}.mf-win th{position:sticky;top:0;background:#faf9f6;z-index:2}
.mf-kinds{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:6px 0}.mf-k{display:inline-flex;gap:6px;align-items:center}.mf-k a{cursor:pointer;font-size:12px;color:#0b3a8f;text-decoration:underline}.mf-nolink{display:inline-block;background:#fef3c7;color:#111;border:1px solid #d97706;border-radius:4px;padding:0 6px;font-size:12px;margin-top:2px}.mf-info{background:#e0edfb;color:#111;border:1px solid #2a5a94;border-radius:6px;padding:4px 8px;font-size:12.5px}
.mf-win td.mf-t{white-space:normal;min-width:260px;max-width:420px}
.ktcr{display:inline-block;background:#d9f2df;color:#111;border:1px solid #1f7a3a;border-radius:4px;padding:0 6px;font-size:11.5px;font-weight:600}.ktsum{margin-top:6px;font-size:13px;color:#111}
.pos{color:#064E1B!important}.ktcr{font-size:10.5px;padding:0 4px}.kt-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}@media(max-width:1000px){.kt-grid{grid-template-columns:1fr}}
.ktsum{display:flex;flex-wrap:wrap;gap:2px 10px}.docbtn .dx,.dx{color:#0b3a8f!important}
.ib{color:#0b3a8f!important}.warnbox{color:#8f1414!important}
a.ib{color:#0b3a8f!important}a.ib:hover{color:#fff!important}
/* v0.35: Пользователи */
.u-win{margin-top:6px}.u-win table{width:100%}.u-p{text-align:center;font-size:11px;line-height:1.15;max-width:86px;white-space:normal}.u-win td.u-p{max-width:none}
.u-off td{opacity:.6}.u-det{max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.u-form{display:grid;gap:8px}.u-form label{display:grid;gap:3px;font-weight:600}.u-form input,.u-form select{width:100%;box-sizing:border-box}
@media(max-width:700px){.u-win th:first-child,.u-win td:first-child{min-width:120px}}
#u-tabs{display:flex;gap:14px}

/* v0.35.1 — компактность: больше строк на экране */
#view.v-wide{max-width:none}
@media(min-width:1100px){
 th,td{padding-top:2px;padding-bottom:2px}
 .side nav a{padding:4px 5px!important;font-size:12.5px!important}
 .side nav{gap:0!important;flex-wrap:nowrap!important}
 #gsearch{flex-basis:120px!important}
}
#bk-warn{margin:4px 16px!important;padding:2px 10px!important;font-size:12.5px;line-height:1.3}
table.sa td .sa-bar{display:inline-flex;width:calc(100% - 44px);min-width:96px;vertical-align:middle}table.sa td .sa-pc{display:inline-block;margin-left:4px;vertical-align:middle}table.sa td{white-space:nowrap}
.spark{height:22px}
.cards{gap:6px}.card{padding:4px 8px!important}
/* v0.35.1 — по замечаниям дизайн-агента */
#bk-warn{margin:2px 16px!important;padding:1px 10px!important;font-size:12px!important;line-height:1.25!important;border-radius:5px}
#o-list td{vertical-align:top}
.sa-bar i{background:rgba(140,7,71,.28)!important}
#today,#today *{color:#111!important}
.tbar .sel-n,.sa-pc,.muted{color:#111!important}
@media(min-width:1600px){#view.v-dash{max-width:1500px}}
.sum-red,.num.sum-red{color:#8f1010!important}a.ia{color:#0b3a8f!important}
.sum-red,.num.sum-red{color:#6e0909!important}a.ia,td a.ia{color:#0b3a8f!important}

/* 0.35.1: подпись «решите сами» (спокойная серо-чёрная, без жёлтого); переключатель версии */
.mf-self{display:inline-block;background:#eee;color:#111;border:1px solid #888;border-radius:4px;padding:0 6px;font-size:12px;margin-top:2px}
.mf-done{align-items:center}
.devsw{display:inline-block;margin-top:6px;font-size:13px;color:#111;text-decoration:underline}
/* 0.35.1: контраст (зелёные суммы/галочки, звёздочка, кнопка ⇪, ссылка ×N) */
.sum-green,.num.sum-green,.bcol.sum-green{color:#15692f!important}
.pf-ok{color:#15692f!important}
.pf-up{background:#1d4ed8!important;color:#fff!important}
.pstar{color:#555!important}.pstar.on,.pstar.act{color:#b45309!important}
a.ia{color:#1d4ed8!important}
