/* TSW Склад · v13 · спокойный интерфейс: светлая шапка, списки без рамок, одно главное действие */
:root{--ink:#18181B;--muted:#6B6B73;--faint:#A1A1AA;--line:#ECECEE;--line2:#F2F2F0;--soft:#F7F7F5;--soft2:#F2F2F0;--accent:#2B59C3;--accent-bg:#EEF3FC;--amber:#B45309;--amber-bg:#FEF6E7;--red:#B42318;--red-bg:#FFF6F5;--green:#15803D;--green-bg:#EDF7F0;--r:8px;
 font-family:Inter,"Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;color:var(--ink);background:#fff;font-size:14px;line-height:1.45}
*{box-sizing:border-box}body{margin:0;background:#fff}[hidden]{display:none!important}
button,input,select,textarea{font:inherit;color:inherit}
a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}
h1{font-size:24px;font-weight:600;letter-spacing:-.3px;margin:0}h2{font-size:15px;font-weight:600;margin:0 0 12px}h3{font-size:14px;font-weight:600;margin:16px 0 8px}
p{margin:0 0 10px}.muted,small{color:var(--muted)}small{font-size:12px}
.num{font-variant-numeric:tabular-nums}

/* Кнопки */
button,.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:36px;padding:0 14px;border:1px solid #E4E4E7;border-radius:var(--r);background:#fff;cursor:pointer;white-space:nowrap;text-decoration:none;color:var(--ink);font-weight:500}
button:hover,.button:hover{background:var(--soft);color:var(--ink)}button:disabled{opacity:.5;cursor:wait}
.primary{background:var(--ink);border-color:var(--ink);color:#fff}.primary:hover{background:#000;color:#fff}
.danger{color:var(--red)}.link{border:0;background:none;padding:0;min-height:0;color:var(--accent);font-weight:500}.link:hover{background:none;text-decoration:underline}
.icon-btn{width:36px;padding:0}

/* Шапка */
#nav{position:sticky;top:0;z-index:20;background:#fff;border-bottom:1px solid var(--line)}
.topbar{height:56px;display:flex;align-items:center;gap:28px;padding:0 32px}
.brand{display:flex;align-items:baseline;gap:6px;white-space:nowrap}.brand b{font-size:16px;letter-spacing:.5px}.brand span{color:var(--muted)}
.mainnav{display:flex;gap:2px;flex:1;height:100%}
.mainnav a{display:flex;align-items:center;padding:0 12px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}
.mainnav a:hover{color:var(--ink)}.mainnav a.active{color:var(--ink);font-weight:500;border-bottom-color:var(--ink)}
.searchbtn{min-width:240px;justify-content:flex-start;background:var(--soft);border-color:var(--line);color:var(--muted);font-weight:400}
.searchbtn span{flex:1;text-align:left}.searchbtn kbd{font:inherit;font-size:12px}
.avatar{width:32px;height:32px;min-height:32px;border-radius:50%;padding:0;border:0;background:var(--soft2);font-weight:600}
.menu{position:relative}.menu>summary{list-style:none;cursor:pointer}.menu>summary::-webkit-details-marker{display:none}
.menu-pop{position:absolute;right:0;top:calc(100% + 8px);min-width:230px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.08);padding:6px;z-index:30}
.menu-pop a,.menu-pop button{display:flex;width:100%;justify-content:flex-start;border:0;background:none;padding:9px 10px;border-radius:6px;min-height:0;font-weight:400}
.menu-pop a:hover,.menu-pop button:hover{background:var(--soft);color:var(--ink)}.menu-pop hr{margin:6px 0}
.menu-pop .who{padding:8px 10px;color:var(--muted);font-size:12px}
.tabbar{display:none}

main{max-width:1200px;margin:0 auto;padding:28px 32px 80px}

/* Заголовки страниц */
.head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0 0 20px;flex-wrap:wrap}
.head p{display:none}.head>div:first-child{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.head h2{margin:0}
.sub{color:var(--muted);margin-top:4px}
.actions,.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.toolbar{margin:0 0 16px}.toolbar input[type=search],.toolbar>input{max-width:360px}
.back{display:inline-block;margin-bottom:8px;color:var(--muted);font-size:13px}

/* Сегменты и фишки */
.tabs,.seg{display:inline-flex;gap:2px;background:var(--soft2);padding:3px;border-radius:9px}
.tabs button,.seg button{min-height:30px;border:0;background:transparent;color:var(--muted);font-weight:400;padding:0 14px;border-radius:7px}
.tabs button.active,.seg button.active{background:#fff;color:var(--ink);font-weight:500;box-shadow:0 1px 2px rgba(0,0,0,.08)}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}
.chip{min-height:34px;border-radius:17px;padding:0 12px;font-weight:400;gap:8px}
.chip b{font-weight:600}.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}.chip.on .muted{color:#d4d4d8}
.chip.bad{background:var(--red-bg);border-color:#F3D3CF;color:var(--red)}.chip.bad.on{background:var(--red);border-color:var(--red);color:#fff}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex:none;background:var(--faint)}
.t-amber .dot,.dot.t-amber{background:var(--amber)}.t-blue .dot,.dot.t-blue{background:var(--accent)}.t-red .dot,.dot.t-red{background:var(--red)}.t-green .dot,.dot.t-green{background:var(--green)}.t-grey .dot,.dot.t-grey{background:var(--faint)}
.st{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.badge{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:13px;font-size:13px;font-weight:500;background:var(--soft2)}
.badge.t-blue{background:var(--accent-bg);color:var(--accent)}.badge.t-amber{background:var(--amber-bg);color:var(--amber)}.badge.t-red{background:var(--red-bg);color:var(--red)}.badge.t-green{background:var(--green-bg);color:var(--green)}
.tag{display:inline-flex;align-items:center;height:22px;border-radius:11px;padding:0 8px;font-size:12px;background:var(--soft2);color:var(--muted);white-space:nowrap}
.tag.warn{background:var(--amber-bg);color:var(--amber)}
.c-amber{color:var(--amber)}.c-green{color:var(--green)}.c-red,.loss{color:var(--red)}

/* Списки (заказы, склад) */
.list{overflow-x:auto}.list>.lh,.list>.lr{min-width:900px}
.lh,.lr{display:grid;gap:16px;align-items:center;padding:0 12px}
.lh{color:var(--muted);font-size:12px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.lr{padding:13px 12px;border-bottom:1px solid var(--line2);color:var(--ink)}
a.lr:hover,.lr[data-href]:hover{background:var(--soft);color:var(--ink);cursor:pointer}
.r{text-align:right}.ell{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.prod{display:flex;align-items:center;gap:10px;min-width:0}.prod img{flex:none}
.orders .lh,.orders .lr{grid-template-columns:84px minmax(120px,1.1fr) minmax(200px,2fr) 170px 120px 130px 64px}
.foot{margin-top:14px;color:var(--muted);font-size:13px}
.group-h{display:flex;align-items:center;gap:10px;padding:22px 12px 8px;font-weight:600}.group-h small{font-weight:400}
.stock .lh,.stock .lr{grid-template-columns:minmax(220px,2fr) 120px 110px 110px minmax(160px,1.2fr)}
.stock .lr{padding-left:46px}

/* Карточка заказа */
.title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.title-row h1{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.steps{list-style:none;margin:0 0 28px;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;font-size:12px;color:var(--muted)}
.steps li{display:flex;flex-direction:column;gap:8px}.steps li::before{content:"";height:3px;border-radius:2px;background:var(--line)}
.steps li.done{color:var(--ink)}.steps li.done::before{background:var(--ink)}.steps li.now{color:var(--accent);font-weight:500}.steps li.now::before{background:var(--accent)}
.split{display:flex;flex-wrap:wrap;gap:48px;align-items:flex-start}.split>:first-child{flex:999 1 560px;min-width:0}
.split>aside,.summary{flex:1 1 280px;max-width:340px}
.side{background:var(--soft);border-radius:12px;padding:22px;display:flex;flex-direction:column;gap:14px;position:sticky;top:76px}
.side .big{font-size:28px;font-weight:600;letter-spacing:-.5px;font-variant-numeric:tabular-nums}
.side dl{margin:0;display:flex;flex-direction:column;gap:8px}.side dl>div{display:flex;justify-content:space-between;gap:12px}.side dt{color:var(--muted)}.side dd{margin:0;font-variant-numeric:tabular-nums}
.bar{height:6px;border-radius:3px;background:var(--line);overflow:hidden}.bar i{display:block;height:100%;background:var(--green)}
.sec{margin-bottom:28px}.sec-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.sec-h h2{margin:0;font-size:13px;font-weight:500;color:var(--muted)}
.row{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--line2)}
.row .grow{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.fold{border-top:1px solid var(--line)}.fold:last-of-type{border-bottom:1px solid var(--line)}
.fold>summary{display:flex;justify-content:space-between;align-items:center;padding:14px 0;cursor:pointer;list-style:none}.fold>summary::-webkit-details-marker{display:none}
.fold>summary span:last-child{color:var(--muted)}.fold[open]>summary span:last-child{color:var(--ink)}
.fold>div{padding:0 0 16px}
.alert{padding:12px 14px;border-radius:var(--r);background:var(--red-bg);color:var(--red);margin-bottom:20px;line-height:1.5}
.alert.info{background:var(--soft);color:var(--ink)}

/* Формы */
label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}
input,select,textarea{width:100%;height:40px;padding:0 12px;border:1px solid #E4E4E7;border-radius:var(--r);background:#fff;color:var(--ink);font-size:14px;min-width:0}
textarea{height:auto;min-height:80px;padding:10px 12px;resize:vertical}
input[type=checkbox],input[type=radio]{width:16px;height:16px;padding:0;margin:0;accent-color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:2px solid #A9BEEB;outline-offset:0;border-color:var(--accent)}
label.check,label.inline{flex-direction:row;align-items:center;gap:8px;color:var(--ink);font-size:14px}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.panel,.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;margin-bottom:16px}
.panel>summary{cursor:pointer;font-weight:500}
details.panel{padding:14px 16px}details.panel[open]>summary{margin-bottom:14px}
.notice{padding:12px 14px;background:var(--soft);border-radius:var(--r);font-size:13px;color:var(--muted);line-height:1.5}
.error{color:var(--red);background:var(--red-bg);padding:12px 14px;border-radius:var(--r);margin:0 0 14px}
.footer-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}
.note-state{font-size:12px;color:var(--muted);margin:10px 0}
.summary{position:sticky;top:76px}.summary .big{font-size:26px;font-weight:600;margin:10px 0}
.summary dl>div{display:flex;justify-content:space-between;gap:12px;margin:10px 0}.summary dd{margin:0;text-align:right}
.line{border:1px solid var(--line);border-radius:10px;padding:16px;margin:12px 0}
.line-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.line-title strong{flex:1;font-weight:500}
.line-title button{min-height:30px;padding:0 10px}
.line .grid{grid-template-columns:repeat(3,minmax(0,1fr))}.line details{margin-top:12px}.line summary{cursor:pointer;color:var(--muted)}
.calculated{color:var(--muted);font-size:13px;margin-top:10px}
.picker{position:relative}
.results{position:absolute;z-index:15;background:#fff;box-shadow:0 10px 30px rgba(0,0,0,.1);border:1px solid var(--line);border-radius:10px;max-height:340px;overflow:auto;width:100%;margin-top:4px;padding:4px}
.results button{border:0;border-radius:6px;justify-content:flex-start;width:100%;text-align:left;font-weight:400;min-height:44px;white-space:normal}
.results small{display:block}.results p{padding:10px;margin:0}
.rule-fields .grid{grid-template-columns:1fr 2fr 1fr 40px;align-items:end}

/* Таблицы (прочие разделы) */
.table-wrap{overflow:auto}
table{border-collapse:collapse;width:100%;font-size:14px}
th{color:var(--muted);font-weight:400;font-size:12px;text-align:left;white-space:nowrap;padding:0 12px 10px;border-bottom:1px solid var(--line)}
td{padding:12px;border-bottom:1px solid var(--line2);vertical-align:middle}
td input{min-width:90px}td a{font-weight:500}
tbody tr:hover{background:var(--soft)}

/* Мелочи */
.icon{width:32px;height:32px;object-fit:contain;vertical-align:middle;margin-right:10px;flex:none}
.prod .icon{margin:0}
.product-mini{display:flex;align-items:center;gap:10px;font-size:13px}.product-mini .icon{margin:0}.product-mini b{display:block;font-weight:500}
.composition{display:flex;gap:16px;flex-wrap:wrap}
.kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:20px}
.kpi{background:var(--soft);padding:16px 18px;border-radius:10px;color:var(--muted);font-size:13px}.kpi b{display:block;font-size:22px;color:var(--ink);margin-top:6px;font-weight:600}
.empty{padding:48px 16px;text-align:center;color:var(--muted)}.empty strong{display:block;color:var(--ink);font-size:16px;margin-bottom:6px}
.auth{max-width:400px;margin:10vh auto;border:0}.auth h1{margin-bottom:6px}.auth form{display:flex;flex-direction:column;gap:14px;margin-top:20px}.auth button{width:100%;min-height:44px}
dialog{width:min(640px,94vw);border:0;border-radius:14px;padding:24px;max-height:90vh;box-shadow:0 20px 60px rgba(0,0,0,.2)}
dialog h2{font-size:18px;margin-bottom:16px}dialog::backdrop{background:rgba(24,24,27,.35)}
dialog .actions{margin-top:20px;justify-content:flex-end}
dialog>form>.grid,dialog>form>label{margin-bottom:14px}
#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;padding:12px 18px;border-radius:10px;z-index:50;max-width:90vw}
hr{border:0;border-top:1px solid var(--line);margin:16px 0}pre{white-space:pre-wrap}
.finance{display:none}

/* Поиск */
.search-dlg{width:min(620px,94vw);padding:0;top:12vh;margin-top:0}
.search-dlg input{border:0;border-bottom:1px solid var(--line);border-radius:0;height:56px;padding:0 20px;font-size:16px}
.search-dlg input:focus{outline:none}
.search-res{max-height:60vh;overflow:auto;padding:6px}
.search-res a{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:8px}.search-res a:hover,.search-res a.sel{background:var(--soft);color:var(--ink)}
.search-res .k{font-size:11px;color:var(--muted);padding:10px 14px 4px;text-transform:uppercase;letter-spacing:.5px}

/* Иконки товаров */
.icon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}
.icon-cell{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 6px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:11px;color:var(--muted);text-align:center;min-height:96px;font-weight:400;white-space:normal}
.icon-cell img{width:44px;height:44px;object-fit:contain}.icon-cell.on{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink);color:var(--ink)}
.icon-cell.add{border-style:dashed;justify-content:center}
.icon-pick{display:flex;align-items:center;gap:12px}
.icon-box{width:48px;height:48px;border-radius:10px;background:var(--soft);display:flex;align-items:center;justify-content:center;flex:none}
.icon-box img{width:36px;height:36px;object-fit:contain}
.icons-page .lh,.icons-page .lr{grid-template-columns:56px minmax(240px,1fr) 160px 150px}
.icons-page .lr .icon-box{cursor:pointer;border:1px dashed transparent}.icons-page .lr .icon-box:hover{border-color:var(--faint)}
.icons-page .sub-rows .lr{padding-left:40px;background:#FCFCFB}

/* Карты счетов (раздел «Деньги») */
.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:18px;margin:20px 0}
.bankcard{position:relative;aspect-ratio:1.586;border-radius:18px;padding:18px 20px;color:#fff;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer;box-shadow:0 8px 24px #1f293733;overflow:hidden;transition:transform .15s,box-shadow .15s;max-width:420px}
.bankcard[data-href]:hover{transform:translateY(-3px);box-shadow:0 14px 30px #1f293744}
.bankcard::after{content:"";position:absolute;right:-60px;top:-60px;width:200px;height:200px;border-radius:50%;background:#ffffff1f}
.bankcard .bc-top{display:flex;justify-content:space-between;align-items:center;font-weight:600;font-size:18px;letter-spacing:.3px}
.bankcard .bc-chip{width:38px;height:28px;border-radius:6px;background:linear-gradient(135deg,#f3d98b,#c9a23c);display:inline-block}
.bankcard .bc-bal{font-size:26px;font-weight:700;z-index:1}
.bankcard .bc-bottom{display:flex;justify-content:space-between;align-items:flex-end;font-size:16px;font-weight:500;z-index:1}
.bankcard small{color:#fff;opacity:.9;font-size:13px}
.bankcard.sber{background:linear-gradient(135deg,#0b8a3a,#21b95a)}
.bankcard.tink{background:linear-gradient(135deg,#2b2f36,#4a4f5a);color:#ffdd2d}.bankcard.tink .bc-bal,.bankcard.tink .bc-bottom{color:#fff}.bankcard.tink small{color:#ffdd2d}
.bankcard.alfa{background:linear-gradient(135deg,#c8102e,#ef3124)}
.bankcard.cash{background:linear-gradient(135deg,#8a6d3b,#c4a35a)}
.bankcard.rs{background:linear-gradient(135deg,#1e3a8a,#3b6fd4)}
.bankcard.other{background:linear-gradient(135deg,#4b5563,#6b7280)}
#kpis{margin-bottom:20px}

/* Телефон */
@media(max-width:900px){
 .topbar{padding:0 16px;gap:12px;height:52px}.mainnav,.searchbtn span,.searchbtn kbd,.topbar .new-order{display:none}
 .searchbtn{min-width:0;width:40px;height:40px;padding:0;justify-content:center;margin-left:auto;border-radius:20px}
 .topbar .menu{display:none}
 .tabbar{display:grid;position:fixed;left:0;right:0;bottom:0;z-index:25;grid-template-columns:repeat(5,minmax(0,1fr));align-items:center;height:64px;padding-bottom:env(safe-area-inset-bottom);background:#fff;border-top:1px solid var(--line)}
 .tabbar a,.tabbar>details>summary{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px;color:var(--muted);cursor:pointer;list-style:none}
 .tabbar a.active{color:var(--ink);font-weight:600}.tabbar .plus{justify-self:center;width:48px;height:48px;border-radius:24px;background:var(--ink);display:flex;align-items:center;justify-content:center;flex-direction:row}
 .tabbar .menu-pop{position:fixed;bottom:72px;right:8px;top:auto}
 main{padding:18px 16px 96px}
 .head h1,.title-row h1{font-size:21px}
 .split{gap:20px}.split>aside,.summary{max-width:none;flex-basis:100%}.split>aside{order:-1}.side,.summary{position:static}
 .grid.three,.line .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .kpis{grid-template-columns:1fr 1fr}
 .orders .lh{display:none}.list>.lr{min-width:0}
 .orders .lr{grid-template-columns:1fr auto;grid-template-areas:"c s" "p y" "t t";gap:4px 12px;padding:14px 4px}
 .orders .lr .c-no,.orders .lr .c-date{display:none}
 .orders .lr .c-client{grid-area:c;font-weight:600}.orders .lr .c-sum{grid-area:s;font-weight:600}
 .orders .lr .c-items{grid-area:p;color:var(--muted);font-size:13px}.orders .lr .c-items img{display:none}.orders .lr .c-pay{grid-area:y;font-size:13px}
 .orders .lr .c-st{grid-area:t;font-size:13px}.orders .lr .c-st::after{content:attr(data-meta);color:var(--muted);margin-left:6px}
 .stock .lh{display:none}.stock .lr{grid-template-columns:1fr auto;padding-left:12px}.stock .lr .hide-m{display:none}
 .icons-page .lh{display:none}.icons-page .lr{grid-template-columns:56px 1fr}.icons-page .lr .hide-m{display:none}
 .steps{font-size:11px}
 .sticky-cta{position:fixed;left:0;right:0;bottom:64px;padding:10px 16px;background:#fff;border-top:1px solid var(--line);display:flex;gap:8px;z-index:24}
 .sticky-cta>*{flex:1}
 .has-cta main{padding-bottom:160px}
 .title-row .actions .primary{display:none}
}
@media(max-width:560px){.grid,.grid.three,.line .grid{grid-template-columns:1fr}.rule-fields .grid{grid-template-columns:1fr 1fr}.footer-actions button{flex:1}.panel,.card{padding:16px}}
@media(min-width:901px){.sticky-cta{display:none}}
td:last-child{white-space:nowrap}td button{min-height:32px;padding:0 10px}
.panel>label,.panel>.grid,.panel>.picker,.panel>div>label{margin-bottom:14px}.panel>.actions{margin-bottom:12px}

/* v13.1 · чёткие границы: серый фон страницы, белые карточки с рамками */
:root{--bg:#F3F4F6;--card:#FFFFFF;--bd:#E2E4E9;--bd2:#ECEEF1;--head:#F8F9FA}
body{background:var(--bg)}
#nav{background:#fff;border-bottom:1px solid var(--bd);box-shadow:0 1px 2px rgba(16,24,40,.04)}
.mainnav a.active{border-bottom-color:var(--accent);color:var(--ink)}
/* Списки и таблицы — в белой карточке */
.list,.table-wrap{background:var(--card);border:1px solid var(--bd);border-radius:12px;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.lh{background:var(--head);border-bottom:1px solid var(--bd);padding-top:11px;font-weight:500;color:#5B606B}
.lr{border-bottom:1px solid var(--bd2)}.list>.lr:last-child,.list>.sub-rows:last-child>.lr:last-child{border-bottom:0}
a.lr:hover,.lr[data-href]:hover{background:#F5F8FF}
.group-h{background:var(--head);border-top:1px solid var(--bd);border-bottom:1px solid var(--bd2);padding:12px}
.list .lh+.group-h{border-top:0}
.stock .lr{padding-left:46px}
th{background:var(--head);padding:11px 12px;border-bottom:1px solid var(--bd);font-weight:500;color:#5B606B}
td{border-bottom:1px solid var(--bd2)}tbody tr:last-child td{border-bottom:0}
/* Фишки и переключатели */
.seg,.tabs{background:#E7E8EC}
.chip{background:#fff;border-color:var(--bd)}
/* Карточка заказа: каждый блок — отдельная карточка */
.split>div>.sec{background:var(--card);border:1px solid var(--bd);border-radius:12px;padding:16px 18px 6px;margin-bottom:12px}
.split>div>.sec .row:last-child{border-bottom:0}
.sec-h{padding-bottom:8px;border-bottom:1px solid var(--bd2);margin-bottom:0}
.sec-h h2{color:var(--ink);font-size:14px;font-weight:600}
.fold{background:var(--card);border:1px solid var(--bd);border-radius:12px;padding:0 18px;margin-bottom:12px}.fold:last-of-type{border-bottom:1px solid var(--bd)}
.fold>summary{font-weight:500}
.side{background:var(--card);border:1px solid var(--bd);box-shadow:0 1px 2px rgba(16,24,40,.04)}
.side .fold{border:0;border-top:1px solid var(--bd2);border-radius:0;padding:0;margin:0}
.steps{background:var(--card);border:1px solid var(--bd);border-radius:12px;padding:14px 18px}
.title-row{background:var(--card);border:1px solid var(--bd);border-radius:12px;padding:18px 20px;margin-bottom:12px}
/* Формы и прочее */
.panel,.card{border-color:var(--bd);box-shadow:0 1px 2px rgba(16,24,40,.04)}
details.panel{background:var(--card)}
.line{background:#fff;border-color:var(--bd)}
.kpi{background:var(--card);border:1px solid var(--bd)}
.notice{background:#EEF0F3}
.empty{background:var(--card);border:1px dashed var(--bd);border-radius:12px}
input,select,textarea{border-color:#D5D8DE}
.searchbtn{background:var(--bg);border-color:var(--bd)}
.icon-cell{border-color:var(--bd)}
.icon-box{background:#F1F2F4;border:1px solid var(--bd2)}
.icons-page .sub-rows .lr{background:#FAFBFC}
.search-dlg .search-res a.sel,.search-res a:hover{background:#F1F4FA}
.sticky-cta,.tabbar{box-shadow:0 -1px 3px rgba(16,24,40,.05)}
#found.foot,.foot{margin-top:10px}
@media(max-width:900px){.list{border-radius:10px}.orders .lr{padding:14px 12px}.title-row{padding:14px 16px}.split>div>.sec,.fold{padding-left:14px;padding-right:14px}}
html,:root{background:var(--bg)}body{min-height:100vh}

/* v14 */
.icon-btn.ghost,.ghost{border-color:transparent;background:transparent;color:var(--muted)}.icon-btn.ghost:hover{background:#FDECEC;color:var(--red)}
.icon-btn{width:32px;min-height:32px;padding:0}
.orders .lh,.orders .lr{grid-template-columns:84px minmax(120px,1.1fr) minmax(200px,2fr) 160px 120px 130px 60px 36px}
.card-sec{background:var(--card);border:1px solid var(--bd);border-radius:12px;padding:16px 18px;margin-bottom:12px;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.card-sec .list{border:0;box-shadow:none;border-radius:0;margin:0 -18px -16px}.card-sec .list .lh{border-top:1px solid var(--bd2)}
.card-sec>.sec-h{border-bottom:0;padding-bottom:10px}
.kpis{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
a.kpi{display:block;color:var(--muted)}a.kpi:hover{border-color:#B9C3D3;color:var(--muted)}.kpi-bad{border-color:#F3C9C4;background:#FFF8F7}.kpi-bad b{color:var(--red)}
.home-pick .lh,.home-pick .lr,.home-short .lh,.home-short .lr{grid-template-columns:minmax(240px,2fr) 110px 100px minmax(200px,2fr)}
.tags{display:flex;gap:6px;flex-wrap:wrap}.tags .tag{background:#EEF3FC;color:var(--accent)}.tags .tag:hover{background:#DFE8FA}
.tag.t-bad{background:var(--red-bg);color:var(--red);margin-left:8px}
.ok-line{padding:6px 0 4px;color:var(--green)}
.products .lh,.products .lr{grid-template-columns:44px minmax(260px,2.4fr) minmax(140px,1fr) 130px 40px}.products .lr{cursor:pointer}
.icon-box.sm{width:32px;height:32px}.icon-box.big{width:72px;height:72px;cursor:pointer;padding:0}.icon-box.big img{width:56px;height:56px}.icon-box.big:hover{border-color:var(--accent)}
.pd-top{display:flex;gap:16px;align-items:flex-start;margin-bottom:14px}.icon-actions{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:8px}
.pd-danger{margin-top:16px;padding-top:12px;border-top:1px solid var(--bd2)}
dialog .fold{border:1px solid var(--bd);box-shadow:none}
.icon-wrap{position:relative;display:block}.icon-wrap .icon-cell{width:100%}
.icon-x{position:absolute;top:4px;right:4px;width:22px;height:22px;min-height:22px;padding:0;border-radius:11px;font-size:14px;line-height:1;color:var(--muted);background:#fff}.icon-x:hover{background:var(--red);color:#fff;border-color:var(--red)}
/* Деньги */
.owners{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}
.owner{background:var(--card);border:1px solid var(--bd);border-radius:12px;overflow:hidden}
.owner>summary{display:flex;align-items:center;gap:14px;padding:14px 18px;cursor:pointer;list-style:none}.owner>summary::-webkit-details-marker{display:none}
.owner>summary .grow{display:flex;flex-direction:column;flex:1}.owner>summary small{font-size:12px}
.owner .chev{color:var(--muted);transition:transform .15s;font-size:18px}.owner[open] .chev{transform:rotate(90deg)}
.owner .list{border:0;border-top:1px solid var(--bd2);border-radius:0;box-shadow:none}
.avatar-s{width:34px;height:34px;border-radius:50%;background:#E7E8EC;display:flex;align-items:center;justify-content:center;font-weight:600}
.accs .lr{grid-template-columns:16px 1fr 200px 140px;padding-left:18px;padding-right:18px}
.bank-dot{width:12px;height:12px;border-radius:3px;background:#6b7280}.bank-dot.sber{background:#21a038}.bank-dot.tink{background:#ffdd2d;border:1px solid #2b2f36}.bank-dot.alfa{background:#ef3124}.bank-dot.cash{background:#c4a35a}.bank-dot.rs{background:#3b6fd4}
/* Клиент */
.cust-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.cust-grid .wide{grid-column:span 3}
.cust-grid input,.cust-grid textarea{background:#FAFBFC}.cust-grid input:focus,.cust-grid textarea:focus{background:#fff}
/* Форма заказа */
.lbl{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}
.client-pill{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-height:40px;padding:6px 12px;border:1px solid var(--bd);border-radius:8px;background:#F5F8FF}.client-pill small{color:var(--muted)}.client-pill .link{margin-left:auto}
.pos-wrap{overflow-x:auto;margin:0 -18px}
table.pos{min-width:1000px;font-size:13.5px}
table.pos th{font-size:12px;padding:9px 8px;white-space:nowrap}table.pos th.n,table.pos td.n{width:34px;text-align:center;color:var(--muted)}
table.pos td{padding:6px 8px;border-bottom:1px solid var(--bd2)}table.pos tbody tr:hover{background:#FAFBFF}
table.pos .r{text-align:right}
table.pos .cell{height:32px;padding:0 8px;font-size:13.5px;border-color:#DADDE3}
table.pos select.cell{padding-right:22px;min-width:84px}
table.pos input[data-k=quantity]{width:80px}table.pos input[data-k=price]{width:104px}
.pname{display:flex;flex-direction:column;line-height:1.3}.pname small{font-size:11px}
td.avail{font-weight:600}td.avail.bad{background:#FDE7E4;color:#9F1D12}td.avail.good{background:#EAF6EC;color:#166534}
.price-cell{display:inline-flex;align-items:center;gap:4px}.price-cell .reset{font-size:15px;padding:0 2px}
.pos-add{display:flex;align-items:center;gap:10px;margin-top:12px}.pos-add .plus-i{font-size:22px;color:var(--accent);width:24px;text-align:center}
.pos-add input{border-style:dashed}
.pos-foot{display:flex;justify-content:flex-end;margin-top:10px;font-size:13px}
.order-bottom{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-start}
.totals-box{flex:0 1 380px;min-width:300px}
.tot{margin:0;display:flex;flex-direction:column;gap:8px}.tot>div{display:flex;justify-content:space-between;align-items:center;gap:12px}.tot dt{color:var(--muted)}.tot dd{margin:0}
input.mini{width:120px;height:32px;text-align:right}
.tot-big{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid var(--bd);margin-top:12px;padding-top:12px}.tot-big span{font-weight:600}.tot-big b{font-size:24px}
textarea[name=invoiceTerms]{min-height:280px}
/* Вход */
body.auth-page #nav{display:none}
.login{min-height:calc(100vh - 40px);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px}
.login-card{width:100%;max-width:400px;background:#fff;border:1px solid var(--bd);border-radius:16px;padding:32px;box-shadow:0 8px 30px rgba(16,24,40,.08)}
.login-brand{display:flex;align-items:baseline;gap:6px;margin-bottom:22px}.login-brand b{font-size:20px;letter-spacing:.6px}.login-brand span{color:var(--muted)}
.login-card h1{margin-bottom:6px}.login-card form{display:flex;flex-direction:column;gap:14px;margin-top:20px}.login-card button.primary{min-height:44px;width:100%}
.pw{position:relative;display:block}.pw input{padding-right:84px}.pw .pw-eye{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:13px}
.login-foot{margin-top:16px;font-size:12px;color:var(--muted)}
@media(max-width:900px){.orders .lr .c-del{display:none}.cust-grid{grid-template-columns:1fr}.cust-grid .wide{grid-column:auto}.products .lh{display:none}.products .lr{grid-template-columns:40px 1fr auto}.products .lr>span:nth-child(3),.products .lr>span:nth-child(5){display:none}.home-pick .lh,.home-short .lh{display:none}.home-pick .lr,.home-short .lr{grid-template-columns:1fr auto;gap:6px 12px}.home-pick .lr>span:nth-child(3),.home-short .lr>span:nth-child(3){display:none}.home-pick .tags,.home-short .tags{grid-column:1/-1}.accs .lr{grid-template-columns:16px 1fr auto}.accs .lr>span:nth-child(3){display:none}.totals-box{flex-basis:100%}.login-card{padding:24px}}
.link.danger{color:var(--red)}
@media(max-width:900px){.kpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.kpi{padding:10px 12px;font-size:12px}.kpi b{font-size:16px}.card-sec .row .st{display:none}}
/* Низ списка заказов: листание и итоги */
.list-foot{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;background:var(--card);border:1px solid var(--bd);border-top:0;border-radius:0 0 12px 12px;padding:10px 14px;margin-top:-1px}
#list .list{border-radius:12px 12px 0 0}
.pager{display:flex;align-items:center;gap:4px}.pager span{padding:0 8px;min-width:110px;text-align:center}.pager select{height:32px;width:auto;margin-left:8px;font-size:13px}
.pager button:disabled{opacity:.35;cursor:default;background:none}
.sums{display:flex;gap:28px;flex-wrap:wrap}.sums span{display:flex;flex-direction:column;align-items:flex-end}.sums small{font-size:11px}.sums b{font-size:16px}
@media(max-width:900px){.list-foot{flex-direction:column;align-items:stretch}.sums{justify-content:space-between;gap:12px}.sums span{align-items:flex-start}}
.pager button:disabled:hover{background:none;color:var(--muted)}.orders .lr{padding-top:10px;padding-bottom:10px}
#list.loading{opacity:.55;transition:opacity .15s}
.receipts-list .lh,.receipts-list .lr{grid-template-columns:150px minmax(260px,2fr) 170px 130px}
.receipts-list .lr{align-items:start}.lr.sold{background:#F6F7F9;color:#8A8F98}.lr.sold img{filter:grayscale(1);opacity:.6}.lr.sold b{color:#8A8F98}
@media(max-width:900px){.receipts-list .lh{display:none}.receipts-list .lr{grid-template-columns:1fr auto}.receipts-list .lr>span:nth-child(2){grid-column:1/-1;order:3}}
.city-params{display:flex!important;gap:12px;flex-wrap:wrap;align-items:center;justify-content:flex-end;font-size:13px;color:var(--muted)}.city-params[hidden]{display:none!important}
input.mini.xs{width:70px}
td.avail small{display:block;font-size:11px;font-weight:500}
#tk-hint{font-size:11px}
/* v15.2 экономика строки прихода */
.econ{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:16px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.econ h3{margin:0 0 10px;font-size:14px}
.econ-in .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.econ-in label small,.weight-hint{display:block;font-weight:400;margin-top:3px}
.client-price input{border-color:var(--accent)}
.econ-out:empty{display:none}
.econ-grid{margin:0;background:var(--soft);border:1px solid var(--line);border-radius:var(--r);padding:4px 14px;display:block}
.econ-grid>div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:7px 0;border-bottom:1px solid var(--line)}
.econ-grid>div:last-child{border-bottom:0}
.econ-grid dt{color:var(--muted);font-size:13px}.econ-grid dt small{margin-left:4px}
.econ-grid dd{margin:0;font-weight:500;white-space:nowrap}
.econ-grid .strong dd,.econ-grid .strong dt{color:var(--ink);font-weight:600}
.econ-grid .good dd{color:var(--green);font-weight:600}.econ-grid .bad dd{color:var(--red);font-weight:600}
.econ-grid .wide{font-size:13px}
.econ-grid [title]{cursor:help}
.box-price{display:block;font-size:11px;margin-top:2px}
#app section.panel>.econ-out{max-width:520px;margin:8px 0}
@media (max-width:760px){.econ{grid-template-columns:1fr}}
/* v15.3 нарезка */
.cut-rolls{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.cut-roll{display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid var(--line);border-radius:var(--r);background:#fff}
.cut-roll:hover{border-color:var(--accent);color:inherit}.cut-roll small{color:var(--muted)}
.cut-mini{display:block;height:6px;border-radius:3px;background:var(--soft2);overflow:hidden;margin-bottom:4px}.cut-mini i{display:block;height:100%;background:var(--accent)}
.cut-row{display:grid;grid-template-columns:110px minmax(0,1.6fr) minmax(0,1.4fr) 120px 90px;gap:12px;align-items:center}
.cut-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:10px}.cut-head h2{margin:0}
.cut-bar{display:flex;height:46px;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fff}
.cut-bar.over{border-color:var(--red)}
.cut-bar .seg{display:flex;align-items:center;justify-content:center;font-size:11px;white-space:nowrap;overflow:hidden;border-right:1px solid #fff;min-width:0}
.cut-bar .strip{background:var(--accent-bg);color:var(--accent);font-weight:600}
.cut-bar .strip:nth-child(even){background:#E1EAFA}
.cut-bar .rewind{background:var(--amber-bg);color:var(--amber);background-image:repeating-linear-gradient(45deg,transparent 0 6px,rgba(180,83,9,.08) 6px 12px)}
.cut-bar .waste{background:var(--red-bg);background-image:repeating-linear-gradient(-45deg,transparent 0 3px,rgba(180,35,24,.25) 3px 5px)}
.cut-bar .rest{background:var(--soft2);color:var(--muted);flex:1 1 auto}.cut-bar .rest.lost{background:var(--red-bg);color:var(--red)}
.cut-legend{margin:8px 0 0;font-size:13px;color:var(--muted)}.cut-legend b{color:var(--ink)}
.cut-quick{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.cut-quick button{min-width:46px;min-height:34px;padding:0 10px}
.cut-own{display:inline-flex;gap:4px}.cut-own input{width:80px;min-height:34px}
.cut-strips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;align-items:center}
.chip{display:inline-flex;align-items:center;gap:2px;height:28px;padding:0 4px 0 10px;border-radius:14px;background:var(--accent-bg);color:var(--accent);font-size:13px;font-weight:500}
.chip button{border:0;background:none;min-height:0;padding:0 6px;color:inherit;font-size:15px;line-height:1}
.cut-res>div{display:grid;gap:2px;padding:9px 0;border-bottom:1px solid var(--line)}.cut-res>div:last-child{border-bottom:0}
.cut-res span{font-size:13px}.cut-res small{font-size:12px}
@media (max-width:760px){.cut-row{grid-template-columns:1fr 1fr}.cut-row>span:nth-child(n+3){grid-column:auto}}
/* v15.4 оборот */
:root{--c-money:#2B59C3;--c-stock:#15803D;--c-assets:#C2860A;--c-owed:#7C3AED;--c-debt:#D92D20}
.money-tabs{display:flex;gap:4px;margin:0 0 18px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.money-tabs a{padding:10px 14px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;font-weight:500}
.money-tabs a.active{color:var(--ink);border-color:var(--accent)}
.c-money{background:var(--c-money)}.c-stock{background:var(--c-stock)}.c-assets{background:var(--c-assets)}.c-owed{background:var(--c-owed)}.c-debt{background:var(--c-debt)}
.to-hero{display:grid;grid-template-columns:minmax(220px,300px) 1fr;gap:28px;align-items:center;padding:22px 24px!important}
.to-net{display:flex;flex-direction:column;gap:4px;padding-right:24px;border-right:1px solid var(--line)}
.to-net span{font-size:13px;color:var(--muted)}.to-net b{font-size:34px;font-weight:650;letter-spacing:-.8px;line-height:1.1}.to-net small{color:var(--muted)}
.to-scale{display:flex;flex-direction:column;gap:12px;min-width:0}
.to-line{display:flex;flex-direction:column;gap:6px}
.to-lbl{display:flex;justify-content:space-between;font-size:13px;color:var(--muted)}.to-lbl b{color:var(--ink);font-weight:600;font-size:15px}
.to-bar{display:flex;height:14px;border-radius:7px;overflow:hidden;background:var(--soft2);min-width:6px}.to-bar i{display:block;height:100%}
.to-bar i+i{box-shadow:inset 2px 0 0 #fff}
.to-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:var(--muted)}
.to-legend span{display:inline-flex;align-items:center;gap:6px}.to-legend i{width:10px;height:10px;border-radius:3px;display:inline-block}.to-legend b{color:var(--ink);font-weight:600}
.to-month{margin:6px 0 16px}.to-month h2{font-size:13px;font-weight:500;color:var(--muted);margin:0 0 8px}
.to-month>div{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.to-tile{display:flex;flex-direction:column;gap:6px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 16px;color:var(--muted);font-size:13px;transition:border-color .15s}
.to-tile:hover{border-color:var(--accent);color:var(--muted)}.to-tile b{font-size:20px;color:var(--ink);font-weight:600}.to-tile.pos b{color:var(--green)}
.to-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}.to-grid .wide{grid-column:1/-1}
.to-card{margin:0!important;padding:0!important;overflow:hidden}
.to-card>header{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line)}
.to-card>header>div{flex:1;min-width:0}.to-card h2{margin:0;font-size:15px;font-weight:600}.to-card header small{color:var(--muted);font-size:12px}
.to-card>header>b{font-size:18px;font-weight:600;white-space:nowrap}
.to-ic{width:36px;height:36px;padding:8px;border-radius:10px;background:var(--soft);color:var(--ink);flex:none}
.to-item{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 18px;font-size:14px;color:inherit;position:relative;width:100%;border:0;background:none;text-align:left;min-height:0;font-weight:400;border-radius:0}
a.to-item:hover,button.to-item:hover{background:var(--soft);color:inherit}
.to-item .bank-dot,.to-chip .bank-dot{display:inline-block;flex:none;margin-right:8px;vertical-align:-1px}.to-item .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:10px}
.to-item.debtor>i{position:absolute;left:18px;bottom:3px;height:3px;border-radius:2px;opacity:.35;max-width:calc(100% - 36px)}
.to-group{padding:6px 0;border-bottom:1px solid var(--line2)}.to-group:last-of-type{border-bottom:0}
.to-gh{display:flex;align-items:center;gap:10px;padding:8px 18px 4px}.to-gh b{flex:1;font-weight:600;font-size:14px}.to-gh .num{font-weight:600}
.to-gh+.to-item,.to-gh~.to-item{padding-left:52px}
.to-more{display:block;padding:12px 18px;border-top:1px solid var(--line);font-size:13px;color:var(--accent);font-weight:500;text-align:left;width:100%}
.to-empty{padding:14px 18px;margin:0}
.to-payer{padding:6px 0 10px}.to-payer small{display:block;padding:0 18px;font-size:12px}
.to-prog{margin:2px 18px 4px;height:6px;border-radius:3px;background:var(--red-bg);overflow:hidden}.to-prog i{display:block;height:100%;background:var(--green)}
.to-chips{display:flex;flex-wrap:wrap;gap:8px;padding:14px 18px 6px}.to-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:16px;background:var(--soft);font-size:13px}.to-chip b{font-weight:600}
.to-timeline{padding:4px 0 8px}.to-tl{display:grid;grid-template-columns:80px minmax(0,1fr) auto;gap:12px;align-items:center;padding:9px 18px;font-size:14px;border-bottom:1px solid var(--line2)}.to-tl:last-child{border-bottom:0}
.to-date{color:var(--muted);font-size:13px}.to-tl b{font-weight:600}
@media (max-width:860px){.to-hero{grid-template-columns:1fr}.to-net{border-right:0;padding-right:0;border-bottom:1px solid var(--line);padding-bottom:14px}.to-grid,.to-month>div{grid-template-columns:1fr 1fr}.to-grid .to-card{grid-column:1/-1}}
@media (max-width:520px){.to-month>div{grid-template-columns:1fr 1fr;gap:8px}.to-tile{padding:12px}.to-tile b{font-size:16px}.to-card>header{flex-wrap:wrap}.to-card>header>b{width:100%;padding-left:48px;font-size:17px}.to-net b{font-size:28px}}
.sd-row{display:grid;grid-template-columns:100px minmax(0,2fr) 120px 120px minmax(90px,1fr) 130px 90px;gap:12px;align-items:center}
.sd-bar{display:block;height:5px;border-radius:3px;background:var(--soft2);overflow:hidden;margin-bottom:3px}.sd-bar i{display:block;height:100%;background:var(--green)}
.sd-pay{display:grid;grid-template-columns:90px minmax(0,1fr) 120px 70px;gap:10px}
.c-amber{color:var(--amber)}
@media (max-width:860px){.to-hero,.to-grid{grid-template-columns:1fr}.sd-row{grid-template-columns:1fr 1fr}.sd-row .lh{display:none}}
/* v15.5 приход: как оплатили */
.pay-pick{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.pay-title{display:block;font-size:13px;color:var(--muted);margin-bottom:8px}
.pay-modes{margin-bottom:12px}
.payers{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.payer{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;text-align:left;min-height:0;font-weight:400;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.payer:hover{border-color:var(--accent)}
.payer b{font-size:14px;font-weight:600}.payer span{font-size:20px;font-weight:600;color:var(--accent)}.payer small{font-size:11px;color:var(--muted)}
.payer.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-bg);background:var(--accent-bg)}
.payer.add{border-style:dashed;justify-content:center;align-items:center;color:var(--muted)}.payer.add b{font-size:18px;font-weight:400}
.pay-info{margin:10px 0 0;font-size:13px}
.payers-edit{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}
.pe-row{display:grid;grid-template-columns:1fr 110px 36px;gap:8px;align-items:center}
.pe-pct{display:flex;align-items:center;gap:4px;margin:0}.pe-pct input{text-align:right}
.dist-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px}.dist-row span{font-size:13px}
/* v15.5 прайс */
.price-dlg{min-width:min(560px,90vw)}
.price-modes{margin:4px 0 14px}
.pack-rows{display:flex;flex-direction:column;gap:8px;margin:10px 0}
.pack-row{display:grid;grid-template-columns:minmax(90px,1fr) 150px 150px minmax(110px,auto) 32px;gap:8px;align-items:center}
.pr-in{display:flex;align-items:center;gap:6px;margin:0;font-size:13px;color:var(--muted)}.pr-in input{min-width:0}
.pack-row output{font-size:12px}
.big-out{display:block;font-size:20px;font-weight:600;padding:8px 0}
@media (max-width:640px){.pack-row{grid-template-columns:1fr 1fr;}.pack-row output{grid-column:1/-1}}
/* v15.5 станок */
.machine{display:block;width:100%;height:auto;margin:6px 0 4px;overflow:visible}
.machine .rail{fill:#3F4451}
.machine .kn rect{fill:#8B919C}.machine .kn path{fill:#C3C8D0}.machine .kn text{font-size:13px;fill:#6B6B73;font-weight:600}
.machine .kn.on rect{fill:#2B59C3}.machine .kn.on path{fill:#9DB5EA}.machine .kn.on text{fill:#2B59C3}
.machine .cutline{stroke:#fff;stroke-width:2;stroke-dasharray:4 3;opacity:.9}
.machine .sw-t{font-size:20px;font-weight:700}.machine .rw-t{font-size:15px;font-weight:600;fill:#B45309}
.machine .gone{fill:none;stroke:#C9CCD1;stroke-dasharray:6 5;stroke-width:2}.machine .gone-t{font-size:14px;fill:#A1A1AA}
.machine .ruler line{stroke:#A1A1AA;stroke-width:1.5}.machine .ruler text{font-size:13px;fill:#8A8A93}
.machine.over .rail{fill:#B42318}
.sw{display:inline-block;width:14px;height:14px;border-radius:4px;border:1px solid rgba(0,0,0,.15);vertical-align:-2px;flex:none}.sw.big{width:40px;height:40px;border-radius:10px}
.roll-head{display:flex;align-items:center;gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.roll-head small{display:block;color:var(--muted)}
.pass .pass-h{display:flex;align-items:center;gap:12px;margin-bottom:4px}.pass .pass-h h2{margin:0;flex:1}
.knives{font-size:13px;color:var(--muted)}.knives b{color:var(--ink);font-size:15px}
.add-pass{width:100%;border:2px dashed var(--line);background:transparent;color:var(--accent);font-weight:600;padding:14px;border-radius:12px;margin-bottom:14px}
.add-pass:hover{border-color:var(--accent);background:var(--accent-bg)}
.cut-quick button:disabled{opacity:.4}
.cut-hist{display:flex;flex-direction:column;gap:10px}
.cut-card{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.cut-card>summary{display:grid;grid-template-columns:100px minmax(0,1.3fr) minmax(0,1.5fr) 110px;gap:14px;align-items:center;padding:12px 16px;cursor:pointer;list-style:none}
.cut-card>summary::-webkit-details-marker{display:none}
.cut-card small{display:block;font-size:12px;color:var(--muted)}.cut-no b{font-weight:600}
.cut-what{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}.cut-what small{width:100%}
.cut-body{padding:4px 16px 14px;border-top:1px solid var(--line2)}
.cut-costs{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.cut-costs span{background:var(--soft);border-radius:8px;padding:6px 10px;font-size:13px}
@media (max-width:760px){.cut-card>summary{grid-template-columns:1fr 1fr}.machine .sw-t{font-size:26px}.machine .ruler text,.machine .kn text{font-size:18px}}
/* v15.5 главная и задания */
.home-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
.tasks-sec{margin:0 0 22px}.tasks-sec>h2{font-size:15px;font-weight:600;margin:0 0 10px}
.tasks-empty{margin:0;padding:14px 16px;background:#fff;border:1px dashed var(--line);border-radius:12px;font-size:14px}
.tasks{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}
.task{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:8px;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.task>header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.task-no{font-weight:700;font-size:15px}.task-date{margin-left:auto;font-size:12px}
.task-client{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;font-size:15px}.task-client b{font-weight:600}
.task-tel{margin-left:auto;font-weight:600;color:var(--accent);white-space:nowrap}
.task-tk{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:13px;background:var(--soft);border-radius:8px;padding:8px 10px}.task-tk .tk-name{font-weight:600}.task-tk .tk-addr{width:100%}
.task-lines{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:13px}
.task-lines li{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:8px;align-items:center}.task-lines b{font-weight:600;white-space:nowrap}
.task-note{margin:0;font-size:13px;color:var(--amber)}.task-who{margin:0;font-size:12px;color:var(--muted)}
.task>footer{display:flex;gap:8px;margin-top:4px}.task>footer button{flex:1;min-height:44px}
.steps li small{display:block;font-size:11px;color:var(--muted)}
@media (max-width:760px){.home-kpis{grid-template-columns:1fr 1fr}.tasks{grid-template-columns:1fr}.task-tel{margin-left:0}}
.tabbar.con{grid-template-columns:repeat(4,1fr)}
.pack-row label.pr-in{display:flex!important;flex-direction:row;align-items:center;gap:6px;margin:0}.pack-row label.pr-in span{white-space:nowrap}.pack-row label.pr-in input{flex:1;width:auto;margin:0}
.pack-row{grid-template-columns:minmax(80px,1fr) 160px 170px minmax(120px,auto) 32px}
/* v16.1 прайс-лист */
.pl-wrap{display:flex;flex-wrap:wrap;gap:22px;justify-content:center}
.pl-sheet{width:min(560px,100%);background:#fff;border:1px solid var(--line);border-radius:6px;padding:30px 34px 26px;display:flex;flex-direction:column;color:#111}
.pl-sheet>header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding-bottom:22px}
.pl-brand{display:flex;flex-direction:column;line-height:1;padding-right:16px;border-right:1px solid #ddd}.pl-brand b{font-size:22px;letter-spacing:1px}.pl-brand span{font-size:13px;letter-spacing:2px;color:#555}
.pl-sheet h2{margin:0;text-align:center;font-size:26px;line-height:1.1;text-wrap:balance;font-weight:800;letter-spacing:-.5px}
.pl-ph{font-size:12px;text-align:right;padding-left:16px;border-left:1px solid #ddd;line-height:1.5}
.pl-sheet>footer{margin-top:auto;padding-top:16px;border-top:1px solid #ddd;text-align:center;font-size:13px}
.pl-row{display:grid;grid-template-columns:70px minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid #f0f0f0}
.pl-img img{width:64px;height:64px;object-fit:contain}.pl-img.big img{width:150px;height:110px}.pl-noimg{display:block;width:64px;height:64px;background:#f4f4f4;border-radius:8px}
.pl-name b{display:block;font-size:15px;line-height:1.2}.pl-name small{color:#777;font-size:12px}
.pl-dots{display:flex;gap:4px;margin-top:6px}.pl-dots i{width:10px;height:10px;border-radius:50%;border:1px solid #bbb;display:inline-block}
.pl-prices{display:flex;gap:14px}
.pl-pack{display:flex;flex-direction:column;min-width:96px}.pl-pack+.pl-pack{border-left:1px solid #ddd;padding-left:14px}
.pl-pack small{font-size:10px;color:#777;letter-spacing:.3px;white-space:nowrap}.pl-pack.opt small{color:#111;font-weight:700}
.pl-pack span{font-size:15px}.pl-pack b{font-size:17px;font-weight:800}.pl-pack i{font-style:normal;font-size:10px;font-weight:400;color:#555}
.pl-film{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center;margin:6px 0 14px}.pl-film h3{margin:0;font-size:22px}.pl-film p{margin:2px 0;color:#444}.pl-film small{color:#888;font-size:12px}
.pl-m2{font-size:28px;font-weight:800;margin-top:10px}.pl-m2 i{font-style:normal;font-size:15px;font-weight:400}
.pl-table{width:100%;border-collapse:collapse;margin:6px 0}.pl-table th{text-align:left;font-size:13px;letter-spacing:.3px;padding:8px 0;text-transform:uppercase}.pl-table th:last-child,.pl-table td:last-child{text-align:right}
.pl-table td{padding:8px 0;border-bottom:1px solid #e6e6e6;font-size:17px}
.pl-note{font-size:12px;color:#555;margin:8px 0}.pl-sheet hr{border:0;border-top:1px solid #222;margin:16px 0}
.pl-swatches{display:flex;flex-wrap:wrap;gap:10px;margin:6px 0 12px}.pl-swatches span{display:flex;flex-direction:column;gap:4px;font-size:11px;width:68px}.pl-swatches i{height:26px;border-radius:5px;border:1px solid #ddd}
@media (max-width:560px){.pl-sheet{padding:20px 16px}.pl-row{grid-template-columns:48px 1fr}.pl-prices{grid-column:1/-1}.pl-img img{width:46px;height:46px}.pl-sheet h2{font-size:22px}}
@media print{#nav,.tabbar,.back,.pl-head,.toast{display:none!important}body,html{background:#fff!important}#app{padding:0!important;max-width:none!important}.pl-wrap{display:block}.pl-sheet{border:0;border-radius:0;width:auto;min-height:calc(100vh - 2px);page-break-after:always;break-after:page}}
.task-short{border-color:#F3C7C2}
.short-lines li{align-items:start}.short-lines small{display:block;font-size:12px;color:var(--muted);white-space:normal}
.task>footer .button{flex:1;display:flex;align-items:center;justify-content:center;min-height:44px}
.short-lines .ell{white-space:normal;overflow:visible}
.machine .callout line{stroke:#2B59C3;stroke-width:1.5}.machine .callout rect{fill:#EEF3FC;stroke:#2B59C3;stroke-width:1.2}.machine .callout text{font-size:13px;font-weight:700;fill:#2B59C3}
@media (max-width:760px){.machine .callout text{font-size:15px}}
/* v16.2 выбор карты и поставщика плитками */
.acc-pick,.sup-pick{display:flex;flex-direction:column;gap:8px;margin:14px 0 4px}
.acc-label{font-size:13px;color:var(--muted)}
.acc-none{align-self:flex-start;min-height:32px;padding:0 14px;border-radius:16px;border:1px solid var(--line);background:#fff;color:var(--muted);font-weight:500;font-size:13px}
.acc-none.on{border-color:var(--accent);color:var(--accent);background:var(--accent-bg)}
.acc-row{display:grid;grid-template-columns:120px 1fr;gap:10px;align-items:start}
.acc-owner{font-size:13px;font-weight:600;padding-top:10px}
.acc-tiles{display:flex;flex-wrap:wrap;gap:6px}
.acc-tile{display:flex;align-items:center;gap:8px;min-height:40px;padding:6px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;font-weight:400;text-align:left;cursor:pointer;transition:border-color .12s,box-shadow .12s}
.acc-tile:hover,.sup-tile:hover{border-color:var(--accent)}
.acc-tile.on,.sup-tile.on{border-color:var(--accent);background:var(--accent-bg);box-shadow:0 0 0 2px var(--accent-bg)}
.acc-tile .bank-dot{flex:none}.acc-t{display:flex;flex-direction:column;line-height:1.15}.acc-t b{font-size:14px;font-weight:600}.acc-t small{font-size:11px;color:var(--muted)}
.sup-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.sup-tile{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;text-align:left;min-height:56px;font-weight:400;cursor:pointer}
.sup-tile b{font-size:14px;font-weight:600}.sup-tile small{font-size:11px;color:var(--muted)}
.sup-tile.add{border-style:dashed;color:var(--muted)}
dialog .acc-row{grid-template-columns:1fr}.dialog .acc-owner{padding-top:0}
@media (max-width:640px){.acc-row{grid-template-columns:1fr;gap:4px}.acc-owner{padding-top:4px}}
/* v16.3 строка прихода — «калькулятор рулона» */
.line.rl{padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:#fff;margin:12px 0;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.rl-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.rl-prod{display:flex;align-items:center;gap:12px;flex:1;min-width:240px}.rl-prod b{display:block;font-size:16px;font-weight:700;line-height:1.25}.rl-prod small{color:var(--muted);font-size:12px}
.rl-sw{width:42px;height:42px;border-radius:10px;border:1px solid rgba(0,0,0,.08);flex:none;position:relative;overflow:hidden}.rl-sw::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.35),transparent 50%,rgba(0,0,0,.12))}
.rl .seg button.on{background:#fff;color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.rl-step{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:10px;overflow:hidden;height:42px;background:#fff}
.rl-step button{width:38px;height:100%;border:0;border-radius:0;background:var(--soft);font-size:18px;color:var(--muted);min-height:0;padding:0}
.rl-step input{width:56px;text-align:center;border:0!important;font-size:16px;font-weight:600;box-shadow:none!important;height:100%;padding:0;-moz-appearance:textfield}
.rl-step small{padding:0 10px 0 2px;color:var(--muted);font-size:13px}
.rl-x{width:36px;height:36px;border-radius:9px;color:var(--muted);padding:0;min-height:0}
.rl-body{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:18px 22px;align-items:start}
.rl-in{display:flex;flex-direction:column;gap:12px}
.rl-mat{align-self:flex-start;flex-wrap:wrap}
.rl-grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.rl-costs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-top:12px;border-top:1px dashed var(--line)}
.rl-f{display:flex;flex-direction:column;margin:0}.rl-f .lbl{font-size:12px;color:var(--muted);margin-bottom:5px}
.rl .unit{display:flex;align-items:center;border:1px solid var(--line);border-radius:10px;background:#fff;height:44px;padding:0 12px;gap:6px}
.rl .unit:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}
.rl .unit input{border:0!important;outline:0;box-shadow:none!important;width:100%;min-width:0;font-size:16px;font-weight:500;background:transparent;padding:0;height:100%;-moz-appearance:textfield}
.rl .unit input::-webkit-outer-spin-button,.rl .unit input::-webkit-inner-spin-button,.rl-step input::-webkit-inner-spin-button,.rl-step input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.rl .unit>span{color:var(--muted);font-size:13px;white-space:nowrap}
.rl .unit.hl{border-color:var(--accent);background:var(--accent-bg)}
.rl-facts{display:flex;flex-wrap:wrap;gap:6px}.rl-facts:empty{display:none}
.pill{background:var(--soft);border:1px solid var(--line);border-radius:999px;padding:4px 10px;font-size:13px}.pill b{font-weight:600}
.rl-rule summary{font-size:13px;color:var(--muted);cursor:pointer}
.rl .calculated{margin:0;font-size:13px}
.rl-res{background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:12px}
.rl-big{display:flex;justify-content:space-between;align-items:center;gap:10px}.rl-big span{color:var(--muted);font-size:13px;line-height:1.3}.rl-big b{font-size:26px;font-weight:800;color:var(--green);white-space:nowrap}.rl-big b.bad{color:var(--red)}
.rl-bar{display:flex;height:32px;border-radius:8px;overflow:hidden;font-size:12px;font-weight:600;background:#fff}
.rl-bar i{display:flex;align-items:center;justify-content:center;font-style:normal;white-space:nowrap;overflow:hidden}
.rl-bar .c{background:#D8DCE3;color:#3b3f47}.rl-bar .m{background:#F6D9A8;color:#7a4b06}.rl-bar .p{background:#BFE3CB;color:#0f5d2c}
.rl-legend{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-top:4px}
.rl-kv{display:grid;grid-template-columns:1fr auto;gap:6px 12px;font-size:14px;margin:0}.rl-kv dt{color:var(--muted)}.rl-kv dt small{font-size:11px}.rl-kv dd{margin:0;font-weight:600;text-align:right}
.rl-kv .strong{color:var(--ink);font-weight:700}.rl-kv .bad{color:var(--red)}
.econ-out>.rl-res{height:auto}
section.panel>.econ-out{max-width:560px}
@media (max-width:860px){.rl-body{grid-template-columns:1fr}.rl-grid3{grid-template-columns:1fr 1fr}.rl-costs{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.rl .unit{padding:0 10px}.rl .unit>span{font-size:12px}}
/* v16.4 оплата подрядчику — окошко снизу */
.job-pay{border:0;background:none;padding:0;min-height:0;font:inherit;font-weight:600;color:var(--accent);cursor:pointer}.job-pay.empty{color:var(--amber)}
dialog.sheet{width:min(440px,94vw)}
.pay-big{display:flex;align-items:center;gap:8px;border:2px solid var(--accent);border-radius:14px;padding:0 16px;height:68px;background:var(--accent-bg);margin-bottom:14px}
.pay-big input{border:0!important;outline:0;box-shadow:none!important;background:transparent;font-size:32px;font-weight:700;width:100%;min-width:0;padding:0;-moz-appearance:textfield}
.pay-big input::-webkit-inner-spin-button,.pay-big input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.pay-big span{font-size:24px;color:var(--muted);font-weight:600}
.pay-quick{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}.pay-quick button{min-height:48px;font-size:16px;font-weight:600}
.sheet-actions{display:grid;grid-template-columns:1fr 1.4fr;gap:8px}.sheet-actions button{min-height:52px;font-size:16px}
@media (max-width:600px){dialog.sheet{width:100vw;max-width:100vw;margin:auto 0 0;border-radius:18px 18px 0 0;padding:20px 16px calc(20px + env(safe-area-inset-bottom))}}
label.pay-big{display:flex!important;flex-direction:row!important;align-items:center}
.pay-quick button.on{border-color:var(--accent);background:var(--accent-bg);color:var(--accent)}
/* v16.5 исполнители и схемы */
.roles-pick{display:flex;flex-direction:column;gap:10px}
.role-row{display:grid;grid-template-columns:200px 1fr;gap:10px;align-items:center}.role-row>span{font-size:13px;color:var(--muted)}
.role-chips{display:flex;flex-wrap:wrap;gap:6px}
.role-chip{min-height:36px;padding:0 14px;border-radius:18px;border:1px solid var(--line);background:#fff;font-weight:500}
.role-chip.on{border-color:var(--accent);background:var(--accent);color:#fff}
.plan-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(440px,1fr));gap:12px}
.task.plan .machine{margin:4px 0 0}.plan-roll{display:flex;align-items:center;gap:10px}.plan-roll b{display:block}.plan-roll small{color:var(--muted);font-size:12px}
.plan-pass{margin:6px 0 0;font-size:12px;font-weight:600;color:var(--muted)}.plan-strips{margin:0;font-size:13px}
.cut-banner{display:flex;align-items:center;gap:12px;background:var(--accent-bg);border:1px solid #C9D7F3;border-radius:12px;padding:14px 16px;margin:0 0 18px;color:var(--ink)}
.cut-banner span{font-size:22px}.cut-banner b{flex:1}.cut-banner small{color:var(--accent);font-weight:600}
@media (max-width:640px){.role-row{grid-template-columns:1fr;gap:4px}.plan-list{grid-template-columns:1fr}}

/* v17 · ЗП: карточки людей, правка сумм в строке, своя ЗП на телефоне */
.zp-month{display:inline-flex;align-items:center;gap:2px;background:var(--soft);border-radius:10px;padding:3px}
.zp-month b{min-width:130px;text-align:center;font-weight:600;text-transform:capitalize}
.zp-month button{min-height:32px;width:34px;padding:0;border:0;background:transparent;font-size:18px}.zp-month button:hover{background:#fff}
.zp-sum{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:4px 0 16px}
.zp-sum div{background:var(--soft);border-radius:12px;padding:12px 14px;color:var(--muted);font-size:13px}
.zp-sum b{display:block;color:var(--ink);font-size:22px;font-weight:600;font-variant-numeric:tabular-nums;margin-top:2px}
.zp-sum .due b{color:var(--amber)}
.zp-cap{color:var(--muted);font-size:13px;margin:0 0 10px}
.zp-people{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;align-items:start}
.zp-person{border:1px solid var(--line);border-radius:14px;background:#fff;min-width:0}
.zp-person.open{grid-column:1/-1;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}
.zp-person header{display:flex;align-items:center;gap:10px;padding:12px 14px 0;cursor:pointer}
.zp-av{width:38px;height:38px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;font-weight:700;background:var(--accent-bg);color:var(--accent)}
.zp-av.k-contractor{background:var(--amber-bg);color:var(--amber)}.zp-av.k-admin{background:var(--green-bg);color:var(--green)}
.zp-n{flex:1;min-width:0}.zp-n b{display:block;font-size:15px}.zp-n small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zp-t{text-align:right;font-variant-numeric:tabular-nums}.zp-t b{display:block;font-size:17px}.zp-t small{white-space:nowrap}
.zp-mini{display:flex;flex-wrap:wrap;gap:6px;padding:10px 14px 12px}.zp-mini span{font-size:12px;background:var(--soft);border-radius:99px;padding:3px 9px;white-space:nowrap}
.zp-st{font-size:12px;font-weight:600;border-radius:99px;padding:2px 8px;white-space:nowrap}
.zp-mini .zp-st.due,.zp-st.due{background:var(--amber-bg);color:var(--amber)}.zp-st.ok{background:var(--green-bg);color:var(--green)}
.zp-body{border-top:1px solid var(--line);padding:4px 14px 14px}
.zp-foot{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:12px}
.zp-day{font-size:12px;color:var(--muted);margin:14px 2px 6px}
.zp-job{display:flex;align-items:center;gap:10px;background:var(--soft);border-radius:12px;padding:9px 10px;margin-bottom:6px}
.zp-job>i{font-style:normal;width:32px;height:32px;flex:0 0 auto;border-radius:10px;display:grid;place-items:center;background:#fff;font-weight:600;color:var(--muted)}
.zp-job>div{flex:1;min-width:0;font-size:14px}.zp-job>div small{display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis}
.zp-job>div a{font-weight:500}
.zp-payout{background:var(--green-bg)}.zp-deduct{background:var(--red-bg)}
.zp-amt{font-variant-numeric:tabular-nums;white-space:nowrap}.zp-amt.neg{color:var(--muted)}
.zp-inp{min-height:34px;min-width:92px;justify-content:flex-end;font-variant-numeric:tabular-nums;font-weight:600;background:#fff;border:1px solid var(--line);border-radius:9px;padding:0 10px}
.zp-inp:hover{border-color:var(--accent);color:var(--accent);background:#fff}
.zp-inp.empty{color:var(--amber);border-style:dashed;border-color:#F0C98A;font-weight:500}
.zp-inp.edited{border-color:var(--accent);color:var(--accent)}
.zp-del{min-height:30px;width:30px;padding:0;border:0;background:transparent;color:var(--faint);font-size:18px}.zp-del:hover{color:var(--red);background:transparent}
.zp-none{padding:14px 2px}
.zp-hero{background:linear-gradient(135deg,#2B59C3,#5B7FE0);color:#fff;border-radius:18px;padding:16px 18px;max-width:560px}
.zp-hero small{color:rgba(255,255,255,.85);font-size:13px;text-transform:none}.zp-hero>b{display:block;font-size:34px;font-weight:700;margin:2px 0 10px;font-variant-numeric:tabular-nums}
.zp-hero div{display:flex;gap:8px;flex-wrap:wrap}.zp-hero div span{background:rgba(255,255,255,.18);border-radius:8px;padding:4px 9px;font-size:12px}
.zp-cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:12px 0;max-width:560px}
.zp-cats div{background:var(--soft);border-radius:12px;padding:10px 12px}.zp-cats span{font-size:13px;color:var(--muted)}.zp-cats b{display:block;font-size:18px;font-variant-numeric:tabular-nums}
.zp-warn{background:var(--amber-bg);color:var(--amber);border-radius:12px;padding:10px 12px;font-size:13px;margin:0 0 10px;max-width:560px}
.zp-feed{max-width:560px}
@media (max-width:760px){.zp-sum{grid-template-columns:1fr 1fr}.zp-sum div:last-child{grid-column:1/-1}.zp-people{grid-template-columns:1fr}.zp-month b{min-width:110px}.zp-foot button{flex:1}.zp-foot .primary{flex-basis:100%;min-height:46px}}

/* v17 · Настройки по разделам */
.set{display:grid;grid-template-columns:230px 1fr;gap:28px;align-items:start}
.set-nav{display:flex;flex-direction:column;gap:2px;position:sticky;top:72px}
.set-nav a{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;color:var(--ink)}
.set-nav a i{font-style:normal;width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:var(--soft);font-size:14px}
.set-nav a small{margin-left:auto}.set-nav a:hover{background:var(--soft);color:var(--ink)}
.set-nav a.on{background:var(--accent-bg);color:var(--accent);font-weight:600}.set-nav a.on i{background:#fff}
.set-pane{min-width:0;max-width:820px}.set-pane>h2{font-size:20px;margin:0 0 4px}.set-pane>p.muted{margin:0 0 18px}
.set-back{display:none}
.set-form .grid{margin-bottom:6px}.set-save{display:flex;justify-content:flex-end;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.set-save .primary{min-height:42px;padding:0 22px}
.set-steps{display:flex;flex-direction:column;gap:8px}.set-steps>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--soft);border-radius:10px;padding:8px 12px}
.set-steps label{display:inline-flex;margin:0}.set-steps input{width:110px;min-height:36px}
.set-rows{display:flex;flex-direction:column;gap:6px;margin-bottom:6px}
.set-row{display:grid;grid-template-columns:minmax(120px,1fr) 2fr 32px;gap:6px;align-items:center}.set-row.pay{grid-template-columns:minmax(120px,1fr) 110px 32px}
.set-row input{min-height:38px;width:100%;min-width:0}.set-row .pct{display:flex;flex-direction:row;align-items:center;gap:4px;margin:0;min-width:0}.set-row .pct span{color:var(--muted)}
.set-staff{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.set-person{display:flex;flex-direction:column;align-items:stretch;gap:0;text-align:left;white-space:normal;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fff;min-height:0;font-weight:400}
.set-person:hover{border-color:var(--accent);background:#fff}
.set-person .ph{display:flex;align-items:center;gap:10px;margin-bottom:8px}.set-person .ph b{display:block;font-size:15px}.set-person .ph small{display:block}
.set-person .kv{display:flex;justify-content:space-between;gap:8px;font-size:13px;padding:5px 0;border-top:1px dashed var(--line)}.set-person .kv>span{color:var(--muted)}.set-person i{font-style:normal}
.set-person.add{border:1.5px dashed var(--line);justify-content:center;align-items:center;color:var(--muted);min-height:120px}
.set-users{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:6px}
.set-user{background:var(--soft);border-radius:10px;padding:8px 12px;display:flex;flex-direction:column}.set-user span{font-size:13px}.set-user small i{font-style:normal}
.chip-pick{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 6px}
.chip-pick .chip{min-height:36px;border-radius:99px;padding:0 14px;font-weight:500}.chip-pick .chip.on{background:var(--accent);border-color:var(--accent);color:#fff}
@media (max-width:760px){
 .set{grid-template-columns:1fr;gap:0}.set-nav{position:static;background:var(--soft);border-radius:14px;overflow:hidden;gap:0}
 .set-nav a{border-radius:0;padding:13px 12px;border-bottom:1px solid var(--line);font-size:15px}.set-nav a:last-child{border:0}.set-nav a i{background:#fff}
 .set-nav a small:after{content:" ›";color:var(--faint)}.set-nav a.on{background:transparent;color:var(--ink);font-weight:400}
 .set:not(.has-sec) .set-pane{display:none}.set.has-sec .set-nav{display:none}
 .set-back{display:inline-flex;border:0;background:none;padding:0;color:var(--accent);margin-bottom:10px;min-height:32px}
 .set-row:not(.pay){grid-template-columns:1fr 32px;background:var(--soft);border-radius:12px;padding:6px}.set-row:not(.pay)>input:nth-child(1){grid-column:1;grid-row:1}.set-row:not(.pay)>input:nth-child(2){grid-column:1/-1;grid-row:2}.set-row:not(.pay)>button{grid-column:2;grid-row:1}.set-row.pay{grid-template-columns:1fr 92px 32px}
 .set-save .primary{width:100%;min-height:48px}
}
.set-user{text-align:left;align-items:stretch;justify-content:flex-start;white-space:normal;border:1px solid transparent;font-weight:400;min-height:0;cursor:pointer}
.set-user:hover{border-color:var(--accent);background:var(--soft)}.set-user.off{opacity:.6}.set-user b{display:flex;gap:6px;align-items:center}
.set-backup{display:grid;gap:12px}.set-backup>div{background:var(--soft);border-radius:14px;padding:14px 16px}.set-backup p{font-size:13px;margin:4px 0 12px}
.brand{align-items:center}.brand-ico{width:24px;height:24px;border-radius:6px;align-self:center;margin-right:2px}
/* v18 · приход: подсветка вместо полосы */
.rl-res.warn{background:var(--amber-bg);border-color:#F3D9A8}.rl-res.bad{background:var(--red-bg);border-color:#F3D3CF}
.rl-big b.warn{color:var(--amber)}.rl-big b.bad{color:var(--red)}
.rl-kv .warn{color:var(--amber)}.rl-kv .strong.bad{color:var(--red)}
.rl-alert{margin:0;font-size:13px;font-weight:500;border-radius:8px;padding:6px 10px}.rl-alert.warn{background:#fff;color:var(--amber)}.rl-alert.bad{background:#fff;color:var(--red)}
.rl-fill{font-size:13px;margin-top:4px;align-self:flex-start}
/* v18 · раскрывающийся выбор (карта, поставщик) */
.pick-fold{display:flex;flex-direction:column;gap:6px}
.pick-head{justify-content:flex-start;gap:10px;min-height:48px;width:100%;max-width:520px;padding:6px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;font-weight:400;text-align:left}
.pick-head:hover{border-color:var(--accent);background:#fff}
.pick-v{display:flex;align-items:center;gap:8px;flex:1;min-width:0;white-space:nowrap;overflow:hidden}.pick-v b{font-weight:600}.pick-v small{color:var(--muted);overflow:hidden;text-overflow:ellipsis}
.pick-head i{font-style:normal;color:var(--muted);transition:transform .15s}.pick-fold.open .pick-head i{transform:rotate(180deg)}
.pick-fold.open .pick-head{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}
.pick-body{display:none;padding:10px;border:1px solid var(--line);border-radius:12px;background:#fff}.pick-fold.open .pick-body{display:block}
.pick-body .acc-row:first-of-type{margin-top:4px}
/* v18 · транспортные компании */
.tk-ico{display:inline-grid;place-items:center;flex:0 0 auto;border-radius:6px;font-weight:800;letter-spacing:-.2px;line-height:1}
.tk-ico.other{background:var(--soft)}
.tk-pick{display:flex;flex-direction:column;gap:8px;margin:4px 0 10px}
.tk-chips{display:flex;flex-wrap:wrap;gap:8px}
.tk-chip{min-height:44px;padding:0 14px 0 8px;border-radius:12px;gap:8px;font-weight:500}
.tk-chip.on{border-color:var(--accent);background:var(--accent-bg);color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}
.tk-other{max-width:420px}
/* v18 · клиенты */
.cu-tools{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.cu-tools input[type=search]{max-width:520px;min-height:44px}
.cu-filter{display:flex;gap:6px;flex-wrap:wrap}.cu-filter .chip{gap:6px}
.cu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.cu-card{display:flex;flex-direction:column;gap:10px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);transition:border-color .12s,box-shadow .12s}
.cu-card:hover{border-color:var(--accent);box-shadow:0 2px 10px rgba(0,0,0,.05);color:var(--ink)}
.cu-top{display:flex;align-items:center;gap:12px}.cu-n{flex:1;min-width:0}.cu-n b{display:block;font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cu-n small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cu-av{display:inline-grid;place-items:center;flex:0 0 auto;border-radius:50%;color:#fff;font-weight:700}
.cu-del{opacity:.5}.cu-card:hover .cu-del{opacity:1}
.cu-meta{display:flex;flex-direction:column;gap:6px;font-size:14px}
.cu-tk{display:inline-flex;align-items:center;gap:6px;font-weight:500}
.cu-foot{display:flex;gap:6px;flex-wrap:wrap;font-size:12px}.cu-foot span{background:var(--soft);border-radius:99px;padding:3px 9px}
.cu-debt{background:var(--red-bg)!important;color:var(--red)}.cu-dup{background:var(--amber-bg)!important;color:var(--amber)}
.cu-hero{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:6px 0 16px}
.cu-hn{flex:1;min-width:200px}.cu-hn h1{margin:0}.cu-hn p{margin:4px 0;display:flex;gap:10px;align-items:center;flex-wrap:wrap;color:var(--muted)}
.cu-acts{display:flex;gap:8px;flex-wrap:wrap}
.cu-act{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:84px;min-height:58px;padding:6px 10px;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:18px;color:var(--ink)}
.cu-act span{font-size:12px;font-weight:500}.cu-act:hover{border-color:var(--accent);color:var(--accent)}
.cu-act.primary{background:var(--ink);border-color:var(--ink);color:#fff}.cu-act.primary:hover{background:#000;color:#fff}
.cu-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:16px}
.cu-kpis div{background:var(--soft);border-radius:12px;padding:10px 12px;font-size:12px;color:var(--muted)}.cu-kpis b{display:block;font-size:17px;color:var(--ink);font-variant-numeric:tabular-nums}.cu-kpis .bad b{color:var(--red)}
.cu-secs{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.cu-sec{border:1px solid var(--line);border-radius:14px;padding:16px;background:#fff;min-width:0}.cu-sec.wide{grid-column:1/-1}.cu-sec h2{margin:0 0 12px}
.cu-hist-h{display:flex;justify-content:space-between;align-items:center;margin:22px 0 10px}.cu-hist-h h2{margin:0}
@media (max-width:760px){.cu-secs{grid-template-columns:1fr}.cu-kpis{grid-template-columns:1fr 1fr}.cu-acts{width:100%}.cu-act{flex:1;min-width:0}.tk-chip{flex:1 1 calc(50% - 8px)}}
.task-tk .tk-name{display:inline-flex;align-items:center;gap:6px}
/* v19 · полосы крупно под станком */
.sz{margin:6px 0 4px}
.sz-bar{display:flex;gap:3px;width:100%;overflow-x:auto;padding-bottom:2px}
.sz-bar>span{flex-basis:0;min-width:40px;height:54px;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.1;box-shadow:inset 0 -10px 16px rgba(0,0,0,.12)}
.sz-bar small{font-size:10px;opacity:.75;color:inherit}.sz-bar b{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}
.sz-w{flex:0 0 40px!important;background:repeating-linear-gradient(-45deg,#FFF0EE 0 4px,#F5B5AD 4px 6px);color:#B42318;box-shadow:none!important}
.sz-s.rewind{background:repeating-linear-gradient(45deg,#FEF6E7 0 5px,#E9B970 5px 8px);color:#8a4b00;box-shadow:none}
.sz-sum{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.sz-sum span{background:var(--soft);border-radius:99px;padding:4px 10px;font-size:13px}
@media (max-width:760px){.sz-bar>span{min-width:34px;height:50px}.sz-bar b{font-size:14px}}
/* v19 · «Чего не хватает» */
.task-short{border-color:#F3D3CF}
.sh-lines{list-style:none;margin:2px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.sh-lines li{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:10px;align-items:center;background:var(--red-bg);border-radius:10px;padding:8px 10px}
.sh-img{width:40px;height:40px;border-radius:8px;background:#fff;display:grid;place-items:center;overflow:hidden}.sh-img img{max-width:36px;max-height:36px;object-fit:contain}
.sh-t{min-width:0;display:flex;flex-direction:column;gap:3px}.sh-t b{font-weight:600;font-size:14px;line-height:1.25;display:-webkit-box;}
.sh-meta{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:12px;color:var(--muted)}
.sh-where{background:#fff;border-radius:99px;padding:1px 8px;color:var(--ink)}
.sh-miss{font-weight:700;color:var(--red);white-space:nowrap;font-variant-numeric:tabular-nums;background:#fff;border-radius:99px;padding:3px 10px;font-size:14px}
.task-short footer{display:grid;grid-template-columns:1fr 1fr;gap:8px}.task-short footer>*{width:100%}
.sh-var{font-size:13px;color:var(--ink);opacity:.8}.task-tk a{color:var(--accent)}
.pill-tk{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap}
.pager-list{justify-content:center;margin:14px 0 4px;flex-wrap:wrap}
.pager-list:first-child{margin-top:0;margin-bottom:12px}
/* v21 · оплата — отдельно от этапов, не держит сборку */
.steps li.pay-step{border-left:1px dashed var(--line);padding-left:14px}
.steps li.pay-step::before{background:var(--line)}
.steps li.pay-step.done{color:var(--green)}.steps li.pay-step.done::before{background:var(--green)}
.steps li.pay-step.part{color:var(--amber)}.steps li.pay-step.part::before{background:var(--amber)}
.steps li.pay-step.due{color:var(--red)}.steps li.pay-step.due::before{background:#F3C7C2}
.steps li.pay-step small{color:inherit;opacity:.85}
.task-sum{margin:0;font-size:14px;background:var(--green-bg);color:var(--green);border-radius:8px;padding:8px 10px}.task-sum.due{background:var(--red-bg);color:var(--red)}.task-sum small{color:var(--muted)}
/* v24 · состав в заданиях целиком, коротко */
.task-lines li{grid-template-columns:26px minmax(0,1fr) auto;align-items:center}
.task-lines .tl-n{white-space:normal;line-height:1.3;font-size:14px}
.task-lines .tl-v{font-weight:700;background:var(--soft);border-radius:6px;padding:1px 6px;white-space:nowrap;font-size:13px}
.task-lines li>b.num{font-size:15px}
