/* IBM Carbon: светлая тема Gray 10, тёмная Gray 100 */
:root{
  --bg:#f4f4f4; --layer:#ffffff; --field:#f4f4f4; --accent-layer:#e0e0e0; --hover:#e8e8e8; --selected:#e0e0e0;
  --border:#e0e0e0; --border-strong:#8d8d8d; --text:#161616; --text2:#525252; --helper:#6f6f6f;
  --link:#0f62fe; --btn:#0f62fe; --btn-hover:#0353e9; --btn2:#393939; --btn2-hover:#474747; --focus:#0f62fe;
  --error:#da1e28; --success:#198038;
  --tag-red-bg:#ffd7d9; --tag-red:#a2191f; --tag-green-bg:#a7f0ba; --tag-green:#0e6027; --tag-blue-bg:#d0e2ff; --tag-blue:#0043ce;
  --tag-gray-bg:#e0e0e0; --tag-gray:#161616; --warn-bg:#fcf4d6; --warn:#684e00; --inv-bg:#393939; --inv-text:#ffffff;
  --side-bg:#e0e0e0; --side-line:#a8a8a8; --side-hover:#d1d1d1; --side-sel:#c6c6c6;
  --font:"IBM Plex Sans","Segoe UI",Roboto,Arial,sans-serif;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#161616; --layer:#262626; --field:#393939; --accent-layer:#393939; --hover:#333333; --selected:#393939;
    --border:#393939; --border-strong:#6f6f6f; --text:#f4f4f4; --text2:#c6c6c6; --helper:#a8a8a8;
    --link:#78a9ff; --btn:#0f62fe; --btn-hover:#0353e9; --btn2:#6f6f6f; --btn2-hover:#5e5e5e; --focus:#ffffff;
    --error:#fa4d56; --success:#42be65;
    --tag-red-bg:#a2191f; --tag-red:#ffd7d9; --tag-green-bg:#0e6027; --tag-green:#a7f0ba; --tag-blue-bg:#0043ce; --tag-blue:#d0e2ff;
    --tag-gray-bg:#525252; --tag-gray:#f4f4f4; --warn-bg:#483700; --warn:#fddc69; --inv-bg:#f4f4f4; --inv-text:#161616;
    --side-bg:#262626; --side-line:#525252; --side-hover:#353535; --side-sel:#474747;
  }
}
:root[data-theme="dark"]{
  --bg:#161616; --layer:#262626; --field:#393939; --accent-layer:#393939; --hover:#333333; --selected:#393939;
  --border:#393939; --border-strong:#6f6f6f; --text:#f4f4f4; --text2:#c6c6c6; --helper:#a8a8a8;
  --link:#78a9ff; --btn:#0f62fe; --btn-hover:#0353e9; --btn2:#6f6f6f; --btn2-hover:#5e5e5e; --focus:#ffffff;
  --error:#fa4d56; --success:#42be65;
  --tag-red-bg:#a2191f; --tag-red:#ffd7d9; --tag-green-bg:#0e6027; --tag-green:#a7f0ba; --tag-blue-bg:#0043ce; --tag-blue:#d0e2ff;
  --tag-gray-bg:#525252; --tag-gray:#f4f4f4; --warn-bg:#483700; --warn:#fddc69; --inv-bg:#f4f4f4; --inv-text:#161616;
    --side-bg:#262626; --side-line:#525252; --side-hover:#353535; --side-sel:#474747;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:20px;letter-spacing:.16px}
button,input,select{font:inherit;color:inherit;letter-spacing:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
.num{font-variant-numeric:tabular-nums}

/* UI shell */
.shell{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;height:48px;background:#161616;color:#f4f4f4;display:flex;align-items:center;gap:8px;padding-inline:8px 16px;border-bottom:1px solid #393939}
.shell .menu{width:48px;height:48px;border:0;background:none;color:#f4f4f4;display:grid;place-items:center}
.shell .menu:hover{background:#2c2c2c}
.shell .menu:focus-visible,.shell .rsw button:focus-visible{outline-color:#fff}
.shell .pname{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.shell .pname b{font-weight:600}
.shell .sp{flex:1}
.rsw{display:inline-flex}
.rsw button{height:32px;padding:0 12px;border:1px solid #6f6f6f;background:transparent;color:#c6c6c6;font-size:14px}
.rsw button+button{border-left:0}
.rsw button[aria-pressed="true"]{background:#f4f4f4;color:#161616;border-color:#f4f4f4}
.side{position:fixed;top:calc(48px + env(safe-area-inset-top,0px));bottom:0;left:0;width:256px;background:var(--side-bg);border-right:1px solid var(--side-line);overflow-y:auto;z-index:15;transform:translateX(-100%);transition:transform .11s;padding-block:0 16px}
.side.open{transform:none}
.navg{font-size:12px;line-height:16px;letter-spacing:.32px;color:var(--text2);padding:12px 16px 4px;margin-top:8px;border-top:1px solid var(--side-line)}
.navg:first-child{border-top:0;margin-top:0;padding-top:16px}
.side>.navi:first-child{margin-top:8px}
.navi{display:flex;align-items:center;width:100%;min-height:32px;padding:0 16px 0 13px;border:0;border-left:3px solid transparent;background:none;text-align:left;font-weight:600;font-size:14px;line-height:18px;color:var(--text2)}
.navi:hover{background:var(--side-hover);color:var(--text)}
.navi[aria-current="page"]{background:var(--side-sel);color:var(--text);border-left-color:var(--link)}
@media (pointer:coarse){.navi{min-height:44px}}
main{padding-inline:16px;padding-block:24px 64px}
#app{max-width:1120px;display:flex;flex-direction:column;gap:24px}
@media (min-width:672px){main{padding-inline:32px}}
@media (min-width:1056px){.side{transform:none}.shell .menu{display:none}.shell{padding-left:16px}main{margin-left:256px}}
@media (prefers-reduced-motion:reduce){.side{transition:none}}

/* типографика */
h1{font-size:28px;line-height:36px;font-weight:400;margin:0;letter-spacing:0;text-wrap:balance}
h2{font-size:16px;line-height:22px;font-weight:600;margin:0 0 12px;letter-spacing:0}
.hint{color:var(--text2);margin:4px 0 0;max-width:70ch}
.note{font-size:12px;line-height:16px;letter-spacing:.32px;color:var(--helper);margin:0;max-width:80ch}

/* кнопки */
.btn{display:inline-flex;align-items:center;min-height:48px;padding:0 64px 0 16px;border:0;background:var(--btn);color:#fff;text-align:left}
.btn:hover{background:var(--btn-hover)}
.btn.sec{background:var(--btn2)}
.btn.sec:hover{background:var(--btn2-hover)}
.btn.ter{background:transparent;color:var(--link);border:1px solid var(--link)}
.btn.ter:hover{background:var(--btn);color:#fff;border-color:var(--btn)}
.btn.ghost{background:transparent;color:var(--link);padding:0 16px}
.btn.ghost:hover{background:var(--hover)}
.btn.sm{min-height:32px;padding:0 16px}
.btn:disabled{opacity:.4;cursor:not-allowed}
.btn:focus-visible{outline:2px solid var(--focus);outline-offset:-4px;box-shadow:inset 0 0 0 1px var(--focus),inset 0 0 0 2px var(--layer)}
.linkb{border:0;background:none;padding:0;color:var(--link);text-decoration:underline;font-size:inherit}
.row-actions{display:flex;flex-wrap:wrap;gap:16px;align-items:center}

/* поля */
.field{display:flex;flex-direction:column;gap:8px;min-width:0}
.field label,.flabel{font-size:12px;line-height:16px;letter-spacing:.32px;color:var(--text2)}
.field input,.field select{height:40px;width:100%;border:0;border-bottom:1px solid var(--border-strong);background:var(--layer);padding:0 16px;border-radius:0}
.on-layer .field input,.on-layer .field select{background:var(--field)}
.field input:focus,.field select:focus,.qin:focus{outline:2px solid var(--focus);outline-offset:-2px}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px 16px}
.check{display:flex;align-items:center;gap:8px}
.check input{width:16px;height:16px;accent-color:var(--text)}
.switcher{display:inline-flex;flex-wrap:wrap}
.switcher button{height:40px;padding:0 16px;border:1px solid var(--inv-bg);border-left-width:0;background:transparent;color:var(--text2)}
.switcher button:first-child{border-left-width:1px}
.switcher button:hover{background:var(--hover);color:var(--text)}
.switcher button[aria-pressed="true"]{background:var(--inv-bg);color:var(--inv-text)}

/* плитки */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}
.tile{display:flex;flex-direction:column;justify-content:space-between;gap:24px;min-height:112px;padding:16px;border:0;background:var(--layer);text-align:left;color:var(--text)}
.tile:hover{background:var(--hover)}
.tile b{display:block;font-size:16px;line-height:22px;font-weight:600;letter-spacing:0}
.tile span{color:var(--text2)}
.tile svg{align-self:flex-end;color:var(--link)}
.tile.pri{background:var(--btn);color:#fff}
.tile.pri:hover{background:var(--btn-hover)}
.tile.pri span,.tile.pri svg{color:#fff}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1px;background:var(--border);border:1px solid var(--border)}
.stats div{background:var(--layer);padding:16px}
.stats small{display:block;font-size:12px;line-height:16px;letter-spacing:.32px;color:var(--text2)}
.stats b{display:block;font-size:20px;line-height:28px;font-weight:400;letter-spacing:0;white-space:nowrap;margin-top:4px}
.panel{background:var(--layer);padding:16px;display:flex;flex-direction:column;gap:16px}

/* таблицы */
.scroll{overflow-x:auto}
.dt{border-collapse:collapse;width:100%;background:var(--layer)}
.dt th{background:var(--accent-layer);font-weight:600;text-align:left;padding:14px 16px;white-space:nowrap;vertical-align:top}
.dt td{padding:10px 16px;border-bottom:1px solid var(--border);vertical-align:middle}
.dt tbody tr:hover td{background:var(--hover)}
.dt .r{text-align:right;white-space:nowrap}
.dt td small{display:block;color:var(--text2);font-size:12px;line-height:16px}
.dt tfoot td{font-weight:600;border-bottom:0;background:var(--layer)}
.dt tr.click{cursor:pointer}
.qin{width:96px;height:32px;border:0;border-bottom:1px solid var(--border-strong);background:var(--field);text-align:right;padding:0 8px;border-radius:0}
.tag{display:inline-flex;align-items:center;height:24px;padding:0 8px;border-radius:12px;font-size:12px;letter-spacing:.32px;white-space:nowrap;margin-left:8px;vertical-align:middle}
.tag.red{background:var(--tag-red-bg);color:var(--tag-red)} .tag.green{background:var(--tag-green-bg);color:var(--tag-green)}
.tag.blue{background:var(--tag-blue-bg);color:var(--tag-blue)} .tag.gray{background:var(--tag-gray-bg);color:var(--tag-gray)}
.tag.warn{background:var(--warn-bg);color:var(--warn)}
.tag.demo{background:#f1c21b;color:#161616;font-weight:600}
.plus{color:var(--success)} .minus{color:var(--error)}
.list{display:flex;flex-direction:column;border-top:1px solid var(--border)}
.pick{display:flex;justify-content:space-between;align-items:center;gap:16px;width:100%;min-height:56px;padding:8px 16px;border:0;border-bottom:1px solid var(--border);background:var(--layer);text-align:left}
.pick:hover{background:var(--hover)}
.pick b{font-weight:600}
.pick small{display:block;color:var(--text2);font-size:12px;line-height:16px}
.pick .rt{text-align:right;white-space:nowrap;color:var(--text2)}
.chosen{display:flex;justify-content:space-between;align-items:center;gap:16px;background:var(--layer);border-left:3px solid var(--link);padding:12px 16px}
.chosen small{display:block;color:var(--text2)}
.bar{position:sticky;bottom:env(safe-area-inset-bottom,0px);display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;background:var(--bg);border-top:1px solid var(--border-strong);padding:12px 0}
.bar .tot{display:flex;gap:24px;flex-wrap:wrap}
.bar small{display:block;font-size:12px;color:var(--text2)}
.bar b{font-size:20px;line-height:28px;font-weight:400;white-space:nowrap}
.sums{display:flex;flex-direction:column;background:var(--layer)}
.sums div{display:flex;justify-content:space-between;gap:16px;padding:12px 16px;border-bottom:1px solid var(--border)}
.sums span{color:var(--text2)}
.sums .main{font-weight:600}
.sums .main span{color:var(--text)}
.notif{border-left:3px solid var(--link);background:var(--layer);padding:12px 16px;max-width:90ch}
.notif.warn{border-left-color:#f1c21b;background:var(--warn-bg);color:var(--warn)}
.nav{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.nav b{font-size:16px;font-weight:600}
.chart{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;align-items:end;height:160px;border-bottom:1px solid var(--border-strong);padding-inline:8px}
.chart .col{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;height:100%}
.chart .col i{display:block;width:100%;max-width:48px;background:var(--link);min-height:2px}
.chart .col.today i{background:var(--text2)}
.chart .col small{font-size:12px}
.days{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;text-align:center;font-size:12px;color:var(--text2);margin-top:4px;padding-inline:8px}
pre.code{margin:0;background:var(--field);padding:16px;overflow-x:auto;font:12px/16px "IBM Plex Mono",Menlo,Consolas,monospace;color:var(--text)}
details summary{cursor:pointer;color:var(--link)}
#toast{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));background:var(--inv-bg);color:var(--inv-text);border-left:3px solid #42be65;padding:14px 16px;max-width:min(420px,calc(100% - 32px));z-index:30}

/* бумажные документы: бумага всегда белая, чернила чёрные */
#app.widedoc{max-width:calc(210mm + 2px)}
.sheetwrap{overflow-x:auto}
.sheet{width:210mm;min-height:297mm;background:#fff;color:#000;padding:5mm 9mm;display:flex;flex-direction:column;border:1px solid #c6c6c6;font-family:"Times New Roman",Times,serif;font-size:8pt;line-height:1.2;letter-spacing:0}
.z2{flex:1 1 0;display:flex;flex-direction:column;gap:1.1mm;min-height:0}
.sheet.long{min-height:0}
.sheet.long .z2{flex:none}
.z2 .annex{text-align:right;font-size:6pt;line-height:1.05}
.z2 .band{display:flex;justify-content:space-between;align-items:flex-end;gap:6mm}
.z2 .org{display:flex;align-items:flex-end;gap:2mm;flex:1}
.z2 .org u{flex:1;text-decoration:none;border-bottom:.3mm solid #000;padding:0 1mm;font-weight:bold}
.z2 table{border-collapse:collapse;font-size:7.5pt;color:#000}
.z2 td{border:.3mm solid #000;padding:.6mm 1mm;text-align:center;vertical-align:middle}
.z2 .iin td{min-width:30mm;font-weight:bold}
.z2 .iin td:first-child{border:0;font-weight:normal;min-width:0}
.z2 .ttl{text-align:center;font-weight:bold;font-size:9.5pt;text-transform:uppercase;margin:.5mm 0}
.z2 .wide{width:100%}
.z2 table.wide:not(.goods) td:nth-child(-n+2){width:31%;font-size:7pt}
.z2 table.wide:not(.goods) tr:first-child td{font-size:6.2pt;line-height:1.1}
.z2 .numrow{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:4mm}
.z2 .numrow .ttl{grid-column:2;margin:0}
.z2 .numrow table{grid-column:3;justify-self:end}
.z2 .goods tr:first-child td:nth-child(2){width:37%}
.z2 .goods td:nth-child(2){text-align:left}
.z2 .goods td.r{text-align:right;white-space:nowrap}
.z2 .goods tr.n td{font-size:6.5pt;padding:0}
.z2 .words u{text-decoration:none;border-bottom:.3mm solid #000;padding:0 1mm;font-style:italic}
.z2 .signs{display:grid;grid-template-columns:1fr 1fr;gap:8mm}
.z2 .signs p{margin:0 0 .3mm}
.z2 .signs small{display:flex;gap:7mm;font-size:6pt;margin:-.4mm 0 .8mm;padding-left:24mm}
.cut{display:flex;align-items:center;gap:3mm;margin:2mm -9mm;font-family:var(--font);font-size:7pt;color:#444}
.cut::before,.cut::after{content:"";flex:1;border-top:.3mm dashed #000}
.taxdoc{font-size:10.5pt;line-height:1.3;display:flex;flex-direction:column;gap:5mm;padding:6mm 4mm}
.taxdoc h3{font-size:13pt;text-align:center;margin:0;text-transform:uppercase}
.taxdoc p{margin:0}
.taxdoc .c{text-align:center}
.taxdoc table{border-collapse:collapse;width:100%;font-size:10pt;color:#000}
.taxdoc td,.taxdoc th{border:.3mm solid #000;padding:1.3mm 2mm;text-align:right;font-weight:normal;vertical-align:top}
.taxdoc th{text-align:center;font-size:9pt}
.taxdoc td:first-child{text-align:left}
.taxdoc .l td{text-align:left}
.taxdoc .l td:nth-child(2){text-align:right;white-space:nowrap}
.taxdoc tr.t td{font-weight:bold}
.taxdoc .sum{font-size:13pt;font-weight:bold;border:.5mm solid #000;padding:3mm 4mm;display:flex;justify-content:space-between;gap:6mm}
.taxdoc .fine{font-size:8.5pt}
.way .f td{text-align:left}
.way .f td:first-child{text-align:center;width:11mm}
.way .f td:nth-child(2){width:46%}
.way .f td:nth-child(3){font-weight:bold}
.way .d td{text-align:center}
.way .d td:nth-child(2){text-align:left}
.way .sg{display:grid;grid-template-columns:1fr 1fr;gap:5mm 10mm;font-size:10pt}
@page{size:A4 portrait;margin:0}
@media print{
  body{background:#fff}
  .shell,.side,.noprint,#toast{display:none!important}
  main{margin:0;padding:0}
  #app{max-width:none;gap:0}
  .sheetwrap{overflow:visible}
  .sheet{border:0;height:297mm;min-height:0}
  .sheetwrap+.sheetwrap{break-before:page}
  .sheet.long{height:auto}
  .sheet.long .cut{display:none}
  .sheet.long .z2+.cut+.z2{break-before:page;padding-top:7mm}
}

/* ---- рабочая версия: вход, пользователь, мелочи ---- */
.shell .who{font-size:12px;color:#c6c6c6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40vw}
.shell .out{height:32px;padding:0 12px;border:1px solid #6f6f6f;background:transparent;color:#f4f4f4;font-size:14px}
.shell .out:hover{background:#2c2c2c}
body.anon .shell .menu,body.anon .side,body.anon .shell .who,body.anon .shell .out{display:none}
body.anon main{margin-left:0}
.login{max-width:560px;margin:10vh auto 0;background:var(--layer);padding:48px;display:flex;flex-direction:column;gap:24px;border-top:3px solid var(--btn)}
.login .field input{height:48px;font-size:16px}
.login .btn{min-height:56px;font-size:16px;margin-top:8px}
@media (max-width:600px){.login{padding:32px 16px;margin-top:4vh}}
.login h1{font-size:28px}
.login .btn{width:100%}
.err{color:var(--error);min-height:20px;margin:0}
.loading{color:var(--text2);padding:24px 0}
.normgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px}
.danger{color:var(--error)}

.sheetwrap+.sheetwrap{margin-top:16px}

/* вход: форма по центру экрана, поля с серой подложкой по Carbon */
body.anon main{padding-block:0}
body.anon #app{max-width:none;min-height:calc(100vh - 48px);display:flex;align-items:center;justify-content:center;padding-block:24px}
body.anon .login{margin:0;width:100%}
.login .field input{background:var(--field)}

/* таблицы: вертикальные линии между столбцами, чтобы цифры не сливались */
.dt{border:1px solid var(--border-strong)}
.dt th,.dt td{border-right:1px solid var(--grid,#c6c6c6)}
.dt th:last-child,.dt td:last-child{border-right:0}
.dt th{border-bottom:1px solid var(--border-strong)}
.dt td{border-bottom-color:var(--grid,#c6c6c6)}
.dt tfoot td{border-top:1px solid var(--border-strong)}
:root{--grid:#c6c6c6}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--grid:#525252}}
:root[data-theme="dark"]{--grid:#525252}

/* лист накладных: магазины с раскрывающейся продукцией */
.field.inline{flex-direction:row;align-items:center;gap:8px}
.field.inline label{white-space:nowrap}
.field.inline input,.field.inline select{width:auto;min-width:180px;height:32px}
.shoprow.open td{background:var(--accent-layer);font-weight:600;border-bottom-color:var(--border-strong)}
.dt tbody tr.shoprow.open:hover td{background:var(--accent-layer)}
.dt tr.exp>td{background:var(--bg);padding:0;border-bottom:2px solid var(--border-strong)}
.dt tbody tr.exp:hover>td{background:var(--bg)}
.expbox{display:flex;flex-direction:column;gap:12px;padding:12px 16px 16px}
.dt.compact th{padding:8px 12px}
.dt.compact td{padding:4px 12px}
.dt.compact tbody tr:hover td{background:var(--hover)}
.qin.pos{width:64px}
.dt .btn.ghost.sm{min-height:28px;padding:0 8px}

[hidden]{display:none!important}

.taxdoc .card td{padding:2.2mm 3mm;font-size:11pt}
.taxdoc .card td:first-child{width:42%;color:#333}
.taxdoc .l.card td:nth-child(2){text-align:left;white-space:normal;font-weight:bold}

/* лист накладных не «прыгает»: ширины колонок постоянные, прокрутка к полю — только когда оно не видно */
.sheet-t,.sheet-t .compact{table-layout:fixed}
.sheet-t{min-width:860px}
.sheet-t td{overflow-wrap:anywhere}
.qin,.expbox .btn{scroll-margin:120px 0}
html{overflow-anchor:auto}

/* главная хозяина: графики */
.alerts{display:flex;flex-direction:column;background:var(--layer)}
.alerts>div{padding:12px 16px;border-bottom:1px solid var(--border);line-height:22px}
.chart30{display:grid;grid-template-columns:repeat(30,1fr);gap:2px;align-items:end;height:180px;border-bottom:1px solid var(--border-strong);padding-top:20px}
.chart30 .c{position:relative;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%}
.chart30 .c i{display:block;width:100%;background:var(--link);border-radius:2px 2px 0 0}
.chart30 .c.today i{background:var(--text2)}
.chart30 .c:hover i{filter:brightness(1.15)}
.chart30 .c small{position:absolute;top:-18px;font-size:12px;color:var(--text);white-space:nowrap}
.axis30{display:grid;grid-template-columns:repeat(30,1fr);gap:2px;font-size:11px;color:var(--text2);margin-top:4px}
.axis30 span{white-space:nowrap;overflow:visible}
[data-tip]{position:relative}
[data-tip]:hover::after{content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 6px);transform:translateX(-50%);background:var(--inv-bg);color:var(--inv-text);padding:6px 10px;font-size:12px;line-height:16px;white-space:nowrap;z-index:5;pointer-events:none;font-style:normal;font-weight:400}
.chart30 .c:nth-child(-n+5)[data-tip]:hover::after{left:0;transform:none}
.chart30 .c:nth-last-child(-n+6)[data-tip]:hover::after{left:auto;right:0;transform:none}
.two-col{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px}
.hbar{display:grid;grid-template-columns:minmax(120px,38%) 1fr 96px;gap:12px;align-items:center;padding:6px 0}
.hbar>span{overflow-wrap:anywhere}
.hbar i{display:block;height:12px;background:var(--field)}
.hbar i b{display:block;height:100%;background:var(--link);border-radius:0 2px 2px 0}
.hbar em{font-style:normal;text-align:right;white-space:nowrap}
.hbar[data-tip]:hover::after{left:38%;transform:none}
.permlist{display:flex;flex-direction:column;gap:10px}
.permlist .check{align-items:flex-start}
.permlist .check input{margin-top:3px;flex:none}
.taxdoc.poa{font-size:10pt;gap:3mm}
.taxdoc.poa small{font-size:7.5pt}
.taxdoc.poa u{text-decoration:none;border-bottom:.3mm solid #000;padding:0 1mm}
.taxdoc.poa td,.taxdoc.poa th{padding:1mm 2mm}

.stats.k6{grid-template-columns:repeat(3,1fr)}
@media (max-width:720px){.stats.k6{grid-template-columns:repeat(2,1fr)}}

/* лист накладных таблицей «магазины × продукция» — как бумажный маршрутный лист */
.gridwrap{overflow:auto;max-height:calc(100vh - 170px);border:1px solid var(--border-strong);background:var(--layer)}
.grid-t{border:0;border-collapse:separate;border-spacing:0;width:max-content;min-width:100%}
.grid-t th,.grid-t td{border-right:1px solid var(--grid);border-bottom:1px solid var(--grid);padding:0 8px;height:34px}
.grid-t thead th{position:sticky;top:0;z-index:3;background:var(--accent-layer);border-bottom:1px solid var(--border-strong);vertical-align:bottom;padding:8px}
.grid-t .gh{width:46px;min-width:46px;max-width:46px;padding:8px 0;text-align:center}
.grid-t .gh span{display:inline-block;writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;max-height:190px;overflow:hidden;font-weight:600;font-size:13px;line-height:16px}
.grid-t .gh.on{background:var(--link);color:#fff}
.grid-t .gfix{position:sticky;z-index:2;background:var(--layer)}
.grid-t thead .gfix{z-index:4;background:var(--accent-layer)}
.grid-t .gno{left:0;width:44px;min-width:44px}
.grid-t .gname{left:44px;min-width:190px;max-width:230px;border-right:1px solid var(--border-strong)}
.grid-t .gname b{font-weight:600}
.grid-t .gname small{display:inline;margin-left:6px}
.grid-t .gname small .tag{height:18px;font-size:11px}
.grid-t td.gc{padding:0;width:46px}
.grid-t .gin{width:46px;height:34px;border:0;background:transparent;text-align:center;font-variant-numeric:tabular-nums;border-radius:0;padding:0}
.grid-t .gin:focus{outline:2px solid var(--focus);outline-offset:-2px;background:var(--field)}
.grid-t tbody tr:focus-within td,.grid-t tbody tr:focus-within .gfix{background:var(--hover)}
.grid-t tbody tr:hover td{background:var(--hover)}
.grid-t tfoot td{position:sticky;bottom:0;z-index:2;background:var(--accent-layer);font-weight:600;border-top:1px solid var(--border-strong)}
.grid-t tfoot .gfix{z-index:4;background:var(--accent-layer)}
.grid-t .gact{white-space:nowrap;font-size:12px}

/* ---------- аналитическая панель хозяина ---------- */
.dash{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:16px;align-items:stretch}
.dcard{position:relative;background:var(--layer);border-radius:12px;padding:20px 24px;box-shadow:0 1px 2px rgba(0,0,0,.06),0 4px 16px rgba(0,0,0,.04)}
.dcard>small,.kpi>small{display:block;font-size:14px;line-height:20px;color:var(--text2)}
.kgo{position:absolute;top:14px;right:14px;width:28px;height:28px;border-radius:50%;border:1.5px solid currentColor;background:transparent;color:var(--link);font-size:18px;line-height:1;cursor:pointer;display:grid;place-items:center;padding:0 0 2px}
.kgo:hover{background:rgba(127,127,127,.18)} .kgo:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.hero-row{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:8px 0 14px;border-bottom:2px solid var(--link)}
.hero-n{font-size:clamp(36px,5vw,60px);line-height:1;font-weight:600;color:var(--link);letter-spacing:-.5px;white-space:nowrap} .hero-n i{font-style:normal;font-size:.5em;font-weight:400}
.hero-side{display:flex;flex-direction:column;align-items:flex-end;text-align:right} .hero-side b{font-size:28px;line-height:32px;font-weight:600} .hero-side span{font-size:12px;color:var(--text2)}
.hero-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin-top:12px;font-size:12px;color:var(--text2)} .hero-chips span+.trend{margin-left:12px}
.trend{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;border-radius:11px;font-size:12px;font-weight:600}
.trend.good{background:var(--tag-green-bg);color:var(--tag-green)} .trend.bad{background:var(--tag-red-bg);color:var(--tag-red)}
.dcard h3{font-size:16px;line-height:22px;font-weight:600;margin:20px 0 8px}
.mix{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,260px);gap:24px;align-items:center}
.mixrow{display:grid;grid-template-columns:minmax(0,1fr) auto 76px;gap:12px;align-items:center;padding:9px 10px;border-radius:6px} .mixrow:hover{background:var(--hover)}
.mixrow span{overflow-wrap:anywhere} .mixrow em{display:block;font-style:normal;font-size:12px;color:var(--helper)} .mixrow b{font-size:18px;font-weight:600;white-space:nowrap}
.mixrow u{text-decoration:none;font-size:16px;font-weight:600;text-align:left} .mixrow u i{display:block;height:4px;border-radius:2px;background:var(--field);margin-top:4px;overflow:hidden} .mixrow u s{display:block;height:100%;border-radius:2px}
.donut{position:relative;max-width:260px;justify-self:center;width:100%} .donut svg{display:block;width:100%;height:auto} .donut circle{transition:stroke-width .15s} .donut circle:hover{stroke-width:30}
.donut-c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;text-align:center} .donut-c small{font-size:12px;color:var(--text2)} .donut-c b{font-size:20px;font-weight:600}
.kcol{display:grid;grid-template-rows:repeat(3,1fr);gap:16px}
.kpi{position:relative;border-radius:12px;padding:20px 24px;color:#fff;display:flex;flex-direction:column;justify-content:space-between;gap:8px;box-shadow:0 6px 18px rgba(0,0,0,.14)}
.kpi>small{color:rgba(255,255,255,.92);font-size:16px;line-height:22px;font-weight:600;padding-right:36px} .kpi>span{font-size:12px;line-height:16px;color:rgba(255,255,255,.9)} .kpi .kgo{color:#fff}
.kpi.green{background:linear-gradient(135deg,#24a148,#0e7a34)} .kpi.red{background:linear-gradient(135deg,#fa6b6b,#da1e28)} .kpi.blue{background:linear-gradient(135deg,#4589ff,#0f62fe)}
.krow{display:flex;align-items:center;justify-content:space-between;gap:12px} .krow>b{font-size:clamp(24px,2.4vw,34px);line-height:1.1;font-weight:600;white-space:nowrap}
.kring{position:relative;width:72px;height:72px;flex:none} .kring svg{width:100%;height:100%} .kring b{position:absolute;inset:0;display:grid;place-items:center;font-size:15px;font-weight:600}
.kspark{width:120px;height:42px;flex:none}
.dstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px}
.dstats .dcard{padding:16px 20px;display:flex;flex-direction:column;gap:6px} .dstats b{font-size:28px;line-height:32px;font-weight:600} .dstats span:not(.tag){font-size:12px;line-height:16px;color:var(--text2)} .dstats .tag{align-self:flex-start}
.hbar i b.debt{background:var(--error)}
@media (max-width:1100px){.dash{grid-template-columns:1fr}.kcol{grid-template-rows:none;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}}
@media (max-width:640px){.mix{grid-template-columns:1fr}.donut{max-width:200px}.hero-side{align-items:flex-start;text-align:left}}

/* ---------- сравнение смен ---------- */
.shiftcards{grid-template-rows:none;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.kbadge{flex:none;text-align:center;font-size:22px;font-weight:600;line-height:1.1;padding:8px 12px;border-radius:10px;background:rgba(255,255,255,.2)} .kbadge i{display:block;font-style:normal;font-size:11px;font-weight:400;opacity:.95}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px;vertical-align:baseline}
.dvrow{display:grid;grid-template-columns:minmax(120px,22%) 1fr;gap:16px;padding:10px 0;border-bottom:1px solid var(--border);align-items:center} .dvrow:last-child{border-bottom:0} .dvname{font-weight:600;overflow-wrap:anywhere}
.dv{position:relative;display:grid;grid-template-columns:minmax(80px,120px) 1fr 1fr minmax(170px,250px);gap:0;align-items:center;padding:3px 0;font-size:14px}
.dv>span{color:var(--text2);padding-right:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} .dv i{display:flex;height:12px;background:var(--field)} .dv i.neg{justify-content:flex-end;border-right:1px solid var(--border-strong)}
.dv i b{display:block;height:100%} .dv i.neg b{background:var(--success);border-radius:2px 0 0 2px} .dv i.pos b{border-radius:0 2px 2px 0} .dv em{font-style:normal;text-align:right;white-space:nowrap;padding-left:12px}
.dv[data-tip]:hover::after,.dchart .c[data-tip]:hover::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 4px);left:50%;transform:translateX(-50%);background:var(--inv-bg);color:var(--inv-text);font-size:12px;line-height:16px;padding:6px 10px;white-space:nowrap;z-index:5;pointer-events:none}
.dchart{display:grid;gap:2px;height:220px} .dchart .c{position:relative;display:grid;grid-template-rows:1fr 1fr;height:100%} .dchart .c:hover{background:var(--hover)}
.dchart .up{display:flex;align-items:flex-end;border-bottom:1px solid var(--border-strong)} .dchart .dn{display:flex;align-items:flex-start} .dchart i{display:block;width:100%} .dchart .up i{border-radius:2px 2px 0 0} .dchart .dn i{border-radius:0 0 2px 2px;opacity:.45}
.dchart .c:nth-child(-n+6)[data-tip]:hover::after{left:0;transform:none} .dchart .c:nth-last-child(-n+8)[data-tip]:hover::after{left:auto;right:0;transform:none}
.legend{display:flex;flex-wrap:wrap;gap:6px 20px;margin-top:12px;font-size:12px;color:var(--text2)}
@media (max-width:760px){.dvrow{grid-template-columns:1fr;gap:4px}.dv{grid-template-columns:70px 1fr 1fr;row-gap:2px}.dv em{grid-column:1/-1;text-align:left;padding-left:70px}}
.axis2{display:flex;justify-content:space-between;gap:12px;margin-top:6px;font-size:12px;color:var(--text2)}

/* ---------- динамика магазинов ---------- */
.kpi.orange{background:linear-gradient(135deg,#ff9d4d,#eb6200)}
.kbadge{white-space:nowrap}
.sp2{display:block;width:132px;height:30px}
td.chips{line-height:30px} td.chips .tag{white-space:normal;height:auto;min-height:24px;padding:2px 8px;line-height:18px}
td small.minus{display:block;font-size:12px;color:var(--error)} td.r small{display:block;font-size:12px;font-weight:400}
.shiftcards.k4{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))} .k4 .krow>b{font-size:clamp(22px,2vw,28px)} .k4 .kbadge{font-size:16px;padding:6px 10px}
.btn.danger{background:var(--error);color:#fff} .btn.danger:hover{filter:brightness(.9)}

/* ---------- «Требует внимания»: сигнальные карточки ---------- */
.acards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}
.acard{--ac:var(--error);position:relative;display:flex;flex-direction:column;gap:6px;background:var(--layer);border-radius:12px;padding:16px 20px 14px;border-top:4px solid var(--ac);box-shadow:0 1px 2px rgba(0,0,0,.06),0 4px 16px rgba(0,0,0,.04)}
.acard.warn{--ac:#f1c21b} .acard.gray{--ac:var(--border-strong)}
.ahead{display:flex;align-items:center;gap:8px} .ahead small{font-size:14px;line-height:18px;font-weight:600}
.aico{flex:none;width:10px;height:10px;border-radius:50%;background:var(--ac);box-shadow:0 0 0 4px color-mix(in srgb,var(--ac) 22%,transparent)}
.acard>b{font-size:24px;line-height:30px;white-space:nowrap;font-weight:600;color:var(--ac);letter-spacing:-.2px} .acard.warn>b,.acard.gray>b{color:var(--text)}
.asub{font-size:12px;line-height:16px;color:var(--text2);min-height:32px}
.amini{display:flex;flex-direction:column;gap:6px;margin:6px 0 4px}
.amini>div{display:grid;grid-template-columns:minmax(0,38%) 1fr auto;gap:8px;align-items:center;font-size:12px}
.amini span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap} .amini i{display:block;height:8px;border-radius:4px;background:var(--field);overflow:hidden} .amini i b{display:block;height:100%;border-radius:4px} .amini em{font-style:normal;white-space:nowrap;color:var(--text2)}
.acard .linkb{align-self:flex-start;margin-top:auto;padding-top:4px;font-size:14px}
