/* ==========================================================================
   Тема «Такси», v2.0
   Все цвета и размеры — переменные ниже. Старые классы страниц (.btn,
   .table, .alert, .form-group…) сохранены и перекрашены, поэтому
   страницы, ещё не переведённые на новые блоки, тоже выглядят «Такси».
   ========================================================================== */
@import url("/static/fonts/fonts.css");

:root{
  --font: 'PT Sans', 'Segoe UI', Arial, sans-serif;
  --mono: 'PT Mono', Consolas, 'Courier New', monospace;
  --fs: 15px;           /* всё на 10 % крупнее прежних 13–14 px */
  --fs-sm: 14px;
  --fs-xs: 13px;
  --row: 34px;          /* высота строки таблицы; личная настройка меняет --row-scale */
  --row-scale: 1;

  --bg: #f2f2f2;
  --panel: #ffffff;
  --panel-2: #f5f5f5;
  --line: #cfcfcf;
  --line-2: #e6e6e6;
  --line-3: #b5b5b5;
  --text: #262626;
  --text-strong: #1f1f1f;
  --muted: #5a5a5a;
  --faint: #8a8a8a;

  --accent: #ffd44d;         /* главная кнопка */
  --accent-line: #c99f00;
  --accent-soft: #fbe39a;    /* выбранный раздел */
  --sel: #fff1b8;            /* выбранная строка */
  --sel-soft: #fffbe8;

  --link: #0b57a4;
  --link-hover: #083e75;

  --ok: #2d7a24;   --ok-bg: #eef8ec;   --ok-line: #bcd9b7;
  --warn: #8a5300; --warn-bg: #fff8dc; --warn-line: #eadc9e;
  --bad: #b42323;  --bad-bg: #fbeeee;  --bad-line: #e0b3b3;
  --info-bg: #eef4fb; --info-line: #bcd0ea;

  --rail-w: 108px;
  --radius: 3px;
}

*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:var(--font);font-size:var(--fs);line-height:1.4;background:var(--bg);color:var(--text)}
a{color:var(--link);text-decoration:none}
a:hover{color:var(--link-hover);text-decoration:underline}
code{font-family:var(--mono);font-size:.92em;background:var(--panel-2);border:1px solid var(--line-2);padding:0 4px;border-radius:2px}
b,strong{font-weight:700}
h1{font-size:24px;font-weight:700;color:var(--text-strong);margin:0 0 12px}
h2{font-size:24px;font-weight:700;color:var(--text-strong);margin:0 0 14px}
h3{font-size:18px;font-weight:700;color:var(--text-strong);margin:18px 0 10px}
h4{font-size:16px;font-weight:700;margin:16px 0 8px}
p{margin:0 0 10px}
ul,ol{margin:0 0 10px 22px}
hr{border:none;border-top:1px solid var(--line-2);margin:14px 0}
.muted{color:var(--faint)}
.mono{font-family:var(--mono);font-size:var(--fs-sm)}
.gt{font-family:var(--mono);font-size:var(--fs-sm);color:var(--faint);white-space:nowrap}
.gt b{color:var(--text-strong)}
.nowrap{white-space:nowrap}
.num,td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
.green,.ok{color:var(--ok)} .orange,.warn{color:var(--warn)} .red,.bad{color:var(--bad)}
.hidden{display:none!important}
.grow{flex-grow:1}
.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.stack{display:flex;flex-direction:column;gap:10px}
.sep{height:1px;background:var(--line-2);margin:8px 0}

/* ── каркас: шапка, колонка разделов, рабочая область ─────────────────── */
.app{min-height:100vh;display:flex;flex-direction:column}
.bar{height:52px;flex-shrink:0;display:flex;align-items:center;gap:14px;padding:0 16px;border-bottom:1px solid #d3d3d3;background:var(--bg);position:sticky;top:0;z-index:50}
.brand{display:flex;align-items:center;gap:8px;font-size:21px;font-weight:700;color:var(--text-strong);text-decoration:none;white-space:nowrap}
.brand:hover{text-decoration:none;color:var(--text-strong)}
.brand img{width:34px;height:34px;object-fit:contain}
.bar .search{width:440px;max-width:32vw;margin-left:20px}
.bar .who{font-size:var(--fs);color:#444;white-space:nowrap}
.bar .who:hover{color:var(--link)}
.body{flex-grow:1;display:flex;min-height:0}
.rail{width:var(--rail-w);flex-shrink:0;padding:8px;display:flex;flex-direction:column;gap:4px;border-right:1px solid #d3d3d3;position:sticky;top:52px;height:calc(100vh - 52px)}
.sec{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;font-size:var(--fs-sm);line-height:17px;text-align:center;color:#3a3a3a;text-decoration:none;border-radius:4px}
.sec:hover{background:#e6e6e6;text-decoration:none;color:var(--text-strong)}
.sec svg{width:28px;height:28px;fill:none;stroke:#666;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.sec.on{background:var(--accent-soft);color:var(--text-strong);font-weight:700}
.sec.on svg{stroke:var(--text-strong)}
.work{flex-grow:1;display:flex;flex-direction:column;padding:10px 12px 12px;min-width:0}
.tabs{display:flex;gap:4px;padding-left:4px;flex-wrap:wrap}
.tab{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;font-size:var(--fs-sm);border:1px solid var(--line);border-bottom:none;background:#e9e9e9;border-radius:4px 4px 0 0;color:#444;text-decoration:none;white-space:nowrap;max-width:260px;overflow:hidden;text-overflow:ellipsis}
.tab:hover{text-decoration:none;background:#f4f4f4;color:var(--text-strong)}
.tab.on{background:var(--panel);color:var(--text-strong);font-weight:700;position:relative;top:1px}
.tab .x{color:var(--faint);font-weight:400;padding:0 2px}
.tab .x:hover{color:var(--bad)}
.page{flex-grow:1;background:var(--panel);border:1px solid var(--line);padding:16px 18px 18px;min-width:0}
.page.split{display:flex;gap:0;padding:0}
.page.split > .menu{width:280px;flex-shrink:0;border-right:1px solid var(--line);padding:8px 0;background:var(--panel)}
.page.split > .content{flex-grow:1;min-width:0;padding:16px 18px 18px}
.menu .grp{padding:12px 14px 4px;font-size:var(--fs-xs);color:#737373;font-weight:700;letter-spacing:.3px;text-transform:uppercase}
.menu a{display:flex;align-items:center;height:34px;padding:0 14px;font-size:var(--fs);color:var(--text);text-decoration:none}
.menu a:hover{background:#f1f1f1}
.menu a.on{background:var(--accent-soft);font-weight:700}

/* заголовок формы со строкой шагов */
.head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:12px}
.head h1,.head h2{margin:0}
.head .sub{color:var(--muted);font-size:16px}
.steps{display:flex;align-items:center;margin-left:auto}
.st{display:flex;align-items:center;gap:8px;height:34px;padding:0 16px 0 12px;font-size:var(--fs);color:#8a8a8a;background:#f4f4f4;border:1px solid #dcdcdc;margin-left:-1px;text-decoration:none;white-space:nowrap}
.st i{font-style:normal;width:22px;height:22px;border-radius:11px;background:#d6d6d6;color:#fff;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center}
.st.done{color:var(--ok);background:var(--ok-bg);border-color:var(--ok-line)}
.st.done i{background:#4c8a44}
.st.on{color:var(--text-strong);background:var(--accent-soft);border-color:var(--accent-line);font-weight:700;position:relative;z-index:1}
.st.on i{background:var(--text-strong)}

/* ── кнопки ─────────────────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;padding:0 14px;font-family:inherit;font-size:var(--fs);line-height:1;border:1px solid var(--line-3);border-radius:var(--radius);background:#f4f4f4;color:var(--text);cursor:pointer;white-space:nowrap;text-decoration:none;font-weight:400;vertical-align:middle}
.btn:hover{background:#ebebeb;text-decoration:none;color:var(--text-strong)}
.btn:active{background:#e2e2e2}
.btn:focus-visible,.fld:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent-line);outline-offset:1px}
.btn[disabled],.btn.off{background:#f1f1f1;border-color:#d6d6d6;color:#a3a3a3;cursor:not-allowed}
.btn-primary,.btn.main{background:var(--accent);border-color:var(--accent-line);color:var(--text-strong);font-weight:700}
.btn-primary:hover,.btn.main:hover{background:#ffcb2b;color:var(--text-strong)}
.btn-primary[disabled],.btn.main[disabled]{background:#f7ecc4;border-color:#e2d19a;color:#a89b6a}
.btn-secondary{background:#f4f4f4}
.btn-success{background:#f4f4f4;color:var(--ok);border-color:var(--ok-line)}
.btn-warning{background:#fff4d6;color:var(--warn);border-color:var(--warn-line)}
.btn-danger,.btn.red{background:#fff;color:var(--bad);border-color:var(--bad-line)}
.btn-danger:hover,.btn.red:hover{background:var(--bad-bg);color:var(--bad)}
.btn-danger.solid{background:var(--bad);color:#fff;border-color:#8f1a1a;font-weight:700}
.btn-sm,.btn.sm{height:28px;padding:0 10px;font-size:var(--fs-sm)}
.btn.big{height:44px;padding:0 22px;font-size:17px}
.btn-full{width:100%}
.btn-logout{color:var(--link)}

/* иконка-кнопка с подсказкой (этап 21): название + 2–4 предложения */
.ib{position:relative;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;color:#3a3a3a;cursor:pointer;padding:0;vertical-align:middle;text-decoration:none}
.ib:hover{background:var(--sel);border-color:var(--accent-line);text-decoration:none}
.ib svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ib.bad{color:var(--bad)} .ib.bad:hover{background:var(--bad-bg);border-color:var(--bad-line)}
.ib.sm{width:28px;height:28px} .ib.sm svg{width:16px;height:16px}
.tip{position:fixed;z-index:1000;max-width:360px;padding:10px 12px;background:#2b2b2b;color:#fff;border-radius:4px;box-shadow:0 4px 14px rgba(0,0,0,.3);font-size:var(--fs-sm);line-height:20px;pointer-events:none}
.tip b{display:block;font-size:var(--fs);margin-bottom:3px}

/* ── поля ───────────────────────────────────────────────────────────── */
input,select,textarea,.fld{font-family:inherit;font-size:var(--fs);color:var(--text)}
.fld,input[type=text],input[type=password],input[type=number],input[type=search],input[type=date],input[type=email],select,textarea{height:34px;border:1px solid var(--line-3);border-radius:2px;padding:0 10px;background:#fff}
textarea{height:auto;padding:8px 10px;line-height:1.4}
input[type=file]{font-size:var(--fs-sm)}
input[type=checkbox],input[type=radio]{width:18px;height:18px;accent-color:#4c8a44;vertical-align:middle}
.lab,label{font-size:var(--fs);color:var(--muted)}
.form-group{margin-bottom:14px}
.form-group label{display:block;font-size:var(--fs-sm);font-weight:700;color:var(--muted);margin-bottom:5px}
.form-group input,.form-group select,.form-group textarea{width:100%}
.form-inline{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-top:12px}
.filter-bar{background:var(--panel);padding:12px 14px;border:1px solid var(--line);margin-bottom:14px}
.filter-form{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.filter-form input{flex:1;min-width:200px}
.tg{height:34px;padding:0 16px;font-family:inherit;font-size:var(--fs);border:1px solid var(--line-3);background:#fff;color:var(--text);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.tg:hover{background:#f6f6f6;text-decoration:none;color:var(--text-strong)}
.tg.on{background:var(--accent-soft);border-color:var(--accent-line);font-weight:700;color:var(--text-strong)}
.tg + .tg{margin-left:-1px}
.tg:first-child{border-radius:3px 0 0 3px}.tg:last-child{border-radius:0 3px 3px 0}
.seg{display:inline-flex}

/* ── таблицы в стиле 1С ─────────────────────────────────────────────── */
.table,.grid{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line-3)}
.table th,.grid th{height:var(--row);padding:0 10px;background:#eeeeee;border-right:1px solid #d6d6d6;border-bottom:1px solid var(--line-3);font-size:var(--fs-sm);color:#505050;font-weight:700;text-align:left;white-space:nowrap;position:relative}
.table td,.grid td{height:calc(var(--row) * var(--row-scale));padding:2px 10px;border-right:1px solid var(--line-2);border-bottom:1px solid var(--line-2);font-size:var(--fs);vertical-align:middle}
.table tr:hover td,.grid tr:hover td{background:#fafafa}
.table tr.sel td,.grid tr.sel td{background:var(--sel)}
.grid tr.sub td{background:#fafafa;font-size:var(--fs-sm)}
.reprint-row td{background:#fff8e1}
.table.compact td{height:28px}
.th-resize{position:absolute;right:-4px;top:0;width:8px;height:100%;cursor:col-resize;z-index:2}
.grid-wrap{border:1px solid var(--line-3);overflow:auto}
.grid-wrap > .grid{border:none}
.col-menu{position:absolute;z-index:60;background:#fff;border:1px solid var(--line-3);box-shadow:0 4px 14px rgba(0,0,0,.15);padding:8px 0;min-width:240px}
.col-menu label{display:flex;gap:8px;align-items:center;padding:5px 14px;color:var(--text);cursor:pointer}
.col-menu label:hover{background:#f4f4f4}
.status-line,.status{min-height:34px;display:flex;align-items:center;gap:20px;padding:6px 4px 0;font-size:var(--fs-sm);color:var(--muted);flex-wrap:wrap}
.pager{display:flex;gap:4px;align-items:center;flex-wrap:wrap;margin-top:10px}
.pager a,.pager span{min-width:32px;height:30px;padding:0 8px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);background:#fff;font-size:var(--fs-sm)}
.pager .on{background:var(--accent-soft);border-color:var(--accent-line);font-weight:700}

/* ── сообщения, метки ───────────────────────────────────────────────── */
.alert{padding:10px 14px;border:1px solid var(--info-line);background:var(--info-bg);margin-bottom:12px;font-size:var(--fs);line-height:1.45}
.alert-error,.alert.bad{background:var(--bad-bg);color:#7a1515;border-color:var(--bad-line)}
.alert-success,.alert.ok{background:var(--ok-bg);color:#1d4d19;border-color:var(--ok-line)}
.alert-warn,.alert.warn{background:var(--warn-bg);color:#5a4a00;border-color:var(--warn-line)}
.badge,.chip{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:3px;font-size:var(--fs-xs);font-weight:700;background:#eeeeee;color:#505050;white-space:nowrap}
.badge-admin{background:#fbe6bf;color:#6e4300}
.badge-operator,.badge-active{background:var(--ok-bg);color:var(--ok)}
.badge-blocked{background:var(--bad-bg);color:var(--bad)}
.chip.low{background:#fbe6bf;color:#6e4300}
.pill{display:inline-flex;align-items:center;height:30px;padding:0 12px;border:1px solid var(--line);border-radius:15px;font-size:var(--fs-sm);background:#fafafa;white-space:nowrap;gap:6px;text-decoration:none;color:var(--text)}
.pill.on{background:var(--sel);border-color:var(--accent-line);font-weight:700}
.summary-line{margin:4px 0 12px;font-size:var(--fs);color:var(--muted)}
.hint{font-size:var(--fs);line-height:21px;color:var(--muted);margin:0 0 10px}

/* ── карточки, блоки ────────────────────────────────────────────────── */
.box,.import-box,.settings-box,.stat-card,.filter-box{background:#fff;border:1px solid var(--line);padding:14px 16px;margin-bottom:14px}
.box h3,.import-box h3,.settings-box h3{margin-top:0}
.settings-box{max-width:640px}
.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-bottom:18px}
.stat-card{margin:0}
.stat-title{font-size:17px;font-weight:700;color:var(--text-strong);margin-bottom:8px}
.stat-row{display:flex;justify-content:space-between;padding:4px 0;font-size:var(--fs);border-bottom:1px solid var(--line-2)}
.stat-row:last-child{border:none}
.kpi{display:flex;flex-direction:column;gap:2px;padding:10px 16px;border:1px solid #d6d6d6;background:#fafafa;min-width:150px}
.kpi b{font-size:22px}
.kpi span{font-size:var(--fs-xs);color:#737373}
details > summary{cursor:pointer;list-style:none}
details > summary::-webkit-details-marker{display:none}
details > summary:before{content:'▸ ';color:var(--faint)}
details[open] > summary:before{content:'▾ '}
.fmt-table td,.fmt-table th{padding:4px 10px;font-size:var(--fs-sm);height:auto}

/* фраза дня */
.phrase-block{background:var(--warn-bg);border:1px solid var(--warn-line);padding:14px 18px;margin-bottom:16px}
.phrase-text{font-size:18px;line-height:26px;color:#5a4a00}
.logo-card{display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--line)}
.logo-card img{max-height:150px;max-width:100%}

/* товарные карточки старой печати (если где-то остались) */
.products-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.product-card{background:#fff;border:1px solid var(--line);padding:14px;display:flex;flex-direction:column;gap:6px}
.product-ip{font-size:var(--fs-xs);font-weight:700;color:#6e4300}
.product-name{font-size:var(--fs);font-weight:700;line-height:1.35;flex:1}
.product-gtin{font-size:var(--fs-xs);color:var(--faint);font-family:var(--mono)}
.product-stats{display:flex;gap:12px;font-size:var(--fs-sm)}

/* ── модальные окна ─────────────────────────────────────────────────── */
.modal{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:1000;display:flex;align-items:center;justify-content:center}
.modal.hidden{display:none}
.modal-box{background:#fff;border:1px solid var(--line-3);padding:22px 24px;width:520px;max-width:95vw;box-shadow:0 8px 40px rgba(0,0,0,.25)}
.modal-box h3{margin:0 0 6px}
.modal-subtitle{font-size:var(--fs);color:var(--muted);margin-bottom:16px}
.modal-buttons{display:flex;gap:10px;justify-content:flex-end;margin-top:18px}

/* ── вход ───────────────────────────────────────────────────────────── */
.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}
.login-box{width:400px;max-width:94vw;margin:60px auto;background:#fff;border:1px solid var(--line);padding:30px 32px}
.login-box h1{text-align:center;font-size:24px;margin-bottom:22px}
.login-logo{display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:10px}
.login-logo img{width:96px;height:96px;object-fit:contain}

/* ── шаблоны этикеток (редактор) ────────────────────────────────────── */
.templates-layout{display:grid;grid-template-columns:280px 1fr;gap:14px;align-items:start}
.templates-list{background:#fff;border:1px solid var(--line);padding:8px}
.tpl-item{padding:10px;margin-bottom:4px;cursor:pointer;border:1px solid transparent}
.tpl-item:hover,.tpl-item.active{background:var(--sel);border-color:var(--accent-line)}
.tpl-name{font-weight:700;margin-bottom:2px}
.tpl-size{font-size:var(--fs-xs);color:var(--faint);margin-bottom:6px}
.tpl-actions{display:flex;gap:6px;flex-wrap:wrap}
.template-editor{background:#fff;border:1px solid var(--line);padding:16px}
.form-row{display:grid;grid-template-columns:1fr 110px 110px;gap:12px;margin-bottom:14px}
.editor-area{margin:14px 0}
.editor-toolbar{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.block-props{background:var(--panel-2);padding:10px;display:flex;gap:14px;flex-wrap:wrap;margin-top:8px;align-items:center;font-size:var(--fs-sm)}
.block-props label{display:flex;gap:6px;align-items:center}
.block-props input,.block-props select{height:28px;padding:0 6px;font-size:var(--fs-sm);width:auto}
.form-buttons{margin-top:14px}
.card-low{border-left:3px solid var(--accent-line)}

/* старая навигация админки — больше не показывается, меню слева */
.admin-nav{display:none}

/* справка */
.help-note{background:var(--warn-bg);border:1px solid var(--warn-line);padding:8px 12px;font-size:var(--fs-sm);margin:8px 0}
.role-badge{display:inline-block;font-size:var(--fs-xs);font-weight:700;padding:1px 8px;border-radius:3px;background:#eee;color:#505050;margin-left:6px}
.role-badge.red{background:var(--bad-bg);color:var(--bad)}

@media (max-width: 1100px){
  .bar .search{display:none}
  .page.split > .menu{width:220px}
}
@media print{
  .bar,.rail,.tabs{display:none!important}
  .page{border:none;padding:0}
}

/* ── печать v2: подбор, проверка, предпросмотр ──────────────────────── */
.reqbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 12px;background:var(--sel-soft);border:1px solid var(--warn-line)}
.reqbar > b{font-size:16px}
input.qty{width:100%;height:28px;border:1px solid var(--line);text-align:right;padding:0 8px;background:#fff;font-size:var(--fs)}
input.qty.on{border-color:var(--accent-line);font-weight:700;background:var(--sel-soft)}
input.qty.err{border-color:var(--bad);background:var(--bad-bg)}
input.qty.busy{background:#f4f4f4}
input.qty:disabled{background:#f4f4f4;color:#aaa}
.timer{display:flex;align-items:center;gap:14px;padding:10px 14px;border:1px solid var(--warn-line);background:var(--sel-soft);margin-bottom:10px}
.timer.done{border-color:var(--ok-line);background:var(--ok-bg)}
.timer .clock{font-family:var(--mono);font-size:28px;font-weight:700;min-width:86px;color:var(--warn)}
.timer.done .clock{color:var(--ok)}
.prog{flex-grow:1;height:10px;background:#eadfb8;border-radius:5px;overflow:hidden}
.prog i{display:block;height:100%;background:#d9a800;transition:width .9s linear}
.timer.done .prog{background:#cfe6cb}.timer.done .prog i{background:#4c8a44}
table.check td{height:34px}
.check .iph td{background:#3d3d3d;color:#fff;font-size:17px;font-weight:700;height:40px}
.check .iph td span{font-weight:400;font-size:var(--fs);color:#dcdcdc;margin-left:12px}
.check .tot td{background:var(--sel-soft);border-bottom:2px solid var(--line-3);height:44px}
.check .tot.y td{background:var(--ok-bg)}
.check .tot .conf{display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 12px;border:1px solid var(--accent-line);border-radius:3px;background:#fff;font-weight:700;color:var(--text-strong);cursor:pointer}
.check .tot.y .conf{border-color:#4c8a44;color:var(--ok)}
.check tr.prob td{background:var(--bad-bg)}
.lvl{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:11px;background:var(--text-strong);color:#fff;font-size:13px;font-weight:700;flex-shrink:0}
.lvl.off{background:#a3a3a3}
.sign{display:flex;align-items:center;gap:16px;padding:14px 16px;border:2px solid #d6d6d6;background:#fafafa;margin-top:12px;flex-wrap:wrap}
.sign.y{border-color:#4c8a44;background:var(--ok-bg)}
.sign .who{font-size:var(--fs-sm);color:var(--muted)}
.pv{display:flex;border:1px solid var(--line-3);min-height:560px}
.pv.one{min-height:0}
.pv .docs{width:300px;flex-shrink:0;border-right:1px solid var(--line-3)}
.pv .doc{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border-bottom:1px solid var(--line-2);color:var(--text);text-decoration:none}
.pv .doc:hover{background:#fafafa;text-decoration:none}
.pv .doc.on{background:var(--sel);box-shadow:inset 4px 0 0 var(--accent-line)}
.pv .doc b{font-size:16px}
.pv .main{flex-grow:1;display:flex;flex-direction:column;min-width:0}
.pv .tool{display:flex;align-items:center;gap:10px;height:48px;padding:0 14px;border-bottom:1px solid #d6d6d6;flex-wrap:wrap}
.sheet{display:flex;flex-wrap:wrap;gap:22px 24px;padding:22px 26px;background:#e4e4e4;flex-grow:1;align-content:flex-start}
.lbw{display:flex;flex-direction:column;align-items:center}
.lb{position:relative;background:#fff;border:1px solid #9a9a9a;box-shadow:0 1px 3px rgba(0,0,0,.18);overflow:hidden;font-family:Arial,sans-serif;color:#000}
.lb .lb-t{position:absolute;line-height:1.25;overflow:hidden;padding:0 1px;word-wrap:break-word}
.lb .lb-dm{position:absolute;object-fit:contain}
.lb .lb-wm{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-18deg);font-size:26px;font-weight:700;letter-spacing:4px;color:rgba(200,30,30,.30);border:3px solid rgba(200,30,30,.30);padding:0 10px;pointer-events:none;white-space:nowrap}
.lbn{font-size:12px;color:#777;margin-top:4px}
.job{display:grid;grid-template-columns:260px 1fr 240px 300px;align-items:center;gap:16px;padding:14px 16px;border-bottom:1px solid var(--line-2)}
.bar2{height:12px;background:#e6e6e6;border-radius:6px;overflow:hidden}
.bar2 i{display:block;height:100%;background:#4c8a44;transition:width .6s}
.bar2.run i{background:#d9a800}
.bar2.err i{background:var(--bad)}
.table th.num,.grid th.num,.table td.num,.grid td.num{text-align:right}

/* столбцы: в ручном режиме текст не наезжает на соседнюю ячейку, а обрезается */
table.fit-fixed td,table.fit-fixed th{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
table.fit-fixed td .gt{display:inline}
table.fit-auto td{white-space:normal}
table.fit-auto td .gt{white-space:nowrap}

/* шаги печати как навигация: «дальше» — жёлтая кнопка прямо в строке шагов */
.steps .st.done{text-decoration:none}
a.st.done:hover{background:#e2f2df;text-decoration:none}
.st.next{background:var(--accent);border-color:var(--accent-line);color:var(--text-strong);font-weight:700;font-family:inherit;font-size:var(--fs);cursor:pointer;padding:0 16px 0 12px;position:relative;z-index:2;text-decoration:none}
.st.next i{background:var(--text-strong);color:var(--accent)}
.st.next:hover{background:#ffcb2b;text-decoration:none;color:var(--text-strong)}
.st.next.off{background:#f4f4f4;border-color:#dcdcdc;color:#a3a3a3;cursor:not-allowed;font-weight:400}
.st.next.off i{background:#d6d6d6;color:#fff}
.st.on i{color:var(--accent)}
/* строка ИП на проверке: при наведении не светлеет */
.check tr.iph:hover td{background:#3d3d3d;color:#fff}
.timer.compact{margin:0 0 0 auto;padding:6px 12px;gap:10px;width:460px;flex-shrink:0}
.timer.compact .clock{font-size:20px;min-width:52px}
.timer.compact .prog{height:6px}
.subbar{display:flex;align-items:center;gap:12px;margin-bottom:10px;min-height:44px}

.st-note{margin-left:10px;padding-left:10px;border-left:1px solid rgba(0,0,0,.2);font-weight:400;font-variant-numeric:tabular-nums}
.st.next.off .st-note{border-left-color:#dcdcdc}

/* ── «Товары»: три вида (дерево слева / папки в списке / отбор сверху) ── */
.col-menu a.col-view{display:block;padding:5px 14px;color:var(--text);text-decoration:none}
.col-menu a.col-view:hover{background:#f4f4f4}
.col-menu a.col-view.on{font-weight:700}
.gbar{margin-bottom:10px;gap:8px}
.gw{display:flex;align-items:stretch;border:1px solid var(--line-3);background:#fff}
.gw .gmain{flex-grow:1;min-width:0}
.gw .gmain > .table{border:none;border-left:0}
.gtree{width:330px;min-width:220px;max-width:700px;flex-shrink:0;display:flex;flex-direction:column;background:#fff}
.gtree-bar{display:flex;align-items:center;gap:4px;height:var(--row);padding:0 6px 0 12px;background:#eee;border-bottom:1px solid var(--line-3);font-size:var(--fs-sm);color:#505050}
.gtree-bar .ib.sm{width:26px;height:26px}
.gtree-bar .ib.off{opacity:.35}
.gtree-list{padding:4px 0;overflow:auto;max-height:calc(100vh - 260px);flex-grow:1}
.gtree-foot{padding:8px 12px;border-top:1px solid var(--line-2);font-size:var(--fs-xs);color:var(--faint)}
.tn{display:flex;align-items:center;gap:6px;height:calc(30px * var(--row-scale));padding:0 10px 0 4px;font-size:var(--fs);color:var(--text);text-decoration:none;white-space:nowrap}
.tn:hover{background:#f4f4f4;text-decoration:none;color:var(--text-strong)}
.tn.sel{background:var(--accent-soft);font-weight:700;color:var(--text-strong)}
.tn .tw{width:14px;flex-shrink:0;font-style:normal;font-size:11px;color:#737373;text-align:center;cursor:pointer;margin-left:calc(var(--d) * 16px)}
.tn .no,.rno,.pk .no{font-family:var(--mono);font-size:var(--fs-xs);color:var(--faint);font-weight:400;font-variant-numeric:tabular-nums}
.tn .no{width:30px;flex-shrink:0;text-align:right}
.tn.sel .no{color:var(--text-strong)}
.rno{margin-right:4px}
.pk .no{width:30px;flex-shrink:0;text-align:right}
.tn svg,.fold svg,.pk svg{width:18px;height:18px;flex-shrink:0;fill:#f3d36b;stroke:#b8930a;stroke-width:1.2}
.tn .nm{overflow:hidden;text-overflow:ellipsis}
.tn .c{margin-left:auto;padding-left:8px;color:var(--faint);font-size:var(--fs-xs);font-weight:400;font-variant-numeric:tabular-nums}
.tn.drop,tr.drop td{outline:2px dashed var(--accent-line);outline-offset:-3px;background:var(--sel-soft)}
.tn.nodrop,tr.nodrop td{outline-color:var(--bad);background:var(--bad-bg)}
.crumbs{display:flex;align-items:center;gap:8px;font-size:16px;margin-bottom:10px}
.crumbs i{font-style:normal;color:var(--faint)}
tr.gfold td{background:#fcfcfc}
tr.gfold .fold{display:inline-flex;align-items:center;gap:8px;color:var(--text-strong)}
tr.gfold{cursor:default}
tr.gup td{height:calc(30px * var(--row-scale));background:#fafafa}
tr.locked td{background:var(--bad-bg)}
#goods tbody tr[draggable]{cursor:grab}
.drag-ghost{position:absolute;top:-100px;left:-100px;padding:6px 12px;background:var(--accent);border:1px solid var(--accent-line);font-weight:700;font-size:var(--fs-sm)}
.gfilter{display:grid;grid-template-columns:130px minmax(150px,.9fr) minmax(260px,2.2fr) 150px minmax(240px,1.5fr);gap:12px;padding:10px 14px 12px;background:var(--panel-2);border:1px solid var(--line);margin-bottom:10px}
.gfilter label{display:flex;flex-direction:column;gap:4px;min-width:0}
.gfilter label > span:first-child{font-size:var(--fs-xs);font-weight:700;color:#505050}
.gfilter select{width:100%}
.pickfld{display:flex;gap:4px;align-items:center}
.pickfld input{flex:1;min-width:0;cursor:pointer;background:#fff}
.modal-box.pickbox{width:660px}
.picklist{height:380px;overflow:auto;border:1px solid var(--line);margin-top:8px}
.pk{display:flex;align-items:center;gap:8px;height:32px;padding-right:10px;cursor:pointer;white-space:nowrap}
.pk:hover{background:#f4f4f4}
.pk.on{background:var(--accent-soft);font-weight:700}
.pk.root{font-weight:700}
.pk.off{color:#b0b0b0;cursor:not-allowed}
.pk.off svg{opacity:.4}
.pk.muted span{color:var(--faint)}

.gsplit{width:5px;flex-shrink:0;cursor:col-resize;background:var(--line-3);border-left:2px solid #fff;border-right:2px solid #fff;box-sizing:content-box;margin:0 -2px;position:relative;z-index:3}
.gsplit:hover,.gsplit.on{background:var(--accent-line)}
.gw .gmain{overflow-x:auto}
.grid-auto-wrap{max-width:100%;overflow-x:auto}
th .col-cfg{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:22px;height:22px;border:1px solid var(--line);background:#fff;border-radius:3px;cursor:pointer;display:none;align-items:center;justify-content:center;padding:0;color:#505050}
th .col-cfg svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8}
table:hover th .col-cfg{display:inline-flex}

/* ── колонка разделов: компактная — иконка и подпись мелким шрифтом (решение 26.09) ── */
:root{--rail-w:78px}
.rail{padding:8px 5px}
.rail .sec{font-size:11.5px;line-height:13px;gap:3px;padding:8px 2px;word-break:break-word;hyphens:auto}
.rail .sec svg{width:26px;height:26px}

.iconsel{display:flex;align-items:center;height:34px;border:1px solid var(--line-3);border-radius:2px;background:#fff;padding-left:8px}
.iconsel svg{width:18px;height:18px;fill:none;stroke:#505050;stroke-width:1.7;flex-shrink:0}
.iconsel select{border:none;height:32px;padding-left:6px;background:transparent;min-width:0;flex:1}
.pick-top{gap:6px;flex-wrap:nowrap}
.pick-tools{display:inline-flex;gap:4px}
.modal-box.pickbox.editing{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft),0 8px 40px rgba(0,0,0,.25)}
#kb-pick-edit.on{background:var(--accent-soft);border-color:var(--accent-line);font-weight:700}
.pick-tools .ib.off{opacity:.35}
#kb-ask{z-index:1010}
.job .chz-note{grid-column:1/-1;font-size:var(--fs-sm);margin-top:-6px}
.chz-note:empty{display:none}
.chz-note.warn{color:var(--warn)}
.chzbar{margin:0 0 -1px;padding:7px 14px;font-size:var(--fs-sm);border:1px solid var(--warn-line);background:var(--warn-bg);color:#5a4a00}
.chzbar.bad{border-color:var(--bad-line);background:var(--bad-bg);color:#7a1515}
.chzbar a{font-weight:700;margin-left:6px}

/* ── движение кодов, уведомления ─────────────────────────────────────── */
.bell{position:relative;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:4px;color:#555}
.bell:hover{background:#e6e6e6;color:var(--text-strong)}
.bell svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.bell i{position:absolute;top:1px;right:0;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--bad);color:#fff;font-style:normal;font-size:11px;font-weight:700;line-height:17px;text-align:center}
tr.unread td{background:var(--sel-soft);font-weight:700}
tr.unread.lvl-warn td:first-child{box-shadow:inset 4px 0 0 var(--accent-line)}
.xfer{display:flex;gap:16px;align-items:flex-start}
.xfer-main{flex-grow:1;min-width:0}
.xfer-side{width:300px;flex-shrink:0;position:sticky;top:64px}
.kv{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--line-2);font-size:16px}
.kv b{font-size:20px}
.scanbox{display:flex;align-items:center;gap:10px;border:2px solid var(--accent-line);background:var(--sel-soft);padding:10px 12px}
.scanbox svg{width:30px;height:30px;fill:none;stroke:#505050;stroke-width:1.6;flex-shrink:0}
.scanbox input{flex:1;height:42px;font-size:18px;font-family:var(--mono)}
tr.x-ok td{background:var(--ok-bg)}
tr.x-rep td{background:var(--warn-bg)}
tr.x-bad td{background:var(--bad-bg);color:#7a1515}
.codes-box{display:flex;flex-wrap:wrap;gap:4px 14px;padding:6px 4px}
.codes-box a{font-size:13px}
.codes-box .cz-dead{color:var(--faint);text-decoration:line-through}
.codes-box .cz-foreign,.codes-box .cz-hold,.codes-box .cz-notfound{color:var(--bad)}
.codes-box .cz-none{color:var(--muted)}
/* v2.2: задания проверки ЧЗ, инструкции */
.card{border:1px solid #d6d6d6;background:#fff;padding:14px 16px}
.card h3{font-size:var(--fs-md,16px);margin:0 0 10px}
.lbl{font-size:var(--fs-xs);color:#737373;text-transform:uppercase;letter-spacing:.03em;margin-bottom:4px}
.chk{display:inline-flex;gap:6px;align-items:center;line-height:1.9;cursor:pointer}
/* v2.4: инструкции */
.help-wrap{display:flex;gap:24px;align-items:flex-start}
.help-toc{width:250px;flex-shrink:0;position:sticky;top:64px;display:flex;flex-direction:column;border:1px solid var(--line);background:var(--panel);padding:10px 0;max-height:calc(100vh - 90px);overflow:auto}
.help-toc b{padding:0 14px 6px;font-size:var(--fs-xs);text-transform:uppercase;color:var(--faint);letter-spacing:.03em}
.help-toc a{display:flex;gap:8px;padding:6px 14px;color:var(--text);text-decoration:none;font-size:var(--fs-sm);border-left:3px solid transparent}
.help-toc a span{color:var(--faint);min-width:18px}
.help-toc a:hover{background:var(--sel-soft)}
.help-toc a.on{background:var(--accent-soft);border-left-color:var(--accent-line);font-weight:700}
.help{flex:1;min-width:0;max-width:1060px;counter-reset:hs}
.help .hs{background:var(--panel);border:1px solid var(--line);padding:18px 26px 12px;margin-bottom:18px;counter-increment:hs}
.help .hs h2{font-size:24px;margin:0 0 6px}
.help .hs h2::before{content:counter(hs) ". "}
.help .hs h3{font-size:18px;margin:22px 0 8px}
.help p,.help li{font-size:16px;line-height:1.65}
.help li{margin:3px 0}
.help .note{background:var(--warn-bg);border-left:3px solid var(--accent-line);padding:9px 14px}
.help .who{display:flex;gap:6px;margin:0 0 10px}
.help .who i{font-style:normal;font-size:var(--fs-xs);padding:2px 9px;border:1px solid var(--line-3);background:var(--panel-2)}
.help .who i.r-sr{background:var(--warn-bg);border-color:var(--warn-line)}
.help .who i.r-ad{background:var(--bad-bg);border-color:var(--bad-line)}
.help figure{margin:14px 0 18px}
.help figure.shot img{display:block;max-width:100%;border:1px solid var(--line-3);box-shadow:0 2px 10px rgba(0,0,0,.08);cursor:zoom-in}
.help figure.shot.zoom{position:fixed;inset:0;z-index:1100;background:rgba(0,0,0,.75);margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px}
.help figure.shot.zoom img{max-height:92vh;cursor:zoom-out}
.help figure.shot.zoom figcaption{color:#fff}
.help figcaption{font-size:var(--fs-sm);color:var(--muted);margin-top:6px}
.help figure.dia{border:1px solid var(--line-2);background:#fcfcfc;padding:12px 14px 8px}
.help figure.dia svg{width:100%;height:auto;display:block}
.help table.ht{border-collapse:collapse;width:100%;margin:8px 0 14px;font-size:15px}
.help table.ht th,.help table.ht td{border:1px solid var(--line);padding:7px 10px;text-align:left;vertical-align:top}
.help table.ht th{background:var(--panel-2)}
.help.print .hs{border:none;padding:0;margin:0 0 26px}
.help.print figure.shot img{box-shadow:none;cursor:default}
.head-stats{display:inline-flex;gap:18px;align-items:center;font-size:var(--fs);color:var(--muted);flex-wrap:wrap;justify-content:flex-end}
.head-stats b{color:var(--text)}
.head-stats b.green{color:var(--ok)}
.head-stats b.bad{color:var(--bad)}
/* v2.5: проверка кода */
.ccard{border:1px solid var(--line);border-left:4px solid var(--line-3);background:var(--panel);padding:12px 16px;margin:0 0 12px}
.ccard.lv-ok{border-left-color:var(--ok)} .ccard.lv-bad{border-left-color:var(--bad)} .ccard.lv-warn{border-left-color:var(--accent-line)} .ccard.lv-info{border-left-color:var(--link)}
.ccard-h{display:flex;gap:10px;align-items:center;font-size:17px}
.ccard.lv-ok .ccard-h .chip{background:var(--ok-bg);color:var(--ok)} .ccard.lv-bad .ccard-h .chip{background:var(--bad-bg);color:var(--bad)}
.ccard.lv-warn .ccard-h .chip{background:var(--warn-bg);color:var(--warn)} .ccard.lv-info .ccard-h .chip{background:#e8f0fb;color:var(--link)}
.ccard-adv{margin:8px 0 4px;padding:8px 12px;background:var(--warn-bg);border-left:3px solid var(--accent-line)}
.ccard.lv-bad .ccard-adv{background:var(--bad-bg);border-left-color:var(--bad)}
.ccard.lv-ok .ccard-adv,.ccard.lv-info .ccard-adv{background:var(--panel-2);border-left-color:var(--line-3)}
.ccard-cols{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:10px}
.ccard table.ckv td{padding:3px 12px 3px 0;vertical-align:top}
.ccard table.ckv td:first-child{color:var(--muted);white-space:nowrap}
.chip.lv-ok{background:var(--ok-bg);color:var(--ok)} .chip.lv-bad{background:var(--bad-bg);color:var(--bad)} .chip.lv-warn{background:var(--warn-bg);color:var(--warn)}
tr.lv-bad td{background:var(--bad-bg)} tr.lv-warn td{background:var(--warn-bg)}
