:root{
  --paper:#F2F4F7;--card:#FFFFFF;--ink:#17202E;--ink2:#4B5566;--ink3:#737D8E;--line:#D8DDE6;--field:#F7F8FA;
  --stamp:#2A4B9B;--stampSoft:#E3E9F7;--hl:#FFF4D6;
  --okBg:#E1F1E7;--ok:#2B7349;--doBg:#FBEFD9;--do:#9A6210;--blBg:#F8E1DF;--bl:#B0342A;--toBg:#ECEEF2;--to:#626B7A;
}
/* Тёмная тема — только по выбору в «Настройках» (раньше включалась сама по настройке компьютера) */
:root[data-theme="dark"]{
  color-scheme:dark;
  --paper:#0F131A;--card:#171D27;--ink:#E5E9F0;--ink2:#A3ACBC;--ink3:#7E8898;--line:#2A3341;--field:#121821;
  --stamp:#93AAF0;--stampSoft:#1E2944;--hl:#3A2F12;
  --okBg:#15301F;--ok:#74D19C;--doBg:#37290F;--do:#F0B45C;--blBg:#3B1C1A;--bl:#F2908A;--toBg:#222A36;--to:#A2AABA;
}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;padding:0 16px}
h1,h2,h3{margin:0;line-height:1.2}
h1{font-size:22px;font-weight:700}
h2{font-size:18px;font-weight:650}
h3{font-size:14px;font-weight:600}
p{margin:0}
img{max-width:100%}
.muted{color:var(--ink2)}
.small{font-size:13px}
.mono{font-family:ui-monospace,Menlo,monospace}
.eyebrow{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);font-weight:600}
.wrap{max-width:1200px;margin:0 auto;padding:20px 0 60px;display:flex;flex-direction:column;gap:16px}
.wrap.point{max-width:520px}
.top{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px}
.point .card{padding:18px;display:flex;flex-direction:column;gap:14px}
.gate{max-width:420px;margin:40px auto}
.f{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--ink2);font-weight:500}
input[type=text],input[type=tel],input[type=number],input[type=password]{font:inherit;font-size:16px;color:var(--ink);background:var(--field);border:1px solid var(--line);border-radius:8px;padding:9px 10px;width:100%}
.btn{font:inherit;font-weight:600;font-size:14px;border-radius:8px;padding:9px 16px;border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer}
.btn.small{padding:6px 10px;font-size:13px}
.btn.primary{background:var(--stamp);border-color:var(--stamp);color:#fff}
.btn.danger{color:var(--bl)}
.btn:disabled{opacity:.55;cursor:default}
.shoot{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;border:2px dashed var(--line);border-radius:12px;padding:22px 16px;text-align:center;background:var(--field)}
.shoot input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.shoot b{font-size:16px;color:var(--stamp)}
.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:10px}
.thumb{position:relative;border:1px solid var(--line);border-radius:8px;overflow:hidden;aspect-ratio:3/4;background:var(--field)}
.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.thumb .pg{position:absolute;left:6px;top:6px;background:var(--card);font-size:11px;font-weight:600;border-radius:5px;padding:1px 6px}
.thumb .x{position:absolute;right:4px;top:4px;border:0;border-radius:6px;background:var(--card);color:var(--bl);font:inherit;font-size:12px;font-weight:700;padding:2px 7px;cursor:pointer}
.alert{border-radius:8px;padding:10px 12px;font-size:14px}
.alert.ok{background:var(--okBg);color:var(--ok)}
.alert.warn{background:var(--doBg);color:var(--do)}
.alert.bad{background:var(--blBg);color:var(--bl)}
.pill{display:inline-block;font-size:12px;font-weight:600;border-radius:999px;padding:2px 9px;white-space:nowrap}
.pill-ok{background:var(--okBg);color:var(--ok)}.pill-do{background:var(--doBg);color:var(--do)}
.pill-bl{background:var(--blBg);color:var(--bl)}.pill-to{background:var(--toBg);color:var(--to)}
.pill-st{background:var(--stampSoft);color:var(--stamp)}
/* accountant */
.acc{display:grid;grid-template-columns:260px minmax(0,1fr);gap:16px;align-items:start}
.queue{padding:10px;display:flex;flex-direction:column;gap:6px}
.queue h3{padding:6px 6px 4px}
.qitem{text-align:left;font:inherit;border:1px solid transparent;background:transparent;color:var(--ink);border-radius:8px;padding:9px 10px;cursor:pointer;display:flex;flex-direction:column;gap:3px;width:100%}
.qitem:hover{background:var(--field)}
#qlist{display:contents}
.qfilter{display:flex;flex-direction:column;gap:6px;padding:2px 2px 4px}
.qfilter input,.qfilter select{font:inherit;font-size:13px;width:100%;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:var(--field);color:var(--ink)}
.qday{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);padding:8px 8px 0}
.qfound{padding:0 8px;margin:0}
.qitem[aria-current="true"]{background:var(--stampSoft);border-color:var(--stamp)}
.qitem .l1{font-weight:600;font-size:14px}
.qitem .l2{font-size:12px;color:var(--ink3)}
.panel{padding:18px;display:flex;flex-direction:column;gap:16px;min-width:0}
.dochead{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:flex-start;justify-content:space-between}
.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px 14px}
.fv{display:flex;flex-direction:column;gap:2px}
.fv span{font-size:12px;color:var(--ink3)}
.fv b{font-weight:600;overflow-wrap:anywhere}
.alerts{display:flex;flex-direction:column;gap:8px}
.pages{display:flex;gap:10px;flex-wrap:wrap}
.pages .thumb{width:92px;cursor:zoom-in}
.nophoto{font-size:13px;color:var(--ink3);border:1px dashed var(--line);border-radius:8px;padding:10px 12px}
.tbl{overflow-x:auto;border:1px solid var(--line);border-radius:10px}
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{padding:7px 10px;text-align:left;border-top:1px solid var(--line);vertical-align:top}
thead th{border-top:0;font-size:12px;color:var(--ink3);font-weight:600;background:var(--field);white-space:nowrap}
.r{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
tr.hand td{background:var(--hl)}
tr.edited td{background:var(--stampSoft)}
tr.nomatch td{background:var(--hl)}
tr.nomatch td.iiko .btn{border-color:var(--do);color:var(--do);font-weight:700}
tr.bad td{background:var(--blBg)}
td input{width:88px;text-align:right;padding:4px 6px;font-size:14px}
.was{display:block;font-size:12px;color:var(--ink3)}
.hint{display:block;font-size:12px;color:var(--do);margin-top:2px}
tfoot td{font-weight:600}
.actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.retbox{display:flex;flex-wrap:wrap;gap:8px;align-items:center;width:100%}
.retbox input{flex:1 1 240px}
.proc{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:10px 0}
.spin{width:22px;height:22px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--stamp);animation:sp 1s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
.viewer{position:fixed;inset:0;background:rgba(10,14,20,.86);z-index:30;display:flex;flex-direction:column;padding:16px}
.viewer .vbar{display:flex;justify-content:flex-end}
.viewer .vimg{flex:1;overflow:auto;display:flex;align-items:center;justify-content:center}
.viewer img{max-width:100%;max-height:100%}
@media (max-width:820px){.acc{grid-template-columns:1fr}.queue{flex-direction:row;overflow-x:auto}.queue h3{display:none}.qitem{min-width:190px}.qfilter{min-width:200px}.qday{display:none}}

/* iiko matching */
.topbtns{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
a.btn{text-decoration:none;display:inline-block}
td.iiko{min-width:220px}
td.iiko b{font-weight:600}
.src{display:block;font-size:11px;font-weight:600;margin-top:2px;color:var(--ink3)}
.src-auto{color:var(--do)}.src-memory{color:var(--ok)}.src-manual{color:var(--stamp)}
.conv{display:block;font-size:12px;color:var(--ink2);margin-top:3px}
input.fac{width:80px;font-size:13px;padding:3px 6px;display:inline-block}
.linkbtn{font:inherit;font-size:12px;border:0;background:none;color:var(--stamp);padding:0;cursor:pointer;text-decoration:underline;margin-top:3px;display:block}
tr.pickrow td{background:var(--field)}
.picker{display:flex;flex-direction:column;gap:8px;padding:6px 0}
.pickbar{display:flex;gap:8px;align-items:center}
.pickbar input{flex:1}
.picklist{display:flex;flex-direction:column;gap:4px;max-height:280px;overflow:auto}
.cand{font:inherit;text-align:left;display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:8px;padding:7px 10px;cursor:pointer}
.cand:hover{border-color:var(--stamp)}
.tbl .pickbar input{text-align:left;width:auto;max-width:none}
.tbl input.fac{width:80px}
.topbtns form{margin:0}
[hidden]{display:none!important}

/* контроль цен */
.pc{display:block;font-size:11px;font-weight:600;margin-top:3px;white-space:normal;text-align:right;max-width:170px;margin-left:auto;cursor:help}
.pc-up{color:var(--bl)}.pc-down{color:var(--ok)}.pc-flat{color:var(--ink3)}.pc-other{color:var(--do)}
.tbl td .pc{display:inline-block}
td.r .pc{display:block}
.tbl td input[type=number]{width:96px}
.tbl td input.fac{width:80px}

/* точка: возвраты и список накладных */
.retitem{display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.retitem .btn{margin-top:4px}
#mine{padding:18px;display:flex;flex-direction:column;gap:12px}
.mylist{display:flex;flex-direction:column}
.myitem{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--line)}
.myitem:first-child{border-top:0}
.myitem > div{display:flex;flex-direction:column;gap:2px;min-width:0}
.myitem b{font-weight:600;font-size:14px;overflow-wrap:anywhere}

/* первые шаги после регистрации */
.onb{display:flex;flex-direction:column;gap:12px;max-width:64ch}
.onb-steps{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:12px;color:var(--ink2)}
.onb-steps li b{color:var(--ink)}
.onb-steps li.done::marker{color:var(--ok)}
.onb-steps li.done b::after{content:" ✓";color:var(--ok)}

/* обязательное имя сотрудника на точке */
input.err{border-color:var(--bl)!important;background:var(--blBg)}
p.bad{color:var(--bl)}
input.docdate{font:inherit;font-size:15px;color:var(--ink);background:var(--field);border:1px solid var(--line);border-radius:8px;padding:6px 8px;max-width:180px}
.linkbtn.inl{display:inline;margin:0}
.warnnote{color:var(--do)}
.retpanel{display:flex;flex-direction:column;gap:8px;border:1px solid var(--line);border-left:3px solid var(--bl);border-radius:10px;padding:14px 16px;background:var(--field)}
.retpanel .retbox input{background:var(--card)}

/* рукописные накладные */
.pill.marks{margin-top:6px}
input.docsup{font:inherit;font-size:15px;color:var(--ink);background:var(--field);border:1px solid var(--line);border-radius:8px;padding:6px 8px;width:100%;max-width:260px}
.fixbtns{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.fixbtns .btn{font-size:12px;padding:4px 8px}
.alert .btn.small{margin-left:6px;vertical-align:middle}

.btn.gal{display:block;text-align:center;cursor:pointer}
select{font:inherit;font-size:15px;color:var(--ink);background:var(--field);border:1px solid var(--line);border-radius:8px;padding:8px 10px;max-width:100%}
.btn:disabled{opacity:.5;cursor:not-allowed}

.stock{display:block;font-size:12px;color:var(--ink3);margin-top:2px}
.stock.neg{color:var(--bl)}

.kindsel{display:flex;flex-direction:column;gap:8px;border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.kindsel label{display:flex;gap:8px;align-items:center;font-weight:600}

select.vat{font:inherit;font-size:13px;padding:2px 4px;border:1px solid var(--line);border-radius:6px;background:var(--field);color:var(--ink);max-width:110px}
.vatall{margin:8px 0}
tr.deleted td{color:var(--ink3);background:var(--toBg)}

.wrap:has(.acc){max-width:1760px}
@media (min-width:821px){.acc{grid-template-columns:220px minmax(0,1fr)}}
.panel .tbl th,.panel .tbl td{padding-left:7px;padding-right:7px}
.panel .tbl td input[type=number]{width:84px;padding:6px 7px}
.panel .tbl td input.fac{width:70px}
.panel .tbl select.vat{display:block;margin:3px 0 0 auto}
.panel .tbl td:nth-child(2){max-width:230px}
.panel .tbl td.iiko{max-width:260px}

.panel .tbl td input.sum{width:104px;text-align:right}
.panel .tbl td input.sum.man{border-color:var(--stamp);background:var(--stampSoft)}

.pill-sent{background:var(--ok);color:#fff}
.qitem .pill{margin-top:3px}

/* v41: столбцы «Кол., Ед. изм., Коэф., Склад» */
.vatall{display:flex;flex-wrap:wrap;gap:6px 22px;align-items:center}
.allset{white-space:nowrap}
.panel .tbl select.store{display:block;margin:0;max-width:120px;font-size:14px;padding:5px 4px}
.vatall select.store{display:inline-block;max-width:160px}
.panel .tbl select.store.set,.panel .tbl td input.fac.set{border-color:var(--stamp);background:var(--stampSoft)}
.panel .tbl td input.fac{width:74px;text-align:right}
.tbl .toiiko{white-space:nowrap}
.tbl .facwarn{color:var(--do);font-weight:600;cursor:help}
/* v42: открытый раздел кабинета */
.topbtns .btn.on{background:var(--stampSoft);border-color:var(--stamp);color:var(--stamp)}
/* v44: количество для iiko вписывается прямо в строке */
.panel .tbl td input.fac.iq{width:70px;display:inline-block;padding:3px 5px;font-size:13px}
.src-same{color:var(--ink3)}
.panel .tbl td input.fac{width:88px}
.panel .tbl td input.fac.iq{width:76px}
/* v47: в столбце «В iiko» главное — количество, коэффициент мелко под ним */
.iqwrap{white-space:nowrap}
.panel .tbl td input.iqmain{width:84px;text-align:right}
.panel .tbl td input.iqmain.set{border-color:var(--stamp);background:var(--stampSoft)}
.panel .tbl td input.fac.iq{width:84px;padding:3px 4px;border-color:var(--line);background:var(--field)}
/* v49: просмотр фото закрывается щелчком вне фото */
.viewer{cursor:pointer}
.viewer img{cursor:default}
.viewer .vhint{text-align:center;color:#c9d1dc;font-size:13px;padding-bottom:8px}
/* v52: галочка в «Точках» нажимается только по квадрату и небольшому полю вокруг */
.ptship{display:flex;align-items:center;gap:4px;margin-top:4px}
.ptship .ptbox{display:inline-flex;padding:5px;margin:-5px 0 -5px -5px;cursor:pointer}
td .ptship input[type=checkbox]{width:16px;height:16px;padding:0;margin:0;cursor:pointer}
td input[type=checkbox]{width:auto}
/* v54: меню «Добавить документ», убранные из очереди */
.addwrap{position:relative;display:inline-block}
.addmenu{position:absolute;left:0;top:calc(100% + 6px);z-index:20;min-width:270px;display:flex;flex-direction:column;gap:2px;padding:6px;
  background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(23,32,46,.14);
  opacity:0;transform:translateY(-6px);visibility:hidden;pointer-events:none;transition:opacity .16s ease,transform .16s ease,visibility 0s linear .16s}
.addmenu.open{opacity:1;transform:translateY(0);visibility:visible;pointer-events:auto;transition:opacity .16s ease,transform .16s ease}
.addmenu button{font:inherit;text-align:left;background:none;border:0;border-radius:7px;padding:9px 12px;cursor:pointer;color:var(--ink);display:flex;flex-direction:column;gap:1px}
.addmenu button:hover,.addmenu button:focus-visible{background:var(--stampSoft)}
.addmenu button span{font-size:12px;color:var(--ink3)}
@media (prefers-reduced-motion:reduce){.addmenu,.addmenu.open{transition:none}}
.qhidden{display:block;margin-top:8px;font-size:12px;text-align:left}
.hidebar{margin-top:14px;text-align:right}
/* v59: верхняя панель по направлениям — Добавить, Отчёты, Настройки */
.topinfo{display:flex;flex-wrap:wrap;gap:2px 14px;margin-top:2px}
.topinfo span:empty{display:none}
.topinfo .supp a{color:inherit;text-decoration:underline}
.addmenu.right{left:auto;right:0}
.addmenu a,.addmenu label{font:inherit;text-align:left;text-decoration:none;border-radius:7px;padding:9px 12px;cursor:pointer;color:var(--ink);display:flex;flex-direction:column;gap:1px}
.addmenu a:hover,.addmenu a:focus-visible,.addmenu label:hover,.addmenu label:focus-visible{background:var(--stampSoft)}
.addmenu a span,.addmenu label span{font-size:12px;color:var(--ink3)}
.addmenu button.on{background:var(--stampSoft);color:var(--stamp)}
.addmenu{min-width:300px;max-width:min(360px,calc(100vw - 32px))}
.btn .caret{font-size:11px;color:var(--ink3);margin-left:2px}
.topsep{width:1px;align-self:stretch;background:var(--line);margin:4px 2px}
.btn.ghost{background:transparent;border-color:transparent;color:var(--ink2);padding:9px 10px}
.btn.ghost:hover{border-color:var(--line);color:var(--ink)}
/* на узком экране меню раскрывается от левого края панели, иначе оно уезжает за край */
@media (max-width:1100px){.topbtns{position:relative}.topbtns .addwrap{position:static}
  .topbtns .addmenu,.topbtns .addmenu.right{left:0;right:auto;min-width:0;width:min(360px,100%)}}
@media (max-width:820px){.topsep{display:none}}
/* v62: несколько файлов в одну загрузку — список копится, файлы можно перетащить */
.addfiles{border:1.5px dashed var(--line);border-radius:10px;padding:12px 14px;margin:10px 0;display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.addfiles.over{border-color:var(--stamp);background:var(--stampSoft)}
.addlist{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:4px}
.addlist .fn{font-weight:600;word-break:break-all}
.addempty{margin:0}
label.btn.disabled{opacity:.55;pointer-events:none}
.addlist .linkbtn{display:inline;margin:0 0 0 6px}
