/* Основа. Цвета без выбранного вида = монохром. Виды: mono, monodark, light (классика), glass */
@font-face { font-family: Golos; src: url(fonts/golos-text-cyrillic-wght-normal.woff2) format('woff2'); font-weight: 400 900; font-display: swap; unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: Golos; src: url(fonts/golos-text-latin-wght-normal.woff2) format('woff2'); font-weight: 400 900; font-display: swap; unicode-range: U+0000-00FF, U+2000-206F, U+20AC, U+20BD, U+2190-2193; }
@font-face { font-family: JBMono; src: url(fonts/jetbrains-mono-cyrillic-wght-normal.woff2) format('woff2'); font-weight: 100 800; font-display: swap; unicode-range: U+0301, U+0400-045F, U+0490-0491, U+2116; }
@font-face { font-family: JBMono; src: url(fonts/jetbrains-mono-latin-wght-normal.woff2) format('woff2'); font-weight: 100 800; font-display: swap; unicode-range: U+0000-00FF, U+2000-206F; }

:root {
  color-scheme: light;
  --cloth: #ececec; --cloth-deep: #ffffff; --panel: #ffffff; --panel-up: #f4f4f4; --hover: #f5f5f5;
  --line: #e4e4e4; --line-strong: #d4d4d4;
  --chalk: #111111; --soft: #555555; --dim: #6a6a6a;
  --mark: #111111; --mark-hover: #2b2b2b; --mark-ink: #ffffff;
  --ok: #157a3d; --ok-bg: #dff3e6; --bad: #b42318; --bad-bg: #fde4e1; --warn: #a15c00; --warn-bg: #fdf0d8;
  --radius: 8px; --ease: cubic-bezier(.23, 1, .32, 1);
  --tag-w-bg: #111111; --tag-w-ink: #ffffff; --date-filter: none;
  --stitch: repeating-linear-gradient(90deg, var(--line-strong) 0 7px, transparent 7px 12px);
}
/* Светлая тема: бумага выкройки, тот же характер */
[data-theme="light"] {
  color-scheme: light;
  --cloth: #f3f0e7; --cloth-deep: #e9e5d9; --panel: #fdfcf8; --panel-up: #e8ebe3; --hover: #eef0e8;
  --line: #dcdace; --line-strong: #b4b6a8;
  --chalk: #1e2623; --soft: #4d5a54; --dim: #5e6a64;
  --mark: #14594c; --mark-hover: #0e4539; --mark-ink: #ffffff;
  --ok: #17603a; --ok-bg: #dcefe1; --bad: #9a2318; --bad-bg: #f9e2dd; --warn: #6f4b00; --warn-bg: #f9ebc6;
  --tag-w-bg: #1e3a33; --tag-w-ink: #f3f0e7; --date-filter: none;
}
* { box-sizing: border-box; }
html { scrollbar-color: var(--line-strong) transparent; scrollbar-width: thin; caret-color: var(--mark); }
::selection { background: var(--mark); color: var(--mark-ink); }
body { margin: 0; display: flex; min-height: 100vh; background: var(--cloth); color: var(--chalk);
  font: 15px/1.5 Golos, "Segoe UI", system-ui, sans-serif; font-feature-settings: "tnum"; -webkit-font-smoothing: antialiased; }
a { color: var(--mark); text-underline-offset: 3px; text-decoration-color: color-mix(in srgb, var(--mark) 35%, transparent); }
@media (hover: hover) { a:hover { text-decoration-color: currentColor; } }
:focus-visible { outline: 2px solid var(--mark); outline-offset: 2px; border-radius: 4px; }
main:focus { outline: none; }
b { font-weight: 600; }

#bar { position: fixed; inset: 0 auto auto 0; height: 2px; width: 0; background: var(--mark); z-index: 20; opacity: 0; }
#bar.on { width: 70%; opacity: 1; transition: width 2s var(--ease); }

.ico { width: 18px; height: 18px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }

/* Боковая панель */
nav[aria-label="Разделы"] { position: sticky; top: 0; height: 100vh; width: 232px; flex: none; padding: 16px 12px; background: var(--cloth-deep);
  display: flex; flex-direction: column; gap: 1px; overflow-y: auto; }
nav > a { display: flex; align-items: center; gap: 10px; color: var(--soft); text-decoration: none; padding: 7px 10px; border-radius: 6px; transition: background-color .15s, color .15s; }
@media (hover: hover) { nav > a:hover { background: var(--panel); color: var(--chalk); } }
nav > a[aria-current] { background: var(--panel-up); color: var(--chalk); font-weight: 600; }
nav > a[aria-current] .ico { color: var(--mark); }
nav > a span { white-space: nowrap; }
nav > a b { font-size: 12px; color: var(--warn); background: var(--warn-bg); padding: 0 6px; border-radius: 9px; margin-left: 2px; }
nav .brand { color: var(--chalk); font-size: 18px; font-weight: 700; letter-spacing: -.01em; padding: 2px 10px 12px; }
nav .brand:hover { background: none; }
nav .group { margin: 16px 10px 4px; font-size: 12px; color: var(--dim); }
.themebtn { margin-top: auto; margin-bottom: 6px; display: flex; gap: 10px; background: none; border: 0; color: var(--soft); font-weight: 400; padding: 7px 10px; }
@media (hover: hover) { .themebtn:hover { background: var(--panel); border: 0; color: var(--chalk); } }
.themebtn .to-dark, .themebtn .ico:nth-of-type(2) { display: none; }
[data-theme="light"] .themebtn .to-dark, [data-theme="light"] .themebtn .ico:nth-of-type(2) { display: inline; }
[data-theme="light"] .themebtn .to-light, [data-theme="light"] .themebtn .ico:nth-of-type(1) { display: none; }
nav .cta { background: var(--mark); color: var(--mark-ink); justify-content: center; font-weight: 600; padding: 9px 10px; }
@media (hover: hover) { nav .cta:hover { background: var(--mark-hover); color: var(--mark-ink); } }
.find { position: relative; display: flex; align-items: center; color: var(--dim); }
.find .ico { position: absolute; left: 9px; width: 16px; height: 16px; }
.find input { width: 100%; min-width: 0; padding: 6px 28px 6px 31px; background: var(--panel); border-color: var(--line); }
.find kbd { position: absolute; right: 8px; font: 12px Golos, sans-serif; color: var(--dim); border: 1px solid var(--line-strong); border-radius: 4px; padding: 0 5px; }
.find input:focus ~ kbd { display: none; }

main { flex: 1; min-width: 0; padding: 22px 32px 72px; max-width: 1400px; }
.head { margin-bottom: 14px; }
.back { font-size: 13px; }
.headrow { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.actions form { margin: 0; }
h1 { font-size: 26px; line-height: 1.2; letter-spacing: -.02em; font-weight: 700; margin: 2px 0; text-wrap: balance; }
h2 { font-size: 16px; font-weight: 600; margin: 32px 0 10px; }
.muted { color: var(--soft); font-weight: 400; }
main > p.muted, [data-results] > p.muted { margin: 8px 0; }
.numbers { margin: 0 0 16px; color: var(--soft); }
.numbers b { color: var(--chalk); }

.toast { background: var(--ok-bg); color: var(--ok); padding: 8px 12px; border-radius: 6px; margin: 0 0 12px; font-weight: 500; }
.error { background: var(--bad-bg); color: var(--bad); padding: 8px 12px; border-radius: 6px; font-weight: 500; margin: 0 0 12px; }
.warnbox { background: var(--warn-bg); color: var(--warn); padding: 8px 12px; border-radius: 6px; margin: 0 0 8px; }
.empty { color: var(--soft); background: none; border: 1px dashed var(--line-strong); border-radius: var(--radius); padding: 14px 16px; margin: 0; }

/* Доска работы: три колонки по цепочке */
.board { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.lane { background: var(--panel); border-radius: 12px; padding: 12px 6px 8px; min-width: 0; }
.lane h2 { margin: 0 0 8px; padding: 0 10px 10px; position: relative; font-size: 15px; display: flex; align-items: center; justify-content: space-between; }
.lane h2::after { content: ""; position: absolute; left: 10px; right: 10px; bottom: 0; height: 1px; background: var(--stitch); }
.lane .count { font-size: 13px; font-weight: 600; color: var(--mark); }
.lane ul { list-style: none; margin: 0; padding: 0; }
.lane li a { display: block; padding: 6px 10px; border-radius: 6px; text-decoration: none; color: var(--chalk); transition: background-color .12s; }
@media (hover: hover) { .lane li a:hover { background: var(--hover); } }
.lane li b { display: block; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lane li span { display: block; font-size: 13px; color: var(--soft); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lane .muted { padding: 0 10px; margin: 4px 0; font-size: 14px; }
.lane i.code { font-style: normal; color: var(--mark); margin-right: 4px; }

/* Цепочка отгрузки */
.chain { list-style: none; display: flex; flex-wrap: wrap; gap: 0; margin: 0 0 14px; padding: 0; }
.chain li { display: flex; align-items: center; gap: 8px; color: var(--soft); font-size: 14px; }
.chain li::before { content: ""; width: 10px; height: 10px; border-radius: 50%; border: 2px solid var(--line-strong); }
.chain li.done { color: var(--chalk); }
.chain li.done::before { background: var(--mark); border-color: var(--mark); }
.chain li + li { margin-left: 8px; }
.chain li + li::after { order: -1; content: ""; width: 44px; height: 1px; background: var(--stitch); }

.scroll { overflow-x: auto; background: var(--panel); border-radius: var(--radius); }
table { border-collapse: collapse; width: 100%; }
th, td { padding: 8px 12px; text-align: left; border-bottom: 1px solid var(--line); vertical-align: top; }
th { color: var(--soft); font-weight: 500; font-size: 13px; white-space: nowrap; }
tbody tr:last-child td { border-bottom: 0; }
@media (hover: hover) { tbody tr:hover { background: var(--hover); } }
tfoot td { border-top: 1px dashed var(--line-strong); border-bottom: 0; font-weight: 600; vertical-align: middle; }
tfoot .muted { font-size: 13px; }
.n { text-align: right; white-space: nowrap; }
.nowrap { white-space: nowrap; }
.end { text-align: right; width: 1%; white-space: nowrap; }
.end form { margin: 0; }

.code { font-family: JBMono, Consolas, monospace; font-size: 13px; letter-spacing: 0; }
button.copy { all: unset; font-family: JBMono, Consolas, monospace; font-size: 13px; cursor: copy; border-radius: 4px; padding: 0 3px; margin: 0 -3px; color: var(--chalk); transition: background-color .15s, color .15s; }
@media (hover: hover) { button.copy:hover { background: var(--panel-up); color: var(--mark); } }
button.copy:focus-visible { outline: 2px solid var(--mark); }
button.copy.copied { background: var(--ok-bg); color: var(--ok); }

.tag { display: inline-block; padding: 0 8px; border-radius: 10px; font-size: 13px; white-space: nowrap; }
.tag.ok { background: var(--ok-bg); color: var(--ok); }
.tag.bad { background: var(--bad-bg); color: var(--bad); }
.tag.warn { background: var(--warn-bg); color: var(--warn); }
.tag.gray { background: var(--panel-up); color: var(--chalk); }
.tag.white { background: var(--tag-w-bg); color: var(--tag-w-ink); }

.facts { display: grid; grid-template-columns: 170px 1fr; gap: 5px 16px; margin: 0; background: var(--panel); border-radius: var(--radius); padding: 12px 16px; }
.facts dt { color: var(--soft); }
.facts dd { margin: 0; overflow-wrap: anywhere; }
.flags { margin: 0; padding-left: 20px; }

label, .field { display: flex; flex-direction: column; gap: 3px; font-size: 13px; color: var(--soft); }
.field small { color: var(--dim); }
input, select, textarea { font: 15px/1.35 Golos, "Segoe UI", sans-serif; color: var(--chalk); padding: 7px 9px; border: 1px solid var(--line-strong); border-radius: 6px; background: var(--cloth-deep); min-width: 150px; width: 100%; transition: border-color .15s; }
select option { background: var(--panel); }
textarea { resize: vertical; }
textarea[readonly] { font-family: JBMono, Consolas, monospace; font-size: 12px; color: var(--soft); }
input:focus-visible, select:focus-visible, textarea:focus-visible { border-color: var(--mark); outline: 1px solid var(--mark); outline-offset: 0; }
input::placeholder { color: var(--dim); }
input[type=date]::-webkit-calendar-picker-indicator { filter: var(--date-filter); }

.form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; max-width: 780px; }
.form .wide, .form .formend { grid-column: 1 / -1; }
#shipform { max-width: none; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.filters { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; margin: 0 0 12px; }
.filters .field { flex: 0 1 230px; }
.inline { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.inline input { width: auto; }
.filters.pay { margin-top: 12px; }
.steps { margin: 8px 0 14px; padding-left: 22px; max-width: 75ch; }
.steps li { margin-bottom: 3px; }

button, .btn { display: inline-flex; align-items: center; font: inherit; font-weight: 600; line-height: 1.35; padding: 7px 14px; border: 1px solid var(--mark); border-radius: 6px; background: var(--mark); color: var(--mark-ink); cursor: pointer; text-decoration: none; white-space: nowrap; transition: background-color .15s, border-color .15s, transform .12s var(--ease); }
button:active, .btn:active { transform: scale(.97); }
button:disabled { opacity: .6; cursor: default; }
button.ghost, .btn.ghost { background: transparent; color: var(--chalk); border-color: var(--line-strong); font-weight: 500; }
button.link { background: none; border: 0; color: var(--bad); padding: 0; font-weight: 400; text-decoration: underline; text-underline-offset: 3px; }
@media (hover: hover) {
  button:hover, .btn:hover { background: var(--mark-hover); border-color: var(--mark-hover); }
  button.ghost:hover, .btn.ghost:hover { background: var(--panel-up); border-color: var(--line-strong); }
  button.link:hover { background: none; }
}
.docs { margin-bottom: 4px; }
.gate { align-items: center; justify-content: center; }
.gate main { flex: 0 1 340px; padding: 24px; }
.gateform { display: flex; flex-direction: column; gap: 12px; margin-top: 12px; }
.gateform button { justify-content: center; }
/* Статистика */
.charts { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 14px; margin-bottom: 8px; }
.months { margin: 0; background: var(--panel); border-radius: var(--radius); padding: 12px 14px 8px; min-width: 0; }
.months figcaption { font-size: 13px; color: var(--soft); margin-bottom: 18px; }
.mbars { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 4px; height: 132px; }
.mbar { position: relative; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; min-width: 0; text-decoration: none; color: var(--soft); font-size: 12px; border-radius: 4px; }
.mbar i { display: block; width: 100%; max-width: 26px; background: var(--line-strong); border-radius: 4px 4px 0 0; transition: background-color .12s; }
.mbar > span:last-child { margin-top: 4px; line-height: 16px; }
.mbar.on i { background: var(--mark); }
.mbar.on { color: var(--chalk); font-weight: 600; }
.mbar .peak { position: absolute; top: -16px; left: 50%; transform: translateX(-50%); white-space: nowrap; font-size: 11px; color: var(--soft); font-weight: 400; }
@media (hover: hover) { .mbar:hover i { background: var(--mark); } .mbar:hover { color: var(--chalk); } }
.rank th a.sort { color: var(--soft); text-decoration: none; }
.rank th a.sort.on { color: var(--chalk); }
@media (hover: hover) { .rank th a.sort:hover { color: var(--mark); } }
.rank .wide { width: 26%; min-width: 120px; }
.hbar { display: block; height: 8px; margin-top: 7px; border-radius: 4px; background: var(--line); }
.hbar i { display: block; height: 100%; min-width: 2px; background: var(--mark); border-radius: 4px; }
.pager { display: flex; align-items: center; gap: 12px; margin-top: 10px; color: var(--soft); }

.lines td { vertical-align: top; }
.lines input { min-width: 0; }
.lines .name { min-width: 300px; }
.lines .qty, .lines .price { width: 104px; text-align: right; }
.lines .sum { padding-top: 14px; }
.lines .del { margin-top: 7px; }
.src, .spec { display: block; color: var(--soft); }
.spec { font-family: JBMono, Consolas, monospace; font-size: 12px; margin-top: 3px; }

@media (max-width: 1080px) {
  .board { grid-template-columns: minmax(0, 1fr); }
  #shipform { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  body { flex-direction: column; }
  nav[aria-label="Разделы"] { position: sticky; z-index: 5; height: auto; width: auto; flex-direction: row; flex-wrap: nowrap; align-items: center; gap: 4px; padding: 8px; overflow-x: auto; scrollbar-width: none; }
  nav .brand, nav .group, nav .find, nav .cta { display: none; }
  nav > a { flex: none; padding: 7px 10px; }
  nav > a .ico { display: none; }
  .themebtn { order: 20; flex: none; margin: 0; padding: 7px 10px; }
  .themebtn span { display: none !important; }
  nav > a span { font-size: 14px; }
  .board { gap: 10px; }
  h1 { font-size: 22px; }
  th, td { padding: 8px 10px; }
  button, .btn { padding: 9px 14px; }
  input, select, textarea { font-size: 16px; }
  .find kbd { display: none; }
  main { padding: 14px 12px 40px; }
  .facts { grid-template-columns: 1fr; gap: 0; }
  .facts dd { margin-bottom: 7px; }
  .form, #shipform { grid-template-columns: minmax(0, 1fr); }
  .filters .field { flex: 1 1 100%; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }

/* Галочки маршруток в отгрузке */
.orderpick { border: 1px solid var(--line); border-radius: 8px; padding: 8px 12px 10px; margin: 0; min-width: 0; }
.orderpick legend { padding: 0 6px; }
.orderpick .check { display: flex; gap: 8px; align-items: baseline; padding: 4px 0; cursor: pointer; }
.orderpick .check input { width: auto; flex: none; }

/* Галочки маршруток: в строку с названием */
.orderpick .check { flex-direction: row; align-items: center; gap: 10px; font-size: 14px; color: var(--chalk); padding: 5px 6px; margin: 0 -6px; border-radius: 6px; }
.orderpick .check input { min-width: 0; width: 16px; height: 16px; margin: 0; accent-color: var(--mark); }
@media (hover: hover) { .orderpick .check:hover { background: var(--hover); } }

/* Замечания маршруток прямо в списке заказов, кнопки проверки данных */
.flagline { display: block; margin-top: 2px; font-size: 13px; color: var(--warn); }
a.tag { text-decoration: none; }
p.muted > form { display: inline; margin: 0 2px; }
button.link.inline-link { color: var(--mark); font-size: inherit; }
.end .inline { flex-wrap: nowrap; justify-content: flex-end; }

/* Значки Lucide рисуются линией 1,75 */
.ico { stroke-width: 1.75; }

/* ── Меню: плашка под выбранным пунктом переезжает «каплей» (public/app.js, pill) ── */
:root { --e-out: cubic-bezier(.23, 1, .32, 1); }
nav > .pill { --pill-r: 6px; position: absolute; left: 0; top: 0; z-index: 0; pointer-events: none; display: block; background: var(--panel-up);
  clip-path: inset(50% 50% 50% 50%); transition: opacity .2s var(--e-out); }
nav > .pill.off { opacity: 0; }
nav > a, nav > form, nav > p, nav > button { position: relative; z-index: 1; }
nav.has-pill > a[aria-current]:not(.cta) { background: transparent; }
nav[aria-label="Разделы"] { scrollbar-width: none; }
nav[aria-label="Разделы"]::-webkit-scrollbar { display: none; }

/* Значок в заголовке карточки на главной */
.lhead { display: inline-flex; align-items: center; gap: 8px; }
.lico { display: inline-flex; color: var(--soft); }
.lico .ico { width: 16px; height: 16px; }

/* Переключатель вида: тёмный → светлый → новый */
.themebtn .th { display: none; }
[data-theme="light"] .themebtn .th-light, [data-theme="mono"] .themebtn .th-mono, [data-theme="monodark"] .themebtn .th-monodark, [data-theme="glass"] .themebtn .th-glass { display: inline; }
.themebtn .ico { display: inline-block !important; }

/* ═════════ Телефон: нижняя панель (во всех видах) ═════════ */
@media (max-width: 760px) {
  nav[aria-label="Разделы"] {
    position: fixed; z-index: 30; left: 10px; right: 10px; bottom: calc(10px + env(safe-area-inset-bottom)); top: auto; height: auto; width: auto;
    flex-direction: row; align-items: stretch; gap: 2px; padding: 5px; border-radius: 16px; overflow-x: auto;
    background: var(--cloth-deep); border: 1px solid var(--line-strong); box-shadow: 0 8px 24px rgba(0, 0, 0, .3); }
  nav > .pill { --pill-r: 11px; }
  nav > a { flex: 0 0 auto; min-width: 62px; flex-direction: column; justify-content: center; gap: 3px; padding: 7px 6px 6px; border-radius: 11px; }
  nav > a .ico { display: block; width: 21px; height: 21px; }
  nav > a span { font-size: 11px; line-height: 1.1; }
  nav > a b { position: absolute; top: 3px; right: 5px; font-size: 10px; padding: 0 5px; margin: 0; }
  .themebtn { flex: 0 0 auto; flex-direction: column; justify-content: center; align-items: center; gap: 3px; min-width: 62px; padding: 7px 6px 6px; }
  .themebtn .ico { width: 21px; height: 21px; }
  .themebtn span.th { display: none !important; font-size: 11px; line-height: 1.1; }
  [data-theme="light"] .themebtn .th-light, [data-theme="mono"] .themebtn .th-mono, [data-theme="monodark"] .themebtn .th-monodark, [data-theme="glass"] .themebtn .th-glass { display: inline !important; }
  main { padding-bottom: calc(96px + env(safe-area-inset-bottom)); }
  .filters .field { flex: 1 1 calc(50% - 5px); min-width: 0; }
  .filters .field select, .filters .field input { min-width: 0; }
}

/* ═════════ Вид «Стекло» (Liquid Glass) ═════════
   Только в этом виде: глубокий фон со светом по углам, стеклянные карточки, бирюзовый акцент,
   значки в круглых стеклянных каплях, выбранный пункт — цветная капля. */
[data-theme="glass"] {
  color-scheme: dark;
  --cloth: #0b1110; --cloth-deep: rgba(12, 19, 18, .72); --panel: #121b19; --panel-up: #192421; --hover: rgba(255, 255, 255, .045);
  --line: rgba(255, 255, 255, .07); --line-strong: rgba(255, 255, 255, .13);
  --chalk: #e8eeea; --soft: #9aaba5; --dim: #6d7c77;
  --mark: #3ad3b2; --mark-hover: #62e0c5; --mark-ink: #05201a;
  --ok: #7fe3b4; --ok-bg: rgba(58, 211, 178, .13); --bad: #ff9c88; --bad-bg: rgba(255, 120, 98, .13); --warn: #f4c56d; --warn-bg: rgba(244, 197, 109, .13);
  --tag-w-bg: #e8eeea; --tag-w-ink: #0b1110; --date-filter: invert(.85);
  --radius: 16px;
}
[data-theme="glass"] body { background:
  radial-gradient(900px 600px at 6% -10%, rgba(58, 211, 178, .13), transparent 70%),
  radial-gradient(700px 520px at 100% 0%, rgba(255, 168, 128, .07), transparent 65%),
  radial-gradient(900px 640px at 70% 110%, rgba(120, 168, 255, .09), transparent 70%),
  #0b1110; background-attachment: fixed; }
[data-theme="glass"] nav[aria-label="Разделы"] { background: rgba(12, 19, 18, .6); border-right: 1px solid rgba(255, 255, 255, .06);
  backdrop-filter: blur(18px) saturate(1.3); -webkit-backdrop-filter: blur(18px) saturate(1.3); }
[data-theme="glass"] nav > .pill { --pill-r: 12px; background: linear-gradient(180deg, rgba(58, 211, 178, .16), rgba(58, 211, 178, .07));
  box-shadow: inset 0 0 0 1px rgba(58, 211, 178, .28); }
[data-theme="glass"] :is(.scroll, .facts, .lane, .months, .orderpick) { background: rgba(20, 30, 28, .55); border: 1px solid rgba(255, 255, 255, .08);
  box-shadow: 0 1px 0 rgba(255, 255, 255, .05) inset, 0 24px 48px -24px rgba(0, 0, 0, .75); backdrop-filter: blur(16px) saturate(1.2); -webkit-backdrop-filter: blur(16px) saturate(1.2); }
[data-theme="glass"] :is(.scroll, .facts, .months, .orderpick) { border-radius: 20px; }
[data-theme="glass"] .lane { border-radius: 24px; padding: 16px 8px 10px; }
[data-theme="glass"] .lane h2::after { background: rgba(255, 255, 255, .07); }
[data-theme="glass"] .board .lane:nth-child(1) { background-image: linear-gradient(160deg, rgba(58, 211, 178, .12), transparent 60%); }
[data-theme="glass"] .board .lane:nth-child(2) { background-image: linear-gradient(160deg, rgba(255, 168, 128, .10), transparent 60%); }
[data-theme="glass"] .board .lane:nth-child(3) { background-image: linear-gradient(160deg, rgba(120, 168, 255, .12), transparent 60%); }
[data-theme="glass"] :is(button, .btn) { border-radius: 12px; }
[data-theme="glass"] :is(button.ghost, .btn.ghost) { background: rgba(255, 255, 255, .04); border-color: rgba(255, 255, 255, .12); }
[data-theme="glass"] :is(input, select, textarea) { background: rgba(0, 0, 0, .25); border-color: rgba(255, 255, 255, .12); border-radius: 12px; }
[data-theme="glass"] select option { background: #121b19; }
[data-theme="glass"] .tag { border-radius: 999px; }
[data-theme="glass"] nav .cta { border-radius: 14px; box-shadow: 0 8px 24px rgba(58, 211, 178, .3); }
@media (hover: hover) and (pointer: fine) {
  [data-theme="glass"] :is(.lane, .months) { transition: transform .25s var(--e-out), box-shadow .25s var(--e-out); }
  [data-theme="glass"] :is(.lane, .months):hover { transform: translateY(-3px); box-shadow: 0 28px 56px -24px rgba(0, 0, 0, .85), 0 0 0 1px rgba(58, 211, 178, .16); }
  [data-theme="glass"] :is(button:not(.link):not(.copy):not(.ghost), .btn:not(.ghost)):hover { box-shadow: 0 8px 24px rgba(58, 211, 178, .32); }
}
/* Капли: сам значок получает круглый стеклянный фон с бликом сверху */
[data-theme="glass"] nav > a .ico, [data-theme="glass"] .themebtn .ico { box-sizing: content-box; width: 16px; height: 16px; padding: 7px; border-radius: 50%; flex: none;
  background:
    radial-gradient(60% 34% at 50% 16%, rgba(255, 255, 255, .42), transparent 75%),
    radial-gradient(120% 120% at 30% 15%, rgba(255, 255, 255, .12), rgba(255, 255, 255, .03) 50%, rgba(255, 255, 255, .015) 75%);
  box-shadow: inset 0 1px 1px rgba(255, 255, 255, .35), inset 0 -3px 7px rgba(0, 0, 0, .35), inset 0 0 0 1px rgba(255, 255, 255, .1), 0 6px 14px -6px rgba(0, 0, 0, .6);
  transition: transform .2s var(--e-out); }
[data-theme="glass"] nav > a[aria-current] .ico { color: #04241d; stroke-width: 2.1;
  background: radial-gradient(60% 34% at 50% 16%, rgba(255, 255, 255, .7), transparent 75%), radial-gradient(120% 120% at 30% 15%, #b6fbe9 0%, #4fe0bf 38%, #18a888 78%, #0f7d66 100%);
  box-shadow: inset 0 1px 2px rgba(255, 255, 255, .7), inset 0 -4px 8px rgba(0, 40, 30, .35), 0 6px 18px -4px rgba(58, 211, 178, .6); }
@media (hover: hover) and (pointer: fine) { [data-theme="glass"] nav > a:hover .ico { transform: translateY(-1px) scale(1.06); } }
[data-theme="glass"] nav > a:active .ico { transform: scale(.94); }
[data-theme="glass"] .lico .ico { box-sizing: content-box; width: 17px; height: 17px; padding: 8px; border-radius: 50%; color: #04241d; stroke-width: 2.1;
  background: radial-gradient(60% 34% at 50% 16%, rgba(255, 255, 255, .7), transparent 75%), radial-gradient(120% 120% at 30% 15%, #b6fbe9, #4fe0bf 38%, #18a888 78%, #0f7d66);
  box-shadow: inset 0 -4px 8px rgba(0, 40, 30, .35), 0 8px 18px -6px rgba(58, 211, 178, .55); }
[data-theme="glass"] .board .lane:nth-child(2) .lico .ico { color: #3b1607; background: radial-gradient(60% 34% at 50% 16%, rgba(255, 255, 255, .7), transparent 75%), radial-gradient(120% 120% at 30% 15%, #ffe2d1, #ffad86 40%, #e57a4b 80%, #b85a31); box-shadow: inset 0 -4px 8px rgba(60, 20, 0, .3), 0 8px 18px -6px rgba(255, 150, 100, .55); }
[data-theme="glass"] .board .lane:nth-child(3) .lico .ico { color: #0a1838; background: radial-gradient(60% 34% at 50% 16%, rgba(255, 255, 255, .7), transparent 75%), radial-gradient(120% 120% at 30% 15%, #dbe8ff, #8db6ff 40%, #4d7fe0 80%, #335bb0); box-shadow: inset 0 -4px 8px rgba(0, 20, 60, .3), 0 8px 18px -6px rgba(110, 160, 255, .55); }
@media (max-width: 760px) {
  [data-theme="glass"] nav[aria-label="Разделы"] { border-radius: 24px; background: rgba(14, 22, 20, .72); border-color: rgba(255, 255, 255, .08); box-shadow: 0 16px 44px -10px rgba(0, 0, 0, .8); }
  [data-theme="glass"] nav > .pill { --pill-r: 18px; }
  [data-theme="glass"] nav > a .ico, [data-theme="glass"] .themebtn .ico { width: 20px; height: 20px; padding: 9px; }
}

/* ═════════ Плитки показателей на главной (во всех видах) ═════════ */
.kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 4px 0 8px; }
.kpi { position: relative; display: flex; flex-direction: column; gap: 4px; min-height: 132px; padding: 14px 16px 12px; border-radius: 16px; text-decoration: none; color: var(--chalk);
  background: var(--panel); border: 1px solid var(--line); overflow: hidden; transition: transform .18s var(--e-out), border-color .18s var(--e-out); }
@media (hover: hover) and (pointer: fine) { .kpi:hover { transform: translateY(-2px); border-color: var(--line-strong); } }
.kpi:active { transform: scale(.985); }
.kl { font-size: 13px; color: var(--soft); }
.kv { font-size: 26px; line-height: 1.15; font-weight: 700; letter-spacing: -.02em; white-space: nowrap; }
.kv small { font-size: 15px; font-weight: 500; color: var(--soft); letter-spacing: 0; }
.kn { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--soft); }
.kd { display: inline-flex; align-items: center; padding: 1px 8px; border-radius: 999px; font-weight: 600; font-size: 12px; }
.kd.up { background: var(--ok-bg); color: var(--ok); }
.kd.down { background: var(--bad-bg); color: var(--bad); }
.spark { width: 100%; height: 34px; margin-top: auto; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linejoin: round; stroke-linecap: round; opacity: .7; }
.kfoot { margin-top: auto; font-size: 12.5px; color: var(--soft); }
.yearline { margin: 4px 0 16px !important; font-size: 13.5px; }
.livepill { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: 999px; border: 1px solid var(--line-strong); color: var(--chalk); text-decoration: none; font-size: 13.5px; font-weight: 500; }
.livepill i { width: 7px; height: 7px; border-radius: 50%; background: var(--warn); }
.brand { display: flex; align-items: center; gap: 10px; }
.brand .mark { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 8px; background: var(--chalk); color: var(--cloth); font-size: 15px; font-weight: 800; flex: none; }
@media (max-width: 1080px) { .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) { .kpi { min-height: 116px; padding: 12px 13px 10px; } .kv { font-size: 21px; } .livepill { display: none; } }

/* ═════════ Новый вид «Монохром» ═════════
   Как в дорогих панелях: светло-серый фон, белые и одна чёрная карточка, без цветного акцента.
   Цвет только у роста и падения. Меню сверху — полоса-таблетка, выбранный раздел — чёрная плашка. */
[data-theme="mono"] {
  color-scheme: light;
  --cloth: #ececec; --cloth-deep: #ffffff; --panel: #ffffff; --panel-up: #f4f4f4; --hover: #f5f5f5;
  --line: #e4e4e4; --line-strong: #d4d4d4;
  --chalk: #111111; --soft: #555555; --dim: #6a6a6a;
  --mark: #111111; --mark-hover: #2b2b2b; --mark-ink: #ffffff;
  --ok: #157a3d; --ok-bg: #dff3e6; --bad: #b42318; --bad-bg: #fde4e1; --warn: #a15c00; --warn-bg: #fdf0d8;
  --tag-w-bg: #111111; --tag-w-ink: #ffffff; --date-filter: none;
  --radius: 16px;
}
:is([data-theme="mono"], [data-theme="monodark"]) a { color: var(--chalk); text-decoration-color: #c4c4c4; }
:is([data-theme="mono"], [data-theme="monodark"]) :is(.scroll, .facts, .lane, .months, .orderpick) { background: #fff; border: 0; box-shadow: 0 1px 2px rgba(0, 0, 0, .04); }
:is([data-theme="mono"], [data-theme="monodark"]) :is(.scroll, .facts, .months, .orderpick) { border-radius: 18px; }
:is([data-theme="mono"], [data-theme="monodark"]) .lane { border-radius: 20px; padding: 14px 8px 8px; }
:is([data-theme="mono"], [data-theme="monodark"]) .lane h2::after { background: var(--line); }
:is([data-theme="mono"], [data-theme="monodark"]) .lane .count, :is([data-theme="mono"], [data-theme="monodark"]) .lane i.code { color: var(--soft); }
:is([data-theme="mono"], [data-theme="monodark"]) .kpi { background: #fff; border: 0; box-shadow: 0 1px 2px rgba(0, 0, 0, .04); }
:is([data-theme="mono"], [data-theme="monodark"]) .kpi.dark { background: #111; color: #fff; }
:is([data-theme="mono"], [data-theme="monodark"]) .kpi.dark :is(.kl, .kn, .kv small) { color: rgba(255, 255, 255, .62); }
:is([data-theme="mono"], [data-theme="monodark"]) .kpi.dark .kd.up { background: rgba(255, 255, 255, .12); color: #7ee0a3; }
:is([data-theme="mono"], [data-theme="monodark"]) .kpi.dark .kd.down { background: rgba(255, 255, 255, .12); color: #ff9b8f; }
:is([data-theme="mono"], [data-theme="monodark"]) .kpi.soft { background: #e2e2e2; }
:is([data-theme="mono"], [data-theme="monodark"]) :is(button, .btn) { border-radius: 999px; padding: 7px 16px; }
:is([data-theme="mono"], [data-theme="monodark"]) :is(button.ghost, .btn.ghost) { background: #fff; border-color: #fff; box-shadow: 0 1px 2px rgba(0, 0, 0, .06); }
:is([data-theme="mono"], [data-theme="monodark"]) :is(input, select, textarea) { background: #fff; border-color: #dcdcdc; border-radius: 12px; }
:is([data-theme="mono"], [data-theme="monodark"]) .tag { border-radius: 999px; }
:is([data-theme="mono"], [data-theme="monodark"]) .tag.gray { background: #ececec; }
:is([data-theme="mono"], [data-theme="monodark"]) th { color: var(--dim); font-size: 12.5px; }
:is([data-theme="mono"], [data-theme="monodark"]) .livepill { background: #fff; border-color: #fff; box-shadow: 0 1px 2px rgba(0, 0, 0, .06); }
:is([data-theme="mono"], [data-theme="monodark"]) .livepill i { background: #111; }
:is([data-theme="mono"], [data-theme="monodark"]) .brand .mark { background: #111; color: #fff; }
:is([data-theme="mono"], [data-theme="monodark"]) .mbar i { background: #cfcfcf; }
:is([data-theme="mono"], [data-theme="monodark"]) .mbar.on i, :is([data-theme="mono"], [data-theme="monodark"]) .mbar:hover i { background: #111; }
:is([data-theme="mono"], [data-theme="monodark"]) .hbar i { background: #111; }
:is([data-theme="mono"], [data-theme="monodark"]) ::selection { background: #111; color: #fff; }

/* Меню сверху на компьютере */
@media (min-width: 761px) {
  :is([data-theme="mono"], [data-theme="monodark"]) body { flex-direction: column; }
  :is([data-theme="mono"], [data-theme="monodark"]) nav[aria-label="Разделы"] { position: sticky; top: 0; z-index: 20; width: auto; height: auto; flex-direction: row; align-items: center; gap: 0;
    padding: 14px 32px; background: color-mix(in srgb, #ececec 88%, transparent); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); overflow: visible; }
  :is([data-theme="mono"], [data-theme="monodark"]) nav .group { display: none; }
  :is([data-theme="mono"], [data-theme="monodark"]) nav .brand { padding: 0; margin-right: 18px; font-size: 16px; white-space: nowrap; }
  :is([data-theme="mono"], [data-theme="monodark"]) nav .find { order: 50; width: 170px; margin-left: auto; }
  :is([data-theme="mono"], [data-theme="monodark"]) nav .find input { background: #fff; border-color: #fff; border-radius: 999px; }
  :is([data-theme="mono"], [data-theme="monodark"]) nav > a:not(.brand):not(.cta) { padding: 7px 13px; border-radius: 999px; background: transparent; color: #3a3a3a; font-size: 14px; font-weight: 500; }
  :is([data-theme="mono"], [data-theme="monodark"]) nav > a:not(.brand):not(.cta) .ico { display: none; }
  :is([data-theme="mono"], [data-theme="monodark"]) nav > a[href="/"]:not(.brand) { margin-left: 4px; }
  :is([data-theme="mono"], [data-theme="monodark"]) nav > a[aria-current]:not(.brand):not(.cta) { color: #fff; font-weight: 600; }
  @media (hover: hover) { :is([data-theme="mono"], [data-theme="monodark"]) nav > a:not(.brand):not(.cta):not([aria-current]):hover { background: rgba(0, 0, 0, .05); color: #111; } }
  :is([data-theme="mono"], [data-theme="monodark"]) nav > a b { background: #ececec; color: #111; }
  :is([data-theme="mono"], [data-theme="monodark"]) nav > a[aria-current] b { background: rgba(255, 255, 255, .2); color: #fff; }
  /* Полоса-таблетка под пунктами: белая подложка, по ней едет чёрная плашка */
  :is([data-theme="mono"], [data-theme="monodark"]) nav[aria-label="Разделы"]::before { content: ""; position: absolute; z-index: 0; top: 50%; transform: translateY(-50%); height: 44px;
    left: var(--bar-l, 0); width: var(--bar-w, 0); border-radius: 999px; background: #fff; box-shadow: 0 1px 2px rgba(0, 0, 0, .06); }
  :is([data-theme="mono"], [data-theme="monodark"]) nav > .pill { --pill-r: 999px; background: #111; box-shadow: 0 2px 6px rgba(0, 0, 0, .18); z-index: 0; }
  :is([data-theme="mono"], [data-theme="monodark"]) .themebtn { order: 51; margin: 0 0 0 8px; padding: 7px 10px; border-radius: 999px; }
  :is([data-theme="mono"], [data-theme="monodark"]) .themebtn .th { display: none !important; }
  :is([data-theme="mono"], [data-theme="monodark"]) nav .cta { order: 52; margin-left: 8px; padding: 8px 16px; border-radius: 999px; background: #111; color: #fff; white-space: nowrap; }
  :is([data-theme="mono"], [data-theme="monodark"]) nav .cta .ico { display: inline-block; width: 16px; height: 16px; }
  :is([data-theme="mono"], [data-theme="monodark"]) main { max-width: 1440px; width: 100%; margin: 0 auto; padding-top: 10px; }
}
@media (min-width: 761px) and (max-width: 1280px) {
  :is([data-theme="mono"], [data-theme="monodark"]) nav .find { display: none; }
  :is([data-theme="mono"], [data-theme="monodark"]) nav > a:not(.brand):not(.cta) { padding: 7px 10px; font-size: 13.5px; }
  :is([data-theme="mono"], [data-theme="monodark"]) nav .cta span:not(.mark) { display: none; }
}
/* Телефон: нижняя панель в монохроме */
@media (max-width: 760px) {
  :is([data-theme="mono"], [data-theme="monodark"]) nav[aria-label="Разделы"] { background: #fff; border-color: #fff; box-shadow: 0 8px 28px rgba(0, 0, 0, .14); }
  :is([data-theme="mono"], [data-theme="monodark"]) nav > .pill { background: #111; }
  :is([data-theme="mono"], [data-theme="monodark"]) nav > a[aria-current] { color: #fff; }
  :is([data-theme="mono"], [data-theme="monodark"]) nav > a[aria-current] .ico { color: #fff; }
}
:is([data-theme="mono"], [data-theme="monodark"]) a.btn:not(.ghost), :is([data-theme="mono"], [data-theme="monodark"]) nav a.cta { color: #fff; }
:is([data-theme="mono"], [data-theme="monodark"]) .board { align-items: start; }
.kd { white-space: nowrap; flex: none; }
.kn { flex-wrap: wrap; row-gap: 2px; }

/* ═════════ Тёмный монохром ═════════
   Тот же вид, вывернутый наизнанку: почти чёрный фон, тёмно-серые карточки, одна светлая карточка-акцент,
   белая плашка в меню. Заменил прежний зелёно-жёлтый тёмный вид. */
[data-theme="monodark"] {
  color-scheme: dark;
  --cloth: #0b0b0b; --cloth-deep: #141414; --panel: #161616; --panel-up: #1f1f1f; --hover: #1c1c1c;
  --line: #262626; --line-strong: #333333;
  --chalk: #f2f2f2; --soft: #9b9b9b; --dim: #8c8c8c;
  --mark: #f2f2f2; --mark-hover: #ffffff; --mark-ink: #0b0b0b;
  --ok: #6fd69a; --ok-bg: rgba(111, 214, 154, .12); --bad: #ff8a7a; --bad-bg: rgba(255, 138, 122, .12); --warn: #f0b95a; --warn-bg: rgba(240, 185, 90, .12);
  --tag-w-bg: #f2f2f2; --tag-w-ink: #0b0b0b; --date-filter: invert(.85);
  --radius: 16px;
}
[data-theme="monodark"] a { color: #e6e6e6; text-decoration-color: #4a4a4a; }
[data-theme="monodark"] :is(.scroll, .facts, .lane, .months, .orderpick, .kpi) { background: #161616; box-shadow: inset 0 0 0 1px #222; }
[data-theme="monodark"] .kpi.dark { background: #f2f2f2; color: #0b0b0b; }
[data-theme="monodark"] .kpi.dark :is(.kl, .kn, .kv small) { color: rgba(0, 0, 0, .55); }
[data-theme="monodark"] .kpi.dark .kd.up { background: rgba(0, 0, 0, .07); color: #157a3d; }
[data-theme="monodark"] .kpi.dark .kd.down { background: rgba(0, 0, 0, .07); color: #b42318; }
[data-theme="monodark"] .kpi.soft { background: #222; }
[data-theme="monodark"] :is(button.ghost, .btn.ghost), [data-theme="monodark"] .livepill { background: #1c1c1c; border-color: #1c1c1c; box-shadow: none; color: #f2f2f2; }
[data-theme="monodark"] .livepill i { background: #f2f2f2; }
[data-theme="monodark"] a.btn:not(.ghost), [data-theme="monodark"] nav a.cta { color: #0b0b0b; background: #f2f2f2; }
[data-theme="monodark"] .brand .mark { background: #f2f2f2; color: #0b0b0b; }
[data-theme="monodark"] :is(input, select, textarea) { background: #161616; border-color: #2a2a2a; }
[data-theme="monodark"] select option { background: #161616; }
[data-theme="monodark"] .tag.gray { background: #232323; }
[data-theme="monodark"] .mbar i { background: #3a3a3a; }
[data-theme="monodark"] :is(.mbar.on i, .mbar:hover i, .hbar i) { background: #f2f2f2; }
[data-theme="monodark"] ::selection { background: #f2f2f2; color: #0b0b0b; }
@media (min-width: 761px) {
  [data-theme="monodark"] nav[aria-label="Разделы"] { background: color-mix(in srgb, #0b0b0b 85%, transparent); }
  [data-theme="monodark"] nav[aria-label="Разделы"]::before { background: #161616; box-shadow: inset 0 0 0 1px #242424; }
  [data-theme="monodark"] nav > .pill { background: #f2f2f2; box-shadow: none; }
  [data-theme="monodark"] nav > a:not(.brand):not(.cta) { color: #b8b8b8; }
  [data-theme="monodark"] nav > a[aria-current]:not(.brand):not(.cta) { color: #0b0b0b; }
  @media (hover: hover) { [data-theme="monodark"] nav > a:not(.brand):not(.cta):not([aria-current]):hover { background: rgba(255, 255, 255, .06); color: #fff; } }
  [data-theme="monodark"] nav > a b { background: #262626; color: #f2f2f2; }
  [data-theme="monodark"] nav > a[aria-current] b { background: rgba(0, 0, 0, .12); color: #0b0b0b; }
  [data-theme="monodark"] nav .find input { background: #161616; border-color: #161616; }
}
@media (max-width: 760px) {
  [data-theme="monodark"] nav[aria-label="Разделы"] { background: #161616; border-color: #242424; box-shadow: 0 8px 28px rgba(0, 0, 0, .6); }
  [data-theme="monodark"] nav > .pill { background: #f2f2f2; }
  [data-theme="monodark"] nav > a[aria-current], [data-theme="monodark"] nav > a[aria-current] .ico { color: #0b0b0b; }
}

/* ═════════ Статистика: круглые графики и плавная смена данных ═════════ */
.donut .dwrap { display: flex; align-items: center; gap: 18px; }
.donut svg { width: 132px; height: 132px; flex: none; }
.donut .seg { fill: none; stroke-width: 5.2; stroke: var(--chalk); transition: stroke-width .18s var(--e-out); }
.donut .seg:hover { stroke-width: 6.6; }
.donut .s0 { stroke: var(--chalk); background: var(--chalk); }
.donut .s1 { stroke: color-mix(in srgb, var(--chalk) 68%, var(--panel)); background: color-mix(in srgb, var(--chalk) 68%, var(--panel)); }
.donut .s2 { stroke: color-mix(in srgb, var(--chalk) 46%, var(--panel)); background: color-mix(in srgb, var(--chalk) 46%, var(--panel)); }
.donut .s3 { stroke: color-mix(in srgb, var(--chalk) 30%, var(--panel)); background: color-mix(in srgb, var(--chalk) 30%, var(--panel)); }
.donut .s4 { stroke: color-mix(in srgb, var(--chalk) 19%, var(--panel)); background: color-mix(in srgb, var(--chalk) 19%, var(--panel)); }
.donut .s5 { stroke: color-mix(in srgb, var(--chalk) 11%, var(--panel)); background: color-mix(in srgb, var(--chalk) 11%, var(--panel)); }
.donut .dsum { font: 700 6.2px Golos, sans-serif; fill: var(--chalk); text-anchor: middle; }
.donut .dunit { font: 400 2.9px Golos, sans-serif; fill: var(--soft); text-anchor: middle; }
.dlegend { list-style: none; margin: 0; padding: 0; flex: 1; min-width: 0; font-size: 13px; }
.dlegend li { display: flex; align-items: center; gap: 8px; padding: 3px 0; }
.dlegend i { width: 9px; height: 9px; border-radius: 50%; flex: none; }
.dlegend span { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--soft); }
/* Прорисовка при открытии: кольцо собирается по кругу, столбики вырастают */
@keyframes ring { from { stroke-dasharray: 0 100; } }
@keyframes growY { from { transform: scaleY(0); } }
@keyframes growX { from { transform: scaleX(0); } }
.donut .seg { animation: ring .6s var(--e-out) both; }
.mbar i { transform-origin: bottom; animation: growY .45s var(--e-out) both; }
.hbar i { transform-origin: left; animation: growX .45s var(--e-out) both; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: .22s; }
@media (prefers-reduced-motion: reduce) { .donut .seg, .mbar i, .hbar i { animation: none; } }
@media (max-width: 760px) { .donut svg { width: 108px; height: 108px; } }

/* ═════════ 10.11.2026: плитки без ссылки, карточки-таблицы на телефоне, тихая строка ═════════ */
.kpi.flat { cursor: default; }
.kpi.flat:hover, .kpi.flat:active { transform: none; border-color: var(--line); }
.kpi.flat { min-height: 104px; }
.board.n1 { grid-template-columns: minmax(0, 1fr); }
.board.n2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.quiet { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 0; }
.quiet span { display: inline-flex; align-items: center; gap: 7px; padding: 5px 12px; border-radius: 999px; background: var(--panel); color: var(--soft); font-size: 13.5px; }
.quiet span::before { content: "✓"; color: var(--ok); font-weight: 700; }
@media (min-width: 761px) { .board.n1 .lane ul { columns: 2; column-gap: 8px; } .board.n1 .lane li { break-inside: avoid; } }
@media (max-width: 1080px) { .board.n2 { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 760px) {
  /* Таблица превращается в стопку карточек: первая ячейка заголовок, остальные «подпись — значение» */
  .scroll.cards { background: none !important; border: 0 !important; box-shadow: none !important; overflow: visible; backdrop-filter: none !important; -webkit-backdrop-filter: none !important; border-radius: 0 !important; }
  .cards table, .cards tbody, .cards tr { display: block; }
  .cards thead { display: none; }
  .cards tr { background: var(--panel); border: 1px solid var(--line); border-radius: 16px; padding: 10px 14px; margin-bottom: 8px; }
  .cards td { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; border: 0; padding: 3px 0; text-align: right; white-space: normal; width: auto; }
  .cards td::before { content: attr(data-l); flex: none; color: var(--soft); font-size: 13px; text-align: left; }
  .cards td:first-child { font-size: 16px; font-weight: 600; text-align: left; padding-bottom: 5px; }
  .cards td:first-child::before, .cards td.end::before { content: none; }
  .cards td:empty { display: none; }
  .cards td.end { justify-content: flex-end; padding-top: 6px; }
  .cards .end .inline { flex-wrap: wrap; }
  .kpi.flat { min-height: 92px; }
}

/* Галочка в строке фильтров и экран входа */
.inlinecheck { flex-direction: row; align-items: center; gap: 8px; font-size: 14px; color: var(--chalk); padding-bottom: 8px; cursor: pointer; }
.inlinecheck input { width: 16px; height: 16px; min-width: 0; margin: 0; accent-color: var(--mark); }
.gate { background: var(--cloth); }
.gate main { flex: 0 1 380px; padding: 36px 32px 32px; background: var(--panel); border-radius: 24px; box-shadow: 0 1px 2px rgba(0, 0, 0, .05), 0 24px 60px -30px rgba(0, 0, 0, .25); text-align: center; }
.gatemark { display: inline-grid; place-items: center; width: 52px; height: 52px; border-radius: 15px; background: var(--chalk); color: var(--panel); font-size: 26px; font-weight: 800; margin-bottom: 14px; }
.gate h1 { font-size: 24px; margin: 0; }
.gatesub { margin: 6px 0 22px; font-size: 14px; }
.gateform { text-align: left; }
.gateform input { padding: 11px 13px; border-radius: 12px; }
.gateform button { padding: 11px 14px; border-radius: 999px; }
.gate { flex-direction: row !important; }
.gate main { flex: none; width: min(380px, calc(100% - 32px)); margin: auto; }

/* ═════════ Простой вид для технолога (src/tech.js) ═════════ */
.techv { display: block; background: #ececec; }
.techv main { max-width: 640px; margin: 0 auto; padding: 18px 14px 40px; }
.thead { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.thead .mark { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; background: #111; color: #fff; font-size: 20px; font-weight: 800; flex: none; }
.thead h1 { font-size: 24px; margin: 0; }
.thead p { margin: 0; color: #6b6b6b; font-size: 14px; }
.tlist { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.tlist li { display: flex; align-items: center; gap: 12px; background: #fff; border-radius: 16px; padding: 12px 14px; box-shadow: 0 1px 2px rgba(0, 0, 0, .04); }
.tlist .tn { font-size: 20px; font-weight: 800; min-width: 44px; letter-spacing: -.02em; }
.tlist .tb { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.tlist .tb b { font-weight: 600; font-size: 15.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tlist .tb span { color: #6b6b6b; font-size: 13.5px; }
.tlist .ts { font-style: normal; font-size: 13px; font-weight: 700; padding: 4px 10px; border-radius: 999px; background: #111; color: #fff; flex: none; }
.tlist li.done { opacity: .62; }
.tlist li.done .ts { background: #dff3e6; color: #157a3d; }
/* Кнопка «Простой вид»: только в нижней панели телефона */
nav > a.techlink { display: none; }
@media (max-width: 760px) { nav > a.techlink { display: flex; } }
.tback { text-align: center; margin: 26px 0 0; font-size: 13px; }
.tback a { color: #8e8e8e; }
/* Простой вид: ссылки-карточки, карточка маршрутки, тёмный вариант */
.tlist li { padding: 0; }
.tlist li > a { display: flex; align-items: center; gap: 12px; width: 100%; padding: 12px 14px; color: inherit; text-decoration: none; -webkit-tap-highlight-color: transparent; }
.tlist li > a:active { background: rgba(0, 0, 0, .04); border-radius: 16px; }
.thead .tt { flex: 1; min-width: 0; }
.thead .tt p { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tmode, .tbackbtn { display: inline-grid; place-items: center; width: 40px; height: 40px; flex: none; border-radius: 12px; border: 0; padding: 0; background: #fff; color: #111; font-size: 20px; text-decoration: none; box-shadow: 0 1px 2px rgba(0, 0, 0, .06); cursor: pointer; }
.tbackbtn { font-size: 30px; line-height: 1; }
.tcard { background: #fff; border-radius: 18px; padding: 14px 16px; box-shadow: 0 1px 2px rgba(0, 0, 0, .04); }
.tstat { display: inline-block; margin-bottom: 10px; padding: 5px 12px; border-radius: 999px; background: #111; color: #fff; font-weight: 700; font-size: 14px; }
.tstat.done { background: #dff3e6; color: #157a3d; }
.tcard dl { margin: 0; }
.trow { display: grid; grid-template-columns: 112px 1fr; gap: 10px; padding: 9px 0; border-top: 1px solid #ededed; }
.trow:first-child { border-top: 0; }
.trow dt { color: #6b6b6b; font-size: 14px; }
.trow dd { margin: 0; font-size: 15.5px; display: flex; flex-direction: column; gap: 3px; overflow-wrap: anywhere; }
[data-theme="monodark"] .techv { background: #0b0b0b; color: #f2f2f2; }
[data-theme="monodark"] .techv :is(.tlist li, .tcard, .tmode, .tbackbtn) { background: #161616; color: #f2f2f2; box-shadow: inset 0 0 0 1px #222; }
[data-theme="monodark"] .techv .thead .mark { background: #f2f2f2; color: #0b0b0b; }
[data-theme="monodark"] .techv :is(.thead p, .tlist .tb span, .trow dt) { color: #9b9b9b; }
[data-theme="monodark"] .techv .tlist .ts, [data-theme="monodark"] .techv .tstat { background: #f2f2f2; color: #0b0b0b; }
[data-theme="monodark"] .techv :is(.tlist li.done .ts, .tstat.done) { background: rgba(111, 214, 154, .14); color: #6fd69a; }
[data-theme="monodark"] .techv .trow { border-color: #232323; }
[data-theme="monodark"] .techv .tlist li > a:active { background: rgba(255, 255, 255, .05); }

/* ═════════ Скорость, 11.11.2026 ═════════
   Размытие под меню и карточками и неподвижный фон заставляют телефон перерисовывать экран при каждой прокрутке.
   На телефоне их нет: те же цвета сплошной заливкой. На компьютере меню монохрома тоже без размытия. */
@media (min-width: 761px) {
  :is([data-theme="mono"]) nav[aria-label="Разделы"] { background: #ececec; backdrop-filter: none; -webkit-backdrop-filter: none; }
  [data-theme="monodark"] nav[aria-label="Разделы"] { background: #0b0b0b; backdrop-filter: none; -webkit-backdrop-filter: none; }
}
@media (max-width: 760px), (pointer: coarse) {
  *, *::before, *::after { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
  body { background-attachment: scroll !important; }
  [data-theme="glass"] nav[aria-label="Разделы"] { background: #0f1716; }
  [data-theme="glass"] :is(.scroll, .facts, .lane, .months, .orderpick) { background-color: #121b19; }
  .kpi, .lane, .scroll, .months { contain: layout paint; }
}

/* Плашка на телефоне: двигается видеокартой, мягко, без перерисовки нижней панели */
nav > .pill.gpu { left: 0; top: 0; border-radius: var(--pill-r); will-change: transform; contain: strict;
  transition: transform .32s cubic-bezier(.23, 1, .32, 1), width .32s cubic-bezier(.23, 1, .32, 1); }
@media (prefers-reduced-motion: reduce) { nav > .pill.gpu { transition: none; } }
/* Касание откликается сразу: без задержки на двойное нажатие и без серой вспышки */
a, button, label { touch-action: manipulation; -webkit-tap-highlight-color: transparent; }

/* Готов, упакован: жёлтая метка «ждёт отгрузки» */
.tag.ready { background: var(--warn-bg); color: var(--warn); font-weight: 600; }
.board { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.tlist .ts { min-width: 82px; text-align: center; }
.tlist li.ready .ts, .tstat.ready { background: #fdf0d8; color: #a15c00; }
[data-theme="monodark"] .techv :is(.tlist li.ready .ts, .tstat.ready) { background: rgba(240, 185, 90, .14); color: #f0b95a; }
.tform { margin: 12px 0 2px; }
.tbtn { width: 100%; justify-content: center; padding: 13px 16px; border-radius: 14px; font-size: 16px; font-weight: 700; background: #111; color: #fff; border: 0; }
.tbtn.ghost { background: transparent; color: #6b6b6b; border: 1px solid #d4d4d4; font-weight: 500; font-size: 14px; padding: 10px 14px; }
[data-theme="monodark"] .techv .tbtn { background: #f2f2f2; color: #0b0b0b; }
[data-theme="monodark"] .techv .tbtn.ghost { background: transparent; color: #9b9b9b; border-color: #333; }

/* Маршрутка шефа (форма на телефоне): крупные поля, простой вид для людей в возрасте */
.bigadd, .bigsave { display: flex; width: 100%; justify-content: center; align-items: center; padding: 17px 16px; border-radius: 16px; font-size: 18px; font-weight: 700; text-decoration: none; margin: 0 0 14px; background: #111; color: #fff; border: 0; }
.bigsave { margin-top: 6px; }
.bigsave:disabled { opacity: .6; }
.chsub { font-size: 14px; font-weight: 700; color: #6b6b6b; text-transform: uppercase; letter-spacing: .04em; margin: 18px 2px 8px; }
.cform { display: grid; gap: 12px; }
.cbox { background: #fff; border-radius: 18px; padding: 14px 14px 12px; box-shadow: 0 1px 2px rgba(0, 0, 0, .04); display: grid; gap: 10px; }
.cbox h2 { font-size: 16px; margin: 0; }
.cbox label, .cl { display: grid; gap: 5px; font-size: 14px; font-weight: 600; color: #444; }
.cbox input { font-size: 17px; padding: 12px 12px; border-radius: 12px; min-width: 0; width: 100%; }
.cnum { display: grid; grid-template-columns: 1fr 1.4fr; gap: 10px; }
.crow { display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: start; }
.crow:has(.cqty) { grid-template-columns: 1fr 74px auto; }
.cdel { width: 44px; height: 46px; padding: 0; justify-content: center; font-size: 22px; background: transparent; color: #8a8a8a; border: 1px solid #d4d4d4; border-radius: 12px; }
.cadd { justify-self: start; background: transparent; color: #111; border: 1px dashed #aaa; border-radius: 12px; padding: 10px 14px; font-size: 15px; font-weight: 600; }
.acw { position: relative; min-width: 0; }
.acl { position: absolute; z-index: 20; left: 0; right: 0; top: calc(100% + 4px); margin: 0; padding: 4px; list-style: none; background: #fff; border-radius: 14px; box-shadow: 0 8px 28px rgba(0, 0, 0, .22), 0 0 0 1px rgba(0, 0, 0, .08); max-height: 260px; overflow: auto; }
.acl li { padding: 12px 12px; border-radius: 10px; font-size: 16px; font-weight: 500; color: #111; }
.acl li:active, .acl li:hover { background: #eee; }
.photofile { font-size: 15px !important; padding: 10px !important; }
.photoprev { max-width: 100%; max-height: 280px; border-radius: 14px; object-fit: contain; justify-self: start; }
.photoprev[hidden], .cadd[hidden] { display: none; }
.cerr { font-size: 13px; margin: 6px 0 10px; }
a.tbtn { display: flex; text-decoration: none; margin: 8px 0; }
[data-theme="monodark"] .techv :is(.cbox, .acl) { background: #161616; box-shadow: inset 0 0 0 1px #222; }
[data-theme="monodark"] .techv .acl { box-shadow: 0 8px 28px rgba(0, 0, 0, .6), inset 0 0 0 1px #333; }
[data-theme="monodark"] .techv :is(.cbox label, .cl, .chsub) { color: #c8c8c8; }
[data-theme="monodark"] .techv .acl li { color: #f2f2f2; }
[data-theme="monodark"] .techv .acl li:active { background: #262626; }
[data-theme="monodark"] .techv .bigadd, [data-theme="monodark"] .techv .bigsave { background: #f2f2f2; color: #0b0b0b; }
[data-theme="monodark"] .techv .cadd { color: #f2f2f2; border-color: #555; }
[data-theme="monodark"] .techv .cdel { border-color: #333; }
[data-theme="monodark"] .techv .cbox input { background: #0f0f0f; color: #f2f2f2; border-color: #333; }

/* Работа швей (технолог): неделя, операции с ценами, кто что сделал */
.tcard .cform input, .tcard .cform select, .wrow input { font-size: 17px; padding: 12px; border-radius: 12px; min-width: 0; width: 100%; }
.tcard .cform select { background: #fff; border: 1px solid #d4d4d4; color: #111; }
.okbox { background: #e8f5e9; color: #1b5e20; padding: 10px 12px; border-radius: 10px; margin: 0 0 10px; }
.wgo { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.wgo .tbtn { justify-content: center; font-size: 17px; padding: 16px 10px; color: #fff; background: #111; }
[data-theme="monodark"] .techv .wgo .tbtn { color: #0b0b0b; background: #f2f2f2; }
.wnav { display: grid; grid-template-columns: auto 1fr auto; gap: 8px; align-items: center; text-align: center; margin: 8px 0; }
.wnav .tbtn { margin: 0; }
.wsum { list-style: none; margin: 0; padding: 0; }
.wsum a { display: flex; justify-content: space-between; padding: 11px 2px; border-bottom: 1px solid #eee; color: inherit; text-decoration: none; font-size: 16px; }
.wtab { width: 100%; border-collapse: collapse; font-size: 15px; margin: 4px 0 8px; }
.wtab th { text-align: left; font-size: 12px; color: #777; font-weight: 600; padding: 4px; }
.wtab td { padding: 8px 4px; border-top: 1px solid #eee; vertical-align: middle; }
.wtab small { color: #888; }
.wtab tr.full td { color: #2e7d32; }
.wtab tr.over td { color: #c62828; font-weight: 600; }
.wtab tr.off td { opacity: .5; }
.wtab .wtot td { font-weight: 700; border-top: 2px solid #ccc; }
.wtab .cdel { width: 36px; height: 36px; font-size: 18px; }
.wforce { display: flex; gap: 8px; align-items: center; font-weight: 600; color: #b26a00; }
.wforce input { width: 22px !important; height: 22px; }
.wrow { display: grid; grid-template-columns: 1fr 74px; gap: 6px; }
.wrow .tbtn { margin: 0; justify-content: center; }
.wlink { background: #fff; color: #111; border: 2px solid #111; }
.tcard details summary { list-style: none; cursor: pointer; margin: 8px 0; }
[data-theme="monodark"] .techv .tcard .cform select, [data-theme="monodark"] .techv .tcard .cform input, [data-theme="monodark"] .techv .wrow input { background: #0f0f0f; color: #f2f2f2; border-color: #333; }
[data-theme="monodark"] .techv :is(.wsum a, .wtab td) { border-color: #262626; }
[data-theme="monodark"] .techv .wlink { background: transparent; color: #f2f2f2; border-color: #f2f2f2; }
/* Недельная ведомость */
.prow { padding: 12px 0; border-top: 1px solid #eee; }
.prow:first-child { border-top: 0; padding-top: 2px; }
.phead { display: flex; justify-content: space-between; gap: 10px; font-size: 16px; align-items: baseline; }
.phead a { color: #6b6b6b; font-size: 14px; }
.pin { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 8px 0; }
.pin label { display: grid; gap: 4px; font-size: 12px; color: #777; }
.ptot { display: flex; justify-content: space-between; font-size: 17px; }
.ptot.neg b { color: #c62828; }
.pbtns { display: grid; gap: 10px; margin: 14px 0; }
.pclosed { background: #fff3e0; color: #8a5300; padding: 10px 12px; border-radius: 10px; margin: 0 0 10px; }
/* Передача работы, отчёты, журнал, сводка шефа */
.wact { display: flex; gap: 4px; justify-content: flex-end; }
a.cdel.wmove { display: inline-grid; place-items: center; text-decoration: none; }
.wpart { margin: 0; }
.rtabs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 0 0 4px; }
.rtabs .tbtn { margin: 0; padding: 12px 8px; font-size: 15px; }
.lwhen { white-space: nowrap; color: #777; font-size: 13px; }
.chefsum { margin: 0 0 14px; }
.chefsum .chsub:first-child { margin-top: 2px; }
.sgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.sgrid a { display: grid; gap: 2px; align-content: start; padding: 10px; border-radius: 12px; background: #f3f3f3; color: #111; text-decoration: none; }
.sgrid b { font-size: 17px; }
.sgrid small { color: #6b6b6b; font-size: 12px; }
.sorders { list-style: none; margin: 0; padding: 0; }
.sorders a { display: grid; grid-template-columns: 1fr 70px 44px; gap: 8px; align-items: center; padding: 9px 2px; border-bottom: 1px solid #eee; color: #111; text-decoration: none; font-size: 15px; }
.sname { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sbar { height: 8px; border-radius: 4px; background: #e2e2e2; overflow: hidden; }
.sbar i { display: block; height: 100%; background: #2e7d32; }
.spct { text-align: right; font-weight: 700; }
.slinks { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 12px; }
.slinks .tbtn { margin: 0; padding: 10px 6px; }
/* Читаемость: серые ссылки темнее, тёмный вид для ведомости, отчётов, сводки шефа */
.tback a { color: #5a5a5a; }
.wtab th, .lwhen, .pin label { color: #5f5f5f; }
.wtab small { color: #6b6b6b; }
[data-theme="monodark"] .techv .tback a { color: #b4b4b4; }
[data-theme="monodark"] .techv :is(.wtab th, .wtab small, .lwhen, .pin label, .phead a, .sgrid small, .muted) { color: #a8a8a8; }
[data-theme="monodark"] .techv .sgrid a { background: #222; color: #f2f2f2; }
[data-theme="monodark"] .techv .sorders a { color: #f2f2f2; border-color: #262626; }
[data-theme="monodark"] .techv .sbar { background: #333; }
[data-theme="monodark"] .techv .sbar i { background: #6fd69a; }
[data-theme="monodark"] .techv .prow { border-color: #262626; }
[data-theme="monodark"] .techv .pclosed { background: rgba(240, 185, 90, .14); color: #f0b95a; }
[data-theme="monodark"] .techv .okbox { background: rgba(111, 214, 154, .14); color: #6fd69a; }
[data-theme="monodark"] .techv .wtab tr.full td { color: #6fd69a; }
[data-theme="monodark"] .techv :is(.wtab tr.over td, .ptot.neg b) { color: #ff8a80; }
[data-theme="monodark"] .techv .wtab .wtot td { border-color: #444; }
[data-theme="monodark"] .techv .wforce { color: #f0b95a; }
[data-theme="monodark"] .techv .wlink { border-color: #f2f2f2; }
.techv a.tbtn:not(.ghost):not(.wlink) { color: #fff; }
[data-theme="monodark"] .techv a.tbtn:not(.ghost):not(.wlink) { color: #0b0b0b; }
.cdel { color: #5f5f5f; }
[data-theme="monodark"] .techv .cdel { color: #b4b4b4; }
/* Ведомость на телефоне: поля не вылезают за экран */
.cform > *, .prow, .pin label { min-width: 0; }
.pin input { font-size: 17px; padding: 10px; border-radius: 12px; width: 100%; min-width: 0; box-sizing: border-box; }
[data-theme="monodark"] .techv .pin input { background: #0f0f0f; color: #f2f2f2; border-color: #333; }

/* ═════════ Меню: вкладки с выпадающим списком («Цех», «Справочники», на телефоне «Ещё»), 13.11.2026 ═════════
   В видах с боковым меню (классика, стекло на компьютере) вкладок нет, все разделы показаны списком, как раньше. */
.more { display: none; position: relative; z-index: 2; flex: none; }
.lng { font-style: normal; }
nav .more .morebtn { display: flex; align-items: center; gap: 5px; background: transparent; border: 0; box-shadow: none; color: inherit; font: inherit; cursor: pointer; white-space: nowrap; }
nav .more .morebtn .ico { display: none; }
.morebtn b { font-size: 12px; color: var(--warn); background: var(--warn-bg); padding: 0 6px; border-radius: 9px; }
.chev { width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-2px); opacity: .6; transition: transform .15s; }
.morebtn[aria-expanded="true"] .chev { transform: rotate(225deg) translateY(-2px); }
.morebox { position: absolute; z-index: 40; top: calc(100% + 12px); left: 0; min-width: 240px; padding: 8px; border-radius: 16px; display: grid; gap: 2px;
  background: #fff; box-shadow: 0 12px 36px rgba(0, 0, 0, .18), 0 0 0 1px rgba(0, 0, 0, .06); }
.morebox[hidden] { display: none; }
nav .morebox a, nav .morebox .morerow { display: flex; align-items: center; gap: 10px; width: 100%; padding: 10px 12px; border-radius: 10px; border: 0; background: transparent; box-shadow: none;
  color: #111; text-decoration: none; font: inherit; font-size: 15px; font-weight: 500; text-align: left; cursor: pointer; white-space: nowrap; }
@media (hover: hover) { nav .morebox a:hover, nav .morebox .morerow:hover { background: #f1f1f1; } }
nav .morebox a[aria-current] { background: #111; color: #fff; }
.morebox .ico { display: block; width: 18px; height: 18px; flex: none; }
.morebox b { font-size: 12px; color: var(--warn); background: var(--warn-bg); padding: 0 6px; border-radius: 9px; margin-left: 4px; }
.morebox hr { border: 0; border-top: 1px solid #e6e6e6; margin: 4px 6px; }
:is([data-theme="monodark"], [data-theme="glass"]) .morebox { background: #1a1a1a; box-shadow: 0 12px 36px rgba(0, 0, 0, .6), inset 0 0 0 1px #2c2c2c; }
:is([data-theme="monodark"], [data-theme="glass"]) nav .morebox a, :is([data-theme="monodark"], [data-theme="glass"]) nav .morebox .morerow { color: #f2f2f2; }
@media (hover: hover) { :is([data-theme="monodark"], [data-theme="glass"]) nav .morebox a:hover, :is([data-theme="monodark"], [data-theme="glass"]) nav .morebox .morerow:hover { background: #2a2a2a; } }
:is([data-theme="monodark"], [data-theme="glass"]) nav .morebox a[aria-current] { background: #f2f2f2; color: #0b0b0b; }
:is([data-theme="monodark"], [data-theme="glass"]) .morebox hr { border-color: #2c2c2c; }

/* Компьютер, светлый и тёмный вид: меню сверху */
@media (min-width: 761px) {
  :is([data-theme="mono"], [data-theme="monodark"]) nav > a.extra { display: none; }
  :is([data-theme="mono"], [data-theme="monodark"]) nav > .more:not(.monly) { display: block; }
  :is([data-theme="mono"], [data-theme="monodark"]) nav .more .morebtn { padding: 7px 13px; border-radius: 999px; color: #3a3a3a; font-size: 14px; font-weight: 500; }
  :is([data-theme="mono"], [data-theme="monodark"]) nav .more.cur .morebtn { color: #fff; font-weight: 600; }
  @media (hover: hover) { :is([data-theme="mono"], [data-theme="monodark"]) nav .more:not(.cur) .morebtn:hover { background: rgba(0, 0, 0, .05); color: #111; } }
  [data-theme="monodark"] nav .more .morebtn { color: #b8b8b8; }
  [data-theme="monodark"] nav .more.cur .morebtn { color: #0b0b0b; }
  @media (hover: hover) { [data-theme="monodark"] nav .more:not(.cur) .morebtn:hover { background: rgba(255, 255, 255, .06); color: #fff; } }
  /* Поиск всегда на одном месте: справа, перед кнопкой вида */
  :is([data-theme="mono"], [data-theme="monodark"]) nav .find { flex: 0 1 190px; min-width: 120px; }
}
/* Средний экран: поиск остаётся, подписи короче, чтобы меню не уезжало вбок */
@media (min-width: 1000px) and (max-width: 1280px) {
  :is([data-theme="mono"], [data-theme="monodark"]) nav .find { display: flex; }
}
@media (min-width: 761px) and (max-width: 1280px) {
  :is([data-theme="mono"], [data-theme="monodark"]) nav .lng { display: none; }
  :is([data-theme="mono"], [data-theme="monodark"]) nav .more .morebtn { padding: 7px 10px; font-size: 13.5px; }
}
@media (min-width: 761px) and (max-width: 1179px) {
  :is([data-theme="mono"], [data-theme="monodark"]) nav .brand span:not(.mark) { display: none; }
  :is([data-theme="mono"], [data-theme="monodark"]) nav > a[href="/settings"]:not(.brand):not(.cta) .ico { display: block; width: 18px; height: 18px; flex: none; }
  :is([data-theme="mono"], [data-theme="monodark"]) nav > a[href="/settings"] span { display: none; }
  :is([data-theme="mono"], [data-theme="monodark"]) nav[aria-label="Разделы"] { padding-left: 16px; padding-right: 16px; }
}

/* Телефон, все виды: внизу четыре раздела, «Цех» и «Ещё». Списки открываются вверх на всю ширину. */
@media (max-width: 760px) {
  nav > a.extra, nav > a.mhide, nav > .themebtn, nav > a.techlink { display: none !important; }
  nav > .more:not(.donly) { display: flex; flex: 1 1 0; min-width: 0; position: static; }
  nav > a { flex: 1 1 0; min-width: 0; padding-left: 2px; padding-right: 2px; }
  nav .more .morebtn { flex: 1; flex-direction: column; justify-content: center; gap: 3px; padding: 7px 4px 6px; border-radius: 11px; color: var(--soft); font-size: 11px; line-height: 1.1; position: relative; }
  nav .more .morebtn .ico { display: block; width: 21px; height: 21px; }
  nav .more .morebtn .chev { display: none; }
  nav .more .morebtn b { position: absolute; top: 3px; right: 5px; font-size: 10px; padding: 0 5px; }
  nav .more.cur .morebtn { color: var(--chalk); font-weight: 600; }
  :is([data-theme="mono"], [data-theme="monodark"]) nav .more .morebtn { color: #3a3a3a; padding: 7px 4px 6px; }
  :is([data-theme="mono"]) nav .more.cur .morebtn { color: #fff; }
  [data-theme="monodark"] nav .more .morebtn { color: #b8b8b8; }
  [data-theme="monodark"] nav .more.cur .morebtn { color: #0b0b0b; }
  .morebox { position: fixed; left: 10px; right: 10px; top: auto; bottom: calc(82px + env(safe-area-inset-bottom)); min-width: 0; }
  nav .morebox a, nav .morebox .morerow { padding: 14px 14px; font-size: 16px; }
}
@media (min-width: 1281px) and (max-width: 1400px) {
  :is([data-theme="mono"], [data-theme="monodark"]) nav .lng, :is([data-theme="mono"], [data-theme="monodark"]) nav .cta span:not(.mark) { display: none; }
}
@media (min-width: 761px) and (max-width: 860px) {
  :is([data-theme="mono"], [data-theme="monodark"]) nav[aria-label="Разделы"] { padding-left: 8px; padding-right: 8px; }
  :is([data-theme="mono"], [data-theme="monodark"]) nav .brand { margin-right: 8px; }
  :is([data-theme="mono"], [data-theme="monodark"]) nav > a:not(.brand):not(.cta), :is([data-theme="mono"], [data-theme="monodark"]) nav .more .morebtn { padding-left: 8px; padding-right: 8px; }
}
/* Выдача в закрытой ведомости */
.pline { color: #5f5f5f; font-size: 13px; text-align: right; }
.prow form { margin-top: 8px; }
.prow.paid .ptot b { color: #2e7d32; }
[data-theme="monodark"] .techv .pline { color: #a8a8a8; }
[data-theme="monodark"] .techv .prow.paid .ptot b { color: #6fd69a; }
/* Простой вид: «Полная версия» и «Выйти» наверху, рядом с заголовком */
.thead .ttop { flex: none; width: auto; margin: 0; }
.thead .ttop .tbtn, .thead a.ttop { width: auto; margin: 0; padding: 9px 12px; font-size: 14px; white-space: nowrap; background: #fff; color: #111; border-color: #fff; box-shadow: 0 1px 2px rgba(0, 0, 0, .06); }
[data-theme="monodark"] .techv .thead .ttop .tbtn, [data-theme="monodark"] .techv .thead a.ttop { background: #161616; color: #f2f2f2; border-color: #222; }
@media (max-width: 760px) { nav .lng { display: none; } }
/* Запись количества списком: по заказу (все сотрудники) и по сотруднику (операции маршруток) */
.bgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 14px; }
.bgrid.one { grid-template-columns: 1fr; padding: 8px 0 4px; }
.bgrid label { display: grid; grid-template-columns: 1fr 84px; gap: 8px; align-items: center; font-size: 15.5px; min-width: 0; }
.bgrid label span { min-width: 0; overflow-wrap: anywhere; }
.bgrid small { color: #6b6b6b; white-space: nowrap; }
.bgrid input { font-size: 17px; padding: 10px; border-radius: 12px; width: 100%; min-width: 0; box-sizing: border-box; text-align: center; }
@media (max-width: 520px) { .bgrid { grid-template-columns: 1fr; } }
.bord { border-top: 1px solid #eee; padding: 2px 0; }
.bord summary { list-style: none; cursor: pointer; padding: 11px 2px; font-size: 16px; margin: 0 !important; }
.bord summary::-webkit-details-marker { display: none; }
.bord summary::after { content: "＋"; float: right; color: #6b6b6b; }
.bord[open] summary::after { content: "－"; }
.bord summary small { color: #2e7d32; margin-left: 6px; }
[data-theme="monodark"] .techv .bord { border-color: #262626; }
[data-theme="monodark"] .techv .bgrid input { background: #0f0f0f; color: #f2f2f2; border-color: #333; }
[data-theme="monodark"] .techv .bgrid small, [data-theme="monodark"] .techv .bord summary::after { color: #a8a8a8; }
/* Главная шефа: короткая плашка недели, отгруженные заказы свёрнуты */
.sweek { display: flex; justify-content: space-between; align-items: flex-end; gap: 10px; color: #111; text-decoration: none; }
.sweek span { display: grid; gap: 2px; }
.sweek small { color: #5f5f5f; font-size: 13px; }
.sweek b { font-size: 26px; line-height: 1.1; }
.sweek .swho { color: #5f5f5f; font-size: 14px; text-align: right; }
.swarn { display: block; margin-top: 10px; padding: 10px 12px; border-radius: 10px; background: #fff3e0; color: #8a5300; text-decoration: none; font-size: 14.5px; font-weight: 600; }
.smore { margin-top: 10px; }
.tdone { margin-top: 14px; }
.tdone > summary { list-style: none; cursor: pointer; display: inline-block; margin-bottom: 10px; }
.tdone > summary::-webkit-details-marker { display: none; }
[data-theme="monodark"] .techv .sweek { color: #f2f2f2; }
[data-theme="monodark"] .techv :is(.sweek small, .sweek .swho) { color: #a8a8a8; }
[data-theme="monodark"] .techv .swarn { background: rgba(240, 185, 90, .14); color: #f0b95a; }
.tbtn { white-space: normal; text-align: center; }
.bord summary { display: flex; gap: 6px; align-items: baseline; }
.bord summary::after { float: none; margin-left: auto; }

/* ── Маршрутка шефа и главная простого вида: компьютер и телефон (v95) ── */
/* Расцветка и подклад: на телефоне расцветка во всю ширину, под ней подклад, шт и крестик */
.crow.ccolor { grid-template-columns: 1fr 74px auto; grid-template-areas: "n n n" "l q d"; row-gap: 6px; }
.crow.ccolor > .acw:first-child { grid-area: n; }
.crow.ccolor > .acw:nth-child(2) { grid-area: l; }
.crow.ccolor > .cqty { grid-area: q; }
.crow.ccolor > .cdel { grid-area: d; }
.crow.ccolor + .crow.ccolor { padding-top: 10px; border-top: 1px dashed #e2e2e2; }
.chint { margin: -4px 0 2px; font-size: 13px; color: #6b6b6b; }
.cart { font-size: 13px; font-weight: 500; color: #6b6b6b; }
.acl li small { display: block; font-size: 12.5px; font-weight: 500; color: #7a7a7a; margin-top: 2px; }
.cform { gap: 20px; }
.cbig { padding-top: 16px; padding-bottom: 16px; }
.hnav { display: none; }
/* На телефоне колонок нет: поля идут подряд, фото в самом конце перед кнопкой */
.ccol { display: contents; }
.cform > .ccol > .cphoto { order: 2; }
.cform > .bigsave { order: 3; }
[data-theme="monodark"] .techv .crow.ccolor + .crow.ccolor { border-color: #262626; }
[data-theme="monodark"] .techv :is(.chint, .cart, .acl li small) { color: #a8a8a8; }

@media (min-width: 1000px) {
  .techv main { max-width: 1280px; padding: 24px 28px 48px; }
  /* Форма: две колонки. Слева шапка маршрутки, ткани и фото, справа расцветки и требования */
  #routeform { grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 22px 26px; align-items: start; }
  .ccol { display: grid; gap: 22px; align-content: start; }
  #routeform > .bigsave { grid-column: 1 / -1; max-width: 420px; justify-self: end; }
  .cbox { padding: 18px 20px; }
  .crow.ccolor { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) 80px auto; grid-template-areas: "n l q d"; }
  .crow.ccolor + .crow.ccolor { padding-top: 0; border-top: 0; }
  .cform .photoprev { max-height: 320px; object-fit: contain; }
  /* Главная: слева панель, справа заказы */
  .hgrid { display: grid; grid-template-columns: 360px minmax(0, 1fr); gap: 28px; align-items: start; }
  .hside { position: sticky; top: 16px; display: grid; gap: 12px; }
  .hside .bigadd { margin: 0; }
  .hside .chefsum { margin: 0; }
  .hnav { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .hnav a { display: flex; flex-direction: column; gap: 6px; padding: 14px; border-radius: 16px; background: #fff; color: #111; text-decoration: none; font-weight: 600; font-size: 14.5px; box-shadow: 0 1px 2px rgba(0, 0, 0, .04); }
  .hnav a b { width: 34px; height: 34px; border-radius: 10px; background: #111; color: #fff; display: grid; place-items: center; font-size: 17px; }
  .hnav a:hover { box-shadow: 0 0 0 2px #111; }
  .hmain > .chsub:first-child { margin-top: 2px; }
  .hmain .tlist { grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); }
  [data-theme="monodark"] .techv .hnav a { background: #161616; color: #f2f2f2; box-shadow: inset 0 0 0 1px #222; }
  [data-theme="monodark"] .techv .hnav a b { background: #f2f2f2; color: #0b0b0b; }
}
/* Кнопка «Главная» вместо стрелки назад: всегда ведёт на главную, подписана словами (v96) */
.tbackbtn.thome { width: auto; padding: 0 14px; font-size: 15px; font-weight: 700; gap: 6px; white-space: nowrap; }
/* Список сотрудников: сумма, штуки, заказы, последняя запись (v98) */
.wtotal { margin: 4px 2px 12px; font-size: 15px; color: #444; }
.wpeople .tb span { white-space: normal; }
.wpeople .wlast { font-size: 12.5px; color: #8a8a8a; margin-top: 2px; }
.wpeople .wsumv { font-style: normal; font-weight: 800; font-size: 17px; white-space: nowrap; flex: none; }
.wpeople li.wnone { opacity: .7; }
@media (min-width: 1000px) { .wpeople { grid-template-columns: repeat(auto-fill, minmax(380px, 1fr)); } }
[data-theme="monodark"] .techv .wtotal { color: #c8c8c8; }
/* Плитки главной: ведомость во всю ширину, под ней две; ниже мелкие ссылки */
.hsmall { display: none; }
@media (min-width: 1000px) {
  .hnav a.hbig { grid-column: 1 / -1; flex-direction: row; align-items: center; gap: 12px; font-size: 16px; }
  .hsmall { display: block; margin: 0 4px; font-size: 14px; color: #6b6b6b; }
  .hsmall a { color: inherit; }
}
/* Должность в списке сотрудников и «+ Добавить работу» внутри маршрутки (v99) */
.wrow select { font-size: 16px; padding: 10px; border-radius: 12px; border: 1px solid #d4d4d4; background: #fff; color: #111; min-width: 0; }
.wmore { margin-top: 6px; }
.wmore > summary { display: inline-flex; }
[data-theme="monodark"] .techv .wrow select { background: #0f0f0f; color: #f2f2f2; border-color: #333; }
/* v100: заметные карточки сотрудников, своя цена рядом со штуками, страница «Цены» */
.wpeople li { background: #fff; box-shadow: 0 0 0 1px #d9d9d9, 0 2px 6px rgba(0, 0, 0, .05); border-left: 5px solid #1f9d55; }
.wpeople li.wnone { opacity: 1; background: #f3f3f3; border-left-color: #c4c4c4; box-shadow: 0 0 0 1px #dedede; }
.wpeople li.wnone .tb b { color: #555; }
.wpeople .wsumv { color: #157a3d; }
.wpair { display: grid; grid-template-columns: 1fr 76px; gap: 6px; }
.wpair .wpr { font-size: 14px !important; color: #666; background: #f6f6f6; text-align: center; }
.wownp { color: #a15c00; font-weight: 700; }
.wown input { max-width: 260px; }
.pcard .chsub small { text-transform: none; letter-spacing: 0; font-weight: 500; }
.pcard .chsub a { color: inherit; }
.pgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.pgrid label { display: grid; gap: 4px; font-size: 13.5px; font-weight: 600; color: #444; }
.pgrid input, .pcard .cnum input { font-size: 16px; padding: 10px; border-radius: 10px; border: 1px solid #d4d4d4; width: 100%; min-width: 0; }
.pfind input { font-size: 17px; padding: 12px; border-radius: 12px; border: 1px solid #cfcfcf; width: 100%; }
@media (min-width: 1000px) { #plist { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; align-items: start; } #plist .pcard { margin: 0; } }
[data-theme="monodark"] .techv .wpeople li { background: #161616; box-shadow: 0 0 0 1px #2a2a2a; }
[data-theme="monodark"] .techv .wpeople li.wnone { background: #101010; }
[data-theme="monodark"] .techv :is(.pgrid input, .pcard .cnum input, .pfind input, .wpair .wpr) { background: #0f0f0f; color: #f2f2f2; border-color: #333; }
[data-theme="monodark"] .techv .pgrid label { color: #c8c8c8; }
.bgrid label:has(.wpair) { grid-template-columns: 1fr 172px; }
.bgrid label .wpair { overflow: visible; }
.wpair { grid-template-columns: 90px 76px; }
@media (max-width: 520px) { .bgrid label:has(.wpair) { grid-template-columns: 1fr 150px; } .wpair { grid-template-columns: 80px 64px; } }
/* Подписи над полями «Штук» и «Цена за шт» (v102) */
.wcap { display: grid; gap: 3px; }
.wcap > i { font-style: normal; font-size: 12px; font-weight: 700; color: #555; text-align: center; white-space: nowrap; }
[data-theme="monodark"] .techv .wcap > i { color: #b4b4b4; }
/* «Записать за сегодня» — тетрадь (v103) */
.wtoday { background: #1f9d55 !important; color: #fff !important; }
.nbchips { display: flex; gap: 8px; overflow-x: auto; padding: 2px 2px 10px; -webkit-overflow-scrolling: touch; }
.nbchips a { flex: none; padding: 10px 14px; border-radius: 14px; background: #fff; color: #333; text-decoration: none; font-size: 14px; box-shadow: 0 0 0 1px #d9d9d9; white-space: nowrap; }
.nbchips a b { font-size: 16px; margin-right: 4px; }
.nbchips a.on { background: #111; color: #fff; box-shadow: none; }
.nbday { display: flex; align-items: center; gap: 10px; font-weight: 600; }
.nbday input { font-size: 16px; padding: 8px 10px; border-radius: 10px; border: 1px solid #d4d4d4; }
.nbwrap { overflow-x: auto; }
.nb { border-collapse: collapse; width: 100%; }
.nb th, .nb td { border: 1px solid #dcdcdc; padding: 0; }
.nb tr > th:first-child { text-align: left; padding: 8px 10px; font-weight: 600; font-size: 15px; background: #fafafa; white-space: nowrap; min-width: 110px; }
.nb tr:first-child th { padding: 6px 8px; font-size: 14px; background: #f3f3f3; }
.nb tr:first-child th small { display: block; font-weight: 500; color: #777; font-size: 12px; }
.nb td input { width: 100%; min-width: 64px; border: 0; padding: 12px 6px; font-size: 18px; text-align: center; background: transparent; border-radius: 0; }
.nb td input:focus { outline: 2px solid #1f9d55; background: #f0fbf4; }
.nb tr:nth-child(odd) td { background: #fcfcfc; }
[data-theme="monodark"] .techv :is(.nbchips a) { background: #161616; color: #ddd; box-shadow: 0 0 0 1px #2a2a2a; }
[data-theme="monodark"] .techv .nbchips a.on { background: #f2f2f2; color: #0b0b0b; }
[data-theme="monodark"] .techv :is(.nb th, .nb td) { border-color: #2a2a2a; }
[data-theme="monodark"] .techv .nb tr > th:first-child, [data-theme="monodark"] .techv .nb tr:first-child th { background: #1a1a1a; color: #eee; }
[data-theme="monodark"] .techv .nb tr:nth-child(odd) td { background: #121212; }
[data-theme="monodark"] .techv .nb td input { color: #f2f2f2; }
.nbform .bigsave { position: sticky; bottom: 12px; z-index: 5; box-shadow: 0 6px 20px rgba(0, 0, 0, .25); }
.nbform .nbday { display: flex; grid-template-columns: none; justify-content: flex-start; }
.nbform .nbday input { width: auto; }

/* ═══ Простой вид (шеф, технолог): значки Lucide, ровные кнопки, одна толщина линий (v105) ═══ */
.techv .ti { width: 20px; height: 20px; flex: none; display: block; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
/* Шапка: все круглые кнопки одной высоты 44, значок ровно по центру */
.techv .thead { min-height: 44px; }
.techv .tmode, .techv .tbackbtn { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; line-height: 1; font-size: 0; border-radius: 14px; }
.techv .tmode .ti-sun { display: none; }
[data-theme="monodark"] .techv .tmode .ti-moon { display: none; }
[data-theme="monodark"] .techv .tmode .ti-sun { display: block; }
.techv .tbackbtn.thome { width: auto; gap: 8px; padding: 0 16px 0 13px; font-size: 15px; font-weight: 700; }
.techv .tbackbtn.thome .ti { width: 19px; height: 19px; }
.techv .thead .ttop .tbtn, .techv .thead a.ttop { display: inline-flex; align-items: center; gap: 7px; height: 44px; padding: 0 14px; border-radius: 14px; font-weight: 600; }
.techv .thead .ttop .ti { width: 18px; height: 18px; }
/* Кнопки с текстом и значком */
.techv .tbtn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; }
.techv a.tbtn { display: flex; }
.techv .bigadd .ti { width: 22px; height: 22px; stroke-width: 2.25; }
/* Листание недель: квадратные кнопки со стрелкой */
.techv .wnav .tbtn { width: 44px; height: 44px; padding: 0; border-radius: 14px; background: #fff; color: #111; border: 0; box-shadow: 0 0 0 1px #dcdcdc; }
.techv .wnav b { font-size: 16px; }
/* Удалить, передать: одинаковые квадратики, значок по центру */
.techv .cdel { display: inline-flex; align-items: center; justify-content: center; padding: 0; line-height: 0; }
.techv .cdel .ti { width: 18px; height: 18px; }
.techv .wtab .cdel .ti { width: 16px; height: 16px; }
.techv .wact { white-space: nowrap; }
.techv .wact form { display: inline-block; margin-left: 6px; }
/* Плитки на главной: значок в чёрном квадрате, одного размера */
.techv .hnav a .ti { width: 38px; height: 38px; padding: 9px; box-sizing: border-box; border-radius: 11px; background: #111; color: #fff; stroke-width: 2; }
[data-theme="monodark"] .techv .hnav a .ti { background: #f2f2f2; color: #0b0b0b; }
/* Раскрывашки маршруток: аккуратная стрелка вместо «＋ －», и только у самой маршрутки */
.bord summary::after, .bord[open] summary::after { content: none; }
.bord > summary { display: flex; align-items: center; gap: 6px; }
.bord > summary::after { content: ""; margin-left: auto; width: 8px; height: 8px; border-right: 2px solid #777; border-bottom: 2px solid #777; transform: rotate(45deg) translate(-2px, -2px); transition: transform .15s; flex: none; }
.bord[open] > summary::after { transform: rotate(-135deg) translate(-2px, -2px); }
[data-theme="monodark"] .techv .bord > summary::after { border-color: #aaa; }
/* Тёмный вид: кнопки шапки и стрелки не сливаются с фоном */
[data-theme="monodark"] .techv :is(.tmode, .tbackbtn) { background: #1a1a1a; color: #f2f2f2; box-shadow: inset 0 0 0 1px #2c2c2c; }
[data-theme="monodark"] .techv .wnav .tbtn { background: #1a1a1a; color: #f2f2f2; box-shadow: inset 0 0 0 1px #2c2c2c; }
[data-theme="monodark"] .techv .bigadd.wlink { background: transparent; color: #f2f2f2; box-shadow: inset 0 0 0 2px #f2f2f2; }
/* Одна толщина обводки везде — 1px; карточки не слипаются; полоска у сотрудников — точка (v106) */
.techv .wlink, .techv .bigadd.wlink { border: 0; box-shadow: 0 0 0 1px #cfcfcf; background: #fff; color: #111; }
[data-theme="monodark"] .techv .wlink, [data-theme="monodark"] .techv .bigadd.wlink { background: #1a1a1a; color: #f2f2f2; box-shadow: inset 0 0 0 1px #333; }
.techv .tcard + .tcard, .techv .tcard + form.tcard, .techv form.tcard + .tcard { margin-top: 16px; }
.wpeople li, .wpeople li.wnone { border-left: 0; }
.wpeople li:not(.wnone) .tb > b::before { content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #1f9d55; margin: 0 8px 1px 0; vertical-align: middle; }
[data-theme="monodark"] .techv .wpeople li.wnone .tb b { color: #c4c4c4; }
